Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitbd6968203f502f3ffaa410c9a616e01d25698c9f (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-08-03 13:29:33 +0300
Committer
 Syndamia <kamen@syndamia.com>
2025-08-03 13:29:33 +0300
Files57b5efd2fd9faa381665c9d95637f1255ed63bac
c64-programs-bd6968203f502f3ffaa410c9a616e01d25698c9f.tar
c64-programs-bd6968203f502f3ffaa410c9a616e01d25698c9f.tar.gz
c64-programs-bd6968203f502f3ffaa410c9a616e01d25698c9f.zip
Parent5e9819bd6c535f42d68c896e21fa060d048aa43d (diff)
feat(catalan): Implement catalan formula
1 files changed, 26 insertions, 13 deletions
-rw-r--r--catalan/catalan.a6539
diff --git a/catalan/catalan.a65 b/catalan/catalan.a65
index 4b6c01f..0f3cc33 100644
--- a/catalan/catalan.a65
+++ b/catalan/catalan.a65
@@ -3,14 +3,27 @@
#include "math.a65"
hello .byt "HELLO, WORLD!",0
+newline .byt 13,0
main .(
- applya(diva, #65, diva_arg, #15)
+ lda #3
+ sta cat_n
+ jsr catalan
+ lda cat_Cn
jsr printa
+/*
+ ldy #0
+loop jsr catalan
+ lda cat_Cn
+ jsr printa
+ lda #" "
+ putchar()
+ iny
+ sty cat_n
+ cpy #7
+ bcc loop
+*/
- ;jsr catalan
- ;lda cat_n
- ;putchar()
rts
.)
@@ -28,29 +41,29 @@ catalan .(
cmp #1 ; if (a < 1)
bcc return ; return
- ldx #0 ; x = 0
-loop inx ; do ++x
+ ldy #0 ; y = 0
+loop iny ; do ++y
- txa ; a = x
+ tya ; a = y
; a *= 4
starg(multa_arg, #4)
jsr multa
sec ; a -= 2
sbc #2
- inx ; ++x
- stx divisor ; divisor = x
- dex ; --x
+ iny ; ++y
+ sty divisor ; divisor = y
+ dey ; --y
; a /= divisor
starg(diva_arg, divisor)
jsr diva
- ; a *= cat_n
- starg(multa_arg, cat_n)
+ ; a *= Cn
+ starg(multa_arg, Cn)
jsr multa
sta Cn ; Cn = a
- cpx n ; while (x < n)
+ cpy n ; while (y < n)
bcc loop
return rts