Performance of the 8088 on PC, PCjr and Tandy 1000

It’s well-known that you should measure the performance of your code, and not rely only on the opcode’s “cycle counts”.

But how fast is an IBM PC 5150 compared to a PCjr ? or to a Tandy 1000? or how fast is the Tandy 1000 HX in fast mode (7.16Mhz) compared to the slow mode (4.77Mhz) ? Or how fast is a nop compared to a cwd ?

I created a test (perf.asm) that measures the performance of different opcodes and run it on different Intel 8088 machines. I run the test multiple times just to make sure the results were stable enough. All interrupts were disabled, except the Timer (of course). And on the PCjr the NMI is disabled as well.

Without further ado, here are the results:

Continue reading “Performance of the 8088 on PC, PCjr and Tandy 1000”


IBM PCjr: Zero-day Data-destroy vulnerability

An IBM PCjr with two joysticks. That’s all you need to destroy your data

IBM PCjr zero-day data-destroy vulnerability (AKA: Joykill).


This vulnerability allows local and remote attackers to destroy the contents of the floppy diskette. User interaction is required to exploit this vulnerability. The issue results from the lack of proper validation when starting the manufacturing system test.

Exploit (local):

Continue reading “IBM PCjr: Zero-day Data-destroy vulnerability”

IBM PCjr BIOS dump

IBM PCjr BIOS dump

The IBM PCjr BIOS is very well documented in the IBM PCjr Technical Reference manual (a must read for every PCjr developer).

The only problem is that navigating that code is not easy. It has all the problems from scanned books:

  • the fonts don’t look good
  • no hyper-links
  • and difficult to search

So I dumped the BIOS and started analyzing it with IDA Pro – Free version. I added some of the original comments from the Technical Reference manual, and added some comments of my own.

If can browse it using either:

Or just clone the project from github:

This is still Work-in-Progress. I add comments in “let’s see how this portion of the BIOS work“-basis.


BTW, the Tandy 1000HX BIOS dump is here:

Update: Updated links

Tandy 64, and intro for the Tandy 1000 and more

With PVM with released an intro for the Tandy 1000 HX.

The Tandy 1000 HX uses the Intel 8088-2 CPU. Which is a suuuuper slow CPU (slower than the 8086). With all its wait states and its limitations on the video card (no hardware sprites, no charset redefinition) it makes it comparable with a Commodore 64. In fact, for certain things a Commodore 64 if way faster.

Without further ado, this is the Tandy intro:

Source code here:

And we’ve just released another chipdisk, this time with Brazilian music:

Source code:


Commodore 64 Assembly Tutorial – Part II

A few months ago we (Pungas de Villa Martelli) released the 4Kindness, a 4K intro for Silesia Party 8. And recently we released its source and a tutorial detailing how we built it.

Without further ado, here it is:

If you have doubts/questions about it, let us know!

Commodore 64 Assembly Tutorial

A few months ago we released the Argentine Songbook Vol. 1 chipdisk. And recently we released its source code including:

  • Full source code (the assembly files + makefiles + everything…)
  • Full audio sources (the SidWizard files)

And we also wrote a tutorial about how write a chipdisk, including all the tricks that we used.

If you have doubts/questions about it, let us know!