Forum: Projekte & Code Z180SoftSystem


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Uwe M. (hobbyprogrammer)


Angehängte Dateien:

Bewertung
7 lesenswert
nicht lesenswert
Hallo hier im Forum,

ich bin schon seit ca. 15Jahren immer wieder mal als Gast hier gewesen. 
Nun habe ich mich angemeldet, um euch mein Programm Z180SoftSystem 
vorzustellen.
Das Programm emuliert einen 8Bit-Microcomputer auf Basis einer Zilog 
Z180MPU.
Das emulierte System existiert real und wurde von mir im Jahre 2005 
designt und
Handverdrahtet aufgebaut. Es hatte damals die Möglichkeit 2 
Diskettenlaufwerke sowie eine PATA Festplatte zu benutzen. Ich habe nun 
mehr aus Spaß vor einigen Jahren angefangen dafür eine Emulation zu 
schreiben. Herausgekommen ist nun dieses Programm.
Derzeit werden 2 Diskettenlaufwerke unterstützt. Eine Festplatte und ein 
Uhrenchip sollen noch folgen.
Entwickelt habe ich das ganze mit Lazarus / Free Pascal, daher liegt 
auch der Haupt-Diskussionstread im Deutschen Lazarus Forum.

Die Disketten Images habe ich mit den Wild-Turkey CPM-Tools 
(https://www.cpm8680.com/cpmtools) erstellt.
diskdef SYS720
  seclen 512
  tracks 160
  sectrk 9
  blocksize 2048
  maxdir 256
  skew 0
  boottrk 2
  os 3
# DENSITY MFM ,HIGH 
# BSH 4 BLM 15 EXM 0 DSM 359 DRM 254 AL0 248 AL1 0 OFS 2
end
diskdef DATA720
  seclen 512
  tracks 160
  sectrk 9
  blocksize 2048
  maxdir 256
  skew 0
  boottrk 0
  os 3
# DENSITY MFM ,HIGH 
# BSH 4 BLM 15 EXM 0 DSM 359 DRM 254 AL0 248 AL1 0 OFS 0
end

Vielleicht hat ja jemand Verwendung dafür. Über konstruktive Kritik 
würde ich mich sehr freuen.
Wie schnell ich mit Änderungen/Ergänzungen vorankommen kann ich nicht 
sagen, da dies ein Hobbyprojekt ist und meine Zeitfenster dafür sehr 
begrenzt sind.

Grüße

Hobbyprogrammer

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Uwe M. schrieb:
> Das emulierte System existiert real und wurde von mir im Jahre 2005
> designt und
> Handverdrahtet aufgebaut.

Gibt es dazu Bilder? :)

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Schönes Projekt!
Da hier im Forum von einigen Nutzern ein reales Z180 System [1] 
aufgebaut und betrieben wird, wäre das dort unterstütze SIMHD-Format 
recht nützlich.

# SIMH AltairZ80 Harddisk
diskdef simhd
  seclen 128
  tracks 2048
  sectrk 32
  blocksize 4096
  maxdir 1024
  skew 0
  boottrk 6
  os p2dos
end

[1] Beitrag "Z180-Stamp Modul"

von Uwe M. (hobbyprogrammer)


Angehängte Dateien:

Bewertung
8 lesenswert
nicht lesenswert
> Gibt es dazu Bilder? :)

Gerne doch. Daran solls nicht liegen. :-)

> Schönes Projekt!

Danke.

> Da hier im Forum von einigen Nutzern ein reales Z180 System [1]
> aufgebaut und betrieben wird, wäre das dort unterstütze SIMHD-Format
> recht nützlich.

Das werde ich mir gerne ansehen. Hast Du mir genauere Informationen oder 
Dokus?. Evtl. auch einen Link wo ein Tool zu haben ist mit welchen 
dieses Image-Format erstellt werden kann.

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Uwe M. schrieb:
> Evtl. auch einen Link wo ein Tool zu haben ist mit welchen
> dieses Image-Format erstellt werden kann.

Ich benutze immer den TotalCommander mit einem CP/M Plugin [1].
Eine zugegeben etwas alte Doku des Z180 Projektes findest du hier [2].
Ein aktuelles Handbuch dazu kann ich dir gerne per Mail zusenden.

