fixed some bugs with floating point division
This commit is contained in:
1 parent
f51a712556
commit
2cd65c3144
2 files changed
+12
-8
No files matched your search
@@ -44,7 +44,7 @@ div_FAC2_FAC1:
|
||||
|
||||
// Subtract the exponents
|
||||
|
||||
lda #($80 + $08) // correction for bias and shifted mantissa
|
||||
lda #$80 // correction for bias
|
||||
sta RESHO+0
|
||||
lda #$00
|
||||
sta RESHO+1
|
||||
@@ -55,14 +55,18 @@ div_FAC2_FAC1:
|
||||
lda RESHO+0
|
||||
sec
|
||||
sbc FAC1_exponent
|
||||
sta RESHO+0
|
||||
bcs !+
|
||||
|
||||
lda RESHO+1
|
||||
sbc #$00
|
||||
sta RESHO+1
|
||||
bcc_16 set_FAC1_zero // result too low, set 0 and quit
|
||||
!:
|
||||
lda RESHO+1
|
||||
bcc_16 set_FAC1_max // overflow
|
||||
bne_16 set_FAC1_max // overflow
|
||||
|
||||
lda RESHO+0
|
||||
sta FAC1_exponent
|
||||
|
||||
// Divide the mantissas
|
||||
|
||||
@@ -72,13 +76,13 @@ div_FAC2_FAC1:
|
||||
|
||||
// Copy the result to FAC1 - XXX we probably already have similar code somewhere...
|
||||
|
||||
lda FAC2_mantissa+3
|
||||
lda RESHO+3
|
||||
sta FAC1_mantissa+3
|
||||
lda FAC2_mantissa+2
|
||||
lda RESHO+2
|
||||
sta FAC1_mantissa+2
|
||||
lda FAC2_mantissa+1
|
||||
lda RESHO+1
|
||||
sta FAC1_mantissa+1
|
||||
lda FAC2_mantissa+0
|
||||
lda RESHO+0
|
||||
sta FAC1_mantissa+0
|
||||
|
||||
lda #$00
|
||||
|
||||
@@ -63,7 +63,7 @@ div_FAC1_denorm_by_bit:
|
||||
ror FAC1_mantissa+3
|
||||
ror FACOV
|
||||
|
||||
bcc div_FAC1_denorm_done // branch always
|
||||
bcc div_FAC1_denorm_by_bit // branch always
|
||||
|
||||
div_FAC1_denorm_done:
|
||||
|
||||
|
||||
Reference in new issue
Block a user