Syntax | Example | Notes |
|
|
|
|
| ||
| RPL2 | Simulates a LOOP (A=DAT0.A D0+5 PC=(A)). | ||
| KEYDN | (C[A]) kbd peeks with immediate rtn CS if keydn. | ||
|
| Also - Sets DOUSEALARM flag if [ON][9] sequence. | ||
|
| Entry: P=0, HEX Mode, C[A]: #kbd peeks (loop count) | ||
| CRTMP | Abstract: Creates a hole in the tempob area of the specified size | ||
|
| + 6 (5 for the link field and 1 for marker nibble). | ||
|
| Sets the link field of the “hole” to size+6 and adjusts | ||
|
| AVMEM, RSKTOP and TEMPTOP. | ||
|
| Entry Conditions: RPL variables in system RAM | ||
|
|
| C(A) contains desired size of hole | |
|
| Exit Conditions: carry clear, RPL variables in system RAM | ||
|
|
| D1 → link field of hole, D0 → object position | |
|
|
| B(A), C(A)= desired size+6 | |
|
| Error Exits: Returns with carry set when there’s not enough memory | ||
|
|
| to create a hole of size+6. | |
| BEEP2 | Entry: C[A]: d | ;d=Beep duration (msec) | |
|
| D[A]: f | ;f=Beep frequency (hz) | |
|
| P=0 |
| |
|
| Exit: | CARRY:0 |
|
| REMON | Enables the remote control mode (ON+R). | ||
| SERIAL | Copy serial number to address pointed to by D1 in Saturn memory. | ||
| OUTBYT | Purpose: Send byte to IR printer | ||
|
| Entry: | A[B]: Byte | |
|
| Exit: | CC, P=0, Byte Sent | |
|
| Alters: | P:0, CARRY:0, SETHEX. | |
| MOVEUP | Abstract: Used to move block of memory to higher address. | ||
|
| No check is made to ensure that the source and destination do not overlap. | ||
|
| Code is moved from high to low addresses. | ||
|
| Entry Conditions: D0 → end of source + 1 | ||
|
|
| D1 → end of destination + 1 | |
|
|
| C(A) = number of nibs to move (unsigned) | |
|
| Exit Conditions: HEX mode, P=0, carry clear | ||
|
|
| D0 → start of source | |
|
|
| D1 → start of destination | |
| MOVEDN | Abstract: Used to move block of memory to lower address. | ||
|
| No check is made to ensure that the source and destination do not overlap. | ||
|
| Code is moved from lower to higher addresses. | ||
|
| Entry Conditions: | D0 → start of source; D1 → start of destination; C(A) | |
|
| = number of nibs to move (unsigned) | ||
|
| Exit Conditions: | P=0, carry clear; D0 → end of source + 1; D1 → end of | |
|
| destination + 1 |
| |
| ARMSYS | Call a function at global dword address | ||
|
| The function takes should be of the form: U32 f(U32 pc, Chipset* c) { /* | ||
|
| put your code here */ return pc; } | ||
| ARMSAT | Call a function at Saturn address C.A&~7. | ||
|
| The function should have the following format: | ||
|
| U32 f(U32 pc, Chipset* c) { /* put your code here */ return pc; } | ||
|
| In RAM asm, this means that as you enter the function, pc is in R0, | ||
|
| @Chipset is in R1 and the return address is in LP. R2 and R3 are free to | ||
|
| use, and R0 should normally not be modified except if you want to change | ||
|
| the PC when exiting the function. | ||
| REMOFF | Stops the remote control (ON+S). | ||
| GOSLOW | Wait for (C[A]/183) ms. | ||
| WSCREEN | Return how many columns the screen contains in Ca | ||
| SETTIME | Sets the RTC time from C[W] in ticks. | ||
| SETLNED | Set number of lines of disp0 from C[B], refresh display. | ||
|
|
|
|
|