|
|
Joined: Jan 2012
Posts: 1,179 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,179 Likes: 17 |
With bsdimp's great finds, it would be a big help if one of the MAME dev people could convert the Rainbow driver to a modern, slot based format. This would help other contributors to find their way around more easily. The Rainbow is one of those drivers that has attracted different people over the years, and the dual processor, extendable format is really a showcase for what MAME can do. The conversion is certainly beyond my scope, that's why I'm asking "pretty please"
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 |
The wd1010_device didn't exist at the time the Rainbow was brought up. It's not uncommon to do a workaround in MAME and then have to go back and do it correctly. I'll have to give it a shot when I find some time... wd1000_device and wd1010_device appear to be even more limited implementations of the WD[12]0[10]0 that are used in a couple of places. Neither look to be sufficiently robust to replace wd2010. The wd2010 could likely replace both of them, but the interfaces are enough different that I'm not sure I want to bite off doing that.
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
With bsdimp's great finds, it would be a big help if one of the MAME dev people could convert the Rainbow driver to a modern, slot based format. This would help other contributors to find their way around more easily. The Rainbow is one of those drivers that has attracted different people over the years, and the dual processor, extendable format is really a showcase for what MAME can do. The conversion is certainly beyond my scope, that's why I'm asking "pretty please" I'm game to help out. I have some minor hacks to wd2010 in my tree to try to see if it could be generalized like the z80sio derivatives. I'd like to add support for the dual Winchester adapter...
|
|
|
|
Joined: May 2004
Posts: 996 Likes: 103
Senior Member
|
Senior Member
Joined: May 2004
Posts: 996 Likes: 103 |
The wd1010_device didn't exist at the time the Rainbow was brought up. It's not uncommon to do a workaround in MAME and then have to go back and do it correctly. I'll have to give it a shot when I find some time... wd1000_device and wd1010_device appear to be even more limited implementations of the WD[12]0[10]0 that are used in a couple of places. Neither look to be sufficiently robust to replace wd2010. The wd2010 could likely replace both of them, but the interfaces are enough different that I'm not sure I want to bite off doing that. What's missing in wd1010_device?
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
What's missing in wd1010_device? I didn't see a clear way to implement the buffer_ready stuff that wd2010_device has. Maybe I overlooked something. and besides, the only difference between the WD1010 and the WD2010 is the latter has one additional bit in the upper cylinder register and the WD2010 is a more complete implementation to my eye than the wd1010 one, though I base that in part on the number of comments about edge cases.
Last edited by bsdimp; 01/07/21 04:48 PM.
|
|
|
|
Joined: May 2004
Posts: 996 Likes: 103
Senior Member
|
Senior Member
Joined: May 2004
Posts: 996 Likes: 103 |
What's buffer_ready supposed to do? wd1010_device outputs the bcs and bcr pins for buffer control. I'm not sure you should base your assumptions fully on the comments. wd1010_device implements multiple sector reads/writes for example, which wd2010_device does not.
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
What's buffer_ready supposed to do? wd1010_device outputs the bcs and bcr pins for buffer control. I'm not sure you should base your assumptions fully on the comments. wd1010_device implements multiple sector reads/writes for example, which wd2010_device does not. Fair enough. I wasn't entirely sure what it was supposed to do either (though it appears to be an input to the wd2010_device rather than an output) when I looked at it. It just didn't seem to map to anything in wd1010_device, but I didn't study them both deeply with the data sheet in hand... I certainly don't want my mildly held opinion to start a fight, though... I'm certainly open to changing it based on new data... Though I'd much rather spend my time and energy about learning how to convert this driver to be more slot based...
Last edited by bsdimp; 01/08/21 03:34 AM.
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
Thanks Duke! That gets me on the right track... I've looked through some of this and I agree it would be a piece of work... though worthwhile maybe... Are you a good person to ask about it if I hit snags? Are there others? Is there a good place to go to ask for help?
|
|
|
|
Joined: Jan 2016
Posts: 76 Likes: 5
Member
|
Member
Joined: Jan 2016
Posts: 76 Likes: 5 |
I've disassembled the Univation 2.11 DOS driver. The card is a SCSI card that talks to one device. I have halfway worked out the protocol for the different bus phases. Limitations in 16-bit data structures limit the size of the supported disk to 32MB. Is there a good example driver to look at for a SCSI device? So far, I've only found READ6, WRITE6 and REQUEST SENSE CDBs that are sent to the device. It doesn't send INQUIRY which implies it might be SASI instead of SCSI-1, but the delta between the two is small.
|
|
|
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!
|
|
|
|
|