[1] https://hc-ddr.hucki.net/wiki/doku.php/cpm/disketten_xp2
[2] 
https://www.mikrocontroller.net/svnbrowser/avr-cp-m/trunk/stamp/z180_stamp/

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> Uwe M. schrieb:
>> Evtl. auch einen Link wo ein Tool zu haben ist mit welchen
>> dieses Image-Format erstellt werden kann.
>
> Ich benutze immer den TotalCommander mit einem CP/M Plugin [1].
> Eine zugegeben etwas alte Doku des Z180 Projektes findest du hier [2].
> Ein aktuelles Handbuch dazu kann ich dir gerne per Mail zusenden.
>
> [1] https://hc-ddr.hucki.net/wiki/doku.php/cpm/disketten_xp2
> [2]
> https://www.mikrocontroller.net/svnbrowser/avr-cp-m/trunk/stamp/z180_stamp/

Ich hab mir jetzt das Diskformat von Dir angesehen. Das kann ich mit den 
Wild Turkey Tools auch erstellen. Ich weis jetzt nicht ob Du Dir das 
Z180SoftSystem schon angesehen hast. Da gibt es für die 
Diskettenlaufwerke einen Einstellungsdialog in welchem die Imagedatei 
angegeben wird und auch für jedes Laufwerk die Diskgeometrie eingestellt 
werden kann.
So wird es bei der Festplattenanbindung auch sein. Auch dort wird es 
einen Dialog geben wo die Imagedatei und die Geometrie der emulierten 
Festplatte eingestellt werden kann. Die eigentliche Verarbeitung muß 
dann ja im CP/M-Bios entsprechend erfolgen. Somit denke ich das es kein 
Problem sein sollte das von Dir vorgeschlagene Imageformat mit dem 
Z180SoftSystem zu verwenden.

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Uwe M. schrieb:
> Ich weis jetzt nicht ob Du Dir das
> Z180SoftSystem schon angesehen hast. Da gibt es für die
> Diskettenlaufwerke einen Einstellungsdialog in welchem die Imagedatei
> angegeben wird und auch für jedes Laufwerk die Diskgeometrie eingestellt
> werden kann.

Ja, ich habe mir deine Software mal angesehen. Der Eingabedialog für die 
Diskgeometrie ist jedoch sehr rudimentät. Ich wollte z.B.

diskdef avrcpm
  seclen 128
  tracks 77
  sectrk 26
  blocksize 1024
  maxdir 64
  skew 1
  boottrk 2
  os p2dos
end

einstellen, kann aber z.B. bei den sektoren nur 8,9,15 und 18 auswählen.

von HobbyProgrammer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> kann aber z.B. bei den sektoren nur 8,9,15 und 18 auswählen

Ok, verstehe. Das was bis jetzt implementiert ist wird als Standard 
Floppy-Diskformat behandelt. Angesprochen werden diese "Laufwerke" über 
einen emulierten Disketten-Controller welcher WD1770 kompatibel ist. 
Daher auch nur die begrenzte Auswahl.

Das zuvor beschriebene Format:
# SIMH AltairZ80 Harddisk
diskdef simhd
  seclen 128
  tracks 2048
  sectrk 32
  blocksize 4096
  maxdir 1024
  skew 0
  boottrk 6
  os p2dos
end

hat ja eine Kapazität von 8MB und wird im Z180SoftSystem als HDD 
implementiert. Da bin ich gerade dabei den Konfigurationsdialog zu 
erstellen. Angesprochen wird dieses "Laufwerk" dann über einen 
emulierten IDE-Controller der dann ATA-1 kompatibel sein soll. Dabei 
habe ich zu Anfang folgende Einstellungsmöglichkeiten vorgesehen: Köpfe 
0 - 15 , Spuren 0 - 2047 , Sektoren 1 - 63 , Bytes pro Sektor 128 , 256 
oder 512.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal die beiden beliebten Programme Wordstar und Turbo Pascal 
auf eine Disk gebracht und versucht zu starten. WS macht nichts und TP 
bricht mit einem Fehler ab.

von Thomas W. (dbstw)


Bewertung
0 lesenswert
nicht lesenswert
Moin, -

das ist schoen (sowohl der Emulator/Simulator) und die Hardware-
Loesung.

