mirror of
https://git.k-space.ee/arti/vt1200.git
synced 2026-10-30 12:03:54 +02:00
Enumeration (measurement only): of the 18 flag-set sites in L3FA71BC0 and 4 in L3FA753D0, exactly three fire -- L3FA71BC0 c6 (cmp 3FA73970 btst5 on struct[index].0x60; actual 0x0001/0x0009, bit5 clear) and L3FA753D0 c1/c0 (cmp 3FA760E0 btst1 / 3FA76050 btst4 on the index4/index5 SRA snapshots; actual 0x05/0x07, FFULL and OVR clear). All other checks pass; cE is a summary flag, not a check. Task 2 citation (for independent reading): SCN2681 p.7 "Data is transferred from the holding register to transmit shift register when it is idle..." and p.22 "TxRDY sets at the end of the 'start bit' time. It is during the start bit that the data in the transmit holding register is transferred...". Neither states a bit-count latency; MAME measurably inserts ~1 bit (RX sync = THRA write + 2605 cycles, bit = 2604). Candidate deviation, not written. Full picture (established / ruled out / remaining discrepancy / open deviations) recorded in DUART_REPORT.md. Acceptance still fails; regression holds.
24 lines
1.2 KiB
Lua
24 lines
1.2 KiB
Lua
-- hp_flags.lua -- which check in each sub-test fails: break on every flag-set site.
|
|
local machine = manager.machine
|
|
local cpu = machine.devices[':maincpu']
|
|
local dbg = machine.debugger
|
|
if not dbg then print("ERROR: no debugger"); machine:exit(); return end
|
|
local function bp(addr, msg)
|
|
dbg:command('bpset ' .. addr .. ',,{ printf "FLAG ' .. msg .. '\\n" ; g }')
|
|
end
|
|
-- L3FA71BC0 flag-set sites (dis34 addresses)
|
|
bp("3fa73490","BC0/c0"); bp("3fa73520","BC0/c1"); bp("3fa735a0","BC0/c2"); bp("3fa73630","BC0/c3")
|
|
bp("3fa73830","BC0/c4"); bp("3fa738f0","BC0/c5"); bp("3fa739b0","BC0/c6"); bp("3fa73a70","BC0/c7")
|
|
bp("3fa73cb0","BC0/c8a"); bp("3fa73ee0","BC0/c9a"); bp("3fa74110","BC0/c9b"); bp("3fa743b0","BC0/c8b")
|
|
bp("3fa745c0","BC0/c9c"); bp("3fa74850","BC0/cA"); bp("3fa74a40","BC0/cB"); bp("3fa74f70","BC0/cC")
|
|
bp("3fa75000","BC0/cD"); bp("3fa75060","BC0/cE")
|
|
-- L3FA753D0 flag-set sites
|
|
bp("3fa76090","RX/c0"); bp("3fa76120","RX/c1"); bp("3fa76220","RX/c3"); bp("3fa763d0","RX/c2")
|
|
local n = 0
|
|
emu.register_frame_done(function()
|
|
n = n + 1
|
|
if n >= tonumber(os.getenv("HP_FRAMES") or "700") then print("done "..n); machine:exit() end
|
|
end, "vt1200-hp-flags")
|
|
dbg.visible_cpu = cpu
|
|
dbg.execution_state = 'run'
|