###   Projekte und Informationen rund um den KC85   ### 

ESCAPE-Steuerfolgen (2)

von Mario Leubner

Aus aktuellem Anlaß möchte ich an dieser Stelle den Beitrag von Uwe Felgentreu fortsetzen. Mit dem neuen SYSGEN ist es ja leicht möglich, ZAS direkt in die Systemspuren zu integrieren. Darum soll auch jeder wissen, welche Möglichkeiten sich dadurch ergeben. Ich möchte jedoch für alle, die ZAS noch nicht kennen, kurz ein paar Grundlagen erläutern bevor ich zu den ESC-Sequenzen komme.

Mit JUMP FC werden zunächst 3 Standardtreiber im Grundgerät erzeugt. Diese stammen aus dem EPROM im D004 und enthalten:

  • einen einfachen V.24-Druckertreiber mit 1200 Baud (Kanal 1)
  • einen einfachen Koppeltreiber mit 1200 Baud (Kanal 2)
  • einen Terminaltreiber für die Standardfunktionen

Wer andere Treiber benötigt, kann mit MSYSG.COM seine eigenen in den Systemspuren installieren. Die installierten Treiber überschreiben dann beim Booten die Standardtreiber. Eine Möglichkeit zum Ersetzen des Terminaltreibers gab es jedoch nicht. Deshalb entstand ZAS, zunächst als COM-Datei und später als ZAS-Treiberdatei.

Beide Varianten sind identisch, nur daß die COM-Datei den Programmteil zum Laden des Treibers mit enthält, während für *.ZAS eine spezielle Laderoutine eines anderen Programmes genutzt wird. Es gibt also zunächst 3 Varianten, ZAS zu laden.

  1. Start der Datei ZAS.COM:
    Das dürfte den meisten schon bekannt sein und ist die einfachste Art ZAS zu laden. Der Ladevorgang wird am Bildschirm angezeigt.

  2. Laden der Datei *.ZAS mit dem Programm LADE.COM:
    Das Programm LADE.COM stellt einen universellen Lader für die KC-Treiber dar. Es können also Druckertreiber *.LST, Koppeltreiber *.KOP und Terminaltreiber *.ZAS geladen werden.

  3. Installation in den Systemspuren des neuen Systems:
    Wer das ZSDOS-Paket besitzt und damit die Möglichkeiten des neuen Systems nutzen kann, hat jetzt noch die Möglichkeit ZAS mit in die Systemspuren zu schreiben. Das hat den Vorteil, daß ZAS nicht mehr als Datei von der Diskette (Festplatte) geladen werden muß und der Bootvorgang alle gewünschten Treiber automatisch lädt.

ZAS4 V1.1

ZAS wurde ja bereits in den KC-News 2/95 (Version 1.0) und KC-News 4/95 (Version 1.1) vorgestellt. Seit dieser Version gab es keine Änderungen mehr, es gibt jedoch bereits Vorstellungen über eine effektive Erweiterung zur Verwaltung des RAM4, wie in dieser Ausgabe nachzulesen ist.

ZAS läuft nur auf dem KC85/4 (bzw. KC85/5)! ZAS belegt im Grundgerät den Speicher von 400H bis 2000H. Beim Laden von ZAS wird außerdem der RAM4 benutzt, da das laufende ZAS nicht einfach überschrieben werden kann. Allgemein gilt im Grundgerät folgende Belegung:

0200H..037FH Druckertreiber
0380H..03FFH Koppeltreiber
0400H..1FFFH Terminaltreiber
2000H..3AFFH frei
3B00H..3CFFH RAM-Floppy-Verwaltungstabelle (für max. 4 MByte)
3D00H..3FFFH Bildschirmhilfstabelle für KC85/2,3
4000H..7FFFH bei KC85/2,3 nicht vorhanden, bei KC85/4,5 frei.

Gegenüber dem Terminaltreiber aus dem EPROM FC wurden einige Fehler beseitigt und viele neue Funktionen eingebaut. Dabei sind viele Programmteile optimiert worden. Es ist davon auszugehen, daß kein Programmteil mehr auf der ursprünglichen Adresse läuft. Aber das ist ja eigentlich nicht von Bedeutung, wenn man sich an die definierten Schnittstellen hält.

