8.4. Video-Interface, 80 Zeichen

Inhaltsverzeichnis

Einleitung

Das hier beschriebene Video-Interface BFZ/MFA 8.4 ersetzt das Video-Interface BFZ/MFA 8.2. Es bietet alle Funktionen des Interfaces BFZ/MFA 8.2 und kann darüber hinaus Kleinbuchstaben und Umlaute darstellen. Auf dem Video-Interface ist ein Summer integriert. Er übernimmt die Funktion des in der Tastatur eingebauten Summers. In der zusätzlichen Betriebsart „TVI 950“ sind Steuersequenzen implementiert, die z.B. die Positionierung des Cursors und die Wahl verschiedener Darstellungsarten ermöglichen.

Das Video-Interface kann unter dem Betriebsprogramm MAT 85 und unter dem Betriebssystem CP/M verwendet werden. An dem Betriebsprogramm/Betriebssystem des MFA-Mikrocomputers sind keine Änderungen erforderlich. Eine Hardwareänderung (Drahtbrücken auf der verwendeten Serien-Schnittstelle) ist lediglich beim Einsatz unter dem Betriebssystem CP/M erforderlich.

Grundvoraussetzung für ein ordnungsgemäßes Funktionieren (gleichgültig ob unter MAT 85 oder unter CP/ M) ist allerdings die richtige Einstellung der DIL-Schalter auf dem Video-Interface des BFZ/MFA 8.4. Diese Einstellung hängt vom verwendeten Betriebsprogramm ab und ist im Kapitel „Einsatz unter dem Betriebsprogramm MAT 85“ bzw. im Kapitel „Einsatz unter dem Betriebssystem CP/M“ beschrieben .

Funktionsbeschreibung

Einleitung

Für den Austausch von Informationen zwischen Computer und Bediener verwendet man Datensichtstationen. In Computersystemen kommen Datensichtstationen meist dann zur Anwendung, wenn Textinformationen angezeigt oder eingegeben werden müssen. Eine Datensichtstation besteht aus den Funktionseinheiten Tastatur, Video-Interface und Monitor.

Der Monitor entspricht einem Fernsehgerät ohne HF-Empfangsteil, da das im Video-Interface das zeugte· Bildsignal (auch BAS-Signal genannt) unmittelbar dem Monitor zugeführt wird. Bild 1 zeigt die Zusamenschaltung einer Datensichtstation mit einem Mikrocomputer

Bild 1: Datensichtstation und Mikrocomputer

Jede Betätigung einer Taste der Tastatur bewirkt, dass ein Zeichen von der Datensichtstation an den Mikrocomputer gesendet wird. Andererseits werden Zeichen, die vom Mikrocomputer an die Datensichtstation gesendet werden, auf dem Bildschirm dargestellt. Für diesen Betrieb ist im Mikrocomputer ein Programm erforderlich, das Teil des Betriebssystems bzw. der Anwender-Software
ist.

Darstellung von Zeichen auf dem Bildschirm

Für die Darstellung von Zeichen (Buchstaben, Ziffern, Sonderzeichen) auf dem Bildschirm wird ein erfahren angewendet, bei dem jedes Zeichen durch Punkte eines Matrixrasters dargestellt wird. Häufig werden hierzu Matrixgrößen von 5×9 oder 7×10 Punkten verwendet. Bild 2 zeigt ein 5×9-Raster für die Buchstaben H und y.

Bild 2: Zeichendarstellung im 5 x 9-Raster

Die einzelnen Punkte – auch Pixel genannt (vom engl. Picture Element, Bild-Element) – werden im Monitor durch einen Elektronenstrahl erzeugt, der entsprechend den darzustellenden Zeichenpunkten in seiner Intensität gesteuert wird (Hell-/Dunkelsteuerung). Dieser Strahl wandert kontinuierlich Punktreihe für Punktreihe über die Leuchtschicht der Bildröhre.

Zur Strahlablenkung enthält der Monitor zwei Sägezahngeneratoren. Die horizontale Ablenkung übernimmt ein Sägezahngenerator mit der Periodendauer T1 = 64 us. Die vertikale Ablenkung erfolgt durch einen zweiten Sägezahngenerator mit der Periodendauer T2 = 20 ms. Aus dem Verhältnis der beiden Periodenzeiten T2/T1 ergibt sich die Anzahl von 312,5 Punktzeilen je Bild. Innerhalb einer Sekunde wird das gesamte Schriftfeld 50 mal auf dem Bildschirm dargestellt. Die Sägezahngenerateren im Monitor werden durch Horizontal- und Vertikal-Impulse synchronisiert. Bild 3 zeigt Lage und Einteilung des Schriftfeldes auf dem Bildschirm.

Bild 3. : Schriftfeld auf dem Bildschirm

Das hier beschriebene Video-Interface kann wahlweise 22, 24, 26 oder 28 Zeichen pro Zeilen und 72, 80, 88 oder 96 Zeichen-Spalten auf dem Bildschirm darstellen. Im folgenden wird jeweils von einer Einstellung auf 24 Zeichen-Zeilen und 80 Zeichen-Spalten ausgegangen. Diese Einstellung wurde ebenfalls für das Bild 3 angenommen. Zwischenräume zwischen den Zeichen sorgen für eine gute Lesbarkeit. Zur Vermeidung von Randunschärfen ist das Schriftfeld kleiner als das Bildschirmfeld. Dazu wird der Elektronenstrahl im Bereich der Bildschirmränder dunkelgesteuert.

Damit die einzelnen Zeichen – und damit das gesamte Schriftfeld – unverzerrt und ruhig auf dem Bildschirm erscheinen, muss das Video-Interface folgende Informationen an den Monitor liefern:

  • Impulse, die dem Monitor anzeigen, dass ein neues Bild beginnen soll. Durch diese Impulse wird der Elektronenstrahl dunkelgesteuert und zur linken oberen Bildecke abgelenkt (Vertikal-Synchronimpulse).
  • Impulse, die dem Monitor anzeigen, daß eine neue Punktzeile beginnen soll. Hierdurch wird der
    Elektronenstrahl dunkelgesteuert und zum nächsten Zeilenbeginn abgelenkt (Horizontal-Synchronimpulse).
  • Die Information über die hell oder dunkel darzustellenden Bildpunkte einer Zeile (Bild-Signal).

Diese lnformationen müssen entsprechend der CCIR-Fernsehnorm in einem Signal vermischt dem Monitor zugeführt werden. Dieses Signal nennt man kurz BAS-Signal, entsprechend der in ihm enthaltenen Informationen für Bild, Austastung (Dunkelsteuerung) und Synchronisierung.

Bild 4 zeigt den Verlauf des Signals. das zur Darstellung der Punkte einer Punktreihe benötigt wird. 11 solcher „Signalpakete“ werden zur Darstellung einer Zeichen-Zeile benötigt (9 zur Darstellung der jeweils 9 Pixel hohen Zeichen, 2 als Abstand zur nächsten Zeichen-Zeile). 264 „Signalpakete“ werden zur Darstellung des gesamten Schriftfeldes-vom Video-Interface erzeugt (24 Zeichen-Zeilen mit je 11 Punktreihen).

Bild 4: Das BAS – Signal

In einer Zeichen-Zeile werden 80 Zeichen (jeweils 5 Punkte breit) dargestellt. Zusammen mit den zwei Punkten zwischen den Zeichen ergeben sich so 560 Punkte je Punkt-Zeile. Zur Darstellung dieser Punkte innerhalb von 46,7 us benötigt man einen „Punktgenerator“ mit einer Frequenz von 12 MHz.

2.3 Die Erzeugung der Signale für die Zeichendarstellung

Das Blockschaltbild (Bild 5) zeigt die Haupt-Funktionseinheiten der Schaltung

Der CRT-Controller
Er steuert die Zeichenausgabe und erzeugt die hierfür notwendigen Signale. (CRT = cathode ray
tube, Bildröhre. Controller = Steuerbaustein).

Der Bildwiederhol-Speicher
Der Bildwiederhol-Speicher besteht aus dem Zeichencode-Speicher und dem Attribut-Speicher. Im Zeichencode-Speicher werden die Codes der auf dem Bildschirm darzustellenden Zeichen gespeichert. Durch die Speicher-Adresse innerhalb des Zeichencode-Speichers ist die Position des Zeichens auf dem Bildschirm festgelegt. Im Attribut-Speicher werden die Attribute der einzelnen Zeichen gespeichert. Die Attribute legen fest, wie ein Zeichen darzustellen ist (blinkend, unterstrichen usw.). Die über Attribute festgelegte Darstellungsart darf nicht mit der durch den Zeichengenerator festgelegten Zeichennorm verwechselt werden. Der Zeichencode und der Attribut-Speicher haben gemeinsame Adress- aber getrennte Daten-Leitungen. Am Zeichencode- und am Attribut-Speicher liegt also immer die gleiche Adresse an.

Der Zeichengenerator (Character-Generator)
Der Zeichengenerator ist ein Nur-Lese-Speicher (ROM). Durch ihn wird die Form der einzelnen
Zeichen festgelegt.

Der Mikrocontroller
Der Mikrocontroller ist ein in einem IC zusammengefasster Mikrocomputer (auch Single-Chip-Mikrocomputer genannt). Er wickelt den Datenaustausch zwischen Interface und MFA-Mikrocomputer ab. Der Mikrocontroller erkennt die vom Mikrocomputer zum Interface gesendeten Steuer-Zeichen und führt die gewünschten Funktionen (z.B. Bildschirm löschen) aus. Werden darstellbare Zeichen zum Interface übertragen, so „weiß“ der Mikrocontroller, an welcher Stelle des Schriftfeldes die empfangenen Zeichen dargestellt werden sollen und schreibt sie in die entsprechende Speicher-Zeile des Bildwiederhol-Speichers ein.

Einschreiben der Zeichen in den Bildwiederhol-Speicher

Die Zeichen, die auf dem Bildschirm dargestellt werden sollen, sind im ASCII-Code verschlüsselt (ASCII = American Standard Code for Information lnterchange, amerikanischer Standard-Code für den Informationsaustausch). Eine ASCII-Codetabelle befindet sich im Anhang.

Das erste Zeichen, das der Mikrocomputer nach dem Einschalten zum Interface überträgt, wird in der linken oberen Ecke des Schriftfeldes dargestellt. Soll dort z.B. der Buchstabe „A“ dargestellt werden, so sendet der Mikrocomputer den Code 41 H an das Video-Interface. Der Microcontroller auf dem Interface erkennt aus dem Code, dass es sich um ein darstellbares Zeichen handelt. Er weiß außerdem an welcher Position des Schriftfeldes das Zeichen dargestellt werden soll und trägt den Code in die entsprechende Speicherzeile (in diesem Falle in die erste Speicher-Zeile) des Zeichencode-Speichers ein. Überträgt der Mikrocomputer als nächstes Zeichen den Buchstaben „B“ (Code 42H) an das Video-Interface, so wird dieser Code in die nächste Speicher-Zeile des Zeichencode-Speichers geschrieben.

Hat der Mikrocomputer nach dem Einschalten zwei Zeichen (z.B. „A“ und „B“) zum Interface übertragen, so werden diese beiden Zeichen nebeneinander in der ersten Zeile des Schriftfeldes gezeigt. Das dritte Zeichen, das der Mikrocomputer zum Interface überträgt, würde rechts neben dem “B“ – also in der dritten Spalte der ersten Zeile – angezeigt. Will man nun erreichen, dass dieses Zeichen in der dritten Spalte der Zweiten Zeile angezeigt wird, so muss man zuvor das Steuer-Zeichen „Line Feed“ (Zeilenvorschub, Code 0AH) zum Interface übertragen. Der Mikrocontroller erkennt dieses Steuerzeichen und trägt das darauf folgende Zeichen in die richtige Speicher-Zeile des Zeichencode-Speichers ein. Auf dem Bildschirm kennzeichnet ein Cursor (Schreibmarke) die Stelle, an der das nächste Zeichen angezeigt wird.

Bild 5 Blockschaltbild des Video-Interfaces

Auslesen der im Bildwiederhol-Speicher eingeschriebenen Zeichen (Bilddarstellung)

Während der Elektronenstrahl eine Punktreihe überstreicht, muss er entsprechend den darzustellenden
Zeichen hell- oder dunkelgesteuert werden. Der dazu notwendige Ablauf ist im folgenden beschrieben:

Der CRT-Controller besitzt intern mehrere Zähler. Einer davon zählt, welche Zeichen-Spalte momentan vom Elektronenstrahl auf dem Bildschirm geschrieben wird (Zeichenspalten-Zähler). Ein weiterer zählt, welche Zeichen-Zeile momentan vom Elektronenstrahl geschrieben wird (Zeichenzeilen-Zähler). Um einen Zeichen-Code aus dem Zeichencode-Speicher auszulesen, schaltet der CRT-Controller beide Zählerstände auf die Adressleitungen des Speichers (siehe Bild 5). Auf diese weise wird im Zeichencode-Speicher das Zeichen adressiert, das momentan vom Elektronenstrahl auf den Bildschirm angezeigt wird.

Wird zum Beispiel gerade das erste Zeichen der ersten Zeile dargestellt, so stehen beide Zähler auf Null, da die Zeilen- und Spalten-Zählung jeweils bei Null beginnt. Daraus ergibt sich die „Speicher-Adresse“ 0000H. Soll an dieser Bildschirmposition der Buchstabe „A“ dargestellt werden, so ist zuvor vom Mikrocontroller der entsprechende ASCII-Code (41H) jn diese Speicher-Zeile des Zeichencode-Speichers eingeschrieben worden. Der Code wird nun vom CRT -Controller ausgelesen und liegt an den Daten-Ausgängen des Zeichencode-Speichers an. Durch diesen Code ist lediglich festgelegt, welches Zeichen dargestellt werden soll. Wie dieses Zeichen dargestellt werden soll, also die Zeichenform, wird durch den nachfolgend beschriebenen Zeichengenerator festgelegt.

Auslesen der Zeichenform-lnformation aus dem Zeichengenerator

Die Information über die Form des darzustellenden Zeichens ist im Zeichengenerator festgelegt. Hierbei handelt es sich um einen Nur-Lese-Speicher (ROM). Bild 6 zeigt den Inhalt einiger Speicher-Zeilen dieses ROMs. Die dargestellten Speicher-Zeilen enthalten die Information über die Form der Buchstaben „G“ und „g“. Die aus dem Zeichencode-Speicher ausgelesenen Daten (ASCII Code der darzustellenden Zeichen) gelangen auf die höherwertigen Adressleitungen des Zeichengenerators. Über diese Adressleitungen wird die Zeichenform-Information für das darzustellende Zeichen ausgewählt. Man spricht daher auch von der Zeichen-Adresse.

Bild 6: Programmierung des Zeichengenerators (Auszug)

Die einzelnen Zeichen sind aus 9 Punktreihen aufgebaut. Während der Elektronenstrahl von links nach rechts über den Bildschirm abgelenkt wird, zeichnet er jeweils eine dieser Punktreihen. Ein weiterer Zähler innerhalb des CRT-Controllers enthält hierzu die Information, in welcher Punktreihe des Zeichens der Elektronenstrahl sich momentan befindet. Der Stand dieses Punktreihen-Zählers gelangt auf die niederwertigen Adressleitungen des Zeichengenerators (Reihen-Adresse).

Über die Reihenadresse wird die Zeichenform-Information einer Punktreihe (Punktreihen-Daten) des darzustellenden Zeichens ausgewählt. Die Daten einer Punktreihe werden aus dem Zeichengenerator ausgelesen und gelangen zum Schieberegister.

Erzeugung des BAS-Signals aus den Punktreihen-Daten

Zur Ansteuerung des Monitors muss aus den Punktreihen-Daten noch das BAS-Signal gewonnen werden. Hierzu setzt ein Schieberegister die Punktreihen-Daten in einen seriellen Datenstrom um. Während der Elektronenstrahl die Zeichen-Spalte überstreicht, werden nacheinander alle 5 Punkte der Punktreihe des darzustellenden Zeichens am Ausgang des Schieberegisters ausgegeben.

Das Schieberegister liefert aber nur den Bild-Anteil des BAS-Signals. Die Austast- und Synchron-
Impulse werden vom CRT-Controller erzeugt. BAS-Signal (siehe auch Bilder 4 und 5).

Steuerzeichen und Attribute

