Let me make one thing quite clear. These pages refer to the design of a computer which is, by all sensible measures, utterly and completely pointless.
It's complex to program. It has no programming language. It's slow. It eats a lot of power. It uses a processor that is at least fifteen years out of date. It has a tiny amount of memory, by today's standards. You have to build it yourself. It doesn't have a printer, or a network connection. You have to use your TV to see any pictures - and they're in black and white. It barely has an operating system. It doesn't have a pretty case.
But it's not all doom and gloom...
First and foremost, it's fun. Designing something that doesn't need chips with hundreds of legs that are too small to see is marvellously liberating. It's also an intellectual challenge: can I still remember how to design with components I haven't used in nearly twenty years? And finally, hopefully, it might be somewhat educational. If you've ever wondered what actually happens between the processor and the rest of the system, or between the system and the world, well, these pages might tell you. If you've wanted to know what all those little beasts with the legs are doing, you can learn about that, too. And last of all, if you're like me, and you don't have a fortune to spend on fancy test gear - like high speed logic analysers and fast oscilloscopes - well, you shouldn't need them.
It wouldn't be fun if I didn't have to work to some standards, so before I started the design I set myself a few rules. In no particular order, they are:
This not only keeps the individual blocks down to an easily managed size, but it means that excellent and free tools can be used for circuit board layout - Eagle Cad - and that the circuit boards are not too expensive to prohibit hobby work. As a side benefit, it means that prototypes will easily fit on a standard eurocard (100mm*160mm) stripboard.
Although surface mount chips in the various packages are very space efficient, they have two major disadvantages for the hobbyist. Firstly, they're fiddly to manage; the legs can be soldered by hand but it does take a steady hand and a good eye, but it's difficult to correct mistakes without special equipment. Secondly, while it's possible to prototype with SM devices, it's difficult.
Admittedly, I don't hold this rule rigidly - for space reasons, on the backplane I use SM chips - but I tried.
I didn't want to use chips which would be hard to get hold of or only available from a single supplier. By using standard 74HCT series chips throughout the design is simplified and there are no problems with level converters, terminations, or odd voltages.
There are, of course, a couple of exceptions which might prove harder to get. The processor chip is a 6502 (or any of its pin-and-code compatible friends) and the serial port is a 6850 - both of these turn up fairly often on eBay.
Since there isn't room on a single card for everything I want to do, a backplane is a necessity. By using a common layout, any card will plug in any slot - with the exception of the processor card - and you only need to build the bits you want.
Using individual regulators on each card means the incoming power can be much less tightly specified. I don't provide a power supply diagram, and nor do I intend to. For safety and convenience reasons I recommend a switchmode soap-on-a-rope supply such as are found with many laptop computers. This takes care of mains voltage regulations and - most important - electrical safety issues. As long as it can supply nine to fifteen volts or so at a couple of amps, pretty much anything will do the job.
I'm proposing about half a dozen different cards, but there will only be room for the processor plus four other cards on the backplane. There is of course no reason why the backplane couldn't be the width of a nineteen-inch rack (like my old Microtan system) except for my restriction to half-eurocard.
The processor card will stand alone, though it won't be a whole lot of use since its only IO in that form will be through the serial port. That said, it has 32k of RAM, 28k of EEPROM (though this needs to be programmed externally) and 4k of memory mapped IO space (which is the way that the 6502 does it).
The processor is clocked at a touch over 1.2MHz, derived from a single 19MHz baud rate generator which also feeds the serial port.
The memory card can hold up to 2MB of static ram in up to four chips. It's paged by the processor card with up to 4MB total ram, so two of these cards could be used if desired.
Yes, it has a disc drive interface. I have a 20GB disc lying around doing nothing in particular, and I see no reason why this beastie shouldn't talk to it. It's not as hard as it sounds, if you're not insistent on DMA and megabytes per second data transfer rates.
The IDE card also has a level converter to make the TTL serial data from the CPU card into RS232 so a terminal or a PC running a terminal program can talk to it.
To recreate the spirit of those early home computers in the seventies, I wanted it to output to a TV, rather than a VGA monitor or similar. It makes the timing a little easier driving the slower sync rates of PAL or NTSC video.
The video output is a pixel addressable black or white display with either 512 by 275 (PAL) or 512 by 240 (NTSC). It's not quite to either spec but it should work without problems on either.
PC keyboards and mice are everywhere and cheap. Although we have a serial link, we'd like to be able to use a standard keyboard and mouse. As a bonus, we provide a real-time clock, battery backed so it survives when the power is down.
We also show an interesting way to synchronise two non-synchronous computers with a parallel interface.
Which holds it all together... five slots, with address and data buffering between the processor and the other cards.
At the time of writing, this machine does not exist. It has been designed, but prototyping is still in the future. Think of it as a thought-experiment... the design is (probably) complete, down to PCB layouts, and one day I shall have them made. Before then, I'll build it on veroboard and write some code.
The designs and software of the Pointless Computer are released under the terms of GNU LGPL license. Strictly, that license relates only to software which may be linked to a non-free library. However, you are granted similar rights for the hardware designs. If you want to build one, and help to debug it, I'd be very pleased to hear from you. You can email me at nailed_barnacle@hotmail.com