NEC V20: The Original PC Processor Upgrade

In the early 1980s, there was the IBM PC, with its 4.77 MHz Intel 8088 processor. It was an unexpected hit for the company, and within a few years there were a host of competitors. Every self-respecting technology corporation wanted a piece of the action including processor manufacturers, and among those was NEC with their V20 chip and its V30 sibling. From the outside they were faster pin-compatible 8088 and 8086 clones, but internally they could also run both 8080 and 80186 code. [The Silicon Underground] has a look back at the V20, with some technical details, history, and its place as a PC upgrade.

For such a capable part it’s always been a surprise here that it didn’t take the world by storm, and the article sheds some light on this in the form of an Intel lawsuit that denied it a critical early market access. By the time it was available in quantity the PC world had moved on from the 8088, so we saw it in relatively few machines. It was a popular upgrade for those in the know back in the day though as it remains in 2025, and aside from its immediate speed boost there are a few tricks it lends to a classic PC clone. The version of DOS that underpinned Windows 95 won’t run on an 8086 or 8088 because it contains 8016 instructions, but a V20 can run it resulting in a much faster DOS experience. One to remember, if an early PC or clone cones your way.

Hungry for the good old days of DOS? You don’t need to find 80s hardware for that.

Remembering More Memory: XMS And A Real Hack

Last time we talked about how the original PC has a limit of 640 kB for your programs and 1 MB in total. But of course those restrictions chafed. People demanded more memory, and there were workarounds to provide it.

However, the workarounds were made to primarily work with the old 8088 CPU. Expanded memory (EMS) swapped pages of memory into page frames that lived above the 640 kB line (but below 1 MB). The system would work with newer CPUs, but those newer CPUs could already address more memory. That led to new standards, workarounds, and even a classic hack.

XMS

If you had an 80286 or above, you might be better off using extended memory (XMS). This took advantage of the fact that the CPU could address more memory. You didn’t need a special board to load 4MB of RAM into an 80286-based PC. You just couldn’t get to with MSDOS. In particular, the memory above 1 MB was — in theory — inaccessible to real-mode programs like MSDOS.

Well, that’s not strictly true in two cases. One, you’ll see in a minute. The other case is because of the overlapping memory segments on an 8088, or in real mode on later processors. Address FFFF:000F was the top of the 1 MB range.

PCs with more than 20 bits of address space ran into problems since some programs “knew” that memory access above that would wrap around. That is FFFF:0010, on an 8088, is the same as 0000:0000. They would block A20, the 21st address bit, by default. However, you could turn that block off in software, although exactly how that worked varied by the type of motherboard — yet another complication.

XMS allowed MSDOS programs to allocate and free blocks of memory that were above the 1 MB line and map them into that special area above FFFF:0010, the so-called high memory area (HMA). Continue reading “Remembering More Memory: XMS And A Real Hack”

Remembering Memory: EMS, And TSRs

You often hear that Bill Gates once proclaimed, “640 kB is enough for anyone,” but, apparently, that’s a myth — he never said it. On the other hand, early PCs did have that limit, and, at first, that limit was mostly theoretical.

After all, earlier computers often topped out at 64 kB or less, or — if you had some fancy bank switching — maybe 128 kB. It was hard to justify the cost, though. Before long, though, 640 kB became a limit, and the industry found workarounds. Mercifully, the need for these eventually evaporated, but for a number of years, they were a part of configuring and using a PC.

Why 640 kB?

The original IBM PC sported an Intel 8088 processor. This was essentially an 8086 16-bit processor with an 8-bit external data bus. This allowed for cheaper computers, but both chips had a strange memory addressing scheme and could access up to 1 MB of memory.

In fact, the 8088 instructions could only address 64 kB, very much like the old 8080 and Z80 computers. What made things different is that they included a number of 16-bit segment registers. This was almost like bank switching. The 1 MB space could be used 64 kB at a time on 16-byte boundaries.

So a full address was a 16-bit segment and a 16-bit offset. Segment 0x600D, offset 0xF00D would be written as 600D:F00D. Because each segment started 16-bytes after the previous one, 0000:0020, 0001:0010, and 0002:0000 were all the same memory location. Confused? Yeah, you aren’t the only one.

Continue reading “Remembering Memory: EMS, And TSRs”

Making Intel Mad, Retrocomputing Edition

