diff --git a/fac/plasma_opt.s b/fac/plasma_opt.s index 683df585..dad373a4 100644 --- a/fac/plasma_opt.s +++ b/fac/plasma_opt.s @@ -11,6 +11,7 @@ ; 171 bytes = optimize save/load of loop index ; 169 bytes = optimize multiply by 8 ; 166 bytes = separate common sin code +; 164 bytes = move more to common sin code qint = $EBF2 ; convert FAC to 32-bit int? fadd = $E7BE ; FAC = (Y:A)+FAC @@ -26,7 +27,7 @@ FAC = $9D ; 9D-A2 ; uses ARG (A5-AA) for argument ; uses FAC (9D-A2) - +TEMP1 = $FE OURX = $FF sin1 = $2000 @@ -120,16 +121,12 @@ sin_loop: sin_table_input1_smc: lda #save +; ldx #save + txa +; lda #one_input ; high byte, assume always same - ldy #>one_input jsr fmult ; FAC=FAC*(constant from RAM) jsr sin ; FAC=sin(FAC) - ; 32 or 24 - ldy #>thirty_two + ldy #>thirty_two ; high byte, assume always same + lda TEMP1 + + jsr fmult ; FAC=constant*FAC + + ldy #>save + ldx #