C64 ROM | Routines |
Prev: B9BC | Up: Map | Next: BA28 |
Used by the routine at BF7B.
|
||||
B9EA | 20 2B BC | JSR $BC2B | test sign and zero | |
B9ED | F0 02 | BEQ $B9F1 | if zero do illegal quantity error then warm start | |
B9EF | 10 03 | BPL $B9F4 | skip error if +ve | |
B9F1 | 4C 48 B2 | JMP $B248 | do illegal quantity error then warm start | |
B9F4 | A5 61 | LDA $61 | get FAC1 exponent | |
B9F6 | E9 7F | SBC #$7F | normalise it | |
B9F8 | 48 | PHA | save it | |
B9F9 | A9 80 | LDA #$80 | set exponent to zero | |
B9FB | 85 61 | STA $61 | save FAC1 exponent | |
B9FD | A9 D6 | LDA #$D6 | pointer to 1/root 2 low byte | |
B9FF | A0 B9 | LDY #$B9 | pointer to 1/root 2 high byte | |
BA01 | 20 67 B8 | JSR $B867 | add (AY) to FAC1 (1/root2) | |
BA04 | A9 DB | LDA #$DB | pointer to root 2 low byte | |
BA06 | A0 B9 | LDY #$B9 | pointer to root 2 high byte | |
BA08 | 20 0F BB | JSR $BB0F | convert AY and do (AY)/FAC1 (root2/(x+(1/root2))) | |
BA0B | A9 BC | LDA #$BC | pointer to 1 low byte | |
BA0D | A0 B9 | LDY #$B9 | pointer to 1 high byte | |
BA0F | 20 50 B8 | JSR $B850 | subtract FAC1 ((root2/(x+(1/root2)))-1) from (AY) | |
BA12 | A9 C1 | LDA #$C1 | pointer to series for LOG(n) low byte | |
BA14 | A0 B9 | LDY #$B9 | pointer to series for LOG(n) high byte | |
BA16 | 20 43 E0 | JSR $E043 | ^2 then series evaluation | |
BA19 | A9 E0 | LDA #$E0 | pointer to -0.5 low byte | |
BA1B | A0 B9 | LDY #$B9 | pointer to -0.5 high byte | |
BA1D | 20 67 B8 | JSR $B867 | add (AY) to FAC1 | |
BA20 | 68 | PLA | restore FAC1 exponent | |
BA21 | 20 7E BD | JSR $BD7E | evaluate new ASCII digit | |
BA24 | A9 E5 | LDA #$E5 | pointer to LOG(2) low byte | |
BA26 | A0 B9 | LDY #$B9 | pointer to LOG(2) high byte |
Prev: B9BC | Up: Map | Next: BA28 |