| C64 ROM | Routines |
| Prev: B9EA | Up: Map | Next: BA8C |
| BA28 | 20 8C BA | JSR $BA8C | unpack memory (AY) into FAC2 | |
| BA2B | D0 03 | BNE $BA30 | multiply FAC1 by FAC2 ?? | |
| BA2D | 4C 8B BA | JMP $BA8B | exit if zero | |
| BA30 | 20 B7 BA | JSR $BAB7 | test and adjust accumulators | |
| BA33 | A9 00 | LDA #$00 | clear A | |
| BA35 | 85 26 | STA $26 | clear temp mantissa 1 | |
| BA37 | 85 27 | STA $27 | clear temp mantissa 2 | |
| BA39 | 85 28 | STA $28 | clear temp mantissa 3 | |
| BA3B | 85 29 | STA $29 | clear temp mantissa 4 | |
| BA3D | A5 70 | LDA $70 | get FAC1 rounding byte | |
| BA3F | 20 59 BA | JSR $BA59 | go do shift/add FAC2 | |
| BA42 | A5 65 | LDA $65 | get FAC1 mantissa 4 | |
| BA44 | 20 59 BA | JSR $BA59 | go do shift/add FAC2 | |
| BA47 | A5 64 | LDA $64 | get FAC1 mantissa 3 | |
| BA49 | 20 59 BA | JSR $BA59 | go do shift/add FAC2 | |
| BA4C | A5 63 | LDA $63 | get FAC1 mantissa 2 | |
| BA4E | 20 59 BA | JSR $BA59 | go do shift/add FAC2 | |
| BA51 | A5 62 | LDA $62 | get FAC1 mantissa 1 | |
| BA53 | 20 5E BA | JSR $BA5E | go do shift/add FAC2 | |
| BA56 | 4C 8F BB | JMP $BB8F | copy temp to FAC1, normalise and return | |
| BA59 | D0 03 | BNE $BA5E | branch if byte <> zero | |
| BA5B | 4C 83 B9 | JMP $B983 | shift FCAtemp << A+8 times | |
|
else do shift and add
|
||||
| BA5E | 4A | LSR A | shift byte | |
| BA5F | 09 80 | ORA #$80 | set top bit (mark for 8 times) | |
| BA61 | A8 | TAY | copy result | |
| BA62 | 90 19 | BCC $BA7D | skip next if bit was zero | |
| BA64 | 18 | CLC | clear carry for add | |
| BA65 | A5 29 | LDA $29 | get temp mantissa 4 | |
| BA67 | 65 6D | ADC $6D | add FAC2 mantissa 4 | |
| BA69 | 85 29 | STA $29 | save temp mantissa 4 | |
| BA6B | A5 28 | LDA $28 | get temp mantissa 3 | |
| BA6D | 65 6C | ADC $6C | add FAC2 mantissa 3 | |
| BA6F | 85 28 | STA $28 | save temp mantissa 3 | |
| BA71 | A5 27 | LDA $27 | get temp mantissa 2 | |
| BA73 | 65 6B | ADC $6B | add FAC2 mantissa 2 | |
| BA75 | 85 27 | STA $27 | save temp mantissa 2 | |
| BA77 | A5 26 | LDA $26 | get temp mantissa 1 | |
| BA79 | 65 6A | ADC $6A | add FAC2 mantissa 1 | |
| BA7B | 85 26 | STA $26 | save temp mantissa 1 | |
| BA7D | 66 26 | ROR $26 | shift temp mantissa 1 | |
| BA7F | 66 27 | ROR $27 | shift temp mantissa 2 | |
| BA81 | 66 28 | ROR $28 | shift temp mantissa 3 | |
| BA83 | 66 29 | ROR $29 | shift temp mantissa 4 | |
| BA85 | 66 70 | ROR $70 | shift temp rounding byte | |
| BA87 | 98 | TYA | get byte back | |
| BA88 | 4A | LSR A | shift byte | |
| BA89 | D0 D6 | BNE $BA61 | loop if all bits not done | |
| BA8B | 60 | RTS | ||
| Prev: B9EA | Up: Map | Next: BA8C |