Previous Thread
Next Thread
Print Thread
Page 52 of 56 1 2 50 51 52 53 54 55 56
rfka01 #118306 01/06/21 10:32 AM
Joined: Jan 2012
Posts: 1,179
Likes: 17
rfka01 Offline OP
Very Senior Member
OP Offline
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" smile


NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
bsdimp #118309 01/06/21 08:50 PM
Joined: Jan 2016
Posts: 76
Likes: 5
B
Member
Offline
Member
B
Joined: Jan 2016
Posts: 76
Likes: 5
Originally Posted by bsdimp
Originally Posted by R. Belmont
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.

rfka01 #118310 01/06/21 08:54 PM
Joined: Jan 2016
Posts: 76
Likes: 5
B
Member
Offline
Member
B
Joined: Jan 2016
Posts: 76
Likes: 5
Originally Posted by rfka01
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" smile
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...

bsdimp #118326 01/07/21 09:05 AM
Joined: May 2004
Posts: 996
Likes: 103
D
Senior Member
Offline
Senior Member
D
Joined: May 2004
Posts: 996
Likes: 103
Originally Posted by bsdimp
Originally Posted by bsdimp
Originally Posted by R. Belmont
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?

Duke #118330 01/07/21 04:46 PM
Joined: Jan 2016
Posts: 76
Likes: 5
B
Member
Offline
Member
B
Joined: Jan 2016
Posts: 76
Likes: 5
Originally Posted by Duke
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.
rfka01 #118331 01/07/21 06:53 PM
Joined: May 2004
Posts: 996
Likes: 103
D
Senior Member
Offline
Senior Member
D
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.

Duke #118332 01/08/21 03:22 AM
Joined: Jan 2016
Posts: 76
Likes: 5
B
Member
Offline
Member
B
Joined: Jan 2016
Posts: 76
Likes: 5
Originally Posted by Duke
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.
rfka01 #118341 01/08/21 08:23 AM
Joined: May 2004
Posts: 996
Likes: 103
D
Senior Member
Offline
Senior Member
D
Joined: May 2004
Posts: 996
Likes: 103
I don't want to discourage you, but converting a driver to be slot based is a lot of work and usually means rewriting it. A few examples from me are here:

https://git.redump.net/mame/commit/?id=09f25df20d7910b6f156c86040f9a9ca35852701
https://git.redump.net/mame/commit/?id=4d89de93c0dcb0b3069c9226236bfb1a802113cf

This isn't the only way to do it, there are different ways to implement a slot based system. Just look at a few examples in src/devices/bus.

Duke #118386 01/10/21 04:53 PM
Joined: Jan 2016
Posts: 76
Likes: 5
B
Member
Offline
Member
B
Joined: Jan 2016
Posts: 76
Likes: 5
Originally Posted by Duke
I don't want to discourage you, but converting a driver to be slot based is a lot of work and usually means rewriting it. A few examples from me are here:

https://git.redump.net/mame/commit/?id=09f25df20d7910b6f156c86040f9a9ca35852701
https://git.redump.net/mame/commit/?id=4d89de93c0dcb0b3069c9226236bfb1a802113cf

This isn't the only way to do it, there are different ways to implement a slot based system. Just look at a few examples in src/devices/bus.
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?

rfka01 #118430 01/13/21 07:42 PM
Joined: Jan 2016
Posts: 76
Likes: 5
B
Member
Offline
Member
B
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.

Page 52 of 56 1 2 50 51 52 53 54 55 56

Link Copied to Clipboard
Who's Online Now
5 members (Dodg, yugffuts, judge, AJR, Vag), 289 guests, and 1 robot.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,320
Posts121,923
Members5,074
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com