Prev: 13574 Up: Map Next: 13595
13579: THE 'ZERO OR ONE' SUBROUTINE
Used by the routines at e_to_fp, f_not, no_or_no and no_and_no.
The routine at less_0 continues here.
This subroutine sets the 'last value' to zero if the carry flag is reset and to one if it is set. When called from e_to_fp however it creates the zero or one not on the stack but in mem-0.
Input
HL Address of the first byte of the number
F Carry set for 1, reset for 0
FP_0_1 13579 PUSH HL Save the result pointer.
13580 LD A,0 Clear A without disturbing the carry.
13582 LD (HL),A Set the first byte to zero.
13583 INC HL Point to the second byte.
13584 LD (HL),A Set the second byte to zero.
13585 INC HL Point to the third byte.
13586 RLA Rotate the carry into A, making A one if the carry was set, but zero if the carry was reset.
13587 LD (HL),A Set the third byte to one or zero.
13588 RRA Ensure that A is zero again.
13589 INC HL Point to the fourth byte.
13590 LD (HL),A Set the fourth byte to zero.
13591 INC HL Point to the fifth byte.
13592 LD (HL),A Set the fifth byte to zero.
13593 POP HL Restore the result pointer.
13594 RET
Prev: 13574 Up: Map Next: 13595