Splitting the Atom back exit forward page 15
C8BC to C8DB A subroutine which deals with the minus sign. Entering at C8C4 negates the current slot on the workspace sack cf:
15
24
33
42, X
= 0 - 15
24
33
42, X
C8DC to C8F7 A subroutine to deal with variable assignments. Entering at C8E3 will copy any simple variable pointed at by Y (Y=1 is A, 2 is B etc.) to the current slot on the workspace stack (as given by ?4). See example program at the back. This is the opposite of CA2F
C8F8 to C901 Deals with numeric assignments.
C902 to C909 Executes the ABS function. This can be used by pointing at the item you want ABSed with 5,Y. The result is placed on the workspace stack.
C90A to C943 Deals with the # sign (hex number sign)
C944 to C94B Deals with the ( sign (left bracket)
C94C to C95E Deals with the ? as a PEEK function
C95F to C972 Deals with the ! as a quad-PEEK function
C973 to C985 A subroutine that reads TOP value at vector (D,E) onto the current workspace stack, and increments the workspace stack pointer.
C97A to C985 A subroutine which reads the current COUNT value (?7) to the current slot of the workspace stack.
C986 to C9BC A subroutine to execute RND. It generates a new random number at 8 to C, copies it to the current slot of the workspace stack, and increments the workspace stack pointer (?4), which you MUST reset. This can be used by you to generate random numbers in a machine code program (see example, chapter 6).
C9BD to C9D1 Executes the LEN function.
C9D2 to C9D7 Deals with the CH operator.
C9D8 to C9E6 BRK handler. The 6502 executes a BRK instruction it is directed here through the vector in 202,203, normally set by the operating system immediately before executing a direct mode command. Its effect is to point the BASIC interpreter at the vector 10,11, normally C9E7. Exits to direct mode.

back exit forward