Building Your Own 8088 XT Motherboard

There was a time when an XT-class motherboard — like the old IBM PC with an 8088 CPU — was a high-tech accomplishment. Now, something like that is easily within reach of the average hobby lab. [Homebrew8088] did it, and it looks surprisingly simple, especially compared to what passes for a motherboard these days.

The board will take an 8088 or one of the NEC chips and by default sports 512 K of RAM, a few ISA slots, a PC speaker, a USB hard drive, and a PS/2 keyboard connector. The board will fit in an ATX case. Not bad. You can see a video of the board below.

In fact, the channel has a lot of related videos and the main site has many interesting topics, like driving an 8088 or 8086 from a Raspberry Pi. The GitHub site has design files for KiCad along with a lot of other information. Some of this will be interesting even if you are just trying to repair an old motherboard or would like to design a new ISA card.

If you want to know why the PC used an 8088 instead of an 8086, we just covered that. What are you going to do with an old XT computer? How about IRC?

47 thoughts on “Building Your Own 8088 XT Motherboard

  1. If I’d wanted an 8088, I would have saved that Tandy comouter I brought home once.

    Or some of the 8088 motherboards I stripped out of computers.

    But I wasn’t interested once I was finding better comouters.

      1. I joined a FB group for vintage/retro computers and it’s this sort of PC and early laptops. My retro compputers are from far before the PC Jr or XT/AT. I have things like a KIM-1, a CPC 6128.

        So as surprising as it may be – to some the early IBM (and clones) PCs are now old vintage retro computers.

        1. “So as surprising as it may be – to some the early IBM (and clones) PCs are now old vintage retro computers.”

          Not just those. All of the 20th century PCs may belong into that category by now or soon. 3 years more and they’re all a quarter of a century old, at least. In computing, that’s even more. However, some folks seem to struggle with the idea that a Windows 3.1 or 95 era PC sits next to an Amiga or Atari ST in the museum. ;)

          1. Yeah, I suppose it’s different if you can remember all the transitions that had to occur for these machines to come into existence when they did.

            Not just the new parts becoming “available” but all the other factors including prices that played a huge role and the pioneers moving from company to company.

          2. For a long time I was dating things as having happened before or after the release of Windows 3.0. Then I shifted to before or after Windows 95. These days I don’t remember the year of release for Windows XP…

          3. For me it was seeing and old piece of equipment that didn’t mean much until I saw one of my old office numbers scribbled on the side and realised that I used to service it.

            After a quick perusal I could see that it was repairable without too much effort even thought you think it doesn’t really have any purpose any-more, but there it is sitting in a museum – it still has a purpose. Then I thought, this equipment isn’t getting any older at all. It’s me that is getting older and becoming obsolete and now with some organs missing and a other problems I’m no longer economical to repair. It will likely outlive me.

        2. My lovely wife, in college, was offered the option of an assembly language course instead of French, Spanish, or another foreign language (her abilities lie elsewhere). She accepted, and was issued a KIM-1.
          She (hand) wrote the assembly programs and then hand-assembled them and keyed them in. I offered her the option of a 6502 cross assembler on the CDC CYBER74 mainframe, but she insisted on hand assembling her code. She passed the course, and went on to teach middle school math and science.
          I love her.

          1. I had a maths teacher that refused to let me use any other base than base 10, which I often wanted to do to “simplify” the equations but he couldn’t deal with it.

            On the other hand in Advanced Maths I often used base Pi or base sqr(2) or base Sin(60) or whatever to make the whole equation come down to integer maths which I learnt from writing complex chemistry (atomic) synthesisers in ASM (Actually machine code) on a TRS-80. My Advanced Maths teacher asked me how the base transpositions/translations worked that I used on some equations and I showed him and from then he totally embraced that used the most appropriate base so at the end I could specify plus or minus 0.000 recurring.

      2. Back in 97 my mother was going to ITT Tech for electronics and one of her class mates worked for a computer repair shop and knew I liked working on computers. He offered me some computer parts he found in the back room and I said sure. Well my mother brought home six boxes loaded from anything that was 8080 to 386. Parts that every x86 retro guy wants these days. When i moved out in 2010 to an apartment I left it all. It got all thrown away. Little did I know I had a gold mine when I hopped on ebay to find a 3com ISA NIC

        1. “Little did I know I had a gold mine when I hopped on ebay to find a 3com ISA NIC”

          Ah, if only. Unfortunately a lot of my old hardware is in the dustbin of history. But 3COMs were pretty popular for the time. Kind of like Intel now.

      3. I sometimes think that about the stack of original IBM PCs I had when I was in High School.

        But then I remind myself that if everyone who had those things had saved them waiting for the day they were worth something that day would never have come.

    1. +1

      I do have an XT clone that I restored.
      It’s fine for leisurely tinkering/hobby use,
      but back then in an office under time pressure.. 😒

      The i8088 was described as “castrated” by one of its own developers. That dev surely had guts to speak the truth. With at least 16-Bit wide i/o to memory and video, the i8086 wasn’t that bad actually.

      So with a little fixup, an 8MHz+ 8086/V30 system could be built without replacing all the Z80 era support chips! 🙂

      Systems like that existed. PC1512, Olivetti M24 etc.
      They had “fixed” on-board CGAs, too. 640×200 in 16c, 640×400 in 2c.

      Anyway, it’s hard to reason with nostalgia. Projects like this aren’t exactly practical, so removing the bottlenecks isn’t seen as vital.
      That being said, it’s nice to see some DOS systems still being build. So kudos to the author! 😎

      The old PC/XT bus (-“8-Bit ISA” doesn’t really exist, strictly speaking, since “ISA” was an 16-Bit bus @8.33MHz derived from AT-Bus and specified in the EISA docs first time, I think, btw-) is easy to develop for. Some server boards still have an ISA slot interfaced to LPC, albeit without DMA etc.

      1. I got my hands on one of the Amstrad XTs before I got hold of a 5160… now I didn’t think the Amstrad was all that fast, until I got the 5160, whereupon it seemed like a rocket ship :-D

        1. Glad to hear! 😎
          My father had a Schneider PC1512 back then, which was functionally the same to the Amstrad.
          He installed a NEC V30 quickly soon.
          @ 8MHz, it felt pretty much like an AT class system according to him.
          Another nice plus was the lack of a fan, since the monitor had the PSU installed and the PC itself drew little powrt
          So the PC was almost silent. Almost, because he had a filecard (hardcard) installed. The 8086/V30 allowed for a better interleave-factor, too, so disk access was faster than on a typical 5160. 😃

  2. I built an IBM compatible PC using a “Megaboard” sold in the back pages of PC magazine back in the middle 1980’s. I finished it up with an IBM model F keyboard and a 10meg hard drive with five and a quarter inch floppy disk. My total cost was about $2100.

  3. I’d like a simple 8088 single board computer that has 640K low RAM, and as many megabytes of LIM 4.0 hardware EMS as it can handle. Give it a couple of RS232-C ports on 16550A UARTs (or an emulation thereof) and a couple of bi-directional parallel ports. The most advanced bit would be some USB ports to work with a USB floppy drive, keyboard, mouse, and flash drives. Boot it from a Compact Flash card. Doesn’t need any ISA slots and the video can be standard 640×480 VGA with emulation of MDA, Hercules, CGA, and EGA, including all the “undocumented” modes. Better than 8 bit color could be a feature on the VGA but not required.

    What use would such a board be? A replacement control PC for old CNC and other equipment where the software is so old it runs on DOS and can only use EMS for extra RAM.

    I have a Light Machines PLM 2000 benchtop CNC mill that connects to a PC via RS232-C. The only software ever made for it dates to the pre-80286 era, before XMS memory was a thing. It uses EMS to load g-code into.

    I don’t want to refit the electronics because it has servo motors and a new servo motor controller that will work with the old motors would be $$$$.

    If anyone has a PLM 2000 mill or anything else with the same Animatics 3 or 4 channel servo controller, I have a bunch of documentation and old software for it this I got from a guy at Moog Animatics who stayed when Moog bought Animatics. He still had an old backup hard drive with all of it. The controller can do things which Light Machines never exploited, such as loading a small g-code program into its onboard RAM then running it as a cycle without being controlled by the PC.

      1. EMS is tricky to get working on modern PCs, because there’s so much more stuff cramped into the Upper Memory Area (UMA, 640KB-1MB) so there’s no contiguous space left for a 64KB Page Frame (standard size; Large Frame EMS needs up to 256KB).

        Memory managers like 386MAX, QEMM or EMS Magic (freeware) can help here.
        Well, unless things like VME (enhanced V86) are broken (hello AMD Ryzen!) maybe.

    1. I’d just slap an Arduino on it and load Grbl. Better performance than the 8088 based board and pretty well understood firmware. Or, use a Teensy 4.1 with a 32-bit Grbl (grblHAL) for a little more money and get a top performing system for a few $$ more. No need to deal with DOS based stuff unless you want to.

    2. It wasn’t the hardware that took these things away from you.

      Back then if I were to write something that control’s a CNC then I would be directly using LTP port 0378 03A8 or COM port 03F8 02F8 and that was easy to do and so there was a lot of software that worked this way.

      Then windows abstracted direct control of these ports away with Win XP so all the old software didn’t work.

      By that time there wasn’t much of a customer base to fix the old software for – instead newer versions of software were written to run on say USB as it was now just as hard to use a LTP or COM port as it was to use USB.

      Then when there was not much software using LTP and COM ports any more, most manufacturers removed them from their main board designs.

      So if you can find a board with a LPT socket and run DOS or Win 98 (ME) or less than your old software will work fine.

      1. “Then windows abstracted direct control of these ports away with Win XP so all the old software didn’t work.”

        Such direct bit-banging works best from Real-Mode DOS (no EMM386/QEMM) or OS/2 Warp, perhaps.

        Windows 9x already slowly started to get in the way through its Plug&Play and auto-detection mechanisms and its messing with the system timer.

        But you’re not wrong, I think, accessing ports like LPT still worked – from both 16/32-Bit Windows applications and non-Windows applications (DOS progs).

        Windows 2k/XP aren’t completely unsuitable for bit-banging, though.
        There’s PORT.DLL for homebrew projects:
        https://www.b-kainka.de/schnfaq.htm
        And PortTalk. Porttalk.sys (porttalk22.zip) enables direct i/o to old, unmodified applications.
        So it’s possible to have classic programs having access to, say, LPT, COM or Gameport.
        Or PC-Speaker.

        1. These things gave you back what you already had with Win98 but in a limited way because they were tunnelling through the new abstraction to present an interface that was like the previous direct hardware access but it was incomplete.

          It the time, for me the issue was direct access to floppy controller registers. With WIn98 you could write non-standard floppy formats right from the command line with switches on the format command /N:sectors /T:tracks /1 /2 sides. On XP you could get to some registers buy tunnelling through the new abstraction and after XP/2000 it’s couldn’t be done. The only remaining resort was custom hardware with a custom driver over a USB port.

          I used to do this to transfer floppies from the windows machine to a retro-computer (Amstrad CPC 6128).

          Now even floppies are to expensive so I have a SD floppy emulator with WiFi on the retro computer and I drop files onto the retro SD floppy from my WIn 10 machine via WiFi or vise versa. At the moment I am having problems with games that had their own code to read the floppy as they are addressing the real hardware floppy instead of the SD floppy. So I might have to redesign so I plug into the real floppy cable instead of the expansion port.

          1. “It the time, for me the issue was direct access to floppy controller registers. With WIn98 you could write non-standard floppy formats right from the command line with switches on the format command /N:sectors /T:tracks /1 /2 sides. On XP you could get to some registers buy tunnelling through the new abstraction and after XP/2000 it’s couldn’t be done. The only remaining resort was custom hardware with a custom driver over a USB port ”

            Note that Win9x was a floppy killer, though.
            It was notorious for “damaging” historical floppy disks if the write-protect switch wasn’t set correctly. Windows 2k/XP by comparison, didn’t do that. It behaved.

            Personally, I’d rather use Windows 3.1+WinImage 3 on an old PC do read/write diskettes thus. It doesn’t look for Icons inside executables, also, like Windows 9x Explorer does.

            “The ‘IHC’ signature is most likely the first three letters of ‘CHICAGO’ (codename of Windows 95) in reverse order. Windows 9x by default rewrites the OEM identifier in the boot sector of every floppy disk that it accesses, even if the access is something as simple as listing directory contents. ”

            More information here:
            https://www.os2museum.com/wp/the-ihc-damage/

      2. “Then when there was not much software using LTP and COM ports any more, most manufacturers removed them from their main board designs. ”

        More times than not it was a connector on the MB. They didn’t use the full connector, just something one could plug a cable into and run out to a bracket.

        1. That’s right. There are still motherboards being made with those headers. Alternatively, COM and LPT ports can still be installed as expansion cards via PCI or PCI-e.

          The problem “merely” is to find DOS compatible models that have DOS utilities, so that DOS programs can see these cards on their old positions (say 378h, 3F8h etc).

          For Windows stuff, that’s less of an issue. Windows can either simulate older port addresses to DOS/Win programs or access these models at their modern addresses.

          1. That’s the problem, the windows simulation of the old hardware only goes as far as allowing you to create windows/dos standard formats *only*.

    3. If the software can run with Hercules, textmode or CGA, 704 or 736KB of conventional memory are possible.

      There are utilities from the ’80s, like 704K, that make memory appear as conventional memory.

      To actually provide that memory, either an UMB card (Lo-Tech 1MB card etc) or a generic VGA card are necessary.

      The video memory of a VGA can be used to provide the memory trough VIDRAM, an utility that once was part of QRAM.

      https://forum.vcfed.org/index.php?threads/ram-736kb-on-ibm-pc-5150.77047/

      PS: Technically, up to 900KB of conventional memory are possible on a DOS system. But then, a small BIOS and a serial connection via CTTY would be needed. Also, an original Hercules Monochrome Card coul be used as a little UMB provider. The utility was called umbherc.sys. May not work with clone cards.

  4. It’s cool to see another ATX board for the 8088, but I do wish somebody would make one for the 8086, by the late eighties the price of that CPU had dropped so much manufacturers were throwing them in all the budget PCs and so a lot of us have very fond memories of that era of PC gaming/usage.

    1. 8086 in PCs? I doubt that very much. I even doubt they’re compatible with all the support chips needed (though it might be some replacement single-chip chip set replacement could handle them).

      1. It certainly was done. As I recall, there was a Compaq PC clone with an 8086. It just needed some extra hardware so an 8086 16-bit access was broken into two 8-bit operations.

        I designed one myself. It was marketed as the H-1000; a replacement CPU board for the Heath H89/Z90 computers. It had both a 4 MHz Z80 (for H89 compatibility) and an 8 MHz 8086 CPUs (for PC compatibility) on the same bus. Memory accesses were 16-bit for the 8086, and 8-bit for the Z80. There was extra hardware to funnel 8086 16-bit accesses to 8-bit to talk to the peripheral chips. The setup was good enough to boot and run a stock PC-DOS floppy.

  5. I wonder about the power distribution on the boards, no ground planes, the +5 V traces are really thin. Even -12 V is thicker than +5 !. I’d have thought that for a multi-card system you need buffers on all your address lines, the ’88 card misses some on A8-A15, I see plenty of space to put another ‘573 chip there. I like the project very much.

    1. It could be (hopefully) a four layer board.

      Newer chips don’t drain that much current but if you plug in an old board or two from that era then you definitely need large trace widths for power.

    2. I’ve watched a few of the YouTube videos, they are leaning this as they go. They are moving really fast and at each stage learning just enough to get to the next stage. The first board didn’t even have any decoupling capacitors.

      I think it’s an exciting way to do things and learn something new

Leave a Reply to RW ver 0.0.3Cancel 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.