.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