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. |