Mazogs was written by Don Priestley for the 16K ZX81 and released in 1981 by Bug-Byte Software. It instantly became a ZX81 classic. Unfortunately nothing near this complex was ever released as a flicker-free program for the ZX80.
In 2016 I set about diassembling the ZX81 game to discover exactly how it worked and my analysis can be found here. I wondered whether the game could be adapted as a flicker-free program for the ZX80 and this page presents the results of my efforts.
The ZX80 supported two official Sinclair ROMs - its original integer 4K BASIC ROM and an upgrade 8K BASIC ROM that added floating point number support (i.e. the ZX81 ROM). I've created
versions of the game to run on a ZX80 fitted with either type of ROM. Both versions are available from the downloads section.
All features of the original ZX81 game have been retained in the ZX80 versions. All of the set up screens in the original game were coordinated from BASIC, but this could not be replicated on the ZX80 while maintaining a continuous display. So all set up screens have been re-implemented in machine code but follow the original logic to achieve the same look and feel as the ZX81 game.
A continuous display is maintain throughout most of the game and its set up screens. However, it proved impractical to do this when calculating the route to the treasure or exit and so a momentary loss of picture occurs when requesting a situation report or requesting a prisoner to show the way.
The game deliberately deviates from the ZX81 version in only two ways:
- A bug fix has been made to the post fight logic when the player wins and was previously holding the treasure. In the original game, the player is shown standing without the treasure and then miracously regains it once moving. I have modified the game so that the player is instantly shown holding the treasure after winning such a fight.
- An enhancement has been made to allow the game to be aborted by pressing SHIFT+SPACE.
Where possible, the original game routines have been used (albeit with the addition of padding to achieve consistent timing of pathways). However, it was necessary to rewrite a few routines to achieve faster speed to compensate for the reduced processing time the ZX80 has compared to the SLOW mode of the ZX81. But overall, the ZX80 versions play very faithfully to the original ZX81 game.
Both versions of the game automatically detect whether running on a 50Hz or 60Hz ZX80 and adjust the number of TV scan lines accordingly.
The machine code for the 4K ROM version is located between the BASIC program area and the variables area. The machine code for the 8K ROM version is located in a REM statement at line 0.
Both game versions can be downloaded below, and are made available for private use or for public demonstrations. They are not to be included in emulator distributions or sold as part of a commercial package. Please do not re-distribute the program files but link to this site instead.
|Click here to download ZX80 (4K ROM) Mazogs conversion in .O program format [V1.1]. Run the game using RUN.|
|Click here to download ZX80 (8K ROM) Mazogs conversion in .P and .P81 program formats [V1.1]. The file name is "MAZOGS8K". Run the game using RUN. The game will also load and run on a ZX81.|
If you have a Spectrum 128 or +2 and an Interface 2 then you can use the 4K ROM ZX80 Mazogs game with my ZX80 Emulator ROM cartridge.