Fast! CompactFlash for Macintosh PDS/NuBus

zigzagjoe

Well-known member
Progress has been made! I've tested the revised prototype boards with both my Carrera and Diimo machines without issue, along with a variety of other IO boards. Interestingly, both Carrera and Diimo are somewhat slower than the stock CPU or booster at outright sequential performance but they do make up ground in the random performance which is more essential.

Diimo posted similar performance to the stock CPU, slightly slower at the largest sequential transfers but better at random access.

The Carrera takes a bit of a drubbing as I measured around 2.7mb/s reads max - seems the dynamic bus sizing functionality of its interface circuitry is just as bad as I thought it was. Not much can be done about this, and 2x (and greater) over SCSI is still a noticable improvement :) However, writes were not affected and remained around the usual ~5MB/s max, though with a regression at the largest (256K) transfer size. I'll post some benchmarks when I get a chance to collect the results.

I expect this to work with the Bolle riser; one of my testers will be confirming. The test notes above are from my Carrera, a socketed design of my own making, electrically it's got somewhat different characteristics due to shorter signal path which bit me once before.

My boosters of course work all along (as that's what I've been developing with), and unsurprisingly they turn in the best performance numbers due to their particular architecture allowing faster bus cycles. The NuCF boards are also compatible with the IIsi booster after resolving a minor snafu regarding the address strobe timing.

FIrst beta boards will be in the wild shortly. I may have one or two spare, if so I'll post here to see if anyone's interested in doing a bit of testing. The driver I believe to be feature complete - now it's just time to prove it's reliable and look for edge cases.

20250312_160748_001.jpg

Next order of business will be designing the final PDS board for the SE30/IIsi/IIfx use case. After that, I've got a prototype NuBus board in hand, based off some parts of the QuadraLink design so it'll be time to start trying to make that work!

Another odd note on drivers: Device drivers should only look at the dCtlPosition field of the DCE in Prime, and should not look directly at the ioPosOffset field of the parameter block. The Device Manager sets up dCtlPosition for the driver, taking into account both the ioPosMode and the ioPosOffset. However, ioActCount, dCtlPosition, ioPosOffset should all still be updated with the results of the read/write.


Turns out there's a rather interesting corpus of knowledge here. I wish I could set up a local search engine that'd index my assortment of reference documents and sites like that....
 

zigzagjoe

Well-known member
Test boards are in the wild! Production PCB design is also done, barring any findings from testing.

1741964532046.png1741964552141.png

Physical fitment looks good. In the IIsi case, need to be slightly careful when reinstalling case that the card is upright, but otherwise good.

1741964597748.jpeg1741964648486.jpeg
1741964615139.jpeg1741964632623.jpeg
1741964663249.jpeg1741964680880.jpeg
 

croissantking

Well-known member

finkmac

NORTHERN TELECOM
It looked like it, but I think it’s just a physical analog. To ensure proper fit. Think the space shuttle pathfinder.
 

zigzagjoe

Well-known member
Is that a 3D printed conformal coating? :D
Haha, that'd be cool but no, I just exported the PCB from Kicad and printed it, then stuck eurodin connectors on it. I admit I was surprised that the CF slot worked with just mild cleanup with a scalpel, I didn't put supports to help it.

I had already checked that the slot being there didn't foul anything when coming up with the concept, but it's reassuring to double check as it's slightly thicker than apple's recommended maximum component height on the rear. I won't get to have a first run of the "production" design in hand for probably another month or so, and the waiting is going to kill me!
 

croissantking

Well-known member
Haha, that'd be cool but no, I just exported the PCB from Kicad and printed it, then stuck eurodin connectors on it. I admit I was surprised that the CF slot worked with just mild cleanup with a scalpel, I didn't put supports to help it.

I had already checked that the slot being there didn't foul anything when coming up with the concept, but it's reassuring to double check as it's slightly thicker than apple's recommended maximum component height on the rear. I won't get to have a first run of the "production" design in hand for probably another month or so, and the waiting is going to kill me!

Ah, it’s a mock-up to test fitment! I totally thought you’d printed a green cover for the back side of the PCB.

How comes you have to wait so long for the PCB run?
 

