diff options
| Commit | 7c67aa188d67281f70916aa3d048add56313d81c (patch) | |
|---|---|---|
| Author | 2025-08-03 08:45:39 +0300 | |
| Committer | 2025-08-03 10:42:53 +0300 | |
| Files | ef19074d28d3eac0500590853a4a101bd8299532 | |
| c64-programs-7c67aa188d67281f70916aa3d048add56313d81c.tar c64-programs-7c67aa188d67281f70916aa3d048add56313d81c.tar.gz c64-programs-7c67aa188d67281f70916aa3d048add56313d81c.zip | ||
| Parent | b54b80ec4c071b5464e631daadcbd240f4723a7f (diff) | |
feat(catalan): Implement multiplication
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\:\ \ |
