TRS-80 DOS - NEWDOS/80 v2.0 for the Model I - SYS15/SYS Disassembled

Page Customization

Introduction/Summary

NEWDOS/80 v2.0 SYS15/SYS Disassembly - an Empty Module (Model I)

In NEWDOS/80 v2.0 for the Model I, SYS15/SYS does nothing. The file has the usual five load records for the overlay area, 4D00H-51E7H (1,256 bytes, transfer address 4D00H), but its only code is XOR A / RET at 4D00H; the other 1,254 bytes are zeros. The raw file on the system diskette was checked against the listing: every byte agrees.

No module of this system refers to directory slot 11H (the RST 28H codes 31H, 51H, 71H, 91H, B1H, D1H, F1H): not SYS0-SYS21, not BOOT, not BASIC/CMD, and SYS1's command table has no entry for it. If it were called, SYS15 would return at once with Register A = 0 and the Zero flag set, the way the overlays report success.

The page that was here before showed some 390 rows of code for display width, line count and RS-232 settings. None of those bytes are in this file; the rows were invented.

Variables

SYS15 has no variables and changes no memory: its two instructions only load Register A with 00H and return.

Disassembly

4D00H - The Whole Program

If SYS15 is called through RST 28H (any code whose low five bits are 11H, directory slot 11H), the SYS0 dispatcher (4BC2H) loads it and calls 4D00H with Register A = the code. It returns at once with Register A = 0 and the Z FLAG set, which a caller takes as "no error". No module of this system (SYS0-SYS21, BOOT, BASIC/CMD) issues such a code, and SYS1's command table has no command for slot 11H.

4D00
XOR A AF
Load Register A with 00H (XOR A with itself), replacing the RST 28H code the dispatcher passed: the Z FLAG is set and the CARRY FLAG cleared, meaning no error.
4D01
RET C9
RETURN to the SYS0 dispatcher at 4C20H with Register A = 00H and the Z FLAG set; the dispatcher clears bit 6 of 4369H (overlay running) and returns to the caller.

4D02H - The Rest of the File

The five load records fill 4D00H-51E7H, but only the first two bytes are code.

4D02-51E7
NOP x 1254 00 x 1254
1,254 zero bytes that fill the rest of the five load records (up to 51E7H). No code jumps, calls or reads here.