Intel has had a deathgrip on the PC world since the standardization around the software and hardware available on IBM boxes in the 90s. And if you think you’re free of them because you have an AMD chip, that’s just Intel’s instruction set with a different badge on the silicon. At least AMD licenses it, though — in the 80s there was another game in town that didn’t exactly ask for permission before implementing, and improving upon, the Intel chips available at the time.

The NEC V20 CPU was a chip that was a drop-in replacement for the Intel 8088 and made some performance improvements to it as well. Even though the 186 and 286 were available at the time of its release, this was an era before planned obsolescence as a business model was king so there were plenty of 8088 systems still working and relevant that could take advantage of this upgrade. In fact, the V20 was able to implement some of the improved instructions from these more modern chips. And this wasn’t an expensive upgrade either, with kits starting around $16 at the time which is about $50 today, adjusting for inflation.

This deep dive into the V20 isn’t limited to a history lesson and technological discussion, though. There’s also a project based on Arduino which makes use of the 8088 with some upgrades to support the NEC V20 and a test suite for a V20 emulator as well.

If you had an original IBM with one of these chips, though, things weren’t all smooth sailing for this straightforward upgrade at the time. A years-long legal battle ensued over the contents of the V20 microcode and whether or not it constituted copyright infringement. Intel was able to drag the process out long enough that by the time the lawsuit settled, the chips were relatively obsolete, leaving the NEC V20 to sit firmly in retrocomputing (and legal) history.

The Book8088 Gets A Post-Hype Review

Last year, a couple of rather unusual computers emerged from China: a 386sx-based palmtop and an 8088-based mini-laptop. The average person isn’t exactly clamoring for a DOS machine these days, but they attracted quite a bit of interest among the retrocomputing scene. Now the dust has settled, [The Retro Shack] has taken a Book 8088 and given it an honest review. Do you need portable 1980s computing in your life, and if so it this the machine to give you it?

The first impression of the machine is just how svelte it is, being like a small but chunky netbook. He explores the hardware and finds as expected an NEC V20 instead of the Intel part running the show, and what would have been a hugely expanded DOS PC back in the day with its VGA and sound card, not to mention a solid state hard drive.

We’re overcome with a bit of nostalgia here at the sight of DOS running Lemmings, and on a machine we’d have given anything to own back in the 1980s. His final conclusion is that it’s a very nice little PC but around $160 seems a little much for what is essentially a toy. We have sadly to agree with him though we really want one, though noting that such a machine would have retailed for a huge amount more than that in 1980s dollars and we’d have considered it a huge bargain then.

If you’re still curious, we covered the arrival of these machines last year.

Continue reading “The Book8088 Gets A Post-Hype Review”

Finally, An Open-Source 8088 BIOS

The Intel 8088 is an interesting chip, being a variant of the more well-known 8086. Given the latter went on to lend its designation to one of the world’s favorite architectures, you can tell which of the two was higher status. Regardless, it was the 8088 that lived in the first IBM PC, and now, it even has its own open-source BIOS.

As with any BIOS, or Basic Input Output System, it’s charged with handling core low-level features for computers like the Micro 8088, Xi 8088, and NuXT. It handles chipset identification, keyboard and mouse communication, real-time clock, and display initialization, among other things.

Of course, BIOSes for 8088-based machines already exist. However, in many cases, they are considered to be proprietary code that cannot be freely shared over the internet. For retrocomputing enthusiasts, it’s of great value to have a open-source BIOS that can be shared, modified, and tweaked as needed to suit a wide variety of end uses.

If you want to learn more about the 8088 CPU, we’ve looked in depth at that topic before. Feel free to drop us a line with your own retro Intel hacks if you’ve got them kicking around!

Decoding The 8088

There is a lot to like about open software, and in some areas, a well-thought-out piece of software can really make a huge impact. A great example of this is the Sigrok project. Creating simple devices that act like a logic analyzer is relatively easy. What’s hard is writing nice software for such a setup including protocol decoders. Sigrok has done it and since it is open, you can add your device and decode your protocol. [GloriousCow] had done the hardware part of interfacing to the 8088 in an IBM PC using an off-the-shelf logic analyzer that uses a customized version of Sigrok. But the output was a CSV file you had to process in a spreadsheet program. The next step: write a decoder for Sigrok to understand 8088 bus cycles.

The post covers the details of writing such a plug-in for Pulseview, the Sigrok GUI. It will also work for the command line interface if you prefer that. The code is in Python.

Continue reading “Decoding The 8088”