zigzagjoe

Well-known member
Ah, it’s a mock-up to test fitment! I totally thought you’d printed a green cover for the back side of the PCB.

How comes you have to wait so long for the PCB run?

I'm going to try to have JLC assemble the CF card connectors as they don't hand solder nicely (solder wicks up the leads and bridges very easily). Along with some of the other parts I don't usually have them do. This requires ordering via their "global sourcing" which orders from digikey or other more usual parts houses. There's an extended delay on that, so combined with the usual ~ 2 weeks per order it will put me about a month of lead time per batch.

I am hoping that it works out though as it would make things simpler for me and allow it to be cheaper.
 

zigzagjoe

Well-known member
Some updated benchmarks. A bit of variance in the CF numbers are normal, and of course depends on the card itself. These are all with InnoDisk ICF9000 industrial SLC cards as I've found them to be fastest and are spec'd for heavy use. The random access numbers are the most important ones, and it's pretty clearly a massive improvement there :)

The odd Carrera behavior can also be observed. Diimo makes a little sense as it latches the data from the system bus before issuing the internal DSACK (so there must always be reduced speed due to that, as compared to a booster) but whatever the Carrera does is clearly worse on reads, though I think it has a posted buffer for writes.

1742233157634.png

Initial operation in IIfx is confirmed with the addition of a bodge wire. For some reason apple thought it was logical to feed 20mhz where C16M (C38) normally is and have no CPUCLK (A38) at all. The actual 40mhz clock is missing, too. Either way, the production card will fix that.

Here's some tentative IIfx numbers. Clearly, fast as all get out.
1742233243121.png
 

olePigeon

Well-known member
So ... what would happen if you plugged an accelerator into the NuCF while in a IIfx PDS slot? Sparks? Or just crashing cuz of the clock signal?
 

zigzagjoe

Well-known member
So ... what would happen if you plugged an accelerator into the NuCF while in a IIfx PDS slot? Sparks? Or just crashing cuz of the clock signal?
Yep, the NuCF card is intended to support the IIfx too. Not the first, though - Asante MacCons also supported IIfx PDS and more recently @halkyardo 's Sethernet/30 does also

The IIfx version I don't intend to populate the top socket as it won't do anything productive. Shouldn't damage anything but won't work. However, the IIsi and SE/30 versions (only differentiated by presence of top connector and the angle of it) will work just fine in IIfx.
 

olePigeon

Well-known member
The IIfx version I don't intend to populate the top socket as it won't do anything productive. Shouldn't damage anything but won't work. However, the IIsi and SE/30 versions (only differentiated by presence of top connector and the angle of it) will work just fine in IIfx.
Could the IIfx version get blinkin' lights instead? :D Or if doesn't already, a HDD led header?
 

zigzagjoe

Well-known member
Could the IIfx version get blinkin' lights instead? :D Or if doesn't already, a HDD led header?
There's a couple of rear mounted activity LEDs for ROM and disk access. There's also a LED position that you can connect a HDD LED to just as you would a SCSI drive. Technically, I've got a couple of other buffers available that could be used for LEDs but there's not really anything useful to do with them beyond what I've already got.

Just waiting on JLC to get my CPLDs so I can get this (and a bunch of other fun cards) into production. No progress to report on the NuBus front as of yet, I've been derailed by playing with a new NeXTStation.

1743091233568.png
1743091270572.png
 

jmacz

Well-known member
MacBench 3.0 disk tests on a Macintosh IIfx (stock 40MHz 68030) with 128MB of memory, two video cards (8*24GC, 8*24), internal ZuluSCSI HomeBrew Compact with a 64GB PNY Elite-X V30 micro SD card with 1GB disk, and the NuCF with 2GB partition on the CF card. Ran test first on the ZuluSCSI and then ran tests again on the NuCF. Both ZuluSCSI and NuCF were installed in the machine.

results.png
 

Joopmac

Well-known member
Insane benchmarks. Love it
Do you already have an idea for a Quadra PDS version? :)

Could the IIfx version get blinkin' lights instead? Or if doesn't already, a HDD led header?
A LED header for the SE/30 would also be supercool
 
Top