izapple2/core6502/6502functional_test.go

33 lines
563 B
Go
Raw Normal View History

package core6502
2019-02-12 21:30:35 +00:00
import (
"fmt"
"testing"
)
func TestFunctional(t *testing.T) {
m := new(FlatMemory)
s := NewNMOS6502(m)
// Test suite from https://github.com/Klaus2m5/6502_65C02_functional_tests
m.loadBinary("testdata/6502_functional_test.bin")
2019-02-12 21:30:35 +00:00
s.reg.setPC(0x0400)
2019-02-12 21:30:35 +00:00
for true {
testCase := s.mem.Peek(0x0200)
2019-02-12 21:30:35 +00:00
if testCase >= 240 {
break
}
log := testCase > 43
if log {
fmt.Printf("[ %d ] ", testCase)
}
pc := s.reg.getPC()
s.ExecuteInstruction(log)
if pc == s.reg.getPC() {
t.Errorf("Failure in test %v.", testCase)
2019-02-12 21:30:35 +00:00
}
}
2019-02-12 21:30:35 +00:00
}