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
|
// Subtract the exponents
|
||||||
|
|
||||||
lda #($80 + $08) // correction for bias and shifted mantissa
|
lda #$80 // correction for bias
|
||||||
sta RESHO+0
|
sta RESHO+0
|
||||||
lda #$00
|
lda #$00
|
||||||
sta RESHO+1
|
sta RESHO+1
|
||||||
@@ -55,14 +55,18 @@ div_FAC2_FAC1:
|
|||||||
lda RESHO+0
|
lda RESHO+0
|
||||||
sec
|
sec
|
||||||
sbc FAC1_exponent
|
sbc FAC1_exponent
|
||||||
|
sta RESHO+0
|
||||||
bcs !+
|
bcs !+
|
||||||
|
|
||||||
lda RESHO+1
|
lda RESHO+1
|
||||||
sbc #$00
|
sbc #$00
|
||||||
|
sta RESHO+1
|
||||||
bcc_16 set_FAC1_zero // result too low, set 0 and quit
|
bcc_16 set_FAC1_zero // result too low, set 0 and quit
|
||||||
!:
|
!:
|
||||||
lda RESHO+1
|
bne_16 set_FAC1_max // overflow
|
||||||
bcc_16 set_FAC1_max // overflow
|
|
||||||
|
lda RESHO+0
|
||||||
|
sta FAC1_exponent
|
||||||
|
|
||||||
// Divide the mantissas
|
// Divide the mantissas
|
||||||
|
|
||||||
@@ -72,13 +76,13 @@ div_FAC2_FAC1:
|
|||||||
|
|
||||||
// Copy the result to FAC1 - XXX we probably already have similar code somewhere...
|
// Copy the result to FAC1 - XXX we probably already have similar code somewhere...
|
||||||
|
|
||||||
lda FAC2_mantissa+3
|
lda RESHO+3
|
||||||
sta FAC1_mantissa+3
|
sta FAC1_mantissa+3
|
||||||
lda FAC2_mantissa+2
|
lda RESHO+2
|
||||||
sta FAC1_mantissa+2
|
sta FAC1_mantissa+2
|
||||||
lda FAC2_mantissa+1
|
lda RESHO+1
|
||||||
sta FAC1_mantissa+1
|
sta FAC1_mantissa+1
|
||||||
lda FAC2_mantissa+0
|
lda RESHO+0
|
||||||
sta FAC1_mantissa+0
|
sta FAC1_mantissa+0
|
||||||
|
|
||||||
lda #$00
|
lda #$00
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ div_FAC1_denorm_by_bit:
|
|||||||
ror FAC1_mantissa+3
|
ror FAC1_mantissa+3
|
||||||
ror FACOV
|
ror FACOV
|
||||||
|
|
||||||
bcc div_FAC1_denorm_done // branch always
|
bcc div_FAC1_denorm_by_bit // branch always
|
||||||
|
|
||||||
div_FAC1_denorm_done:
|
div_FAC1_denorm_done:
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user