#include "basic_starter.a65" #include "print.a65" #include "math.a65" main .( ldy #0 ; y = 0 loop jsr catalan ; do catalan() print_num(cat_Cn) ; print cat_Cn putc(#" ") ; print ' ' iny ; ++y sty cat_n ; cat_n = y cpy #7 ; while (y < 7) bcc loop return rts .) catalan .( lda #1 ; a = 1 sta Cn ; Cn = a lda n ; a = n cmp #1 ; if (a < 1) bcc return ; return ldy #0 ; y = 0 loop iny ; do ++y tya ; a = y applya(multa, multa_arg, #4) ; a *= 4 sec ; a -= 2 sbc #2 applya(multa, multa_arg, Cn) ; a *= Cn iny ; ++y sty divisor ; divisor = y dey ; --y applya(diva, diva_arg, divisor) ; a /= divisor sta Cn ; Cn = a cpy n ; while (y < n) bcc loop return rts +cat_Cn Cn .byt 1 +cat_n n .byt 0 divisor .byt 0 .) // vim: noet ts=8 sw=0 lcs=tab\:\ \