Close

Primordial Soup

A project log for A Brand New Apple Lisa

Producing a Functional Clone of the Apple Lisa 2/5, using NOS components.

dosfoxDosFox 08/15/2023 at 16:530 Comments

This is definitely the "12 pages of waffle no one reads before the recipe", but I feel it gives much needed context to the origins - the primordial soup - of this project. 

So really, what even drove me to build my own Lisa? 

Two things really. The first is that I have basically accumulated every single hardware iteration of compact Macintosh that Apple had produced. My earliest is a 128K Macintosh that was built in the fifth week of 1984 (one week after the Macintosh was even launched!), with the latest being a Performa 200 from 1992 (the last black and white Macintosh Apple produced - it was just a rebadged Classic ii after all). 

From that, I had an obvious gap in my collection - a Lisa. 

In fact, I missed out on a Lisa before I even got into collecting Macintoshes. In about 2019 I  found someone selling one, with a starting bid of only £30. I messaged the seller directly asking if they would accept an offer of £80. They declined, saying they would prefer to wait until the end of the auction.

The next day they had cancelled the auction and sold it to someone for £100. Their response was that the "other seller offered more". 

No comment is necessary, as I am certain you can probably get the gist of my feelings that I managed to miss out on a Lisa by £20.

The next time I saw one for sale was for 2K in 2022, which for a badly paid engineer in their 20s was pretty much unattainable. Which really is the main reason for building a Lisa instead of buying one. They are incredibly expensive at the moment, a decent condition Lisa will sell for anywhere from £2K to £5K, basically a significant dent in my savings. I need to do a proper tally, but all told the Lisa has cost me about £500 in parts. Half of which was just the bare PCBs! 

I had also - since at least the global event which we do not speak of - had a bit of an interest in building my own computers from scratch. I had already built a few RC2014 Z80 based computers, and I was considering building my own from scratch - but my main concern was getting it to do something useful. 

I feel that the main death of a homebrew computer is that the person making it will always put the majority of their energy and effort into designing the hardware of the thing, before inevitably putting considerably less effort into the software. Most projects usually end in "I then got a monitor program running, so I considered it a working computer and left it to rust on a shelf for the next 20 years".  

As such, I was adamant that any computer I build must have a good software library present. 

Therefore I was set on building a clone of an existing computer - a computer from Apple no less, with a full 68000 and GUI.

I was set on building a Macintosh. 

Wait. What?

The Red Herring

Yep. A Macintosh. I had found badly scanned schematics online, and I was fairly confident that the "Jecel" Unitron/Merlin PAL equations could be used. 

Unfortunately, that proved to be the undoing of the entire project. It seems that once every five years of so, someone will find the badly drawn schematics of the Macintosh 128/512 and go "ah that doesn't look complicated!" And tries to build a clone of the Macintosh from scratch. Unfortunately it isn't that simple. 

The Trouble With Trib- Cloning A Macintosh

You see, a good chunk of the Macintosh is implemented in "Programmable Array Logic" - sort of like the great grandfather of CPLDs and FPGAs, they're generic logic that can be recombined internally by blowing fuses - like in Programmable ROMs. Sadly, it is borderline impossible to figure out how the internal fuses are arranged, once the security bit is blown. 

This is because there are two types of PALs - combinational and registered. Combinational can be relatively easily decoded by just running through every combination of input possible once, and checking the output. As they usually only have 8 inputs and 8 outputs, you only have to figure out the logic of 256 combinations. 

The Mac has two of these PALs.

The problem is with the registered PALs. 

These, as you might have guessed, have registers on every single output pin, which means that the output of each pin can be saved for later, and can also be fed back to the internal network. You're now no longer just checking 256 combinations - you're now checking 256 combination which are affected by the previous 256 combinations. I probably haven't explained that well, as that sounds like it's still fairly easy to decode. 

