forked from arti/vt1200
Root cause of the missing THRA write (HOST PORT test): the level-1 host-port
test's transmit is ISR-driven, and the DUART interrupt was never wired to the
CPU. The firmware installs RAM trampolines in the fixed vector table (INT1
vector 0xffffffc0 -> stub at bit 0x0f60 = JA 0x3FA92F40, which calls the DUART
ISR L3FA78D90 with (2, 0x270860, 0x6400000)). Counters: INTENB reaches 0x0006
(INT1|INT2) at the test, so interrupts are enabled.
vt1200.cpp: wire m_duart1/m_duart2 irq_cb() to CPU external interrupt 1/2
(duart1_irq_w/duart2_irq_w), gated on VT1200_DUART. Result: THRA writes go
from 0 to 20 per run; the test's SRA-overrun and RHRA-pattern checks now pass.
MAME tree (mc68681.cpp/.h), two datasheet-backed corrections with revert notes:
1. TxRDY was asserted mid-character ("not until the end of start bit time");
the datasheet asserts it at the THR->TSR transfer. Corrected.
2. The overrun error was latched when the overrunning character *completed*
(rx_fifo_push); the datasheet latches it "upon receipt of the start bit of
the new (overrunning) character". Corrected via duart_channel::rx_w().
This clears every check in the RXCHECK sub-test (flags 1 -> 0).
Acceptance is NOT met: cap.lua still prints 'LEVEL1/2 ERROR -> HOST PORT - 15'.
The next failure is the preceding L3FA71BC0 (DUART baud/timer) sub-test
returning 6; its flag-set sites were breakpointed and never fired. Regression
holds (no VT1200_* env -> PC=3FDCE400 samples=199). Details, numbers and the
datasheet audit: harness/mame/DUART_REPORT.md sections FINAL FINDINGS / UPDATE.
127 lines
4.0 KiB
Plaintext
127 lines
4.0 KiB
Plaintext
# kind addr pc value (bit addresses; distinct (addr,pc) only)
|
|
W 0640000D pc=3F2000B0 val=0000
|
|
R 0640000F pc=3F200100 val=00FF
|
|
R 0640000E pc=3F200150 val=00FF
|
|
W 0620000D pc=3F200190 val=0000
|
|
W 0620000F pc=3F2001E0 val=0004
|
|
R 0640000F pc=3F200250 val=00FF
|
|
R 0640000D pc=3F200380 val=00F0
|
|
R 0640000D pc=3F200A20 val=00F0
|
|
R 0640000D pc=3F202650 val=00F0
|
|
W 05900000 pc=3FDDCAE0 val=0000
|
|
W 05800000 pc=3FDDCB20 val=0004
|
|
R 0640000D pc=3F2045A0 val=00F0
|
|
W 0620000D pc=3F2052C0 val=0000
|
|
W 0620000E pc=3F205310 val=00FF
|
|
W 0620000F pc=3F205370 val=0004
|
|
R 0640000E pc=3F2042D0 val=00FF
|
|
R 0640000D pc=3F204300 val=00F0
|
|
W 0640000D pc=3FDF1150 val=0000
|
|
W 0640000F pc=3FDF1190 val=0001
|
|
R 06200001 pc=3FDF3900 val=0000
|
|
R 06200001 pc=3FDF3A20 val=0000
|
|
W 06200003 pc=3FDF3AD0 val=0011
|
|
W 06200003 pc=3FDF3BE0 val=008C
|
|
R 0640000D pc=3FDF7DE0 val=00F0
|
|
W 06200002 pc=3FA91260 val=00CA
|
|
W 06200002 pc=3FA91300 val=002A
|
|
W 06200002 pc=3FA913B0 val=003A
|
|
W 06200002 pc=3FA91460 val=004A
|
|
W 06200002 pc=3FA91500 val=005A
|
|
W 06200002 pc=3FA915A0 val=001A
|
|
W 0620000A pc=3FA91650 val=00CA
|
|
W 0620000A pc=3FA916F0 val=002A
|
|
W 0620000A pc=3FA917A0 val=003A
|
|
W 0620000A pc=3FA91850 val=004A
|
|
W 0620000A pc=3FA91900 val=005A
|
|
W 0620000A pc=3FA919A0 val=001A
|
|
W 06200000 pc=3FA91A30 val=0013
|
|
W 06200000 pc=3FA91AC0 val=0007
|
|
W 06200001 pc=3FA91B70 val=0099
|
|
W 06200002 pc=3FA91C70 val=0005
|
|
W 06200008 pc=3FA91D10 val=0007
|
|
W 06200008 pc=3FA91DB0 val=0007
|
|
W 06200009 pc=3FA91E60 val=0099
|
|
W 0620000A pc=3FA91F40 val=0005
|
|
W 06200005 pc=3FA91FE0 val=0000
|
|
R 06200001 pc=3FDCE670 val=0099
|
|
R 06200003 pc=3FDCE700 val=008C
|
|
R 06200001 pc=3FDCE820 val=0099
|
|
W 06200003 pc=3FDCE8D0 val=00E1
|
|
R 06200001 pc=3FDCE910 val=0099
|
|
R 06200003 pc=3FDCE970 val=00E1
|
|
R 06200001 pc=3FDCEA90 val=0099
|
|
W 0620000D pc=3FDF1B40 val=0000
|
|
W 0620000E pc=3FDF1B80 val=000C
|
|
W 06400002 pc=3FA90A00 val=00CA
|
|
W 06400002 pc=3FA90AB0 val=002A
|
|
W 06400002 pc=3FA90B60 val=003A
|
|
W 06400002 pc=3FA90C10 val=004A
|
|
W 06400002 pc=3FA90CC0 val=005A
|
|
W 06400002 pc=3FA90D60 val=001A
|
|
W 0640000A pc=3FA90E10 val=00CA
|
|
W 0640000A pc=3FA90EC0 val=002A
|
|
W 0640000A pc=3FA90F70 val=003A
|
|
W 0640000A pc=3FA91020 val=004A
|
|
W 0640000A pc=3FA910D0 val=005A
|
|
W 0640000A pc=3FA91170 val=001A
|
|
W 06200002 pc=3FA90A00 val=00CA
|
|
W 06200002 pc=3FA90AB0 val=002A
|
|
W 06200002 pc=3FA90B60 val=003A
|
|
W 06200002 pc=3FA90C10 val=004A
|
|
W 06200002 pc=3FA90CC0 val=005A
|
|
W 06200002 pc=3FA90D60 val=001A
|
|
W 0620000A pc=3FA90E10 val=00CA
|
|
W 0620000A pc=3FA90EC0 val=002A
|
|
W 0620000A pc=3FA90F70 val=003A
|
|
W 0620000A pc=3FA91020 val=004A
|
|
W 0620000A pc=3FA910D0 val=005A
|
|
W 0620000A pc=3FA91170 val=001A
|
|
W 0640000F pc=3FA7C330 val=0080
|
|
W 06400002 pc=3FA778D0 val=00FA
|
|
W 06400002 pc=3FA77990 val=00CA
|
|
W 06400002 pc=3FA77A30 val=002A
|
|
W 06400002 pc=3FA77AD0 val=003A
|
|
W 06400002 pc=3FA77B70 val=004A
|
|
W 06400002 pc=3FA77C10 val=005A
|
|
W 06400002 pc=3FA77CA0 val=001A
|
|
W 0640000A pc=3FA77990 val=00CA
|
|
W 0640000A pc=3FA77A30 val=002A
|
|
W 0640000A pc=3FA77AD0 val=003A
|
|
W 0640000A pc=3FA77B70 val=004A
|
|
W 0640000A pc=3FA77C10 val=005A
|
|
W 0640000A pc=3FA77CA0 val=001A
|
|
W 06400005 pc=3FA78B40 val=0007
|
|
W 0640000D pc=3FA704E0 val=0000
|
|
W 06400004 pc=3FA71CB0 val=0060
|
|
W 06400002 pc=3FA71F20 val=003A
|
|
W 06400002 pc=3FA71FD0 val=002A
|
|
W 06400002 pc=3FA72080 val=004A
|
|
W 06400002 pc=3FA72120 val=001A
|
|
W 06400001 pc=3FA72220 val=0088
|
|
W 06400000 pc=3FA73090 val=0012
|
|
W 06400000 pc=3FA731B0 val=0080
|
|
W 06400002 pc=3FA73260 val=0005
|
|
W 06400002 pc=3FA73420 val=000A
|
|
W 06400002 pc=3FA74BE0 val=002A
|
|
W 06400002 pc=3FA74C80 val=002B
|
|
W 06400002 pc=3FA74D10 val=004A
|
|
W 06400002 pc=3FA74DA0 val=0065
|
|
W 06400002 pc=3FA74E60 val=007A
|
|
W 06400002 pc=3FA74F10 val=0050
|
|
W 06400005 pc=3FA78D10 val=0000
|
|
W 06400002 pc=3FA75570 val=003A
|
|
W 06400002 pc=3FA75620 val=002A
|
|
W 06400002 pc=3FA756D0 val=004A
|
|
W 06400002 pc=3FA75770 val=001A
|
|
W 06400001 pc=3FA75870 val=0088
|
|
W 06400000 pc=3FA75BC0 val=0010
|
|
W 06400000 pc=3FA75CE0 val=0080
|
|
W 06400002 pc=3FA75D90 val=0005
|
|
W 06400002 pc=3FA76010 val=000A
|
|
R 06400001 pc=3FA761B0 val=0000
|
|
R 06400003 pc=3FA76360 val=0000
|
|
W 0640000F pc=3FA850F0 val=0080
|
|
W 0640000D pc=3F208830 val=0000
|
|
W 0640000F pc=3F208880 val=00FF
|