Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
1 files changed, 22 insertions, 0 deletions
-rw-r--r--catalan/catalan.a6522
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\:\ \