Posts

Showing posts from August, 2023

The 8088MPH CPU Test

Image
Much has been written about the PC demo 8088MPH .  If you haven't seen this demo yet, take a moment to watch it.  If you're familiar at all with the IBM PC, you will immediately understand why this demo is so impressive.  If not, consider that the IBM PC was a very limited, business oriented machine not designed for fancy graphics, and its optional CGA graphics adapter was best known for producing 4 garish neon colors at maximum. 8088MPH has become something of a PC emulator accuracy litmus test in the ensuing years since its release, and the gauntlet begins before the demo even shows a single effect. 8088MPH performs a CPU speed test when it starts, and if your CPU fails to complete it in exactly the same time as an 8088 CPU at 4.77Mhz should, you are greeted with this: 8088MPH CPU Test from DOSBox-X 0.83.24, @240 cycles/ms Whereas if you pass, you are greeted with a brief pat on the back before the demo begins automatically: MartyPC 0.1.4 passing the test The 8088MPH CPU test

The 8088 Prefetch Algorithm

Image
⚠ This post is now outdated. Although the logic described here will correctly model the externally observed behavior of the 8088, it has been replaced by a far simpler model of the 8088 bus logic described here . I am leaving this post up for reference, but the logic described here should not be used to develop an 8088 emulator. Preface Much of the terminology used in this post is my own. It may not match other resources or official references. The algorithm described here may not be identical to the actual prefetch algorithm of the 8088 in all scenarios; it's difficult to test every corner case. This information is provided for the benefit of emulator authors and curious geeks, but comes with no guarantees.  Before we get started, I would recommend taking a read through  Ken Shirriff's blog post on the 8086 prefetch circuitry .  I was already deep into research on the prefetch algorithm of the 8088 when this blog post appeared. He came to many of the same conclus