pcjs/_posts/2016-02-06-tidying-the-project.md
2016-02-07 11:05:12 -08:00

2.1 KiB

layout title date permalink
post Tidying The Project 2016-02-06 10:00:00 /blog/2016/02/06/

The next release of PCjs (v1.20.8) is another fairly minor update. It includes basic parallel port emulation, in the form of a ParallelPort component that you include in a machine XML file with the <parallel> element, in much the same way you include the SerialPort component with the <serial> element.

I've also tidied a few things in the Devices folder. ROM images used to be stored under /devices/pc/basic/ and /devices/pc/bios/, but BASIC and BIOS ROM images aren't actually devices; they are the contents of ROM devices. So, with that in mind, I've made the following rearrangements:

  • /devices/pc/basic/ibm-basic-1.00.json => /devices/pc/rom/5150/basic/BASIC100.json
  • /devices/pc/basic/ibm-basic-1.10.json => /devices/pc/rom/5160/basic/BASIC110.json
  • /devices/pc/bios/5150/* => /devices/pc/rom/5150/bios/*
  • /devices/pc/bios/5160/* => /devices/pc/rom/5160/bios/*
  • /devices/pc/bios/5170/* => /devices/pc/rom/5170/bios/*
  • /devices/pc/bios/compaq/* => /devices/pc/rom/compaq/bios/*

This structure mirrors what was done with Machine and Video devices, where the devices are organized first by manufacturer (IBM or COMPAQ) and then by type (MDA, CGA, EGA, etc).

Here, the first ROM subdivision is either a manufacturer or a machine model. A model implies a manufacturer; for example, models 5150 through 5170 refer to IBM PC models.


The IBM BASIC ROMs require a bit more research. I'm unclear on the exact history of those ROMs, how many variations there were, or whether any of them were machine-dependent.

The project currently includes only two BASIC ROM versions, 1.00 and 1.10, which were initially released with the first model 5150 and 5160 machines, respectively. However, I've also read reports that later revisions of the model 5150 included BASIC ROM 1.10.

I believe there was also a version 1.20 released for IBM PCjr, but since PCjs does not yet emulate the PCjr, it has not been added to the project.