Steuerzeichen
Um das Video-Interface vielseitig nutzen zu können, überträgt der Mikrocomputer außer dem darzustellenden Zeichen auch sogenannte Steuerzeichen zum Interface. Eines dieser Steuerzeichen ist „Carriage Return“ mit dem Code 0DH. Nach der Übertragung dieses Steuerzeichens wird das nächste darstellbare Zeichen am linken Rand des Schriftfeldes angezeigt. Die Steuerzeichen werden nicht in den Bildwiederhol-Speicher eingetragen. Der Mikrocontroller des Video-Interfaces filtert diese Zeichen aus dem empfangenen Datenstrom heraus und führt die entsprechenden Funktionen aus.

Attribute
Das Video-Interface bietet vielfältige Darstellungsarten der Zeichen: invers, unterstrichen, blinkend, doppelt hoch, doppelt breit, halbe Helligkeit. Diese Darstellungsarten werden durch sogenannte Attribute festgelegt. Es ist möglich, einem Zeichen mehrere Attribute – z.B.: unterstrichen und blinkend – zuzuordnen. Die Attribute werden vom Mikrocontroller in einen besonderen Teil des Bildwiederhol-Speichers, dem Attribut-Speicher, eingetragen. In diesem Speicher ist jeder Zeichencode-Speicherzeile eine Attribut-Speicherzeile zugeordnet. In jedem Bit der Attribut-Speicherzeile ist die Ein-/Aus-Information für eines der möglichen Darstellungsarten festgehalten. Theoretisch können einem Zeichen so acht verschiedene Attribute zugeordnet werden – die Steuersoftware des Mikrocontrollers unterstützt jedoch nur sieben. Die Attribute werden über Steuerzeichen-Folgen ein- bzw. ausgeschaltet. Die eingeschalteten Attribute gelten für alle Zeichen, die bis zum Ausschalten der entsprechenden Attribute übertragen werden.

Beispiel:

Steuerzeichen-Folge: NUR „UNTERSTREICHEN“ EINSCHALTEN
Alle folgenden Zeichen werden unterstrichen dargestellt

Steuerzeichen-Folge: ZUSÄTZLICH „BLINKEN“ EINSCHALTEN
Alle folgenden Zeichen werden unterstrichen und blinkend dargestellt

Steuerzeichen-Folge: „UNTERSTREICHEN“ AUSCHALTEN (andere Attribute unverändert)
Alle folgenden Zeichen blinken. werden aber nicht unterstrichen dargestellt

Steuerzeichen-Folge: „BLINKEN“ AUSCHALTEN
Alle folgenden Zeichen werden nun norn1al ( nicht blinkend) dargestellt

Der Mikrocontroller erkennt die Steuerzeichen zum Ein- bzw. Ausschalten der Attribute und merkt sich die aktuellen Zustände (ein/aus) der Attribute. Immer wenn er einen Zeichen-Code in den Zeichencode-Speicher einträgt, schreibt er parallel dazu die Zustände der Attribute in den Attribut-Speicher.

Soll ein im Bildwiederhol-Speicher befindliches Zeichen auf dem Bildschirm dargestellt werden, so wird der Zeichen-Code aus dem Zeichencode-Speicher ausgelesen. Parallel dazu wird das zugehörige Attribut-Byte aus dem Attribut-Speicher ausgelesen. Das Attribut-Byte steuert die Attribut-Logik. Diese Logik befindet sich im Signalweg zwischen Schieberegister und Mischstufe (siehe auch Bild 5). Bei Zeichen mit dem Attribut „INVERS“ sorgt diese Logik z.B. dafür, dass die einzelnen Punktreihen-Daten des Zeichens invertiert werden.

Die Gesamtschaltung des Video-Interfaces

Der Stromlaufplan im Anhang zeigt die Gesamtschaltung des Video-Interfaces. Der Mikrocontroller, sein interner RAM-Speicher (64×8 Bit), der CRT-Controller, der Zeichengenerator, die Attributlogik, das Schieberegister und der Taktgenerator befinden sich zusammen auf einem Chip – dem Terminal-Management-Processor (TMP) NS 405 A12N. Zusätzlich zu den erwähnten Funktionsgruppen befinden sich noch ein paralleler 8-Bit-I/0-Port und ein Baudratengenerator im TMP.

Der Bildwiederhol-Speicher besteht aus zwei RAM-Bausteinen des Typs 6264 (D2 und D3, Speicherkapazität: je 8-K-Byte) für Zeichencode- und Attribut-Speicher. Als Programm-Speicher
für den im TMP integrierten Mikrocontroller dient ein 8-K-Byte-EPROM des Typs 2764 (D11). Die Mischstufe wird aus dem Antivalenz-Gatter D16, dem Transistor V1, der Diode V3 und einigen
Widerständen gebildet.

Da die Übertragung der Daten zwischen Mikrocomputer und Interface seriell mit V24-Pegel erfolgt,
besitzt das Interface noch zwei Pegelwandler zur Wandlung von TTL in V.24-Pegel und umgekehrt (V2 und D14). Außerdem befinden sich drei Schalterreihen auf der Baugruppe. Über diese Schalter können das Übertragungsformat zwischen Interface und Mikrocomputer sowie die verschiedenen Betriebsarten des Interfaces gewählt werden.

Emulation des Video-Interfaces BFZ/MFA 8.2 und des Terminals TVI 950

Auf dem Markt gibt es verschiedene Datensichtstationen. Diese arbeiten teilweise mit unterschiedlichen
Steuerzeichen. Das hier beschriebene Video-Interface kann in zwei verschieden Modi arbeiten. In jedem dieser Modi wird eine andere Datensichtstation emuliert (nachgebildet). Im ersten Mode (dem MAT85-Mode) wird das Video-Interface BFZ/MFA 8.2 mit seinen Steuerzeichen, im zweiten Mode (dem TVI 950-Mode) wird das Terminal TVI 950 der Firma TeleVideo emuliert.

In beiden Fällen handelt es sich um eine Teil-Emulation. So werden z.B. im MAT85-Modus immer mehr Zeichen-Zeilen und Zeichen-Spalten als im emulierten Video-Interface angezeigt (die Anzahl der Zeilen und Spalten ist einstellbar). Im TVI 950-Mode werden nur die wichtigsten Steuerzeichen dieses Terminals unterstützt.

Über den Schalter S1.1 der Interface-Baugruppe kann eingestellt werden, welcher Mode nach dem Einschalten aktiv sein soll. Der Mode kann während des Betriebs beliebig häufig über die Tastatur oder durch Steuerzeichen gewechselt werden.

In den folgenden Kapiteln wird zwischen darstellbaren Zeichen und Steuerzeichen unterschieden. Überträgt man den Code eines darstellbaren Zeichens vom Mikrocomputer zum Interface, wird das entsprechende Zeichen auf dem Bildschirm angezeigt. Hierbei ist die Art der Zeichendarstellung vom eingestellten Zeichensatz abhängig. Die Wahl des Zeichensatzes legt z.B. fest, ob deutsche oder französische Sonderzeichen angezeigt werden sollen. Überträgt man den Code eines Steuerzeichens zum Interface, wird die entsprechende Steuerfunktion ausgeführt.

In der Beschreibung der einzelnen Steuerfunktionen wird häufig der Begriff „Cursor“ verwendet. Hierbei handelt es sich um eine Schreibmarke, die dem Anwender anzeigt, an welcher Stelle des Schriftfeldes das nächste zum Interface übertragene Zeichen dargestellt wird. Die Form dieser Schreibmarke (Strich oder Block) kann eingestellt werden.

Der MAT85-Emulations-Mode

Dieser Mode ist für den Betrieb unter dem Betriebsprogramm MAT85 des MFA-Mikrocomputer vorgesehen. ln diesem Mode können alle Steuerzeichen des Video-Interfaces BFZ/MFA 8.2 benutzt werden. Bei vier dieser Steuerzeichen reagiert das hier beschriebene Interface (BFZ/MFA. 8.4) geringfügig anders. Dies führt jedoch im allgemeinen zu keinerlei Problemen. Zusätzlich zu den oben erwähnten Steuerzeichen, „kennt“ das hier beschriebene Interface weitere Steuerzeichen-Folgen (Sequenzen). Mit diesen Sequenzen kann man z.B. von einem Mode in den anderen schalten oder einen Software-Reset (Kaltstart) auslösen.

Unter dem Betriebssystem CP/M sollte der TVI 950-Mode dem MAT 85-Mode vorgezogen werden, da dieser mehr Möglichkeiten (z.B. direkte Cursor-Positionierung) bietet.

Die 1-Byte-Steuerzeichen im MAT 85-Mode

Die Steuerfunktionen des Interfaces werden im MAT85-Mode sowohl durch einzelne Steuerzeichen als auch durch Steuerzeichen-Folgen ausgelöst. In diesem Kapitel sind die einzelnen Steuerzeichen (Control-Codes) beschrieben. Eine Beschreibung der Steuerzeichen-Folgen (Sequenzen) finden Sie im nächsten Kapitel.

Um die entsprechende Steuerfunktion auszulösen, muss der Code des Steuerzeichens vom Mikrocomputer zum Video-Interface übertragen werden. Näheres dazu entnehmen Sie bitte dem Kapitel
„Einsatz unter dem Betriebsprogramm MAT85“.

Für jedes Steuerzeichen ist im folgenden seine Bezeichnung, sein hexadezimaler Code, sein dezimaler
Code und seine Funktion angegeben.

Summer

Durch die Ausgabe des Steuerzeichens BEL ertönt der im Interface eingebaute Summer für etwa 0,5 Sekunden.

BEL07h07d

Cursor nach links (Backspace)

Der Cursor wird um eine Spalte nach links bewegt. Befindet er sich am linken Schriftfeld-Rand, so bewegt er sich an das Ende der vorstehenden Zeile. Wenn der Cursor sich in der linken oberen Ecke des Schriftfeldes befindet, hat dieses Steuerzeichen keine Wirkung.

Dieses Steuerzeichen hat bei dem hier beschriebenen Interface eine geringfügig andere Wirkung als beim Video-lnterface BFZ/MFA 8.2: Befindet sich der Cursor beim Interface BFZ/MFA 8.2 links oben im Schriftfeld, so bewegt er sich durch das Steuerzeichen BS zur rechten unteren Ecke.

BS08h08d

Cursor nach rechts

Der Cursor wird um eine Spalte nach rechts bewegt. Steht der Cursor am Ende einer Zeile, springt er an den Anfang der nächsten Zeile. Wenn der Cursor rechts unten steht, wird das Schriftfeld um eine Zeile nach oben geschoben (gescrollt). Der Inhalt der obersten Zeichen-Zeile geht verloren, unten wird eine Leerzeile eingefügt. Der Cursor springt an den Anfang dieser Leerzeile.

Dieses Steuerzeichen hat bei dem hier beschriebenen Interface eine geringfügig andere Wirkung als beim Video-Interface BFZ/MFA 8.2. Beim Interface 8.2 wird die oben herausgeschobene Zeichen-Zeile anstelle der Leerzeile unten eingefügt.

HT09h09d

Cursor nach unten (Line Feed, Zeilenvorschub)

Der Cursor wird – unter Beibehaltung der Spaltenposition – um eine Zeile nach unten bewegt. Steht der Cursor am unteren Schriftfeld-Rand, wird das Schriftfeld um eine Zeile nach oben geschoben. Dabei geht der Inhalt der obersten Zeichen-Zeile verloren. Unten wird ein Leerzeichen eingefügt.

LF0Ah10d

Cursor nach oben

Der Cursor wird – unter Beibehaltung der Spaltenposition – um eine Zeile nach oben bewegt. Steht der Cursor am oberen Schriftfeld-Rand, wird dieses Steuerzeichen ignoriert.

Dieses Steuerzeichen hat bei dem hier beschriebenen Interface eine geringfügig andere Wirkung als
beim Video-Interface BFZ/MFA 8.2: Befindet sich der Cursor beim Interface 8.2 am oberen Schriftfeld-Rand, springt er unter Beibehaltung der Spaltenposition – an den unteren Schriftfeldrand.

VT0Bh11d

Bildschirm löschen, Cursor in Home-Position

Der Bildschirm wird mit Leerzeichen gefüllt (gelöscht). Der Cursor wird in die obere linke Ecke des Schriftfeldes bewegt (Home-Position).

FF0Ch12d

Cursor an den Zeilenanfang, Zeilenrest löschen

Der Cursor wird an den Zeilenanfang bewegt. Die Zeichen ab der alten Cursor-Position (einschließlich) bis zum Zeilenende werden durch Leerzeichen überschrieben (gelöscht). Wenn der Cursor bereits am Zeilenanfang steht, hat dieses Steuerzeichen keine Wirkung.

CR0Dh12d

Zeile löschen

Die Zeile, in der sich der Cursor befindet, wird komplett mit Leerzeichen gefüllt (gelöscht). Die Cursor-Position bleibt erhalten.

SUB1Ah26d

Cursor nach unten

Der Cursor wird – unter Beibehaltung der Spaltenposition – um eine Zeile nach unten bewegt. Steht der Cursor am unteren Schriftfeld-Rand, wird der Inhalt des Schriftfeldes um eine Zeile nach oben geschoben (gescrollt). Hierbei geht der Inhalt der obersten Zeile verloren. Unten wird eine Leerzeile eingefügt.

Dieses Steuerzeichen hat bei dem hier beschriebenen Interface eine geringfügig andere Wirkung als
beim Video-Interface BFZ/MFA 8.2: Befindet sich der Cursor beim Interface 8.2 am unteren Schriftfeld-Rand, wird die oben herausgeschobene Zeile unten wieder eingefügt.

ESC1Bh27d

Cursor in die Home-Position

Der Cursor wird in die linke obere Ecke des Schriftfeldes (Home-Position) gestellt. Hierbei wird der Bildschirm nicht gelöscht.

FS1Ch28d

Cursor an den Zeilenanfang

Der Cursor wird an den Zeilenanfang bewegt.

GS1Dh29d

Die Steuer-Sequenzen im MAT85-Mode

Im MAT 85-Mode kennt das Interface zusätzlich zu den 1-Byte-Steuerzeichen weitere fünf Steuer-Sequenzen. Diese Sequenzen beginnen alle mit dem Zeichen DLE (Data Link Escape, 10H) und bestehen aus jeweils drei Zeichen. lm eine Steuerfunktion auszulösen, müssen die Codes der entsprechenden drei Zeichen vom Mikrocomputer zum Interface übertragen werden. Die DLE-Sequenzen sind identisch mit den DLE-Sequenzen im TVI 950-Mode.

Für jede Sequenz ist im folgenden ihre Bezeichnung, ihre hexadezimale Code-Folge, ihre dezimale
Code-Folge und ihre Funktion angegeben.

TVI 950-Mode einschalten

Mit dieser Sequenz kann in den TVI 950-Mode geschaltet werden. Nach der Umschaltung gelten die Steuerzeichen-Definitionen des TVI 950- Modes.

DLE DLE 110h 10h 10h16d 16d 49d

MAT85-Mode einschalten

Mit dieser Sequenz kann in den MAT85-Mode geschaltet. Befindet man sich bereits im MAT 85-Mode, so wird diese Sequenz ignoriert. werden.

DLE DLE 210h 10h 32h16d 16d 50d

Aktuellen Mode abfragen

Mit Hilfe dieser Sequenz kann der Anwender abfragen, welcher Mode (MAT85 oder TVI 950) momentan aktiv ist.

DLE DLE ?10h 10h 3Fh16d 16d 63d

Nach dem Empfang dieser Sequenz „antwortet“ das Interface mit drei Bytes:

Antwort-Bytesaktiver Mode
4D 31 0DTVI 950- Mode
4D 31 0DMAT 85-Mode

Beachten Sie hierzu bitte auch das Kapitel „Einsatz unter dem Betriebsprogramm MAT85“.

Software Reset

Durch diese Sequenz kann ein sogenannter Software-Reset des Video-Interfaces ausgelöst werden. Das heißt, das Interface wird so eingestellt, wie es nach dem Anlegen der Betriebsspannung eingestellt sein würde.

DLE DLE @10h 10h 40h16d 16d 64d

Abfrage der Software-Version

Mit Hilfe dieser Sequenz kann der Anwender die Versionsnummer der Software im EPROM der Interface-Baugruppe abfragen. Die Version ist durch drei Ziffern gekennzeichnet (Versions-Nummer).

DLE DLE V10h 10h 56h16d 16d 86d

Nach dem Empfang dieser Sequenz „antwortet“ das Interface mit fünf Bytes:

Beispiel für eine Antwort bei Version 1.0:
56 31 2F 30 0D

Das erste Byte der Antwort ist immer 56H (ASCII „V“).
Das zweite Byte entspricht dem ASCII-Code der ersten Ziffer der Versions-Nummer (hier „1“).
Das dritte Byte ist (bei dieser Interface-Hardware) immer 2FH.
Das vierte Byte entspricht dem ASCII-Code der zweiten Ziffer der Versions-Nummer (hier „0“).
Das fünfte Byte der Antwort ist immer 0DH.