Koenntest Du den Schaltplan von der CPU-Platine teilen?

Viele liebe Gruesse

Th.

von Uwe M. (hobbyprogrammer)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> Ich habe mal die beiden beliebten Programme Wordstar und Turbo Pascal
> auf eine Disk gebracht und versucht zu starten. WS macht nichts und TP
> bricht mit einem Fehler ab.

Vielen Dank für die Info. Ich bin bis jetzt leider noch nicht dazu 
gekommen größere CP/M Programme zu testen. Ich wollte erstmal die 
Datenträger Anbindung ans Laufen bringen.
Die Meldung von Turbopascal wird von einem TRAP der Z180MPU ausgelöst. 
Verwendet Turbo Pascal undefined Z80 Op-Codes? Ich denke eher nicht. Ich 
werde mich dann sobald ich ein größeres Zeitfenster habe auf die 
Fehlersuche im Prozessor machen.

Thomas W. schrieb:

> Koenntest Du den Schaltplan von der CPU-Platine teilen?


Schaltplan der CPU-Platine ist angehängt. :-)

von Thomas W. (dbstw)


Bewertung
0 lesenswert
nicht lesenswert
Moin, -

vielen Dank fuer den Schaltplan. Das war auch mein Ansatz (muss nur
mal Bleistift -> KiCAD-Transformation starten)

Kleiner Kommentar noch zu dem Simulator: Ich bin ja sehr beeindruckt 
ueber
den Lazarus Compiler. Eine einzige Exe, keine Bibliotheken mit ihren
Abhaegigkeiten. Hat schon Charme. Schoen einfach.

Viele Gruesse

Th.

von Uwe M. (hobbyprogrammer)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Thomas W. schrieb:
> Moin, -
>
> vielen Dank fuer den Schaltplan. Das war auch mein Ansatz (muss nur
> mal Bleistift -> KiCAD-Transformation starten)

Gerne doch.


> Kleiner Kommentar noch zu dem Simulator: Ich bin ja sehr beeindruckt
> ueber
> den Lazarus Compiler. Eine einzige Exe, keine Bibliotheken mit ihren
> Abhaegigkeiten. Hat schon Charme. Schoen einfach.

Ich hatte das Projekt vor einiger Zeit mit Qt(C++) angefangen. Aber 
genau die vielen
Bibliotheken die man mitschleppen muß nur das so ein kleines Programm 
funktioniert
haben mich auch gestört. Deshalb hab das ganze dann ende letzten Jahres 
nach Pascal
transformiert.

Joe G. schrieb:
> Ich habe mal die beiden beliebten Programme Wordstar und Turbo Pascal
> auf eine Disk gebracht und versucht zu starten. WS macht nichts und TP
> bricht mit einem Fehler ab.

Mir hats keine Ruhe gelassen und ich hab mich auf die Fehlersuche 
gemacht. Es lag nicht am Z180SoftSystem sondern an einem nicht korrekt 
gesetzten relokatierbaren Sprungvektor im CP/M-BIOS. Der ist mir auf der 
original Hardware garnicht aufgefallen. Ich habe neue CP/M Daten 
angehängt. Damit startet Turbopascal. Wordstar tut auch etwas, aber 
evtl. ist da doch noch ein weiterer Fehler vorhanden.
Was jetzt zuschlägt ist die noch fehlende Unterstützung für erweiterte 
Steuerzeichen des Terminals. Ich denke ich werde diese als nächstes 
einbauen, bevor ich das IDE-Platten Interface emuliere.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Das ging aber schnell :-) TP startet jetzt bei mir, nur mit der 
Terminalemulation hapert es noch, aber da bist du ja dran.

von W.S. (Gast)


Angehängte Dateien:

Bewertung
-2 lesenswert
nicht lesenswert
Uwe M. schrieb:
> Damit startet Turbopascal. Wordstar tut auch etwas, aber
> evtl. ist da doch noch ein weiterer Fehler vorhanden.

Dir ist hoffentlich klar, daß beide Programme einen Patchbereich 
besitzen, wo die diversen Steuersequenzen für die Bildschirmausgabe und 
andere Dinge geregelt sind. Die mitgelieferten Setup-Programme 
(TINST.COM und INSTALL.COM) sind für Eigenbauer ein bissel doof, denn 
was nützt einem solchen die Abfrage, ob man denn ein Lear-Siegler 
Terminal oder einen Kaypro mit oder ohne Hilite hat? Da ist dann bei 
beiden Programmen ein Patchen am PC aussichtsreicher. Anbei ein Beispiel 
für sowas.

