• 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.

VideoMacPacHack: PDS video card for the Mac Portable

stepleton

Well-known member
Hi folks, check this out:

DualScreen_s.jpg

That's a Mac Portable driving an external 800x600 SuperVGA display in addition to its 640x400 LCD. It's no trick---Flight Simulator 4 is putting windows on both displays. (Yes, it's Woz's autograph too but that's not important right now.) The secret is this board that was sitting in the PDS slot when a friend salvaged the machine from a university storage closet in 1999:

VideoMacPac_top_s.jpg

That's a "VideoMacPac" external display card made by a company called Computer Care Inc. We think this company is long gone now, but if you want a VideoMacPac of your own, it's easier than you might think! My friend Andrew (you'll know him on the forum as apm) was so interested in the device that he:

  • Reverse engineered the connector on the board and made a VGA adaptor for it. This was really cool because up until now the card had been dead weight inside the computer. I knew what it was because the machine had a control panel for it already installed, but Andrew worked out the interlock built into the adaptor that actually turns the thing on. Then he:
  • Beeped out the board and duplicated the whole thing, substituting modern components for a couple unavailable old ones. See how there's no ROM on the board? The control panel downloads the CPLD firmware to the card on boot, so there's nothing more to the card than the circuit itself. Andrew dubbed his replacement the "VideoMacPacHack". That's where things stayed for a while, but now:
  • he's put everything up on GitHub! (https://github.com/apmcpherson/VideoMacPacHack) The layout, the BOM, all that you need is there to make your own. Plus there's some really detailed technical writeups about how the thing works, which makes for good reading.



Hats off to Andrew for figuring this stuff out---it was fun to watch and to be the rubberduck now and then. Let us know if you make one of your own!

 
Last edited by a moderator:

apm

Well-known member
Tom is overly modest about his own role in this project! We actually finished the design back in 2017, but the rest of life took over and documentation seemed like an insurmountable hurdle until the current lockdown.

I've tried to put sufficient materials on the Github repo so that anyone can make their own board if they can get their hands on the right parts. The hard-to-source bits are the XC2018 CPLD, the 42C4064 VRAM (in ZIP package) and the oscillator cans, though you can get away with fewer and/or different frequencies depending on which resolutions you need (see the table here). At least for the chips, I was able to find small quantities on eBay, though I still haven't found the exact oscillator frequencies from the original.

The whole design is through-hole with the exception of a single extra NAND gate that was needed to replace the original GAL, and would only fit the board in surface mount package. It's interesting to see that there are quite a few video cards of this era based on essentially the same design, whose origin seems to be the Lapis DisplayServer series of cards. This card that Bolle found seems to be another example.

Besides the design materials themselves, I've documented what I could reverse engineer about how the card works. It might be useful in adapting this design to other screen resolutions and even to other machines.

 

james_w

Well-known member
Woo! Glad you found the time to document it and get it out publicly! :)

Reminds me that I have a PCB that needs populating sitting in a drawer here...

 

ravuya

Active member
This is great in so many ways.

  1. Weird obscure niche hardware that is technically amazing;
  2. It gets documented thoroughly through a reverse engineering;
  3. Not just that, but new ones get built and open-sourced.

Hats off. I wish I had a Portable so I'd have an excuse to build one of these.

 

Bunsen

Admin-Witchfinder-General
See how there's no ROM on the board? The control panel downloads the CPLD firmware to the card on boot


Well now, it would be interesting to find out what other cards work this way.

 

Gorgonops

Moderator
Staff member
The whole design is through-hole with the exception of a single extra NAND gate that was needed to replace the original GAL, and would only fit the board in surface mount package. 
I'm curious about this, were GALs really a problem? Microchip still produces the ATF16v8B that should be compatible with the original.

(Older GALs are also readily available on Aliexpress and whatnot; got a whole sack of GAL20v8s on the shelf behind me right now.)

 

techknight

Well-known member
Tom is overly modest about his own role in this project! We actually finished the design back in 2017, but the rest of life took over and documentation seemed like an insurmountable hurdle until the current lockdown.

I've tried to put sufficient materials on the Github repo so that anyone can make their own board if they can get their hands on the right parts. The hard-to-source bits are the XC2018 CPLD, the 42C4064 VRAM (in ZIP package) and the oscillator cans, though you can get away with fewer and/or different frequencies depending on which resolutions you need (see the table here). At least for the chips, I was able to find small quantities on eBay, though I still haven't found the exact oscillator frequencies from the original.

The whole design is through-hole with the exception of a single extra NAND gate that was needed to replace the original GAL, and would only fit the board in surface mount package. It's interesting to see that there are quite a few video cards of this era based on essentially the same design, whose origin seems to be the Lapis DisplayServer series of cards. This card that Bolle found seems to be another example.

Besides the design materials themselves, I've documented what I could reverse engineer about how the card works. It might be useful in adapting this design to other screen resolutions and even to other machines.


the XC2018 FPGA is an interesting chip, born from the XC2064 family of FPGAs which was the first ever FPGA. I ended up running into a copy of XACT so I could work with those chips. 

Reverse engineering the bitstream back into XACT compatible logic is somewhat of a bear, and its buggy. I still never got that 100% but eh, is what it is I suppose. 

 
Last edited by a moderator:
Top