RST and DISK BASIC Vectors
Page Index
ROM RST Vectors - Bob Alger (10/27/83)
| RST | Jump | Contents | Purpose |
|---|---|---|---|
| 0 | none | Re-boot- power on or RESET | |
| 8 | 4000 | JP 1C96 | If (HL) = ((SP))- do RST10H logic, else print SN error |
| 10 | 4003 | JP 1D78 | Find next non-blank character in a string |
| 18 | 4006 | JP 1C90 | DE compared to HL. Z set if DE = HL, C set if DE > HL |
| 20 | 4009 | JP 25D9 | Test NTF flag at 40AF. Z flag set if string, M if integer, P&C if single, P&NC if double, A=NTF - 3. |
| 28 | 400C | RET NOP NOP | BREAK key vector. You can put your own 3 byte instruction here to jump to your own routine. |
| 30 | 400F | RET NOP NOP | Used by DOS |
| 38 | 4012 | EI RET NOP | Used by DOS |
DISK BASIC COMMAND VECTORS
| Hex Address | Dec Address | Command | Model I NEWDOS/80 v2.0 Jump | Model I TRSDOS v2.3 Jump |
|---|---|---|---|---|
| 4152 | 16722 | CVI | 58F5H | 5F18H |
| 4155 | 16725 | FN* | 577FH | 558EH |
| 4158 | 16728 | CVS | 58F2H | 5F1BH |
| 415B | 16731 | DEF | 5852H | 5655H |
| 415E | 16734 | CVD | 58EFH | 5F1EH |
| 4161 | 16737 | EOF | 5EC5H | 62B8H |
| 4164 | 16740 | LOC | 5ED1H | 62FEH |
| 4167 | 16743 | LOF | 5EC9H | 630FH |
| 416A | 16746 | MKI$ | 58DEH | 5EFFH |
| 416D | 16749 | MKS$ | 58DBH | 5F02H |
| 4170 | 16752 | MKD$ | 58D8H | 5F05H |
| 4173 | 16755 | CMD | 57FFH | 56CBH |
| 4176 | 16758 | TIME$* | 58C4H | 5745H |
| 4179 | 16761 | OPEN | 5795H | 6434H |
| 417C | 16764 | FIELD | 5E63H | 61AFH |
| 417F | 16767 | GET | 6126H | 6355H |
| 4182 | 16770 | PUT | 6125H | 6354H |
| 4185 | 16773 | CLOSE | 5FA1H | 6173H |
| 4188 | 16776 | LOAD | 574AH | 606EH |
| 418B | 16779 | MERGE | 572EH | 6109H |
| 418E | 16782 | NAME | 1E4AH | 6544H |
| 4191 | 16785 | KILL | 643CH | 6521H |
| 4194 | 16788 | &* | 5790H | 5913H |
| 4197 | 16791 | LSET | 5908H | 620BH |
| 419A | 16754 | RSET | 5909H | 620AH |
| 419D | 16797 | INSTR* | 5786H | 588BH |
| 41A0 | 16800 | SAVE | 573BH | 6148H |
| 41A3 | 16803 | LINE | 579FH | 5786H |
* Items marked with an asterisk are called during expression evaluation.
BASIC Code for Jump Calculation
The following BASIC program was used to calculate the jumps between 4152H and 41A6H:
10 OPEN "O",1,"OUTPUT:0"
20 FOR X=16722 TO 16806 STEP 3
30 V=PEEK(X) : GOSUB 110 : O$=H$
40 V=PEEK(X+1) : GOSUB 110 : L$=H$
50 V=PEEK(X+2) : GOSUB 110 : M$=H$
60 IF O$="C3" THEN X$="JP "+M$+L$ ELSE X$="nojp "+M$+L$
70 PRINT #1,X,X$;"H"
80 NEXT X
90 CLOSE
100 END
110 C = V/16
120 F = INT(C)
130 IF F < 10 THEN A$=CHR$(F+48) ELSE A$=CHR$(F+55)
140 D=(C-F) * 16
150 IF D < 10 THEN B$=CHR$(D+48) ELSE B$=CHR$(D+55)
160 H$=A$+B$ 170 RETURN