General:
SYS08/SYS handles the HELP command.
Disassembly:
ORG 4E00H
“START”
4E00
4E00
PUSH HL
Save the command line (pointed to by Register Pair HL) to the top of the stack.
4E01
LD HL,OVLFLG
LET Register Pair HL = 442BH which is OVERLAY FLAG.
4E04
RES 4,(HL)
RESet (i.e., set as 0) BIT 4 of the overlay flag to signify that SYS06/SYS is not resident in RAM.
4E06
POP HL
Restore the command line from top of the STACK into Register Pair HL, and then remove the entry from the stack.
“HELP”
4E07
4E07
CALL SKIPSP
[4E97H]
[4E97H]
GOSUB to the routine at 4E97H to fetch the current character of the command line, skipping spaces. Register HL is updated to point to that first non-space character.
4E0A
CP 0DH
Compare the value held in Register A against 0DH (ASCII: CARRIAGE RETURN). Results: If Register A equals CARRIAGE RETURN, the Z FLAG is set; otherwise the NZ FLAG is set.
4E0C
JR NZ,HELP6
[4E45H]
[4E45H]
If the NZ FLAG (Not Zero) has been set that means that there was a parameter given, since the routine at 4E97 returns non-space characters and it wasn’t a CARRIAGE RETURN. JUMP to 4E45H.
4E0EH – Routine if HELP is entered with No Parameters.
LD HL,HLPMSG
LET Register Pair HL = 4F90H to point to the message “HELP is available for the following:“.
4E11
CALL 021BH
[021BH]
[021BH]
GOSUB to 021BH.
NOTE: 021BH is the Model III ROM routine to display the character at (HL) until a 03H is found.
NOTE: 021BH is the Model III ROM routine to display the character at (HL) until a 03H is found.
4E14
LD HL,HLPTAB
LET Register Pair HL = 4EB6H, which is a pointer to ASCII Help Command Lookup Table (which is a length byte followed by the library command).
LD A,(HL)
Fetch the length byte (stored at memory location pointed to by Register Pair HL) and put it into Register A.
4E18
OR A
Since a LD command does not set any FLAGS, Set FLAGS based on the contents of Register A (and, in all events, clear the CARRY FLAG).
4E19
RET Z
If we ran out of table then the Z FLAG (Zero) has been set; we are done, so RETurn to the caller to exit to DOS.
4E1AH – Help Table Lookup – If we didn’t run out of table, continue here.
4E1A
PUSH HL
Save the pointer to ASCII Help Command Lookup Table (pointed to by Register Pair HL) to the top of the stack.
4E1B
LD B,(HL)
Fetch the length of the parameter (stored at memory location pointed to by Register Pair HL) and put it into Register B.
4E1C
INC HL
Point Register Pair HL to first ASCII character of the library command by INCrementing the value stored in Register Pair HL by 1.
4E1D
CALL DSPLY
[4E7EH]
[4E7EH]
Output the parameter pointed to by Register Pair HL to the screen via a GOSUB to 4E7EH. That routine requires B to be set to the number of characters to display, and HL to point to the message to be displayed.
4E20
LD A,(4020H)
Fetch the value stored at memory location 4020H and put it into Register A.
NOTE: 4020H is the storage location for the CURSOR POSITION ON SCREEN.
NOTE: 4020H is the storage location for the CURSOR POSITION ON SCREEN.
4E23
AND 3FH
MASK the value of Register A against 3FH (0011 1111). This has the effect of turning leaving only the row bits (5, 4, 3, 2, 1, 0) active.
4E25
CP 38H
Check to see if we are at column 56 or beyond the screen by comparing the value held in Register A against 38H (Decimal: 56). Results:
- If Register A equals 56, the Z FLAG is set.
- If A < 56, the CARRY FLAG will be set.
- if A >= 56, the NO CARRY FLAG will be set.
4E27
JR C,HELP3
[4E30H]
[4E30H]
If we are < column 56, the C FLAG (Carry) will have been set, and we do not need to start a new line; so bypass the code to start a new line by JUMPing to 4E30H.
4E29H – Help Table Display – Position the cursor to the start of a new line and continue at 4E3DH.
4E29
LD A,0DH
LET Register A = 0DH (0000 1101) / (Decimal: 13)(ASCII: CARRIAGE RETURN).
4E2B
CALL 0033H
[0033H]
[0033H]
GOSUB to 0033H.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
4E30H – Help Table Message Display – Jumped here if we didn’t need to start a new line on screen. On entry Register A holds the current screen column position.
NEG
We need to see how many spaces are needed to get to the next tab stop. First, negate the contents of Register A (which is the same as -A).
4E32
AND 07H
MASK the value of Register A against 07H (0000 0111) to leave only bits 2, 1, 0 active, making 8 (which is the TAB length) the highest number.
4E34
INC A
INCrement the value stored in Register A by 1, which is now the number of spaces we need to get to the next tab stop.
4E35
LD B,A
To space to the next tab stop we will be using a DJNZ loop, which requires Register B to be the loop counter; so LET Register B = the number of spaces to move (held in Register A).
4E38
CALL 0033H
[0033H]
[0033H]
GOSUB to 0033H.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
4E3B
DJNZ HELP4
[4E36H]
[4E36H]
LOOP back to 4E36H, reducing Register B each time, and continue to LOOP until Register B has been reduced to ZERO, in which case, continue with the next instruction.
At this point we are now positioned on the screen at the appropriate tab stop.
POP HL
Restore the pointer to ASCII Help Command Lookup Table from the top of the stack back into Register Pair HL.
4E3E
4E3F
4E3F
LD C,(HL)
LD B,00H
LD B,00H
Let Register Pair BC = the length of the parameter (which is in the memory location pointed to by Register Pair HL).
We now want to point HL to the next entry in the table.
4E41
INC HL
INCrement the value stored in Register Pair HL by 1.
4E42
ADD HL,BC
Point to the next entry in the ASCII Help Command Lookup Table by adding Register BC to Register Pair HL (i.e., the pointer in the table).
4E45H – Process the Command Line.
“HELP6”
4E45
4E45
EX DE,HL
EXchange the value stored in Register Pair HL (i.e., the command line) with the value stored in Register Pair DE (i.e, irrelevant).
4E46
LD HL,HLPTAB
LET Register Pair HL = 4EB6H, which is a pointer to ASCII Help Command Lookup Table (which is a length byte followed by the library command).
4E49
LD B,01H
LET Register B = 01H for a loop counter.
LD A,(HL)
Fetch the length byte (stored at memory location pointed to by Register Pair HL) and put it into Register A.
4E4C
OR A
Since a LD command does not set any FLAGS, Set FLAGS based on the contents of Register A (and, in all events, clear the CARRY FLAG).
4E4D
JR Z,HLPFLT
[4E0EH]
[4E0EH]
If the Z FLAG (Zero) has been set, then we are at the end of the table; so JUMP to 4E0EH to display the entire HELP table.
4E4F
PUSH BC
Save the counter to the current entry number (held in Register B) to the top of the stack.
4E50
4E51
4E51
LD C,(HL)
LD B,00H
LD B,00H
Fetch the length of the parameter (i.e., the value stored at memory location pointed to by Register Pair HL) and put it into Register Pair BC.
4E53
INC HL
INCrement the pointer in the ASCII Help Command Lookup Table to the first character by bumping HL by 1.
4E57
JR Z,HELP8
[4E5EH]
[4E5EH]
If we have a match then that routine will have set the Z FLAG (Zero); JUMP to 4E5EH.
4E59
ADD HL,BC
If we are here then we had a mismatch, so move to the next entry in the ASCII Help Command Lookup Table by adding BC to the pointer in the help table (i.e. HL).
4E5A
POP BC
Restore the counter/entry number we just checked from the top of the STACK into Register Pair BC, and then remove the entry from the stack.
4E5B
INC B
INCrement the counter/entry number (stored in Register B) by 1.
4E5EH – We have a match between the HELP command wanted and the HELP command found in the lookup table.
“HELP8”
4E5E
4E5E
POP BC
Restore the current counter/entry number from the top of the STACK into Register Pair BC, and then remove the entry from the stack.
4E5F
LD A,B
LET Register A = the current counter/entry number (held in Register B).
4E60
LD HL,COMTAB
LET Register Pair HL = 4FB5H, which is the pointer table to the message to display on screen based on the counter byte. This table is set up in 3 byte segments, the first is the counter and the second is the LSB/MSB byte combination to the table entry with the help messages to display.
4E66
JR C,HLPFLT
[4E0EH]
[4E0EH]
If the C FLAG (Carry) has been set then that GOSUB exited with an error; so JUMP to 4E0EH to treat it as if no parameters was given, and display the entire HELP table.
4E68H – Display the HELP entry. The associated table is 1 byte comprising the number of lines to display, followed by that number of DEFT’s of the text to display.
“HELP9”
4E68
4E68
LD A,0DH
Move to a new line by setting Register A = 0DH (ASCII: CARRIAGE RETURN).
4E6A
CALL 0033H
[0033H]
[0033H]
GOSUB to 0033H.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
4E6D
LD B,(HL)
Fetch the number of lines to display (stored at memory location pointed to by Register Pair HL) and put it into Register B.
4E6E
INC HL
Bump Register Pair HL by 1 to now point to the first line of help text to display.
PUSH BC
Save the number of lines to display (held in Register B) to the top of the stack.
4E70
LD B,(HL)
Fetch the length of the current text line (stored at memory location pointed to by Register Pair HL) and put it into Register B.
4E71
INC HL
Bump Register Pair HL by 1 to point to the first line of text to display.
4E72
CALL DSPLY
[4E7EH]
[4E7EH]
Display the current text line via a GOSUB to 4E7EH. That routine requires B to be set to the number of characters to display, and HL to point to the message to be displayed.
4E75
LD A,0DH
LET Register A = 0DH (ASCII: CARRIAGE RETURN).
4E77
CALL 0033H
[0033H]
[0033H]
GOSUB to 0033H.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
4E7A
POP BC
Restore the number of lines left from the top of the STACK into Register Pair BC, and then remove the entry from the stack.
4E7B
DJNZ HELP10
[4E6FH]
[4E6FH]
LOOP back to 4E6FH, reducing Register B each time, and continue to LOOP until Register B has been reduced to ZERO, in which case, continue with the next instruction.
4E7D
RET
We are done! RETurn to the caller.
4E7EH – Subroutine – Display Register B number of characters of the message pointed to by Register Pair HL.
“DSPLY”
4E7E
4E7E
LD A,(HL)
Fetch a character from the line to display (stored at memory location pointed to by Register Pair HL) and put it into Register A.
4E7F
CALL 0033H
[0033H]
[0033H]
GOSUB to 0033H.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
NOTE: 0033H is the Model III ROM character print routine; displays the character held in Register A at the current cursor position.
4E82
INC HL
INCrement the value stored in Register Pair HL by 1.
4E83
DJNZ 4E7EH
[4E7EH]
[4E7EH]
LOOP back to 4E7EH, reducing Register B each time, and continue to LOOP until Register B has been reduced to ZERO, in which case, continue with the next instruction.
4E85
RET
RETurn to the caller.
4E86H – Subroutine – Check to if the parameter entry in the table (pointed to by Register Pair HL) matches the command line.
“COMPAR”
4E86
4E86
PUSH BC
Save Register Pair BC to the top of the stack.
4E87
PUSH DE
Save Register Pair DE to the top of the stack.
4E88
PUSH HL
Save Register Pair HL to the top of the stack.
LD A,(DE)
Fetch the requested parameter (stored at memory location pointed to by Register Pair DE) and put it into Register A.
4E8A
CP (HL)
Compare the table entry (held in the memory location (HL)) against the requested parameter (held in Register A). Results: If they match, the Z FLAG is set; otherwise the NZ FLAG is set.
4E8B
JR NZ,COMPA2
[4E93H]
[4E93H]
If they didn’t match, the NZ FLAG (Not Zero) would have been set and we are just going to exit via a JUMP to 4E93H.
4E8DH – Continuation of 4E86H Subroutine – Fall through if there is a match between the nth character of the requested parameter and the the nth character of the found one.
4E8D
LDI
Move to the 2nd character of both HL and DE via LDI command; which copies BC number of characters from (HL) to (DE), dropping BC each time. When BC hits 0, the PE flag is reset.
4E8F
JP PE,COMPA1
[4E89H]
[4E89H]
If the PE flag is set, then continue to loop through the entire entry via a JUMP to 4E89H.
4E92H – Continuation of 4E86H Subroutine – Fall through if the match has been found and processed.
4E92
XOR A
Set Register A to ZERO and clear all flags. This will set the Z FLAG to indicate success
POP HL
Put the value held at the top of the STACK into Register Pair HL, and then remove the entry from the stack.
4E94
POP DE
Put the value held at the top of the STACK into Register Pair DE, and then remove the entry from the stack.
4E95
POP BC
Put the value held at the top of the STACK into Register Pair BC, and then remove the entry from the stack.
4E96
RET
RETurn to the caller.
4E97H – Subroutine to fetch the current character of the command line which is NOT a space into Register A. Register HL is updated to point to that first non-space character.
“SKIPSP”
4E97
4E97
LD A,(HL)
Fetch the value stored at memory location pointed to by Register Pair HL and put it into Register A.
4E98
CP 20H
Compare the value held in Register A against 20H (ASCII: SPACE). If Register A equals SPACE, the Z FLAG is set; otherwise the NZ FLAG is set.
4E9A
RET NZ
If we had a NON-SPACE, the NZ FLAG (Not Zero) will have been set, RETurn to the caller.
4E9B
INC HL
Point to the next character by INCrementing the value stored in Register Pair HL by 1.
4E9EH – Subroutine, when we have found the entry we are looking for (in A), so we need to look up the location of the text to display.
“GETTAB”
4E9E
4E9E
LD C,A
LET Register C = the current counter/entry number (held in Register A).
LD A,(HL)
Fetch the character of the pointer table to the message to display on screen (Register Pair HL) and put it into Register A.
4EA0
OR A
Since a LD command does not set any FLAGS, Set FLAGS based on the contents of Register A (and, in all events, clear the CARRY FLAG).
4EA1
JR NZ,GETTA2
[4EA6H]
[4EA6H]
If Register A is not 0, then we have not hit the end of the parameter table and the NZ FLAG (Not Zero) has been set, JUMP to 4EA6H.
4EA3
LD A,C
Restore the current counter/entry number (held in Register C) into Register A.
4EA4
SCF
Turn the CARRY FLAG on to indicate an error.
4EA5
RET
RETurn to the caller.
4EA6H – Continuation of the Subroutine at 4E9EH, jumped if we have not hit the end of the parameter table.
“GETTA2”
4EA6
4EA6
CP C
Check to see if the first byte of the Pointer table to the message to display on screen (held in Register A) matches the counter byte (held in Register C). Results: If Register they match, the Z FLAG is set; otherwise the NZ FLAG is set.
4EA9
4EAA
4EAB
4EAA
4EAB
INC HL
INC HL
INC HL
INC HL
INC HL
Bump Register Pair HL by 3 to point to the next entry, since each entry in that table is 3 bytes long – counter byte, LSB, and MSB.
4EAEH – Continuation of the Subroutine at 4E9EH, jumped if we have a match to get the address based on the match.
“GETTA3”
4EAE
4EAE
INC HL
INCrement the value stored in Register Pair HL by 1 to now point to the next byte which is the LSB of the location for the applicable HELP message to display.
4EAF
LD A,(HL)
Fetch the value stored (which would be the LSB of the pointer to the text) at memory location pointed to by Register Pair HL and put it into Register A.
4EB0
INC HL
INCrement the value stored in Register Pair HL by 1 to point to the next character in the applicable text.
4EB1
LD H,(HL)
Fetch the value stored (which would be the MSB of the pointer to the text) at memory location pointed to by Register Pair HL and put it into Register H.
4EB2
LD L,A
LET Register L = Register A so that Register Pair HL now points to the applicable text.
4EB3
OR A
Set FLAGS based on the contents of Register A (and, in all events, clear the CARRY FLAG).
4EB4
LD A,C
LET Register A = the actual/final parameter number (held in Register C).
4EB5
RET
RETurn to the caller with the CARRY FLAG set.
4EB6H – ASCII Lookup Table.
“HLPTAB”
4EB6
4EB6
DEFB 06
The length of the APPEND command
4EB7
DEFM ‘APPEND’
4EBD
DEFB 06
The length of the ATTRIB command.
4EBE
DEFM ‘ATTRIB’
4EC4
DEFB 04
The length of the AUTO command.
4EC5
DEFM ‘AUTO’
4EC9
DEFB 06
The length of the BACKUP command.
4ECA
DEFM ‘BACKUP’
4ED0
DEFB 05
The length of the BUILD command.
4ED1
DEFM ‘BUILD’
4ED6
DEFB 5
The length of the CLEAR command.
4ED7
DEFM ‘CLEAR’
4EDC
DEFB 05
The length of the CLOCK command.
4EDD
DEFM ‘CLOCK’
4EE2
DEFB 03
The length of the CLS command.
4EE3
DEFM ‘CLS’
4EE6
DEFB 04
The length of the COPY command.
4EE7
DEFM ‘COPY’
4EEB
DEFB 06
The length of the CREATE command.
4EEC
DEFM ‘CREATE’
4EF2
DEFB 04
The length of the DATE command.
4EF3
DEFM ‘DATE’
4EF7
DEFB 05
The length of the DEBUG command.
4EF8
DEFM ‘DEBUG’
4EFD
DEFB 03
The length of the DIR command.
4EFE
DEFM ‘DIR’
4F01
DEFB 02
The length of the DO command.
4F02
DEFM ‘DO’
4F04
DEFB 04
The length of the DUAL command.
4F05
DEFM ‘DUAL’
4F09
DEFB 04
The length of the DUMP command.
4F0A
DEFM ‘DUMP’
4F0E
DEFB 05
The length of the ERROR command.
4F0F
DEFM ‘ERROR’
4F14
DEFB 05
The length of the FSPEC command.
4F15
DEFM ‘FSPEC’
4F1A
DEFB 05
The length of the FORMS command.
4F1B
DEFM ‘FORMS’
4F20
DEFB 06
The length of the FORMAT command.
4F21
DEFM ‘FORMAT’
4F27
DEFB 04
The length of the FREE command.
4F28
DEFM ‘FREE’
4F2C
DEFB 04
The length of the HELP command.
4F2D
DEFM ‘HELP’
4F31
DEFB 04
The length of the KILL command.
4F32
DEFM ‘KILL’
4F36
DEFB 03
The length of the LIB command.
4F37
DEFM ‘LIB’
4F3A
DEFB 04
The length of the LIST command.
4F3B
DEFM ‘LIST’
4F3F
DEFB 04
The length of the LOAD command.
4F40
DEFM ‘LOAD’
4F44
DEFB 06
The length of the MASTER command.
4F45
DEFM ‘MASTER’
4F4B
DEFB 05
The length of the PATCH command.
4F4C
DEFM ‘PATCH’
4F51
DEFB 05
The length of the PAUSE command.
4F52
DEFM ‘PAUSE’
4F57
DEFB 04
The length of the PROT command.
4F58
DEFM ‘PROT’
4F5C
DEFB 05
The length of the PURGE command.
4F5D
DEFM ‘PURGE’
4F62
DEFB 04
The length of the RELO command.
4F63
DEFM ‘RELO’
4F67
DEFB 06
The length of the RENAME command.
4F68
DEFM ‘RENAME’
4F6E
DEFB 05
The length of the ROUTE command.
4F6F
DEFM ‘ROUTE’
4F74
DEFB 06
The length of the SETCOM command.
4F75
DEFM ‘SETCOM’
4F7B
DEFB 06
The length of the SYNTAX command.
4F7C
DEFM ‘SYNTAX’
4F82
DEFB 04
The length of the TAPE command.
4F83
DEFM ‘TAPE’
4F87
DEFB 04
The length of the TIME command.
4F88
DEFM ‘TIME’
4F8C
DEFB 02
The length of the WP command.
4F8D
DEFM ‘WP’
4F8F
DEFB 00H
This is the table terminator.
4F90H – MESSAGE STORAGE AREA.
“HLPMSG”
4F90
4F90
DEFM …
“‘Help is available for the following:’ + 0DH“.
4FB5H – Command Address Table.
“COMTAB”
4FB5
4FB5
DEFB 01H
Jump Table Entry 01 …
4FB8
DEFB 02H
Jump Table Entry 02 …
4FBB
DEFB 03H
Jump Table Entry 03 …
4FBE
DEFB 04H
Jump Table Entry 04 …
4FC1
DEFB 05H
Jump Table Entry 05 …
4FC4
DEFB 06H
Jump Table Entry 06 …
4FC7
DEFB 07H
Jump Table Entry 07 …
4FCA
DEFB 08H
Jump Table Entry 08 …
4FCD
DEFB 09H
Jump Table Entry 09 …
4FD0
DEFB 0AH
Jump Table Entry 0A …
4FD3
DEFB 0BH
Jump Table Entry 0B …
4FD6
DEFB 0CH
Jump Table Entry 0C …
4FD9
DEFB 0DH
Jump Table Entry 0D …
4FDC
DEFB 0EH
Jump Table Entry 0E …
4FDF
DEFB 0FH
Jump Table Entry 0F …
4FE2
DEFB 10H
Jump Table Entry 10 …
4FE5
DEFB 11H
Jump Table Entry 11 …
4FE8
DEFB 12H
Jump Table Entry 12 …
4FEB
DEFB 13H
Jump Table Entry 13 …
4FEE
DEFB 14H
Jump Table Entry 14 …
4FF1
DEFB 15H
Jump Table Entry 15 …
4FF4
DEFB 16H
Jump Table Entry 16 …
4FF7
DEFB 17H
Jump Table Entry 17 …
4FFA
DEFB 18H
Jump Table Entry 18H…
4FFD
DEFB 19H
Jump Table Entry 19H…
5000
DEFB 1AH
Jump Table Entry 1AH…
5003
DEFB 1BH
Jump Table Entry 1BH…
5006
DEFB 1CH
Jump Table Entry 1CH…
5009
DEFB 1DH
Jump Table Entry 1DH…
500C
DEFB 1EH
Jump Table Entry 1EH…
500F
DEFB 1FH
Jump Table Entry 1FH…
5012
DEFB 20H
Jump Table Entry 20H…
5015
DEFB 21H
Jump Table Entry 21H…
5018
DEFB 22H
Jump Table Entry 22H…
501B
DEFB 23H
Jump Table Entry 23H…
501E
DEFB 24H
Jump Table Entry 24H…
5021
DEFB 25H
Jump Table Entry 25H…
5024
DEFB 26H
Jump Table Entry 26H…
5027
DEFB 27H
Jump Table Entry 27H…
502AH – Jump Table Destination for APPEND Command.
DEFT →
‘APPEND FSPEC [TO] FSPEC’
DEFT →
‘Append one file to the end of another’
DEFT →
‘ATTRIB FSPEC ([I][N],[ACC=name],[UPD=name],[PROT=level])’
DEFT →
‘Assign Passwords and level of Protection’ + 0DH
DEFT →
‘I = Make Invisible, N = Make Non-Invisible’
DEFT →
‘ACC = Access Password, UPD = Update Password’
DEFT →
‘PROT = Level of Protection’
DEFT →
‘AUTO [:D] <CR> or Command’ + 0DH
DEFT →
‘If <CR> then AUTOed function is removed’
DEFT →
‘If Command, then Command will execute on RESET/POWER UP’
DEFT →
‘BACKUP [:D] [:D]’
DEFT →
‘Duplicate a diskette. :D = Drive numbers’
DEFT →
‘BUILD FSPEC’
DEFT →
‘Create a Command file to execute using DO’
DEFT →
‘CLEAR [([START=aaaa,END=bbbb],[MEM=cccc])]’ + 0DH
DEFT →
‘Clear <CR> will clear all user memory, reset end of memory’
DEFT →
‘-else- Clear, starting at “aaaa”, ending at “bbbb”‘
DEFT →
‘-else- MEM = desired memory protect’
DEFT →
‘CLOCK [([ON][OFF])]’
DEFT →
‘Turn clock display on/off’
DEFT →
‘CLS <CR> (Clear screen)’
DEFT →
‘COPY FSPEC [TO] FSPEC or FSPEC :D or /EXT:D :D’
DEFT →
‘Make a copy of a file’
DEFT →
‘CREATE FSPEC [([LRL=aaa],[REC=xxx])]’ + 0DH
DEFT →
‘Create a file. LRL=Logical Record Length’
DEFT →
‘REC=Number of records desired’
DEFT →
‘DATE [MM/DD/YY]’
DEFT →
‘Display current date, or set new date’
DEFT →
‘DEBUG <CR> (Enable Debugger)’
DEFT →
‘DIR [([SYS],[INV],[PRT])]’ + 0DH
DEFT →
‘SYS=System files, INV=Invisible files’
DEFT →
‘PRT=Output to Line Printer’
DEFT →
‘DO FSPEC’
DEFT →
‘Execute a Command File created using BUILD’
DEFT →
‘DUAL [([ON][OFF])]’
DEFT →
‘Output to BOTH video and printer’
DEFT →
‘DUMP FSPEC (START=aaaa,END=bbbb,[RELO=cccc],[TRA=dddd])’
DEFT →
‘Save contents of memory to disk’ + 0DH
DEFT →
‘START=starting address, END=ending address’
DEFT →
‘RELO=relocate address, TRA=entry address’
DEFT →
‘ERROR XX (Display error message)’
DEFT →
‘FSPEC = FILENAME/EXT.PASSWORD:D’
DEFT →
‘FORMS [([WIDTH=xxx],[LINES=xxx])]’ + 0DH
DEFT →
‘<CR> = execute Top or Form’
DEFT →
‘WIDTH = number of characters per line’
DEFT →
‘LINES = desired number of lines per page’
DEFT →
‘FORMAT [:D] (Initialize a diskette)’
DEFT →
‘FREE [:D] [(PRT)] (Display free space map)’
DEFT →
‘PRT = Output to Line Printer’
DEFT →
‘HELP [COMMAND]’
DEFT →
‘KILL FSPEC or /EXT:D’
DEFT →
‘Delete files from a diskette’
DEFT →
‘LIB <CR> (Display library commands)’
DEFT →
‘LIST FSPEC [([ASCII],[SLOW],[PRT])]’
DEFT →
‘Display a file. PRT = Output to Line Printer’
DEFT →
‘ASCII = Ascii Text, SLOW = Slower output’
DEFT →
‘LOAD FSPEC (Load a program into memory)’
DEFT →
‘MASTER [(DRIVE=x)]’ + 0DH
DEFT →
‘Force a drive to be the Master Read/Write drive’
DEFT →
‘<CR> Releases any drive defined as Master’
DEFT →
‘PATCH FSPEC (ADD=xxxx,FIND=xx,CHG=xx)’
DEFT →
‘Make a change to a program file’ + 0DH
DEFT →
‘ADD = address at which data is found’
DEFT →
‘FIND = byte(s) to find (or compare to)’
DEFT →
‘CHG = byte(s) to change found byte(s) to’
DEFT →
‘PAUSE [TEXT]’
DEFT →
‘Normally used in BUILD file to pause execution’
DEFT →
‘PROT [:D] [([PW],[LOCK])]’
DEFT →
‘Change the Master Password and protection of user files’ + 0DH
DEFT →
‘PW = Change Master Password’
DEFT →
‘LOCK = assign the Master Password to user files’
DEFT →
‘PURGE [:D] [([SYS],[INV],[ALL])]’
DEFT →
‘Delete files from Diskette’ + 0DH
DEFT →
‘<CR> Defaults to user Files only’
DEFT →
‘SYS = System Files’
DEFT →
‘INV = Invisible Files’
DEFT →
‘ALL = All files on Diskette’
DEFT →
‘RELO FSPEC (ADD=aaaa)’
DEFT →
‘Ability to change where program loads into memory’ + 0DH
DEFT →
‘Will NOT change addresses inside of program’
DEFT →
‘ADD = Relocation address’
DEFT →
‘RENAME FSPEC [TO] FSPEC’
DEFT →
‘Change the name of a file/program’
DEFT →
‘ROUTE [(SOURCE=xx,DESTIN=yy)]’
DEFT →
‘Ability to route I/O devices’ + 0DH
DEFT →
‘<CR> = Reset I/O Drivers to Original’
DEFT →
‘DO = display, PR = printer, KB = keyboard’
DEFT →
‘RI = RS-232 Input, RO = RS-232 Output’
DEFT →
‘SETCOM [([OFF][WORD=x],[BAUD=xxx],[STOP=x],[PARITY=x],[MODE])]’
DEFT →
‘Initialize the RS-232 drivers’ + 0DH
DEFT →
‘<CR> = display present values’
DEFT →
‘WORD = number of bits per byte (5, 6, 7, or 8)’
DEFT →
‘BAUD = desired baud rate’
DEFT →
‘STOP = number of stop bits (1 or 2)’
DEFT →
‘PARITY = [1 = ODD], [2 = EVEN], [3 = NONE]’
DEFT →
‘MODE = [WAIT] [NOWAIT]’
DEFT →
‘OFF = Turn RS-232 drivers off’
DEFT →
‘() = Set default values’
DEFT →
‘FSPEC = filespec, /EXT = extension’
DEFT →
‘[] = optional, :D = Drive number’
DEFT →
‘<CR> = Enter key’
DEFT →
‘TAPE (S=x,D=y)’
DEFT →
‘Execute Tape Transfer Operation’ + 0DH
DEFT →
‘S stands for SOURCE, D stands for DESTINATION’
DEFT →
‘x or y: T=Tape, D=Disk, R=Ram (Memory)’
DEFT →
‘TIME [HH:MM:SS]’
DEFT →
‘Display current time, or set new time’
DEFT →
‘WP [(DRIVE=x)]’
DEFT →
‘Write Protect a Disk Drive’ + 0DH
DEFT →
‘(Will NOT override Write Protect tab on diskette)’
DEFT →
‘<CR> = Unprotect all drives’
DEFT →
‘-else- Write Protect Disk Drive “x”‘
END 4E00H