Oldskooler Ramblings

the unlikely child born of the home computer wars

Archive for January, 2013

Optimizing for the 8088 and 8086 CPU, Part 3: A Case Study In Speed

Posted by Trixter on January 18, 2013

In this final part of 8088 optimization posts, I present a case study for 8088 optimization. Specifically, I’ll cover a problem that I needed to solve, how I solved it, how long it took to optimize my solution for 8088, and what the performance benefit was from that optimization.

For the TL;DR crowd who will likely skip to the end of the article: Through clever 8088 optimization and a thorough understanding of our problem, a decompression routine was created that not only beats all known methods previously created for 8088, but can actually exceed the speed of a memcopy given the right input. But to see how this was achieved, you’ll have to grab a snack and settle down for 10 minutes.

Now, on with our case study.

Read the rest of this entry »

Posted in Programming, Vintage Computing | 20 Comments »

Optimizing for the 8088 and 8086 CPU: Part 2

Posted by Trixter on January 11, 2013

Welcome back to our little crash course on how to optimize code for maximum speed on the 8088 and 8086 CPU. Let’s jump right back in with a quick way to transmogrify the contents of a buffer.

Read the rest of this entry »

Posted in Programming, Vintage Computing | 9 Comments »

Optimizing for the 8088 and 8086 CPU: Part 1

Posted by Trixter on January 10, 2013

There is a small but slowly growing hobby around retroprogramming for old PCs and compatibles. This hobby has existed for decades for other platforms, as evidenced by the active demoscenes on each retro platform, but the IBM PC (and other 4.77MHz 8088 compatibles) has only recently started to gain that same sort of attention. As a public service to the 8088 retroprogramming community — “All four of you, huh?” — I’ve decided to write a crash-course on optimizing your code for maximum speed on the 8088. This information is targeted to people who already know either modern x86 assembly or assembly for other CPUs, and are programming for the 8088 or 8086 for the first time (or the first time in a long while).

Read the rest of this entry »

Posted in Programming, Vintage Computing | 28 Comments »

No love for the IBM PC

Posted by Trixter on January 9, 2013

I’ve always wondered why the IBM PC never really gained a massive retro following that the Apple II, C64, Amiga, etc. have. There was the half-assed birth of the Abandonware movement, but otherwise nothing. Where are the podcasts dedicated to old PC hardware and games? I only know of two worth watching. Where are the Kansasfests and ECCCs for the IBM PC and old compatibles? Where are the cycle-exact emulators (PCem comes very close) and pixel-clock-accurate video emulation that other platforms enjoy?  And, other than the wonderful and excellent Vintage Computer Forum, where are the forums?

I think it’s because the PC won the home computer wars. All of the other retro revivals are for platforms that most definitely ended; the PC just stayed relevant and, today, is what everyone has on their desks. Even Mac desktops run Intel hardware. So the IBM PC never really went away, and you can’t revive something that never really died.

I think the classic Mac “scene” had/has the same problem. I haven’t seen any retroware emulation compilations with classic B&W Mac software that exist for other platforms.

Posted in Vintage Computing | 15 Comments »