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

Page Customization

Introduction/Summary

NEWDOS/80 v2.0 SYS4/SYS Disassembly - The DOS Error Messages (Model I)

SYS4/SYS is the error message overlay. It loads into the overlay area at 4D00H-51E7H (1,256 bytes in five load records, transfer address 4D00H) and is called with LD A,code / RST 28H; the SYS0 dispatcher (4BC2H) loads it when 4317H does not already hold its number, 06H. Only 132 bytes are code (4D00H-4D83H); the rest is the message table, the word list and 316 unused bytes of 00H. If SYS4 itself cannot be loaded, SYS0 halts (4C18H), since no error could be shown.

The page shows every byte of the file once, in address order. The old version of this page had an introduction and a Variables table that described SYS3 (timer queue, PURGE, screen print), and its message table and word list did not match the bytes of the file from 4DEDH on; it has been rebuilt from SYS4/SYS.

RST 28H Codes Handled by SYS4

CodeCalled fromFunction
26H4409HThe DOS error exit (manual 3.6): the error code is on the stack. With bit 7 of the code set the message is displayed and SYS4 returns to the caller; without it the message is displayed and the DOS is entered at 402DH, or under DOS-CALL or chaining the error is passed to SYS1 (4D31H) without a message.
46HSYS0 reset (4DD4H)An error while the system starts: sets bit 2 of 436AH (4D0BH) and displays the message.
66HSYS14 4D4CHDisplay the message whatever the DOS state (4D1AH). SYS14 pushes the error code in Register H and calls it.
E6H-Return at once (4D02H): the RST 28H only loads SYS4. E6H is what the SYS6 overlay loader at 568DH (OR 0E0H / RST 28H) produces for slot 06H.
any other-Treated like 26H.

A dash means that no caller was found in the system files on the diskette.

How the Messages Are Stored

The messages are built from 94 words. The word list (4E74H) holds the words one after another, the last character of each with bit 7 set. The message table (4D84H) holds, for each error number in turn, the numbers of its words, the last one with bit 7 set. To find message n, SYS4 counts n + 1 ends from 4D84H (whose 80H is an empty list); to find word n it counts n ends from 4E74H (whose 80H is an empty word). Each word is displayed followed by a space, and the message by a carriage return. Only bits 0-5 of the error code choose the message; the 00H at 4E70H ends the table, so error 3FH gives UNDEFINED ERROR CODE from the list after it.

The Error Messages

ErrorMessage
00HNO ERROR
01HBAD FILE DATA
02HSEEK ERROR DURING READ
03HLOST DATA DURING READ
04HPARITY ERROR DURING READ
05HDATA RECORD NOT FOUND DURING READ
06HTRIED TO READ LOCKED/DELETED RECORD
07HTRIED TO READ SYSTEM RECORD
08HDEVICE NOT AVAILABLE
09HUNDEFINED ERROR CODE
0AHSEEK ERROR DURING WRITE
0BHLOST DATA DURING WRITE
0CHPARITY ERROR DURING WRITE
0DHDATA RECORD NOT FOUND DURING WRITE
0EHWRITE FAULT ON DISK DRIVE
0FHWRITE PROTECTED DISKETTE
10HDEVICE NOT AVAILABLE
11HDIRECTORY READ ERROR
12HDIRECTORY WRITE ERROR
13HILLEGAL FILE NAME
14HTRACK # TOO HIGH
15HILLEGAL FUNCTION UNDER DOS-CALL
16HUNDEFINED ERROR CODE
17HUNDEFINED ERROR CODE
18HFILE NOT IN DIRECTORY
19HFILE ACCESS DENIED
1AHDIRECTORY SPACE FULL
1BHDISKETTE SPACE FULL
1CHEND OF FILE ENCOUNTERED
1DHPAST END OF FILE
1EHDIRECTORY FULL . CAN'T EXTEND FILE
1FHPROGRAM NOT FOUND
20HILLEGAL OR MISSING DRIVE #
21HNO DEVICE SPACE AVAILABLE
22HLOAD FILE FORMAT ERROR
23HMEMORY FAULT
24HTRIED TO LOAD READ ONLY MEMORY
25HILLEGAL ACCESS TRIED TO PROTECTED FILE
26HFILE NOT OPEN
27HILLEGAL INITIALIZATION DATA ON SYSTEM DISKETTE
28HILLEGAL DISKETTE TRACK COUNT
29HILLEGAL LOGICAL FILE #
2AHILLEGAL DOS FUNCTION
2BHILLEGAL FUNCTION UNDER CHAINING
2CHBAD DIRECTORY DATA
2DHBAD FCB DATA
2EHSYSTEM PROGRAM NOT FOUND
2FHBAD PARAMETER(S)
30HBAD FILESPEC
31HWRONG DISKETTE RECORD TYPE
32HBOOT READ ERROR
33HDOS FATAL ERROR
34HILLEGAL KEYWORD OR SEPARATOR OR TERMINATOR
35HFILE ALREADY EXISTS
36HCOMMAND TOO LONG
37HDISKETTE ACCESS DENIED
38HILLEGAL MINI DOS FUNCTION
39HOPERATOR/PROGRAM/PARAMETER REQUIRE FUNCTION TERMINATION
3AHDATA COMPARE MISMATCH
3BHINSUFFICIENT MEMORY
3CHINCOMPATIBLE DRIVES OR DISKETTES
3DHASE=N ATTRIBUTE . CAN'T EXTEND FILE
3EHCAN'T EXTEND FILE VIA READ
3FHUNDEFINED ERROR CODE

Error numbers 09H, 16H and 17H have no message of their own (UNDEFINED ERROR CODE), and 08H and 10H share DEVICE NOT AVAILABLE.

Variables

Memory Used by SYS4

Address
Size
Contents
4D7FH-4D80H
2 bytes
Return Address (Self-Modifying Code)
Operand of the JP M,nnnn at 4D7EH (0000H in the file), stored at 4D0FH: 4C20H, the return into the SYS0 dispatcher.
402DH
3 bytes
DOS Exit
JUMPed to at 4D81H when the caller did not ask for control back.
4369H
1 byte
DOS Flags
Bit 5, a chain file is running, tested at 4D28H.
436AH
1 byte
DOS State Flags
Bit 2, an error during the reset, set at 4D0BH and tested at 4D1FH. Bit 6, a DOS-CALL is active, tested at 4D2DH.

Outside Routines Called

AddressContents
0033HROM: display the character in Register A (4D61H, 4D6BH, 4D76H).
4C20HSYS0: the end of the RST 28H dispatcher, which RETurns to the caller of the error exit (4D7EH).
RST 28H, code E3HSYS1 function 7 sub-function 7 (its 4D78H), the exit used under DOS-CALL or chaining (4D3BH).

Disassembly

4D00H - Function Dispatcher and Error Entry

