mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-25 18:30:21 +00:00
Added tests down to INC IX. No additional failures yet, though I've yet to reach conditional CALL.
This commit is contained in:
parent
23177df26a
commit
351d90ca55
@ -602,4 +602,120 @@ class Z80MachineCycleTests: XCTestCase {
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// INC r, DEC r
|
||||||
|
func testINCrDECr() {
|
||||||
|
test(
|
||||||
|
program: [0x3c, 0x3d],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// INC (HL), DEC (HL)
|
||||||
|
func testINCHLDECHL() {
|
||||||
|
test(
|
||||||
|
program: [0x34, 0x34],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .read, length: 4),
|
||||||
|
MachineCycle(operation: .write, length: 3),
|
||||||
|
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .read, length: 4),
|
||||||
|
MachineCycle(operation: .write, length: 3),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DAA, CPL, CCF, SCF, NOP, DI, EI, HALT
|
||||||
|
func testDAACPLCCFSCFNOPDIEIHALT() {
|
||||||
|
test(
|
||||||
|
program: [0x27, 0x2f, 0x3f, 0x37, 0x00, 0xf3, 0xfb, 0x76],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4), // one more for luck
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func testNEGIMs() {
|
||||||
|
test(
|
||||||
|
program: [0xed, 0x44, 0xed, 0x46, 0xed, 0x56, 0xed, 0x5e],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func testADDHL() {
|
||||||
|
test(
|
||||||
|
program: [0x09],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .internalOperation, length: 4),
|
||||||
|
MachineCycle(operation: .internalOperation, length: 3),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func testADDIX() {
|
||||||
|
test(
|
||||||
|
program: [0xdd, 0x09],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .internalOperation, length: 4),
|
||||||
|
MachineCycle(operation: .internalOperation, length: 3),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func testADCHL() {
|
||||||
|
test(
|
||||||
|
program: [0xed, 0x4a],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .internalOperation, length: 4),
|
||||||
|
MachineCycle(operation: .internalOperation, length: 3),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func testINCss() {
|
||||||
|
test(
|
||||||
|
program: [0x03],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 6),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func testINCIX() {
|
||||||
|
test(
|
||||||
|
program: [0xdd, 0x23],
|
||||||
|
busCycles: [
|
||||||
|
MachineCycle(operation: .readOpcode, length: 4),
|
||||||
|
MachineCycle(operation: .readOpcode, length: 6),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user