Bios Entry $05 - List Output

Alles rund um CP/M 2.2
Horst
Beiträge: 14
Registriert: 28. Mär 2020, 09:14
Wohnort: Hessen

Bios Entry $05 - List Output

Beitrag von Horst » 16. Apr 2020, 19:46

Hallo zusammen,

ich habe mir erfolgreich ein kleines Z80 System aufgebaut. Nun komme ich nicht weiter, was die BDOS Eintragungen für $05 "List output" betreffen - Ich möchte aber mal was drucken...

Desshalb habe ich eine grundlegende Frage zur Druckerfunktion unter CP/M 2.2. Das zu druckende Zeichen wird über Bios Entry $05 an den Drucker gesendet - Soweit klar. Wie kann ich aber vorher herausfinden, ob der Drucker gerade Busy ist und ob das Zeichen auch gesendet wurde und vom Drucker mit ACK angenommen wurde? Bei den Entry Punkten für TTY und CON gibt es einen Status Byte, welches zuvor von der Software ausgelesen werden könnte - Hier aber nicht. Wäre dann wirklich komisch, den Druckauftrag zu starten und dann festzustellen, das Busy anliegt oder das Zeichen vom Drucker wegen Busy verschluckt wurde. Die Funktion $05 hat auch keinen Ausgang, das man hier evtl. einen Fehler an die Software zurückmelden könnte.

Die Z80-PIO ist mit Port A an einen Treiber an D0-D7 des Druckers angeschlossen. Theoretisch könnten die Steuerleitungen (BUSY, ACK, PE, usw.) vom Drucker kommend mit Port B als Eingang abgefragt und ausgewertet werden. Wie aber könnte ein Programm darauf reagieren wenn der Status vom Bios nicht übergeben wird?

Ich habe im Netz aus einer alten Club 80 Zeitschrift eine Centronics Schnittstelle gefunden, welche über einen Interrupt ein "DQB-Byte" zurücksetzen kann. Falls das nicht passiert, kann sogar eine Fehlermeldung "Timeout" erzeugt werden, nur hierfür gibt es eben auch keinen Bios Entry Punkt. Auch ist es dann möglich, die Zeichen ab einem Speicherpunkt (welcher auch immer) bis ETX auszugeben. Ich denke das ist eine sehr Elegante Lösung aber sehr Spezifisch und wird wohl nicht von vielen Programmen unter CP/M 2.2 unterstützt.

Hat jemand hier schon Erfahrungen sammeln können und könnte mir hier ggf. mit seinem Wissen weiterhelfen? Ich würde mich riesig über eine Antwort freuen!

Viele Grüße,
Horst

Horst
Beiträge: 14
Registriert: 28. Mär 2020, 09:14
Wohnort: Hessen

Re: Bios Entry $05 - List Output

Beitrag von Horst » 19. Apr 2020, 17:05

Manchmal sieht man den Wald vor lauter Bäumen nicht :oops:

Die Funktion "LISTST $0F" ist das, wonch ich suchte. Diese kann nach dem Absenden des Zeichens an den Drucker gelöscht werden und durch einen Interrupt, ausgelöst durch ACK vom Drucker wieder auf $FF. So einfach...

Viele Grüße,

Horst

genie3s
Beiträge: 80
Registriert: 1. Sep 2019, 16:49

Re: Bios Entry $05 - List Output

Beitrag von genie3s » 16. Mai 2020, 09:34

Hallo Horst ...

kannst du bitte einen Link posten ?

"
im Netz aus einer alten Club 80 Zeitschrift eine Centronics Schnittstelle gefunden
"
mit freundlichen Grüßen

Fritz

Horst
Beiträge: 14
Registriert: 28. Mär 2020, 09:14
Wohnort: Hessen

Re: Bios Entry $05 - List Output

Beitrag von Horst » 16. Mai 2020, 14:03

Hallo genie3s,

http://oldcomputers-ddns.org/public/pub ... s/club-80/

Heft 45, Seite 3 und 4

Ich habe mich erst einmal gegen diese Schaltung entschieden und den PIO Port B für das Handshake genommen. Das kommt, wenn ich die Interrupts im Bios freischalte dran. Es ist eine sehr elegante Lösung, welche ich dann unbedingt einsetzen möchte...

Viel Spaß damit,
Gruß Horst

genie3s
Beiträge: 80
Registriert: 1. Sep 2019, 16:49

Re: Bios Entry $05 - List Output

Beitrag von genie3s » 16. Nov 2020, 15:15

Hallo Horst,

schön dass du in den alten Club80 Heften geblättert hast. Da immer 2 A4 verkleinert auf eine A4 Seite gedruckt wurden ist die Lesbarkeit nicht immer zufriedenstellend.

Erzähl mal was du dir inzwischen zusammengebaut hast und wenn welche Vorlage du für dein Z80 System gewählt hast.
mit freundlichen Grüßen

Fritz

Horst
Beiträge: 14
Registriert: 28. Mär 2020, 09:14
Wohnort: Hessen