Beachten Sie hierzu bitte auch das Kapitel „Einsatz unter dem Betriebsprogramm MAT85“.

Der TVI 950-Emulationsmode

Der TVI 950-Mode ist vorwiegend für den Einsatz unter dem Betriebssystem CP/M vorgesehen. Die Steuerzeichen dieses Modes unterscheiden sich teilweise von denen des MAT85-Modes. Deshalb kann der TVI 950-Mode nur eingeschränkt unter dem Betriebsprogramm MAT85 benutzt werden. Allerdings „kennt“ das Interface im TVI 950-Mode mehr Steuerzeichen. So ist es in diesem Mode z.B. möglich, den Cursor durch Angabe eine Zeilen- und Spalten-Nummer an eine bestimmte Stelle des Schriftfeldes zu positionieren. Außerdem können die Zeichen auf vielfältige Art dargestellt werden: invers, unterstrichen, blinkend, doppelt hoch und doppelt breit. Aufgrund seiner vielen Möglichkeiten werden Steuerfunktionen im TVI 950-Mode oft nicht durch einzelne Steuerzeichen, sondern durch Steuerzeichen-Folgen (Sequenzen) ausgelöst. Beginnen diese Sequenzen mit dem Zeichen ESC (Escape, Code 1Bh ), so spricht man auch von einer Escape-Sequenz

Die 1-Byte-Steuerzeichen im TVI950-Mode

In diesem Kapitel sind die einzelnen Steuerzeichen (Control-Codes) beschrieben. Eine Beschreibung
der Steuerzeichen-Folgen (Sequenzen) finden Sie im nächsten Kapitel.

Um die entsprechende Steuerfunktion auszulösen, muß der Code des Steuerzeichens vom Mikrocomputer zum Video-Interface übertragen werden. Näheres dazu entnehmen Sie bitte dem Kapitel „Einsatz·unter dem Betriebssystem CP/M“.

Für jedes Steuerzeichen ist im folgenden seine Bezeichnung, se·in hexadezimaler Code, sein dezin1aler
Code und seine Funktion angegeben

Summer

Durch die Ausgabe des Steuerzeichens BEL ertönt der im Interface eingebaute Summer für etwa 0,5 Sekunden.

BEL07h07d

Cursor nach links (Backspace)

Der Cursor wird um eine, Spalte nach links bewegt. Befindet er sich am linken Schriftfeld-Rand, so bewegt er sich an das Ende der vorstehenden Zeile. Wenn der Cursor sich in der linken oberen Ecke des Schriftfeldes befindet, hat dieses Steuerzeichen keine Wirkung.

BS08h08d

Tabulator

Es werden soviele Leerzeichen ausgegeben, bis der Cursor auf dem nächsten Tabulator-Stopp steht.
Tabulatorstopps befinden sich in jeder achten Spalte. Steht der Cursor bereits auf oder hinter dem
letzten Tabulatorstopp einer Zeile, so bewegt er sich an den Anfang der nächsten Zeile. Falls der Cursor in der letzten Zeile stand, wird das Schriftfeld um eine Zeile nach oben geschoben. Der Inhalt der oberen Zeile geht verloren, unten wird eine Leerzeile eingefügt.

HT09h09d

Spaltenzählung: 0,1,2,3,4, …
Tab.-Positionen: 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88

Hinweis:
Wie beim original TVI 950-Terminal beginnt die Spaltenzählung der weiter unten beschriebene Escape-Sequenzen „ESC =“ und „ESC ?“ bei 0, die Spaltenzählung für die Cursor-Positionsanzeige in der Status-Zeile aber bei 1.

Cursor nach unten , mit Scrollen (Line feed, Zeilenvorschub)

Der Cursor wird – unter Beibehaltung der Spaltenposition – um eine Zeile nach unten bewegt. Wenn der Cursor am unteren Schriftfeld-Rand steht, wird das Schriftfeld um eine Zeile nach oben geschoben. Dabei geht der Inhalt der obersten Zeichen-Zeile verloren. Unten wird eine Leerzeile eingefügt.

LF0Ah10d

Cursor nach oben

Der Cursor wird – unter Beibehaltung der Spaltenposition – um eine Zeile nach oben bewegt. Steht der Cursor am oberen Schriftfeld-Rand, wird dieses Steuerzeichen ignoriert.

VT0Bh11d

Cursor nach rechts

Dieser Code bewegt den Cursor um eine Position nach rechts. Steht der Cursor am Ende einer Zeile, springt er an den Anfang der nächsten Zeile. Steht der Cursor am Ende der letzten Zeile, wird der Inhalt des Schriftfeldes nach oben geschoben (gescrollt). Der Inhalt der oberen Zeile geht dabei verloren, unten wird eine Leerzeile eingefügt.

FF0Bh11d

Cursor an den Zeilenanfang (Carriage Return, Wagenrücklauf)

Der Cursor wird an den Zeilenanfang bewegt. Der Zeileninhalt bleibt unverändert

CR0Dh12d

Cursor nach unten, ohne Scrollen

Dieser Code bewegt den Cursor – unter Beibehaltung der Spaltenposition – um eine Zeile nach
unten. Steht der Cursor in der letzten Zeile, wird dieser Code ignoriert.

SYN16h22d

Bildschirm löschen, Cursor in Home-Position

Das komplette Schriftfeld wird mit Leerzeichen gefüllt (gelöscht). Der Cursor wird in die obere Ecke des· Schriftfeldes (Home-Position) gestellt.

SUB1Ah26d

Cursor in die Home-Position

Dieser Code bewegt den Cursor in die linke obere Ecke des Schriftfeldes (Home-Position). Der Inhalt des Schriftfeldes bleibt unverändert.

RS1Eh30d

Die Steuer-Sequenzen im TVI 950-Mode

Im TVI 950-Mode kennt das Interface zusätzlich zu den 1-Byte-Steuerzeichen auch noch Steuerzeichen-Folge (Sequenzen). Diese Sequenzen beginnen entweder mit dem Zeichen ESC (Escape, 1BH) oder mit dem Zeichen DLE (Data Link Escape, 10H). Man spricht hier auch von Escape bzw. DLE-Sequenzen. Um die jeweilige Steuerfunktion auszulösen, müssen alle Bytes einer Steuer-Sequenz vom Mikrocomputer zum Interface übertragen werden.

Für jede Sequenz ist im folgenden ihre Bezeichnung, ihre hexadezimale Byte-Folge, ihre dezimale Byte-Folge und ihre Funktion angegeben.

Die einzelnen Sequenzen sind nach Anwendungsgebieten geordnet.

Bildschirm löschen, Cursor Home(Cursor nach links oben)

Die fünf Escape-Sequenzen unterscheiden sich hinsichtlich ihrer Funktion bei dem hier beschriebenen Interface nicht. Durch alle Escape-Sequenzen wird das Schriftfeld mit Leerzeichen gefüllt (gelöscht) und der Cursor in die obere linke Ecke gestellt.

ESC *1Bh 2Ah27d 42d
ESC 1Bh 2Bh27d 43d
ESC 1Bh 2Ch27d 44d
ESC 1Bh 3Ah27d 58d
ESC 1Bh 3B27d 59d

Escape-Sequenzen zum Editieren des Schriftfeldes

Ein Leerzeichen einfügen

Mit Hilfe der Escape-Sequenz „ESC Q“ kann an der Cursor-Position ein Zeichen in eine Zeile eingefügt werden: Der rechte Zeilenteil (ab Cursor-Position einschließlich bis zum rechten Rand) wird um eine Spalte nach rechts verschoben. In der entstehenden Lücke wird ein Leerzeichen eingefügt. Der Cursor steht auf diesem Leerzeichen. Das Zeichen, das am rechten Schriftfeldrand stand, geht verloren.

ESC Q1Bh 51h27d 81d

Ein Zeichen löschen

Durch die Übertragung der Escape-Sequenz „ESC W“ zum Interface, wird das Zeichen an der augenblicklichen Cursor-Position gelöscht. Alle rechts davon befindlichen Zeichen rücken um eine Spalte nach links. In der letzten Spalte der Zeile wird ein Leerzeichen eingefügt. Die Cursor-Position bleibt unverändert .

ESC W1Bh 57h27d 87d

Eine Zeile einfügen

Alle Zeilen einschließlich der aktuellen Cursor-Zeile abwärts werden um eine Zeile nach unten verschoben. Dadurch entsteht eine Leerzeile, in deren erster Spalte der Cursor steht. Die Zeile, die am unteren Schriftfeldrand steht, fällt fort.

ESC E1Bh 45h27d 69d

Eine Zeile löschen

Dieser Befehl löscht die aktuelle Cursor-Zeile und rückt alle weiteren Zeilen von unten auf. Am unteren Schriftfeldrand wird eine Leerzeile eingefügt. Der Cursor behält seine Zeilen-Position bei. Er wird aber an den Anfang dieser Zeile gestellt.

ESC R1Bh 52h27d 82d

Zeile ab Cursor-Position löschen

Durch jeweils eine der beiden oben auf geführten Escape-Sequenzen wird die Zeile ab der Cursor-Position (einschließlich) bis zum Zeilenende gelöscht. .Der restliche Schriftfeld-Inhalt und die Cursor-
Position bleiben unverändert.

ESC T1Bh 54h27d 84d
ESC t1Bh 74h27d 116d

Schriftfeld ab Cursor-Position löschen

Durch jeweils eine der beiden oben auf geführten Escape-Sequenzen wird das Schriftfeld ab der Cursor-Position (einschließlich) bis zur unteren rechten Ecke gelöscht. Die Cursor-Position ändert sich nicht.

ESC Y1Bh 59h27d 89d
ESC y1Bh 79h27d 121d

Cursor-Positionierung

Cursor-Position setzen

ESC = Reihe+20H Spalte+20H 1BH 3DH Reihe+20H Spalte+20h27d 61d Reihe+32d Spalte+32d

Mit Hilfe dieser Escape-Sequenz kann der Cursor auf eine beliebige Position des Schriftfeldes gesetzt werden. Die für diese Escape-Sequenz gültige Reihen- und Spaltenzählung beginnt jeweils bei 0 (siehe auch unten: „Hinweis“). Deshalb hat die linke obere Ecke die Koordinaten 0,0 (Reihe, Spalte). Die Maximalwerte für Reihen- und Spaltenposition hängen von der eingestellten Reihen (Zeilen-) und Spaltenanzahl ab.

Wertebereiche:

Zeilenanzahlzul. Reihenposition
220 … 21
240 … 23
260 … 25
280 … 27
Spaltenanzahlzul. Spaltenposition
720 … 71
800 … 79
880 … 87
960 … 95

Werden zu große Werte für Reihe oder Spalte übertragen, so bewegt sich der Cursor zum unteren bzw. zum rechten Schriftfeldrand.

Wie allgemein üblich, wird auch bei diesem Interface die Reihen- und Spaltenposition nicht direkt angegeben. Stattdessen wird auf die Positionsangaben jeweils ein Offset von 20H (32) aufaddiert. So werden als Positionsangaben keine Steuerzeichen übertragen.

Beispiel:
Der Cursor soll in die dritte Reihe der ersten Spalte gesetzt werden. Da die Reihen und Spalten jeweils ab Null gezählt werden, ist dies die Position 2,0. Zu diesen Werten muss noch jeweils der Offset 20H addiert werden. Dies ergibt: 22H,20H. Die komplette Steuerzeichenfolge, die zur Positionierung des Cursors erforderlich ist, lautet also: 1BH 3DH 22H 20H.

Hinweis

Wie beim original TVI 950-Terminal beginnt die Spalten- und Reihenzählung zur Positionierung des Cursors durch „ESC =“ bei 0, die Zählung für die Cursor-Positionsanzeige in der Status-Zeile aber bei 1.

Cursor-Position abfragen

Diese Escape-Sequenz ermöglicht es dein Anwender, die aktuelle Cursor-Position abzufragen. Die für diese Escape-Sequenz gültige Reihen- und Spaltenzählung beginnt jeweils bei 0 (siehe auch unten: „Hinweis“). Das Video-Interface sendet die Reihen- und Spaltenposition jeweils mit einem Offset von 20H an den Mikrocomputer. Das letzte Zeichen ist immer 0DH (Carriage Return).

ESC ?1Bh 3Fh27d 63d

Beispiel:
Der Cursor befindet sich in der dritten Reihe der ersten Spalte. Da die Reihen und Spalten jeweils ab Null gezählt werden, ist dies die Position 2,0. Überträgt der Anwender nun die Sequenz „ESC?“ zum Video-Interface, so sendet dieses die aktuelle Cursor-Position als „Antwort“ zum Mikrocomputer. Bei der angenommenen Position würden folgende Bytes als „Antwort“ gesendet:

22h 20h 0Dh

Das erste Byte ist die Reihen-Position + 20H
Das zweite Byte ist d·ie Spalten-Position + 20H
Das dritte Byte ist in1mer ODH

Hinweis
Wie beim original TVI 950-Terminal beginnt die Spalten- und Reihenzählung zur Abfrage der Cursor-Position mit Hilfe von „ESC ?“ bei 0, die Zählung für die Cursor-Positionsanzeige in der Status-Zeile aber bei 1.

Cursor nach links zum nächsten Tabulator (Backtab)

Mit Hilfe dieser Escape-Sequenz wird der Cursor zurück (nach links) zum nächsten Tabulator bewegt. Dies wird auch als „Backtab-Funktion“ bezeichnet. Befindet sich der Cursor am Zeilenanfang, wird er auf den letzten Tabulator der vorigen Zeile gesetzt. Befindet er sich in der linken oberen Ecke (Home-Position), wird der Befehl ignoriert.

ESC I1Bh 49h27d 73d

Zeichensätze, Zeichendarstellung (Attribute) , Cursor-Darstellung

Zeichensatz wählen

Mit der hier auf geführten Escape-Sequenz kann einer von acht länderspezifischen Zeichensätzen gewählt werden. Diese Zeichensätze unterscheiden sich nur bei den Zeichencodes 23H, 24H, 40H, 5BH, 5CH, 60H, 5EH, 60H, 7BH, 7CH, 7DH und 7EH. Die den einzelnen Zeichensätzen zugeordneten Zeichen können dem Anhang entnommen werden.

ESC z Auswahlcode1Bh 7Ah Auswahlcode27d 122d Auswahlcode

Um einen bestimmten Zeichensatz zu wählen, müssen drei Bytes zum Video-Interface übertragen werden:

  1. ESC (1BH, 27)
  2. z (7AH, 122)
  3. Auswahlcode (siehe Tabelle)

Der Auswahlcode bestimmt den gewählten Zeichensatz. Die folgende Tabelle zeigt die Zuordnung:

ZeichensatzASCIIhexdez
USA03048
Frankreich13149
Deutschland23250
England33351
Dänemark43452
Schweden53553
Italien63654
Spanien73755

Der neue Zeichensatz wirkt sich nicht auf die Zeichen aus, die bereits vor der Zeichensatz-Umschaltung auf dem Bildschirm dargestellt werden. Er gilt nur für die Zeichen, die nach der Wahl des neuen Zeichensatzes zum Interface übertragen werden.

Auf der Tastatur befinden sich nur die Symbole des USA-Zeichensatzes . Die nachfolgende Tabelle zeigt, welche Tasten zu betätigen sind, um die entsprechenden länderspezifischen Zeichen einzugeben:

Tabelle Länderzeichensatz

Attribute setzen/ löschen

Die auf dem Bildschirm darzustellenden Zeichen können auf verschiedene Arten angezeigt werden.
Soll von der Normaldarstellung abgewichen werden, sind entsprechende Attribute einzuschalten.

ESC G Attribute + 30h1Bh 47h Attribute+30h27d 71d Attribute+48d

Folgende Attribute sind möglich:

  • unsichtbar
  • blinkend
  • invers
  • unterstrichen
  • doppelt breit
  • doppelt hoch

Dabei können fast alle Attribute miteinander kombiniert werden. Lediglich bei den Attributen „unsichtbar“ und „doppelt hoch“ ist eine Kombination miteinander nicht möglich. Um Attribute ein- oder auszuschalten müssen jeweils drei Bytes zum Interface übertragen werden:

  1. ESC (lBH, 27)
  2. G (47H, 71 )
  3. Attribute+ 30H (s.u . .)

Das dritte Byte „Attribute + 30H“ gibt die gewünschten Zustände (Ein/Aus) der Attribute an. Es können beliebig viele Attribute gleichzeitig ein- bzw. ausgeschaltet werden.

