Hackaday Prize Entry: A PC-XT Clone Powered By AVR

There is a high probability that the device on which you are reading this comes somehow loosely under the broad definition of a PC. The familiar x86 architecture with peripheral standards has trounced all its competitors over the years, to the extent that it is only in the mobile and tablet space of personal computing that it has not become dominant.

The modern PC with its multi-core processor and 64-bit instruction set is a world away from its 16-bit ancestor from the early 1980s. Those early PCs were computers in the manner of the day, in which there were relatively few peripherals, and the microprocessor bus was exposed almost directly rather than through the abstractions and gatekeepers we’d expect to see today. The 8088 processor with an 8-bit external bus though is the primordial PC processor, and within reason you will find software written for DOS on those earliest IBM machines will often still run on your multiprocessor behemoth over a DOS-like layer on your present-day operating system. This 35-year-plus chain of mostly unbroken compatibility is both a remarkable feat of engineering and a millstone round the necks of modern PC hardware and OS developers.

Those early PCs have captured the attention of [esot.eric], who has come up with the interesting project of interfacing an AVR microcontroller to the 8088 system bus of one of those early PCs. Thus all those PC peripherals could be made to run under the control of something a little more up-to-date. When you consider that the 8088 ran at a modest 300KIPS and that the AVR is capable of running at a by comparison blisteringly fast 22MIPS, the idea was that it should be able to emulate an 8088 at the same speed as an original, if not faster. His progress makes for a long and fascinating read, so far he has accessed the PC’s 640KB of RAM reliably, talked to an ISA-bus parallel port, and made a CGA card produce colours and characters. Interestingly the AVR has the potential for speed enhancements not possible with an 8088, for example it can use its own internal UART with many fewer instructions than it would use to access the PC UART, and its internal Flash memory can contain the PC BIOS and read it a huge amount faster than a real BIOS ROM could be on real PC hardware.

In case you were wondering what use an 8088 PC could be put to, take a look at this impressive demo. Don’t have one yourself? Build one.

19 thoughts on “Hackaday Prize Entry: A PC-XT Clone Powered By AVR

  1. It’d be a shame if the value of articles were reckoned on the number of comments because this is a fascinating bit of nostalgia that I greatly enjoyed whether it provokes comment or not.

          1. The distinction between single and double quotes is weirder with other languages.

            In JavaScript single quotes are evaluated string and double quotes are literal string however escaped characters are evaluated in either case.

            In PHP single quotes are literal string and double quotes are evaluated strings. The contents within single quotes are however evaluated if the single quoted portion is within a double quoted string. Escape characters are only evaluated within double quotes except for the above rule.

  2. I was feeling pretty happy with myself for unloading all my old computer “crap” – until I saw this project. I’ll never doubt my hoarding instincts again…

    Seriously, though, this is really cool.

    1. Me too-oh the piles of isa and pci cards and computers built in pizza box. It is good to see a new generation figuring out how it all works and then some (I definitely learned a thing or two). It is a great read and a good write up for Jenny as usual :)

  3. How many years ago did the Aurduino with the AVR become released???
    I’ve been waiting since then for someone to do exactly this!!

    Now for a challenge… SMP using multiple AVR as the “Cores” and/or…. maybe…. a 32-bit system (386 emulation??) using a uC with maybe more ram for better translated/decoded instruction caching.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.