Und da du offenbar ein CP/M-3 benutzt, mußt du drauf achten, daß auch 
Programme wie TP oder WS ganz einfach die BIOS Aufrufe benutzen, ohne 
"durch" das BDOS zu gehen. Deshalb darf die Bank-Umschaltung im BIOS 
nicht annehmen, daß das BIOS vom BDOS aus gerufen wird und deshalb der 
Stack auch im Common liegt. Siehe als Beispiel den angehängten Auszug.

Nochwas:
CP/M verträgt von der Konsole nur CR und kein LF. Aber zur Konsole 
hin muß es sowohl CR (nur X=0 setzen) als auch LF (nur Y eine Zeile 
weiter bzw. unten scrollen) sein. Und keine Zeichen über $7F.

W.S.

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Das Test CP/M ist noch ein ungebanktes System, von daher denke ich das 
es hier nicht wirklich klemmt. Dennoch vielen Dank für den Tip mit der 
Bankumschaltung. Davor muß ich aber erst sicherstellen das die MMU in 
der emulierten CPU auch richtig funktioniert.

Das Thema Console CR und LF ist mir bekannt. Mit der Konfiguration von 
Wordstar und Turbopascal unter CP/M hab ich leider keine Erfahrung. Aber 
was nicht ist kann ja noch werden. :-)

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
W.S. schrieb:
> Dir ist hoffentlich klar, daß beide Programme einen Patchbereich
> besitzen, wo die diversen Steuersequenzen für die Bildschirmausgabe und
> andere Dinge geregelt sind.

Meine beigefügte 720K Floppy beinhaltet schon das WS und TP mit den 
VT100 Einstellungen, sollte also mit einem kompatiblen VT100 Terminal 
korrekt funktionieren.

von W.S. (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Nun ja, VT100 finde ich nun nicht wirklich nett. Eine der häufigste 
Sequenzen - nämlich das Cursor-Positionieren - läuft da über zwei- oder 
dreistellige Dezimalziffernfolgen für X und Y. "Bäh" kann man dazu nur 
sagen, denn eben dieses Verfahren setzt eine Ausgabekonvertierung und 
gleich danach eine Eingabekonvertierung voraus - und das bei einem 
kleinen Z80 System, was womöglich noch mit 4 MHz Systemtakt läuft. Da 
ist das ältere Verfahren esc=xy  mit x=char(32+Xkoordinate) und 
y=char(32+Ykoordinate) wesentlich effektiver.

Und ja, ich weiß, daß es inzwischen Z80 mit 20 MHz Takt gibt. Das 
erleichtert das ganze etwas, gilt aber m.W. nicht für den Z180 und 
aufwärts.

W.S.

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
W.S. schrieb:

W.S. schrieb:
> Und ja, ich weiß, daß es inzwischen Z80 mit 20 MHz Takt gibt. Das
> erleichtert das ganze etwas, gilt aber m.W. nicht für den Z180 und
> aufwärts.

Mein System läuft mit 18 MHz.
Beitrag "Re: Z180-Stamp Modul"

von S. R. (svenska)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
W.S. schrieb:
> Die mitgelieferten Setup-Programme (TINST.COM und INSTALL.COM)
> sind für Eigenbauer ein bissel doof, denn was nützt einem
> solchen die Abfrage, ob man denn ein Lear-Siegler
> Terminal oder einen Kaypro mit oder ohne Hilite hat?

Wenn der Emulator (bzw. die eigene Hardware) kompatibel zu einem dieser 
Terminals ist, dann funktionieren diese Programme ausgezeichnet. Mein 
System konvertiert deswegen z.B. zwischen ADM-3A (CP/M-seitig) und VT100 
(Nutzerseitig) umher. Ich hab die C-Datei mal angehängt.

W.S. schrieb:
> Nun ja, VT100 finde ich nun nicht wirklich nett.

Das hat mehrere Facetten, von denen ich die Dezimalzahlendarstellung 
eher als unwichtiges Detail betrachte.

Erstens kam das VT100 für CP/M recht spät und wird daher direkt von 
vielen Anwendungen nicht unterstützt, oder nur in neueren Versionen. 
Also muss man die Programme patchen.

Zweitens ist das ANSI-Protokoll sehr erweiterbar und wurde mit den 
Jahrzehnten auch deutlich erweitert: Farben, mehr Tasten, etc. Ich würde 
mich nicht wundern, wenn CP/M-Programme damit nicht ordentlich umgehen 
können.

Drittens: Die Idee, ESC einerseits als Escapezeichen im Protokoll zu 
benutzen, andererseits aber eine ESC-Taste ohne Escaping 
bereitzustellen, ist hochgradig genial. Viele DOS- und CP/M-Anwendungen 
benutzen ESC aber als Taste statt als Sequenz. Ich kann garnicht so 
viel fressen, wie ich deswegen kotzen möchte.

Wie man ESC von einer Pfeiltaste unterscheidet? Klassisch natürlich mit 
einem Timeout, damit sich das System auch richtig schön langsam anfühlt. 
Und über das Internet natürlich auch nicht zuverlässig funktioniert. 
(Der Code oben erwartet "ESC ESC" für die Escape-Taste.)

: Bearbeitet durch User
von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
So, hab nun doch ein kleines Zeitfenster gehabt und den Source Code des 
Z180SoftSystem bei GitHub hochgeladen.
Zu finden unter:   https://github.com/ProgrammingHobby/Z180SoftSystem

von Tom T. (tomth)


Bewertung
0 lesenswert
nicht lesenswert
Uwe M. schrieb:
>> Gibt es dazu Bilder? :)
>
> Gerne doch. Daran solls nicht liegen. :-)

