PGOL Assembler
Programmation of game's PROM
Toolbox for PGOL language.
Assembler - Disassembler
Gottlieb SYSTEM 1.
Introduction
To test changes to the PROM of the SYSTEM 1 game, we have developed several simple tools. The first is an assembler that allows to generate a binary file (programmable in an EPROM) from a source. The second is a disassembler to decode the original PROM and generate a source file usable with the assembler.
Assembler PGOL
We use at the base a 6502 macro-assembler very well known and free: "6502 MacroAssembler & Simulator" written by Michal Kowalski. Although the SYSTEM 1 processor is not a 6502, we use the possibilities of macros and generation of this programme.
The assembler PGOL is nothing more than a series of macros stored in an 'include' file.
The program is used in a manner quite classic and generated after compiling a binary image in memory. This code is located in the space $0100 - $04FF of the 6502 and corresponds to the 1 KB of the game's PROM.
This image can then be saved in a file (typically a .bin file) to be used with an EPROM programmer. The generated format is a binary standard with 8-bit data, but the 4 most significant bits will always be '1'.
Installation
Start by downloading the 6502 assembler, either from our website or from 6502.org.
There is no setup, just uncompress the archive in a dedicated folder. Create also two subfolders "sources" and "includes" in order to place your files.
Download also the macros PGOL and unzip the archive in the "includes" folder.
Use
The program will start simply by clicking on "6502.exe". Once launched, you can open your source, as with any 6502 source. The source files are standard text files, but with the ".65s" instead of the traditional ".txt" extension.
The compilation starts by pressing F7. It is possible to see the code generated in memory by pressing "ALT" + "2".
To save the generated code, press "CTRL" + "K". Then specify the type of file (binary .65b) and click options to specify the memory range to save ($0100 à $04FF).
Of course, all this only works if you have a source at hand...
Need a Genie ?
Experimental PGOL disassembler
This tool allows to generate a usable source with the compiler above, from an original binary file. Like any disassembler, the generated code is never perfect and must eventually be reviewed before use.
However, it is powerful enough to generate a code that can be used directly for all SYSTEM 1 PROM, except for the SINBAD. Indeed, this one has a bug that the disassembler cannot correct. It is, however, very easy to locate and can be changed it by hand.
The binary input (.bin or .cpu) must be 1024 bytes. To optimize the decoding and get a commented source, it is possible (and recommended)to indicate below the model of pinball.
Sample of generated source: Cleopatra
Distribution
This achievement is available for free.