Behavior changes with 07d757a2ed72d7793060773f48d6d029b5547ff6, the commit that made Rainbow 100A and 100B able to co-exist. Venix works before this commit (0b0dadd8359a6cb8093bb8892f74477504282a34), but not after. This is with the unlock BIOS auto boot and JMP FAR workarounds applied. I get MHFU without at least the second one applied in 0b0dadd, but get it always when init is run with 07d757a (w/o the workarounds I don't even get that far). So something subtle broke with the Rainbow refactoring. The change is rather large, so it will take some time to sort out the good from the bad.
src/mame/drivers/rainbow.cpp | 612 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------
1 file changed, 330 insertions(+), 282 deletions(-)
A quick eyeballing of the change show nothing obviously wrong, but there are a number of things that might not be just code movement. I'll need study in more detail to discover what kills things.

If I had to guess, interrupts are off, and interrupts are different between the two models (well, they boot the same, but asserting DTR on the 8251 moves the hardware interrupts elsewhere). I'll have to see if Venix does that, though I kinda doubt it since DOS is the only one that needs to move the interrupts due to the conflict between the hardware and the soft interrupts DOS uses.

Last edited by bsdimp; 12/27/20 04:46 AM.