Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit131ea6c22d87eb40bc1db9bd4227f8f4b46af96d (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-08-03 09:01:41 +0300
Committer
 Syndamia <kamen@syndamia.com>
2025-08-03 10:43:03 +0300
Files69f30054352c9d476a6c2902df668156385b5af2
c64-programs-131ea6c22d87eb40bc1db9bd4227f8f4b46af96d.tar
c64-programs-131ea6c22d87eb40bc1db9bd4227f8f4b46af96d.tar.gz
c64-programs-131ea6c22d87eb40bc1db9bd4227f8f4b46af96d.zip
Parent7c67aa188d67281f70916aa3d048add56313d81c (diff)
feat(catalan): Implement division
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