Paralleles und serielles Interface CE-158 am PC-1600

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