diff options
1 files changed, 22 insertions, 0 deletions
| -rw-r--r-- | catalan/catalan.a65 | 22 |
diff --git a/catalan/catalan.a65 b/catalan/catalan.a65 index 5b544a2..16dd5c0 100644 --- a/catalan/catalan.a65 +++ b/catalan/catalan.a65 @@ -3,7 +3,29 @@ hello .byt "HELLO, WORLD!",0 +#define multiply(a, b) .( :\ + lda a ; if (a == 0) :\ + beq return ; return 0 :\ + sta buffer ; buffer = a :\ + \ + lda b ; if (b == 0) :\ + beq return ; return 0 :\ + tax ; x = b :\ + \ + lda #0 ; a = 0 :\ +loop clc ; do carry = 0 :\ + adc buffer ; a += buffer + carry :\ + dex ; --x :\ + cpx #0 ; while (x > 0) :\ + bne loop :\ +return :\ +.) + main print(hello) + multiply(#5, #7) + putchar() rts +buffer .byt 0 + // vim: noet ts=8 sw=0 lcs=tab\:\ \ |
