Difference between revisions of "83Plus:OS:RST Routines"
From WikiTI
m (heard about this on #cemetech IRC) |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:83Plus:OS_Information|RST Routines]] | [[Category:83Plus:OS_Information|RST Routines]] | ||
− | |||
== Introduction == | == Introduction == | ||
Line 6: | Line 5: | ||
== RST Routines == | == RST Routines == | ||
− | + | All the RST routines work exactly the same as the corresponding B_CALLs: | |
{| border="0" | {| border="0" | ||
| '''B_CALL''' || '''RST''' | | '''B_CALL''' || '''RST''' | ||
|-[[83Plus:BCALLs:412F|OP1ToOP2]] || rOP1ToOP2 | |-[[83Plus:BCALLs:412F|OP1ToOP2]] || rOP1ToOP2 | ||
|- | |- | ||
− | |[[83Plus:BCALLs: | + | |[[83Plus:BCALLs:42F4|FindSym]] || rFindSym |
|- | |- | ||
|[[83Plus:BCALLs:43BA|PushRealO1]] || rPushRealO1 | |[[83Plus:BCALLs:43BA|PushRealO1]] || rPushRealO1 | ||
Line 37: | Line 36: | ||
You cannot define your own RSTs; they are part of the operating system. | You cannot define your own RSTs; they are part of the operating system. | ||
+ | <nowiki>rst 00 is the OS reset | ||
+ | rst 28h is BCALL | ||
+ | rst 38h is the interrupt routine</nowiki> |
Latest revision as of 15:16, 13 July 2020
Introduction
The Z80 restart instruction, or RST
, can be used instead of a B_CALL for some system entry points. The advantage is that using the RST instruction takes only one byte, instead of the three bytes required for a B_CALL, and is very quick when compared with the relatively large overhead inherent of a B_CALL.
RST Routines
All the RST routines work exactly the same as the corresponding B_CALLs:
B_CALL | RST |
FindSym | rFindSym |
PushRealO1 | rPushRealO1 |
Mov9ToOP1 | rMov9ToOP1 |
FPAdd | rFPAdd |
Example
rst rFPAdd
Equates
rOP1ToOP2 EQU 08h rFindSym EQU 10h rPushRealO1 EQU 18h rMov9ToOP1 EQU 20h rFPAdd EQU 30h
Remarks
You cannot define your own RSTs; they are part of the operating system.
rst 00 is the OS reset rst 28h is BCALL rst 38h is the interrupt routine