Adventures in BIOS Patching

As I mentioned in an earlier post I have been playing with some Turbo Pascal graphics extensions that directly access the VDP under CP/M. I generally prefer T-DOS over stock CP/M 2.2 because it supports a wider range of disk capacities and configurations, uses 40-column text mode, and it fully utilizes the memory expander for a larger RAM disk.

The problem I ran into is that these graphic extensions unfortunately don’t work in T-DOS. As I learned this is apparently because T-DOS uses video RAM to store its CCP (Console Command Processor). So… back to the standard Coleco version of CP/M 2.2 I go! Not a big problem however it is slightly inconvenient because it only supports a maximum disk capacity of 160K and only offers a 55K RAM disk regardless of how much memory your ADAM actually has.

I was reading through old issues of the N.I.A.D. newsletter (as one does) when I found a reference to a program called ABP12.COM (ADAM BIOS Patch) in Issue #36/#37. This patch was written by the programmer who would eventually go on to create T-DOS (Tony Morehen). The patch reportedly gave CP/M 2.2 the ability to use all of your expansion memory as a RAM disk and support disks larger than 160K. Perfect! The only trouble was finding it. I searched the ADAM Archive and scoured through every one of the NIAD disk images and came up empty. Cue Milli…

I wrote a post on the SmartBASIC forum about my search and before long Milli came through with a link to an archive that contained ABP10.COM which would suggest that it was version 1.0 of the program I was looking for. It unfortunately didn’t do everything the article suggested however it did offer a 61K RAM disk which is a very slight improvement. Fast forward a few more days and Milli replied again – this time with a link to an archive containing a copy of ABP26.COM!

ABP26.COM seemed to offer everything I was looking for! Support for 720K disks? CHECK. Compatible with the TP graphics extensions? CHECK. Larger RAM disk? ALMOST. The program seems to have a bug that freezes up CP/M when you try to access a RAM disk larger than 128K. My ADAM has 256K so this was obviously a problem. Luckily, the archive Milli directed me to also contained a copy of ABP25.COM. I gave that version a try and… presto! ADAM CP/M bliss. Now I have access to 246K of RAM disk that will persist between soft resets (awesome) and I’m able to use a 720K disk for my work which is plenty of room (compared to 160K). This makes programming using the graphics extensions so much more enjoyable!

ADAM BIOS Patch v2.5 Screenshot