cpm8266

Auf einem kleinen ESP8266-Board läuft ein komplettes CP/M incl. Disketten!

Projekt: https://github.com/SmallRoomLabs/cpm8266

Auf der Seite ist alles beschrieben, was man braucht.

Es läuft auf einem unveränderten nodeMCU-Board oder auf einem WeMos D1 R2-Board mit ESP8266 ESP-12

nodeMCU WeMos D1 R2-Board

Primär nutze ich Windows, im WMware Workstation Player läuft ein Ubuntu. Man kann einfach den Installationshinweisen von SmallRoomLabs folgen. Die Installation der ESP8266-Tools dauert ein wenig, aber der Rest für cpm8266 geht schnell!

code/MAKEFILE anpassen:

ESPPORT         ?= /dev/ttyUSB0
ESP8266SDK      ?= ~/git/esp-open-sdk/
ESPTOOL         ?= ~/git/esp-open-sdk/esptool/esptool.py

Flashen des LoLin NodeMCU-Boards Ver 0.1: Flash und Reset drücken

Ein kleines Problem gab es bei make full:

raise SerialException(msg.errno, "could not open port %s: %s" % (self._port, msg))
serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
Makefile:180: die Regel für Ziel „flashinit“ scheiterte
make: *** [flashinit] Fehler 1

Abhilfe schafft einmalig nach dem Anstecken

sudo chmod 666 /dev/ttys0

und dauerhaft eine zusätzliche Zeile in /lib/udev/rules.d/50-udev-default.rules

SUBSYSTEM=="tty", KERNEL=="ttyUSB[0-9]*", GROUP="tty", MODE="0666"

Dann ein Putty gestartet (hier mit /dev/ttyUSB0 und 9600 Baud verbunden), und CP/M läuft!

Nach Reset muss 2x Enter gedrückt werden. Die Baudrate wird dadurch automatisch erkannt. Es sind Werte von 115200 bis hinunter zu 300 Baud möglich (s. AutoBaud() in uart.c).

Zur Dateiübertragung gibt es die Programme A:XR.COM und A:XS.COM (XModem-Protokoll, reicieve bzw. send). Mit Teraterm (https://osdn.net/projects/ttssh2/releases/) klappt das gut, putty unterstützt das XModem-Protokoll leider nicht.

Programmierung und Einstieg