Wow :D

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Es scheint auch noch Probleme bei der Abarbeitung der Z80 Befehle zu 
geben. Der Z80 exerciser wirft sehr schnell Fehler

Z80all instruction exerciser

<adc,sbc> hl,<bc,de,hl,sp>....  ERROR **** crc expected:d48ad519 
found:f39089a0

add hl,<bc,de,hl,sp>..........  ERROR **** crc expected:d9a4ca05 
found:1165fc90

add ix,<bc,de,ix,sp>..........  ERROR **** crc expected:b1df8ec0 
found:c359f7a2

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> Es scheint auch noch Probleme bei der Abarbeitung der Z80 Befehle zu
> geben. Der Z80 exerciser wirft sehr schnell Fehler
>
> Z80all instruction exerciser
>
> <adc,sbc> hl,<bc,de,hl,sp>....  ERROR **** crc expected:d48ad519
> found:f39089a0
>
> add hl,<bc,de,hl,sp>..........  ERROR **** crc expected:d9a4ca05
> found:1165fc90
>
> add ix,<bc,de,ix,sp>..........  ERROR **** crc expected:b1df8ec0
> found:c359f7a2

Das liegt daran, das der Zexall Test nicht nur die undokumentierten Z80 
Op-Codes sondern auch die undokumentierten Bits im Flag Register F 
auswertet.
Weder die undokumentierten Z80 Op-Codes noch die undokumentierten Bits 
im Register F werden von der Emulation abgedeckt. Bei undefinierten 
OP-Codes löst der Z180 einen TRAP Interrupt aus.

von Uwe M. (hobbyprogrammer)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun nochmals aktuell den Zexdoc Test durchlaufen lassen und das 
Terminal Logfile angehängt. Da sieht die Sache schon sehr viel besser 
aus.
Die gemeldeten Fehler bei RLD und RRD sind duch das Dokument 'Z180 
Family Questions and Answers' Seite 6-2 Abschnitt 
'INSTRUCTIONS(Continued)' zu erklären. Alle anderen Fehler sind dann 
wohl auf die undokumentierten Z80 Op-Codes zurückzuführen.
Der Zexdoc Test läuft nur dann, wenn das Z180 Modul mit dem 
Compilerschalter 'NOTRAP' kompiliert wird.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Du könntest testweise die beim Z80 undokumentierten Flags (und evtl. 
auch Opcodes) ausmaskieren. Das gibt zwar andere CRC-Werte, aber wenn du 
mit einem echten Z80 vergleichst...

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ein Vorschlag um deinen Terminal nicht VT100, VT220, DEC oder ähnliches 
beizubringen könntest du doch das bisher nicht unterstütze Umschalten 
der E/A Kanäle (DEVICE.COM) implementieren. Somit könnte man die Konsole 
z.B. auf einen virtuellen COM-Port schalten und diesen per virtuellem 
Nullmodemkabel wieder auf ein Terminalprogram seiner Wahl, welche eine 
Terminalemulation unterstützt.

