multiplication cleanup

This commit is contained in:
FeralChild64 committed 2020-02-27 19:46:49 +01:00
1 parent 9f29d058dd
commit e11bfe5a87
3 files changed
+28 -28

No files matched your search

+1 -1
View File
@@ -199,7 +199,7 @@ Floating point mathematical routines - not official, but well known and broadly
| `$B947` | `inv_FAC1_mantissa` | NOT DONE | |
| `$B9EA` | `log_FAC1` | NOT DONE | |
| `$BA28` | `mul_MEM_FAC1` | DONE | |
| `$BA2B` | `mul_FAC2_FAC1` | PARTIAL | sometime imprecise - like PI*PI |
| `$BA2B` | `mul_FAC2_FAC1` | DONE | |
| `$BA8C` | `mov_MEM_FAC2` | DONE | |
| `$BA90` | `get_FAC2_via_INDEX` | NOT DONE | |
| `$BAE2` | `mul10_FAC1` | DONE | |
+5 -27
View File
@@ -17,8 +17,6 @@
// - https://codebase64.org/doku.php?id=base:kernal_floating_point_mathematics
//
// XXX the code here is very imprecise, find out why
mul_FAC2_FAC1_done:
rts
@@ -98,31 +96,31 @@ mul_FAC2_FAC1_sub_exp_bias:
lda FACOV
jsr mul_FAC2_FAC1_by_A
jsr mul_FAC2_FAC1_shift_RESHO
jsr mul_FAC2_FAC1_shift
bcc !+
inc RESHO+0
!:
lda FAC1_mantissa+3
jsr mul_FAC2_FAC1_by_A
jsr mul_FAC2_FAC1_shift_RESHO
jsr mul_FAC2_FAC1_shift
bcc !+
inc RESHO+0
!:
lda FAC1_mantissa+2
jsr mul_FAC2_FAC1_by_A
jsr mul_FAC2_FAC1_shift_RESHO
jsr mul_FAC2_FAC1_shift
bcc !+
inc RESHO+0
!:
lda FAC1_mantissa+1
jsr mul_FAC2_FAC1_by_A
jsr mul_FAC2_FAC1_shift_RESHO
jsr mul_FAC2_FAC1_shift
bcc !+
inc RESHO+0
!:
lda FAC1_mantissa+0
jsr mul_FAC2_FAC1_by_A
jsr mul_FAC2_FAC1_shift_RESHO
jsr mul_FAC2_FAC1_shift
bcc !+
inc RESHO+0
!:
@@ -214,23 +212,3 @@ mul_FAC2_FAC1_by_A:
mul_FAC2_FAC1_by_A_done:
rts
mul_FAC2_FAC1_shift_RESHO: // XXX we should probably move this subroutine to a separate file
// Shift RESHO by one byte
lda RESHO+3
sta RESHO+4
lda RESHO+2
sta RESHO+3
lda RESHO+1
sta RESHO+2
lda RESHO+0
sta RESHO+1
lda #$00
sta RESHO+0
rts
+22
View File
@@ -0,0 +1,22 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
//
// Shift RESHO by one byte - for multiplication
//
mul_FAC2_FAC1_shift:
lda RESHO+3
sta RESHO+4
lda RESHO+2
sta RESHO+3
lda RESHO+1
sta RESHO+2
lda RESHO+0
sta RESHO+1
lda #$00
sta RESHO+0
rts