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
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.