von W.S. (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Uwe M. schrieb:
> Ich habe nun nochmals aktuell den Zexdoc Test durchlaufen lassen

Ich denke mal, daß etwaige Fehler bzw. Absturz von CP/M-Programmen eher 
durch irgend etwas Vergessenes oder falsch Gedachtes beim BIOS zu suchen 
sind. Die damaligen Programme benutzen m.W. niemals irgendwelche 
undokumentierten Befehle und viele benutzen nur das, was der 8080 auch 
kann.

Was mir bei deinem Projekt aufgefallen ist: du scheinst für den 
Interpreter keinen separaten Thread zu benutzen. Ich hab dir hier mal 
was drangehängt. Die Display-Terminalfunktioalität läuft in IoStream als 
separater Thread und kann deshalb stinke-prozedural programmiert sein. 
Ist ne Erleichterung. Ich hab dort sowohl etwas VT-100 als auch etwas 
'MicroBee VDU' eingebaut. Das war aber eher die 
Versuch-und-Irrtum-Methode.

W.S.

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> Ein Vorschlag um deinen Terminal nicht VT100, VT220, DEC oder ähnliches
> beizubringen könntest du doch das bisher nicht unterstütze Umschalten
> der E/A Kanäle (DEVICE.COM) implementieren. Somit könnte man die Konsole
> z.B. auf einen virtuellen COM-Port schalten und diesen per virtuellem
> Nullmodemkabel wieder auf ein Terminalprogram seiner Wahl, welche eine
> Terminalemulation unterstützt.

Ich möchte das Z180SoftSystem erstmal in sich funktionierend haben, 
zumal ich bei dem Terminal schon recht weit bin. Denke mal nächste Woche 
müsste ich es fertig bekommen. Aber Dein Vorschlag kommt auf jeden Fall 
auf die Todo Liste. Dort hab ich schon stehen, das LIST Device von CP/M 
auf einen auswählbaren Drucker am Host System verbinden zu können, und 
auch das AUX Device auf einen wählbaren COM Port am Host System legen zu 
können. Dann wäre das Drucken und auch ein Datenaustausch für Programme 
die im Z180SoftSystem laufen möglich. 😀

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
W.S. schrieb:
> Was mir bei deinem Projekt aufgefallen ist: du scheinst für den
> Interpreter keinen separaten Thread zu benutzen.

Das stimmt. Ich habe schon mal dran gedacht die CPU und/oder das 
Terminal in eigenen Threads laufen zu lassen. Aber mit der Thread 
Programmierung habe ich noch keinerlei Erfahrung oder Berührung gehabt, 
von daher ist das etwas was vielleicht irgendwann später einmal als 
Optimierung verwirklicht wird.

von W.S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Uwe M. schrieb:
> vielleicht irgendwann später einmal

Ist doch easy. Mach's lieber gleich, das erspart dir eine Menge 
Hakeligkeiten. Und wie das im Prinzip geht, kannst du in meinem 
geposteten Terminalprogramm sehen. Das sollte auch unter Linux gehen, 
man muß dort lediglich eine Linux-Version des TComPort haben.

W.S.

von Uwe M. (hobbyprogrammer)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nun, ists doch schneller gegangen als gedacht. Ich habe die Version 1.2 
angehängt. Der Sourcecode ist wieder bei Github zu finden: 
https://github.com/ProgrammingHobby/Z180SoftSystem

Das Terminal kann nun mit Escape Steuersequenzen umgehen. Und es ist 
auch eine neue CP/M Testversion dabei. Im CP/M-Bios hatten sich 2 Fehler 
eingeschlichen die den Start von TurboPascal sowie WordStar verhindert 
haben.

Falls noch ESC-Steuerzeichen fehlen oder nicht richtig funktionieren, 
bitte melden.  :)

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
bei mir machen TP und WS einfach nichts.

