fixed some bugs with floating point division

This commit is contained in:
FeralChild64 committed 2020-03-08 18:25:31 +01:00
1 parent f51a712556
commit 2cd65c3144
2 files changed
+12 -8

No files matched your search

+11 -7
View File
@@ -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
+1 -1
View File
@@ -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: