diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/add-sub.s | 27 | ||||
-rw-r--r-- | test/ind-addr.s | 24 |
2 files changed, 40 insertions, 11 deletions
diff --git a/test/add-sub.s b/test/add-sub.s new file mode 100644 index 0000000..694931d --- /dev/null +++ b/test/add-sub.s @@ -0,0 +1,27 @@ +; Test adding, and subtracting. +; +; Written by mr b0nk 500 <b0nk@b0nk.xyz> + +; Main Program. +.org 0 +reset: + cps ; Clear the processor status register. + ldx.w #$FFFF ; Reset the stack pointer. + txs ; + lsr #16 ; Reset A. + tab ; Reset B. + tax ; Reset X. +up: + inc ; Increment the counter. + cmp #$FF ; Did the accumulator overflow? + bcs down ; Yes, so start decrementing. + jmp up ; No, so keep incrementing. +down: + dec ; Did the accumulator underflow? + beq up ; Yes, so start incrementing. + jmp down ; No, so keep decrementing. + +.org $FFC0 +.qword reset +a +d diff --git a/test/ind-addr.s b/test/ind-addr.s index 0c9365b..005c016 100644 --- a/test/ind-addr.s +++ b/test/ind-addr.s @@ -1,8 +1,14 @@ -.org $0 +.org 0 +rot: + .qword 0 + +.org $1000 reset: cps - lda #1 ldb #1 + lda.w #rotate_left + sta.q rot + tba main: jsr (rot) jmp main @@ -15,13 +21,9 @@ rotate_right: rrb rts -.org $1000 -rot: - .qword rotate_left -r -.org $0 -v -.org $1000 -v -done +.org $FFC0 +.qword reset + +a +d |