Open mre opened 1 year ago
Currently we get until here:
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 118, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1202, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 116, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1204, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 114, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1206, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 112, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1208, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 110, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1210, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 108, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1212, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 106, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1214, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 104, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1216, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 102, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1218, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 100, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1220, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 98, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1222, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 96, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1224, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 94, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1226, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 92, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1228, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 90, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1230, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 88, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1232, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 86, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1234, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 84, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1236, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 82, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1238, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 80, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1240, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 78, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1242, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 76, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1244, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 74, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1246, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 72, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1248, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 70, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1250, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 68, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1252, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 66, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1254, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 64, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1256, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 62, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1258, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 60, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1260, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 58, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1262, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 56, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1264, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 54, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1266, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 52, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1268, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 50, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1270, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 48, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1272, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 46, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1274, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 44, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1276, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 42, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1278, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 40, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1280, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 38, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1282, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 36, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1284, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 34, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1286, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 32, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1288, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 30, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1290, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 28, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1292, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 26, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1294, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 24, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1296, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 22, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1298, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 20, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1300, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 18, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1302, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 16, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1304, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 14, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1306, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 12, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1308, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 10, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1310, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 8, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1312, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 6, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1314, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 4, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1316, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 2, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1318, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(DEX, UseImplied)
CPU { registers: Registers { accumulator: 0, index_x: 0, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1320, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS | PS_ZERO) }
(BEQ, UseRelative(3))
CPU { registers: Registers { accumulator: 0, index_x: 0, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1327, status: Status(PS_NEGATIVE | PS_UNUSED | PS_DISABLE_INTERRUPTS | PS_CARRY) }
(BEQ, UseRelative(3))
CPU { registers: Registers { accumulator: 0, index_x: 0, index_y: 129, stack_pointer: StackPointer(255), program_counter: 1047, status: Status(PS_NEGATIVE | PS_UNUSED | PS_DISABLE_INTERRUPTS | PS_CARRY) }
(DEY, UseImplied)
CPU { registers: Registers { accumulator: -128, index_x: 0, index_y: 128, stack_pointer: StackPointer(255), program_counter: 1049, status: Status(PS_NEGATIVE | PS_UNUSED | PS_DISABLE_INTERRUPTS | PS_CARRY) }
(TAX, UseImplied)
CPU { registers: Registers { accumulator: -128, index_x: 128, index_y: 128, stack_pointer: StackPointer(255), program_counter: 1052, status: Status(PS_NEGATIVE | PS_UNUSED | PS_DISABLE_INTERRUPTS | PS_CARRY) }
(CLC, UseImplied)
CPU { registers: Registers { accumulator: -126, index_x: 128, index_y: 128, stack_pointer: StackPointer(255), program_counter: 1055, status: Status(PS_NEGATIVE | PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(EOR, UseImmediate(127))
CPU { registers: Registers { accumulator: -3, index_x: 128, index_y: 128, stack_pointer: StackPointer(255), program_counter: 1060, status: Status(PS_NEGATIVE | PS_UNUSED | PS_DISABLE_INTERRUPTS) }
(LDA, UseImmediate(0))
CPU { registers: Registers { accumulator: 0, index_x: 128, index_y: 128, stack_pointer: StackPointer(255), program_counter: 1191, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS | PS_ZERO) }
(BEQ, UseRelative(65533))
CPU { registers: Registers { accumulator: 0, index_x: 127, index_y: 128, stack_pointer: StackPointer(255), program_counter: 1191, status: Status(PS_UNUSED | PS_DISABLE_INTERRUPTS) }
Infinite loop detected!
I don't know what's the issue yet.
I don't know what's the issue yet.
It could it decimal arithmetic on invalid input BCD. As far as I know, that's the only issue solid65 finds with mre/6502.
As far as I can see, the functional test has some kind of conditional compilation to enable/disable decimal mode tests. Does the test pass if you disable this?
EDIT: Oh wait a minute, that debug log shows the decimal mode is not enabled (no PS_DECIMAL). So then I don't know what the probelm is. But I would have expected solid65 to pick up on it.
Do you know why I'm seeing this message? function decimal_subtract_test is never used
No idea. I don't get that message. Is that when you compile the project?
Do you know why I'm seeing this message? function decimal_subtract_test is never used
No idea. I don't get that message. Is that when you compile the project?
No, it's in the code review area on Github. But I can't find it again now 🤷
EDIT: Oh here it is. On line 1044 of cpu.rs.
Check warning on line 1045 in src/cpu.rs GitHub Actions / test (ubuntu-latest)
function
decimal_subtract_test
is never used
There's also one for MacOS-latest and windows-latest. Similarly, further up for decimal_add_test etc.
EDIT: Oh here it is. On line 1044 of cpu.rs.
Okay, no idea. Looks like a false-positive to me. I don't see that message if I scroll to that line.
At some point we need to decide what to do with this here. 😆 I'm willing to ditch it or alternatively we could rebase it. Can't remember what was the state on this.
The functional test is based on https://github.com/Klaus2m5/6502_65C02_functional_tests
It does NOT pass yet. :( However, I think it's a good idea to have it in the repo nonetheless, to make some incremental improvements.
This PR is based on the
asm
branch, which should be merged first.