Story
Description
This project is a fork of Willam Cooke' s PFBDK project (http://wrcooke.net/projects/pfbdk/pfbdk.html). It runs the PFBDK firmware on an Arduino Mega 2560 and anArduino Micro Pro (with custom PCB).
PFBDK simulates four floppy disk drives for the Epson PX-8 and PX-4 CP/M-80 based computers over the SERIAL port using the EPSP-protocol (https://electrickery.nl/comp/hx20/epsp.html).
This firmware version supports custom PX-4 native programs for rudimentary SD-card management. Epson used a sub-set/extension of the CP/M NET protocol for communication between portable computers and peripherials like floppy-disk terminals and video interfaces. The implementation is the EPSP protocol.
The PFBDK firmware supports both the PX-8 (Geneva) and PX-4, so all four disks are usable on the PX-8, PX-4 and HX-20. The management commands are currently only available for the PX-4.
The case is an implementation of my parametric Unibox design (https://www.printables.com/model/472419-unibox)
Details
The SD-card management functionality is available from the PFBDK debug port (Arduino console or programming interface) and via custom EPSP-functions from the PX-4 (using native CP/M programs).
The management functions are (named by program):
- PFDIR4 - List a directory of the SD-card root directory
- PFMNT4 - Mount image files on the disk drives C:, D:, F:, G:)
- PFWP4 - Set/reset a drive Write protect flag
- PFNEW4 - Create a new, empty disk image.
The project is ongoing. Several items are on the ToDo list:
- Support for PX-8 SD-card management,
- Awareness for multiple slave devices; PFBDK now assumes to be the only device on the 'RS-232c bus', it should respond only to the addressed devices (one or two floppy terminals),
- The board should support a chain function, allowing multiple options on the 'RS-232c bus'.
Power is supplied from a computer (allowing debug logging via the serial port) or an USB charger/power bank. There is no battery charge or management on the PCB.
A planned new version of the PCB should include support for a proper CP/M NET RS232c bus. This means an extra chained RS-232c port.
Project Logs Collapse
HX-20 support added
(05/06/2025 at 18:09)
Thanks to Robert Offner (https://forum.classic-computing.de/forum/index.php?thread/35779-epson-epsp-emulator-mit-arduino-tester-gesucht/&postID=540779#post540779, in German), PFBDK now also supports the HX-20 commands from Disk-BASIC. See the Github repository. This bumped the version to 2.0.0.
The ToDo list
(12/10/2023 at 16:32 )
- Create PX-8 management tools. And maybe later universal tools for both. The PX-8 has a weird architecture with a main CPU, slave CPU and sub-CPU, but in the end it is just an other BIOS call.
- Modify the PFBDK firmware to be selectable for one or two disk terminals. Each terminal has one (PF-10) or two (TF-20, TF-15) disk drives. Now PFBDK claims all four disk drives. Unknown is how it responds to other functions than floppy related.
- Modify the hardware for a second serial port to daisy-chain to another device. Useful when the actual video interface (Oval UD-80) becomes available. How the extra serial port is wired is visible in the PF-10 schema. The EPSP interface is an implementation of CP/M-NET, so historical relevant there too.
- Change the program set to integrate the PFPW4 functionality into the PFMNT4 program.
- The default configuration is having the four images D.IMG to G.IMG mounted. My idea/plan is to make a submit file changing this configuration on the default drive A:, but it didn't happen yet. The advantage is that no changes are needed to PFBDK and it uses standard CP/M tools.
More details&files: PFBDK - EPSP floppy drive emulator | Hackaday.io. Reposted with permission from the author. And if you want to explore more projects, please follow the author: fjkraan (Hackaday). He has many wonderful projects and is an excellent maker. Enjoy it!