Bildschirmsteuerzeichen und ESC-Sequenzen:

Die Steuerzeichen und ESC-Sequenzen sind aufwärtskompatibel. Alle im "Handbuch für den Programmierer" abgedruckten Funktionen sind also uneingeschränkt weiterverwendbar. Als Programmierer sollte man beachten, daß die neuen Funktionen nur mit ZAS und nur auf dem KC85/4 verfügbar sind. Wer also Programme schreiben will, die auch auf dem KC85/3 laufen sollen, muß sich mit den alten Funktionen begnügen - doch auch dabei sind noch Abstriche zu machen bei den Funktionen ESC-60H bis ESC-62H.

Als erstes folgt eine Tabelle aller zur Zeit gültigen Bildschirmsteuerzeichen. Die in der ersten Spalte mit einem + gekennzeichneten Funktionen sind nur mit ZAS verfügbar. Vergleiche dazu Anlage 2 im Handbuch für den Programmierer.

Neu ASCII Hex. dez. Wirkung der Kommandos

  ^A 01H 1 Cursor in HOME-Position (links/oben)
+ ^B 02H 2 Cursor einschalten
+ ^C 03H 3 Cursor ausschalten
+ ^D 04H 4 Normaldarstellung (invers aus)
+ ^E 05H 5 Inversdarstellung ein
  ^G 07H 7 BEEP (Signalton)
  ^H 08H 8 Cursor eine Position nach links
+ ^I 09H 9 Tabulatorschritt vorwärts
  ^J 0AH 10 Cursor eine Zeile nach unten
+ ^K 0BH 11 Zeichen löschen (Zeichen rechts rücken nach)
  ^L 0CH 12 Bildschirm löschen und Cursor HOME
  ^M 0DH 13 Cursor zum Zeilenanfang
+ ^N 0EH 14 Zeichensatz 1 (deutsch)
+ ^O 0FH 15 Zeichensatz 2 (amerikanisch)
+ ^R 12H 18 Leerzeichen einfügen
  ^T 14H 20 Löschen bis Bildschirmende
  ^U 15H 21 Cursor um eine Position nach rechts
  ^V 16H 22 Löschen bis Zeilenende
+ ^W 17H 23 Leerzeile einfügen
  ^X 18H 24 Zeile löschen
+ ^Y 19H 25 Zeile löschen (Zeilen unterhalb rücken nach)
  ^Z 1AH 26 Cursor um eine Zeile nach oben
  ESC 1BH 27 ESCape-Funktion bzw. Cursorpositionierung
+   1CH 28 Scroll-Modus einschalten
+   1DH 29 Page-Modus einschalten
  DEL 7FH 127 Zeichen links vom Cursor löschen
    82H 130 Cursor einschalten
    83H 131 Cursor ausschalten
+   84H 132 Normaldarstellung (invers aus)
+   85H 133 Inversdarstellung ein


Die Steuercodes 82H bis 85H sind nur im ASCII-Modus wirksam, im IBM-Modus werden hiermit Zeichen erzeugt! Im IBM-Modus sollten deshalb nur die Steuerzeichen 2-5 für diese Funktionen eingesetzt werden. Kommen wir nun aber zu den ESC-Funktionen, die dem KC unter CP/M die Verwendung von Grafik, Farbe und Tonausgabe ermöglichen. Vergleiche dazu Anlage 3 im Handbuch für den Programmierer.

  ASCII Hex. dez. Bedeutung Name Anz. Parameter

  A 41H 65 Punktsetzen PSET 3 XX,Y
  B 42H 66 Punktlöschen PRES 3 XX,Y
  C 43H 67 Grafikfarbe GFARB 1 F
  D 44H 68 Linie LINE 6 XX1,Y1,XX2,Y2
  E 45H 69 Kreis CIRCL 4 XX,Y,R
  F 46H 70 Fensteraufruf WINDOW 1 N
  G 47H 71 Tonausgabe SOUND 6 T1,V1,T2,V2,L,Z
  H 48H 72 Textfarbe COLORZ 2 F,H
