diff --git a/c64/basic/math/mul_FAC2_FAC1_shift.s b/c64/basic/math/mul_FAC2_FAC1_shift.s index 2f3c8acf..6aed5169 100644 --- a/c64/basic/math/mul_FAC2_FAC1_shift.s +++ b/c64/basic/math/mul_FAC2_FAC1_shift.s @@ -8,6 +8,16 @@ mul_FAC2_FAC1_shift: + // Check if rounding is needed + + php + clc + lda RESHO+4 + bpl !+ + sec +!: + // Copy bytes + lda RESHO+3 sta RESHO+4 lda RESHO+2 @@ -18,5 +28,19 @@ mul_FAC2_FAC1_shift: sta RESHO+1 lda #$00 sta RESHO+0 + bcc !+ + // Perform rounding + + inc RESHO+4 + bne !+ + inc RESHO+3 + bne !+ + inc RESHO+2 + bne !+ + inc RESHO+1 + bne !+ + inc RESHO+0 +!: + plp rts