64K RAM Ought to be Enough: a demo for the PCjr

Updated 2018–10–08

A demo for the IBM PCjr by Pungas de Villa Martelli. It was presented at Flashparty 2018 and won the Demo category.

Requirements

An IBM PCjr with at least 64k RAM.

Download

Technical description

The demo is divided in the boot loader and demo 3 parts

Boot loader

Boot loader
Boot loader

The demo is intended to work with a 64K RAM (or more) PCjr. Booting from its own boot loader is needed to save precious memory. DOS alone takes ~20K of RAM. That is 30% of the total memory. You don’t want to waste that memory.

Continue reading “64K RAM Ought to be Enough: a demo for the PCjr”

Advertisements

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).

Description:

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: https://github.com/ricardoquesada/bios-8088/tree/master/ibm_pcjr

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: https://github.com/ricardoquesada/bios-8088/tree/master/tandy_1000hx

Update: Updated links