Building an Acorn System 1 replica - Part 1 (12/09/2019)
It's no secret I've had a fascination with the Acorn System 1 since I was a kid even though I've never owned one, and the chances of owning one now are almost none existent, so as any good engineer knows, if you can't get what you want, build it.
The system 1 is a very basic machine consisting of two euro size PCB cards. The top card contains a HEX keypad with some additional function keys, a calculator style LED display consisting of an eight, seven segment + decimal point digit display, and a cassette interface for connecting to a cassette recorder than can be used for storing and retrieving users programs or data.
This was connected by a 20-way ribbon cable to the lower CPU board.
This contained a 6502 CPU running at around 1MHz, 1Kb of RAM, 512 bytes of PROM containing the monitor program firmware, provision for a 2Kb EEPROM, and a handful of jellybean logic chips.
The board also had provision for 2 x INS8154 IO/memory chips.
One of these is optional but the other is required if you want to make use of the keyboard, display and cassette interface.
Whilst this was all state of the art in the 1970's, today some of these parts are proving somewhat difficult to afford if you can even locate them.
The INS8154's for example are like gold and it seems impossible to get hold of a 1.008 MHz crystal. Also, whilst the original blank PROM chips are still available, few people have the technology to program them. The calculator bubble LED display is also no longer manufactured.
So, I decided that I would build a replica, but updated to use newer parts where appropriate.
The first challenge was to get schematic diagrams for the original. The internet is awash with them, but, they are hand drawn, not of great quality, and many had little annotations and corrections scribbled over them. Bottom line was they couldn't be trusted.
Step 1. Create a set of accurate schematics.
I found some high resolution pictures on the web of both boards, top and bottom sides, so I printed them out whilst reversing the bottom side images and then glued them together.
The system 1 is a very basic machine consisting of two euro size PCB cards. The top card contains a HEX keypad with some additional function keys, a calculator style LED display consisting of an eight, seven segment + decimal point digit display, and a cassette interface for connecting to a cassette recorder than can be used for storing and retrieving users programs or data.
This was connected by a 20-way ribbon cable to the lower CPU board.
This contained a 6502 CPU running at around 1MHz, 1Kb of RAM, 512 bytes of PROM containing the monitor program firmware, provision for a 2Kb EEPROM, and a handful of jellybean logic chips.
The board also had provision for 2 x INS8154 IO/memory chips.
One of these is optional but the other is required if you want to make use of the keyboard, display and cassette interface.
Whilst this was all state of the art in the 1970's, today some of these parts are proving somewhat difficult to afford if you can even locate them.
The INS8154's for example are like gold and it seems impossible to get hold of a 1.008 MHz crystal. Also, whilst the original blank PROM chips are still available, few people have the technology to program them. The calculator bubble LED display is also no longer manufactured.
So, I decided that I would build a replica, but updated to use newer parts where appropriate.
The first challenge was to get schematic diagrams for the original. The internet is awash with them, but, they are hand drawn, not of great quality, and many had little annotations and corrections scribbled over them. Bottom line was they couldn't be trusted.
Step 1. Create a set of accurate schematics.
I found some high resolution pictures on the web of both boards, top and bottom sides, so I printed them out whilst reversing the bottom side images and then glued them together.
This gave me two A4 sized pictures that I could use to help follow the actual tracks around. It took awhile and some tracks are obscured under IC's and other components but I eventually traced every track, compared it to, and corrected the schematic accordingly.
I ended up with a couple of schematics for the CPU and keypad card that seemed to be correct. |
Step 2. Decide what changes are required and create a new set of schematics to accommodate those requirements.
This proved harder than I thought and required some soul searching before I was happy with some of the changes I was making.
The first thing that had to go was the second INS8154 chip. It's only required if the user wants to expand the system and these days nobody would be using that chip; even if it was available.
That did leave the problem of the first INS8154. This is needed for the keypad and display and without it, this computer is useless.
I found a datasheet for the IC and was pleasantly surprised to discover how simple it is internally. I decided to make provision for the IC on the CPU board but I have a cunning plan that I will come to later on.
I could not locate a source for the 1.008 MHz crystal. Now the only reason it needs to be this value is because of the cassette interface. You could in theory run with a 1.000 MHz crystal and nobody would probably know. Except me.
I'm also aware there are different variants of the 6502 CPU that can run up to 4 MHz; maybe faster.
After some calculations and research I realised that 4.096 MHz, 8.192 MHz and 16.384 MHz crystals are readily available, and these frequencies can easily be divided down to 1.008 MHz. So, use a 4.096 MHz crystal and a 74LS93 to do the division... that's the crystal problem solved.
I also decided to add an option to allow easy selection of the divider output to so that if a CPU that is capable of handing a higher clock speed is fitted, it can be run at a higher speed.
There is provision on board for 2 x 4-bit PROMS and a 2K EPROM. The EPROM socket can also hold the monitor program firmware and whilst EPROMs cost a kings ransom in the 70's, they are cheap-as-chips these days so the EPROM socket was staying. 2716 EPROMs are common but I've noticed that some EPROM programmers no longer support them and the chips can be a little pricey. So, I would change the design to support a larger 2764 EPROM (as I've got a box full of them). The 2 x 74S571 4-bit PROMS would go. They are still available but expensive and there's no need for them. Everything can go in the EPROM.
The original CPU card had an on-board 5v regulator but never had proper heat sinking and was prone to overheating.
With the availability of high-current, cheap, plug in 5v PSU's these days, I decided to remove this part from the design.
I would also take the opportunity to remove the PCB edge-way connector and support slightly different Euro style connector; again because I have a box full of them - but they are readily available and used for most plug-in backplane systems.
Whilst on the subject of connectors, I never liked the fact that the ribbon cable that linked the two boards together was soldered in place. That would need to be addressed as well.
I also decided to remove the 2 x 2114 RAM chips. These two RAM chips are still available and are fairly hardy devices, but they are only 1K x 4 bits each so you need two of them. They also offer relatively slow access times; the fastest I could find is 100ns. These would be replaced with a single 6116 static RAM chip than contains 2K x 8 bits so giving double the capacity and they are easily available and variants go down to 20ns access times.
Whilst the slower memories are fine for the 1MHz 6502, there are faster variants of this CPU available, and there is also a W65C02 CPU variant that can run at 14 MHz that I may decide to use later on, so it seemed sensible to built in some future proofing.
The keyboard and display board was probably going to be a bit easier; I thought.
Forget using little springy metal dome caps for the switches, I wanted proper switches that could easily be replaced if required. The display was going to be a problem moving forward as whilst I happen to have some of the correct LED bubble displays, many people won't. For now I decided to leave that part as is but build in provision to allow for something different later on.
I made another management decision and removed the cassette interface. There are better and cheaper storage options now (and does anybody still have a cassette deck anyway), however, I will leave provision for it to added as a small plug-on board if required. I suppose you could use an MP3 recorder/player instead.
The only other change was to move the NMI and IRQ buttons from the CPU board to the keyboard and display board. I understand why these, along with the reset were made available on the CPU (specially because the CPU board could be used standalone), but with the top board secured in place, it's almost impossible to mount switches in the NMI and IRQ positions, so these switches should, in my humble opinion, be on the keyboard PCB.
Step 3. Update the schematics.
With all of the above in mind, that's exactly what I did. I redrew the schematics to end up with something that looked like it would do the job.
Step 4. Design the PCBs.
This bit was, to be frank, a royal pain in the backside.
I decided that the chaps at Acorn were a lot smarter than I was, so opted to keep a layout similar to theirs. However I still struggled to get everything to fit and I'm still not completely happy with the layout. However I don't expect the first pass at something like this to be perfect; and PCB design isn't my day job, so I could leave making fancy refinements to the next iteration of the boards.
Having spent several days on the PCBs, I packed up the files and sent them to JLCPCB. I love that PCB house in China. The quality seems excellent and their prices are brilliant. It's just a shame they are in China and things take ages unless you pay for fast, and expensive, delivery.
This proved harder than I thought and required some soul searching before I was happy with some of the changes I was making.
The first thing that had to go was the second INS8154 chip. It's only required if the user wants to expand the system and these days nobody would be using that chip; even if it was available.
That did leave the problem of the first INS8154. This is needed for the keypad and display and without it, this computer is useless.
I found a datasheet for the IC and was pleasantly surprised to discover how simple it is internally. I decided to make provision for the IC on the CPU board but I have a cunning plan that I will come to later on.
I could not locate a source for the 1.008 MHz crystal. Now the only reason it needs to be this value is because of the cassette interface. You could in theory run with a 1.000 MHz crystal and nobody would probably know. Except me.
I'm also aware there are different variants of the 6502 CPU that can run up to 4 MHz; maybe faster.
After some calculations and research I realised that 4.096 MHz, 8.192 MHz and 16.384 MHz crystals are readily available, and these frequencies can easily be divided down to 1.008 MHz. So, use a 4.096 MHz crystal and a 74LS93 to do the division... that's the crystal problem solved.
I also decided to add an option to allow easy selection of the divider output to so that if a CPU that is capable of handing a higher clock speed is fitted, it can be run at a higher speed.
There is provision on board for 2 x 4-bit PROMS and a 2K EPROM. The EPROM socket can also hold the monitor program firmware and whilst EPROMs cost a kings ransom in the 70's, they are cheap-as-chips these days so the EPROM socket was staying. 2716 EPROMs are common but I've noticed that some EPROM programmers no longer support them and the chips can be a little pricey. So, I would change the design to support a larger 2764 EPROM (as I've got a box full of them). The 2 x 74S571 4-bit PROMS would go. They are still available but expensive and there's no need for them. Everything can go in the EPROM.
The original CPU card had an on-board 5v regulator but never had proper heat sinking and was prone to overheating.
With the availability of high-current, cheap, plug in 5v PSU's these days, I decided to remove this part from the design.
I would also take the opportunity to remove the PCB edge-way connector and support slightly different Euro style connector; again because I have a box full of them - but they are readily available and used for most plug-in backplane systems.
Whilst on the subject of connectors, I never liked the fact that the ribbon cable that linked the two boards together was soldered in place. That would need to be addressed as well.
I also decided to remove the 2 x 2114 RAM chips. These two RAM chips are still available and are fairly hardy devices, but they are only 1K x 4 bits each so you need two of them. They also offer relatively slow access times; the fastest I could find is 100ns. These would be replaced with a single 6116 static RAM chip than contains 2K x 8 bits so giving double the capacity and they are easily available and variants go down to 20ns access times.
Whilst the slower memories are fine for the 1MHz 6502, there are faster variants of this CPU available, and there is also a W65C02 CPU variant that can run at 14 MHz that I may decide to use later on, so it seemed sensible to built in some future proofing.
The keyboard and display board was probably going to be a bit easier; I thought.
Forget using little springy metal dome caps for the switches, I wanted proper switches that could easily be replaced if required. The display was going to be a problem moving forward as whilst I happen to have some of the correct LED bubble displays, many people won't. For now I decided to leave that part as is but build in provision to allow for something different later on.
I made another management decision and removed the cassette interface. There are better and cheaper storage options now (and does anybody still have a cassette deck anyway), however, I will leave provision for it to added as a small plug-on board if required. I suppose you could use an MP3 recorder/player instead.
The only other change was to move the NMI and IRQ buttons from the CPU board to the keyboard and display board. I understand why these, along with the reset were made available on the CPU (specially because the CPU board could be used standalone), but with the top board secured in place, it's almost impossible to mount switches in the NMI and IRQ positions, so these switches should, in my humble opinion, be on the keyboard PCB.
Step 3. Update the schematics.
With all of the above in mind, that's exactly what I did. I redrew the schematics to end up with something that looked like it would do the job.
Step 4. Design the PCBs.
This bit was, to be frank, a royal pain in the backside.
I decided that the chaps at Acorn were a lot smarter than I was, so opted to keep a layout similar to theirs. However I still struggled to get everything to fit and I'm still not completely happy with the layout. However I don't expect the first pass at something like this to be perfect; and PCB design isn't my day job, so I could leave making fancy refinements to the next iteration of the boards.
Having spent several days on the PCBs, I packed up the files and sent them to JLCPCB. I love that PCB house in China. The quality seems excellent and their prices are brilliant. It's just a shame they are in China and things take ages unless you pay for fast, and expensive, delivery.