c64-livecoding/wip-hugo/macros/16aritmatic.s
2025-02-27 22:04:43 +01:00

48 lines
No EOL
689 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 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