c64-livecoding/wip-hugo/macros/16aritmatic.s
hugova 4f396fd740 A fix to a bug, to make line_down draw lines with small slopes.
I needed to use 16bit logic to ashive this.
Also moved out dx*2, dy*2 calculation outside of loop for better performance.
2025-03-01 23:57:15 +01:00

59 lines
852 B
ArmAsm
Executable file

.macro Add_16 a_low, a_hi, b_low, b_hi ; a = a + b
CLC
LDA b_low
ADC a_low
STA a_low
LDA b_hi
ADC a_hi
STA a_hi
.endmacro
.macro Sub_16 a_low, a_hi, b_low, b_hi ; a = a - b
SEC
LDA a_low
SBC b_low
STA a_low
LDA a_hi
SBC b_hi
STA a_hi
.endmacro
.macro mult_16 low_, hi_ ; [low, hi] = [low, hi]*2
CLC
ROL low_
ROL hi_
.endmacro
;.proc Sub_abs_8 ;return, primary, secondary
; LDA primary
; SEC
; SBC secondary
; BPL end_;we got z positive result
; LDA secondary
; SEC
; SBC primary
; end_:
; STA return
;.endproc
;
;.proc poer ;low, hi, in ; [low, hi] = [in]^2
; LDY in
; STY low
; LDA #$00
; STA hi
; ;pow:
; DEY ; count = count -1
; BEQ y_pow_end;
; CLC
; LDA in
; ADC low
; STA low
; LDA #$00
; ADC hi
; STA hi
; ;jmp pow
; y_pow_end:
;.endproc