Page 1 of 1

Some fun with CP/M 2.2

PostPosted: August 9th, 2014, 9:43 pm
by AltairClone
The most common (if not the only) version of CP/M 2.2 for the Altair that can still be found among vintage computing hobbyists is the “Burcon” version released in 1980. Burcon was a computer store in the Houston area that sold Altair computers. Burcon CP/M is on the disk images in the CP/M 2.2 folder on the Altair Clone support page.

The Burcon version of CP/M is common today, not because of widespread distribution in the early 1980's, but because most everyone who has presently has a copy of CP/M 2.2 for the Altair obtained it directly, or indirectly, from the same computer hobbyist within the last decade or so. Lifeboat Associates, a large software distributor at the time, released CP/M 1.41 for the Altair in 1979 and released CP/M 2.2 for the Altair in 1981. Based on the people who originally had copies of Burcon CP/M, it is likely that Lifeboat CP/M 2.2 is a re-branding of Burcon CP/M 2.2, or just a minor revision. While copies of Lifeboat CP/M 1.41 are not hard to find today, I have yet to see a copy of Lifeboat CP/M 2.2. If anyone runs across it, I'd love the chance to archive it!

If you've been using CP/M 2.2 on the Altair Clone, you've been running the Burcon version of CP/M 2.2. The disk layout used in Burcon CP/M duplicates the disk layout used in Lifeboat CP/M 1.41. This means the disks, at least in terms of copying files, are interchangeable between the two versions of CP/M. However, the disk layout - specifically the sector skew - was not chosen wisely for optimum performance of most CP/M applications.

After 34 years, I decided it was time to fix what was wrong with Burcon CP/M 2.2 and give the Altair a kick in the pants! CP/M version 2.2b is an update of Burcon CP/M 2.2 that provides substantial speed improvements along with a couple additional features:

  • Compared to Burcon CP/M, version 2.2b loads CP/M programs in less than half the time. Any program with substantial disk I/O will run 20%-50% faster. By using track buffering to optimize disk access, no changes were required to the sector skew versus Burcon CP/M disks, so version 2.2b can interchangeably read and write Burcon (and Lifeboat CP/M 1.41) disks.

  • Version 2.2b provides a full implementation of CP/M’s IOBYTE feature which allows re-direction of logical CP/M devices to a variety of physical devices. This allows use of serial ports in addition to just the first 2SIO port and allows programs like Kermit, which requires IOBYTE, to run properly.

  • To better support a Teletype as the console, version 2.2b automatically transmits a null after C/R when it detects a Teleltype as the console during cold boot.

It's a fun exercise to spend some time using Burcon CP/M 2.2, then switch to the updated version 2.2b and perform similar operations. The speed improvement is immediately noticeable. This speed improvement has nothing to do with modern hardware or the Clone - version 2.2b gives the exact same performance boost to a real Altair and floppy drive.

See the CP/M 2.2B folder in the CP/M 2.2 folder on the support page for more information. Feel free to contact me with any questions!


Re: Some fun with CP/M 2.2

PostPosted: November 13th, 2017, 1:08 pm
by AltairClone
I'm bumping this old thread with an update. I have uploaded a new version of track-buffered CP/M 2.2b in the CP/M section of the Support page.

CP/M 2.2b ver 2.0 is a complete re-write from scratch of CP/M 2.2b. Previous versions were created using Burcon CP/M as the starting point which contains a lot of convoluted code I was never happy with. This update also adds some new features listed below. Version 2.0 increases performance yet another 5%-20% over previous versions of CP/M 2.2b.

1) Works for either the Altair 8” or Altair Mini-Disk with conditional assembly (I also loaded the updated version into the Mini-Disk CP/M folder).

2) Disk select timeout (8” floppy only).

3) Individual sectors can be bad within a track and the remaining sectors are still accessible.

4) To improve speed, checksum calculation and stop byte validation are done on the fly as the sector is read. This is the only Altair software I know of that does this.

5) Smarter and faster error detection and recovery: Up to 12 retries per sector for all 32 sectors on a track and a possible track restore and re-seek all complete in less than three seconds.

6) Write verify is enabled by default but can enabled/disabled with the fWRTVFY bit in the MODE byte (same bit as used with Burcon CP/M 2.2).

These improvements have nothing specific to do with the Altair Clone, this version also runs on original Altair hardware and provides the same performance increase.


Re: Some fun with CP/M 2.2

PostPosted: December 23rd, 2017, 5:56 am
by cluttered
That sounds like some impressive work, to a CP/M fanboy like myself. I'll definitely be giving that a try over the next few days.

(Sorry for the late thread reply, I haven't been here in a while.)