Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
1 files changed, 18 insertions, 1 deletions
-rw-r--r--catalan/catalan.a6519
diff --git a/catalan/catalan.a65 b/catalan/catalan.a65
index 16dd5c0..7dc73b0 100644
--- a/catalan/catalan.a65
+++ b/catalan/catalan.a65
@@ -21,8 +21,25 @@ loop clc ; do carry = 0 :\
return :\
.)
+#define divide(a, b) .( :\
+ lda b ; if (b == 0) :\
+ beq return ; return 0 :\
+ sta buffer ; buffer = b :\
+ \
+ lda a ; if (a == 0) :\
+ beq return ; return 0 :\
+ ldx #0 ; x = 0 :\
+ \
+loop sec ; do carry = 1 :\
+ sbc buffer ; a -= buffer + !carry :\
+ inx ; ++x :\
+ cmp buffer ; while (a >= buffer) :\
+ bcs loop :\
+return txa :\
+.)
+
main print(hello)
- multiply(#5, #7)
+ divide(#253, #5)
putchar()
rts