To put the issue in layman's terms - it's like trying to diffuse a bomb, with a single toothpick, whilst hanging upside down from the Bristol Suspension Bridge, as a marching band passes overhead, during a gale, whilst drunk. 

I didn't really have high odds of decoding them, especially as I didn't even have a set of Macintoshes PALs that weren't in a Macintosh to play with. 

So that idea got shelved. 

However, the B plan came into action. 

Starting the Lisa Clone Project

Whilst mildly bored on a tram, I was thinking about this conundrum. I couldn't build a Macintosh, but what about the Lisa? It was developed a few years before the Macintosh, and whilst the Apple ii was still the hottest computer on the market. The Apple ii didn't use PALs, or at least any custom logic until the iie. 

Was there a chance that the Lisa didn't have any custom parts? 

Well, as it turned out, it didn't. 

The Initial Schematic Check

I had a copy of the Lisa 2/5 schematics for whatever reason already, possibly from the ill fated Macintosh project, and began to check for anything that could be an issue reproducing. The first board I checked was the IO board, where I found:

The COP concerned me, as that seemed to be a custom, or at least semi custom part, as it can only be programmed at the factory - owing to the use of a "mask" ROM. However, five minutes of googling revealed that there is in fact a drop in replacement for that very COP

Additionally, that single Apple branded IC turned out to be something quite surprising. I had feared - like the COP - that it was in actual fact a custom IC that I had no chance of cloning. Thankfully I was wrong. Turns out it's just a simple 256 byte PROM. 

At this point, it was slowly dawning on me that it was possible to clone the entire thing. There wasn't anything on the IO board that couldn't be replicated. 

I continued on with the checks with the CPU board, revealing: 

The crystal resonator was again something that made me worry - it generates a frequency of 20.37504mhz exactly. Unfortunately, according to google anyway, the only system that ever used a frequency of 20.37504mhz was... the Lisa. 

Thankfully I was quickly made aware of something quite useful - One Time Programmable oscillators. 

These things do what they say on the tin, you program them either by requesting the seller/manufacturer, or by using a microcontroller if it has external interfaces to do so. 

I opted to go with the first option, as I had found Centurion Tech - a seller who can provide a handy service of producing custom oscillators from a simple online form. £20 later, and the first component of the Lisa had arrived. 

According to my emails, that part was shipped on the 1st of March 2023, by August 2023 the Lisa is fully working - so in terms of time scale, it only took me about 5 months to get a Lisa in a mostly usable state. 

Realising the impossible was possible.

The final few checks were around the motherboard - as expected just a few connectors and relatively basic glue circuitry, as well as a solution to a problem I had been concerned about - turns out the Lisa motherboard has an RCA jack for composite video out. 

Additionally, I was already aware that the Lisa used the same mouse interface that was present on the Macintosh, and there were Macintosh to Lisa keyboard adapters.

I also knew the Lisa used the same 3.5" floppy drive as the Macintosh, which I had a few spare.

Additionally, aware that solid state Profile hard drive emulators existed - specifically the X/Profile from Sigma Seven

At the time, the RAM board was not a concern, as VintageMicros had some bare PCBs for the 2mb RAM card made by Sun Remarketing. This would mean I would just need to populate my own RAM Board, and finally use up some of the 256kb RAM Sticks I had lying around,

Conclusion from the initial investigation

So from my initial investigation, I had identified the only two custom parts on the Lisa - the CPU oscillator and the COPs Microcontroller, which also had relatively simple workarounds. 

The rest of the components were just off the shelf ICs and passives, with a few ROMs that needed to be burnt. At that moment, the biggest challenge I faced was generating the schematics in a modern CAD package, before generating the boards themselves. In the interests of time, I believed that the quickest method would be to just generate the CPU board, IO board, as well as a modified motherboard with an onboard ATX power supply adapter. 

I was expecting that part of the project to take months, possibly even years. 
Turns out it was even quicker than that.
Turns out I had successfully avoided technical debt because nearly everything I had planned to do had already been done. 

Discussions