I've started in on writing the driver, hoping that the Z80 would be a more reasonable thing to bring up first.
Annoyingly, there seems to be some strangeness in terms of the Z80 ROMs, right from the beginning.
It's not entirely clear whether "labtam3000-z80-boot-abs-0.bin" or "labtam3000-z80-boot-abs-1.bin" is what's located at address 0 from the Z80's perspective, but I'm betting it's the first one.
That said, the first few addresses it probes are fairly weird.
According to the technical manual, the default would be for memory accesses to default to the "System Map", which has the first 16K for the boot EPROMs, the next 2K at offset 0x4000 for local RAM, then 2K for the "intermap window" (whatever that is) at 0x4800, and then 0x8000 through 0xBFFF mapped to 0xF8000 through 0xFBFFF as an "I/O Buffer Window", mapped to 0xF8000 through 0xFBFFF as Multibus addresses.
These are the first few things the Z80 does. I'm always a bit suspicious when the first thing a CPU does is read things, rather than write things. Does anyone have any suggestions as to what's going on?
[:z80] ':z80' (0003): unmapped program memory read from 8004 & FF
[:z80] ':z80' (0003): unmapped program memory read from 8005 & FF
[:z80] ':z80' (0009): unmapped program memory write to 8014 = 00 & FF
[:z80] ':z80' (0009): unmapped program memory write to 8015 = 00 & FF
[:z80] ':z80' (000E): unmapped program memory write to 8016 = 04 & FF
[:z80] ':z80' (0011): unmapped program memory write to 4030 = 00 & FF
[:z80] ':z80' (0011): unmapped program memory write to 4031 = 00 & FF
[:z80] ':z80' (0013): unmapped program memory write to 0000 = 00 & FF
[:z80] ':z80' (001A): unmapped program memory write to 8004 = 20 & FF
[:z80] ':z80' (001A): unmapped program memory write to 8005 = 01 & FF
[:z80] ':z80' (001D): unmapped program memory write to FFFE = 1D & FF
[:z80] ':z80' (001D): unmapped program memory write to FFFF = 00 & FF