jsr init_global\r
jsr init_ppu\r
\r
+;;address specific test comes first...\r
jsr addr_test\r
+\r
lda ad_start_msg\r
sta $00\r
lda ad_start_msg+1\r
nop\r
nop\r
jmp @jmp_test1\r
- .byte "**********"\r
.byte "0***************"\r
- .byte "1***************"\r
- .byte "2************"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
- .byte "***"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "**********"\r
\r
@jmp_ret1:\r
nop\r
- ;;page cross at cycle #0\r
+ ;;page cross at jmp cycle #0\r
jmp @jmp_test2\r
- .byte "3*************"\r
- .byte "4***************"\r
+\r
+ .byte "**************"\r
+ .byte "1***************"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
+ .byte "*************"\r
\r
@jmp_ret2:\r
- ;;page cross at the cycle #2\r
+ ;;page cross at the jmp cycle #2\r
+ nop\r
jmp @jmp_test3\r
- .byte "5*********"\r
+ .byte "***************"\r
+ .byte "2***********"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
\r
@jmp_ret3:\r
+ ;;page cross at the jmp cycle #1\r
nop\r
jmp @jmp_test4\r
- .byte "6***********"\r
+ .byte "3***********"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
\r
+ ;;a1 instruction\r
+ ;;page cross at cycle #0\r
@jmp_ret4:\r
- ;;page cross at the cycle #1\r
- jmp @jmp_test5\r
- .byte "7*********"\r
+ ldx #$5f\r
+ nop\r
+ inx\r
+ cpx #$60\r
+ beq :+\r
+ jsr test_failure\r
+:\r
\r
+ jmp @jmp_test5\r
+ .byte "******"\r
+ .byte "4***************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "***************"\r
@jmp_ret5:\r
+ ;;a1 instruction\r
+ ;;page cross at cycle #0\r
nop\r
- jmp @jmp_test6\r
- .byte "8***************"\r
+ inx\r
+ cpx #$61\r
+ beq :+\r
+ jsr test_failure\r
+:\r
\r
+ jmp @jmp_test6\r
+ .byte "*****"\r
+ .byte "5***********"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
@jmp_ret6:\r
+ ;;a2 instruction\r
+ ;;page cross at cycle #0\r
+ sec\r
+ lda #$3b\r
+ nop\r
+ adc #$9b ;;;3b+9b+1=d7\r
+ cmp #$d7\r
+ beq :+\r
+ jsr test_failure\r
+:\r
+ jmp @jmp_test7\r
+ .byte "*****"\r
+ .byte "6*********"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+@jmp_ret7:\r
+ ;;a2 instruction\r
+ ;;page cross at cycle #1\r
+ sec\r
+ lda #$77\r
+ nop\r
+ ora #$f0 ;;;3b+9b+1=d7\r
+ cmp #$f7\r
+ beq :+\r
+ jsr test_failure\r
+:\r
+ jmp @jmp_test8\r
+ .byte "*****"\r
+ .byte "7***"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+@jmp_ret8:\r
+ ;;a2 instruction\r
+ ;;page cross at cycle #2\r
+ sec\r
+ lda #$c1\r
+ sta $0620 ;;@0620=c1\r
+ lda #$91\r
+ nop\r
+ sbc $0620 ;;;91-c1=d0\r
+ cmp #$d0\r
+ beq :+\r
+ jsr test_failure\r
+:\r
+\r
+\r
+\r
jmp @jmp_test_done\r
\r
@jmp_test1:\r
jmp @jmp_ret5\r
@jmp_test6:\r
jmp @jmp_ret6\r
+@jmp_test7:\r
+ jmp @jmp_ret7\r
+@jmp_test8:\r
+ jmp @jmp_ret8\r
\r
@jmp_test_done:\r
lda ad_addr_test\r