Update to latest version of 6502 functional tests

This commit is contained in:
Zellyn Hunter 2013-03-03 09:39:46 -08:00
parent 77c24879e3
commit e69ef9db5f
3 changed files with 75 additions and 10 deletions

View File

@ -21,7 +21,7 @@
; addressing modes with focus on propper setting of the processor status
; register bits.
;
; version 01-aug-2012
; version 02-mar-2013
; contact info at http://2m5.de or email K@2m5.de
;
; assembled with AS65 from http://www.kingswood-consulting.co.uk/assemblers/
@ -61,7 +61,8 @@
; added license - GPLv3
; 30-jul-2012 added configuration options
; 01-aug-2012 added trap macro to allow user to change error handling
; 01-dec-2012 fixed trap in branch field must be a branch
; 02-mar-2013 fixed PLA flags not tested
; C O N F I G U R A T I O N
;
@ -666,7 +667,7 @@ range_fw
dex ;-3
range_op ;test target with zero flag=0, z=1 if previous dex
range_adr = *+1 ;modifiable relative address
trap_eq ;if called without modification
beq *+64 ;if called without modification
dex ;+0
dex
dex
@ -861,10 +862,10 @@ test_bne
cpx #$ff ;sp incremented?
trap_ne
set_stat $ff ;all on
trap_pl ;branches should not be taken
trap_vc
trap_cc
trap_ne
bpl nbr1 ;branches should not be taken
bvc nbr2
bcc nbr3
bne nbr4
bmi br1 ;branches should be taken
trap
br1 bvs br2
@ -873,6 +874,14 @@ br2 bcs br3
trap
br3 beq br4
trap
nbr1
trap ;previous bpl taken
nbr2
trap ;previous bvc taken
nbr3
trap ;previous bcc taken
nbr4
trap ;previous bne taken
br4 php
tsx
cpx #$fe ;sp after php?
@ -884,7 +893,11 @@ br4 php
cpx #$ff ;sp after php?
trap_ne
set_stat 0 ;all off
trap_mi ;branches should not be taken
bmi nbr11 ;branches should not be taken
bvs nbr12
bcs nbr13
beq nbr14
trap_mi
trap_vs
trap_cs
trap_eq
@ -896,6 +909,14 @@ br12 bcc br13
trap
br13 bne br14
trap
nbr11
trap ;previous bmi taken
nbr12
trap ;previous bvs taken
nbr13
trap ;previous bcs taken
nbr14
trap ;previous beq taken
br14 php
pla
cmp_flag 0 ;flags off except break (pushed by sw) + reserved?
@ -918,6 +939,50 @@ br14 php
set_stat $ff-minus
trap_mi
; test PHA does not alter flags or accumulator but PLA does
ldx #$55 ;x & y protected
ldy #$aa
set_a 1,$ff ;push
pha
tst_a 1,$ff
set_a 0,0
pha
tst_a 0,0
set_a $ff,$ff
pha
tst_a $ff,$ff
set_a 1,0
pha
tst_a 1,0
set_a 0,$ff
pha
tst_a 0,$ff
set_a $ff,0
pha
tst_a $ff,0
set_a 0,$ff ;pull
pla
tst_a $ff,$ff-zero
set_a $ff,0
pla
tst_a 0,zero
set_a $fe,$ff
pla
tst_a 1,$ff-zero-minus
set_a 0,0
pla
tst_a $ff,minus
set_a $ff,$ff
pla
tst_a 0,$ff-minus
set_a $fe,0
pla
tst_a 1,0
cpx #$55 ;x & y unchanged?
trap_ne
cpy #$aa
trap_ne
; partial pretest EOR #
set_a $3c,0
eor #$c3

Binary file not shown.

View File

@ -71,10 +71,10 @@ func TestFunctionalTest(t *testing.T) {
break
}
if c.PC() == oldPC {
if c.PC() != 0x3BB5 {
if c.PC() != 0x3CC5 {
t.Errorf("Stuck at $%04X: 0x%02X", oldPC, m[oldPC])
}
break
return
}
}
for k, v := range unused {