Bios Entry $05 - List Output

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

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: 3
Registriert: 28. Mär 2020, 09:14

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: 12
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
"

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

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

Antworten