+ I 49H 73 Tabulator rückwärts BACKTAB 0 -
+ J 4AH 74 IBM-Zeichensatz ZIBM 0 -
+ K 4BH 75 ASCII-Zeichensatz ZASCII 0 -
  L 4CH 76 Fenster initial. WININI 5 N,X1,Y1,X2,Y2
  M 4DH 77 Pixel löschen CLSG 0 -
  N 4EH 78 Vordergrund wechseln INK 1 F
  O 4FH 79 Hintergrund wechseln BACK 1 H
  P 50H 80 Bildschirmmode 80/40 BSMODE 0 -
  Q 51H 81 1 Byte lesen READ1 2 AA
  R 52H 82 256 Byte lesen READN 3 AA,D
  S 53H 83 1 Byte schreiben WRITE1 3 AA,B
  T 54H 84 nn Bytes schreiben WRITEN 4+ AA,NN,(NN*B)
  U 55H 85 Unterprogrammaufruf GOSUB 2 AA
  V 56H 86 CAOS-Zeichenausgabe CAOSBS 1 B
  W 57H 87 Ausgabe USERPORT 2 USOUT2 1 B
  X 58H 88 Ausgabe USERPORT 3 USOUT3 1 B
+ Y 59H 89 256 Byte lesen RD256 2 AA
+ Z 5AH 90 256 Byte schreiben WR256 2 AA
  Ä 5BH 91 CAOS-Sprungverteiler CAOSP 1 N
  Ö 5CH 92 Rückkehr zu CAOS EXIT 0 -
  Ü 5DH 93 Wechsel USA/deutsch ZSATZ 0 -
  ^ 5EH 94 PAGE/SCROLL-Mode SCRMOD 0 -
  _ 5FH 95 KEYBOARD klein/groß KBDMOD 0 -
  ` 60H 96 Wechsel IRM-Ebene IRMEB 1 S
  a 61H 97 IRM-Auflösung normal IRMLO 0 -
  b 62H 98 IRM-Auflösung hoch IRMHI 0 -
  c 63H 99 Module schalten SWITCH 2 M,S
  d 64H 100 Punkttesten PTEST 2 XX
  e 65H 101 F-Taste belegen FKEY 1 N
+ f 66H 102 Farbmodus ein/aus FARB80 1 S
+ g 67H 103 Fenster definieren WIN80 6 X1,Y1,X2,Y2,F,H
+ h 68H 104 Fenster löschen WCLS 0 -
+ i 69H 105 Schatten um Fenster SHADOW 2 F,H
+ j 6AH 106 Rahmen in Fenster FRAHM 1 F,N
+ k 6BH 107 Rahmen zeichnen RAHM 7 XX1,Y1,XX2,Y2,N
               
    80H 128 Locate Zeile, Spalte      
    ..D0H ..208        


Bedeutung der Parameter:

1 Zeichen

= 1 Byte

 

Doppelzeichen

= 2 Byte (Wort, low/high)

 
AA - Adresse M - Moduladresse V - Vorteiler
B - Byte N - Nummer XX - X-Koordinate
D - Dummy NN - Anzahl Y - Y-Koordinate
F - Farbcode R - Radius Z - Tondauer
H - Hindergrund S - Steuerbyte  
L - Lautstärke T - Tonhöhe  

Auch hier habe ich den neuen Funktionen wieder ein "+" vorangestellt. Neue Funktionen ohne Parameter können auch ohne ZAS4 aufgerufen werden, d. h. sie richten keinen Schaden an - es erfolgt aber auch keine Reaktion! So kann man z. B. durch Ausgabe von ESC-J testen, ob ein ZAS mit IBM-Steuerzeichen aktiv ist. Der IBM-Zeichensatz wird ja in Bit 4 von BSSTAT zurückgemeldet.

Auf eine ausführliche Beschreibung der neuen ESC-Sequenzen möchte ich an dieser Stelle verzichten. In der Datei ZASINFO.DOK ist alles nachzulesen und kann bei Bedarf auch ausgedruckt werden. Eine Kurzübersicht gibt auch das Demoprogramm ZASDEMO.COM.