CP/M V3.0 Loader
Copyright (C) 1998, Caldera Inc.

 BIOS3    SPR  E900  0600
 BDOS3    SPR  C800  2100


 50K TPA



CP/M Version 3.0
Z180 System-BIOS Version 2.3
Copyright (C) 2005 Uwe Merker
A>b:

B>dir

B: PRINT    TST : SAMPLE   BAK : SAMPLE   TXT : WINSTALL COM : WS 
COM
B: WS       INS : WS-30    COM : WSMSGS   OVR : WSOVLY1  OVR : WSTEST 
COM
B: WSU      COM : TEST     PAS : TINST    COM : TINST    DTA : TINST 
MSG
B: TURBO    COM : TURBO    MSG : TURBO    OVR : PRINT    TST : SAMPLE 
BAK
B: SAMPLE   TXT : WINSTALL COM : WS       COM : WS       INS : WS-30 
COM
B: WSMSGS   OVR : WSOVLY1  OVR : WSTEST   COM : WSU      COM : TEST 
PAS
B: TINST    COM : TINST    DTA : TINST    MSG : TURBO    COM : TURBO 
MSG
B: TURBO    OVR
B>turbo

B>ws

B>

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:
  • TP.fdd (720 KB, 17 Downloads)
  • WS.fdd (720 KB, 17 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Kommando zurück ;-) Ich hatte 720K Disketten erstellt und nur 360K 
Disketten gelesen :-( Mit den richtigen Einstellungen funktioniert es.

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Phuu, gut. Hatte schon befürchtet ich hätte doch nen Fehler beim Packen 
gemacht.
Hatte gestern Abend noch selbst mit TP und WS ein wenig herumgespielt. 
Ich werd heut oder morgen auch die Binarys bei Github einpflegen. Dann 
können die auch von dort heruntergeladen werden. :-)

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Mir ist heute aufgefallen das einige Tastaturcodes im Terminal wohl 
nicht richtig umgesetzt werden. Also z.B. # , ? , < , > , ^ .
Ich befürchte das das ein generelles Problem ist. Ist das bei euch auch 
so? Wäre schön wenn mir jemand da Feedback geben könnte und vielleicht 
auch die Zeichen nennen welche nicht richtig kommen. Evtl. auch ob bei 
der Windows oder Linux Version.

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe gerade aus dem Lazarusforum mitbekommen das das von Linux auf 
Windows anders ist mit den Tastaturcodes. Habe das dann auch schnell in 
meinen beiden Programmier-VMs nachvollzogen und belegen können.

Ich werde in den nächsten Tagen eine entsprechend Fehlerbereinigte 
Version zur Verfügung stellen.

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe nun die Fehlerbereinigte Version fertig. Jetzt sind die 
Sonderzeichen auch unter Linux so wie unter Windows mit 'ALTGR' 
erreichbar.
Die neue Version ist 1.2.1. Ich habe diese so wie die Sourcen auch bei 
Github zum Download eingestellt.

https://github.com/ProgrammingHobby/Z180SoftSystem

von Joe G. (feinmechaniker) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Auf meinem System (Win 8.1) läuft die Darstellung korrekt.

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Danke für das Feedback.
Ich habe die Version 1.2.1 kurz in folgenden VMs getestet: WinXP 32bit , 
Win7 64bit , Win10 64bit , Debian Buster 64bit , Mint LMDE 4 64bit und 
KUbuntu 18.04 64bit.

von Edgar S. (Firma: keine) (heinbloed1)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute !

Hier ist eine reelle Hardware abzugeben:

Beitrag "YAZ180 angefangenes Projekt abzugeben"

MfG

von Uwe M. (hobbyprogrammer)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe heute nochmal ein wenig getestet. Dabei habe ich festgestellt 
das der CP/M Befehl 'Initdir' nicht läuft. Dieser überschreibt den BDOS 
Einsprungvektor an Adresse 0006h mit 0001h und bleibt dann bei Adresse 
ED8Ch mit eine OP-Code TRAP hängen.
Kann mir da jemand kurz auf die Sprünge helfen? Hab ich da noch einen 
Fehler im CP/M-BIOS oder muß ich eher in der CPU-Emulation nach dem 
Fehler suchen?

Grüße

HobbyProgrammer

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.