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

Reverse Engineering the Macintosh Plus PCB

max1zzz

Well-known member
After a long wait i have finally sent the ROM-inated design off for manufacture, I might have got slightly distracted with the LC boards...... (And wanted to get these boards in before i get distracted with my next board! :) )

Hopefully I should have the boards in the next week or two
 

max1zzz

Well-known member
Ooo... I'll get in line. Do you need any donors? :cool:
Not immediately as I brought a non working (Possibly battery damaged) board cheap on ebay a couple of months ago with this project in mind

I'll update here once I have the boards :)
 

Gorgonops

Moderator
Staff member
I just tripped over this thread, and I have to say it's really interesting that you're getting to the stage of integrating modifications into the board. I guess maybe I didn't read closely enough to see if you've already done so, but in the process of putting this together have you created a full schematic in an accessible CAD format (Kicad/Eagle/whatever) for the Plus? (And if so, is it "open sourced" somewhere?)

Are there any Apple proprietary chips other than the IWM on the Plus motherboard? GALs which can emulate legacy PALs are still readily available, so in principle it should be pretty possible to make "new-build" Macs based on this work, especially if you're willing to ditch floppy support. (If something like BlueSCSI were integrated onboard with an accessible SD card maybe doing without wouldn't be a huge deal.) The 6522 VIA is still manufactured, and I *think* (but won't swear to it) compatible Zilog SIO chips still exist, are there any other deal-breakers?

... Digging around a bit now, and I guess I assumed that by now someone would have reverse engineered the contents of the Mac PALs by now, but I'm kind of coming up blank. Does anyone have the equations for these? I guess what I'm really thinking here is that it might also be possible to "evolve" the design in the process so it could be morphed into a full scratch-build without requiring any parts from an original Plus. Sort of thinking of a design progression something like this:
  • Start by redesigning the memory addressing circuitry so instead of SIMM slots the board just uses 4MB of modern SRAM. This ditches the need to worry about refresh, CAS/RAS, and address multiplexing. This combined with the high speed of modern SRAM means it might be possible to eliminate some contention for the 68000 and allow it to run faster. (The SE runs slighter faster than the Plus because it has better cycle sharing, basically the same deal.)
  • Integrate some kind of mass storage. Early on this could be something like BlueSCSI directly wired to a 5380 SCSI chip, but I wonder what the prospects might be to eliminate the 5380 and program an MCU to emulate it plus a SCSI drive directly.
  • Ditch floppy support, or at least make it optional. I assume this would either require patching the Plus ROM to not look for it, or adding some stub hardware to fake it out. (Another idea of course would be to add an MCU that emulates the IWM and attached storage devices directly.)
  • As mentioned, add a dingus to convert the keyboard and mouse ports to PS/2 or similar.

After that next big goal would probably be to start playing with the video timing and see if it's practical to tweak things so you can use a "standard" monitor instead of the Apple monitor. This would mean figuring out some way of presenting the Mac's 512x342 pixel grid letterboxed into a VESA compatible video mode, which means changing the horizontal frequency and the pixel clock while ideally trying to keep the CPU and sound timing at least close to the original so game programs don't obviously run at the wrong speed. VGA's 640x480 pixel clock of 25mhz isn't that far off from being a 1.5 multiple of the Mac's 15.667mhz clock. Dividing a VGA pixel clock by three instead of two would probably be close enough for the CPU, but fixing sound would be tricky.

(But maybe not that hard? The Mac sound system works by DMA-ing a byte of RAM inside each video horizontal blanking area to use for sound, which results in the roughly 22khz sample rate. If we're using the VGA 31.5khz horizontal refresh you could make a state machine that grabs that byte every line and a half... or grabs two bytes every third horizontal interval, latches one, and plays the latched one on the half cycle.)

Granted I'm not sure there's a heck of a lot of point to a "parts-build" machine like this when you could just grab an FPGA board and do the whole enchilada that way instead of soldering chips and burning GALs, but I suppose ultimately there's not that much point to anything we do. ;)
 

Gorgonops

Moderator
Staff member
Check out Bigmessowires' projects. Didn't he do a Plus in FPGA or the like?
Yes, and I looked that up, but it doesn't look like he found the actual PAL code to reference? (IE, he essentially did a black-box "functional recreation".) Granted we pretty much have plain-english explanations of what each PAL does so you could do the same with this; just having the original equations would be useful because you'd A: have something you could use right away in a "literal recreation" like this board is now, and B: something to iterate off of.
 

Trash80toHP_Mini

NIGHT STALKER
ISTR the older, DIP PALs refuse to give up the goods when attacked with the methods successful with the later packages? @Bolle ?

If we know what the PALs are doing, build from there and do a few of the things the development team was unable to do whilst under the Jobsian whip. Including a little reality in the RevDev zone like FPU support might be nice? Too bad protected mode memory is off the table. :-/

After that next big goal would probably be to start playing with the video timing and see if it's practical to tweak things so you can use a "standard" monitor instead of the Apple monitor. This would mean figuring out some way of presenting the Mac's 512x342 pixel grid letterboxed into a VESA compatible video mode,
Why limit the Video Subsystem to 512x342 if you're going to use a modern display? A single bit frame buffer to drive an 8" RPi LCD at 1024x768 would make a nice, color blind retina display in the Plus case. That fits nicely between FPD and TPD options that were available for the Plus, no?

Moving to SRAM from SIMMs could clear up a lot of PCB real estate. Its low profile packaging could be implemented on the solder side, freeing up the topside for fatter SMT packages implementing such craziness.

By driving an SRAM stake through the heart of the SIMM banks, cubic is also freed up for a daughtercard for 4x usable PCB area. 😁
 
Last edited:

Trash80toHP_Mini

NIGHT STALKER
Sorry, Max, I think we're getting a little far afield or too far ahead in the wish list here. Love what you're doing just as it's developing. ;)

That said, Plus was the first truly capable Mac in the nascent DTP era when the Mac carved its niche in the world. Maybe keep in mind how fantastic a basis for the ultimate 40th Anniversary Macintosh candidate it will be. 😁

SE/30 was a remarkable inside out wedgie of the Macintosh IIcx with the same crappy old screen in its newly revealed orfice, so it doesn't count. SE's a neither here nor there transition machine, making the Plus the peak of the classic Compact line. Classic redux doesn't count either. Same same stuff packaged for cheap in an SMT world.

Maybe start a parallel wish list thread here in hacks for the 40th Anniversay Plus to keep this one on topic?
 
Last edited:

max1zzz

Well-known member
but in the process of putting this together have you created a full schematic in an accessible CAD format (Kicad/Eagle/whatever) for the Plus? (And if so, is it "open sourced" somewhere?)
Not currently, The board is a just a tracing of the original, this makes modifying the board fun!
Drawing a schematic of the board (along with the LC boards) in a modern CAD program is a long term goal, but not someting I have had the time to do yet
The board design is not currently open source, but will b in the future
Are there any Apple proprietary chips other than the IWM on the Plus motherboard? GALs which can emulate legacy PALs are still readily available, so in principle it should be pretty possible to make "new-build" Macs based on this work, especially if you're willing to ditch floppy support. (If something like BlueSCSI were integrated onboard with an accessible SD card maybe doing without wouldn't be a huge deal.) The 6522 VIA is still manufactured, and I *think* (but won't swear to it) compatible Zilog SIO chips still exist, are there any other deal-breakers?
Nope, the IWM is the only one (barring the PAL's)
I don't believe the plus will boot without a IWM though (I know the SE won't) i'm not sure how hard it would be to modify the board design and / or ROM's to work around this
Digging around a bit now, and I guess I assumed that by now someone would have reverse engineered the contents of the Mac PALs by now, but I'm kind of coming up blank
I have seen this: http://www.retro.co.za/ccc/mac/ReverseEngineering/PALs.html which seems to be a partial reverse engineering of them but they do not appear to be finished
Also equations used for the TSM in the unitron clone are here: http://www.merlintec.com/download/unitron1.pdf and http://www.merlintec.com/download/unitron2.pdf

Reversing the PAL's is beyond my ability but I would love to see it done!

Granted I'm not sure there's a heck of a lot of point to a "parts-build" machine like this
Maybe not, But I would sure as hell like to see it! :)
Sorry, Maxx, I think we're getting a little far afield or far ahead in the wish list here. Love what you're doing just as it's developing. ;)
No problem, i'm excited to see where this goes :)
 

Trash80toHP_Mini

NIGHT STALKER
Was editing in that last line while you were posting. Rev it up in a sister thread with this one linked at the start. I'll happily join in! :)
 

Bolle

Well-known member
What makes it even worse, there seem to be different PAL sets. We couldn't figure out if the different revisions are interchangeable.
My Plus board has a TSM with earlier part numbers - the same that are found on 512k boards.
I looked into the TSM somewhat but there's some straight up magic going on in there I couldn't wrap my head around yet to fully figure it out.
My TSM is a PAL16R4, I know that on some other Plus boards it's a 16R8 instead (which I think might make things easier, because the non-registered outputs on my 16R4 are really needing some magic to accomplish what I can observe them doing)
 

Gorgonops

Moderator
Staff member
I don't believe the plus will boot without a IWM though (I know the SE won't) i'm not sure how hard it would be to modify the board design and / or ROM's to work around this

