Zeus Disassembler

Products: Zeus Assembler
Date: 1983
Type: Program
Platform(s): TS 2068

A machine code monitor and Z80 disassembler for the TS2068. The loading screens read “TS 2068 Hi-mem. MONITOR AND DISASSEMBLER” (or “Lo-mem.”) and “© 1982 Crystal Computing”. Its single-letter commands are listed in the code: Assign, Break, Copy, Disassemble, Edit, Find, Go to, Jump relative, Convert, Message, Print, Registers, Substitute, Tabulate, Verify, Exit and Zero. The disassembler prints standard Zilog mnemonics in lower case, and a breakpoint shows all the registers, including the alternate set, IX, IY, SP and the flags, with the choice to quit, continue or return to the monitor.

Two versions are supplied so the monitor can sit out of the way of the program being examined. The high-memory version loads 4,040 bytes at 61186 and is entered with PRINT USR 62137; the low-memory version loads 4,048 bytes at 28418 and is entered with PRINT USR 29369.

Program Analysis

Each loader is a 15-line BASIC program that clears memory below the code, shows a loading screen, loads the code, then shows the title, the copyright line and the entry address in a drawn box. Lines 14 and 15 are the save commands for making a copy.

Notable Techniques

  • Line 12 calls USR 26715, which is inside the REM statement on line 1: on the TS2068 the BASIC program starts at 26710, so 26715 is the first byte after the REM token. The few bytes there are a short machine code routine, run here at the “Press any key” prompt.
  • Messages such as “PARAMETER ERROR”, “RANGE ERROR”, “FOUND AT” and “COPIED O.K.” are stored inline, straight after the CALL to the print routine and ended with byte 255, so no address has to be passed. The mnemonic table marks the last letter of each word by setting its top bit.

Related Products

Use the full Z80 mnemonics instruction set. Editor allows cursor movement in 4 directions, insert, delete, clear line and screen.

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.