Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Frage zum Drucken unter CP/M, CP/A, ... » Themenansicht

Autor Thread - Seiten: -1-
000
04.03.2017, 20:50 Uhr
Klaus



Hallo,

ich kämpfe gerade mit der Druckroutine in meinem NANOS (EPOS) und habe da mal eine Frage, die sich vermutlich allgemein auf CP/M bezieht.
Mit der Eingabe der Tastenkombination CTRL+P am Prompt wird der Druckmodus im CP/M eingeschaltet (nochmaliges Drücken der Kombination schaltet den Druckmodus wieder aus) und alle Ausgaben erscheinen parallel auf dem Bildschirm und dem Drucker. In meinem Fall ein K6320 über IFSS angeschlossen.
Das funktioniert inzwischen auch ganz gut.
Nun meine Frage:
Wenn ich z.B. DIR eingebe, erfolgt auch brav der Ausdruck, aber die letzte Zeile, d.h. die wo der Prompt A:> erscheint druckt der Drucker nicht, bzw. erst dann, wenn ich ihn per Taster am Drucker offline schalte. Sieht irgendwie so aus, als ob am Ende des Ausdruckes irgend ein CR fehlt.

Ist das beim CP/M so richtig?
Kann das evtl. mal jemand nachvollziehen, der einen Drucker an einem Rechner mit (CP/M, CPA o.ä.) laufen hat.

Danke und viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
04.03.2017, 21:02 Uhr
Mobby5



Und wenn Du ENTER nach dem Prompt drückst, wird dann gedruckt?
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
04.03.2017, 21:07 Uhr
Klaus