Eine Änderung der Attribut-Zustände wirkt sich auf alle Zeichen aus, die nach der Änderung zum Interface übertragen werden.

Das Byte „Attribute + 30H“ ergibt sich durch das Setzen bzw. Löschen bestimmter Bits (zum Ein- bzw. Ausschalten bestimmter Attribute) und durch die anschließende Addition von 30H. Welche Bits zum Einschalten bestimmter Attribute gesetzt werden müssen, kann der folgenden Aufstellung entnommen werden:

AttributBIT
unsichtbar0
blinkend1
invers2
unterstrichen3
doppelt breit4
doppelt hoch5

Alle anderen Bits sind reserviert und dürfen nicht gesetzt werden!

Beispiel:
Die nachfolgenden Zeichen sollen blinkend und unterstrichen dargestellt werden. Dazu sind die
Attribute „blinkend“ und „unterstrichen“ ein- und alle anderen Attribute auszuschalten. Es ergibt
sich das folgende Bitmuster:

Hex-Wert: 0A

Bit-Nummer76543210
Bit-Muster00001010

Aus dem Bitmuster ergibt sich der Wert 0AH. Zu diesem Wert muss nun noch der Offset 30H addiert werden Man erhält dann den Wert 3AH. Die vollständige Sequenz, die zum Einschalten der gewünschten Attribute zum Interface übertragen werden muss, lautet also: 1BH 47H 3AH.

Durch die Übertragung dieser Byte-Folge werden die Attribute „unsichtbar“, „invers“, „doppelt breit“ und „doppelt hoch“ ausgeschaltet, da die entsprechenden Bits im Bitmuster „0“ sind.

Im Anhang finden Sie eine Tabelle, die Ihnen die Ermittlung des Bytes „Attribute + 30H“ erleichtert.

Mit der Escape-Sequenz „ESC G 0“ (1BH 47H 30H) können alle Attribute gleichzeitig ausgeschaltet
werden.

Besondere Hinweise:

Bei der Verwendung der Attribute „doppelt hoch“ und „doppelt breit“ ist zu beachten, daß sich die meisten Steuerbefehle auf Zeichen einfacher Höhe und Breite beziehen. Bei Zeichen mit doppelter, Höhe und/oder Breite können sie entweder keine oder aber eine andere Wirkung als Vorgesehen haben. Der einzige Steuercode, der die Schriftgröße berücksichtigt, ist „Line Feed“ (Zeilenvorschub, 0AH). Falls das Attribut „doppelt hoch“ aktiv ist, werden zwei Standard-Zeilenvorschübe ausgeführt. Dadurch entsteht bei Abschluss jeder Zeile mit CR/LF ein brauchbares Schriftbild. Bei Zeilenüberlauf wird auch bei doppelter Zeichenhöhe nur ein Zeilenvorschub ausgeführt, wodurch die untere Hälfte der vorigen Zeile von der nächsten überschrieben wird.

Bei doppelt hoher Schrift werden die einzelnen Zeichen grundsätzlich nach oben erweitert. Sie überschreiben dabei eventuell Zeichen, die in der darüberliegenden Zeile stehen. Steht der Cursor in der obersten Zeile (z.B. Home-Position: 0,0) so wird der Cursor nach Übertragung des ersten Zeichens aber vor der Zeichendarstellung vom Video-Interface eine Zeile tiefer positioniert. Dadurch lasse n sich auch nach einem Cursor-Home-Befehl sofort doppelt hohe Zeichen darstellen. Bei doppelt breiter Schrift kann es zu Verzerrungen kommen, wenn doppelt breite Schrift auf einer ungeraden Spalte beginnt (Zählung ab 0). In diesem Fall werden beim Zeilenüberlauf nächsten Zeile jeweils nicht zusammenhängende Buchstabenhälften angezeigt.

Halbe Helligkeit

Das Interface kann die Zeichen in zwei Helligkeitsstufen anzeigen. Mit der hier aufgeführten Escape- Sequenz wird für alle nachfolgend übertragenen Zeichen die halbe Helligkeit gewählt. Normaleinstellung ist die volle Helligkeit. „ESC (“ schaltet wieder auf die volle Helligkeit zurück.

ESC )1Bh 29h27d 41d

Volle Helligkeit

Mit der hier aufgeführten Escape-Sequenz kann die Zeichendarstellung auf die volle Helligkeit (Normaleinstellung) geschaltet werden: Siehe auch „ESC )“.

ESC (1Bh 28h27d 40d

Bildhintergrund hell (bright)
Normaldarstellung als „dunkle Zeichen auf hellem Grund“

Mit dieser Escape-Sequenz wird für alle Zeichen ohne das Attribut „invers“ die Darstellungsart „dunkle Zeichen auf hellem Grund“ gewählt. Für Zeichen mit dem Attribut „invers“ gilt: helle Zeichen auf dunklem Grund. Dies ist die Grundeinstellung, wenn über den Schalter S1.4 ein heller Bildhintergrund gewählt wurde. Diese Escape-Sequenz wirkt sich auf alle Zeichen aus (auch auf die bereits angezeigten). Siehe auch „ESC d“.

ESC b1Bh 62h27d 98d

Bildhintergrund dunkel (dark)
Normaldarstellung als “helle Zeichen auf dunklem Grund“

ESC d1Bh 64h27d 100d

Mit dieser Escape-Sequenz wird für alle Zeichen ohne das Attribut „invers“ die Darstellungsart „helle Zeichen auf dunklem Grund“ gewählt. Für Zeichen mit dem Attribut „invers“ gilt: dunkle Zeichen auf hellem Grund. Dies ist die Grundeinstellung, wenn über den Schalter S1.4 ein dunkler Bildhintergrund gewählt wurde. Diese Escape-Sequenz wirkt sich auf alle Zeichen aus (auch auf die bereits angezeigten). Siehe auch: „ESC b“.

Control-Mode einschalten

Mit dieser Escape-Sequenz wird der „Control-Mode“ eingeschaltet. In diesem Mode werden alle
Steuerzeichen, die das Video-Interface empfängt, nicht ausgeführt, sondern als Control-Zeichen angezeigt. Siehe auch das Kapitel „Der Control-Mode“.

ESC U1Bh 55h27d 85d

Beispiel:
Wird das Steuerzeichen BEL (07H) bei eingeschaltetem Control-Mode vom Mikrocomputer zum Interface übertragen, so ertönt nicht der Summer des Interfaces. Stattdessen wird an der Cursor-Position ein inverses „G“ mit halber Helligkeit dargestellt. Das „G“ steht für die Tastenkombination „Control G“, die den Code 07H erzeugt.

Hinweis:
Da alle Steuerzeichen nur noch angezeigt aber nicht mehr ausgeführt werden, kann der Control-Mode nur über das Set-Up-Menü (Control Mode AUS) verlassen werden. Siehe Kapitel „Das Set-Up-Menü“.

Cursor- Darstellung

Mit Hilfe dieser Escape-Sequenz kann die Art der Cursor-Darstellung den ders angepaßt werden.

ESC .1Bh 2Eh27d 46d

Hierzu sind drei Bytes zum Interface zu übertrage n:

  1. ESC (1B8 , 27d )
  2. . (2EH, 46d )
  3. Darstellung (siehe Tabelle)

Das dritte Byte („Darstellung“) bestimmt die Darstellungsart des Cursors. Welches „Darstellung-Byte zum Interface übertragen werden muss, kann der folgenden Tabelle entnommen werden

DarstellungsartASCIIhexdez
keinen Cursor anzeigen03048
bl.inkender Block13149
stehender .Block23250
blinkender unterstrich33351
stehender Unterstrich43452

Beispiel:
Soll für den Cursor die Darstellungsart „blinkender Unterstrich“ gewählt werden, so ist die Byte- Folge 1BH 2EH 33H zum Interface zu übertragen.

Die DLE-Sequenzen im TVI 950-Mode

Die DLE-Sequenzen sind identisch mit den DLE-Sequenzen im MAT85-Mode.

TVI 950-Mode einschalten

Mit dieser Sequenz kann in den TVI 950-Mode umgeschaltet werden. Befindet man sich bereits im
TVI 950-Mode, so wird diese Sequenz ignoriert.

DLE DLE 110h 10h 31h16d 16d 49d

MAT85-Mode einschalten

Mit dieser Sequenz kann in den MAT 85-Mode geschaltet werden. Nach der Umschaltung gelten die Steuerzeichen-Definitionen des MAT 85-Modes.

DLE DLE 210h 10h 32h16d 16d 50d

Aktuellen Mode abfragen

Mit Hilfe dieser Sequenz kann der Anwender abfragen, welcher Mode (MAT 85 oder TVI 950) momentan aktiv ist.

DLE DLE ?10h 10h 3Fh16d 16d 63d

Nach dem Empfang dieser Sequenz „antwortet“ das Interface mit drei Bytes:

Antwort-Bytesaktiver Mode
4D 31 0DTVI 950-Mode
4D 32 0DMAT 85-Mode

Beachten Sie hierzu bitte auch das Kapitel „Einsatz unter dem Betriebssystem CP/M“.

Software-Reset

Durch diese Sequenz kann ein sogenannter Software-Reset des Video-Interfaces ausgelöst werden. Das heißt, das Interface wird so eingestellt, wie es nach dem Anlegen der Betriebsspannung eingestellt sein würde.

DLE DLE @10h 10h 40h16d 16d 64d

Abfrage der Software-Version

Mit Hilfe dieser Sequenz kann der Anwender die Versionsnummer der Software im EPROM der Interface-Baugruppe abfragen. Die Version ist durch zwei Ziffern gekennzeichnet (Version-Nummer).

DLE DLE V10h 10h 56h16d 16d 86d

Nach dem Empfang dieser Sequenz „antwortet“ das Interface mit fünf Bytes.

Beispiel für eine Antwort bei Version 1.0:

56h 31h 2Fh 30h 0Dh

Das erste Byte der Antwort ist immer 56H (ASCII „V“).
Das zweite Byte entspricht dem ASCII-Code der ersten Ziffer der Versions-Nummer (hier „1“).
Das dritte Byte ist (bei dieser Interface-Hardware) immer 2FH.
Das vierte Byte entspricht dem ASCII-Code der zweiten Ziffer der Versions-Nummer (hier „0“).
Das fünfte Byte der Antwort ist immer 0DH.

Beachten Sie hierzu bitte auch das Kapitel „Einsatz unter dem Betriebssystem CP/M“.

Einsatz unter dem Betriebsprogramm MAT 85

Für den Einsatz unter dem Betriebsprogramm MAT85 des MFA-Mikrocomputers ist der MAT85-Mode des Video-Interfaces vorgesehen. Der Datenaustausch zwischen CPU-Baugruppe und Video-Interface erfolgt über die Systembus-Leitungen Tx und Rx (siehe Bild 7).

Bild 7: Datenaustausch zwischen CPU und Video- Interface (MAT85)

Vor der Inbetriebnahme sind die Schalter der Interface-Baugruppe entsprechend dem nachfolgenden
Kapitel „Schalterstellungen“ einzustellen.

Die Kapitel „Nutzung in Assembler Programmen“ und „Nutzung unter BFZ-STEUER-BASIC“ enthalten lnformationen für Anwender, welche die Steuerfunktionen des Video-Interfaces in eigenen Assembler- bzw. BASIC-Programmen nutzen wollen.

An dieser Stelle soll darauf hingewiesen werden, dass sowohl der MAT85-Assembler als auch das BFZ-STEUER-BASIC bei der Eingabe von Programmzeilen alle Kleinbuchstaben in Großbuchstaben umwandelt. So können diese Programme die eingegebenen Assembler- bzw. BASIC-Anweisungen einfacher erkennen.

Beachten Sie bitte, dass nach dem Einschalten des Mikrocomputer-Systems die Leertaste betätigt
werden muß. Dies gilt auch dann, wenn auf dem Bildschirm keine Zeichen anzeigt werden.

Schalterstellungen

Auf der Interface-Baugruppe befinden sich drei Schalter-Reihen (siehe auch Bestückungsplan im Anhang) zur Grundeinstellung des Video-Interfaces beim Einschalten. Jede der mit S1, S2 und S3 bezeichneten SchaIter-Reihen besteht aus acht Schaltern. S1.1 bezeichnet den Schalter Nummer 1 in der Schalter-Reihe S1. Die anderen Schalter sind entsprechend nummeriert. Für das Betriebsprogramm MAT85 sind die Schalter folgendermaßen einzustellen:

Schalter-Reihe S 1:

SchalterStellungeingestellte Funktion
S 1.1ONMAT 85-Mode
S 1.2OFFblinkender Cursor
S 1.3OFFStrich-Cursor
S 1.4OFFdunkler Bildhintergrund
S 1.5OFFreserviert, immer OFF !
S 1.6OFFDTR- Handshake
S 1.7OFFreserviert, immer OFF!
S 1.8OFFStatuszeile aus

Schalter-Reihe S 2:

SchalterStellungeingestellte Funktion
S 2.1OFFWortlänge 7 Bit
S 2.2OFFZeichensatz USA 1)
S 2.3OFFdto.
S 2.4OFFdto.
S 2.5ONZeilenanzahl 24
S 2.6OFFdto.
S 2.7ONSpaltenanzahl 80
S 2.8OFFdto.

1) Entspricht dem Zeichensatz des Video-Interfaces BFZ/MFA 8.2

Schalter-Reihe S 3:

SchalterStellungeingestellte Funktion
S 3.1ON2 Stopbits
S 3.2ONMark Parity
S 3.3OFFdto.
S 3.4ONdto.
S 3.5ON1200 Baud
S 3.6OFFdto.
S 3.7ONdto.
S 3.8OFFdto.

Anmerkung:
Die Schalter S1.2 (Cursor-Art), S1.3 (Cursor-Form), S1.4 (Bildhintergrund), S1.8 (Statuszeile) und S2.2, S2.3, S2.4 (alle drei zur Einstellung des Zeichensatzes) können – den persönlichen Wünschen entsprechend – anders eingestellt werden. Eine andere Einstellung dieser Schalter beeinträchtigt die Funktion nicht. Angaben über die durch diese Schalter einstellbaren Optionen entnehmen Sie bitte dem Anhang

4.2 Nutzung in Assembler-Programmen

Zeichenausgabe

Da unter dem Betriebsprogramm MAT 85 der MAT 85-Mode des Interfaces genutzt wird, können grundsätzlich alle Ausgabe-Routinen, die in der MAT 85-Beschreibung dokumentiert sind, verwendet werden. Hier sollen nur einige dieser Routinen genannt werden:

WCHAR, Adresse 0052
Sendet das Zeichen, dessen Code sich im Akkumulator befindet, zum Interface

MVI  A,0D   ;CODE FUER WAGENRUECKLAUF
CALL 0052   ;CODE AUSGEBEN
MVI  A,'X'  ;CODE FUER 'X'
CALL 0052   ;CODE AUSGEBEN
JMP  0040   ;ENDE, ZURUECK ZUR MAT 85- KOMMANOOEINGABE

WCHARI, Adresse 0055
Gibt 1 Zeichen, dessen Code nach dem CALL-Befehl im Speicher steht, aus

CALL 0055   ;NACHFOLGENDEN CODE AUSGEBEN
DB   0D     ;CODE FUER WAGENRUECKLAUF
CALL 0055   ;NACHFOLGENDEN CODE AUSGEBEN
DB  'X'     ;CODE FUER 'X'
JMP 0040    ;ENDE, ZURUECK ZUR MAT 85-KOMMANDOEINGABE

WBUFI, Adresse 006D
Gibt den hinter dem CALL-Befehl stehenden Text auf dem Bildschirm aus. Am Ende des Textes muss als Endemarke das Byte 00H stehen.

CALL  006D   ;NACHFOLGENDE CODES AUSGEBEN
DB    0D,'X' ;CODES FUER WAGENRUECKLAUF UND 'X'
DB    00     ;TEXT-ENDEMARKE
JMP   0040   ;ENDE, ZURUECK ZUR MAT85- KOMMANDOEINGABE

WBUF, Adresse 0BA1
Gibt Text aus einem Textpuffer aus, dessen Anfangsadresse sich vor dem Aufruf der Routine im HL-Registerpaar befinden muss Am Ende des Textes muss als Endemarke 00H stehen.

         LXI   H,BUF   ;ANFANGSADRESSE DES PUFFERS
         CALL  0BA1    ;CODES AUSGEBEN
         JMP   0040    ;
BUF      DB    0D,'X'  ;AUSZUGEBENDE CODES
         DB    00      ;TEXT- ENDEMARKE
         JMP   0040    ;ENDE, ZURUECK ZUR MAT 85-KOMMANDOEINGABE

Zeicheneingabe

