Routines |
Prev: 6E00 | Up: Map | Next: 6E84 |
|
||||||||||
6E1A | PUSH DE | Save the display file address | ||||||||
6E1B | EX DE,HL | Transfer the number to print to DE | ||||||||
6E1C | LD HL,$7FCF | Fill the number string buffer at 7FCA with space characters | ||||||||
6E1F | LD B,$05 | |||||||||
6E21 | DEC L | |||||||||
6E22 | LD (HL),$20 | |||||||||
6E24 | DJNZ $6E21 | |||||||||
6E26 | LD A,$30 | 0x30 is the ASCII code for the digit '0' | ||||||||
6E28 | LD BC,$D8F0 | BC=-10000 | ||||||||
6E2B | EX DE,HL | Transfer the number to print to HL | ||||||||
6E2C | ADD HL,BC | Is HL>=10000? | ||||||||
6E2D | JR C,$6E4B | Jump if so to compute and store the 10000s digit | ||||||||
6E2F | INC E | Point DE at the slot for the 1000s digit in the number string buffer | ||||||||
6E30 | SBC HL,BC | Add the 10000 back | ||||||||
6E32 | LD BC,$FC18 | BC=-1000 | ||||||||
6E35 | ADD HL,BC | Is HL>=1000? | ||||||||
6E36 | JR C,$6E58 | Jump if so to compute and store the 1000s digit | ||||||||
6E38 | INC E | Point DE at the slot for the 100s digit in the number string buffer | ||||||||
6E39 | SBC HL,BC | Add the 1000 back | ||||||||
6E3B | LD BC,$FF9C | BC=-100 | ||||||||
6E3E | ADD HL,BC | Is HL>=100? | ||||||||
6E3F | JR C,$6E65 | Jump if so to compute and store the 100s digit | ||||||||
6E41 | INC E | Point DE at the slot for the 10s digit in the number string buffer | ||||||||
6E42 | SBC HL,BC | Add the 100 back | ||||||||
6E44 | LD C,$F6 | BC=-10 | ||||||||
6E46 | ADD HL,BC | Is HL>=10? | ||||||||
6E47 | JR C,$6E71 | Jump if so to compute and store the 10s digit | ||||||||
6E49 | JR $6E78 | Jump forward to compute and store the units digit | ||||||||
Compute and store the 10000s digit.
|
||||||||||
6E4B | INC A | Get the ASCII code for the 10000s digit in A | ||||||||
6E4C | ADD HL,BC | |||||||||
6E4D | JR C,$6E4B | |||||||||
6E4F | LD (DE),A | Place the 10000s digit into the number string buffer | ||||||||
6E50 | SBC HL,BC | |||||||||
6E52 | INC E | Point DE at the slot for the 1000s digit | ||||||||
6E53 | LD A,$2F | |||||||||
6E55 | LD BC,$FC18 | BC=-1000 | ||||||||
Compute and store the 1000s digit.
|
||||||||||
6E58 | INC A | Get the ASCII code for the 1000s digit in A | ||||||||
6E59 | ADD HL,BC | |||||||||
6E5A | JR C,$6E58 | |||||||||
6E5C | LD (DE),A | Place the 1000s digit into the number string buffer | ||||||||
6E5D | LD A,$2F | |||||||||
6E5F | SBC HL,BC | |||||||||
6E61 | LD BC,$FF9C | BC=-100 | ||||||||
6E64 | INC E | Point DE at the slot for the 100s digit | ||||||||
Compute and store the 100s digit.
|
||||||||||
6E65 | INC A | Get the ASCII code for the 100s digit in A | ||||||||
6E66 | ADD HL,BC | |||||||||
6E67 | JR C,$6E65 | |||||||||
6E69 | LD (DE),A | Place the 100s digit into the number string buffer | ||||||||
6E6A | LD A,$2F | |||||||||
6E6C | SBC HL,BC | |||||||||
6E6E | LD C,$F6 | BC=-10 | ||||||||
6E70 | INC E | Point DE at the slot for the 10s digit | ||||||||
Compute and store the 10s digit.
|
||||||||||
6E71 | INC A | Get the ASCII code for the 10s digit in A | ||||||||
6E72 | ADD HL,BC | |||||||||
6E73 | JR C,$6E71 | |||||||||
6E75 | LD (DE),A | Place the 10s digit into the number string buffer | ||||||||
6E76 | LD A,$30 | |||||||||
Compute and store the units digit.
|
||||||||||
6E78 | SBC HL,BC | |||||||||
6E7A | INC E | Point DE at the slot for the units digit | ||||||||
6E7B | ADD A,L | A=ASCII code for the units digit | ||||||||
6E7C | LD (DE),A | Place it into the number string buffer | ||||||||
The number string buffer is now ready.
|
||||||||||
6E7D | LD E,$CA | DE=7FCA (start of the number string buffer) | ||||||||
6E7F | POP HL | Restore the display file address to HL | ||||||||
6E80 | EX DE,HL | Transfer it to DE, and point HL at the number string buffer at 7FCA | ||||||||
6E81 | JP $6E00 | Print the number |
Prev: 6E00 | Up: Map | Next: 6E84 |