Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
system_routines:upi [2016/06/01 15:58] ex_writer |
system_routines:upi [2016/06/05 16:17] (current) ex_writer [User Program Interface] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== User Program Interface ====== | ====== User Program Interface ====== | ||
- | The User Program Interface (UPI) is a set of procedures and conventions used by a cartridge program to access the facilities provided by the Bally Arcade's [[:system rom|operating system]]. | + | The User Program Interface (UPI) is a set of procedures and conventions used by a cartridge program to access the facilities provided by the Bally Arcade's [[software:system ROM]]. |
- | For details on the UPI's usage, see [[UPI Conventions]]. | + | For details on UPI usage, see [[software:UPI Conventions]]. |
===== UPI System Routines ===== | ===== UPI System Routines ===== | ||
Line 9: | Line 9: | ||
^ Name ^ Description ^ | ^ Name ^ Description ^ | ||
- | | [[user program interface#exit|EXIT / XINTC]] | Exit interpreter (with context) | | + | | [[#exit|EXIT / XINTC]] | Exit interpreter (with context) | |
- | | [[user program interface#intpc|INTPC]] | Begin interpreting | | + | | [[#intpc|INTPC]] | Begin interpreting | |
- | | [[user program interface#mcall|MCALL]] | "Macro Call" - Call an interpreter sequence as a subroutine | | + | | [[#mcall|MCALL]] | "Macro Call" - Call an interpreter sequence as a subroutine | |
- | | [[user program interface#mjump|MJUMP]] | "Macro Jump" - Current interpretive PC is set to the contents of HL | | + | | [[#mjump|MJUMP]] | "Macro Jump" - Current interpretive PC is set to the contents of HL | |
- | | [[user program interface#mret|MRET]] | "Macro Return" from interpreter subroutine | | + | | [[#mret|MRET]] | "Macro Return" from interpreter subroutine | |
- | | [[user program interface#rcall|RCALL]] | "Real Call" - Call any assembly language subroutine from the interpreter | | + | | [[#rcall|RCALL]] | "Real Call" - Call any assembly language subroutine from the interpreter | |
- | | [[user program interface#suck|SUCK]]* | Suck inline arguments into context block | | + | | [[#suck|SUCK]]* | Suck inline arguments into context block | |
===== UPI System Routine Descriptions ===== | ===== UPI System Routine Descriptions ===== | ||
Line 134: | Line 134: | ||
| Arguments: | B = Argument load mask | | | Arguments: | B = Argument load mask | | ||
| Output: | HL = Updated Program Counter | | | Output: | HL = Updated Program Counter | | ||
- | | Notes: | Definition from source listing p. 21 | | ||
| Description: | This routine implements a macro load instruction. It is used by the interpreter as well. A one bit in the inline load mask means 'transfer the next inline byte in'; a zero bit means 'advance context block pointer.'\\ \\ The number of arguments following the mask in SYSSUK depends upon the value in mask. | | | Description: | This routine implements a macro load instruction. It is used by the interpreter as well. A one bit in the inline load mask means 'transfer the next inline byte in'; a zero bit means 'advance context block pointer.'\\ \\ The number of arguments following the mask in SYSSUK depends upon the value in mask. | | ||