Sie sind nicht angemeldet.

1

Montag, 27. März 2017, 21:03

CP/M auf dem Arduino DUE

CP/M auf kleinen Mikrocontroller-Systemen erregen immer meine Neugier - wie damals auch der AVR-"Stick" den ich von Peter Sieg gekauft hatte.
Dieser war wohl mit aus dem Thread bei mikrocontroller.net entstanden.

Einige Experten haben den auch wohl weiterentwickelt und Platinen gebaut - aber es ging wohl nie in die Masse und selber bauen kann ich es nicht :(

So fand ich es nun spannend vom CPMduino (RunCPM) zu lesen.

Da reicht ein "einfacher" Arduino DUE (fuer bis zu 64K Ram unter CP/M 2.2) und ein SD-Reader per SPI und schon kann man CP/M nutzen.
Ein-/Ausgabe per seriellem Port bzw. virtueller serieller Port ueber den USB-Anschluss.

Weiterer Vorteil: keine DiskImages :) Alles per FAT auf der SD-Karte. Laufwerke A: - P: sind Verzeichnissse auf der SD-Karte.

Als ext. MicroSD-Reader Modul am DUE sieht es noch leicht fragil aus....aber ein anderer User hat einfach ein SD-Card Shield genommen und so sieht es fuer mich schon ganz robust aus :)

CPMduino Original-Seite mit dem ext . MicroSDS-Modul:
https://hackaday.io/project/19560-z80-cp…sing-an-arduino
https://hackaday.io/project/3709-cpmduino


Nachbau mit dem SD-Card Shield:
http://weblambdazero.blogspot.com.tr/201…n-stick_16.html

Aus dem CPMduino wurde dann auch RunCPM fuer Win, OSX, Linux, Arduino DUE, Teensy 3.5 & 3.6:
https://hackaday.io/project/18291-runcpm


Ich habe mir nun einen Arduino DUE Clone bestellt aus UK....leider kommt der SD-Shield (gleich Modell wie im Bild aus China) - kann also noch bis Mitte Mai dauer im schlechtesten Fall :(
»guidol« hat folgende Bilder angehängt:
  • CPMduino_DUE_1.jpg
  • CPMduino_DUE_SD_Shield.jpg
  • RunCPM.jpg

Toast_r

2. stellvertr. Vorsitzender

  • »Toast_r« ist männlich

Beiträge: 4 333

Wohnort: 51.32,6.48544

Lieblingscomputer: CBM 720

  • Nachricht senden

2

Montag, 27. März 2017, 21:12

Ich habe gelesen, daß bei dem Teil die SD-Karte als RAM für den emulierten Rechner herhalten muß.
Das halte ich für eine echte Schnapsidee und bleibe lieber beim AVRCP/M.

PeterSieg

Vereinsmitglied

  • »PeterSieg« ist männlich

Beiträge: 2 757

Wohnort: Holzminden, 37603

  • Nachricht senden

3

Montag, 27. März 2017, 21:50

Nein. Das mit dem 64k Ram auf der SD Karte ist wieder ein anderes Projekt mit Arduino Nano aus Russland.
Der Due hat genug Ram. Und ist mit 80MHz auch sehr schnell.

Peter
github.com/petersieg

4

Montag, 27. März 2017, 21:53

Ich habe gelesen, daß bei dem Teil die SD-Karte als RAM für den emulierten Rechner herhalten muß.

Wo hast Du das gelesen? Auf den verlinkten Sieten?

Ich habe beim stoebern auch hackaday.io auch so was mal gelesen, aber ich glaube, dass war ein anderer Emulator, denn der Arduino Due wurde extra ausgesucht, weil der genug Ram hat um die 64K ohne Swap auf die SD-Karte zu liefern:
"The Arduino required is the DUE, due (no pun intended) to the amount of memory it has, which is needed to contain the 64K RAM for the CP/M CPU. "

RunCPM arbeitet etwas "besser" wenn man mit 60K anstatt 64K Ram auskommt:
https://github.com/MockbaTheBorg/RunCPM
The 64K version provides the maximum amount of memory possible to CP/M application, but its addressing ranges are unrealistic in terms of emulating a real CP/M computer.
The 60K version provides a more realistic addressing space, keeping the CCP on the same loading address it would be on a similar CP/M computer.

fritzeflink

Vereinsmitglied

  • »fritzeflink« ist männlich

Beiträge: 926

Wohnort: Schermbeck

Lieblingscomputer: CPU280, Genie IIIs

  • Nachricht senden

5

Montag, 27. März 2017, 21:55

Weiterer Vorteil: keine DiskImages :) Alles per FAT auf der SD-Karte. Laufwerke A: - P: sind Verzeichnissse auf der SD-Karte.


Nur CP/M ist bei dieser Möglichkeit doch langweilig. Wobei CP/M 2 oder CP/M3 ?

Es sollte auf jeden Fall bei:

CP/M2 => NZCOM

CP/M3 => Z3PLUS


in Betracht ziehen.

Download: http://www.gaby.de/edownf.htm


http://susowa.homeftp.net/index.php/soft…6-z-system.html

http://www.retroarchive.org/cpm/cdrom/CPM/ZCPR33/0NZCOM.DOC

http://oldcomputers.dyndns.org/public/pu…zcpr/index.html

Aktuell nutze ich NZCOM auf dem NCR Decision Mate V mit 2 x 10MB harddisk (emuliert durch mfm emu da es leiser ist.)
»fritzeflink« hat folgende Bilder angehängt:
  • hc_318.jpg
  • hc_319.jpg
  • hc_320.jpg
  • hc_321.jpg
  • hc_322.jpg
  • hc_323.jpg
  • hc_324.jpg
Mit freundlichen Grüßen

fritz

6

Montag, 27. März 2017, 22:19

Nein. Das mit dem 64k Ram auf der SD Karte ist wieder ein anderes Projekt mit Arduino Nano aus Russland.

Danke Peter :)
Der aus Russland mit dem Speicher auf SD-Karte ist dieser hier:
https://forum.arduino.cc/index.php?topic=464410.0

Das sind einige Ligen/Ligas unter der Version des DUE.
Auch wenn Ram auf SD-Karte emulieren - aus meiner Sicht - auch eine Leistung ist....aber sicher sehr langsam und die Karte wird nicht lange mitmachen :)
»guidol« hat folgende Bilder angehängt:
  • CPM_Nano_SD_1.jpg
  • CPM_Nano_SD_2.jpg

7

Montag, 17. April 2017, 14:03

So - heute sind aus China die SD-Shields angekommen - wobei der Shield hat sogar SD und MicroSD-Slot mit Federauswurf :D
(einer lohnt ja nicht bei dem Preis/Porto).

Dann habe ich mir das .ZIP vom GitHub geholt: https://github.com/MockbaTheBorg/RunCPM
und mit der Arduino-IDE unter Linux compiliert/upgeloaded (vorher die Arduino-IDE noch mit dem Arduino DUE bekannt gemacht).

Dann musste ich mir die ReadMe von
https://github.com/MockbaTheBorg/RunCPM
und
http://weblambdazero.blogspot.com.tr/201…n-stick_16.html
lesen damit es lief.

Beachten musste ich hauptsaechlich, dass die CCP-CCPZ.64K im Root der SD-Karte lag (ist das 64K CP/M Binary, dass bei den runtergeladenen .INO fuer die Arduino-IDE eingestellt war)
und die Binarys fuer Drive A im Unterverzeichnis /A/0 reinkopiert werden, da die Voreinstellung die Nutztung des User-Space vorsieht.

Vorher hatte ich (ohne von den Kompalat-Einstellungen zu wissen) nur die CCP-DR.60K nutzen wollen (DR fuer Digital Research und 60K, weil dann die Speichereinteilung kompatibeler ist).
Die hat er dann natuerlich nicht geladen und ich musste die CCP-CCPZ.64K nehmen.

Nach dem ich die Binarys aus dem Folder A in den dortigen Unterordner 0 (=Null) gemoved hatte, zeigte auch ein DIR mir die Dateien an.

Ach ja, der DUE hat einen Programmier-Micro-USB und eine "native" Micro-USB....aber neben dem programmieren ueber die Arduino-IDE laeuft der USB-serielle Port (9600 Baud) auch ueber den Programmier-Port.
»guidol« hat folgende Bilder angehängt:
  • RunCPM_CPMDuino_1.JPG
  • RunCPM_CPMDuino_2.JPG
  • RunCPM_CPMDuino_3.JPG
  • RunCPM.JPG

PeterSieg

Vereinsmitglied

  • »PeterSieg« ist männlich

Beiträge: 2 757

Wohnort: Holzminden, 37603

  • Nachricht senden

8

Montag, 17. April 2017, 14:54

Das RunCPM Konzept als solches finde ich interessant.
Laeuft bei mir unter Linux so.
Nur muss es dann kein Due+SD Karte sein, sondern z.B ein Orange Pi Zero fuer 13eur inkl. Versand. Da kann dann noch vieles mehr virtuell laufen (Simh, qemu, Wine, Dosbox...).
Peter
github.com/petersieg

9

Montag, 17. April 2017, 16:51


Nur muss es dann kein Due+SD Karte sein, sondern z.B ein Orange Pi Zero fuer 13eur inkl. Versand. Da kann dann noch vieles mehr virtuell laufen (Simh, qemu, Wine, Dosbox...).

Natuerlich koennte RunCPM auch auf vielen meiner Pis, Orange Pi, Odroid etc laufen.... aber so ein "dedicated" System reizt mich dann mehr....ist als wenn man sagen wuerde nen CPC kann auch der Orange Pi emulieren - aber jeder wie es mehr mag..... ich wollte mal eine Abwechselung zu den Pi-Geraten und ich mochte ja schon den AVR-CPM-Stick, den ich ueber Dich bekam.

Auf einer "kleineren" Emulations-Stufe koennte RunCPM mir auch noch gefallen.... ich habe heute einen kleinen Thin Client von TermTek TK3670 bekommen - 533Mhz CPU.
Bootet von CF und hat serielle und paralelle Schnitstelle - bei der Groesse eines DIN A5 Buches

RunCPM soll es ja auch fuer DOS geben - soweit ich im Kopf habe.... aber auch fuer DOS gibt es schon viele gute CP/M Emulatoren.

PS: Ich finde es auch immer wieder spannend, was Du fuer neue "Systeme" im Netz findest - und nach Erprobung - ganz eisern - wieder abgibst :)

10

Montag, 17. April 2017, 20:02

PS: Die Consolen-Geschwindigkeit kann man direkt in der RunCMD.ino editieren, in dem man die Baudrate von 9600 Baud:
Serial.begin(9600);
auf 19200 Baud erhoeht:
Serial.begin(19200);

Mehr habe ich noch nicht getestet, da ich mir nicht sicher bin ob es dabei einen Handshake gibt oder ob bei hoeheren Baudraten Zeichen verschluckt werden.



Die Anpassung auf DR und 60Kb kann man machen, wenn man die RunCPM.ino geladen hat und dann in die include-Datei globals.h geht und dort die entsprechenden Aktivierungs-/Konfigurationszeilen (de-)aktiviert.

Ich habe hier mal beispielhaft die DR-Version und 60Kb Speicher aktiviert und die anderen Konfigurationen durch // auskommentiert:

/* Definition of which CCP to use: INTERNAL, DR or ZCPR (must define only one) */
// #define CCP_INTERNAL // If this is defined, CCP will be internal
#define CCP_DR
// #define CCP_CCPZ
// #define CCP_ZCPR2
// #define CCP_ZCPR3
// #define CCP_Z80

#define SIZEK 60
// #define SIZEK 64
// Can be 60 for CP/M 2.2 compatibility or more, up to 64 for extra memory
// Can be set to less than 60, but this would require rebuilding the CCP
// For SIZEK<60 CCP ORG = (SIZEK * 1024) – 0x0C00

Toshi

Vereinsmitglied

  • »Toshi« ist männlich

Beiträge: 3 359

Wohnort: Oedheim/BaWü

Lieblingscomputer: Sage II

  • Nachricht senden

11

Montag, 17. April 2017, 20:13

Coole Sache, danke guidol für den Bericht.
Link arms, don't make them

Ähnliche Themen

Thema bewerten