SYS4 is entered here by the SYS0 RST 28H dispatcher (4BC2H) with Register A = the RST 28H code (bits 0-4 = 06H, SYS4's directory slot). The dispatcher has dropped the RST's own return address, so the stack holds 4C20H (the return into the dispatcher, pushed by its CALL at 4C1DH), then the error word pushed by the caller (Register A = the error code), then the return address of whoever called the error exit. Codes: 26H (function 1) from the DOS error exit 4409H (manual 3.6); 46H (function 2) from the SYS0 reset code (4DD4H) for an error during the reset; 66H (function 3, used by SYS14 at 4D4CH) displays the message whatever the DOS state; E6H (function 7) returns at once, so that an RST 28H with E6H only loads SYS4. Error code bit 7 set means display the message and return to the caller; otherwise the message is displayed and the DOS is re-entered at 402DH, or, under DOS-CALL or chaining, the error is handed to SYS1 without a message.

4D00
CP E6H FE E6
Compare Register A (the RST 28H code) against E6H, function 7.
4D02
RET Z C8
If the Z FLAG is set (Register A = E6H), RETurn at once: the call only loaded SYS4.
4D03
CP 46H FE 46
Compare Register A (the RST 28H code) against 46H, function 2: an error during the SYS0 reset (4DD4H).
4D05
If the NZ FLAG is set (another function), JUMP to 4D0EH.
4D07
PUSH HL E5
Function 2: save Register Pair HL (the caller's) onto the stack.
4D08
LD HL,436AH 21 6A 43
Point Register Pair HL to 436AH, the DOS state flags.
4D0B
SET 2,(HL) CB D6
Set bit 2 of the byte at Register Pair HL (436AH): an error happened during the reset. 4D1FH below then displays this message, and the SYS1 exit (its 4D98H) later sends every exit to SYS9 sub-function 0BH.
4D0D
POP HL E1
Restore Register Pair HL from the stack: the caller's.
4D0E
EX (SP),HL E3
Exchange Register Pair HL with the word at the top of the stack (Stack Pointer): Register Pair HL = 4C20H, the return into the SYS0 dispatcher; the caller's HL goes onto the stack. 4D05H comes here.
4D0F
LD (4D7FH),HL 22 7F 4D
Store Register Pair HL (4C20H) at 4D7FH, the operand of the JP M,nnnn at 4D7EH, which returns through the dispatcher when the caller asked for a return.
4D12
POP HL E1
Restore Register Pair HL from the stack: the caller's HL again. The top of the stack is now the error word.
4D13
EX (SP),HL E3
Exchange Register Pair HL with the word at the top of the stack (Stack Pointer): Register Pair HL = the error word (Register H = the error code, Register L = its flags); the caller's HL goes onto the stack in its place.
4D14
PUSH DE D5
Save Register Pair DE (the caller's) onto the stack.
4D15
PUSH BC C5
Save Register Pair BC (the caller's) onto the stack.
4D16
PUSH HL E5
Save Register Pair HL (the error word) onto the stack; 4D79H restores it into Register Pair AF.
4D17
CP 66H FE 66
Compare Register A (the RST 28H code) against 66H, function 3: display the message whatever the DOS state.
4D19
LD A,H 7C
Copy Register H (the error code) into Register A. LD does not change the flags.
4D1A
If the Z FLAG is set (function 3), JUMP to 4D3CH to display the message.
4D1C
LD HL,436AH 21 6A 43
Point Register Pair HL to 436AH, the DOS state flags.
4D1F
BIT 2,(HL) CB 56
Test bit 2 of the byte at Register Pair HL (436AH): an error during the reset.
4D21
If the NZ FLAG is set (an error during the reset), JUMP to 4D3CH to display the message.
4D23
BIT 7,A CB 7F
Test bit 7 of Register A (the error code): the caller wants the message displayed and control back.
4D25
If the NZ FLAG is set (bit 7 set), JUMP to 4D3CH to display the message.
4D27
DEC HL 2B
DECrement Register Pair HL to 4369H, the DOS flags.
4D28
BIT 5,(HL) CB 6E
Test bit 5 of the byte at Register Pair HL (4369H): a chain file (DO) is running.
4D2A
If the NZ FLAG is set (chaining), JUMP to 4D31H to hand the error to SYS1 without a message.
4D2C
INC HL 23
INCrement Register Pair HL back to 436AH, the DOS state flags.
4D2D
BIT 6,(HL) CB 76
Test bit 6 of the byte at Register Pair HL (436AH): a DOS-CALL is active.
4D2F
If the Z FLAG is set (no DOS-CALL), JUMP to 4D3CH to display the message.

4D31H - Hand the Error to SYS1

Under DOS-CALL or chaining (and bit 7 of the error code clear) the message is not displayed here: the error code is pushed as a word and SYS1 function 7 sub-function 7 (its 4D78H) is called, which drops its return address, takes this word as the result of the command and goes to its exit (4D8BH), where the DOS-CALL or chaining code deals with the error. It does not come back.

4D31
AND 3FH E6 3F
AND Register A (the error code) with 3FH, keeping bits 0-5: the error number.
4D33
CP FFH FE FF
Compare Register A against FFH. Any value below FFH sets the CARRY FLAG and the NZ FLAG.
4D35
CCF 3F
Complement the CARRY FLAG: Register Pair AF now holds the error number with the NZ FLAG and the NO CARRY FLAG, the form of an error result.
4D36
PUSH AF F5
Save Register Pair AF (the error result) onto the stack for SYS1 4D78H.
4D37
LD A,E3H 3E E3
Load Register A with E3H, the RST 28H code of SYS1 function 7.
4D39
LD C,07H 0E 07
Load Register C with 07H, sub-function 7: drop two words and exit with the second one as the result.
4D3B
RST 28H EF
RST 28H with Register A = E3H and Register C = 07H: SYS1 is loaded over SYS4 and goes to its exit. It does not come back.

4D3CH - Find the Message of the Error

Register A = the error code. The message table at 4D84H holds, for each error number 00H-3EH in turn, a list of word numbers whose last one has bit 7 set; 4D84H itself is an 80H that ends an empty list before error 00H. Counting the ends from 4D84H finds the start of the message. The 00H at 4E70H ends the table: any error number not reached before it (3FH) uses the message after it, UNDEFINED ERROR CODE.

4D3C
AND 3FH E6 3F
AND Register A (the error code) with 3FH, keeping bits 0-5: the error number 00H-3FH. 4D1AH, 4D21H, 4D25H and 4D2FH come here.
4D3E
LD B,A 47
Copy Register A (the error number) into Register B.
4D3F
INC B 04
INCrement Register B: the number of list ends to pass, counting the 80H at 4D84H.
4D40
LD HL,4D84H 21 84 4D
Point Register Pair HL to 4D84H, the start of the message table.

Table Search Loop
Register Pair HL = the next byte of the table, Register B = the list ends still to pass.

4D43
LD A,(HL) 7E
Fetch the table byte at Register Pair HL into Register A.
4D44
RLC A CB 07
Rotate Register A left with RLC: bit 7 goes into the CARRY FLAG, and the Z FLAG is set only for a byte of 00H.
4D46
INC HL 23
INCrement Register Pair HL to the next table byte. INC HL does not change the flags.
4D47
If the Z FLAG is set (the 00H at 4E70H, the end of the table), JUMP to 4D4DH to display the message after it.
4D49
If the NO CARRY FLAG is set (bit 7 clear, not the last word of a list), LOOP BACK to 4D43H.
4D4B
The end of a list: DECrement Register B and LOOP BACK to 4D43H until it is 0. Register Pair HL then points to the first word number of the message.

4D4DH - Display the Words of the Message

Register Pair HL points to the next word number of the message. The word list at 4E74H holds the words one after another, each ending with a character that has bit 7 set; 4E74H itself is an 80H that ends an empty word 00H. Each word is displayed followed by a space.

Word Loop
Register Pair HL = the word number in the message table.

4D4D
LD A,(HL) 7E
Fetch the word number at Register Pair HL into Register A. 4D47H and 4D72H come here.
4D4E
AND 7FH E6 7F
AND Register A with 7FH, dropping the bit 7 end mark: the word number.
4D50
LD B,A 47
Copy Register A (the word number) into Register B. LD does not change the flags.
4D51
If the Z FLAG is set (word 00H, nothing to display), JUMP to 4D6FH.
4D53
PUSH HL E5
Save Register Pair HL (the position in the message table) onto the stack.
4D54
LD HL,4E74H 21 74 4E
Point Register Pair HL to 4E74H, the 80H before the first word.

Word Search Loop
Register B = the word ends still to pass.

4D57
LD A,(HL) 7E
Fetch the character at Register Pair HL into Register A.
4D58
RLCA 07
Rotate Register A left: bit 7, the end of a word, goes into the CARRY FLAG.
4D59
INC HL 23
INCrement Register Pair HL to the next character. INC HL does not change the flags.
4D5A
If the NO CARRY FLAG is set (not the end of a word), LOOP BACK to 4D57H.
4D5C
The end of a word: DECrement Register B and LOOP BACK to 4D57H until it is 0. Register Pair HL then points to the first character of the word wanted.

Character Loop

4D5E
LD A,(HL) 7E
Fetch the character at Register Pair HL into Register A.
4D5F
AND 7FH E6 7F
AND Register A with 7FH, dropping the bit 7 end mark.
4D61
GOSUB to 0033H (ROM) to display the character in Register A.
4D64
LD A,(HL) 7E
Fetch the character at Register Pair HL into Register A again.
4D65
RLCA 07
Rotate Register A left: bit 7, the end of the word, goes into the CARRY FLAG.
4D66
INC HL 23
INCrement Register Pair HL to the next character. INC HL does not change the flags.
4D67
If the NO CARRY FLAG is set (more characters in the word), LOOP BACK to 4D5EH.
4D69
LD A,20H 3E 20
Load Register A with 20H, a space between the words.
4D6B
GOSUB to 0033H (ROM) to display the space in Register A.
4D6E
POP HL E1
Restore Register Pair HL from the stack: the position in the message table.
4D6F
LD A,(HL) 7E
Fetch the word number at Register Pair HL into Register A again. 4D51H comes here.
4D70
RLCA 07
Rotate Register A left: bit 7, the last word of the message, goes into the CARRY FLAG.
4D71
INC HL 23
INCrement Register Pair HL to the next word number. INC HL does not change the flags.
4D72
If the NO CARRY FLAG is set (more words), LOOP BACK to 4D4DH.

4D74H - End the Line and Leave

The message has been displayed. The caller's registers come back; with bit 7 of the error code set the RETurn goes through the dispatcher (4C20H) to the caller of the error exit, otherwise to the DOS through 402DH.

4D74
LD A,0DH 3E 0D
Load Register A with 0DH, a carriage return to end the message line.
4D76
GOSUB to 0033H (ROM) to display the carriage return in Register A and end the line.
4D79
POP AF F1
Restore Register Pair AF from the stack: the error word saved at 4D16H, Register A = the error code.
4D7A
POP BC C1
Restore Register Pair BC from the stack: the caller's.
4D7B
POP DE D1
Restore Register Pair DE from the stack: the caller's.
4D7C
POP HL E1
Restore Register Pair HL from the stack: the caller's.
4D7D
OR A B7
OR Register A (the error code) with itself: the SIGN FLAG (M) is set when bit 7 of the error code is set.
4D7E
If the SIGN FLAG is set (M, the caller wants control back), JUMP to 4C20H in the SYS0 dispatcher, which RETurns to the caller of the error exit with Register A = the error code and the NZ FLAG. Self-Modifying Code
The operand at 4D7FH-4D80H is 0000H in the file and is stored at 4D0FH.
4D81
JUMP to 402DH, the DOS exit vector that returns to DOS READY. The caller of the error exit is not returned to.

4D84H - Error Message Table (Data)

One list of word numbers (bits 0-6, into the word list at 4E74H) per error number 00H-3EH, in order; bit 7 set marks the last word of a list. 4D3CH finds a message by counting the list ends from 4D84H. Word 1DH (a period and a space) is followed by the usual space, so messages 1EH and 3DH show two spaces after the period.

4D84
DEFB 80H 80
The 80H before the first message: an empty list (word 00H with the end mark), so that error 00H is the list after the first end counted by 4D4BH.
4D85-4D86
DEFB 13H, 81H 13 81
Error 00H: NO ERROR. Words 13H (NO), 01H (ERROR); the last has bit 7 set.
4D87-4D89
DEFB 22H, 05H, 8BH 22 05 8B
Error 01H: BAD FILE DATA. Words 22H (BAD), 05H (FILE), 0BH (DATA); the last has bit 7 set.
4D8A-4D8D
DEFB 0EH, 01H, 04H, 82H 0E 01 04 82
Error 02H: SEEK ERROR DURING READ. Words 0EH (SEEK), 01H (ERROR), 04H (DURING), 02H (READ); the last has bit 7 set.
4D8E-4D91
DEFB 0DH, 0BH, 04H, 82H 0D 0B 04 82
Error 03H: LOST DATA DURING READ. Words 0DH (LOST), 0BH (DATA), 04H (DURING), 02H (READ); the last has bit 7 set.
4D92-4D95
DEFB 0CH, 01H, 04H, 82H 0C 01 04 82
Error 04H: PARITY ERROR DURING READ. Words 0CH (PARITY), 01H (ERROR), 04H (DURING), 02H (READ); the last has bit 7 set.
4D96-4D9B
DEFB 0BH, 08H, 12H, 31H, 04H, 82H 0B 08 12 31 04 82
Error 05H: DATA RECORD NOT FOUND DURING READ. Words 0BH (DATA), 08H (RECORD), 12H (NOT), 31H (FOUND), 04H (DURING), 02H (READ); the last has bit 7 set.
4D9C-4D9F
DEFB 11H, 02H, 4CH, 88H 11 02 4C 88
Error 06H: TRIED TO READ LOCKED/DELETED RECORD. Words 11H (TRIED TO), 02H (READ), 4CH (LOCKED/DELETED), 08H (RECORD); the last has bit 7 set.
4DA0-4DA3
DEFB 11H, 02H, 3CH, 88H 11 02 3C 88
Error 07H: TRIED TO READ SYSTEM RECORD. Words 11H (TRIED TO), 02H (READ), 3CH (SYSTEM), 08H (RECORD); the last has bit 7 set.
4DA4-4DA6
DEFB 15H, 12H, 96H 15 12 96
Error 08H: DEVICE NOT AVAILABLE. Words 15H (DEVICE), 12H (NOT), 16H (AVAILABLE); the last has bit 7 set.
4DA7-4DA9
DEFB 49H, 01H, A9H 49 01 A9
Error 09H: UNDEFINED ERROR CODE. Words 49H (UNDEFINED), 01H (ERROR), 29H (CODE); the last has bit 7 set.
4DAA-4DAD
DEFB 0EH, 01H, 04H, 83H 0E 01 04 83
Error 0AH: SEEK ERROR DURING WRITE. Words 0EH (SEEK), 01H (ERROR), 04H (DURING), 03H (WRITE); the last has bit 7 set.
4DAE-4DB1
DEFB 0DH, 0BH, 04H, 83H 0D 0B 04 83
Error 0BH: LOST DATA DURING WRITE. Words 0DH (LOST), 0BH (DATA), 04H (DURING), 03H (WRITE); the last has bit 7 set.
4DB2-4DB5
DEFB 0CH, 01H, 04H, 83H 0C 01 04 83
Error 0CH: PARITY ERROR DURING WRITE. Words 0CH (PARITY), 01H (ERROR), 04H (DURING), 03H (WRITE); the last has bit 7 set.
4DB6-4DBB
DEFB 0BH, 08H, 12H, 31H, 04H, 83H 0B 08 12 31 04 83
Error 0DH: DATA RECORD NOT FOUND DURING WRITE. Words 0BH (DATA), 08H (RECORD), 12H (NOT), 31H (FOUND), 04H (DURING), 03H (WRITE); the last has bit 7 set.
4DBC-4DC0
DEFB 03H, 32H, 19H, 17H, 98H 03 32 19 17 98
Error 0EH: WRITE FAULT ON DISK DRIVE. Words 03H (WRITE), 32H (FAULT), 19H (ON), 17H (DISK), 18H (DRIVE); the last has bit 7 set.
4DC1-4DC3
DEFB 03H, 46H, C4H 03 46 C4
Error 0FH: WRITE PROTECTED DISKETTE. Words 03H (WRITE), 46H (PROTECTED), 44H (DISKETTE); the last has bit 7 set.
4DC4-4DC6
DEFB 15H, 12H, 96H 15 12 96
Error 10H: DEVICE NOT AVAILABLE. Words 15H (DEVICE), 12H (NOT), 16H (AVAILABLE); the last has bit 7 set.
4DC7-4DC9
DEFB 07H, 02H, 81H 07 02 81
Error 11H: DIRECTORY READ ERROR. Words 07H (DIRECTORY), 02H (READ), 01H (ERROR); the last has bit 7 set.
4DCA-4DCC
DEFB 07H, 03H, 81H 07 03 81
Error 12H: DIRECTORY WRITE ERROR. Words 07H (DIRECTORY), 03H (WRITE), 01H (ERROR); the last has bit 7 set.
4DCD-4DCF
DEFB 06H, 05H, 89H 06 05 89
Error 13H: ILLEGAL FILE NAME. Words 06H (ILLEGAL), 05H (FILE), 09H (NAME); the last has bit 7 set.
4DD0-4DD3
DEFB 34H, 1EH, 24H, AFH 34 1E 24 AF
Error 14H: TRACK # TOO HIGH. Words 34H (TRACK), 1EH (#), 24H (TOO), 2FH (HIGH); the last has bit 7 set.
4DD4-4DD7
DEFB 06H, 47H, 37H, C5H 06 47 37 C5
Error 15H: ILLEGAL FUNCTION UNDER DOS-CALL. Words 06H (ILLEGAL), 47H (FUNCTION), 37H (UNDER), 45H (DOS-CALL); the last has bit 7 set.
4DD8-4DDA
DEFB 49H, 01H, A9H 49 01 A9
Error 16H: UNDEFINED ERROR CODE. Words 49H (UNDEFINED), 01H (ERROR), 29H (CODE); the last has bit 7 set.
4DDB-4DDD
DEFB 49H, 01H, A9H 49 01 A9
Error 17H: UNDEFINED ERROR CODE. Words 49H (UNDEFINED), 01H (ERROR), 29H (CODE); the last has bit 7 set.
4DDE-4DE1
DEFB 05H, 12H, 1AH, 87H 05 12 1A 87
Error 18H: FILE NOT IN DIRECTORY. Words 05H (FILE), 12H (NOT), 1AH (IN), 07H (DIRECTORY); the last has bit 7 set.
4DE2-4DE4
DEFB 05H, 3EH, BDH 05 3E BD
Error 19H: FILE ACCESS DENIED. Words 05H (FILE), 3EH (ACCESS), 3DH (DENIED); the last has bit 7 set.
4DE5-4DE7
DEFB 07H, 0AH, 94H 07 0A 94
Error 1AH: DIRECTORY SPACE FULL. Words 07H (DIRECTORY), 0AH (SPACE), 14H (FULL); the last has bit 7 set.
4DE8-4DEA
DEFB 44H, 0AH, 94H 44 0A 94
Error 1BH: DISKETTE SPACE FULL. Words 44H (DISKETTE), 0AH (SPACE), 14H (FULL); the last has bit 7 set.
4DEB-4DEE
DEFB 20H, 1CH, 05H, CBH 20 1C 05 CB
Error 1CH: END OF FILE ENCOUNTERED. Words 20H (END), 1CH (OF), 05H (FILE), 4BH (ENCOUNTERED); the last has bit 7 set.
4DEF-4DF2
DEFB 2EH, 20H, 1CH, 85H 2E 20 1C 85
Error 1DH: PAST END OF FILE. Words 2EH (PAST), 20H (END), 1CH (OF), 05H (FILE); the last has bit 7 set.
4DF3-4DF8
DEFB 07H, 14H, 1DH, 36H, 3FH, 85H 07 14 1D 36 3F 85
Error 1EH: DIRECTORY FULL . CAN'T EXTEND FILE. Words 07H (DIRECTORY), 14H (FULL), 1DH (.), 36H (CAN'T), 3FH (EXTEND), 05H (FILE); the last has bit 7 set.
4DF9-4DFB
DEFB 42H, 12H, B1H 42 12 B1
Error 1FH: PROGRAM NOT FOUND. Words 42H (PROGRAM), 12H (NOT), 31H (FOUND); the last has bit 7 set.
4DFC-4E00
DEFB 06H, 1BH, 57H, 18H, 9EH 06 1B 57 18 9E
Error 20H: ILLEGAL OR MISSING DRIVE #. Words 06H (ILLEGAL), 1BH (OR), 57H (MISSING), 18H (DRIVE), 1EH (#); the last has bit 7 set.
4E01-4E04
DEFB 13H, 15H, 0AH, 96H 13 15 0A 96
Error 21H: NO DEVICE SPACE AVAILABLE. Words 13H (NO), 15H (DEVICE), 0AH (SPACE), 16H (AVAILABLE); the last has bit 7 set.
4E05-4E08
DEFB 27H, 05H, 41H, 81H 27 05 41 81
Error 22H: LOAD FILE FORMAT ERROR. Words 27H (LOAD), 05H (FILE), 41H (FORMAT), 01H (ERROR); the last has bit 7 set.
4E09-4E0A
DEFB 40H, B2H 40 B2
Error 23H: MEMORY FAULT. Words 40H (MEMORY), 32H (FAULT); the last has bit 7 set.
4E0B-4E0F
DEFB 11H, 27H, 02H, 28H, C0H 11 27 02 28 C0
Error 24H: TRIED TO LOAD READ ONLY MEMORY. Words 11H (TRIED TO), 27H (LOAD), 02H (READ), 28H (ONLY), 40H (MEMORY); the last has bit 7 set.
4E10-4E14
DEFB 06H, 3EH, 11H, 46H, 85H 06 3E 11 46 85
Error 25H: ILLEGAL ACCESS TRIED TO PROTECTED FILE. Words 06H (ILLEGAL), 3EH (ACCESS), 11H (TRIED TO), 46H (PROTECTED), 05H (FILE); the last has bit 7 set.
4E15-4E17
DEFB 05H, 12H, A6H 05 12 A6
Error 26H: FILE NOT OPEN. Words 05H (FILE), 12H (NOT), 26H (OPEN); the last has bit 7 set.
4E18-4E1D
DEFB 06H, 4AH, 0BH, 19H, 3CH, C4H 06 4A 0B 19 3C C4
Error 27H: ILLEGAL INITIALIZATION DATA ON SYSTEM DISKETTE. Words 06H (ILLEGAL), 4AH (INITIALIZATION), 0BH (DATA), 19H (ON), 3CH (SYSTEM), 44H (DISKETTE); the last has bit 7 set.
4E1E-4E21
DEFB 06H, 44H, 34H, B5H 06 44 34 B5
Error 28H: ILLEGAL DISKETTE TRACK COUNT. Words 06H (ILLEGAL), 44H (DISKETTE), 34H (TRACK), 35H (COUNT); the last has bit 7 set.
4E22-4E25
DEFB 06H, 43H, 05H, 9EH 06 43 05 9E
Error 29H: ILLEGAL LOGICAL FILE #. Words 06H (ILLEGAL), 43H (LOGICAL), 05H (FILE), 1EH (#); the last has bit 7 set.
4E26-4E28
DEFB 06H, 21H, C7H 06 21 C7
Error 2AH: ILLEGAL DOS FUNCTION. Words 06H (ILLEGAL), 21H (DOS), 47H (FUNCTION); the last has bit 7 set.
4E29-4E2C
DEFB 06H, 47H, 37H, C8H 06 47 37 C8
Error 2BH: ILLEGAL FUNCTION UNDER CHAINING. Words 06H (ILLEGAL), 47H (FUNCTION), 37H (UNDER), 48H (CHAINING); the last has bit 7 set.
4E2D-4E2F
DEFB 22H, 07H, 8BH 22 07 8B
Error 2CH: BAD DIRECTORY DATA. Words 22H (BAD), 07H (DIRECTORY), 0BH (DATA); the last has bit 7 set.
4E30-4E32
DEFB 22H, 23H, 8BH 22 23 8B
Error 2DH: BAD FCB DATA. Words 22H (BAD), 23H (FCB), 0BH (DATA); the last has bit 7 set.
4E33-4E36
DEFB 3CH, 42H, 12H, B1H 3C 42 12 B1
Error 2EH: SYSTEM PROGRAM NOT FOUND. Words 3CH (SYSTEM), 42H (PROGRAM), 12H (NOT), 31H (FOUND); the last has bit 7 set.
4E37-4E38
DEFB 22H, CDH 22 CD
Error 2FH: BAD PARAMETER(S). Words 22H (BAD), 4DH (PARAMETER(S)); the last has bit 7 set.
4E39-4E3A
DEFB 22H, CEH 22 CE
Error 30H: BAD FILESPEC. Words 22H (BAD), 4EH (FILESPEC); the last has bit 7 set.
4E3B-4E3E
DEFB 38H, 44H, 08H, ABH 38 44 08 AB
Error 31H: WRONG DISKETTE RECORD TYPE. Words 38H (WRONG), 44H (DISKETTE), 08H (RECORD), 2BH (TYPE); the last has bit 7 set.
4E3F-4E41
DEFB 2AH, 02H, 81H 2A 02 81
Error 32H: BOOT READ ERROR. Words 2AH (BOOT), 02H (READ), 01H (ERROR); the last has bit 7 set.
4E42-4E44
DEFB 21H, 39H, 81H 21 39 81
Error 33H: DOS FATAL ERROR. Words 21H (DOS), 39H (FATAL), 01H (ERROR); the last has bit 7 set.
4E45-4E4A
DEFB 06H, 50H, 1BH, 51H, 1BH, D2H 06 50 1B 51 1B D2
Error 34H: ILLEGAL KEYWORD OR SEPARATOR OR TERMINATOR. Words 06H (ILLEGAL), 50H (KEYWORD), 1BH (OR), 51H (SEPARATOR), 1BH (OR), 52H (TERMINATOR); the last has bit 7 set.
4E4B-4E4D
DEFB 05H, 4FH, BBH 05 4F BB
Error 35H: FILE ALREADY EXISTS. Words 05H (FILE), 4FH (ALREADY), 3BH (EXISTS); the last has bit 7 set.
4E4E-4E50
DEFB 55H, 24H, ADH 55 24 AD
Error 36H: COMMAND TOO LONG. Words 55H (COMMAND), 24H (TOO), 2DH (LONG); the last has bit 7 set.
4E51-4E53
DEFB 44H, 3EH, BDH 44 3E BD
Error 37H: DISKETTE ACCESS DENIED. Words 44H (DISKETTE), 3EH (ACCESS), 3DH (DENIED); the last has bit 7 set.
4E54-4E57
DEFB 06H, 2CH, 21H, C7H 06 2C 21 C7
Error 38H: ILLEGAL MINI DOS FUNCTION. Words 06H (ILLEGAL), 2CH (MINI), 21H (DOS), 47H (FUNCTION); the last has bit 7 set.
4E58-4E5B
DEFB 56H, 53H, 47H, D4H 56 53 47 D4
Error 39H: OPERATOR/PROGRAM/PARAMETER REQUIRE FUNCTION TERMINATION. Words 56H (OPERATOR/PROGRAM/PARAMETER), 53H (REQUIRE), 47H (FUNCTION), 54H (TERMINATION); the last has bit 7 set.
4E5C-4E5E
DEFB 0BH, 58H, D9H 0B 58 D9
Error 3AH: DATA COMPARE MISMATCH. Words 0BH (DATA), 58H (COMPARE), 59H (MISMATCH); the last has bit 7 set.
4E5F-4E60
DEFB 5AH, C0H 5A C0
Error 3BH: INSUFFICIENT MEMORY. Words 5AH (INSUFFICIENT), 40H (MEMORY); the last has bit 7 set.
4E61-4E64
DEFB 5BH, 5CH, 1BH, DDH 5B 5C 1B DD
Error 3CH: INCOMPATIBLE DRIVES OR DISKETTES. Words 5BH (INCOMPATIBLE), 5CH (DRIVES), 1BH (OR), 5DH (DISKETTES); the last has bit 7 set.
4E65-4E6A
DEFB 3AH, 5EH, 1DH, 36H, 3FH, 85H 3A 5E 1D 36 3F 85
Error 3DH: ASE=N ATTRIBUTE . CAN'T EXTEND FILE. Words 3AH (ASE=N), 5EH (ATTRIBUTE), 1DH (.), 36H (CAN'T), 3FH (EXTEND), 05H (FILE); the last has bit 7 set.
4E6B-4E6F
DEFB 36H, 3FH, 05H, 25H, 82H 36 3F 05 25 82
Error 3EH: CAN'T EXTEND FILE VIA READ. Words 36H (CAN'T), 3FH (EXTEND), 05H (FILE), 25H (VIA), 02H (READ); the last has bit 7 set.
4E70
DEFB 00H 00
The end of the table. 4D44H sets the Z FLAG on this byte and 4D47H displays the message that follows, so any error number not reached before it (3FH) gives UNDEFINED ERROR CODE.
4E71-4E73
DEFB 49H, 01H, A9H 49 01 A9
The message after the end of the table, used for error 3FH: UNDEFINED ERROR CODE. Words 49H (UNDEFINED), 01H (ERROR), 29H (CODE); the last has bit 7 set.

4E74H - Word List (Data)

The words of the messages, one after another, each ending with a character that has bit 7 set. 4D54H starts counting word ends at 4E74H, so the word after the n-th end is word n. 4D5EH displays a word with bit 7 dropped and 4D69H adds a space after it.

4E74
DEFB 80H 80
The 80H before the first word: an empty word 00H, so that ERROR at 4E75H is word 01H.
4E75-4E79
DEFM "ERRO", D2H 45 52 52 4F D2
Word 01H: ERROR. The last character carries bit 7 (D2H = R + 80H).
4E7A-4E7D
DEFM "REA", C4H 52 45 41 C4
Word 02H: READ. The last character carries bit 7 (C4H = D + 80H).
4E7E-4E82
DEFM "WRIT", C5H 57 52 49 54 C5
Word 03H: WRITE. The last character carries bit 7 (C5H = E + 80H).
4E83-4E88
DEFM "DURIN", C7H 44 55 52 49 4E C7
Word 04H: DURING. The last character carries bit 7 (C7H = G + 80H).
4E89-4E8C
DEFM "FIL", C5H 46 49 4C C5
Word 05H: FILE. The last character carries bit 7 (C5H = E + 80H).
4E8D-4E93
DEFM "ILLEGA", CCH 49 4C 4C 45 47 41 CC
Word 06H: ILLEGAL. The last character carries bit 7 (CCH = L + 80H).
4E94-4E9C
DEFM "DIRECTOR", D9H 44 49 52 45 43 54 4F 52 D9
Word 07H: DIRECTORY. The last character carries bit 7 (D9H = Y + 80H).
4E9D-4EA2
DEFM "RECOR", C4H 52 45 43 4F 52 C4
Word 08H: RECORD. The last character carries bit 7 (C4H = D + 80H).
4EA3-4EA6
DEFM "NAM", C5H 4E 41 4D C5
Word 09H: NAME. The last character carries bit 7 (C5H = E + 80H).
4EA7-4EAB
DEFM "SPAC", C5H 53 50 41 43 C5
Word 0AH: SPACE. The last character carries bit 7 (C5H = E + 80H).
4EAC-4EAF
DEFM "DAT", C1H 44 41 54 C1
Word 0BH: DATA. The last character carries bit 7 (C1H = A + 80H).
4EB0-4EB5
DEFM "PARIT", D9H 50 41 52 49 54 D9
Word 0CH: PARITY. The last character carries bit 7 (D9H = Y + 80H).
4EB6-4EB9
DEFM "LOS", D4H 4C 4F 53 D4
Word 0DH: LOST. The last character carries bit 7 (D4H = T + 80H).
4EBA-4EBD
DEFM "SEE", CBH 53 45 45 CB
Word 0EH: SEEK. The last character carries bit 7 (CBH = K + 80H).
4EBE-4EC0
DEFM "GA", D4H 47 41 D4
Word 0FH: GAT. The last character carries bit 7 (D4H = T + 80H).
4EC1-4EC3
DEFM "HI", D4H 48 49 D4
Word 10H: HIT. The last character carries bit 7 (D4H = T + 80H).
4EC4-4ECB
DEFM "TRIED T", CFH 54 52 49 45 44 20 54 CF
Word 11H: TRIED TO. The last character carries bit 7 (CFH = O + 80H).
4ECC-4ECE
DEFM "NO", D4H 4E 4F D4
Word 12H: NOT. The last character carries bit 7 (D4H = T + 80H).
4ECF-4ED0
DEFM "N", CFH 4E CF
Word 13H: NO. The last character carries bit 7 (CFH = O + 80H).
4ED1-4ED4
DEFM "FUL", CCH 46 55 4C CC
Word 14H: FULL. The last character carries bit 7 (CCH = L + 80H).
4ED5-4EDA
DEFM "DEVIC", C5H 44 45 56 49 43 C5
Word 15H: DEVICE. The last character carries bit 7 (C5H = E + 80H).
4EDB-4EE3
DEFM "AVAILABL", C5H 41 56 41 49 4C 41 42 4C C5
Word 16H: AVAILABLE. The last character carries bit 7 (C5H = E + 80H).
4EE4-4EE7
DEFM "DIS", CBH 44 49 53 CB
Word 17H: DISK. The last character carries bit 7 (CBH = K + 80H).
4EE8-4EEC
DEFM "DRIV", C5H 44 52 49 56 C5
Word 18H: DRIVE. The last character carries bit 7 (C5H = E + 80H).
4EED-4EEE
DEFM "O", CEH 4F CE
Word 19H: ON. The last character carries bit 7 (CEH = N + 80H).
4EEF-4EF0
DEFM "I", CEH 49 CE
Word 1AH: IN. The last character carries bit 7 (CEH = N + 80H).
4EF1-4EF2
DEFM "O", D2H 4F D2
Word 1BH: OR. The last character carries bit 7 (D2H = R + 80H).
4EF3-4EF4
DEFM "O", C6H 4F C6
Word 1CH: OF. The last character carries bit 7 (C6H = F + 80H).
4EF5-4EF6
DEFM ".", A0H 2E A0
Word 1DH: a period and a space. The space carries bit 7 (A0H = 20H + 80H), and 4D69H adds a second space after it.
4EF7
DEFB A3H A3
Word 1EH: #. The last character carries bit 7 (A3H = # + 80H).
4EF8-4EFA
DEFM "OU", D4H 4F 55 D4
Word 1FH: OUT. The last character carries bit 7 (D4H = T + 80H).
4EFB-4EFD
DEFM "EN", C4H 45 4E C4
Word 20H: END. The last character carries bit 7 (C4H = D + 80H).
4EFE-4F00
DEFM "DO", D3H 44 4F D3
Word 21H: DOS. The last character carries bit 7 (D3H = S + 80H).
4F01-4F03
DEFM "BA", C4H 42 41 C4
Word 22H: BAD. The last character carries bit 7 (C4H = D + 80H).
4F04-4F06
DEFM "FC", C2H 46 43 C2
Word 23H: FCB. The last character carries bit 7 (C2H = B + 80H).
4F07-4F09
DEFM "TO", CFH 54 4F CF
Word 24H: TOO. The last character carries bit 7 (CFH = O + 80H).
4F0A-4F0C
DEFM "VI", C1H 56 49 C1
Word 25H: VIA. The last character carries bit 7 (C1H = A + 80H).
4F0D-4F10
DEFM "OPE", CEH 4F 50 45 CE
Word 26H: OPEN. The last character carries bit 7 (CEH = N + 80H).
4F11-4F14
DEFM "LOA", C4H 4C 4F 41 C4
Word 27H: LOAD. The last character carries bit 7 (C4H = D + 80H).
4F15-4F18
DEFM "ONL", D9H 4F 4E 4C D9
Word 28H: ONLY. The last character carries bit 7 (D9H = Y + 80H).
4F19-4F1C
DEFM "COD", C5H 43 4F 44 C5
Word 29H: CODE. The last character carries bit 7 (C5H = E + 80H).
4F1D-4F20
DEFM "BOO", D4H 42 4F 4F D4
Word 2AH: BOOT. The last character carries bit 7 (D4H = T + 80H).
4F21-4F24
DEFM "TYP", C5H 54 59 50 C5
Word 2BH: TYPE. The last character carries bit 7 (C5H = E + 80H).
4F25-4F28
DEFM "MIN", C9H 4D 49 4E C9
Word 2CH: MINI. The last character carries bit 7 (C9H = I + 80H).
4F29-4F2C
DEFM "LON", C7H 4C 4F 4E C7
Word 2DH: LONG. The last character carries bit 7 (C7H = G + 80H).
4F2D-4F30
DEFM "PAS", D4H 50 41 53 D4
Word 2EH: PAST. The last character carries bit 7 (D4H = T + 80H).
4F31-4F34
DEFM "HIG", C8H 48 49 47 C8
Word 2FH: HIGH. The last character carries bit 7 (C8H = H + 80H).
4F35-4F3A
DEFM "HEADE", D2H 48 45 41 44 45 D2
Word 30H: HEADER. The last character carries bit 7 (D2H = R + 80H).
4F3B-4F3F
DEFM "FOUN", C4H 46 4F 55 4E C4
Word 31H: FOUND. The last character carries bit 7 (C4H = D + 80H).
4F40-4F44
DEFM "FAUL", D4H 46 41 55 4C D4
Word 32H: FAULT. The last character carries bit 7 (D4H = T + 80H).
4F45-4F49
DEFM "RANG", C5H 52 41 4E 47 C5
Word 33H: RANGE. The last character carries bit 7 (C5H = E + 80H).
4F4A-4F4E
DEFM "TRAC", CBH 54 52 41 43 CB
Word 34H: TRACK. The last character carries bit 7 (CBH = K + 80H).
4F4F-4F53
DEFM "COUN", D4H 43 4F 55 4E D4
Word 35H: COUNT. The last character carries bit 7 (D4H = T + 80H).
4F54-4F58
DEFM "CAN'", D4H 43 41 4E 27 D4
Word 36H: CAN'T. The last character carries bit 7 (D4H = T + 80H).
4F59-4F5D
DEFM "UNDE", D2H 55 4E 44 45 D2
Word 37H: UNDER. The last character carries bit 7 (D2H = R + 80H).
4F5E-4F62
DEFM "WRON", C7H 57 52 4F 4E C7
Word 38H: WRONG. The last character carries bit 7 (C7H = G + 80H).
4F63-4F67
DEFM "FATA", CCH 46 41 54 41 CC
Word 39H: FATAL. The last character carries bit 7 (CCH = L + 80H).
4F68-4F6C
DEFM "ASE=", CEH 41 53 45 3D CE
Word 3AH: ASE=N. The last character carries bit 7 (CEH = N + 80H).
4F6D-4F72
DEFM "EXIST", D3H 45 58 49 53 54 D3
Word 3BH: EXISTS. The last character carries bit 7 (D3H = S + 80H).
4F73-4F78
DEFM "SYSTE", CDH 53 59 53 54 45 CD
Word 3CH: SYSTEM. The last character carries bit 7 (CDH = M + 80H).
4F79-4F7E
DEFM "DENIE", C4H 44 45 4E 49 45 C4
Word 3DH: DENIED. The last character carries bit 7 (C4H = D + 80H).
4F7F-4F84
DEFM "ACCES", D3H 41 43 43 45 53 D3
Word 3EH: ACCESS. The last character carries bit 7 (D3H = S + 80H).
4F85-4F8A
DEFM "EXTEN", C4H 45 58 54 45 4E C4
Word 3FH: EXTEND. The last character carries bit 7 (C4H = D + 80H).
4F8B-4F90
DEFM "MEMOR", D9H 4D 45 4D 4F 52 D9
Word 40H: MEMORY. The last character carries bit 7 (D9H = Y + 80H).
4F91-4F96
DEFM "FORMA", D4H 46 4F 52 4D 41 D4
Word 41H: FORMAT. The last character carries bit 7 (D4H = T + 80H).
4F97-4F9D
DEFM "PROGRA", CDH 50 52 4F 47 52 41 CD
Word 42H: PROGRAM. The last character carries bit 7 (CDH = M + 80H).
4F9E-4FA4
DEFM "LOGICA", CCH 4C 4F 47 49 43 41 CC
Word 43H: LOGICAL. The last character carries bit 7 (CCH = L + 80H).
4FA5-4FAC
DEFM "DISKETT", C5H 44 49 53 4B 45 54 54 C5
Word 44H: DISKETTE. The last character carries bit 7 (C5H = E + 80H).
4FAD-4FB4
DEFM "DOS-CAL", CCH 44 4F 53 2D 43 41 4C CC
Word 45H: DOS-CALL. The last character carries bit 7 (CCH = L + 80H).
4FB5-4FBD
DEFM "PROTECTE", C4H 50 52 4F 54 45 43 54 45 C4
Word 46H: PROTECTED. The last character carries bit 7 (C4H = D + 80H).
4FBE-4FC5
DEFM "FUNCTIO", CEH 46 55 4E 43 54 49 4F CE
Word 47H: FUNCTION. The last character carries bit 7 (CEH = N + 80H).
4FC6-4FCD
DEFM "CHAININ", C7H 43 48 41 49 4E 49 4E C7
Word 48H: CHAINING. The last character carries bit 7 (C7H = G + 80H).
4FCE-4FD6
DEFM "UNDEFINE", C4H 55 4E 44 45 46 49 4E 45 C4
Word 49H: UNDEFINED. The last character carries bit 7 (C4H = D + 80H).
4FD7-4FE4
DEFM "INITIALIZATIO", CEH 49 4E 49 54 49 41 4C 49 5A 41 54 49 4F CE
Word 4AH: INITIALIZATION. The last character carries bit 7 (CEH = N + 80H).
4FE5-4FEF
DEFM "ENCOUNTERE", C4H 45 4E 43 4F 55 4E 54 45 52 45 C4
Word 4BH: ENCOUNTERED. The last character carries bit 7 (C4H = D + 80H).
4FF0-4FFD
DEFM "LOCKED/DELETE", C4H 4C 4F 43 4B 45 44 2F 44 45 4C 45 54 45 C4
Word 4CH: LOCKED/DELETED. The last character carries bit 7 (C4H = D + 80H).
4FFE-5009
DEFM "PARAMETER(S", A9H 50 41 52 41 4D 45 54 45 52 28 53 A9
Word 4DH: PARAMETER(S). The last character carries bit 7 (A9H = ) + 80H).
500A-5011
DEFM "FILESPE", C3H 46 49 4C 45 53 50 45 C3
Word 4EH: FILESPEC. The last character carries bit 7 (C3H = C + 80H).
5012-5018
DEFM "ALREAD", D9H 41 4C 52 45 41 44 D9
Word 4FH: ALREADY. The last character carries bit 7 (D9H = Y + 80H).
5019-501F
DEFM "KEYWOR", C4H 4B 45 59 57 4F 52 C4
Word 50H: KEYWORD. The last character carries bit 7 (C4H = D + 80H).
5020-5028
DEFM "SEPARATO", D2H 53 45 50 41 52 41 54 4F D2
Word 51H: SEPARATOR. The last character carries bit 7 (D2H = R + 80H).
5029-5032
DEFM "TERMINATO", D2H 54 45 52 4D 49 4E 41 54 4F D2
Word 52H: TERMINATOR. The last character carries bit 7 (D2H = R + 80H).
5033-5039
DEFM "REQUIR", C5H 52 45 51 55 49 52 C5
Word 53H: REQUIRE. The last character carries bit 7 (C5H = E + 80H).
503A-5044
DEFM "TERMINATIO", CEH 54 45 52 4D 49 4E 41 54 49 4F CE
Word 54H: TERMINATION. The last character carries bit 7 (CEH = N + 80H).
5045-504B
DEFM "COMMAN", C4H 43 4F 4D 4D 41 4E C4
Word 55H: COMMAND. The last character carries bit 7 (C4H = D + 80H).
504C-5065
DEFM "OPERATOR/PROGRAM/PARAMETE", D2H 4F 50 45 52 41 54 4F 52 2F 50 52 4F 47 52 41 4D 2F 50 41 52 41 4D 45 54 45 D2
Word 56H: OPERATOR/PROGRAM/PARAMETER. The last character carries bit 7 (D2H = R + 80H).
5066-506C
DEFM "MISSIN", C7H 4D 49 53 53 49 4E C7
Word 57H: MISSING. The last character carries bit 7 (C7H = G + 80H).
506D-5073
DEFM "COMPAR", C5H 43 4F 4D 50 41 52 C5
Word 58H: COMPARE. The last character carries bit 7 (C5H = E + 80H).
5074-507B
DEFM "MISMATC", C8H 4D 49 53 4D 41 54 43 C8
Word 59H: MISMATCH. The last character carries bit 7 (C8H = H + 80H).
507C-5087
DEFM "INSUFFICIEN", D4H 49 4E 53 55 46 46 49 43 49 45 4E D4
Word 5AH: INSUFFICIENT. The last character carries bit 7 (D4H = T + 80H).
5088-5093
DEFM "INCOMPATIBL", C5H 49 4E 43 4F 4D 50 41 54 49 42 4C C5
Word 5BH: INCOMPATIBLE. The last character carries bit 7 (C5H = E + 80H).
5094-5099
DEFM "DRIVE", D3H 44 52 49 56 45 D3
Word 5CH: DRIVES. The last character carries bit 7 (D3H = S + 80H).
509A-50A2
DEFM "DISKETTE", D3H 44 49 53 4B 45 54 54 45 D3
Word 5DH: DISKETTES. The last character carries bit 7 (D3H = S + 80H).
50A3-50AB
DEFM "ATTRIBUT", C5H 41 54 54 52 49 42 55 54 C5
Word 5EH: ATTRIBUTE. The last character carries bit 7 (C5H = E + 80H).

50ACH - Unused Bytes

The end of the file. Nothing in SYS4 reaches these bytes.

50AC-51E7
NOP x 316 00 x 316
316 bytes of 00H to the end of the file (51E7H). 51E8H-51FFH is not in the file.