Watch on YouTube: https://www.youtube.com/watch?v=Y7NNCWvt1nY
My Maxed Out IBM 5150 PC With 7.16MHz Overclock, EGA & Ethernet
In this video, I explore my upgraded IBM 5150, the first DOS PC. I show how to get EGA graphics on a CGA monitor, how to capture the video output in the best possible quality (including PC speaker audio), how I connect this PC to my home network to transfer files, and also a DIY overclocking solution called the PC-SPRINT.
This video was created as part of DOScember, a collaboration between retro tech YouTubers celebrating all things MS-DOS!
Hey everyone, Rees here, and welcome to another DOScember episode of ctrl-alt-rees. DOScember is a collaboration between a group of retro computing YouTubers, and if you haven’t guessed it yet, the theme is all things DOS. I’ll link the official playlist and the participating channels in the description.
So for this final DOScember video I thought - why not go back to DOS’s roots. The machine that started it all. The machine that shipped with Microsoft and IBM’s PC-DOS 1.0, the OS that grew into the MS-DOS that we all know and love.
I’m talking of course, about the IBM 5150, and specifically how I’ve modified mine with various upgrades, including a DIY overclocking solution, hooked it up to my home network, and upgraded the graphics and sound to make it a really easy and fun machine to use, even as it enters its 40th year.
Of course, I’ll be checking out some early DOS games and other software as well.
The iconic IBM 5150 Personal Computer. Released in 1981, this simple beige box, built around unremarkable off the shelf components, would go on to revolutionise desktop computing, shaping its direction for the next 40 years (and counting), for better or worse.
In fact, if you’re watching this video on a laptop or desktop, and it’s not one of those fancy new ARM-based Apple devices or Chromebooks, it’s probably safe to say that you’re watching on a direct descendant of this very machine.
Released back in 1981 and starting at around $1500, or $4000 in today’s money, the 5150 was available with a monochrome or CGA graphics card, twin 160K floppy drives, and initially, 16K of RAM. It featured Microsoft BASIC in ROM, and IBM PC-DOS 1.0, a version of 86-DOS initially licensed from Seattle Computer Products and then taken under the collective wings of Microsoft and IBM, and co-developed into the MS-DOS and PC-DOS that would go on to dominate the “IBM compatible” PC market until it was finally killed off, in the mainstream market at least, with Windows XP in 2001.
It was certainly a good 30 year run.
But I’m not really here to talk about the history of the 5150 itself, a path that has been very well trodden over the years. I’d like to talk about my 5150, how I came to acquire it here in the UK, what I did to get it up and running again, and those upgrades and modifications that I mentioned at the start of the video.
As you can see, the outside is all pretty standard stuff, with a 5153 CGA monitor, twin floppy drives, and that lovely, tactile, Model F buckling spring keyboard.
But it’s on the inside where things get interesting - so lets take a look.
So this layout should look familiar to anyone who’s taken the cover off of a PC before, but of course that had to start somewhere - and it started here. One thing that really surprised me about this machine is how solid and well built it is, especially compared to cheap cases from the 90s and early 2000s that I’ve worked on.
A bit of a double edged sword then considering I imported this machine from the US. It survived the journey unscathed due to its tank-like build quality, but of course cost a fair bit in shipping due to the weight. The thing is, the UK had a well established home grown computer market in the 80s and so PCs were a bit slower to catch on here, and by the time they did local companies like Amstrad were churning them out much cheaper, so the IBM just didn’t sell well at all, despite a huge number being manufactured in Scotland and Ireland.
UK models hold their value very well in the collectors’ market, and with piles of these things taking up space in US recycling centres, sometimes importing is actually the cheaper option. Just be wary of the power supply voltage, and use a step down transformer or gut the original PSU and fit something suitable inside.
Speaking of that power supply, this one’s physically bigger than what eventually became the AT standard but the connectors are the same. This is the original 110V 63.5W unit, and I use it with a stepdown transformer. It provides 2 4-pin molex connectors and the standard 2 part AT motherboard power connector.
There are two buttons here which aren’t standard, they’re part of one of my upgrades and I’ll get to those in a moment.
At the front of the machine on this side there are 2 5.25” floppy drives manufactured by Tandon. Mine do work although to be honest I very rarely use them, they could probably do with a service actually. As this is a later machine, these are the TM100-2 drives, which are double sided and have a capacity of 160K per side or 320K per disk.
There are 5 expansion cards fitted, which I’ll go over in a second, and down here is the 256KB of RAM, which consists of 4 banks of 8 16-pin 4164 chips, which is the maximum this second revision motherboard can accept.
When I got the machine it was displaying a RAM error, which is why it was being sold for next to nothing. After some troubleshooting I narrowed it down to a couple of chips in the first, soldered bank of RAM, so I desoldered the whole lot and fitted new chips in sockets.
At the back here is a bit of a mess of power cables I’ve spliced together to power everything. I made this as a plug in extension rather than modifying the original wiring. Another interesting thing I’ve added is this 5V breakout which is used to power part of my video capture setup, which I’ll show you now.
So plugged into the graphics card via a 9-pin Y splitter cable is this device called a CGA2RGB v2, made by GG Labs. It takes the 5V TTL signals used by the early IBM monitors and turns them into analog RGB signals, which I use with my video capture setup. Of course it can also be used to hook this machine up to a more modern monitor, providing it can handle a 15KHz input. It requires 5V to work, so I spliced in a power cable and ran it out through a convenient hole in the back of the graphics card.
I’ll just get this wiring out of the way so we can get a better look in here…
So in this slot I have an XT-IDE, which is a modern IDE interface, with a CompactFlash to IDE adapter plugged into that with a 512MB card, which is more than adequate for a machine of this age - it’s about 20 times the size of a typical hard disk that would’ve been fitted back in the day so plenty of space.
Incidentally I chose this over the more convenient type where you can remove the card through the back plate because it freed up some space for another little modification that I’ve fitted, which I’ll talk about in a second.
Just before we get into that, I’ll just point out that we can now see the CPU, which is an NEC V20, this was originally an Intel 8088 when I got the machine but I’ve fitted this as it performs much better, also this one can be overclocked. There’s also the 8087 FPU here, which isn’t entirely necessary for my needs but it fills a slot.
This is a maths co-processor that was only supported by a handful of professional software, I’ll put a link to the page on my website where I’ve been compiling a list down in the description.
Now you can see those AT power connectors a bit better, and below those there’s a very interesting little overclocking mod that I had fabricated by PCBWay. I’ll get some more bits out of the way before we have a look at that.
So back on to this slot and the mysterious wire and connector I’ve fitted here. This is actually a very basic circuit that taps into the PC speaker and turns the 5V square wave into something resembling a line level output so I can capture that too. That just outputs to a standard 3.5mm socket so it’s very easy to hook up.
Now we’ll take a closer look at these expansion cards, starting with the floppy controller.
This is the standard IBM floppy controller card which shipped with the machine, it supports two internal drives as well as an external unit via this big d-sub connector on the back. To be honest, I rarely use the floppy drives but I like to keep it in here just for originality.
The next card is the network card, and before I can pop that out I need to remove the AUI to ethernet transceiver module on the back. So as you can see, this module has the familiar ethernet port on one end, in this case 10BaseT. This plugs straight into my gigabit switch with all my modern equipment with no issues at all. On the other end it has a 15-pin AUI or Attachment Unit Interface connector, which is a standard that isn’t around anymore of course as modern cards have the ethernet transceiver onboard.
The network card itself is a 3com Etherlink II. It has a socket on the back for an optional ROM which this one doesn’t have installed. As you can see, things like the IRQ and IO port are configured using these jumpers as this card was very much pre plug and play. On the back there’s the coax connector, which is what the vast majority of those early networks would’ve used, and that aforementioned AUI connector.
Next up is a very popular multifunction upgrade card made by AST called the SixPakPlus. Which reminds me, I really need to get the correct real time clock battery for this. Anyway, in addition to the real time clock, as you can see this card has some more of those 4164 RAM chips on board, for up to 384K total. In conjunction with the 256K on the motherboard, this brings us to our maximum of 640K, which should be enough for anyone. This card also provides a 25-pin serial port, so it’s a very useful thing in a system with a limited number of slots like this one.
Finally there’s the graphics card.
Oh! Just before I take this out, I just want to point out how long this thing is. Earlier computer cases had these slots at the front to secure these longer cards, which were eventually phased out as things were miniaturised.
So perhaps the most obvious thing about this IBM EGA card is the RAM expansion that’s been fitted. It has 64K on board, but the fully populated expansion daughterboard adds a further 192K which gives us the full range of resolutions and colours. Unfortunately I only have the 5153 monitor so I don’t get to take advantage of those, but it’s very rare for early games to use them anyway.
Output is via a 9-pin d-sub connector, and the monitor type is configured using these DIP switches on the back. When configured to use an IBM 5153, as mine is, it actually enables some enhanced graphics modes that basically allow EGA games to be used on a CGA monitor, which is very useful as the 5154 EGA monitor is very rare. I’ll demo some of those later in this video, and I also covered this setup in more detail in an earlier video, which I’ll link to up above and down below in the description.
Incidentally, I was very lucky to find this card complete in its original box after having previously tracked down a CGA card, as well as the monochrome MDA card that came with this machine. Which means I have the complete set!
So with those cards out of the way we can get a better look at the PC speaker and that DIY audio output circuit.
These 5 62-pin connectors are what IBM referred to as the PC bus, of course you’ll probably recognise them as 8-bit ISA slots, but the term ISA, or Industry Standard Architecture, didn’t come along until later when IBM compatible clone machines started to appear. Some people feel very passionately about that distinction for some reason, so I thought I’d point that out.
So earlier I mentioned these two buttons. One of them is a momentary switch and one is latching, and these are something that I added. I decided to mount them in the back so as not to change the look of the front of the machine, and I put them in this position above the power supply to make it easy to reach around and press them when sat in front of it.
Those switches connect to this, a device called a PC-SPRINT, which is an early DIY overclocking solution designed by a chap called Doug Severson and shared in PC magazines and on BBSes back in 1985. It provides an additional Intel 8284A clock chip and crystal to provide a higher clock for the CPU, and plugs in in place of the original 8284A. In my case that’s a 21.47MHz crystal, giving a clock speed of 7.16MHz, which is nearly 50% faster than the standard CPU clock of 4.77MHz and gives a really nice performance boost while still keeping things stable and usable.
So the two buttons on the back of the case are turbo and reset buttons. Incidentally, I will demo this later in the video, but I also put together a more detailed video earlier this year about the PC-SPRINT and how it works, which I’ll link in the usual places. I’ll also put a link to all of the other info I have on this mod down in the description.
Finally I just wanted to point out the DIP switches on the motherboard. Things like graphics card type, amount of RAM installed and the number of drives which would later be configured in some kind of BIOS are actually set by toggling these.
Simple but effective - if you have the manual.
So lets get this thing put back together and have a look at what it can do.
So booting it up we see the XT-IDE BIOS which autodetects that CompactFlash card. It also has some basic features like swapping the floppy drives around and booting from other drives, and booting from ROM.
There’s also a very lightweight packet driver for the network card.
The date and time are displayed, this is of course coming from the realtime clock on that SixPakPlus card. I’m using a modified utility here that’s millennium compliant, so even on this old PC it’s possible to set the correct year in 2020.
Finally you can see that I’m running PC-DOS 7 revision 1, or PC-DOS 2000 as it’s more commonly known.
You may think that this is a bit of an odd choice for such an old machine, but the memory footprint is actually in the same ballpark as DOS 3.3, while providing lots of newer utilities and support for useful things like bigger partitions.
Of course, it’s also made by IBM, so seems very fitting for this machine.
Incidentally, on the subject of the memory footprint, I actually started doing some testing with various different DOS versions to try to get some hard and fast figures, but that’s still ongoing and I didn’t want it to hold this video up. Hopefully I’ll have something up on my website soon, but for now you’ll have to take my word for it.
What I can tell you is that, if I run the chkdsk command, we’re showing 585,104 of 655,360 bytes free, and that’s with the network driver loaded. So far I haven’t managed to run out of RAM with anything I’ve tried to run on this machine, and of course I can always disable that network card driver to free up a little bit more if I need to.
There are some solutions to add more than the supposed upper limit of 640K RAM, in fact The Oldskool PC did a really great DOScember video on it that I’ll link to in the description. But to be honest, I have later machines for anything more demanding anyway so it hasn’t proven to be a problem.
One thing I just wanted to very quickly mention is my video capture setup - I’ll be putting together a video on this at some point but I imagine I’ll get questions about it like I always do. For this PC, I’m using that CGA2RGB I showed in the teardown, hooked up to an OSSC in 4x line multiplying mode, which bumps up the resolution to 1280x960. I then capture this over HDMI with my StarTech USB3HDCAP. As you can see, it gives a very clean picture.
So, onto networking, and how I transfer files to and from this machine.
I use a set of utilities called mTCP by Michael Brutman, which is a very lightweight free open source software networking suite for DOS, that provides DHCP, FTP client and server, an HTTP server, TELNET and a few other useful things. It runs on an 8088 CPU, DOS 2.1 and as little as 96KB of available memory, so it’s absolutely ideal for this machine.
So first I need to get an IP address, which is as simple as running the DHCP command. Then I connect to a ProFTPD server running on my NAS. Once it’s connected, I can browse around like any other command prompt, as a test I’ll copy over a game just to show how it works.
Incidentally, Mr Lurch showed a slightly more convenient approach in one of his DOScember videos, where he actually runs the FTP server on the machine itself. I didn’t really think to do that when I set this up a few years back, but I’ll probably change to that setup in future.
So just before I copy the files, I’ll switch into binary mode so the executables don’t get messed up, and I’ll also turn off prompting for individual files. And away we go!
So now we can see the files on the local hard disk, I’ll just run it to make sure it’s all copied across OK. [typing in dir]
And as you can see, it works!
Now this is a great opportunity to show off two of the other upgrades that I have in this machine - the first one being that EGA card. You see, with the official IBM Enhanced Graphics Adapter card and the right DIP switch settings, it’s possible to basically output EGA on this 5153 CGA monitor. And that’s incredibly useful because these monitors are so much cheaper and more common these days.
CGA basically only let developers use one of 4 predefined palettes of 4 colours from an overall palette of 16, while EGA gave them any 16 they wanted from a palette of 64, so it was a huge improvement.
The reason it was possible to display some EGA modes on a CGA monitor is because they both used TTL for signalling, and EGA graphics modes 0dh and 0eh (or 13 and 14) actually ran at a resolution and refresh rate that CGA monitors could display, and it turns out that these are the modes that most EGA games at the time used anyway.
It was just a case of graphics card manufacturers choosing to allow this - and in IBM’s case at least, they did.
The later Keen games didn’t rely on John Carmack’s groundbreaking EGA scrolling routines and therefore were actually available in CGA editions, but I think playing them for any length of time would genuinely give me a migraine. Unfortunately I just have no nostalgic love for the CGA colour palette.
Prince of Persia, another favourite of mine, is a similar story, although I actually don’t think it’s quite as bad.
The other upgrade I want to talk about is this - the PC-SPRINT, and as I mentioned before it was a DIY overclocking solution. The machine needs a higher clocked CPU, preferably an NEC V20, and a higher clocked 8087, both of which I have.
In gameplay the turbo mode makes a massive difference, for a start, speeding up loading times…
Also in game, it provides a very nice bump to the framerate, meaning that some later 286 era games are perfectly playable on this system.
In the Check-It PC benchmarking tool I get a 50-55% speed increase pretty much across the board in turbo mode, and that’s on identical hardware. The performance of the V20 CPU is already better than the original 8088 it replaced. It’s just a case of getting a board fabricated and populating it with around £6 worth of components.
If you’d like to do just that, I’ll link to the GitHub I created with all of the details down below in the description.
Finally, I just wanted to talk about soundcards, and why this machine doesn’t have one. I do have an old Amstrad AdLib clone with a genuine OPL2 chip on it, and I have tried it out in here and… Well, I think the overhead is just a little too much for the CPU and it does have a massive impact on performance.
I also tried a parallel OPL3LPT but it was a similar story there. Ultimately I have my 486 if I want to play those later games so it’s not too much of a hardship.
So I hope you enjoyed checking out my PC. DOScember is over for 2020, and loads of creators have put out loads of really great videos, so be sure to check out the playlist link below.
Also if you’re interested in learning a bit more about my EGA setup or the PC-SPRINT, I’ll link to the two 5 minute retrofair videos I put out earlier in the year.
So finally thanks very much as always for joining me, and I hope I’ll see you around.
Original Video Links
GGLabs CGA2RGB: https://gglabs.us/node/2063
XT-IDE Interface: https://www.glitchwrks.com/xt-ide
8087 Software Compatibility List: https://ctrl-alt-rees.com/2019-06-06-list-of-software-that-utilizes-intel-8087-math-coprocessor-fpu.html
PC Speaker circuit: http://www.oldskool.org/guides/speakerrecording
Y2K Compliant SixPakPlus Utility: http://minuszerodegrees.net/rtc/rtc.htm
PC-SPRINT GitHub: https://github.com/reeshub/pc-sprint
EGA on CGA: https://youtu.be/pmJoILDevDc
PC-SPRINT 8088 Overclocking: https://youtu.be/8oWyogPZ7Bw
The Oldskool PC 640K RAM: https://www.youtube.com/watch?v=Xcc_D7q9bQs
Mr Lurch’s Compaq (mTCP): https://www.youtube.com/watch?v=bx__XH6QeAk
#DOScember official playlist:
#DOScember Participating Channels:
Adrian’s Digital Basement: https://www.youtube.com/AdriansDigitalBasement
Jan Beta: https://www.youtube.com/JanBeta
Josh Malone: https://www.youtube.com/JoshMalone_48kRAM
Mr Lurch’s Things: https://www.youtube.com/MrLurchsThings
Noel’s Retro Lab: https://www.youtube.com/NoelsRetroLab
Tech Tangents: https://www.youtube.com/AkBKukU
The 8-Bit Guy: https://www.youtube.com/adric22
If you liked this video please consider subscribing to ctrl.alt.rees on YouTube!