Ja ... dann druckt er den vermissten Prompt, aber dann fehlt der nächste ;-(
Sieht so aus, als ob nach Ausgabe des Prompt irgendwie ein CR nicht kommt.
Wie gesagt, schalte ich den Drucker dann offline, kommt der vermisste Prompt ehe der Drucker offline ist.

Möglicherweise ist dieses Verhalten ja normal und ich mache mir nur unnütz Gedanken.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 04.03.2017 um 21:08 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
04.03.2017, 21:21 Uhr
Klaus



Ich habe gerade nochmal intensiv überlegt und vermutlich ist es ganz normal, dass die letzte Prompt-Eingabezeile nicht gedruckt wird.
Die Zeile wartet ja auf eine Eingabe und ist dadurch auch nicht durch ein CR abgeschlossen.
Der Rechner hat zwar schon die Zeichen A:> zum Drucker gesendet, aber ein CR logischerweise nicht.

Wie gesagt, um 100%ig sicher zu gehen, würde ich mich freuen, wenn jemand mit einer CP/M-Rechner + Drucker Kombination dies evtl. mal kurz nachprüfen könnte.

Danke und viele Grüße,
Klaus

Dieser Beitrag wurde am 04.03.2017 um 21:27 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
04.03.2017, 22:35 Uhr
Mobby5




Zitat:
Klaus schrieb

Die Zeile wartet ja auf eine Eingabe und ist dadurch auch nicht durch ein CR abgeschlossen.
Der Rechner hat zwar schon die Zeichen A:> zum Drucker gesendet, aber ein CR logischerweise nicht.

Danke und viele Grüße,
Klaus



Na siehste.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
05.03.2017, 09:09 Uhr
Klaus



@Mobby5
Danke für den Denkanstoß.

Gleich noch eine Frage hinterher:
Was passiert normalerweise, wenn über CTRL-P die Druckausgabe eingeschaltet ist, der Drucker aber nicht bereit ist? (nicht eingeschaltet, Papierende u.s.w.)

Danke und viele Grüße,
Klaus

Dieser Beitrag wurde am 05.03.2017 um 09:10 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
05.03.2017, 09:51 Uhr
wpwsaw
Default Group and Edit


dann bleibt der Computer hängen

wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
05.03.2017, 10:30 Uhr
Klaus




Zitat:
wpwsaw schrieb
dann bleibt der Computer hängen


Danke.
Interessant .... also kein Timeout oder Fehlermeldung .... komisch.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 05.03.2017 um 10:30 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
05.03.2017, 12:05 Uhr
Mobby5



Na, wenn man drucken will, sollte der Drucker auch schon betriebsbereit sein.
In diesem Fall hier, würde ja auch die Ausgabe einer Fehlermeldung gedruckt werden wollen, was wieder in einer Fehlermeldeung enden würde, welche dann wieder gedruckt... usw.
Ok, es könnte bei einem Fehler beim Drucken der Bildschirmausgabe, die Hardcopy funktion ausgeschaltet werden und dann der Fehler angezeigt werden.

Aber auf welche Zeit, will man das Timeout setzen? Vielleicht ist nur das Papier zu Ende und muss gewechselt werden. Wenn man sich dann nicht beeilt, ist die Druckausgabe flöten?
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
05.03.2017, 12:59 Uhr
Klaus



Ok Mobby5.
Das leuchtet ein.

In der originalen EPOS-Druckroutine (vom NANOS-System) ist allerdings so einen komische Timeoutschleife drin, die dann mit Tastendruck verlassen wird.


Quellcode:

lst:                             ;Zeichen in C zum Drucker
          ld       a,c
          push     af
          ld       hl,prmark
          ld       a,(hl)
          ld       (hl),1       ;schon initialisiert
          or       a
          call     z,pinit     ;nein, SIO und CTC initialisieren

          ld       bc,0        ;Schleifenzähler fur Timeout
lwait:    dec      bc
          call     pready    ;Drucker bereit?
          or       a
          jr       nz,print   ;wenn bereit, drucken
          ld       a,b
          or       c
          jr       nz,lwait
          call     const      ;Tastenbetaetigung
          or       a
          jp       nz,0        ;warmboot
          inc      bc
          jr       lwait



Zitat EPOS-Doku:
".... Wenn der Drucker bereit ist, wird das Zeichen zum Drucker übertragen und die Routine beendet. Wenn der Drucker nicht bereit ist, wird zyklisch weiter abgefragt. Nach 0FFFFh-maliger Status-Abfrage kann durch Tastenbetätigung ein Warmstart ausgelöst werden."

Das doofe ist aber, dass der Warmstart vermutlich nicht das CTRL-P zurücksetzt und so eine schöne Endlosschleife entsteht.
Ich werde diesen Kram mit dem Timeout rausschmeißen, wenn es beim CP/M, wie von Dir geschildert einfach alles stehen bleibt, bis der Drucker bereit ist.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 05.03.2017 um 13:01 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
05.03.2017, 14:31 Uhr
Heiko_P



@Klaus, teste das mal vorher ohne geladenen GIDE-Treiber, der Treiber fängt nämlich solche Warmstart-Funktionen ab. So völlig unnütz finde ich ein Timeout nicht, je nachdem was man damit erreichen will.

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
05.03.2017, 15:43 Uhr
Klaus



Hallo Heiko,

der GIDE-Treiber war bei meinen Tests nicht geladen.
Mit geladenem Treiber ist der Effekt der selbe.
Der wirkliche Vorteil von der Timout (sofern es funktionieren würde) ist, dass bei gewählter Druckfunktion mit CTRL-P und evtl. nicht behebbarer Störung am Drucker der Rechner nicht mit einem Kaltstart komplett neu gestartet werden muss und so evtl. Daten bzw. Treiber erhalten bleiben.
Aber ich denke die CTRL-P Funktion wird vermutlich selten genutzt.

Bringt Wordstar bzw. andere CP/M Programme eigentlich eine eigene Druckroutine mit?
Sorry, ich habe mich mit der Druckerei unter CP/M noch nie wirklich ernsthaft beschäftigt.

EDIT: Ich habe mal mit PIP LST:=TEST.TXT etwas ausgegeben und dabei einen Druckerstörung simuliert. Da funktioniert das vermutlich mit dem Timeout.
D.h. die Ausgabe bricht nach Tastendruck ab und der Rechner macht einen Warmstart.
Leider scheint die Timout Zeit viel zu kurz zu sein, denn beim normalen Ausdruck bricht der Druck bei Tastendruck auch ab (vermutlich, wenn der Druckpuffer voll ist und der Rechner warten muss).
Warum das aber bei CTRL-P nicht geht.... keinen Ahnung.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 05.03.2017 um 16:16 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek