• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

64-Pin 4MB SIMMs for Apple Display Card 8*24 GC

Siliconinsider

Well-known member
Very cool!
Well I have reversed the pinout of my 1MB SIMM and found that A9 is indeed connected, so this led me think that 4MB modules should be possible. I have made one, but I also messed up the connection of A9 in my routing. This does not matter for the 1MB module, but it's resulting in the 4MB being recognised as a 1MB. I have made a bodge, that has not worked so far, but I also need to persevere.

I also had a long discussion with @MacOSMonkey who was involved in SuperMac and the making of GWORLD RAM. Seeing that there's support for the 4MB version in software will make me work harder on it!
 

jeremywork

Well-known member
Seeing that there's support for the 4MB version in software will make me work harder on it!
Totally understandable. For what its worth the other two should also be able to detect them, though a couple tests with 4x4MB in the Thunder/24 suggest either it's capped at 8MB or something else isn't configured properly. I'm still on the lookout for ROM v3.1 for the Thunder/24, which might also improve something.

24GC-10.jpgT24-8.jpg
 

jasa1063

Well-known member
A quick message for all those interested in the GWORLD RAM, I have a limited availability at $49 for a pair shipped. You can send me a DM to proceed!
I just purchased 2 of these from you on eBay. Thank you so much for taking the time to make these available!
 

jasa1063

Well-known member
A quick message for all those interested in the GWORLD RAM, I have a limited availability at $49 for a pair shipped. You can send me a DM to proceed!
I just purchased two of these from you on eBay. I have been unable to find any of these. Thank you so much for making these available!
 

MacOSMonkey

Well-known member
Yes - 8Mb was the max. Thanks for posting the manual image. The configuration information is very helpful.

The main app at the time that used it was Photoshop, And, it wasn't so much that the GWorld RAM was a buffer for the entire display area, but rather utility storage for any buffers that were allocated as an offscreen GWorlds. The mechanic was based on patching GWorld allocation in QuickDraw so that they could be captured and stored in onboard (card) RAM, then accelerate the CopyBits/blit operation to the main visible area when the specific source was the card GWorld storage and the destination was the accelerated display. If the card didn't have enough memory (or acceleration was shut off), the GWorld allocation would revert back to main Mac memory.

I did the GWorld control for SuperVideo 2.0x, which was then cloned into SuperVideo 3.x.
 

Melkhior

Well-known member
The mechanic was based on patching GWorld allocation in QuickDraw so that they could be captured and stored in onboard (card) RAM, then accelerate the CopyBits/blit operation to the main visible area when the specific source was the card GWorld storage and the destination was the accelerated display. If the card didn't have enough memory (or acceleration was shut off), the GWorld allocation would revert back to main Mac memory.
I did the GWorld control for SuperVideo 2.0x, which was then cloned into SuperVideo 3.x.
Do you have any additional details/documentation/sample codes you could share on how GWorld was patched and how difficult it was to achieve back in the day? The NuBusFPGA has a 8 MiB framebuffer (up to 1920x1080/16M colors) in the 256 MiB of DDR3, so there's plenty of space to accommodate off-screen GWorlds... except I have no clue on how to do that on the software side. Bitblt acceleration is already there (at least for some cases, speeding up Speedometer & scrolling in CodeWarrior significantly).
 

MacOSMonkey

Well-known member
To accelerate GWorlds, you will have to control where they are allocated and create them in card RAM, assuming there is sufficient space for the size(s) being requested. Then, for starters, when there is a copy operation, you would check the source and destination and do an onboard translation to eliminate the NuBus transfers that would normally occur between main memory and the frame buffer.

You can find helpful info (architecture, traps, mechanics, etc.) in the newer Inside Mac QuickDraw Imaging book.

In terms of implementation, you will need to head-patch QuickDraw32 traps for anything you want to direct to your board. But, there are some caveats. If your head patch overhead is such that you slow down everything for the sake of a few operations, it's not really a benefit to the user. Also, if a GWorld application were to do extensive processing between main memory and the GWorld, then it might not be worth it to accelerate that application's use unless you also accelerate all the most common QuickDraw operations within the frame buffer and can make it worth the user's while. Otherwise, while it might appear faster to move the GWorld to the active buffer, all the other manipulations between the CPU and the card may take longer because of NuBus slow-downs. So, the ultimate payoff may not be there. I seem to recall many of these kinds of discussions in 1992 and it's one of the reasons (besides optimizing for compatibility) that there is a GWorld on/off switch in SuperVideo.

For QuickDraw, the low-hanging fruit is to accelerate common, atomic operations where there are clear wins (copybits, lines, patterns, modes, polygons, etc.) SuperMac's acceleration was relatively comprehensive across hardware and software, especially with the eventual addition of the custom silicon support of the Squid chip used on GWorld-capable boards like Thunder. Paul Campbell was instrumental in the Squid Chip design and (I think) it remained at the -01 level for its life. Peter Barrett did the software QuickDraw acceleration and often communicated with engineers at Apple. We had early access to the 8*24GC board and I'm sure there was interaction with people like Jean-Charles Mourey, Bruce Leak and Konstantin Othmer (but especially Bruce and Jean-Charles).

Not all of the acceleration required hardware. Some of it was purely software-based and capitalized on (fortunate) inefficiencies in QuickDraw. I think one notable example was the initial line acceleration implementation on the Spec/24 III and ColorCard/24, where Squid eventually included/improved line drawing, I think.

SuperMac was initially a little nervous about the 8*24GC, but with a lot of mental and elbow grease, early SuperMac designs mostly outperformed it and had a higher degree of hardware/software compatibility. The 8*24GC was a very cool and visionary product, but it wasn't necessarily a huge logistical win that it was a Bus Master with Block Transfer Mode. The Bus Master/BTM implementation required additional NuBus memory space -- thus disabling access to an extra NuBus slot -- expensive in 3-slot machines like the IIcx/IIci. But, at the time, it was a nice (and interesting) hardware/technical achievement that showed developers what was possible, even if somewhat impractical. Apple eventually had the last laugh by killing an entire 3rd-party graphics ecosystem with onboard motherboard video and their own big-screen monitors. So, while Apple initially lost the acceleration competition with its 8*24GC, it was a dark harbinger of doom. ;)

Anyway -- back on topic -- practically speaking, to see how things work with GWorlds, dump the traps with and without SuperMac code loaded and compare the disassemblies. You must already have a good suite of debugging tools, given what you are doing -- TMON Pro, MacsBug, MacNosy, etc. So, those should help you. If you need MacNosy, look for Steve Jasik's page at jasik.com and send him a note. He still sells it for retro hobbyists.

And...I haven't thought of the 8*24GC in a long time. I just nostalgically poked around to see if there was any 8*24GC info and (surprisingly) found this article -- should be very helpful for you and answers certain conceptual questions:
 

Melkhior

Well-known member
@MacOSMonkey Thanks for the pointers. The MacTech article is nice but light on implementation details, and IM:IwQ is usage-oriented. Even with access to a version of the ROM, figuring how what to patch and the semantic to re-implement is not easy - for Bitblt, I ended up patching an internal trap where a lot of pre-processing is already done and it's become just a simple copy. A lot of the institutional knowledge from back then (as you mentioned, access to Apple staff & a thriving ecosystem with multiple companies looking at the similar issues) has been lost after so many years...

And indeed a lot of work is needed for this to be useful - we discussed bandwidth in the dedicated thread, NuBus is nowhere near the '040 bus in my Quadra. The extra memory dedicate to GWorld would have been helpful on its own back then when main memory was limited and expensive, but nowadays most surviving machines are loaded with memory so you really want acceleration in a NuBus device. Copying a main RAM buffer to NuBus buffer could be done using DMA block transfer on a Quadra (II don't support that), also limiting the benefits of off-screen GWorld there - I've yet to work on that though.

It's a shame so much source code and HW designs were proprietary and disappeared when companies moved on or folded. It's a part of history that we can't recover. I sure could use the 'Squid' chip design and associated software as an example :)
 

MacOSMonkey

Well-known member
@olePigeon - Haha - thanks for reminding me about that animation! :) Alas, no...but it DOES have a cool surfer ped who runs with his giant pencil surfboard. He's going so fast that he looks like he flies out of the cdev window, but he's actually standing still. It was a very clever illusion. ;) By SuperVideo 3.0, the surfer had succeeded in leaving the cdev window and the illusion was complete.
 

jasa1063

Well-known member
Finally I was finally able to track down 4x4MB 64-pin VRAM SIMMS for my Macintosh Display Card 8*24 GC. These came with a Supermac Thunder 24 GX. I will be putting in 4x1MB 64-Pin VRAM SIMMs in this card instead that I got from SilconInsider's Tindie store. I could not get the 1MB 64-pin VRAM SIMMs to work that I purchased from him initially. These 4MB SIMMs work just fine in the Macintosh Display Card 8*24 GC however.
 
Top