summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/add-sub.s27
-rw-r--r--test/ind-addr.s24
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