diff options
| Commit | 131ea6c22d87eb40bc1db9bd4227f8f4b46af96d (patch) | |
|---|---|---|
| Author | 2025-08-03 09:01:41 +0300 | |
| Committer | 2025-08-03 10:43:03 +0300 | |
| Files | 69f30054352c9d476a6c2902df668156385b5af2 | |
| c64-programs-131ea6c22d87eb40bc1db9bd4227f8f4b46af96d.tar c64-programs-131ea6c22d87eb40bc1db9bd4227f8f4b46af96d.tar.gz c64-programs-131ea6c22d87eb40bc1db9bd4227f8f4b46af96d.zip | ||
| Parent | 7c67aa188d67281f70916aa3d048add56313d81c (diff) | |
feat(catalan): Implement division
1 files changed, 18 insertions, 1 deletions
| -rw-r--r-- | catalan/catalan.a65 | 19 |
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 |
