Action Games - Brkout / Ack-Ack

Brkout-AckAck
Details
Year: 1981
ROM: 4K
RAM: 1K
Ref: C80A
Cost: £4.00
Downloads
Inlay scans
Cassette photos
Program files
Disassembly files
Brkout & AckAck Screenshot
1. Loader 3. Ack-Ack
2. Brkout

PROGRAM NOTES

The cassette contents are as follows:

The loader routine is required to allow the game bytes to overwrite the system variables and BASIC environment, reading in the selected game bytes between $4000 to $43B4 inclusive. This approach allows the machine code for the games to be longer than if the BASIC environment were maintained. The game bytes are encoded in standard ZX80 cassette bit encoding format.

When the user selects to load Brkout, the loader routine expects to find this next on the cassette. It relocates itself to $43ED (32 bytes higher in memory) and executes from there. First it configures itself with the end address to load Brkout to and the address to execute the game from after it has loaded. It waits for a period of silence and assumes the first noise it hears thereafter is the start of the bytes for Brkout.

When the user selects to load Ack-Ack, the loader routine knows it must first skip over the Brkout byte encodings. It does this by waiting for a period of silence to find the start of Brkout. It then reads in the first 256 bytes of Brkout to locations $4000 to $40FF inclusive, before configuring itself with the end address to load Ack-Ack to and the address to execute the game from after it has loaded. It then waits for a period of silence, but since the cassette will still be within the encoding for Brkout all of these bytes will be skipped over. Once a period of silence has been found, the loader assumes that the first noise it hears thereafter is the start of the bytes for Ack-Ack.

To allow the games to be easily loaded into an emulator I've created versions of each that can be loaded without the need for the loader routine.


ADVERTS