Thursday, December 8, 2011

Up and running with CP/M on the CFFA!

With a few false starts, my Apple //e now has 4 CP/M partitions on my CFFA card! Since it's not entirely clear from the documentation what the process is to get Steven Hirsch's PCPIPRO and ProPartition software working on a ProDOS/Applicard system, so here's the steps involved I SHOULD have went through knowing what I do now!

1. Download ProPartition from the Yahoo AppleCPM group (, NOT other sources like Asimov. There's a corrupted version of the software floating around that causes the core application, PRO/PART.COM, to hang with no messages (in my case) or partway through (in a number of other cases reported.)

2. Follow the instructions carefully (also on the AppleCPM group) - you need ProPartition to set up CP/M partitions in a ProDOS volume. As Steven Hirsch says:

Pro_Partition 'steals' space at the end of a ProDOS hard disk volume. At the minimum, 256k (512 blocks) of contiguous free area must exist past the highest block used by ProDOS.  During installation, you will be given the opportunity to decide the number of logical CP/M drives to be installed, the total amount of space dedicated to CP/M, and the number of allowable directory entries per logical disk. The option to remove an installed partition exists and will return the space to ProDOS under most circumstances.

3. I created a new 32 meg partition on a 256MB CF card bought from eBay ( I got a couple for $16.99US ea free shipping) - obviously you can use your existing partition but I wanted a dedicated CF card with just CP/M stuff. My CFFA card has a IDE->CF card adapter extended out to the front of the computer so I can swap CF cards at will so this is very convenient.  I installed a 32MB ProDOS partition on the card using the excellent ciderPress software (available here) - I note a post by Steven recently (on this thread) indicated that there are some parameters you need to pay attention to:

If you create a ProDOS volume for the CFFA using CiderPress, do NOT make it 65535 blocks or the partitioner will think there is no room left due to numeric underflow in the code.  Use 65534 as the maximum.  I will try to fix this in the future.... The ProDOS volume MUST be formatted for ProDOS in addition to being created. I can probably detect this in the future, but for now be careful.

4. I loaded the card on my //e and ran CopyIIPlus to format the drive for ProDOS and copied the PRODOS system file and BASIC.SYSTEM onto the drive to make it bootable. This gets you to the BASIC prompt when booting so you can PR#6 to boot off the floppy drive with CP/M.

5. Boot a working PCPI CP/M disk to get into CP/M. You now need to run the PRO/PART.COM utility to create CP/M partitions on the ProDOS volume. The utility will ask you to identify the drive slot for the hard drive and what you would like to create. Since the max hard drive size for CP/M is 8 meg I created 4 8 meg partitions (the last being a bit smaller because of the ProDOS volume being a tad shy of a fill 32 megs.)  You now have 4 CP/M hard drives unformatted on the ProDOS volume! Now to make a disk that can actually access them!

6. Have a formatted CP/M disk ready and run the PCPI INSTALL.COM program. If you've never created a new Applicard boot disk in the past with drivers and so on, try this out before you attempt to set one up to access the CFFA. I ran into problems with a bad image of the PCPI INSTALL.COM on disks I downloaded (from J.D. Baker's site here) but Eric Neilson was kind enough to send me a known good Applicard disk that worked fine - you can grab a copy from the AppleCPM group here. Do not put I set up a new Applicard boot disk with the following drivers:

APLFLPY.DVR as device 0 with 2 drives (A: and B:)
PDOSHD.DVR as device 2 with 4 drives (C: D: E: and F:)

Obviously you can add other drives such as FAST2E80.DVR (//e 80 column video) but do not put a printer buffer driver in, the PRO/PART.COM utility will not work when such a driver is installed. Note Steven's advice below!

Please follow my notes carefully with regard to setting device numbers and number of devices for the various block drivers.  Both the stock Apple floppy driver and the PDOSHD driver default to device "0" (disk A:).  They cannot BOTH by disk A!  I suggest assigning A and B to floppy until you are confident that things are working.  That would mean that the Apple floppy driver is set for Device=0 (default) and NumDevices=2 (default is 6!!).  The PDOSHD driver gets configured for Device=2 (allowing room for 0 and 1) and NumDevices equal to however many CP/M volumes you created on the CFFA.

6. Write the new CP/M to a new boot disk and reboot. You should now be able to format C: D: E: and F: with the Applicard COPYFRMT program and access them! You can apparently have multiple instances of the PDOSHD.DVR driver running if you want to set up still more CP/M drives on additional PRODOS volumes on the CFFA (you can have up to 4 32 meg volumes on a //e with a 256MB CF card) You still need to boot from floppy (for now) but Steven's got that covered as well.

One note that I am profoundly appreciative of what Steven Hirsch has done for the community in releasing ProPartition and PCPIPRO - these were commercial products as I understand it now released to the community. Thanks Steven!

Next installment will detail how to get CP/M booting from the hard drive with PCPIPRO! And, my new CFFA3000 is in, so I'll be installing that. Stay tuned!


  1. Nice writeup, Gord! Thanks. My instructions were mostly written 20+ years ago for an audience that already familiar with the Applicard and CP/M. I can understand the frustrations of someone new to both.

    One comment: The COPYFRMT step should NOT be necessary. The partitioning tool writes the required "E5" pattern to tell CP/M the directory is empty and ready for files.

    The partitioning tool and ProDOS support were preambles to the CardZ180 operating system, but that's a story for some other time...

  2. I think, I'm too late to download and to join the group.
    Could you please pass me an hard disk image file?
    I want to use CP/M on my own HDD emulator! :)
    Thank you
    ian kim