diff --git a/c64/basic/math/bb12.div_FAC2_FAC1.s b/c64/basic/math/bb12.div_FAC2_FAC1.s index 5532ca46..74f08e81 100644 --- a/c64/basic/math/bb12.div_FAC2_FAC1.s +++ b/c64/basic/math/bb12.div_FAC2_FAC1.s @@ -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 diff --git a/c64/basic/math/div_FAC1_denorm.s b/c64/basic/math/div_FAC1_denorm.s index 5c40c4a8..4f93c876 100644 --- a/c64/basic/math/div_FAC1_denorm.s +++ b/c64/basic/math/div_FAC1_denorm.s @@ -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: