Seite 1 von 2

Z180SoftSystem

Verfasst: 14. Jul 2020, 12:38
von HobbyProgrammer
Hallo Forengemeinde,
ich möchte euch heute mein in Lazarus Free Pascal geschriebenes Programm vorstellen. Angefangen hat alles vor einigen Jahren als Spielerei. Mittlerweile ist daraus ein richtiges Projekt geworden.
Das Programm emuliert einen CP/M fähigen 8bit Microcomputer auf Basis einer Zilog Z80180 MPU.
Das emulierte System existiert real und wurde im Jahr 2005 von mir designt und handverdrahtet aufgebaut. Leider sind die Disketten von damals unbrauchbar und neue konnte ich mit den mir verfügbaren Laufwerken nichtmehr erstellen. Und so ist dann aus einer Programmier Spielerei dieses Projekt entstanden. Es erhebt keinen Anspruch auf Vollständigkeit, aber es funktioniert mittlerweile so gut, das eine CP/M Version aus dem Jahre 2005 ohne Änderungen am CP/M-BIOS läuft. Bis jetzt werden 2 Diskettenlaufwerke und ein VT100 kompatibles Textterminal emuliert. Es sollen noch ein Festplattenlaufwerk (damals PATA HDD mit 200MB) und ein Uhrenchip hinzukommen. Auch habe ich noch vor das bei CP/M mögliche List-Device auf einen auswählbaren Drucker am Hostsystem umzuleiten.
Vielleicht gibts ja noch Mitglieder oder Gäste die hier ins Forum schauen, die mit dem Programm etwas anfangen können.
Konstruktive Kritik ist gerne willkommen.

Zu finden sind die Sourcen und Binarys hier:
https://github.com/ProgrammingHobby/Z180SoftSystem

Diskussionen zum Z180SoftSystem sind auch hier zu finden:

https://www.lazarusforum.de/viewtopic.php?f=11&t=12987

https://www.mikrocontroller.net/topic/498386

Grüße Hobbyprogrammer

Re: Z180SoftSystem

Verfasst: 18. Jul 2020, 13:38
von genie3s
Disketten kann ich dir erstellen ... nur muss auch der Bootlader drauf.

Es wäre schade wenn deine 'alte' Hardware nicht mehr funktionstüchtig ist.

Ich habe das System mal gebootet - schön gemacht. Die
50k TPA sind doch ein bisschen wenig, aber für ungebanktes CP/M+ geht es doch noch.

:-)

Re: Z180SoftSystem

Verfasst: 18. Jul 2020, 15:42
von HobbyProgrammer
Danke für das Angebot. Vielleicht komme ich darauf zurück. :)

Im Grunde genommen funktioniert meine gesamte Umgebung die ich damals hatte nichtmehr. Zumal ich seit ca. 6 Jahren auch Windows über Bord geworfen habe und nur noch Linux benutze. Allerdings habe ich mir unter Virtualbox (6.0.24) eine Windows XP Maschine erstellt mit all den Tools die ich damals benutzt habe. So kann ich wieder CP/M-BIOS Versionen bauen und auch das CP/M mit Gencpm erzeugen. Nur eben das direkte Erstellen von Disketten, damals mit 22DSK funktioniert nichtmehr. Auch mein EPROM-Brenner und EPROM-Simulator von damals lassen sich nichtmehr benutzen. Ich habe viele Stunden verbracht z.B. das externe USB-Diskettenlaufwerk (mein Notebook hat keines eingebaut) direkt in die VM durchzuschleifen oder auch den USB-Seriell Converter für den EPROM-Brenner/Simulator. Alles hat leider nichts gebracht. :(

Daraus entstand dann die Idee das Programm soweit zu entwickeln das ich die dort dann erstellten HDD-Images auf eine CF-Card oder PATA-Festplatte kopieren kann und mein System von HDD/CF-Card zu starten. Ich bin mir nur nichtmehr Sicher ob das EPROM das noch auf der Prozessorkarte steckt damals schon von HDD Booten konnte oder ob ich den Umweg über eine Diskette genommen habe. Ist ja alles schon 15Jahre her ... ;) :lol:

Im schlimmsten Fall müsste ich irgendwie schauen mir ein neues EPROM brennen zu lassen. Oder besser gleich ein EEPROM.

Im Augenblick bin ich an dem Virtuellen PATA-IDE Controller dran.

Grüße

HobbyProgrammer

Re: Z180SoftSystem

Verfasst: 18. Jul 2020, 16:27
von genie3s
Falls du die Disketten noch hast kann ich gerne versuchen diese einzulesen, ebenfalls das eprom sichern.
Die HD-Images können alle warscheinlichkeit nach mit den http://www.moria.de/~michael/cpmtools gelesen werden.
CPMTOOLS kann natürlich auch Diskkettenimages lesen und schreiben.

Das habe ich auch mit dem Image vom 180X gemacht.

Beispiele zu x180:

http://oldcomputers-ddns.org/public/pub ... index.html
http://oldcomputers-ddns.org/public/pub ... index.html
http://oldcomputers-ddns.org/public/pub ... index.html

Re: Z180SoftSystem

Verfasst: 19. Jul 2020, 09:39
von HobbyProgrammer
genie3s hat geschrieben: 18. Jul 2020, 16:27 Falls du die Disketten noch hast kann ich gerne versuchen diese einzulesen, ebenfalls das eprom sichern.
Disketten habe ich leider keine mehr. Die habe ich blöderweise letztes Jahr entsorgt als ich festegstellt habe das die nichtmehr funktionieren. :oops:
Den Assembler Quelltext des EPROMs hab ich noch in meinem Datenbestand gefunden. Läuft im Z180SoftSystem auch. Muß nur noch versuchen zu Prüfen ob damit auch der Boot von HDD funktioniert. Dafür muß aber erstmal der Emulierte IDE-Controller fertig sein. ;)
genie3s hat geschrieben: 18. Jul 2020, 16:27 Die HD-Images können alle warscheinlichkeit nach mit den http://www.moria.de/~michael/cpmtools gelesen werden.
CPMTOOLS kann natürlich auch Diskkettenimages lesen und schreiben.
Genau, mit diesen CP/M-Tools erstelle ich die Images für das Z180SoftSystem. :)
genie3s hat geschrieben: 18. Jul 2020, 13:38 Die 50k TPA sind doch ein bisschen wenig, aber für ungebanktes CP/M+ geht es doch noch.
Da steckt auch nur ein QD Test-BIOS dahinter. Einfach um zu sehen ob der Emulator überhaupt funktioniert und ob die Laufwerkszurgiffe passen. Die BIOS-Routinen für die Laufwerkszugriffe entsprechen genau denen die ich damals auf der realen Hardware programmiert habe. Der Emulator soll ja kompatibel mit meinem Z180 Rechnerchen sein. :)

Die verlinkten Seiten sehen sehr interessant aus. Werd mich da bei Gelegenheit mal genauer durchwühlen.

Re: Z180SoftSystem

Verfasst: 21. Jul 2020, 22:18
von HobbyProgrammer
Hallo zusammen,

seit ein paar Minuten steht die Version 2.0.0 zum Download bei GitHub bereit. Als Laufwerk ist nun auch ein HDD-Drive verfügbar das über einen ATA-1 kompatiblen Kontroller angesprochen werden kann. Auch ist die 'virtuelle Taktfrequenz' der CPU in 4 Schritten einstellbar. Und im Hilfemenü gibt es nun eine Auflistung der Emulierten Hardware mit Portadressen und Befehls/Steuercodes.

Zu finden wie gehabt unter: https://github.com/ProgrammingHobby/Z180SoftSystem

Grüße
HobbyProgrammer

Re: Z180SoftSystem

Verfasst: 27. Jul 2020, 20:14
von HobbyProgrammer
Ich habe neue CP/M-Testdaten hochgeladen. Darin befindet sich ein einfaches Banked CP/M mit einer TPA von 60KB.

Zu finden wie gehabt unter: https://github.com/ProgrammingHobby/Z180SoftSystem

Re: Z180SoftSystem

Verfasst: 4. Aug 2020, 15:29
von Peter z80.eu
Fein, Dein Emulator muss ich doch auch mal ausprobieren. Finde es ungewöhnlich, das in Objekt-Pascal zu schreiben, aber heutzutage sind ja die Rechner so schnell, dass das auch kein Problem mehr ist.

Re: Z180SoftSystem

Verfasst: 5. Aug 2020, 12:43
von HobbyProgrammer
Pascal habe ich schlußendlich genommen weil es eine einzige ausfühbare Datei gibt wo alles drin ist. Die Anfänge hab ich in C++ gemacht.

In den nächsten Tagen hab ich dann hoffentlich eine neue Version fertig. Dort sollen dann auch Memory <> Memory DMA Transfers in der Emulation funktionieren. Ein CP/M Test BIOS mit xmove per DMA bootet auf jeden Fall schoneinmal.

Re: Z180SoftSystem

Verfasst: 8. Aug 2020, 11:49
von HobbyProgrammer
Hallo zusammen,

ich habe soeben die Version 2.1.1 hochgeladen. Was geändert wurde steht wie immer in der Version.txt.

In der Version 2.1.1 funktioniert nun auch die DMA-Kontroller Emulation. Ein in 2005 geschriebenes CP/M-BIOS
das für den xmove den Z180 DMA-Controller benutzt läuft darauf ohne Änderungen am BIOS-Code.
Auch die DMA-Kanal 0 Memory <-> ASCI funktion habe ich eingebaut. So wie in der Z180 Dokumentation beschrieben
funktioniert dieses auch. Da ich leider im Augenblick noch keine Möglichkeit habe mein reales Z180-System mal
eben mit Test-Code über EEPROM oder EPROM-Simulator zu reaktivieren, kann ich diese Funktion leider nicht überprüfen.
Vielleicht hat ja jemand hier im Forum die Möglichkeit das mal an einem realen System gegenzuprüfen und mir dann
Feedback zu geben.

Die Version 2.1.1 ist wie immer bei GitHub zu finden: https://github.com/ProgrammingHobby/Z180SoftSystem

Grüße
Hobbyprogrammer