Alle vom Interface gesendeten Zeichen – gleichgültig, ob sie über die Tastatur eingegeben wurden oder die „Antwort“ einer DLE-Sequenz sind – können unter Verwendung des MAT 85-Unterprogramms „RCHAR“ (Adresse 0043H) eingelesen werden.

Beispiel:
Das nachstehende Programm gibt im ersten Teil die Steuersequenz „DLE DLE ?“ zur Abfrage des }.. aktuellen Modes aus. Die aus 3 Bytes bestehende Antwort des Terminals wird in einen Puffer eingelesen und anschließend angezeigt. Die Anzeige kann nicht sofort nach dem Empfang eines Antwort-Bytes erfolgen, da sonst die folgenden Bytes verloren gehen.

Im zweiten Teil des Programms werden in einer Endlosschleife Zeichen vom Video-Interface gelesen und sofort zum Video-Interface zurückgesendet. Dies gilt auch für Steuerzeichen. Durch die Betätigung der CR-Taste (Code ODH) wird das Programn1 beendet.

Begründet durch die verwendete Routine „RCHAR“ des MAT85-Betriebsprogrammes, kann das Programm auch durch die Betätigung der ESC-Taste abgebrochen werden.

START:   LXI  H,MODE   ;ZEIGER AUF STEUERZ. FUER MODEABFRAGE
         CALL 0BA1     ;GEBE STEUERZEICHEN AUS
         LXI  H,BUF    ;PUFFER FUER DIE ANTWORT-ZEICHEN
         MVI  B,3      ;ZAEHLER: DREI ZEICHEN EINLESEN
LOOP:    CALL 0043     ;LESE ZEICHEN IN DEN AKKUMULATOR
         MOV  M,A      ;SCHREIBE ZEICHEN IN DEN PUFFER
         INX  H        ;ZEIGER WEITERSTELLEN
         DCR  B        ;ANTWORT KOMPLETT GELESEN?
         JNZ  LOOP     ;NEIN --> LOOP
         LXI  H,BUF    ;ZEIGER AUF 1. ANTWORT-ZEICHEN
         CALL 0BA1     ;ANTWORT AUF DEM BILDSCHIRM ANZEIGEN
TEIL2:   CALL 0043     ;LESE ZEICHEN IN DEN AKKUMULATOR
         CPI  0D       ;CARRIAGE-RETURN?
         JZ   0040     ;JA--> 0040 (ENDE)
         CALL 0052     ;NEIN (NICHT OD) --> ZEIGE ZEICHEN AN
         JMP  TEIL2    ;LESE WEITERE ZEICHEN

MODE:    DB   10,10,'?';STEUERZEICHEN F. MODEABFRAGE
         DB   00       ;ENDEMARKE

BUF:     DB   00,00,00 ;BUFFER FUER ANTWORT
         DB   00       ;ENDEMARKE

Ein ProgrammbeispieI in Assembler-Sprache

Das nachstehende Programm fordert den Anwender auf, eine Ziffer einzugeben. Der Aufforderungstext wird mit Hilfe des Unterprogramms „TXTAUS“ (MAT85-Routine 0BA1H) ausgegeben. Über die Routine 0043H wird die Tastatur abgefragt. Das Programm überprüft, ob tatsächlich eine Ziffer (ASCII-Code 30H bis 39H) eingegeben wurde. Ist dies der Fall, gibt das Programm die entsprechende Ziffer als Wort auf dem Bildschirm aus. Wurde keine Ziffer eingegeben, wird die Meldung „KEINE ZIFFER“ angezeigt. Das hier beschriebene Programm wertet die Betätigung der „CR“-Taste als Abbruchwunsch aus. Ein Abbruch ist außerdem durch Betätigung der „ESC“-Taste möglich. Dies ergibt sich durch die verwendete MAT85- Routine 0043H.

Nutzung unter BFZ-STEUER- BASIC

Zeichenausgabe

Darstellbare Zeichen (wie Buchstaben und Ziffern) können unter BFZ-STEUER-BASIC mit Hilfe der PRINT-Anweisung ausgegeben werden:

10 PRINT "Video-Interface"

Für die Ausgabe von Steuerzeichen ist ein kleines Hilfsprogramm erforderlich. Es kann mit dem nachstehenden BASIC-Programm in den RAM-Speicher eingetragen werden:

32000 POKE DEC(E000),125
32010 POKE DEC(E001),205
32020 POKE DEC(E002),82
32030 POKE DEC(E003),0
32040 POKE DEC(E004),201

Das Hilfsprogramm besteht aus drei Assembler-Anweisungen

E000  MOV A,L     ; Lade Ausgabe-Zeichen vom L-Register in den Akku
E001  CALL 0052   ; Gebe Zeichen aus
E004  RET         ; Zurück zum BASIC- Programm

Das Hilfsprogramm ermöglicht die Ausgabe aller ASCII-Zeichen. Dazu wird es über die USR-Funktion aufgerufen. Alle vier nachstehend aufgeführten Programm-Zeilen sind gleichwertig und zeigen verschiedene Arten des USR-Aufrufs. In allen vier Fällen wird das Steuerzeichen VT (Cursor Up – Cursor hoch – Code=0BH (11 dez.)) ausgegeben.
Vergleiche auch: Anleitung zum BFZ-STEUER-BASIC in den Fachtheoretischen Übungen (FTÜ).

100 X=USR(DEC(E000),DEC(0B))   : REM --- GIBT STEUERZEICHEN OB AUS
110 X=USR(DEC(E000),11)        : REM --- WIE OBEN
120 C=DEC(0B) : X=USR(DEC(E000,C)) : REM --- WIE OBEN
130 C=11 : X=USR(DEC(E000,C))  : REM --- WIE OBEN

Bitte beachten Sie, daß das Hilfsprogramm vor seinem ersten Aufruf im RAM installiert worden sein muss! Dazu können die oben aufgeführten BASIC-Programmzeilen 32000 bis 32040 als Unterprogramm in Ihr Programm eingefügt und zu Beginn aufgerufen werden:

1 GOSUB 32000 : REM --- HILFSROUTINE IN DAS RAM LADEN
:
:
111 X=USR(DEC(EOOO),C) : REM --- ZEICHEN (CODE IN C) AUSGEBEN
:
:
31999 END
32000 POKE DEC(E000),125
32010 POKE DEC(E001),205
32020 POKE DEC(E002),82
32030 POKE DEC(E003),0
32040 POKE DEC(E004),201
32050 RETURN

Zeicheneingabe

Tastatureingaben können mit Hilfe der INPUT- oder der $-Anweisung eingelesen werden. Genaueres
über diese Anweisungen können Sie der Anleitung zum BFZ-STEUER-BASIC im FTÜ-Band entnehmen.

Beispiele:

10 INPUT "GEWICHT (KG) ",G
20 PRINT "DAS GEWICHT BETRAEGT";G;"KILOGRAMM"
30 PRINT "BITTE BETAETIGEN SIE EINE TASTE"
40 T=$
50 PRINT "DIE BETAETIGTE TASTE HAT DEN CODE";T;"(DEZ.)"

Die DLE-Sequenzen „DLE DLE ?“ (Mode-Abfrage) und „DLE DLE V“ (Versions-Abfrage) können im BFZ-STEUER-BASIC nicht verwendet werden, da der Basic-Interpreter die Antwort des Interfaces nicht entgegennehmen kann. Sollte der TVI 950-Mode verwendet werden, so kann außerdem die Escape-Sequenz „ESC ?“ (Abfrage der Cursor-Position) aus dem gleichen Grund nicht genutzt werden.

Ein Programmbeispiel in BFZ-STEUER-BASIC

Das nachstehende Programm soll die einzelnen Aus- und Eingabemöglichkeiten des BFZ-STEUER-BASICs in Verbindung mit dem Video-Interface darstellen. Texte werden über eine PRINT-Anweisung ausgegeben, Steuerzeichen mit Hilfe eines Maschinensprache-Programms. Dieses Maschinensprache-Programm wird durch die Programmzeilen 32000 bis 32050 ab Adresse E000 in das RAM geladen. Hier soll nochmals darauf hingewiesen werden, dass dieser Ladevorgang vor dem ersten Aufruf des Maschinensprache-Programms erfolgen muss. Der Aufruf des Maschinensprache-Programms erfolgt über die USR-Anweisung in Programmzeile 32100. Die USR-Anweisung wurde als Unterprogramm geschrieben. Der Code des auszugebenden Steuerzeichens muss vor dem Unterprogramm-Aufruf (also vor GOSUB 32100) in die Variable C geladen werden. Zeile 230 zeigt die Anwendung der „$“-Funktion .

1 GOSUB 32000 : REM* HILFSROUTINE IN DAS RAM LADEN
10 C=7 : REM *** CODE FUER "BEL"
20 GOSUB 32100 : REM*** CODE AUSGEBEN
30 PRINT 11 1. TEXTZEILE" : REM **, TEXT AUSGEBEN
40 PRINT: REM EINE LEERZEILE ERZEUGEN
50 PRINT 112. TEXTZEILE"
60 REM NUN DEN CURSOR ZWISCHEN DIE BEIDEN TEXTZEILEN STELLEN
70 REM *** (DER CURSOR STEHT NACH DER LETZTEN PRINT-ANWEISUNG
80 REM *** UNTER DEM TEXT "2. TEXTZEILE". DAHER MUSS DER CURSOR
90 REM *** UM ZWEI ZEILEN NACH OBEN GESTELLT WERDEN. DER CODE
100 REM *** FUER "CURSOR HOCH" IST 11 (DEZ))
110 C=11 : GOSUB 32100: GOSUB 32100
120 REM *** ACHTEN SIE BEIM EINGEBEN DIESES PROGRAMMS DARAUF,
130 REM *** DASS AM ENDE DER NACHFOLGENDEN ZEILE EIN";" STEHT '
140 PRINT ''-------------------------------''; 
150 REM *** NUN CURSOR UNTER "2. TEXTZEILE" STELLEN
160 C=1O : REM *** CODE FUER "CURSOR ABWAERTS" (LINE FEED)
170 GOSUB 32100 : GOSUB 32100: REM *** CURSOR 2 ZEILEN TIEFER
180 C=13 : REM *** CODE FUER "WAGENRUECKLAUF" (CARRIAGE RETURN)
190 GOSUB 32100 : REM*** CURSOR AN ZEILENANFANG
200 INPUT "WIE ALT SIND SIE? ",A
210 PRINT "SIE BEHAUPTEN,";A;"JAHRE ALT ZU SEIN"
220 PRINT "BITTE BETAETIGEN SIE EINE TASTE"
230 C=$: REM*** TASTATURABFRAGE (VERGL. BASIC-ANLEITUNG)
240 PRINT "DIE VON IHNEN BETAETIGTE TASTE ERZEUGT DEN CODE";
250 PRINT C;"(DEZ) BZW.";#C;" (HEX)" : REM *** CODE ANZEIGEN
260 PRINT "---ENDE---"
31999 END

32000 POKE DEC(E000), 125
32010 POKE DEC(E001), 205
32020 POKE DEC(E002), 82
32030 POKE DEC(E003), 0
32040 POKE DEC(E004), 201
32050 RETURN
32100 X=USR(DEC(E000),C) : RETURN : REM *** ZEICHENAUSGABE

Einsatz unter dem Betriebssystem CP/M

Zum Betrieb des Video-Interfaces BFZ/MFA 8.4 unter CP/M ist eine Serienschnittstelle erforderlich. Hierzu kann entweder die „V24/RS232-Schnittstelle“ BFZ/MFA 4.10 oder die „Programmierbare Serienschnittstelle“ BFZ/MFA 4.4 verwendet werden. Bei der „Programmierbaren Serienschnittstelle“ sind die V24/TTL- und TTL/V24-Pegelwandler nachzurüsten. Dies ist im FPÜ-Band 4 „CP/M-Ausbaustufe“, Kapitel „Aufbau und lnbetriebnahme“ näher beschrieben. Eine Serienschnittstelle, die nach der Anleitung im FPÜ-Band 4 für das Video-Interface BFZ/MFA 8.2 eingestellt worden ist, muss noch geringfügig modifiziert werden. Die Modifikation ermöglicht einen Handshake-Betrieb.

  • Bei der V24 / RS232-Schnittstelle ist eine Drahtbrücke nachzurüsten. Diese Schnittstelle kann nach der Umrüstung sowohl mit dem Video-Interface BFZ/MFA 8.4 als auch mit dem Videolnterface BFZ/MF A 8.2 betrieben werden.
  • Bei der Programmierbaren Serienschnittstelle BFZ/MFA 4.4 sind zwei Drahtbrücken nachzurüsten und eine andere zu entfernen. Nach der Umrüstung kann diese Schnittstelle nur noch mit dem hier beschriebenen Video-Interface BFZ/MFA 8.4 betrieben werden (nicht mehr mit dem Video-Interface BFZ/MFA 8.2).

Nachstehend eine kurze Aufstellung der zum Betrieb notwendigen Brücken-Einstellungen und der notwendigen Umrüstung.

Platine

Bild 8: Bestückungsplan der V24/RS232-Schnittstelle

Für den Betrieb der Schnittstelle ist auf der Bestückungsseite der Schnittstelle die eingezeichnete Drahtbrücke nachzurüsten. Sie sollte mit Klebstoff fixiert werden.

Bild 9:· Bestückungsplan der Programmierbaren Serienschnittstelle

Für den Betrieb der Schnittstelle muss die Brücke zwischen dem Leiterplattenanschluss DSR und 0V (GND) entfernt werden! Sie ist deshalb auf dem hier abgebildeten Bestückungsplan nicht eingezeichnet. Stattdessen sind auf der Bestückungsseite der Schnittstelle die zwei eingezeichneten Drahtbrücken nachzurüsten. Die Drahtbrücken sollten mit Klebstoff fixiert werden.

Weitere Hinweise:
Der Datenaustausch zwischen der CPU und dem Video-Interface erfolgt über die zwischengeschaltete
Serien-Schnittstelle. Diese ist notwendig, damit das CP/M- Betriebssystem eine Statusabfrage („Ist ein Zeichen empfangen worden?“ bzw. „Kann ein neues Zeichen gesendet werden?“) durchführen kann.

Bild 10: Datenaustausch zwischen CPU und Video- Interface ( CP/M)

Vor der Inbetriebnahme unter dem Betriebssystem CP/M sind die Schalter des Video-Interfaces entsprechend dem nachfolgenden Kapitel „Einstellung der Schalter des Video-Interfaces“ einzustellen. Die dort angegebene Schalterstellung gilt für eine Baudrate von 1200 Bd, wie sie entsprechend FPÜ-Band 4 auf den oben erwähnten Serienschnittstellen eingestellt ist. Das hier beschriebene Video-Interface kann aber wahlweise auch mit höheren Baudraten betrieben werden. Mit der Programmierbaren Serienschnittstelle“ (BFZ/MFA 4.4) sind bis zu 4800 Bd, mit der V24/RS232-Schnittstelle“ (BFZ/MFA 4.10) bis zu 9600 Bd möglich. Die Baudratenbrücken der Serienschnittstellen und die DIL-Schalter des Video-Interfaces sind dann entsprechend zu ändern. Informationen über die Einstellung der Baudratenbrücken bzw. der DIL-Schalter können Sie den folgenden Unterlagen entnehmen:

  • Für die „Programmierbare Serienschnittstelle“ dem FPÜ-Band 2
  • Für die „V24/RS232-Schnittstelle“ den zur Baugruppe mitgelieferten Unterlagen
  • Für das „Video-Interface“ dem Anhang dieses Handbuches

Die Kapitel „Nutzung in Assembler Programmen“ und „Nutzung unter MBASIC“ enthalten Informationen für eigene Assembler- bzw. BASIC- Programme in denen die Steuerfunktionen des Video-Interfaces ausgenutzt Werden sollen.

Einstellung der Schalter des Video-Interfaces

Auf der Interface-Baugruppe befinden sich drei Schalter-Reihen (siehe auch Bestückungsplan im Anhang) zur Grundeinstellung des Video-Interfaces beim Einschalten. Jede der mit S1, S2 und S3 bezeichneten Schalter-Reihen besteht aus acht Schaltern. S1.1 bezeichnet den Schalter Nummer 1 in der Schalter-Reihe S1. Die anderen Schalter sind entsprechend numeriert. Für das Betriebsprogramm. MAT85 sind die Schalter folgendermaßen einzustellen:

Schalter- Reihe S1:

SchalterStellungeingestellte Funktion
S 1.1OFFTVI 950- Mode
S 1.2OFFblinkender Cursor
S 1.3ONBlock- Cursor
S 1.4OFFdunkler Bildhintergrund
S 1.5OFFreserviert, immer OFF !
S 1.6OFFDTR- Handshake
S 1.7OFFreserviert, immer OFF 1
S 1.8OFFStatuszeile aus

