ADAM CP/M Software… On A Cartridge?!

William “Milli” Hicks posted a very interesting video on his 8-bit Milli YouTube channel yesterday. Using a disassembly of ADAM’s CP/M boot loader code he learned that it contains a routine which automatically copies files located on a cartridge over to the RAM disk! This is a very cool undocumented feature. Why was this code in there? Did Coleco have plans to utilize this capability and market CP/M cartridges? Nobody knows for sure! It’s yet another little ADAM gem that makes me wonder what we might’ve seen had things turned out differently for Coleco and ADAM.

As you can see in the video Milli created a custom cartridge containing Microsoft BASIC and was able to have CP/M automatically install its contents on the RAM disk. He also created a MOUNT program which he can run from the command line to copy cartridge files to the RAM disk without rebooting. This would enable the user to quickly install new CP/M software from a different cartridge. I am hoping that Milli spends more time experimenting with this concept and that maybe he’ll even make some custom CP/M cartridges available in the future.

NEWCCP - Better than New Coke!

I managed to get “NEWCCP” installed and working in CP/M 2.2. I think NEWCCP may have actually been the origins of T-DOS as it is written by the same programmer. As the name suggests it is a replacement for the standard CCP that adds a few benefits like ditching the USER command in favour of the standard “A0>” style prompts and paths. It also adds paging to the TYPE command and includes frequently used commands (like COPY) as resident commands so they can be run from anywhere. You can read more about NEWCCP in Issue #36/#37 of the NIAD Newsletter.

What is really nice is that I was able to get this working on top of my ABP25-patched CP/M installation so now I’ve got a really decent CP/M environment that is somewhat comparable to T-DOS. Why not just use T-DOS? I do use it (and like it) however as I mentioned in a previous post, T-DOS’s video memory usage prevents me from running any software that makes use of ADAM’s graphics capabilities (like this cool Turbo Pascal bitmap library).

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

Been playing around with some very cool Turbo Pascal extensions that interface the VDP (Adam’s video chip) under CP/M.

Gotta love this manual. 😁

Exploring CP/M this morning. Reading through the documentation that Coleco supplied with the “ADAM CP/M 2.2 and Assembler” software package.