Close

Port CP/M-68K to MPU302, part 3

A project log for Reverse Engineering Soneplex SPX-MPU SBC

Reverse engineering logs for salvaged MC68302 based SBC

plasmodePlasmode 12/27/2017 at 15:100 Comments

Running 68302 at 16MHz with zero wait-state memories using flash disk and RAM disk, MPU302 is a very fast CP/M machine.  The one glaring problem is the lack of mass storage.  The flash disk is write-only and the RAMdisk is only 256K byte in size.  It is fast, but not enough storage to do meaningful works.  So the next step is finding a mass storage solution.

There is a 82C55 Programmable Peripheral Interface on the MPU302 board and all its port signals are available on the DIN 41612 connector.  That's 24 programmable I/O lines.  Compactflash interface needs 16 data lines, 3 address lines, RESET, ChipSelect, Read, and Write.  So the 82C55 can drive the compactflash interface with 1 spare line.  The software for 82C55 is not straightforward because the processor needs to poll the status of the CF register between commands and data transfers.  Switching the 82C55 from read mode to write mode or write to read causes the control port to reset to zero.  This is undesirable because CF control lines are active low so resetting the 82C55 control port will cause CF to become active.  The CF signals RESET, ChipSelect, Read, Write need to be inverted.  Another problem with 82C55 interface is the software needs to bit bang the control lines to emulate CF timing.  That's slow, unlikely to achieve megabyte/sec transfer rate.  Fortunately CP/M files are generally quite small so even a hundred kilobyte/sec of transfer rate should be adequate.

I breadboard the design first with a scrap pc board that has an interface to a 44-pin CF adapter.  The 44-pin CF adapter is a 40-pin IDE interface plus 4 extra pins for power.  It is readily available on eBay for about $2.50.  I bought mine here: https://www.ebay.com/itm/IDE-44-Pin-Male-to-CF-Compact-Flash-Male-Adapter-Connector-DT/252403445892

The breadboard works well.  Transfer data from flash to CF is 20-30% slower than flash to RAM (read operation), but much slower for write operation.  I created four more 8-megabyte drives on the CF (drives D: to G:).  Now I have a usable CP/M 68K machine.

Discussions