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 C[0-7]&~3.

 

 

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.

 

 

 

 

 

6-28 The Development Library