Hi all. I've been working on the driver for the AT&T UNIX PC, a 68010 based UNIX machine with a custom MMU released in 1985 made by Convergent Technologies. I've been hooked on this machine (it was the first UNIX machine I ever used back in the early 90s) so wanted to see if we can get it supported in MAME. I'm new to the MAME codebase so it's been a bit of a learning curve.

I've been spending a lot of time on this driver and made it through a number of hurdles. I'm finally at a point where the kernel is attempting to page fault and read new pages in from disk. However it looks like the current 68k code doesn't handle the case properly for a 68010.

I can trigger:
m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
which calls m68k_cause_bus_error() which does:
m68ki_init_exception()
m68ki_stack_frame_1000() // 68010 specific
m68ki_jump_vector(EXCEPTION_BUS_ERROR)

This is all fine and good. But I believe I need the DA registers saved and restored when a bus error occurs so the original instruction is run again after the page is brought into RAM.

execute_run() in m68kcpu.cpp covers this situation for m_pmmu_enabled, but not for the 68010.

Anyone able to help with the 68k code to support this 68010 with custom MMU scenario? Or is there something I'm overlooking?

Thanks so much, looking forward to making some further progress on this.

Jesse