diff options
Diffstat (limited to 'test/fib.s')
-rw-r--r-- | test/fib.s | 48 |
1 files changed, 23 insertions, 25 deletions
@@ -5,45 +5,44 @@ ; by mr b0nk 500 <b0nk@b0nk.xyz> ; Variables for thread 0. -.org $1000 -x: - .qword $0 -y: - .qword $0 -z: - .qword $0 +.org 0 +x1: + .res 8 +y1: + .res 8 +z1: + .res 8 ; Variables for thread 1. -.org $2000 x2: - .qword $0 + .res 8 y2: - .qword $0 + .res 8 z2: - .qword $0 + .res 8 -.org $0 +.org $8000 init: cps ; Clear the Processor Status register. start: lda #$0 ; Clear the accumulator. ldy #$1 ; y=1. - sty.q y ; Store y into memory. + sty.q y1 ; Store y into memory. fib: ldx #$0 ; x=0. - ldx.q x ; Output the value of x. - adc.q y ; Add x with y. - sta.q z ; z=x+y - ldy.q y - sty.q x ; x=y. - sta.q y ; y=z. - lda.q x + ldx.q x1 ; Output the value of x. + adc.q y1 ; Add x with y. + sta.q z1 ; z=x+y + ldy.q y1 + sty.q x1 ; x=y. + sta.q y1 ; y=z. + lda.q x1 bcs start ; Start all over again, if the carry flag was set. - jmp fib ; Otherwise, keep looping. + bra fib ; Otherwise, keep looping. + -.org $8000 init2: cps ; Clear the Processor Status register. @@ -62,12 +61,11 @@ fib2: sta.q y2 ; y2=z2. lda.q x2 bcs start2 ; Start all over again, if the carry flag was set. - jmp fib2 ; Otherwise, keep looping. + bra fib2 ; Otherwise, keep looping. ; Set up the thread vectors. .org $FF50 .qword init2 ; Execute the program. a -done - +d |