Prev: 13958 Up: Map Next: 13979
13967: THE 'JUMP ON TRUE' SUBROUTINE (offset 0)
The address of this routine is found in the table of addresses. It is called via the calculator literal 0 by the routines at NEXT_LOOP, DRAW, e_to_fp, PRINT_FP, int, ln, get_argt, cos, atn, sqr and to_power.
This subroutine executes a conditional jump if the 'last value' on the calculator stack, or more precisely the number addressed currently by the DE register pair, is true.
Input
DE Address of the first byte of the last value on the calculator stack
HL' Address of the jump offset
Output
HL' Address of the next calculator literal to execute
jump_true 13967 INC DE Point to the third byte, which is zero or one.
13968 INC DE
13969 LD A,(DE) Collect this byte in the A register.
13970 DEC DE Point to the first byte once again.
13971 DEC DE
13972 AND A Test the third byte: is it zero?
13973 JR NZ,jump Make the jump if the byte is non-zero, i.e. if the number is not-false.
13975 EXX Go to the alternate register set.
13976 INC HL Pass over the jump length.
13977 EXX Back to the main set of registers.
13978 RET Finished.
Prev: 13958 Up: Map Next: 13979