| Routines

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.