General:
SYS08/SYS handles the HELP command.
Disassembly:
“START”
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
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
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
GOSUB to 021BH.
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
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.
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
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
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.
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).
LD A,20H
LET Register A = 20H (ASCII: SPACE).
4E38
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.
4E3B
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
LD C,(HL)
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).
4E43
LOOP back to 4E17H to process the next entry in the table.
4E45H – Process the Command Line.
“HELP6”
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
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
LD C,(HL)
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.
4E54
Compare the first characters by GOSUBing to 4E86H.
4E57
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.
4E5C
LOOP back to 4E4BH to process the next entry.
4E5EH – We have a match between the HELP command wanted and the HELP command found in the lookup table.
“HELP8”
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.
4E63
Get the text pointer by GOSUBing to 4E9EH.
4E66
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
LD A,0DH
Move to a new line by setting Register A = 0DH (ASCII: CARRIAGE RETURN).
4E6A
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.
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
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
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.
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
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
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
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.
4E82
INC HL
INCrement the value stored in Register Pair HL by 1.
4E83
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
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
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
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
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
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
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
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.
4EA7
If they match, then the Z FLAG (Zero) will have been set, JUMP to 4EAEH.
4EA9
4EAA
4EAB
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.
4EAC
Loop back to 4E9FH to process the next entry.
4EAEH – Continuation of the Subroutine at 4E9EH, jumped if we have a match to get the address based on the match.
“GETTA3”
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
DEFB 06
The length of the APPEND command
4EBD
DEFB 06
The length of the ATTRIB command.
4EC4
DEFB 04
The length of the AUTO command.
4EC9
DEFB 06
The length of the BACKUP command.
4ED0
DEFB 05
The length of the BUILD command.
4ED6
DEFB 5
The length of the CLEAR command.
4EDC
DEFB 05
The length of the CLOCK command.
4EE2
DEFB 03
The length of the CLS command.
4EE6
DEFB 04
The length of the COPY command.
4EEB
DEFB 06
The length of the CREATE command.
4EF2
DEFB 04
The length of the DATE command.
4EF7
DEFB 05
The length of the DEBUG command.
4EFD
DEFB 03
The length of the DIR command.
4F01
DEFB 02
The length of the DO command.
4F04
DEFB 04
The length of the DUAL command.
4F09
DEFB 04
The length of the DUMP command.
4F0E
DEFB 05
The length of the ERROR command.
4F14
DEFB 05
The length of the FSPEC command.
4F1A
DEFB 05
The length of the FORMS command.
4F20
DEFB 06
The length of the FORMAT command.
4F27
DEFB 04
The length of the FREE command.
4F2C
DEFB 04
The length of the HELP command.
4F31
DEFB 04
The length of the KILL command.
4F36
DEFB 03
The length of the LIB command.
4F3A
DEFB 04
The length of the LIST command.
4F3F
DEFB 04
The length of the LOAD command.
4F44
DEFB 06
The length of the MASTER command.
4F4B
DEFB 05
The length of the PATCH command.
4F51
DEFB 05
The length of the PAUSE command.
4F57
DEFB 04
The length of the PROT command.
4F5C
DEFB 05
The length of the PURGE command.
4F62
DEFB 04
The length of the RELO command.
4F67
DEFB 06
The length of the RENAME command.
4F6E
DEFB 05
The length of the ROUTE command.
4F74
DEFB 06
The length of the SETCOM command.
4F7B
DEFB 06
The length of the SYNTAX command.
4F82
DEFB 04
The length of the TAPE command.
4F87
DEFB 04
The length of the TIME command.
4F8C
DEFB 02
The length of the WP command.
4F8F
DEFB 00H
This is the table terminator.
4F90H – MESSAGE STORAGE AREA.
“HLPMSG”
4F90
DEFM …
“‘Help is available for the following:’ + 0DH“.
4FB5H – Command Address Table.
“COMTAB”
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.
DEFB 02H
Number of lines of text to display
DEFT →
‘APPEND FSPEC [TO] FSPEC’
DEFT →
‘Append one file to the end of another’
DEFB 05H
Number of lines of text to display
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’
DEFB 03H
Number of lines of text to display
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’
DEFB 02H
Number of lines of text to display
DEFT →
‘Duplicate a diskette. :D = Drive numbers’
DEFB 02H
Number of lines of text to display
DEFT →
‘Create a Command file to execute using DO’
DEFB 04H
Number of lines of text to display
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’
DEFB 02H
Number of lines of text to display
DEFT →
‘CLOCK [([ON][OFF])]’
DEFT →
‘Turn clock display on/off’
DEFB 01H
Number of lines of text to display
DEFT →
‘CLS <CR> (Clear screen)’
DEFB 02H
Number of lines of text to display
DEFT →
‘COPY FSPEC [TO] FSPEC or FSPEC :D or /EXT:D :D’
DEFT →
‘Make a copy of a file’
DEFB 03H
Number of lines of text to display
DEFT →
‘CREATE FSPEC [([LRL=aaa],[REC=xxx])]’ + 0DH
DEFT →
‘Create a file. LRL=Logical Record Length’
DEFT →
‘REC=Number of records desired’
DEFB 02H
Number of lines of text to display
DEFT →
‘Display current date, or set new date’
DEFB 01H
Number of lines of text to display
DEFT →
‘DEBUG <CR> (Enable Debugger)’
DEFB 03H
Number of lines of text to display
DEFT →
‘DIR [([SYS],[INV],[PRT])]’ + 0DH
DEFT →
‘SYS=System files, INV=Invisible files’
DEFT →
‘PRT=Output to Line Printer’
DEFB 02H
Number of lines of text to display
DEFT →
‘Execute a Command File created using BUILD’
DEFB 02H
Number of lines of text to display
DEFT →
‘DUAL [([ON][OFF])]’
DEFT →
‘Output to BOTH video and printer’
DEFB 04H
Number of lines of text to display
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’
DEFB 01H
Number of lines of text to display
DEFT →
‘ERROR XX (Display error message)’
DEFB 01H
Number of lines of text to display
DEFT →
‘FSPEC = FILENAME/EXT.PASSWORD:D’
DEFB 04H
Number of lines of text to display
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’
DEFB 01H
Number of lines of text to display
DEFT →
‘FORMAT [:D] (Initialize a diskette)’
DEFB 02
Number of lines of text to display
DEFT →
‘FREE [:D] [(PRT)] (Display free space map)’
DEFT →
‘PRT = Output to Line Printer’
DEFB 01H
Number of lines of text to display
DEFB 02H
Number of lines of text to display
DEFT →
‘KILL FSPEC or /EXT:D’
DEFT →
‘Delete files from a diskette’
DEFB 01H
Number of lines of text to display
DEFT →
‘LIB <CR> (Display library commands)’
DEFB 03H
Number of lines of text to display
DEFT →
‘LIST FSPEC [([ASCII],[SLOW],[PRT])]’
DEFT →
‘Display a file. PRT = Output to Line Printer’
DEFT →
‘ASCII = Ascii Text, SLOW = Slower output’
DEFB 01H
Number of lines of text to display
DEFT →
‘LOAD FSPEC (Load a program into memory)’
DEFB 03H
Number of lines of text to display
DEFT →
‘MASTER [(DRIVE=x)]’ + 0DH
DEFT →
‘Force a drive to be the Master Read/Write drive’
DEFT →
‘<CR> Releases any drive defined as Master’
DEFB 05H
Number of lines of text to display
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’
DEFB 02H
Number of lines of text to display
DEFT →
‘Normally used in BUILD file to pause execution’
DEFB 04H
Number of lines of text to display
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’
DEFB 06H
Number of lines of text to display
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’
DEFB 04H
Number of lines of text to display
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’
DEFB 02H
Number of lines of text to display
DEFT →
‘RENAME FSPEC [TO] FSPEC’
DEFT →
‘Change the name of a file/program’
DEFB 05H
Number of lines of text to display
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’
DEFB 0AH
Number of lines of text to display
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’
DEFB 03H
Number of lines of text to display
DEFT →
‘FSPEC = filespec, /EXT = extension’
DEFT →
‘[] = optional, :D = Drive number’
DEFB 04H
Number of lines of text to display
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)’
DEFB 02H
Number of lines of text to display
DEFT →
‘Display current time, or set new time’
DEFB 04H
Number of lines of text to display
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”‘