★ APPLICATIONS ★ DIVERS ★ CENTRONICS-PORT MIT ACHT BIT ★ |
Centronics-Port mit acht Bit | Applications Divers |
Im ersten Schneider-Sonderheft (Ausgabe 2/85) stellten wir eine Hardware-Lösung vor, die das achte Datenbit an den Drucker übertragen kann. Zumindest mit dem Schneider-NLQ 401 ist dies aber auch allein durch Programm möglich.. Durch den Befehl »PRINT#8, CHRS(27); " = "« kann man beim NLQ 401 den normalen Zeichensatz abschalten und durch den Grafikzeichensatz ersetzen. Das Grafikzeichen mit dem Code 200, hat danach den Code 72 (200 minus 128). Erst durch das Steuerzeichen »Nul« wird wieder der normale Zeichensatz eingeschaltet. Das Grafikzeichen 200 ist also durch die Befehlsfolge »PRINT#8, CHR$(27) " = "chr$(200) chr$(0);« zu ersetzen. In Basic-Programmen ist das aber ein unzumutbarer Aufwand. Die Lösung bringt ein kurzes Maschinenprogramm, das die normale Drucker-Zeichenausgabe des CPC-Betriebssystems ersetzt. Die neue Ausgabe testet bei jedem Zeichen zunächst, ob ein Grafikzeichen vorliegt. Wenn nein, wird die eingebaute Zeichenausgaberoutine aufgerufen. Wenn ja. wird der zu diesem Grafikzeichen gehörende Ersatzstring an den Drucker geschickt. Diese Maschinen-Routine ist nur 23 Byte lang und kann im Speicher beliebig verschoben werden. Das aufrufende Basic-Programm sollte es unmittelbar an die obere Speichergrenze legen und den Platz vor Überschreiben schützen. Einige POKE-Befehle übertragen die Adresse der originalen Zeichenausgaberoutine in das Maschinenprogramm. Anstelle des Aufrufs der alten Zeichenausgabe wird ein Sprung zur neuen eingesetzt. Nachdem der Basic-Lader wie gewöhnlich mit »RUN« gestartet wurde, kann er mit »NEW« gelöscht werden, ohne daß die neuen Codes verlorengehen. Deshalb arbeitet die Routine auch mit beliebigen Programmen zusammen. die erst später dazugeladen werden. Ein mehrfacher Aufruf des Basic-Laders kann zu undefinierbaren Resultaten führen. Es sollte deshalb unterbleiben. Helmut Tischer/Ja , HAPPY COMPUTER
|