CE-158 Centonics Schnittstelle:
Wenn man einen Drucker vom PC-1600
über CE-158 ansteuert, kann es Probleme geben. Der CE-158 kennt den
Befehlssatz des PC-1600 nicht. Betrachten wir folgendes Programm:
Dieses Programm soll über
das CE-158 ausgelistet werden:
MODE
1
(Enter Taste drücken)
OPN "LPRT"
(Enter Taste drücken)
CONSOLE 0,0 (Enter
Taste drücken)
LLIST
(Enter Taste drücken)
Die PC-1600 spezifischen Befehle, wie DATE$ und ELSE, werden durch "''" ersetzt und das Listing wird wird schwer verständlich. Die Zeilennummern in Sprungbefehlen werden im PC-1600 als Binärcode gespeichert ( immer 2 Byte ) und nicht als ASCII wie beim PC-1500. Der CE-158 übersetzt diese Binärcodes nicht in ASCII, und statt Zeilennummern schreibt der Drucker seltsame Zeichen. Ein Listing mit einem Brotherdrucker HR-15 kann so aussehen:
100:INPUT "Datum oder Uhrzeit ?
(D/U)?";D$
110:IF D$="D" PRINT '' '' PRINT
'' ''
120:GOTO d
Es gibt mehrere Wege dieses Problem
zu vermeiden. Wenn der Drucker eine RS232C Schnittstelle besitzt, kann
man ganz einfach den CE-158 in eine Schublade werfen, und die im PC-1600
enthaltene RS232C benutzen. Fals der Drucker stat RS232C eine Centronics
Schnitstelle hat, geht das nicht.
Es gibt aber eine Lösung,
die ich hier beschreiben will. Angenommen das obige Programm ist im Programmspeicher.
Saven Sie das Programm mit SAVE"d:name.BAS",A ; dabei ist d: entweder S1:
, S2: , X: , Y: oder CASS: . Dabei wird das Programm als ASCII Datei
gespeichert, d.h. alle Tokens und Zeilennummern sind als ASCII Zeichen
gespeichert. Laden Sie dann das Programm mit LOAD*"d:name.BAS". Das Programm
kann jetzt durch
MODE 1
(Enter Taste drücken)
OPN "LPRT"
(Enter Taste drücken)
CONSOLE 0,0 (Enter
Taste drücken)
LLIST
(Enter Taste drücken)
gelistet werden. Das Listing enthält das eigentliche Programm in REM Zeilen, und jede Zeile hat 2 Zeilennummern. Entfernt man die erste Zeilennummern und die " ' " Zeichen ( Fett und untersrichen) , so wird das Listing folgendermassen:
10: '100 INPUT "Datum
oder Uhrzeit ? (D/U)?";D$
20: '110 IF D$="D"
PRINT DATE$ ELSE PRINT TIME$
30: '120 GOTO 100