Re: Bios Entry $05 - List Output

Beitrag von Horst » 6. Dez 2020, 07:13

Hallo genie3s,

ich bin immer noch sehr Aktiv am Bau des Rechners. Wie konnte ich mich nur darauf einlassen :?:

Es fing damit an, als mein Sohn (14) nich nebenbei fragte, ob man denn einen Computer aus einzelnen IC's bauen könne. Und er dann zufälligerweise auf ein Projekt mit z80, RAM und AVR im Netz gestoßen ist. Das habe ich nachgebaut, AVR geflasht - als ich dann nach ca. 35 JAHREN das A> vom CCP sah, ist es passiert - einfach so.

Mittlerweile sind es 2 Lochrasterkarten, alles von Hand mit Tefzel Draht gefädelt.
Die Hardware besteht aus den üblichen Chips:
Z80B CPU, 27256 mit Bootloader + CPM + BIOS - momentan aber 28256 :P
128K RAM mit Bankswitch Logik aus dem Zeta2

1x PIO Centronics Port
1x CTC als Timer für die SIO + System Ticker
1x SIO für TTY + UP1
1x WD37C65B Floppy Controller + 2x 3,5" 720k Laufwerk BIOS hier aus dem RomWBW Projekt
1x SIO für den Anschluss einer PC/AT Tastatur - gerade gestern fertig geworden
Ramdrive, Batteriegepuffert 4Mb SRAM

Alles was an moderne Hardware erinnert, habe ich wieder entfernt. Ich brauche nun keinen AVR und keine Seriellen SPI Shift Register mehr - falls doch, geht auch eine PIO oder ein LS374.

Momentan bin ich an der Tastatur Scancode Auswertung und Bereitstellung der eingegebenen Zeichen in einem Tastatur Puffer. Die Tastatur wird per Interrupt über die SIO ausgelesen und muss nicht gepollt werden. Das System sieht dann im Puffer nur, das ein Zeichen vorhanden ist.

Ich arbeite ausschließlich mit der Original Software von damals. Also mit M80 und L80 auf dem Zielsystem. Als Editor verwende ich Wordstar - für kleine Dateien lieber den Editr von Pascal.

Es ist ein absolut spannendes Projekt geworden und macht einen Riesen Spaß!

Abschließen möchte ich dann den Bau des Rechners mit einer Grafikkarte für 80x25 Textmode und ggf. noch Grafik mal sehen. Einen Grün Monitor mit BAS Anschluss habe ich auch bereits...

Viele Grüße ,
Horst

genie3s
Beiträge: 80
Registriert: 1. Sep 2019, 16:49

Re: Bios Entry $05 - List Output

Beitrag von genie3s » 7. Dez 2020, 20:10

Sehr schön,
ich bin begeistert, da ich als Anwender nur nachbauen kann.

Als Editor kann ich dir den VDE266 empfehlen, WS ist doch ein bischen dick.
Falls du etwas mehr als nur CP/M Umgebung haben möchtest gibt es
NZCOM und Z3PLUS als riesige Erweiterungsmöglichkeit.

Helmut hat beide sozusagen hier in den 90igern eingeführt.

Es wäre schön wenn du dich hier meldest:
http://www.gaby.de/downform.htm

Dokumentationen findest du auch hier unter ZCPR, NZCOM und Z3PLUS.

http://oldcomputers-ddns.org/public/pub ... index.html
mit freundlichen Grüßen

Fritz

genie3s
Beiträge: 80
Registriert: 1. Sep 2019, 16:49

Re: Bios Entry $05 - List Output

Beitrag von genie3s » 7. Dez 2020, 20:21

VDE gibt es fuer CP/M und MSDOS.

Die letzte CP/M Version nennt sich ZDE1.6 und ist von Carson Wilson's.
(continuation of VDE for CP/M, after Eric shifted to MS/DOS)
Ich selber nutze den VDE266.

https://sites.google.com/site/vdeeditor/Home/vde-files

http://oldcomputers-ddns.org/public/pub ... index.html
mit freundlichen Grüßen

Fritz

Horst
Beiträge: 14
Registriert: 28. Mär 2020, 09:14
Wohnort: Hessen

Re: Bios Entry $05 - List Output

Beitrag von Horst » 8. Dez 2020, 17:49

Danke für die Links.

Ich kann momentan mit den 3 Z-Systemen noch nichts anfangen - auch noch nie gehört. Wie darf ich die prinzipielle Funktionsweise verstehen? Ersetzen diese das CP/M2.2 komplett oder ist das nur ein verbesserter CCP, welcher dann an dessen Stelle geladen wird. Ich denke da jetzt spontan an MS/DOS und WIN3.11 was dann auch dazu geladen wurde aber die DOS umgebung für die Funktion benötigte. Für beide Systeme parallel dürfte ja beim Z80 mit 64k RAM wenig Platz vorhanden sein. Bleibt das BIOS hierbei erhalten, oder müsste dieses dann auch umgestrickt werden?

