| C64 ROM | Routines |
| Prev: BD7E | Up: Map | Next: BDB3 |
|
Used by the routine at BCF3.
|
||||
| BD91 | A5 5E | LDA $5E | get exponent count byte | |
| BD93 | C9 0A | CMP #$0A | compare with 10 decimal | |
| BD95 | 90 09 | BCC $BDA0 | branch if less | |
| BD97 | A9 64 | LDA #$64 | make all -ve exponents = -100 decimal (causes underflow) | |
| BD99 | 24 60 | BIT $60 | test exponent -ve flag | |
| BD9B | 30 11 | BMI $BDAE | branch if -ve | |
| BD9D | 4C 7E B9 | JMP $B97E | else do overflow error then warm start | |
| BDA0 | 0A | ASL A | *2 | |
| BDA1 | 0A | ASL A | *4 | |
| BDA2 | 18 | CLC | clear carry for add | |
| BDA3 | 65 5E | ADC $5E | *5 | |
| BDA5 | 0A | ASL A | *10 | |
| BDA6 | 18 | CLC | clear carry for add | |
| BDA7 | A0 00 | LDY #$00 | set index | |
| BDA9 | 71 7A | ADC ($7A),Y | add character (will be $30 too much!) | |
| BDAB | 38 | SEC | set carry for subtract | |
| BDAC | E9 30 | SBC #"0" | convert character to binary | |
| BDAE | 85 5E | STA $5E | save exponent count byte | |
| BDB0 | 4C 30 BD | JMP $BD30 | go get next character | |
| Prev: BD7E | Up: Map | Next: BDB3 |