Schalter-Reihe S2

SchalterStellungeingestellte Funktion
S 2.1OFFWortlänge 8 Bit
S 2.2OFFZeichensatz USA 1)
S 2.3OFFdto.
S 2.4OFFdto.
S 2.5ONZeilenanzahl 24
S 2.6OFFdto.
S 2.7ONSpaltenanzahl 80
S 2.8OFFdto.

1) Dieser Zeichensatz wird für das Betriebssystem CP/M empfohlen, da hier häufig Zeichen benötigt werden, die im deutschen Zeichensatz nicht enthalten sind. (z.B.: „[“ und „]“ für Optionen beim PIP-Kommando). Sollten (z.B. für Textverarbeitung) andere Zeichensätze gewünscht werden, so kann der Zeichensatz über das Set-Up-Menü oder über eine Steuersequenz umgeschaltet v.·erden, ohne die Einstellung der Schalter zu verändern. Viele CP/M-Programme (wie z.B. WORDSTAR) können eine solche Umschaltung beim Programmstart automatisch ausführen.

Schalter-Reihe S3

SchalterStellungeingestellte Funktion
S 3.1ON2 Stopbits
S 3.2OFFkein Paritätsbit
S 3.3OFFdto.
S 3.4OFFdto.
S 3.5OFF1200 Baud 2)
S 3.6OFFdto.
S 3.7OFFdto.
S 3.8OFFdto.

2) Die hier angegebene Schalterstellung gilt für eine Baudrate von 1200 Bd, wie sie entsprechend FPÜ-Band 4 auf den Serienschnittstellen eingestellt ist. Falls die Serienschnittstellen mit einer anderen Baudrate betrieben werden, ist die Schalterstellung entsprechend zu ändern. Informationen über die Einstellung der DIL-Schalter können Sie dem Anhang dieses Handbuches entnehmen.

Anmerkung:
Die Schalter S1.2 (Cursor-Art), S1.3 (Cursor-Form), S1.4 (Bildhintergrund), S1.8 (Statuszeile) und S2.2, S2.3, S2.4 (alle drei zur Einstellung des Zeichensatzes) können – den persönlichen Wünschen entsprechend – anders eingestellt werden. Eine andere Einstellung dieser Schalter beeinträchtigt die Funktion nicht. Angaben über die durch diese Schalter einstellbaren Optionen entnehmen Sie bitte dem Anhang.

Nutzung in Assembler-Programmen

Zeichenausgabe

