aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/expected/runrom/arithlog.txt58
-rw-r--r--tests/runrom/arithlog.s68
2 files changed, 126 insertions, 0 deletions
diff --git a/tests/expected/runrom/arithlog.txt b/tests/expected/runrom/arithlog.txt
new file mode 100644
index 0000000..aa31569
--- /dev/null
+++ b/tests/expected/runrom/arithlog.txt
@@ -0,0 +1,58 @@
+<start> PC: $8000, cycles: 7, registers: [a: $00, x: $00, y: $00, sp: $FD], status: ----I--
+lda #$01 PC: $8002, cycles: 9, registers: [a: $01, x: $00, y: $00, sp: $FD], status: ----I--
+sta $00 PC: $8004, cycles: 12, registers: [a: $01, x: $00, y: $00, sp: $FD], status: ----I--
+sec PC: $8005, cycles: 14, registers: [a: $01, x: $00, y: $00, sp: $FD], status: ----I-C
+adc $00 PC: $8007, cycles: 17, registers: [a: $03, x: $00, y: $00, sp: $FD], status: ----I--
+ldx #$FF PC: $8009, cycles: 19, registers: [a: $03, x: $FF, y: $00, sp: $FD], status: N---I--
+inx PC: $800A, cycles: 21, registers: [a: $03, x: $00, y: $00, sp: $FD], status: ----IZ-
+inx PC: $800B, cycles: 23, registers: [a: $03, x: $01, y: $00, sp: $FD], status: ----I--
+sta $00, x PC: $800D, cycles: 27, registers: [a: $03, x: $01, y: $00, sp: $FD], status: ----I--
+clc PC: $800E, cycles: 29, registers: [a: $03, x: $01, y: $00, sp: $FD], status: ----I--
+adc $00 PC: $8010, cycles: 32, registers: [a: $04, x: $01, y: $00, sp: $FD], status: ----I--
+sta $02 PC: $8012, cycles: 35, registers: [a: $04, x: $01, y: $00, sp: $FD], status: ----I--
+txa PC: $8013, cycles: 37, registers: [a: $01, x: $01, y: $00, sp: $FD], status: ----I--
+sec PC: $8014, cycles: 39, registers: [a: $01, x: $01, y: $00, sp: $FD], status: ----I-C
+sbc $00 PC: $8016, cycles: 42, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZC
+sta $03 PC: $8018, cycles: 45, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZC
+sec PC: $8019, cycles: 47, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZC
+rol $03 PC: $801B, cycles: 52, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZ-
+sta $04 PC: $801D, cycles: 55, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZ-
+sec PC: $801E, cycles: 57, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZC
+ror $02 PC: $8020, cycles: 62, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZ-
+sta $05 PC: $8022, cycles: 65, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZ-
+asl PC: $8023, cycles: 67, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZ-
+sta $06 PC: $8025, cycles: 70, registers: [a: $00, x: $01, y: $00, sp: $FD], status: ----IZ-
+ldy #$01 PC: $8027, cycles: 72, registers: [a: $00, x: $01, y: $01, sp: $FD], status: ----I--
+tya PC: $8028, cycles: 74, registers: [a: $01, x: $01, y: $01, sp: $FD], status: ----I--
+and $00, x PC: $802A, cycles: 78, registers: [a: $01, x: $01, y: $01, sp: $FD], status: ----I--
+sta $07 PC: $802C, cycles: 81, registers: [a: $01, x: $01, y: $01, sp: $FD], status: ----I--
+ora $00 PC: $802E, cycles: 84, registers: [a: $01, x: $01, y: $01, sp: $FD], status: ----I--
+sta $08 PC: $8030, cycles: 87, registers: [a: $01, x: $01, y: $01, sp: $FD], status: ----I--
+inc $00 PC: $8032, cycles: 92, registers: [a: $01, x: $01, y: $01, sp: $FD], status: ----I--
+eor $00 PC: $8034, cycles: 95, registers: [a: $03, x: $01, y: $01, sp: $FD], status: ----I--
+sta $09 PC: $8036, cycles: 98, registers: [a: $03, x: $01, y: $01, sp: $FD], status: ----I--
+lda #$FF PC: $8038, cycles: 100, registers: [a: $FF, x: $01, y: $01, sp: $FD], status: N---I--
+clc PC: $8039, cycles: 102, registers: [a: $FF, x: $01, y: $01, sp: $FD], status: N---I--
+adc #$01 PC: $803B, cycles: 104, registers: [a: $00, x: $01, y: $01, sp: $FD], status: ----IZC
+sta $0A PC: $803D, cycles: 107, registers: [a: $00, x: $01, y: $01, sp: $FD], status: ----IZC
+lda #$00 PC: $803F, cycles: 109, registers: [a: $00, x: $01, y: $01, sp: $FD], status: ----IZC
+sec PC: $8040, cycles: 111, registers: [a: $00, x: $01, y: $01, sp: $FD], status: ----IZC
+sbc #$01 PC: $8042, cycles: 113, registers: [a: $FF, x: $01, y: $01, sp: $FD], status: N---I--
+sta $0B PC: $8044, cycles: 116, registers: [a: $FF, x: $01, y: $01, sp: $FD], status: N---I--
+rts PC: $8045, cycles: 122, registers: [a: $FF, x: $01, y: $01, sp: $FD], status: N---I--
+<end>
+
+== Memory dump ==
+
+[$0] = $02 [reads=6, writes=2]
+[$1] = $03 [reads=1, writes=1]
+[$2] = $82 [reads=1, writes=2]
+[$3] = $01 [reads=1, writes=2]
+[$4] = $00 [reads=0, writes=1]
+[$5] = $00 [reads=0, writes=1]
+[$6] = $00 [reads=0, writes=1]
+[$7] = $01 [reads=0, writes=1]
+[$8] = $01 [reads=0, writes=1]
+[$9] = $03 [reads=0, writes=1]
+[$A] = $00 [reads=0, writes=1]
+[$B] = $FF [reads=0, writes=1]
diff --git a/tests/runrom/arithlog.s b/tests/runrom/arithlog.s
new file mode 100644
index 0000000..99648cb
--- /dev/null
+++ b/tests/runrom/arithlog.s
@@ -0,0 +1,68 @@
+.segment "HEADER"
+ .byte 'N', 'E', 'S', $1A
+ .byte $02, $01
+ .byte $00
+ .byte $00
+
+.segment "CHARS"
+.byte 0
+
+.segment "VECTORS"
+ .addr reset, reset, reset
+
+.segment "CODE"
+
+reset:
+ lda #1
+ sta $00
+
+ sec
+ adc $00
+ ldx #$FF
+ inx
+ inx
+ sta $00, x
+
+ clc
+ adc $00
+ sta $02
+
+ txa
+ sec
+ sbc $00
+ sta $03
+
+ sec
+ rol $03
+ sta $04
+
+ sec
+ ror $02
+ sta $05
+
+ asl
+ sta $06
+
+ ldy #1
+ tya
+ and $00, x
+ sta $07
+
+ ora $00
+ sta $08
+
+ inc $00
+ eor $00
+ sta $09
+
+ lda #$FF
+ clc
+ adc #1
+ sta $0A
+
+ lda #$00
+ sec
+ sbc #1
+ sta $0B
+
+ rts