My tentative hope would be it might not be too hard to zap it out, considering the ROM has already been mapped/hacked enough to work with the "Rominator" ROM disk. For that matter, sort of relating to another thread going on right now, I'm kind of thinking there might be doors here to directly incorporate some kind of storage device that doesn't rely on the SCSI subsystem at all, like hacking the Rominator ROM-disk code to instead drive a simple 8-bit CompactFlash interface or something.

I have seen this: http://www.retro.co.za/ccc/mac/ReverseEngineering/PALs.html which seems to be a partial reverse engineering of them but they do not appear to be finished
Also equations used for the TSM in the unitron clone are here: http://www.merlintec.com/download/unitron1.pdf and http://www.merlintec.com/download/unitron2.pdf

Reversing the PAL's is beyond my ability but I would love to see it done!

Yeah, I found those two references as well. Between them and the pretty decent plain-language descriptions of what they do reconstructing them shouldn't be "that impossible". I'm not exactly an expert but I have messed with implementing similar stuff in GALs so maybe I could try wrapping my head around helping out. (I guess I'd need a test platform, IE, a socketed Plus board, to really work on it.)
 

Verault

Well-known member
im really happy that some of these boards are being remade on these macs. But i have a question. Has anyone tried making a new replacement for the original mac analog board (128, 512, and plus) as these have always been more problematic than the logic board?
 

Johnnya101

Well-known member
im really happy that some of these boards are being remade on these macs. But i have a question. Has anyone tried making a new replacement for the original mac analog board (128, 512, and plus) as these have always been more problematic than the logic board?
I don't think anyone has, but it isn't the board that is the problem, it is the components. If anything, if all the parts were available new, someone should offer a service or kit to fully replace everything on there.

The only real reason people are remaking the logic boards is because the originals get destroyed by cap goo.
 

max1zzz

Well-known member
There is someone (and I apologise that I can't remember your name) working on a replacement SE analog board for driving a LCD rather than the original CRT, something like this could be done for the 128K -> Plus however as @Johnnya101 says making 1:1 replacement boards would be hard as there just isn't a source for some of the parts (e.g the flyback)

I'm not exactly an expert but I have messed with implementing similar stuff in GALs so maybe I could try wrapping my head around helping out. (I guess I'd need a test platform, IE, a socketed Plus board, to really work on it.)
Well if you want to have a crack at it I'm sure I could provide a socketed board :)
 

aeberbach

Well-known member
Hi - I have gotten a bit distracted with 3D printing lately. Partly too I am wondering if anyone will be interested now that I have a pretty good idea it will cost near $200 - is it even worth doing? The power supply is complete. The board to power the LCD and the physical support for the LCD in place of the CRT is complete. The board that powers the LCD is complete. I have decode Mac video with the FPGA, I just want to redo it so that I can use only the signals that appear on the mainboard connector (which means reconstructing the clock from the video signal rather than taking the system 16MHz signal from the PDS).

I'm only doing this with a SE/30 since that is what I have but there is no reason I know that it should not work in a SE.
 
Top