Wenn der TVI 950-Mode unter dem Betriebssystem CP/M verwendet wird, können die BDOS-Funktionen des Betriebssystems zur Zeichenausgabe genutzt werden. Über diese Funktionen (Unterprogramme) können sowohl darstellbare Zeichen (wie Buchstaben und Steuerzeichen ausgegeben werden.

Es gibt verschiedene BDOS-Funktionen zur Zeichenausgabe:

Funktion „CONSOLE OUTPUT“, Ausgabe eines einzelnen Zeichens

Anwvendung:

  • C-Register mit 02H laden (Funktionscode)
  • E-Register mit dem ASCII-Code des auszugebenden Zeichens laden
  • BDOS mittels CALL 0005 aufrufen

Funktion „DIRECT CONSOLE I/0“, Ausgabe eines einzelnen Zeichens

Anwendung:

  • C-Register mit 06H laden (Funktionscode)
  • E-Register mit dem ASCII-Code des auszugebenden Zeichens laden (der Code FFH ist hier nicht zulässig)
  • BDOS mittels CALL 0005 aufrufen

Funktion „PRINT STRING“, Ausgabe einer Zeichenfolge
Anwendung:

  • C-Register mit 09H laden (Funktionscode)
  • DE-Registerpaar mit der Adresse laden, unter der das erste auszugebende Zeichen im Speicher steht. Die anderen auszugebenden Zeichen müssen in den darauffolgenden Speicherzeilen gespeichert sein. Die Zeichenfolge muss durch das „$“-Zeichen (Code 24h, 36d) abgeschlossen sein. Das „$“-Symbol selbst wird nicht ausgegeben.
  • BDOS mittels CALL 0005 aufrufen

Beispiel:

ORG 0100H  ; Anfangsadresse für CP/M- Programme
MVI E,42H  ; Code 42H ("B") in das E-Register laden
MVI C,02H  ; Funktionscode "CONSOLE OUTPUT"
CALL 0005H ; Zeichen ausgeben
MVI E,OAH  ; Steuer-Code OAH (Line-Feed) laden
MVI C,06H  ; Funktionscode "DIRECT CONSOLE I/O"
CALL 0005H ; Steuer-Code ausgeben
LXI D,TEXT ; Zeiger auf Zeichenfolge
MVI C,09H  ; Funktionscode "PRINT STRING"
CALL 0005H ; Zeichenfolge ausgeben
JMP 0000H  ; Programm- Ende
;---------------------------------------------------------
TEXT: DB 'Dieser Text soll ausgegeben werden'
      DB '$' ; Endemarke (wird nicht ausgegeben)

Bitte beachten Sie, dass sämtliche Registerinhalte durch das BDOS verändert werden können. Gegebenenfalls sind die Registerinhalte vor dem BDOS-Aufruf (CALL 0005) mit Hilfe von PUSH-Befehlen im Stack zu speichern und nach. der Ausführung der BDOS-Funktion durch POP-Anweisungen zu restaurieren.

Genauere Erläuterungen zu den BDOS-Funktionen entnehmen Sie bitte der CP/M-Literatur.

Zeicheneingabe

Alle Zeichen – gleichgültig ob sie über Tastatur eingegeben werden oder die „Antwort“ auf eine DLE- bzw. Escape-Sequenz sind – können unter Verwendung von BDOS-Funktionen des Betriebssystems CP/M eingelesen werden.

Hierzu können mehrere BDOS Funktionen benutzt werden:

Funktion „CONSOLE INPUT“, Einlesen eines Zeichens mit Echo

Anwvendung:

  • C-Register mit 01H laden (Funktionscode)
  • BDOS mittels CALL 0005 aufrufen
    Diese Funktion wartet, bis ein Zeichen eingegeben wird. Das vom Video-Interface zum Mikrocomputer gesendete Zeichen wird von der BDOS-Funktion sofort zum Interface zurück gesendet und auf dem Bildschirm angezeigt (Echo). Nach der Ausführung der BDOS-Funktion
    befindet sich das eingelesene Zeichen im Akkumulator der CPU. Diese BDOS-Funktion reagiert
    in der CP/M-üblichen weise auf die Eingabe bestimmter Steuerzeichen:
    Control S: Consolausgabe ein/ aus
    Control P: Drucker ein/aus

Diese Funktion nicht dazu verwendet werden „Anworten““ auf DLE- oder ESC-Sequenzen entgegenzunehmen, da alle vom Mikrocomputer empfangenen Zeichen auf dem Bildschirm angezeigt werden.

Funktion „DIRECT CONSOLE I/0“, Einlesen eines Zeichens ohne Echo

Anwendung:

  • C-Register mit 06H laden (Funktionscode)
  • E-Register mit FFH laden (Input)
  • BDOS mittels CALL 0005 aufrufen

Diese BDOS-Funktion ist eine kombinierte Ein-/ Ausgabe-Funktion. Um die Eingabe zu wählen, muss das E- Register vor dem Funktionsaufruf mit dem Wert FFH geladen werden. Diese Funktion führt – im Gegensatz zur oben beschriebenen Funktion „CONSOLE INPUT“ – kein Echo aus. Das heißt: Das eingegebene Zeichen wird nicht auf dem Bildschirm angezeigt. Darüber hinaus wartet diese Funktion nicht auf eine Tastatur-Betätigung. Wurde keine Taste betätigt, so weist der Akkumulator nach der Rückkehr in das Anwenderprogramm den Inhalt 00H auf. Aus diesem Grund kann der Code 00H mit dieser Funktion nicht eingelesen werden. Enthält das Empfangsregister aufgrund einer Tastenbetätigung ein Zeichen, so befindet sich der entsprechende ASCII-Code im Akkumulator.

Diese BDOS-Funktion sollte verwendet werden wenn die Antwort auf eine DLE oder Escape-
Sequenz gelesen werden muss.

Funktion „READ CONSOLE BUFFER“, Einlesen einer Zeile in einen Puffer

Anwendung:

  • C-Register mit 0AH laden (Funktionscode)
  • DE-Registerpaar mit Adresse des Eingabe-Puffers laden
    (Pufferlänge = Anzahl der zu puffernden Zeichen plus 2)
  • Als erstes Byte in den Puffer die Anzahl der puff er baren Zeichen eintragen (Pufferlänge – 2).
  • BDOS mittels CALL 0005 aufrufen .

Diese BDOS-Funktion liest eine komplette Eingabezeile in den Puffer ein. Bei der Eingabe können alle üblichen CP/M-Editier-Funktionen genutzt werden (Backspace, Delete, ^C, ^E, H,^J, ^M, ^R, ^U, ^X). Alle eingegebenen Zeichen werden auf dem Bildschirm angezeigt. Durch die Eingabe von „Line Feed“ oder „Carriage Return“ wird die Eingabe beendet. Das zweite Byte des Puffers enthält dann die Anzahl der tatsächlich eingegebenen Zeichen. Ab dem dritten Byte enthält der Puffer d ie eingegebenen Zeichen.

Diese Funktion sollte nicht dazu verwendet werden, Antworten“ auf DLE- oder ESC-Sequenenz entgegenzunehmen, da alle vom Mikrocomputer empfangenen Zeichen auf dem Bildschirm angezeigt
werden.

Beispiel:
Das folgende Programm zeigt im ersten Teil, wie Zeichen von der Tastatur gelesen werden können. Im zweiten Teil wird eine Abfrage der Software-Version gezeigt.

Bitte beachten Sie, dass sämtliche Registerinhalte durch das BDOS verändert werden können.

Gegebenenfalls sind die Registerinhalte vor dem BDOS-Aufruf (CALL 0005) mit Hilfe von PUSH- Befehlen im Stack zu speichern und nach der Ausführung der BDOS-Funktion durch POP-Anweisungen zu restaurieren. Genauere Erläuterungen zu den BDOS-Funktionen entnehmen Sie bitte der CP/M- Literatur.

Ein Programmbeispiel in Assembler-Sprache

Das nachstehende Programm fordert den Anwender auf , eine Ziffer einzugeben. Der Aufforderungstext wird in dem Unterprogramm „TXT AUS“ über die BDOS- Funktion „PRINT STRING“ ausgegeben. Die Tastatur wird über die BDOS-Funktion „DIRECT CONSOLE I/0“ abgefragt, da kein Echo erwünscht ist. Das Programm überprüft, ob tatsächlich eine Ziffer (ASCII-Code 30H bis 39H) eingegeben wurde. Ist dies der Fall, gibt das Programm die entsprechende Ziffer als Antwort auf dem Bildschirm aus. Wurde keine Ziffer eingegeben, erscheint die Meldung „KEINE ZIFFER“. Das hier beschriebene Programm wertet die Betätigung der „CR“-Taste als Abbruchwunsch aus.

Nutzung unter MBASIC (BASIC 80)

MBASIC ist ein weit verbreiteter Basic-Interpreter für das Betriebssystem CP/M. In diesem Kapitel soll gezeigt werden, wie man die Eigenschaften des Video-Interfaces BFZ/MFA 8.4 in MBASIC-Programmen nutzen kann.

Das Betriebssystem CP/M benötigt nicht unbedingt ein Video-Interface zur Ausgabe von Zeichen, da es auch mit anderen Ausgabe-Geräten (z.B. einem Fernschreiber) zusammenarbeiten kann. Zu den möglichen Ausgabegeräten gehören auch solche, die am Zeilenende nicht automatisch Wagenrücklauf und Zeilenvorschub ausführen. Damit MBASIC auch mit solchen Geräten arbeitet, erzeugt es normalerweise nach jedem 80. ausgegebenen Zeichen die Steuerzeichenkombination Wagenrücklauf / Zeilenvorschub (CR/LF). Hierbei spielt es keine Rolle, ob die zuvor ausgegebenen Zeichen darstellbar waren (Buchstaben, Ziffern usw.) oder ob es sich um Steuerzeichen gehandelt hat. Das Video-Interface benötigt die von MBASIC nach jedem 80. Zeichen erzeugte CR/LF-Kombination nicht. Sie kann sich sogar störend auswirken, weil dadurch nur jede zweite Bildschirmzeile beschrieben wird. Fügt MBASIC die CR/ LF- Kombination mitten in eine Steuer-Sequenz ein, so „versteht“ das Interface die Sequenz nicht. Aus diesen Gründen muss das automatische Einfügen von CR/LF unterbunden werden. Dies kann durch den am Programmanfang stehenden Befehl

WIDTH 255

erreicht werden.

Zeichenausgabe

Darstellbare Zeichen (wie Buchstaben und Ziffern) können unter MBASIC mit Hilfe der PRINT-Anweisung
ausgegeben werden:

10 PRINT "Video-Interface"

Die Ausgabe von Steuerzeichen ist durch die PRINT- und CHR$-Anweisungen möglich:

10 STEUERCODE=7 : PRINT CHR$(STEUERCODE);
20 PRINT CHR$(7);

Die oben abgedruckten Zeilen sind gleichwertig, sie geben alle das Steuerzeichen BELL (ASCII-CODE 07h) aus. Die PRINT-Anweisungen sind jeweils mit einem „;“ abgeschlossen, damit MBASIC nach dem auszugebenden Steuerzeichen BEL nicht zusätzlich die Steuerzeichen für Wagenrücklauf und Zeilenvorschub ausgibt.

Beachten Sie bitte die CHR$-Anweisung! Ohne diese Anweisung „würde die Ziffer „7“ ausgegeben:

10 PRINT 7; : REM*** Diese Anweisung gibt die Ziffer "7'' aus

Sollen Steuerzeichen-Folgen (z.B. Escape-Sequenzen) ausgegeben werden, so kann hierzu eine einzige PRINT-Anweisung verwendet werden. Die einzelnen Steuerzeichen müssen – soweit sie nicht in einem String zusammengefasst sind – durch ein „;“ (nicht durch ein „,“ !) voneinander getrennt werden:

10 PRINT CHR$(27) ; CHR$(71); CHR$(52);

Das Semikolon zwischen den einzelnen Zeichen verhindert, dass MBASIC Leerzeichen in die zum
Video-Interface übertragene Zeichenfolge einfügt.

Die oben angegebene Zeichenfolge schaltet die inverse Zeichendarstellung ein. Auch andere Möglichkeiten zur Ausgabe von Steuerzeichenfolgen sind erlaubt:

10 PRINT CHR$ ( 27) ; "G4";

oder

10 ESC$=CHR$(&H1B)
20 PRINT ESC$ ;'"G4";

oder

10 INVEIN$=CHR$(27)+"G4"
20 PRINT INVEIN$;

usw.

Zeicheneingabe

Um Tastatur-Eingaben in MBASIC entgegenzunehmen, können die Basic-Anweisungen INPUT, INPUT$ und INKEY$ verwendet werden. Eine genaue Beschreibung dieser Anweisungen entnehmen Sie bitte der MBASIC-Anleitung.

Beispiele:

10 INPUT "Eingabe",I1$
20 I2$=INPUT$(4) : REM*** LIEST 4 ZEICHEN
30 I3$=INKEY$ : IF I3$="" THEN 30

Antworten“ auf DLE- bzw. Escape-Sequenzen sollten ausschließlich mit der lNPUT$-Anweisung entgegengenommen werden. Dabei sollte – wie das nachfolgende Beispiel zeigt – die INPUT-Anweisung direkt auf die PRINT-Anweisung zur Ausgabe der DLE- bzw. Escape-Sequenz folgen. Bitte achten Sie darauf, dass in der Klammer der INPUT$-Anweisung die richtige Anzahl der “Antwort“-Zeichen angegeben wird.

1 WIDTH 255 : REM* UNTERDRUECKE VOM INTERPRETER-CR/LF
10 ESC$=CHR$(&H1B) : REM* ESCAPE
20 WO$=ESC$+"?" : REM* ESC-SEQUENZ ZUR CURSOR-POSITIONS-ABFR.
30 REM* FUER DIESES BEISPIEL IST ES WICHTIG, DASS DIE NACH-
40 REM* FOLGENDE PRINT-ANWEISUNG MIT EINEM";" ABGESCHLOSSEN 
50 REM* IST.
60 PRINT "Bitte CONTROL-C betaetigen"; : REM* Text ausgeben 
70 PRINT WO$; : REM* ABFRAGE DER CURSOR-POSITION (mit ";"!!)
80 I$=INPUT$(3) : REM* "ANTWORT" ENTGEGENNEHMEN (3 ZEICHEN)
90 REM* D::EE ANTWORT BESTEHT AUS '3 ZEICHEN:
100 REM* REIHE+20H, SPALTE+20H, ODH 
110 REIHE=ASC(LEFT$(I$,1))-&H20 
120 SPALTE=ASC(MID$(I$,2,l))-&H20 
130 REM* NUN DIE CURSOR-POSITION ANZEIGEN
140 PRINT "Reihe=";REIHE;", Spalte=";SPALTE
150 REM* NUN CURSOR AUF DIE ALTE POSITION, DIE ER VOR DER 
160 REM* ANZEIGE VON "REIHE" UND "SPALTE" HATTE
170 PRINT ESC$;"=" ;LEFT$(I$,2);
180 REM* DIE ERSTEN BEIDEN ZEICHEN VON I$ GEBEN DIE POSITION AN 
190 REM* ZUM ABSCHLUSS EINE ENDLOS-SCHLEIFE, DAMIT DIE
200 REM* CURSOR-POSITION NICHT DURCH DIE READY-MELDUNG DES 
210 REM* BASIC-INTERPRETERS VERAENDERT WIRD (PROGRAMM BITTE
220 REM*** MIT "CONTROL-C" ABBRECHEN)
230 GOTO 230

Ein Programmbeispiel in MBASIC (BASIC 80)

Das nachstehende Programm soll die einzelnen Aus- und Eingabemöglichkeiten unter MBASIC darstellen. Texte und Steuerzeichen werden mit Hilfe einer PRINT-Anweisung ausgegeben. Zeile 190 zeigt die Anwendung der INKEY$-Funktion.

1 WIDTH 255 : REM* UNTERDRUECKE INTERPRETER-CR/LF
10 PRINT CHR$(7); : REM* CODE FUER "BEL" AUSGEBEN
20 PRINT "Dies ist ein Test" : REM* TEXT AUSGEBEN 
30 PRINT : REM EINE LEERZEILE ERZEUGEN 
40 PRINT "Gross- und Kleinbuchstaben" 
50 REM * NUN DEN CURSOR ZWISCHEN DIE BEIDEN TEXTZEILEN- STELLEN
60 REM *** (DER CURSOR STEHT NACH DER LETZTEN PRINT-ANWEISUNG
70 REM *** UNTER DEM TEXT "Gross - ····"· DAHER r,,russ DER CURSOR
80 REM *** UM ZWEI ZEILEN NACH OBEN GESTELLT WERDEN. DER CODE
90 REM *** FUER "CURSOR HOCH" IST 11 (DEZ))
100 PRINT CHR$(11) ;CHR$(11) ;
110 REM *** ACHTEN SIE BEIM EINGEBEN DIESES PROGRAMMS DARAUF,
120 REM *** DASS AM ENDE DER NACHFOLGENDEN ZEILE EIN";" STEHT
130 PRINT''-------------------------------'';
140 REM *** NUN CURSOR UNTER "Grass- und Kleinbuchstaben"
150 PRINT CHR$(10) ;CHR$(10) ;CHR$(13) ;: REM *** LF, LF, CR
160 INPUT "WIE ALT SIND SIE ",A
170 PRINT "SIE BEHAUPTEN,";A;"JAHRE ALT ZU SEIN"
180 PRINT "BITTE BETAETIGEN SIE EINE TASTE"
190 C$=INKEY$: IF C$="" THEN 190: REM *** TASTATURABFRAGE
200 PRINT "DIE VON IHNEN BETAETIGTE TASTE ERZEUGT DEN CODE";
210 PRINT ASC(C$) ;" (DEZ)" : REM *** CODE ANZEIGEN
220 PRINT "--- ENDE---"

Das Editor-Programm BFZED.COM

Der zum CP/M-Betriebssystem für den MFA-Mikrocomputer mitgelieferte Editor „BFZED.COM“ ist für das Video-Interface BFZ/MFA 8.2 installiert. Dies bedeutet, dass zur Steuerung des Cursors der MAT85-Mode des hier beschriebenen Interfaces benutzt werden muss. Dieser Mode kann vor dem Start des Editors über das Set-Up-Menü ein- und nach Verlassen des Editors wieder ausgeschaltet werden. Abgesehen davon, dass hierbei ständig zwischen den beiden Modi hin- und hergeschaltet werden muss, können die erweiterten Möglichkeiten des TVI 950-Modes so nicht genutzt werden.

Deshalb ist es sinnvoll, das Programm BFZED.COM an den TVI 950-Mode anzupassen. Bevor man
diese Anpassung jedoch durchführt, sollte man sich eine Sicherheitskopie des Programms anfertigen.

Arbeiten Sie NIE mit der Original-Diskette
(außer zum Erstellen einer Sicherheitskopie)


Bedenken Sie ebenfalls, dass die geänderte BFZED.COM-Version ausschließlich im TVI 950-Mode
des hier beschriebenen Video-Interfaces BFZ/MFA 8.4 funktionsfähig ist. Sollten Sie BFZED.COM auch auf dem Video-Interface BFZ/MFA 8.2 betreiben wollen, so müssen Sie hierfür die ungeänderte Version des Programms benutzen.

Vorbereitungen zum Anpassen des Programms BFZED.COM

Kopieren Sie folgende Programme auf eine formatierte und mit dem CP/M-Betriebssystem versehene Diskette: STAT.COM, DDT.COM, BFZED.COM und BFZED.HLP. Alle Arbeiten sollten nur mit dieser neu geschaffenen Arbeitdiskette durchgeführt werden, damit nicht versehentlich die Original-Version des Editors verändert wird.

Setzen Sie die neue Arbeitsdiskette in Laufwerk A: ein und betätigen Sie die RESET-Taste des
Mikrocomputers. Nach wenigen Sekunden muß die CP/M-Bereitschaftsmeldung „A>“ erscheinen.

Ermitteln Sie die Länge des Programms BFZED.COM mit Hilfe des Programms STAT.COM.

Geben Sie hierzu ‚die Anweisung

STAT BFZED.COM

ein und schließen Sie die Eingabe durch die Betätigung der CR-Taste ab.

Auf dem Bildschirm wird daraufhin beispielsweise

RECSBYTESEXTACC
648K1R/W A: BFZED.COM
BYTES REMAINING ONA: 288K

angezeigt. Hiervon ist nur der Wert unter „RECS“ wichtig. Er gibt die Länge des Programms BFZED.COM in Records zu je 128 Bytes an. Falls der angezeigte Wert ungerade ist, muss er um 1 erhöht werden. Dividieren Sie den (ggf. um 1 erhöhten). Wert durch 2 und notieren Sie das Divisions-Ergebnis

Beispiele:

Angezeigter Wertplus 1 (da ungerade)?Divisions-Ergebnis
(Notieren ! )
63JA –> 6432
64NEIN32

Anpassen des Programms BFZED.COM

Geben Sie .nach den oben angegebenen Vorbereitungen nun die folgende Kommandozeile ein:

DDT BFZED.COM

Schließen Sie die Eingabe mit der CR-Taste ab. Die Eingabe bewirkt, dass zuerst das Monitorprogramm DDT.COM geladen wird. Dieses lädt dann das Editor-Programm BFZED.COM in den RAM-Speicher. Dort kann es verändert werden.

Nachstehend ist der „Dialog“ zwischen Benutzer und DDT.COM abgedruckt. Ausgaben des Programms
DDT.COM sind in der Schrift Courier gesetzt. Eingaben des Benutzers sind in der unterstrichenen Schrift Courier gesetzt. Alle Benutzereingaben sind durch die Betätigung der CR-Taste abzuschließen. Das Zeichen „l“ im folgenden Bildschirm-Dialog symbolisiert DDTAusgaben, die – abhängig von der jeweiligen BFZED.COM-Version – unterschiedlich sein können.

Kommentare sind in der Schrift Times Roman Italic gesetzt.

Nachdem alle Änderungen durchgeführt wurden, kann das Progran1m DDT.COM durch die
Tastenkombination CONTROL-C beendet werden.

Nun ist es wichtig, die noch im RAM befindliche neue Version des Programms BFZED.COM auf der Diskette zu speichern. Erinnern Sie sich noch an den Wert, den Sie sich notieren sollten?

Diesen Wert brauchen wir jetzt! Geben Sie die Kommando-Zeile

SAVE ?? BFZED950.COM

ein „??“ symbolisiert den notierten Wert. Das Betriebssystem CP/M „weiß“ nun, wie groß der RAM-Bereich ist, der auf der Diskette gespeichert werden muss. Die neue Version des Editor-Programms
wird unter dem Namen BFZED950.COM gespeichert.

Anschließend kann die neue Version des Editors aufgerufen und überprüft werden.

Die hier durchgeführten Änderungen passen den Editor lediglich an das neue Bildformat (80 Zeichen pro Zeile, 24 Zeilen) an. Soll der Editor z.B. beim Programmaufruf automatisch vom USA-Zeichensatz zum deutschen Zeichensatz umschalten, so ist auch dies möglich. Die Steuerzeichen für die zusätzlichen Anpassungen entnehmen Sie bitte diesem Handbuch. Der Änderungsvorgang selbst ist im FPÜ-Band 4 („Beschreibung des Programms BFZED.COM“) erläutert.

Die Statuszeile

Das hier beschriebene Interface kann zusätzlich zu den Zeichen-Zeilen am unteren Rand des Schriftfeldes eine Statuszeile anzeigen. Diese kann mit dem Schalter S1.8 oder mit Hilfe des Setup-Menüs ein- bzw. ausgeschaltet werden. Die Statuszeile ist unabhängig vom eingeschalteten Mode (MAT85 bzw. TVI 950). Sie steht dem Anwender nicht zur Zeichenausgabe zur Verfügung, das heißt, er kann in diese zusätzliche Zeile keinen Text schreiben. In der Statuszeile wird mit halber Helligkeit und dunkler Schrift auf hellem Grund eine Zustandsinformation des . Video-Interfaces angezeigt.

Die Statuszeile besteht aus acht Spalten und hat folgenden Aufbau:

Control-ModeParitätDatenbitsStoppbitsBaudrateZeichensatzEumlations-
Mode
Rrr Css
CTL-MODEP:OFFD:8S:21200 BAUDUSATVI 950R02 C17

Die Überschriften der einzelnen Spalten werden auf dem Bildschirm nicht angezeigt. Die hier dargestellte Anzeige ist ein Beispiel. Die tatsächlich angezeigten Werte sind abhängig von der Einstellung des Video-Interfaces bzw. von der Cursor-Position.

Control-Mode
Wenn der Control-Mode aktiviert wurde, zeigt das Interface in dieser Spalte die Meldung „CTL-MODE“
an. Normalerweise ist dieses Feld leer.

Parität
Hinter den Zeichen „P:“ wird der aktuelle Paritäts- Mode angezeigt. Möglich sind die Anzeigen „OFF“ (keine Parität), „ODD“ (odd Parity, ungerade Parität), „EVN“ (even Parity, gerade Parität), „MRK“ (Mark, immer 1-Pegel), „SPC“ (Space-Parity, immer L-Pegel). Der Paritäts-Mode kann über die DIL-Schalter der Baugruppe eingestellt werden.

Datenbits
In dieser Spalte wird hinter den Zeichen „D:“ die Anzahl der Datenbits pro übertragenem Zeichen angezeigt. Möglich sind „7“ bzw. „8“ Datenbits. Die Anzahl der Datenbits kann über die DIL-Schalter der Baugruppe eingestellt werden.

Stopbit
Die eingestellte Anzahl der Stopbits („1“ oder „2“) wird hinter den Zeichen „S:“ angezeigt. Die Anzahl der Stopbits kann über die DIL-Schalter der Baugruppe eingestellt werden.

Baudrate
Die eingestellte Baudrate wird in dieser Spalte angezeigt. Folgende Baud-Raten sind möglich:
110 Bd; 134,5 Bd; 150 Bd; 300 Bd; 600 Bd; 1200 Bd; 1800 Bd; 2400 Bd; 3600 Bd; 4800 Bd; 7200 Bd; 9600 Bd; 19200 Bd.

Zeichensatz
Der aktuelle zeigt länderspezifische Zeichensatz wird hier durch eine entsprechende Abkürzung angezeigt

USA Vereinigte Staaten von Amerika
FRAnceFrankreich
GERmany Deutschland
ENGland England
DENrnark Dänemark
SWEden Schweden
ITAly Italien
SPAin Spanien

Emulations-Mode
In dieser Spalte wird der aktuelle Emulations-Mode („MAT85“ oder „TVI950“) angezeigt.

Rrr Css (Cursor-Position)
Im rechten Teil der Status-Zeile wird die aktuelle Cursor-Position angezeigt. Hinter „R“ (für „ROW'“, Reihe) wird die Nummer der Reihe, in der sich der Cursor momentan befindet, angezeigt. Hinter „C“ (für „COLUMN“, Spalte) erfolgt die Anzeige der Spalten-Nummer. Die für diese Anzeige gültige Reihen- und Spaltenzählung beginnt bei 1.

Hinweis
Wie beim original TVI 950-Terminal, beginnt die Spalten- und Reihenzählung zur Abfrage der Cursor-Position (ESC ?) und zur Positionierung des Cursors (ESC =) bei 0, die Zählung für die Cursor- Positionsanzeige in der Status-Zeile aber bei 1.

7 Das Set-Up-Menü

Viele Einstellungen, die über DIL-Schalter bzw. Escape-Sequenzen möglich sind, lassen sich auch über die Tastatur ver:lndern. Hierzu muss das Set-Up-Menü (Einstell-Menü) durch die Eingabe von CONTROL-DEL aufgerufen werden (CONTROL-Taste gedrückt halten, zusätzlich die im rechten Teil der Tastatur befindliche DEL-Taste betätigen (nicht die DEL-Taste links oben auf der Tastatur), anschließend beide Tasten loslassen).

Nach dem Aufruf des Set-Up-Menüs erscheint folgende Anzeige auf dem Bildschirm:

Die oben dargestellte Bildschirm-Anzeige zeigt eine mögliche Einstellung des Video-Interfaces. Je nach der Einstellung des von Ihnen verwendeten Interfaces kann die Anzeige an einigen Stellen davon abweichen.

Die Anzeige soll nun im einzelnen e rläutert werden:

SETUP Video Interface BFZ/MFA 8.4 Vx.x

Die erste Zeile ist die Meldung des Set- Up-Menüs. In ihr wird auch die Version des auf dem Interface verwendeten EPROMs angezeigt (hier mit „vx.x“ angedeutet).

Die zweite Zeile gibt einige Bedienungshinweise:

Auswahl mit "Auf"/"Ab", ändern mit Leertaste, Ende mit CONTROL DEL

Der restliche Teil des Set-Up-Menüs ist in zwei Spalten aufgeteilt. ln der ersten Zeile der linken Spalte befindet sich der Text

Emulation TVI950

Der Textteil hinter dem Wort „Emulation“ (entweder – wie hier – TVI950 oder MAT85) ist invers dargestellt. Dieser inverse Block kann über die Pfeiltasten „Auf“ und „Ab“ der Tastatur in die anderen Zeilen der Spalte bewegt werden (versuchen Sie es einmal!). Befindet sich der inverse Block in der untersten Zeile einer Spalte, springt er bei Betätigung der „Ab“-Taste in die oberste Zeile der Nachbar-Spalte. Betätigt man nun die „Auf“-Taste, springt er zurück in die alte Position. Durch das Positionieren des inversen Blocks kann man auswählen, welcher Parameter (Emulation, Spalten, Zeilen … ) geändert werden soll.

Eine Änderung der einzelnen Parameter wird durch Betätigung der · Leertaste erreicht. Bei jeder Betätigung wird eine neue Einstellung innerhalb. des inversen Blocks angezeigt. Die Leertaste muss so oft betätigt werden, bis die gewünschte Einstellung erscheint. Sind auf diese Weise alle möglichen Einstellungen eines Parameters der Reihe nach zur Anzeige gebracht worden, erscheint wieder die erste Einstellung. Die eingestellten Parameter werden erst beim Verlassen des Set -Up-Menüs aktiv.

Wenn alle Parameter entsprechend den persönlichen \Vünschen eingestellt sind, kann das Set-Up-Menü durch erneute Betätigung von CONTROL-DEL verlassen werden. Dabei wird der alte Bildschirminhalt – soweit nach der Parameteränderung möglich – restauriert, und die Zeichendarstellung den aktuellen‘ Parametern angepasst. Eine Änderung des länderspezifischen Zeichensatzes wirkt sich erst bei der Übertragung weiterer Zeichen aus.

Folgende Einstellungen sind möglich:

EmulationTVI950 / MAT85
Spalten72 / 80 / 88 / 96
Zeilen22 / 24 / 26 / 28
ZeichensatzUSA / FRA /GER/ ENG / DEN / SWE / ITA / SPA
StatuszeileAUS / EIN
Control ModeAUS / EIN
HintergrundHELL / DUNKEL
Attribut Bit 7AUS/ REVERS/ BLINK / UNDERL
Cursor-FormSTRICH/ BLOCK
Cursor-ArtBLINK/ RUHEND / AUS

Der Control Mode

Im Control-Mode werden alle Steuerzeichen, die das Video-Interface empfängt, nicht ausgeführt, sondern als inverse Zeichen mit halber Helligkeit auf dem Bildschirm angezeigt. Darstellbare Zeichen werden unverändert angezeigt. Mit Hilfe dieses Modes kann der Anwender feststellen, welche Steuerzeichen vom Mikrocomputer zum Video-Interface gesendet werden. So ist eine einfache Überprüfung der Anwender-Software möglich.

Die folgende Tabelle zeigt einige häufig benutzte Steuerzeichen und ihre Darstellung (eine vollständige Tabelle finden Sie im Anhang):

CodeMnemonikangezeigte Zeichen
07BELG
08BSH
09HTI
0ALFJ
0BVTK
0CFFL
0DCRM
10DLEP
16SYNV
1ASUBZ
1BESC[
1ERS^

1) Die angezeigten Zeichen sind abhängig vom eingestellten länderspezifischen Zeichenzatz. Für
diese Tabelle wurde der USA-Zeichensatz (empfohlene Grundeinstellung und Tastaturbeschriftung)
verwendet.

Der Control-Mode kann auf zwei verschiedene Arten aktiviert werden:

  • durch Einschalten von „Control Mode EIN“ im Set-Up-Menü
  • durch Senden der Escape-Sequenz „ESC U“ im TVI 950-Mode

Hinweis
Da im Control-Mode alle Steuerzeichen nur noch angezeigt aber nicht ausgeführt werden, kann der Control-Mode nur über das Set-Up-Menü (Control Mode AUS) verlassen werden. Siehe auch: „Das Set-Up-Menü“.

Stromlaufplan

Bestückungsplan

Bauteilliste

Lötbrückentabelle

Auf der Video-Interface-Baugruppe befinden sich e;nige Lötbrücken (Jumper). Diese ermöglichen eine Anpassung der Hardware an bestimmte Erfordernisse.

J1 – Umschaltung internes/ externes ROM für den TMP

  • geöffnet: externes ROM
  • geschlossen: internes ROM (nur bei NS455!)
    Bei dem hier verwendeten Typ (NS 405) immer offen !
    Lieferzustand: geöffnet (externes ROM)

J2 – Speichertyp-Umschaltung

  • Stellung „a“: 6264 (8K x 8-Bit)
  • Stellung „b“: 6116 (2K x 8-Bit)
    Es darf immer nur eine Brücke („a“ oder „b“) geschlossen sein!
    Lieferzustand: Stellung „a“ (6264, 8K x 8-Bit)

J3 – Wahl des aktiven Pegels des Tastatur-STROBE-Signals

  • geöffnet: H-Pegel (MFA-Standard-Tastatur)
  • geschlossen: L-Pegel
    Lieferzustand: geöffnet (H-Pegel)

J4 – Interner Signalgeber H1 ein/ aus

  • geöffnet: interner Signalgeber aus
  • geschlossen: interner Signalgeber ein
    Lieferzustand: geschlossen (interner Signalgeber ein)

J5 – An X3 anschließbarer externer Signalgeber ein/ aus

  • geöffnet: externer Signalgeber aus
  • geschlossen: externer Signalgeber ein
    Lieferzustand: geschlossen (externer Signalgeber ein)

Der in der Tastatur eingebaute Signalgeber kann nicht als externer Signalgeber verwendet werden! Als externe Signalgeber können nur piezokeramische Signalgeber verwendet werden.

J6 – Umschaltung externer/interner Reset

  • Stellung „a“: interner Reset
  • Stellung „b“: externer Reset
    Es darf immer nur eine Brücke („a“ oder „b“) geschlossen sein!
    Lieferzustand: Stellung „b“ (externer Reset)

Bei einem externen Reset wird das Video-Interface beim Betätigen des an der CPU-Baugruppe befindlichen Reset-Tasters zurückgesetzt. Dies kann sinnvoll sein, wenn versehendlich falsche Steuersequenzen zum Interface übertragen wurden und der Anwender nicht weiß, mit welchen Steuersequenzen er den Ursprungszustand wieder herstellen kann. In manchen Fällen kann es allerdings nachteilig sein, daß beim Rücksetzen der CPU auch das Video-Interface zurückgesetzt wird, da es dann die über die DIL-Schalter festgelegte Betriebsart einnimmt. Alle Änderungen der Betriebsart, die eventuell zuvor über Steuersequenzen vorgenommen wurden, werden damit hinfällig.

J7 – AKD-Signal der Tastatur zum RST 6.5-Anschluß der CPU durchschleifen

  • geöffnet: AKD-Signal nicht durchschleifen
  • geschlossen: AKD-Signal durchschleifen
    Lieferzustand: geschlossen (AKD-Signal auf RST 6.5-Anschluß)

Bei geschlossener Brücke erhält die CPU bei jedem Tastendruck eine lnterrupt-Anforderung. Dadurch kann ein laufendes BFZ-STEUER-BASIC- oder SPS-Programm durch Betätigung einer Taste (außer SHIFT, CONTROL, BREAK) abgebrochen werden. Bei geöffneter Brücke können diese Programme nur durch die Betätigung des Reset-Tasters abgebrochen werden.

X1 – MFA- Systembus ( VG64-Steckerleiste)

KontaktSignal
1 a/c+5VBetriebsspannung
27 cRST 6.5AKD- Signal der Tastatur
28 cDTRData Terminal Ready (Steuersignal)
29 cTxDDaten vom Video-Interface
30 cRxDDaten zum Video-Interface
31 a+12VBetriebsspannung
31 c-12VBetriebsspannung
32 a/c0V GNDMasse (Ground)

X2 – Tastatur-Anschluss (15-polige Sub-D-Buchse)

KontaktSignalbezeichnung
1DB0Tastatur-Datenleitung 0
2DB1Tastatur-Datenleitung 1
3DB2Tastatur-Datenleitung 2
4DB3Tastatur-Datenleitung 3
5DB4Tastatur-Datenleitung 4
6DB5Tastatur-Datenleitung 5
7DB6Tastatur-Datenleitung 6
8STBTastatur-Strobe
9Nicht belegt
100VMasse (Ground)
11+5VBetriebsspannung der Tastatur
12Nicht belegt
13DB7Tastatur-Datenleitung 7 (falls angeschlossen)
14AKDAny Key Down (Siehe Anpassung ACSII-Tastatur)
15Nicht belegt

X3 – Anschluß für ext. Signalgeber (2 Lötpunkte)

KontaktSignalbezeichnung
10VMasse (Ground)
2BELLSignalgeber-Ansteuerung

X4 Monitor-Anschluss (BNC- Buchse)

KontaktSignalbezeichnung
MitteBASBild-, Austast- und Synchron- Signal
Schirm0VMasse (Ground)

ASCII-Tabelle

Länderspezifische Zeichen

Darstellung der Steuerzeichen im Control-Mode

Im Control-Mode werden alle Steuerzeichen. die das Video-Interface empfängt, nicht ausgeführt, sondern als inverse Zeichen mit halber Helligkeit auf dem Bildschirm angezeigt. In der nachstehenden Tabelle sind Code und Mnemonik der Steuerzeichen sowie angezeigte Zeichen gegenübergestellt.

Zwischen den Steuerzeichen und den angezeigten Zeichen besteht folgender Zusammenhang:
Code des angezeigten Zeichens = Code des Steuerzeichens + 40H

Die Codes der Steuerzeichen lassen sich auch von der Tastatur zum Mikrocomputer übertragen. Hierzu muß das in der rechten Spalte der Tabelle auf geführte Zeichen („angezeigtes Zeichen“) bei gleichzeitiger Betätigung der CONTROL-Taste eingegeben werden.

Beispiel:
Soll z.B. das Steuerzeichen NUL (Code 00H) zum Mikrocomputer übertragen werden, ist die CONTROL-Taste zusammen mit der Taste „@“ zu betätigen.

1) Die angezeigten Zeichen sind abhängig vom eingestellten Länderspezifischen Zeichensatz. Für diese Tabelle wurde der USA-Zeichensatz (empfohlene Grundeinstellung und Tastaturbeschriftung) verwendet.

Bedeutung der Schalterstellungen der Schalter-Reihen S1 bis S3

Auf der Baugruppe befinden sich drei Schalter-Reihen. Jede dieser Schalter-Reihen besteht aus acht Schaltern. Die einzelnen Schalter-Reihen sind mit S1, S2 und S3 bezeichnet. S1.1 bezeichnen den Schalter Nummer 1 in der Schalter-Reihe S1. Die anderen Schalter sind entsprechend nummeriert. Mit Hilfe dieser Schalter kann die Grundeinstellung des Video-Interfaces vorgenon1men werden. Diese Grundeinstellung wird nach dem Einschalten des Interfaces aktiv. Die Grundeinstellung kann aber während des Betriebes durch die Übertragung entsprechender Steuerzeichen bzw. durch das Set-Up-Menü verändert werden.

Die folgende Übersicht zeigt die Einstellmöglichkeiten diese Schalter-Reihen:

Schalterreihe S1

Emulationsmode

S 1.1Emulationsmode
OFFTVI950
ONMAT85

Cursor-Art

S 1.2Cursor-Art
OFFblinkend
ONruhend

Cursor-Form

S 1.3Cursor-Form
OFFStrich
ONBlock

Bildhintergrund

S 1.4Bildhintergrund
OFFDunkel
ONHell

reserviert

S 1.5reserviert
OFFimmer auf OFF

Handshake

S 1.6Handshake
OFFHardware (DTR)
ONSoftware (XON/XOFF)

Reserviert

S 1.7Reserviert
OFFImmer auf OFF

Statuszeile

S 1.8Statuszeile
OFFaus
ONein

Schalterreihe S2

Wortlänge

S2.1Wortlänge
OFF7 Bit
ON8 Bit

Zeichensatz

S2.2S 2.3S 2.4Zeichensatz
OFFOFFOFFUSA
ONOFFOFFFrankreich
OFFONOFFDeutschland
ONONOFFEngland
OFFOFFONDänemark
ONOFFONSchweden
OFFONONItalien
ONONONSpanien

Zeilenanzahl

S 2.5S 5.6Zeilenanzahl
OFFOFF22
ONOFF24
OFFON26
ONON28

Spaltenanzahl

S 2.7S 2.8Spaltenanzahl
OFFOFF72
ONOFF80
OFFON88
ONON96

Schalterreihe S3

Stoppbit

S 3.1Stoppbit
OFF1 Bit
ON2 Bit

Paritätsbit

S 3.2S 3.3S 3.4Paritätsbit
OFFOFFOFFkein Paritätsbit , no Parity
ONOFFOFFungerade Parität , odd Parity
OFFONOFFkeine Parität , no Parity
ONONOFFgerade Parität , even Parity
OFFOFFONkein Paritätsbit , no Parity
ONOFFONimmer „1“, Mark Parity
OFFONONkein Paritätsbit , no Parity
ONONONimmer „0“, Space Parity

Baudrate

S 3.5S 3.6S 3.7S 3.8Baudrate
OFFOFFOFFOFF110 Bd
ONOFFOFFOFF134,5 Bd
OFFONOFFOFF150 Bd
ONONOFFOFF300 Bd
OFFOFFONOFF600 Bd
ONOFFONOFF1200 Bd
OFFONONOFF1800 Bd
ONONONOFF2400 Bd
OFFOFFOFFON3600 Bd
ONOFFOFFON4800 Bd
OFFONOFFON7200 Bd
ONONOFFON9600 Bd
OFFOFFONON19200 Bd
ONOFFONON19200 Bd
OFFONONON19200 Bd
ONONONON9600 Bd

Tabelle der Attribut-Bytes für die Escape-Sequenz „ESC G“

Mit Hilfe der Escape-Sequenz „ESC G“ können den einzelnen Zeichen im TVI 950-Mode des Interfaces verschiedene Attribute zugewiesen werden. Hierzu ist nach den beiden Bytes für die einleitenden Zeichen „ESC G“ ein drittes Byte zu übertragen. Mit diesem drit ten Byte „Attribute+30h werden die gewünschten Attribute festgelegt. Die Tabelle auf der nächsten Seite soll helfen, dieses Byte zu ermitteln.

Im rechten Tabellenteil findet man die einzelnen Attribute: „unsichtbar“, „blinkend“, „invers“, „unterstrichen“, „doppelt breit“ und „doppelt hoch“. Aktive Attribute sind in der entsprechenden Spalte durch das Symbol „*“ gekennzeichnet. Zur Ermittlung des dritten Bytes der Escape-Sequenz sucht man die Tabellen-Zeile auf, in der die gewünschte Attribut-Kombination durch „*“-Symbole gekennzeichnet ist. lm linken Tabellenteil findet man das entsprechende Byte (jeweils in ASCII, Hexadezimal- und Dezimalcodierung). Die Tabelle enthält alle zulässigen Attribut-Kombinationen.

Beispiel:
Es soll die Attribut-Kombination „unterstrichen“ / „blinkend“ eingeschaltet werden. In der Tabell ist hierfür folgende Zeile gültig:

Aus der Tabelle entnimmt man als drittes Byte der Escape-Sequenz das ASCII-Zeichen „:“. Hiermit ergibt sich folgende Gesamtsequenz:

ESC G :      (ASCII codiert)
1BH 47H 3AH  (hex. codiert)
27D 71D 58D  (dez. codiert)

1) Für die Darstellung der ASCII-Zeichen wurde der USA-Zeichensatz (empfohlene Grundeinstellung und Tastaturbeschriftung) verwendet.