Momentan ist meine BIOS Config für CP/M2.2 ausgelegt. Wenn alles läuft, kann ich mir durchaus den Ausbau auf ein CPM 3 Bios vorstellen - Die Hardware mit 128k RAM sollte auf jeden Fall dazu in der Lage sein.

Wenn Interesse besteht, könnte ich zw. den Jahren mal ein paar Fotos von den Platinen machen und diese dann mit dem System hier im Foum vorstellen. Es ist zwar sehr ruhig hier im Forum aber es ist doch schön zu erfahren, das man mit diesem sehr aussergewöhnlichen Hobby nicht ganz alleine ist.

Viele Grüße,
Horst

genie3s
Beiträge: 80
Registriert: 1. Sep 2019, 16:49

Re: Bios Entry $05 - List Output

Beitrag von genie3s » 11. Dez 2020, 11:58

Hallo Horst,

auf https://forum.classic-computing.de/forum/ finden sich mehr Nutzer, allerdings ist der Anteil Z80 / CP/M zu anderen Sytemen gefühlt
ca 5 / 95 %. Überweigend sind dort CBM, Apple, Atari, PCs, DEC u.s.w. verbreitet. Ich denke viele Altuser welche hier vohanden waren sind abgewandert was schade ist.

Ich versuche mal ZCPR -> Z-System zu erläutern. Bitte nicht alles wortwörtlich nehmen.

DRI hat das CP/M in 8080 Code geschrieben. Da der Z80 einen größeren Befehlsumfang hat ist es möglich dass 8080 Code umgeschrieben nach Z80 Code weniger Platz hat. Beispiel LDIR Befehl der in 8080 Code mehr Bytes benötigt.

Der CCP unter CP/M und CP/M+ ist ein 'eigenständiges' Programm und wurde anschließend in Z80 Code neu geschrieben. Da dadurch etwas weniger Platzbedarf notwendig war hat man ein paar Verbesserungen mehr eingebaut.
ZCPR mußte am Anfang für jedes System neu assembliert und eingebunden werden.
Dazu gibt es die Librarys von Richard Conn -> SYSLIB2 SYSLIB3 welche die Programmlibraries zu dem ZCPR enthalten.

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

Hier aus: http://oldcomputers-ddns.org/public/pub ... _guide.pdf

How Does The Z-System Differ From CP/M?
The Z-System has the same underlying structure as CP/M. The BIOS of under the Z-System
is similar to the BIOS under CP/M but with certain additional functions during the "cold boot"
or initial startup of the computer. The BDOS performs the same functions in a Z-System as in
CP/M, again, with certain significant additions and improvements. It has a different name,
however--ZRDOS. ZRDOS stands for "Z80 Replacement Disk Operating System." The CCP in
the Z-System is called ZCPR3 and is the crowning glory of the Z-System, with vast increases in
functionality and power over CP/M's CCP.
While the Z-System is fully compatible with virtually all CP/M-based software, and virtually
transparent to the user of a CP/M based system, that is where the similarity ends.
Before we go on to explore some basic Z-System concepts, let us emphasize that we will not
discuss how to install Z-System on a computer currently running CP/M. There are many ways
to accomplish this, ranging from ground-up manual installation using the information supplied
in ZCPR3: The Manual,

http://oldcomputers-ddns.org/public/pub ... _(ocr).pdf


...Echelon's Vanguard or Z-Com packages. Take your choice, depending on your level of
microcomputing expertise, but from now on, we will assume you have access to a running
Z-System environment

#########################################

Soweit die Historie.

Dank Richard Conn, Jay Sage, Joe Wright, Bridger Mitchel gibt es heute das Z-System mit einer
automatischen Installation für CP/M2 und CP/M3

Helmut hatte zu NZCOM das originale Handbuch übersetzt :

http://oldcomputers-ddns.org/public/pub ... om_ger.pdf

Bei deinem CP/M2 machst zu zwecks NZCOM Installation folgendes:

NZCOM auf Diskette spielen.

Mit 'MKZCM' wählst du deine NZCOM Umgebung aus.
hc_383.jpg
hc_383.jpg (182.06 KiB) 11643 mal betrachtet
Wenn du deine Terminalemulation kennst diese mit TCSELECT auswählen.
hc_384.jpg
hc_384.jpg (198.14 KiB) 11643 mal betrachtet
und unter z.B. MYTERM.Z3T abspeichern.

Laden geht mit NZCOM MYTERM.Z3T oder im Startscript welches mit SALIAS erstellt werden kann, vorher die Terminaldefinition laden.

(Aus MYZ80)
hc_385.jpg
hc_385.jpg (107.23 KiB) 11643 mal betrachtet
Danke auch an Helmut Jungkunz der mir die vielfältigen Möglichkeiten vonm Z-System aufgezeigt hat.
Zuletzt geändert von genie3s am 11. Dez 2020, 12:26, insgesamt 1-mal geändert.
mit freundlichen Grüßen

Fritz

Antworten