Routines |
Prev: 2F9B | Up: Map | Next: 2FDD |
This subroutine is called by addition, multiply and division to get two numbers from the calculator stack and put them into the registers, including the exchange registers.
On entry to the subroutine the HL register pair points to the first byte of the first number (M) and the DE register pair points to the first byte of the second number (N).
|
||||||||||||||||||
FETCH_TWO | 2FBA | PUSH HL | HL is preserved. | |||||||||||||||
2FBB | PUSH AF | AF is preserved. | ||||||||||||||||
Call the five bytes of the first number M1, M2, M3, M4 and M5, and the five bytes of the second number N1, N2, N3, N4 and N5.
|
||||||||||||||||||
2FBC | LD C,(HL) | M1 to C. | ||||||||||||||||
2FBD | INC HL | Next. | ||||||||||||||||
2FBE | LD B,(HL) | M2 to B. | ||||||||||||||||
2FBF | LD (HL),A | Copy the sign of the result to bit 7 of (HL). | ||||||||||||||||
2FC0 | INC HL | Next. | ||||||||||||||||
2FC1 | LD A,C | M1 to A. | ||||||||||||||||
2FC2 | LD C,(HL) | M3 to C. | ||||||||||||||||
2FC3 | PUSH BC | Save M2 and M3 on the machine stack. | ||||||||||||||||
2FC4 | INC HL | Next. | ||||||||||||||||
2FC5 | LD C,(HL) | M4 to C. | ||||||||||||||||
2FC6 | INC HL | Next. | ||||||||||||||||
2FC7 | LD B,(HL) | M5 to B. | ||||||||||||||||
2FC8 | EX DE,HL | HL now points to N1. | ||||||||||||||||
2FC9 | LD D,A | M1 to D. | ||||||||||||||||
2FCA | LD E,(HL) | N1 to E. | ||||||||||||||||
2FCB | PUSH DE | Save M1 and N1 on the machine stack. | ||||||||||||||||
2FCC | INC HL | Next. | ||||||||||||||||
2FCD | LD D,(HL) | N2 to D. | ||||||||||||||||
2FCE | INC HL | Next. | ||||||||||||||||
2FCF | LD E,(HL) | N3 to E. | ||||||||||||||||
2FD0 | PUSH DE | Save N2 and N3 on the machine stack. | ||||||||||||||||
2FD1 | EXX | Get the exchange registers. | ||||||||||||||||
2FD2 | POP DE | N2 to D' and N3 to E'. | ||||||||||||||||
2FD3 | POP HL | M1 to H' and N1 to L'. | ||||||||||||||||
2FD4 | POP BC | M2 to B' and M3 to C'. | ||||||||||||||||
2FD5 | EXX | Get the original set of registers. | ||||||||||||||||
2FD6 | INC HL | Next. | ||||||||||||||||
2FD7 | LD D,(HL) | N4 to D. | ||||||||||||||||
2FD8 | INC HL | Next. | ||||||||||||||||
2FD9 | LD E,(HL) | N5 to E. | ||||||||||||||||
2FDA | POP AF | Restore the original AF. | ||||||||||||||||
2FDB | POP HL | Restore the original HL. | ||||||||||||||||
2FDC | RET | Finished. | ||||||||||||||||
Summary:
|
Prev: 2F9B | Up: Map | Next: 2FDD |