diff options
| Commit | bd6968203f502f3ffaa410c9a616e01d25698c9f (patch) | |
|---|---|---|
| Author | 2025-08-03 13:29:33 +0300 | |
| Committer | 2025-08-03 13:29:33 +0300 | |
| Files | 57b5efd2fd9faa381665c9d95637f1255ed63bac | |
| c64-programs-bd6968203f502f3ffaa410c9a616e01d25698c9f.tar c64-programs-bd6968203f502f3ffaa410c9a616e01d25698c9f.tar.gz c64-programs-bd6968203f502f3ffaa410c9a616e01d25698c9f.zip | ||
| Parent | 5e9819bd6c535f42d68c896e21fa060d048aa43d (diff) | |
feat(catalan): Implement catalan formula
1 files changed, 26 insertions, 13 deletions
| -rw-r--r-- | catalan/catalan.a65 | 39 |
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 |
