|
Joined: Jan 2012
Posts: 1,179 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,179 Likes: 17 |
Vas and crazyc have been discussing the state of the Rainbow driver in the shoutbox and commented that the driver's not booting the operating system because of differences in the interrupt handling between the A and B models.
On the "B" model, a few ROM patches allow the machine to skip hitherto unemulated parts of the Rainbow. Bavarese has furnished me with the equivalents for the "A" model, and I've issued a pull request for them. This allows the emulated Rainbow 100A to boot from disk cpm860mb.td0, it will also allow mdos201.td0 at least boot as far as the system message, but it will hang after loading track 8. It appears that at least this CP/M-86/80 image is not yet available, I've uploaded an archive with my Rainbow disk collection to the FTP.
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Jul 2019
Posts: 23
Member
|
Member
Joined: Jul 2019
Posts: 23 |
I am in touch with a collector who has what he describes as "the usual" Rainbow software "Lotus, Wordstar and learn rainbow and diagnostic disk.". Would it be useful to see if I can get images?
|
|
|
|
Joined: Jan 2012
Posts: 1,179 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,179 Likes: 17 |
It would be great if you could source those images - while I have Wordstar, there are no disk images, and I seem to be missing Lotus (probably 1-2-3) as well. Any disk image is great, the least we can do is compare them to the ones we have in the softlist and verify them that way.
Thanks! Robert
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
I've recently acquired a Univation disk controller, but no drivers for it... Does anybody have Univation drivers, distribution disks, etc? The disk that's connected to it is toast.
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
BTW, I've spent some quality time with the Rainbow 100B schematics and have produced this: https://github.com/bsdimp/v7/blob/main/notes/rb.md which describes all the low-order ports...
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
So I've tried to get the latest mame going, and I get a message about no image attached to drive C and I can't boot Venix. It boots fine with a July 5th, 2019 mame rainbow64 rainbow -hard1 venix-st251.chd -window -comm null_modem -bitbanger socket.127.0.0.1:1234 I build like so: make SUBTARGET=rainbow SOURCES=src/mame/drivers/rainbow.cpp TOOLS=1 REGENIE=1 -j5 I've tried it with and without the workarounds that I used before, forward ported to new ROM_FILL --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -3437,6 +3437,16 @@ ROM_START(rainbow) ROM_FILL(0xf4303, 1, 0x00) // [0xf4000 + 0x0303] disable CRC check [100-B ROM] ROM_FILL(0xf535e, 1, 0x00) // [0xf4000 + 0x135e] Floppy workaround: in case of Z80 RESPONSE FAILURE ($80 bit set in AL), don't block floppy access
+#if 1 + ROM_FILL(0xf4000 + 0x198F, 1, 0xeb) // cond.JMP to uncond.JMP (disables error message 60...) + + ROM_FILL(0xf4000 + 0x315D, 1, 0x00) // AND DL,0 (make sure DL is zero before ROM_Initialize7201) + ROM_FILL(0xf4000 + 0x315E, 1, 0xe2) + ROM_FILL(0xf4000 + 0x315F, 1, 0x02) + + ROM_FILL(0xf4000+0x3d8, 1, 0x00) // unblock BIOS auto boot (1) + ROM_FILL(0xf4000+0x8aa, 1, 0x01) // JMP FAR 0000:1000 (could be a BIOS bug or a CPU oddity) (2) +#endif
Anybody aware of this issue?
Last edited by bsdimp; 12/26/20 07:33 AM.
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
It's been too long to just edit the last message, but I've started the long process of bisecting 18 months of changes
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
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.
|
|
|
|
Joined: May 2009
Posts: 2,214 Likes: 382
Very Senior Member
|
Very Senior Member
Joined: May 2009
Posts: 2,214 Likes: 382 |
I haven't looked at the exact commit hash, but it sounds like I may be responsible for that change. When I hit a good stopping point on my work with the HP Jornada 720, I'll dig into it and address the issue.
|
|
|
2 members (Kale, 1 invisible),
233
guests, and
1
robot. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,923
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|