![]() |
Routines |
| Prev: A3C8 | Up: Map | Next: A46A |
|
||||||||
| A402 | PUSH IX | Save IX | ||||||
| A404 | LD ($A0A4),HL | Save the number in $A0A4 | ||||||
| A407 | XOR A | Set A=0 | ||||||
| A408 | LD ($A0AA),A | Init the charcode buffer | ||||||
| A40B | LD ($A0A9),A | |||||||
| A40E | LD ($A0A8),A | |||||||
| A411 | LD ($A0A7),A | |||||||
| A414 | LD ($A0A6),A | |||||||
| A417 | LD DE,$2710 | Set DE=10.000 | ||||||
| A41A | CALL $A447 | Computes the charcode for the digit in the ten thousands | ||||||
| A41D | LD ($A0AA),A | Set this charcode into $A0AA | ||||||
| A420 | LD DE,$03E8 | Set DE=1.000 | ||||||
| A423 | CALL $A447 | Computes the charcode for the digit in the thousands | ||||||
| A426 | LD ($A0A9),A | Set this charcode into $A0A9 | ||||||
| A429 | LD DE,$0064 | Set DE=100 | ||||||
| A42C | CALL $A447 | Computes the charcode for the digit in the hundreds | ||||||
| A42F | LD ($A0A8),A | Set this charcode into $A0A8 | ||||||
| A432 | LD DE,$000A | Set DE=10 | ||||||
| A435 | CALL $A447 | Computes the charcode for the digit in the tens | ||||||
| A438 | LD ($A0A7),A | Set this charcode into $A0A7 | ||||||
| A43B | LD DE,$0001 | Set DE=1 | ||||||
| A43E | CALL $A447 | Computes the charcode for the digit in the units | ||||||
| A441 | LD ($A0A6),A | Set this charcode into $A0A6 | ||||||
| A444 | POP IX | Restore IX | ||||||
| A446 | RET | |||||||
|
Computes the charcode for the digit in the units, tens, hundreds, thousands o ten toushands
|
||||||||
| A447 | LD HL,($A0A4) | Set HL to the number to convert | ||||||
| A44A | LD IX,$0000 | Set IX=0. The part of the number that has been converted [ x0.000, x.000, x00, x0 or x } | ||||||
| A44E | LD B,$00 | Set B=0. The digit number that we need to convert to charcode [x] | ||||||
| A450 | AND A | Reset carry bit | ||||||
| A451 | SBC HL,DE | Substract DE [10.000, 1.000, 100, 10 or 1] to HL | ||||||
| A453 | JR C,$A45A | Jump if the result in HL is a negative number (DE is greater than the number to convert) | ||||||
| A455 | ADD IX,DE | Add DE to IX | ||||||
| A457 | INC B | Increment the digit number | ||||||
| A458 | JR $A450 | Jump back and repeat the process until obtain the digit number | ||||||
| A45A | PUSH IX | Copy in DE the value of IX | ||||||
| A45C | POP DE | |||||||
| A45D | LD HL,($A0A4) | Set HL to the number to convert | ||||||
| A460 | AND A | Reset carry bit | ||||||
| A461 | SBC HL,DE | Substract to the number to convert the part just converted | ||||||
| A463 | LD ($A0A4),HL | Set into $A0A4 the remaining number to convert | ||||||
| A466 | LD A,B | Copy into A the digit number to convert | ||||||
| A467 | ADD A,$30 | Set A to the charcode of the digit ($30 is the base charcode for digit, i.e. is the 0 digit charcode) | ||||||
| A469 | RET | |||||||
| Prev: A3C8 | Up: Map | Next: A46A |