RC2014 Mini CP/M Upgrade

The RC2014 Mini CP/M Upgrade Kit provides the extra circuitry needed to run CP/M on the RC2014 Mini.

Buy one on Tindie here

Find the assembly guide here

The 4 layer PCB hosts 32k RAM, Pageable ROM, Compact Flash socket and 2 standard RC2014 bus headers for further expansion. This sits as a mezzanine board above the RC2014 Mini and connects via the RC2014 bus.

The Mini retains the clock, CPU, upper 32k RAM, serial UART and Pi Serial Terminal, however the ROM is removed. Instead, the new ROM supplied with the CP/M Upgrade Kit is used.

The ROM labelled R0881099 supplied with the CP/M Upgrade Kit is a 64k 27C512 that is logically divided in to 4 16k banks. You can choose which bank to boot from depending on how you want to use your RC2014 Mini;

  • Bank 0 R0 Microsoft BASIC for 32k RAM
  • Bank 1 88 Small Computer Monitor (SCM) R4
  • Bank 2 10 CP/M 2.2
  • Bank 3 99 Small Computer Monitor (SCM) R1
Click image for pdf sehcmatic

The ROM has the same paging function as the Pageable ROM Module, and the RAM on the CP/M Upgrade Kit has the same paging function as the lower RAM on the 64k RAM Module. So, if booting to CP/M (Bank 2), or if CP/M is called from SCM (Bank 1), then the ROM is paged out and the lower RAM is paged in, giving a full 64k of RAM for CP/M to use.

If BASIC or SCM is used, then the ROM is not paged out, so only the upper 32k RAM from the RC2014 Mini is available.

The 74HCT138 is serving a dual purpose on this board. Firstly, port 0x38 is used as the Page function as mentioned above. Port 0x10 is also used as the Chip Select for the compact flash card.

The compact flash card itself is connected directly to the data bus, and address lines A0, A1 and A2, along with the RD, WR, and Reset lines. The Busy signal from the CF card is bought out to a LED to indicate use. This is the same circuit as used on the Compact Flash Module.

Two expansion headers can be fitted to the top of the CP/M Upgrade Kit. This effectively turns the board in to a two-slot backplane. Any of the RC2014 modules designed for the Standard Bus can be plugged in to either of the expansion headers, ensuring that Pin 1 lines up on both boards. If additional expansion is needed, a Backplane-5, Backplane-8 or Backplane Pro can be used. (Top tip – a Backplane-5 will fit directly above the Mini-CP/M stack if a pin header is fitted on the underside of the Backplane 5, giving you 4 effective free slots!)

If you used a Universal Micro Keyboard with your RC2014 Mini, then this this can be fitted on top of the CP/M Upgrade Kit via a 6 pin long header. Although this is soldered to the Upgrade Kit, there is no electrical connection to anything else on that board. Note that this will block access to the expansion headers from above, but if right-angled headers are used, this is not a problem.

Running CP/M

Set the jumper on the CP/M Upgrade Kit to Bank 1, insert the compact flash card, connect a FTDI cable to the 6 pin header on the RC2014 Mini, and set your terminal software to 115,200 baud, 8-n-1

[On power up, a small bootloader will copy itself and a modified CP/M console from 0x0000 (ROM) up to 0xA000 (RAM), then page out the ROM and page in the lower 32k RAM, then copy Grant Searles CP/M Monitor (as modified by Mitch Lalovie and tweaked by me) back to 0x0000 (RAM) and run the monitor from there]

You will be greeted by a “Press [space] to activate console” message twice, and after pressing space you will be in to the monitor.

(Note that the B option for BASIC will not work from this ROM bank. If you want to use BASIC from ROM set the jumpers to Bank 0. A better solution though is to download a copy of mbasic or BBC Basic to CP/M, which then allows you to use the compact flash card for storage)

Press X followed by Y and it will boot CP/M from the compact flash card and you will be at the A> prompt.

The compact flash card is pre-formatted with 16 drives from A: to P:  The A: drive has DOWNLOAD.COM which is needed to transfer files on to the CF card.  Drive C: has CP/M utilities such as TYPE.COM ED.COM, STAT.COM etc.

To copy files and programs on to the CF card you will need to connect to your RC2014 over a FTDI cable, and either use Grant Searles Windows File Packager or manually package the files with a text editor.  When copied over the FTDI connection it will initiate A:DOWNLOAD.COM which will then take the file and put it on to the current selected drive.  Note that the flow control on the 68B50 is minimal with this setup, so setting a 1ms delay between characters in your terminal software is suggested to give consistently successful results.

After that, I highly recommend using a torch otherwise you will almost certainly end up being eaten by a Grue!

Bill of materials

x1 Mini CP/M Upgrade PCB
x1 Compact Flash Socket
x1 40 pin header
x2 40 way SIL socket
x2 2 pin header
x1 3mm Green LED
x2 28 pin DIL socket
x4 14 pin DIL socket
x1 16 pin DIL socket
x1 62256 RAM
x1 27C512 EPROM CP/M
x2 74HCT32
x1 74HCT04
x1 74HCT393
x1 74HCT138
x2 1N4148
x1 330Ω resistor
x4 1kΩ resistor
x3 10kΩ resistor
x6 100nf ceramic capacitor
x1 Compact Flash 128Mb
x1 6 pin long socket
x4 20mm M3 screw
x4 M3 nut
x4 11mm PCB spacer