fix for exponent manipulation during division
This commit is contained in:
1 parent
e16118a331
commit
922c881a23
1 file changed
+12
-13
@@ -44,26 +44,24 @@ div_FAC2_FAC1:
|
|||||||
|
|
||||||
// Subtract the exponents
|
// Subtract the exponents
|
||||||
|
|
||||||
lda #$80 // correction for bias
|
lda #$62 // correction for bias and FAC2 digits
|
||||||
sta RESHO+0
|
sta RESHO+0
|
||||||
lda #$00
|
lda #$00
|
||||||
sta RESHO+1
|
sta RESHO+1
|
||||||
|
|
||||||
lda FAC2_exponent
|
lda FAC2_exponent // add FAC2 exponent to temporary variable
|
||||||
jsr muldiv_RESHO_01_add_A
|
jsr muldiv_RESHO_01_add_A
|
||||||
|
|
||||||
lda RESHO+0
|
lda RESHO+0 // subtract FAC1 exponent from temporary variable
|
||||||
sec
|
sec
|
||||||
sbc FAC1_exponent
|
sbc FAC1_exponent
|
||||||
sta RESHO+0
|
sta RESHO+0
|
||||||
bcs !+
|
bcs !+
|
||||||
|
dec RESHO+1
|
||||||
|
!:
|
||||||
|
|
||||||
lda RESHO+1
|
lda RESHO+1
|
||||||
sbc #$00
|
bmi_16 set_FAC1_zero // result too low, set 0 and quit
|
||||||
sta RESHO+1
|
|
||||||
bcc_16 set_FAC1_zero // result too low, set 0 and quit
|
|
||||||
!:
|
|
||||||
bne_16 set_FAC1_max // overflow
|
|
||||||
|
|
||||||
lda RESHO+0
|
lda RESHO+0
|
||||||
sta FAC1_exponent
|
sta FAC1_exponent
|
||||||
@@ -71,6 +69,7 @@ div_FAC2_FAC1:
|
|||||||
// Divide the mantissas
|
// Divide the mantissas
|
||||||
|
|
||||||
jsr div_FAC1_denorm
|
jsr div_FAC1_denorm
|
||||||
|
|
||||||
jsr muldiv_RESHO_set_0
|
jsr muldiv_RESHO_set_0
|
||||||
jsr div_mantissas
|
jsr div_mantissas
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user