Steuerzeichen im MAT85-Mode

1-Byte Steuerzeichen

FunktionBezeichnunghex. Codedez. Code
BellBEL077
Cursor nach links (Backspace)BS088
Cursor nach rechtsHT099
Zeilenvorschub (Cursor nach unten)LF0A10
Cursor nach obenVT0B11
Bildschirm löschen, Cursor nach oben linksFF0C12
Wagenrücklauf, Zeilenrest löschenCR0D13
Zeile löschenSUB1A26
Cursor nach untenESC1B27
Cursor nach oben linksFS1C28
Cursor an den ZeilenanfangGS1D29

DLE-Sequenzen

FunktionBezeichnunghex. Codedez. Code
Modeumschaltung (TVI950)DLE DLE 110 10 3116 16 49
Modeumschaltung (MAT85)DLE DLE 210 10 3216 16 50
ModeabfrageDLE DLE ?10 10 3F16 16 63
SoftwareresetDLE DLE @10 10 4016 16 64
VersionsabfrageDLE DLE V10 10 5616 16 86

Steuerzeichen im TVI950-Mode

1-Byte Steuerzeichen

FunktionBezeichnunghex. Codedez. Code
BellBEL077
Cursor nach links (Backspace)BS088
Horizontal-TabulatorHT099
Zeilenvorschub (Cursor nach unten)LF0A10
Cursor nach obenVT0B11
Cursor nach rechtsFF0C12
Wagenrücklauf, Zeilenrest löschenCR0D13
Cursor nach untenSYN1622
Bildschirm löschen, Cursor nach oben linkSUB1A26
Cursor nach oben linksRS1E30

DLE-Sequenzen

FunktionBezeichnunghex. Codedez. Code
Modeumschaltung (TVI950)DLE DLE 110 10 3116 16 49
Modeumschaltung (MAT85)DLE DLE 210 10 3216 16 50
ModeabfrageDLE DLE ?10 10 3F16 16 63
SoftwareresetDLE DLE @10 10 4016 16 64
VersionsabfrageDLE DLE V10 10 5616 16 86

Escape-Sequenzen (nach Funktionen geordnet)

Erfordert eine Escape-Sequenz zusätzliche Parameter, so ist hier der Platzhalter “ “ angegeben

Escape-Sequenzen (nach Codes geordnet)

Erfordert eine Escape-Sequenz zusätzliche Parameter, so ist hier der Platzhalter „_“ angegeben


Weitere Informationen

Dokumente

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert