Entries
Take a look at the sorted entries
to find most of the entries you would ever need. I keep it printed
and refer to it all the time.
There are some things you will have to know in order to make use
of this document. Lets take a look at an example:
*****************************************************************
=PUSH# EQU #03F5D * Stack: ( --> # )
* Entry: R0[A]=num P=0 HEX RPLRAM
* Exit: P=0 HEX RPLCPU A[A]=->bintob
* Alters: A[15-5] B[15-5] C D[15-5] ST0 ST10
* Stack: 3
*****************************************************************
The name of the entry is =PUSH#, this is what you would type in
your program. You would probably call it with GOSBVL. An entry
that restarts rpl should be called with GOVLNG.
The address is #03F5D. You shouldn't have to worry about this.
The stack diagram ( --> # ) shows what happens on the stack. Here
the symbol # is used to indicate that a bint is pushed on the stack.
On entry, that is when you call the subroutine, a few conditions must
be met. R0[A] contains the number, P must be 0, the cpu must be in
HEXMODE, and the pointers must have been saved (RPLRAM=saved,
RPLCPU=restored).
On exit, when the program continues after the subroutine, P is 0,
cpu is in HEXMODE, the pointers are restored, A[A] contains the address
to the pushed bint.
When this subroutine is executed, it may alter a few registers. In this
case the nibbles 15-5 in A, B, and D as well as the entire C are
altered. This means you shouldn't have important data in these places as
they will be lost. Status flags 0 and 10 and three stack
levels on the return stack are also used.