Category Archives: Retro Computer Project

Retro Computer Build Part 1 – CPU

So as part of the Retro Computer build, lets talk about the core of this computer, which will be a 6303. “What is this?” I hear you say. “I’ve never heard of this before?”  Well maybe you have, but just didn’t realise…So if you were asked had you heard about the 6800 from Motorola, I’m sure that many would say, “Oh, yes, I know it!”. Well back in 1977, Motorola took the 6800 microprocessor and added a few bells and whistles and called it the 680x microcontroller. This was used in thousands of systems back in the day and some variations are still in use now. Then Hitachi came out with their low power version called the HD630x.

https://en.wikipedia.org/wiki/Motorola_6800

Here is a link to wikipedia that gives more information on this chip.

I’m going to use the HD6303RP version of the micro for this computer. It will allow me to run 6800 code, while offering some basic I/O, which will help to get this computer operating.

The system will use about 8K/16K ROM depending on the configuration, and will have about 32K RAM for active memory. We may look at paging out memory at a later date.

To get the micro operational, there are a few things we have to do on the prototype board just to get things moving. It’s not that difficult if we take it one step at a time.

  • Clock
  • Reset Circuit
  • Operating Mode
  • External Interrupts
  • Power
Clock

The clock is used to provide timing to the micro – the faster the clock the faster the micro (to some extent). In this computer we are going to use a 4.9152MHz crystal to provide the basis of the clock for the micro. With the crystal, we have to use small bypass capacitors which help to stabilise the crystal while it’s operating.

Reset Circuit

The reset circuit is a very important part of the computer. When power is applied to the micro, it takes a little while for the clock to stabilise and get into a steady state. During this period we want to keep the micro in an inactive state. After a delay we then allow the micro to start working. To do this, we would normally have the reset pin on the micro held low (0, GND) then let it go high. This can be achieved with a simple RC (Resistor – Capacitor circuit).

Operating Mode

This micro has several modes that it can operate in. These normally are used in situations where the software is pre-programmed into the micro and it won’t be accessing any external memory. Other modes allow access to external memory, which is what we want to do for our configuration. To make the micro more flexible for future projects, we can add a small circuit to the system, to allow us to switch the operating mode for when the micro starts. We won’t be covering the different modes here, as we will be using Mode 2/4 for our application. This operating mode section, will allow us to choose, if we want to multiplex the lower address bus and the data bus. This is a good option, as it will free up port 1, which does contains other useful peripherals.

The small circuit below, shows both the reset circuit as well as a possible configuration to allow us to switch the operating mode of the micro.

External Interrupts

External interrupts are input pins, that when active, will cause the micro to stop working on what it is doing and jump to do something different. When it is finished doing this task, it will return back to what it was doing in the first place.

As we don’t want the computer to randomly jump to something else, we have to look after these external interrupts. Normally we just connect them to VCC via a pull up resistor.

Power

This is the simplest of all – just connect a clean 5V DC supply to the relevant pins on the micro. One nice feature of this micro is that it has a sleep mode, where the quiescent current is very low -nothing like today’s low power micro’s.

Schematic & Assembly

Here is the overall schematic for these first few sections of this computer. SW2,3 & 4 are used to set the startup mode for the computer, this mode is only set during the reset cycle. When operating, a quick check that was used to verify that this was operational, was to check the clock signal on pin 40 (E Output).

This image, shows the assembled circuit for this post. Part 1 is now operating and we are ready to move on to the next part.

Retro computer build – what should it do?

What should this retro computer do and how should it benefit me on a daily basis? That’s the question! Well…I will look at porting a version of Basic to the system. That will provide me with a programming language that I will be able to use to develop the application. What if the system also monitors the temperature, humidity, solar radiation and rainfall from the environment in and around my workshop?

By designing the system to be ultra low power while operating, it should have the ability to go asleep when the workshop is powered down, only waking up at specific intervals, to record the necessary signals, save the data and go back to sleep.

Power requirements should be very simple – a small solar panel charging a battery that the unit will run off.

It would be nice to have some form of display. Display controllers drain power so it will be best to keep the system power consumption as low as possible.

After checking stock, I have found some old HD63x0x micro’s that will form the basis for this project. These micro’s have some onboard peripherals that will help when trying to connect to the outside world. The most important component that I see is the on-board UART, which will allow for RS232 communications to a PC.

While it would be fantastic to have a system that records this information, what if I want the system to do something totally different in the future – having one PCB which is the computer core and another which is the interface – some form of stackable system like the PC104 systems that exists?  I will start on making the SBC, (Single Board Computer) and then I’ll focus on the interface board later. At the same time I’ll need to think about how the interface board will work and how to connect other interface boards…

Having a separate interface board is making me think about having other boards attached as well, like a floppy drive controller, to let the system connect to a 3.5″ floppy drive (just because I have a few of them lying about in the workshop). What about a video display board? I know that this wouldn’t fit into my thoughts about low power, but if the system is modular, I could make up a system that is low power for the data logging solution and another system as the desktop retro computer (all from the same technology). Then I will look to see if I can get them to talk to each other, to my PC, or my Mac.

Retro computer build – where to start?

Have been thinking over the idea of building a retro computer that uses technology from my early computer years. Nowadays I design systems based on modern micro controllers, but the old micro’s hold some nostalgia for me.

So what to build and how should I build it?

My first thought was to use the 6502 processor or the Z80 processor, but so many other bloggers and Youtube channels have built retro computers around these CPU’s. I was thinking about one of my favourite computers from the late 80’s – the Epson HX-20, the first true portable computer – battery powered that lasted up to 40 hours, yes, 40 hours. It’s mad to think that almost 30 years ago we got 40hrs on a computer and todays laptops find it hard to get a day.

This little machine has a built in printer which has been very handy for printing results in the field. It also has a micro-cassette drive, which allows the loading and saving of both programs and data. I used one of these machines between 1985 and 1993, while working in my Dad’s company. We provided loggers to companies and semi-state authorities.

If I decided to build such a device, what could I use it for? Could I make it in such a way that it would be functional and able to complete some meaningful tasks for me? Of course I could use an Arduino or a raspberry Pi, but where would the retro nostalgia be in that.

The Epson HX-20 uses an Hitachi low power CMOS CPU – the HD6301. This chip is a CMOS version of the Motorola 6800 family of IC’s, so maybe this could be the starting point?…

This project will be a work in progress, as I trial different ideas to find a solution that ticks the boxes that I’m interested in. A bit self indulgent I know, but hey, its my project.

My plan is to build something that’s as reliable as an HX-20 but actually better than one?