summaryrefslogtreecommitdiff
path: root/system/ruc-terminal
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2019-02-11 11:49:19 +0100
committerLars-Dominik Braun <lars@6xq.net>2019-02-11 11:49:39 +0100
commit98cab31fc3659e33aef260efca55bf9f1753164c (patch)
treef1affa84049ef9b268e6c4f521f000478b0f3a8e /system/ruc-terminal
parent71e2b36ccd05ea678e62e32ee6245df2b8d6ac17 (diff)
downloadeumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.tar.gz
eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.tar.bz2
eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.zip
Add source files from Michael
Diffstat (limited to 'system/ruc-terminal')
-rw-r--r--system/ruc-terminal/unknown/doc/BIOSINT.PRT281
-rw-r--r--system/ruc-terminal/unknown/doc/MACROS.PRT54
-rw-r--r--system/ruc-terminal/unknown/doc/TDOC.PRT3012
-rw-r--r--system/ruc-terminal/unknown/doc/TDOCP.PRT4008
-rw-r--r--system/ruc-terminal/unknown/doc/TINHALT.PRT120
-rw-r--r--system/ruc-terminal/unknown/doc/TINHALTP.PRT157
-rw-r--r--system/ruc-terminal/unknown/doc/TSTICHP.PRT211
-rw-r--r--system/ruc-terminal/unknown/doc/TSTICHWO.PRT161
-rw-r--r--system/ruc-terminal/unknown/doc/TTAB.PRT510
-rw-r--r--system/ruc-terminal/unknown/doc/TTABP.PRT666
-rw-r--r--system/ruc-terminal/unknown/src/SCCPARAM.ELA144
-rw-r--r--system/ruc-terminal/unknown/src/SETUP.ELA257
-rw-r--r--system/ruc-terminal/unknown/src/Terminal108(ascii)121
-rw-r--r--system/ruc-terminal/unknown/src/Terminal108(deutsch)122
-rw-r--r--system/ruc-terminal/unknown/src/ructerm.apl-german125
-rw-r--r--system/ruc-terminal/unknown/src/ructerm.ascii94
16 files changed, 10043 insertions, 0 deletions
diff --git a/system/ruc-terminal/unknown/doc/BIOSINT.PRT b/system/ruc-terminal/unknown/doc/BIOSINT.PRT
new file mode 100644
index 0000000..69006b6
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/BIOSINT.PRT
@@ -0,0 +1,281 @@
+#type ("17.klein")#
+Interrupts/Traps/Exeptions (Bios) 29.04.87
+
+Interrupt: IRQn (Durch Hardware ausgel”st, werden auf Traps umgelenkt)
+Trap : INTn (Durch Software ausgel”st)
+Exeption : INTn (Im Protected Mode vom Prozessor ausgel”st)
+
+Traps | Funktion
+--------+------------------------------------------------------------------
+INT 00H : Abort Program
+INT 01H :
+INT 02H : NMI-Routine (Parity-Check & Power-Fail & Redirected from INT 75H)
+INT 03H : INT3 - Break
+INT 04H : INTO - Overflow
+INT 05H : Print Screen
+INT 06H :
+INT 07H :
+INT 08H : IRQ0 System Interrupt
+INT 09H : IRQ1 Keyboard Buffer full
+INT 0AH : Software redirected from IRQ9
+INT 0BH : IRQ3 Serial Port 2
+INT 0CH : IRQ4 Serial Port 1
+INT 0DH : IRQ5 Parallel Port 2
+INT 0EH : IRQ6 Diskette Interrupt
+INT 0FH : IRQ7 Parallel Port 1
+
+INT 10H : Video Trap
+ ah = 00H : set mode (al = mode)
+ (Videoram: Herkules: B0000
+ EGA : B8000)
+ al | Tx/Gr| Pixel | Zeichen | Monitor | Farbe | Seiten
+ ---+------+-------+---------+---------+-------+--------
+ 00 | Text |640x200| 40 x 25 | Mono/Col| 16/64*| 8
+ 01 | Text |640x200| 40 x 25 | Color | 16/64*| 8
+ 02 | Text |640x200| 80 x 25 | Mono/Col| 16/64*| 8
+ 03 | Text |640x200| 80 x 25 | Color | 16/64*| 8
+ 04 | Graf |320x200| 40 x 25 | Mono/Col| 4 | 1
+ 05 | Graf |320x200| 40 x 25 | Mono/Col| 4 | 1
+ 06 | Graf |640x200| 80 x 25 | Mono/Col| 2 | 1
+ 07 | Text |720x348| 80 x 25 | Mono | 4 | 8
+ 08 | Graf |720x348| 90 x 48 | Mono | 2 | 1
+ --------- ab hier nicht implementiert, nur EGA ------------------
+ VideoRAM-Adresse A0000
+ 0D | Graf |320x200| 40 x 25 | Color | 16 | 8
+ 0E | Graf |640x350| 80 x 25 | Color | 16 | 4
+ 0F | Graf |640x350| 80 x 25 | Mono | 4 | 2
+ 10 | Graf |640x350| 80 x 25 | Enhanced| 16/64*| 2
+ * mit EGA-Monitor
+ ah = 01H : set cursor type (Eingang: CH, CL Werte 0..31)
+ CH=Startzeile des Cursorblocks, CL=Endzeile des Cursorblocks
+ ah = 02H : set cursor pos (BH = Page, DL = Spalte, DH = Zeile)
+ ah = 03H : read cursor
+ Ausgang: BH=Page, DL=Spalte, DH=Zeile, CL=Starzeile des
+ Cursorblocks, CH=Endzeile des Cursorblocks
+ ah = 04H : read lightpen
+ Ausgang: AH=1 : Register sind gltig, AH=0: Taste nicht gedrckt
+ DH = Zeile, DL = Spalte des Lightpens
+ CH=Rasterlinie (1..199), CX=Rasterlinie (1..349)
+ BX = Rasterspalte (1..319/1..639)
+ ah = 05H : set actual display (AL = Neue Seite)
+ ah = 06H : scroll up
+ AL = 0: Fenster l”schen, sonst Anzahl Zeilen zu scrollen
+ CH, CL = linke obere Ecke des Scroll-Windows
+ DH, DL = rechte untere Ecke des Scroll-Windows
+ BH = Attribut fuer die Leerzeilen
+ ah = 07H : scroll down
+ AL = 0: Fenster l”schen, sonst Anzahl Zeilen zu scrollen
+ CH, CL = linke obere Ecke des Scroll-Windows
+ DH, DL = rechte untere Ecke des Scroll-Windows
+ BH = Attribut fuer die Leerzeilen
+ ah = 08H : read current attribute and char
+ Ausgang: BH=Anzeigeseite, AL=Zeichen, AH=Attribut (nur Alpha)
+ ah = 09H : write current attribute and char
+ BH=Anzeigeseite, CX=Anzahl Zeichen, AL=Zeichen, BL=Attribut/Farbe
+ ah = 0AH : write current attribute and char
+ BH=Anzeigeseite, CX=Anzahl Zeichen, AL=Zeichen
+ ah = 0BH : set color (BH=Palettenfarbe 0..127, BH=Farbwert)
+ ah = 0CH : write dot
+ BH=Seite, DX=Zeile, CX=Spalte, AL=Farbwert (falls Bit 7=1, wird
+ alte Farbe mit neuer Farbe geXORed)
+ ah = 0DH : read dot (BH=Seite, DX=Zeile, CX=Spalte, AL=Punktfarbwert)
+ ah = 0EH : write tty (Zeichen schreiben, AL=Zeichen, BL=Farbe)
+ ah = 0FH : video state (Ausgang: AL=Video-Mode (0..8), AH=Anzahl
+ Zeichenspalten, BH=Seite)
+ ah = 10H : reserved (EGA-Bios: Write Palette/Overscan/Intensity/Flash)
+ ax = 1142H: draw line (EGA-Bios: 12 Routinen fr den Charactergenerator)
+ CX=X-pos-from, DX= Y-pos-from, BP=X-pos-to, DI=Y-pos-to
+ ah = 12H : reserved (EGA-Bios: Alternate Characterset)
+ ah = 13H : write string
+ Allgemein:
+ ES:BP = Stringanfang
+ CX = Stringl„nge
+ DL, DH = Cursorposition (Stringanfang)
+ BH = Seite
+ al = 0: BL=Attribut, String: CHAR, CHAR, CHAR,...,Cursor wird nicht
+ bewegt.
+ al = 1: BL=Attribut, String: CHAR, CHAR, CHAR,..., Cursor wird bewegt.
+ al = 2: String: CHAR, ATTR, CHAR, ATTR,..., Cursor wird nicht bewegt.
+ al = 3: String: CHAR, ATTR, CHAR, ATTR,..., Cursor wird bewegt.
+
+INT 11H : Equipment Trap (Ausgang: AX = Equipment Flag)
+ AX :
+ Bit 1 : 80287 installiert
+ Bit 3 : Herkules installiert
+ Bit 4/5 : 0 = No Primary Display set
+ 1 = Monochrome
+ 2 = Color 80 * 25
+ 3 = EGA
+ Bit 6 : Drive B installiert
+ Bit 9..12 : Anzahl RS232
+ Bit 14/15 : Anzahl Printer
+
+INT 12H : Memory Size Trap (Ausgang: AX = Memorysize in KB)
+
+INT 13H : Hardisk Trap
+ Allgemein:
+ DL = Drive (0, 1...)
+ AL = Sector count
+ CX = Bit 0... Bit 5 = Sector
+ Bit 6... Bit 15 = Cylinder
+ Exit: AH = 0 ok, <> 0 Fehler (z.b. in hf_error nachsehen)
+ ah = 0 reset diskette, wd1010, hdisks
+ ah = 1 return status
+ ah = 2 read
+ ah = 3 write
+ ah = 4 verify
+ ah = 5 format
+ ah = 8 drive params
+ ah = 9 init drive
+ ah = A read long
+ ah = B write long
+ ah = C seek
+ ah = D reset wd1010 (DL = Drive)
+ ah =10 ready test
+ ah =11 reclibrate
+ ah =14 check controller
+ ah =15 read dasd (stacktop 2 words: anzahl sektoren der platte)
+
+INT 14H : RS232C Trap
+ Allgemein: dx = port (>= 1FE0H : SCC = 8530)
+ ah = 0 : Init
+ al : Bit 5..7 = Baudrate
+ 000 = 110,
+ 001 = 150,
+ 010 = 300,
+ 011 = 600,
+ 100 = 1200,
+ 101 = 2400,
+ 110 = 4800,
+ 111 = 9600,
+ Bit 3..4 = Parity (no, odd, even)
+ Bit 2 = Stopbits (1, 2)
+ Bit 0..1 = Datenbits (5, 6, 7, 8)
+ ah = 1 : Send (al = Zeichen, Ausgang: ah=80H Timeout, Zeichen dann in al)
+ ah = 2 : Read (Ausgang: ah=80H:Timeout, sonst ah=Statusregister,al=Zeichen)
+ ah = 3 : Status (Ausgang: Nur 8250: al = Modemstatus)
+ ah : Bit 0 = 1 : Data available
+ Bit 1 = 1 : Receiver overrun
+ Bit 2 = 1 : Parity Error
+ Bit 3 = 1 : Framing Error
+ Bit 4 = 1 : Transmitter empty
+ Bit 5 = 1 : Break received
+
+INT 15H : Utility Trap
+ ah = 80H open device (nicht implementiert)
+ ah = 81H close device (nicht implementiert)
+ ah = 82H prog term (nicht implementiert)
+ ah = 83H event wait (Eingang: CX=RTCtmr high, DX=RTCtmr high, ES:BX=userflag)
+ Ausgang: CY=0, Event wait wurde aktiviert
+ CY=1, Noch kein RTC-Event aufgetreten
+ (INT 15H periodisch aufrufen zum pollen)
+ ah = 84H joy stick (Eingang: DX)
+ DX = 0: Ausgang: AL (Bits 4..7) = Buttons
+ DX = 1: Ausgang: AX=Xa, BX=Ya, CX=Xb, DX=Yb
+ ah = 85H sys request (nicht implementiert)
+ ah = 86H wait a moment (CX=RTCtimer high, DX=RTCtimer low)
+ ah = 87H block move (extended memory) (Eingang: CX: Words, ES:SI = Block
+ Descriptoren: 8 Bytes Source, 8 Bytes Destination)
+ ah = 88H extended memory (Ausgang: AX= KB extended Memory)
+ ah = 89H enter protected mode
+ ax = 8A42H run setup
+ ax = 8B42H error beep
+ ax = 8C42H usr-powerfail-shutdown-routine
+ (Benutzerdaten k”nnen von ES:0 bis ES:BACK_SYS abgelegt werden)
+ ax = 8D42H usr-powerfail-resume-routine
+ (Benutzerdaten k”nnen von ES:0 bis ES:BACK_SYS geholt werden)
+ ax = 8E42H set timer (Eingang: BL = Timer (0, 1, 2), CX = Countervalue
+ BH: Bit 0 = BCD, Bit 1..3 = Mode,
+ Bit 4..5 Write CMD, Bit 6/7 unused)
+ (Timer wird bei Resume wieder so initialisert)
+ ax = 8F42H hardcopy (Grafik & Mono)
+ ah = 90H device busy (nicht implementiert)
+ ah = 91H set int complete (nicht implementiert)
+ ah = 9242H backup memory (CX=Anzahl Bytes, DS:SI = Sourceadr, E000H:DI
+ = Destinationadr.)
+ ah = 9342H restore memory (CX=Anzahl Bytes, E000H:SI = Sourceadr, ES:DI =
+ Destinationadr.)
+INT 16H : Keyboard Trap
+ ah = 00 Ascii read (Ausgnag: AX=Zeichen CY=1, sonst CY=0)
+ ah = 01 Ascii status (Ausgang: ZF = 0 : Zeichen in Queue)
+ ah = 02 Shift status (Ausgang: AL = KB_flag)
+ ax = 0342 set typematic (Ausgang: BL = Rate, BH = Delay)
+ ax = 0442 soft power down
+
+INT 17H : Printer Trap
+ Allgemein: dx = port
+ ah = 0 : print char (Eingang: al = Char, Ausgang: ah = Printer Status)
+ ah = 1 : init printer port
+ ah = 2 : ah = Status
+
+INT 18H : Basic (nicht implementiert)
+
+INT 19H : Bootstrap Trap
+ Block 0 von Harddisk oder Floppy --> ES:BX laden und starten (Booting...)
+ Der Block hat in Bytes 510/511 das Kennzeichen AA55H.
+
+INT 1AH : Time of day Trap
+ ah = 0 : Read Timer (Ausgang: CX=Timer low, DX=Timer high, AL<>0:Overflow)
+ ah = 1 : Set Timer (CS=Timer low, DX=Timer high)
+ ah = 2 : Read Clock (Ausgang: DH = Sec, CL = Min, CH = Std)
+ ah = 3 : Set Clock (DL=Sommerzeit (01), DH=sec, CL=Min, CH=Std)
+ ah = 4 : Read Date (DL=Day, DH=Month, CL=Year, CH=Century)
+ ah = 5 : Set Date (DL=Day, DH=Month, CL=Year, CH=Century)
+ ah = 6 : Set Alarm (DH=Sec, CL=Min, CH=Std)
+ ah = 7 : Reset Alarm
+
+INT 1BH : Dummy Return
+
+INT 1CH : User Timer Tic, wird einmal pro Sekunde aufgerufen.
+
+INT 1DH : Zeigt auf die Video Parameter
+INT 1EH : Zeigt auf Disk_base (DF, 02, 25, 02, 0F, 1B, FF, 54, F6, 0F, 08)
+INT 1FH : Pointer auf Zeichensatz mit Zeichen 128..255
+
+INT 20H ... INT 3FH sind fr das Betriebssystem reserviert.
+
+INT 20H : DOS: Terminate Program
+INT 21H : DOS: Function Call
+INT 22H : DOS:
+INT 23H : DOS:
+INT 24H : DOS:
+INT 25H : DOS:
+
+INT 40H : Diskette Trap
+ AH = 0 disk reset
+ AH = 1 disk status (ret)
+ AH = 2 disk read (ES:BP = Pointer auf Buffer, DI = Anzahl Sektoren,
+ DH = Head, DL = Drive, CL = Sektor, CH = Cylinder)
+ AH = 3 disk write "
+ AH = 4 disk verify "
+ AH = 5 disk format "
+ AH = 21 disk type (Ausgang: BL (Bit 0..3) 0=360K, 1/2 = 1.2MB)
+ AH = 22 disk change
+ AH = 23 format set
+
+INT 44H : Pointer auf weiteren Zeichensatz (Nur von EGA-Bios untersttzt)
+
+INT 4AH : Fr User software redirected from RTC-IRQ (Alarm, periodic)
+
+INT 60H
+ ... User
+INT 6FH
+
+Hardware-Interrupts 8..15:
+INT 70H : IRQ 8 RTC-Interrupt
+INT 71H : IRQ 9 Software Redirected to INT 0AH
+INT 72H : IRQ10 Frei
+INT 73H : IRQ11 Frei
+INT 74H : IRQ12 Frei
+INT 75H : IRQ13 Coprozessor, Software Redirected to NMI (INT 02H)
+INT 76H : IRQ14 Harddisk Interrupt
+INT 77H : IRQ15 Frei
+
+INT 78H : User 0
+INT 79H : User 1
+INT 7AH : User 2
+INT 7BH : User 3
+INT 7CH : User 4
+INT 7DH : User 5
+INT 7EH : User 6
+INT 7FH : User 7
diff --git a/system/ruc-terminal/unknown/doc/MACROS.PRT b/system/ruc-terminal/unknown/doc/MACROS.PRT
new file mode 100644
index 0000000..70961ce
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/MACROS.PRT
@@ -0,0 +1,54 @@
+#*t ($1)#
+#topage("$1")#
+#*macroend#
+
+
+#*linie ($1)#
+#rpos($1)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+#clearpos#
+#*macroend#
+
+
+
+#*k ($1, $2)#
+#type("8")##center##ib(3)#$1 $2#ie(3)##type("elite")#
+#*macroend#
+
+
+
+
+
+#*h ($1, $2)#
+#type("8")##center##on("i")##on("u")##ib(3)#$1 $2#ie(3)##off("u")##off("i")##type("elite")#
+#headodd#
+#center##on("b")#$1 $2#off("b")#
+
+
+
+#end#
+#*macroend#
+
+
+
+
+
+#*kopf ($1)#
+#headeven#
+#center##on("b")#$1#off("b")#
+
+
+
+#end#
+#bottomodd#
+
+
+ à
+#end#
+#bottomeven#
+
+
+#right#à
+#end#
+#*macroend#
diff --git a/system/ruc-terminal/unknown/doc/TDOC.PRT b/system/ruc-terminal/unknown/doc/TDOC.PRT
new file mode 100644
index 0000000..f1595c8
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/TDOC.PRT
@@ -0,0 +1,3012 @@
+#type ("elite")##limit (16.2)##block#
+
+#type ("8")##center##on("b")##on("u")#Bedienungshandbuch zum ruc - Graphikterminal#off("u")##off("b")##type ("elite")#
+
+#center#Version 1.1
+
+#center#Oktober 1986
+#free (16.0)#
+ruc - Rolf Uhlig Computer
+GmbH & Co Kommanditgesellschaft
+Sendenhorster Straáe 82
+D - 4406 Drensteinfurt 1
+Telefon 02508/8500
+
+Michael Staubermann
+Mor„nenstraáe 29
+D - 4400 Mnster-Hiltrup
+Telefon 02501/4320
+#pagenr (""224"", 1)##page (1)#
+#kopf ("Bedienungshandbuch zum ruc - Graphikterminal")#
+#h("1.", "Einige Worte zuvor")#
+
+
+Dieses Terminalprogramm wird in zwei Versionen (fr den Basis 108 und den
+Apple IIe) geliefert. Die Version ist in der Kommandozeile erkenntlich
+(BASIS oder APPLE).
+
+Eigenschaften des Terminals:
+
+- Kommandozeilen fr schnelle Offline Parametereinstellung
+- Statuszeile fr spezielle Betriebzust„nde
+- šber 70 programmierbare Funktionstasten
+- Druckerspooler 32k (4 ganze Graphikhardcopys und noch mehr)
+- 7935 Zeichen Empfangspuffer
+- Verschiedene Hardcopy Modi fr Text und Graphik
+- 192x280 Punkte aufl”sender Graphikmodus mit zwei Helligkeitsstufen
+- Zwei Graphikseiten mit getrennter Anzeige/Bearbeitung
+- Viele Graphikroutinen (Bogen, Fl„chenfllung, Kreis, Rechteck...)
+- Graphikmodus fr Texte in verschieden Richtungen, Dicken, Gr”ssen
+- Griechische Graphikzeichen und Kursivschrift
+- Graphikseiten Scrollen, Mischen, vom Host laden, zum Host schicken
+
+
+Zum Handbuch
+
+Tasten werden durch Angabe ihres Aufdruckes in Grossbuchstaben angegeben und
+in spitze Klammern gesetzt (z.B. <TAB>) in einigen F„llen auch durch ihren
+Namen (z.B. <DOWN> oder <TOPLEFT>). Eine zus„tzlich zu bet„tigende Umschalt-
+taste, wie SHIFT, CTRL, OPEN APPLE (kurz: OA) oder beide zusammen, wird in
+der Klammer davorgestellt (z.B. <SHIFT RETURN>).
+
+Nicht druckbare Ascii-Codes (z.B. <ESC> oder <SPACE>), sowie Kommandopara-
+meter (z.B. <n>) werden ebenfalls in spitze Klammern gesetzt. Komandopara-
+meter werden mit Kleinbuchstaben bezeichnet.
+
+#page#
+#h("2.", "Die Hardware")#
+
+
+Untersttzt wird eine 80-Zeichen Textanzeige, ein Basiskeyboard oder ein
+Applekeyboard mit Open-Apple Taste. Am Basis kann ein Drucker angeschlossen
+werden.
+
+
+#k("2.1", "Die serielle Schnittstelle")#
+
+Die Parameter der seriellen Schnittstelle k”nnen vom Host oder vom Terminal
+(LOCAL) eingestellt werden (Siehe Kommando <ESC> <SPACE> <SPACE>). Es wer-
+den alle 15 g„ngigen Baudrates zwischen 50 und 19200 Baud untersttzt. Pari-
+tycheck kann mit gerader oder ungerader Parit„t durchgefhrt werden. Fluá-
+kontrolle ist in allen Kombinationen aus RTS/CTS, DTR/DSR, XON/XOFF m”glich.
+Empfohlen wird DTR/DSR oder XON/XOFF.
+
+ Ben”tigte Verdrahtung der seriellen Schnittstelle
+
+ Pin Priorit„t
+ 2 : TXD Sendedaten zum Host (RXD) 1
+ 3 : RXD Empfangsdaten vom Host (TXD) 1
+ 4 : RTS Ready To Send zum Host (CTS) 3
+ 5 : CTS Clear To Send vom Host (RTS) 3
+ 6 : DSR DataSet Ready vom Host (DTR) 2
+ 7 : Masse an Host Masse 1
+ 8 : DCD Eingang, nicht ben”tigt
+ 20 : DTR Data Terminal Ready zum Host (DSR) 2
+
+Priorit„t:
+ 1 : Muá verdrahtet werden
+ 2 : Ist bei DSR/DTR Fluákontrolle zu verdrahten
+ 3 : Ist bei RTS/CTS Fluákontrolle zu verdrahten
+
+Der Datentransfer geschieht in der Regel mit 8 Datenbits. Sollte der Host
+nur ber 7 Bit Datentransfer verfgen, mssen einige Einschr„nkungen bei der
+Parameterbergabe von Uploads/Downloads gemacht werden (Kein Farbbit). Die
+Anzahl der Datenbits kann auch in der Kommandozeile ver„ndert werden.
+
+
+#k("2.2", "Der Reset")#
+
+Ein Reset bringt das Terminal in einen definierten Zustand. Alle Bildschirm-
+seiten und Puffer, sowie der Druckerspooler werden gel”scht. Der Reset kann
+vom Host durch
+
+ #ib(1)#<ESC> 0#ie(1)# (Hex 1B 30)
+
+initiiert werden, vom Basiskeyboard aus durch <SHIFT SHIFT CTRL>. Die Para-
+meter in der Kommandozeile werden dem Setup entnommen. Nach dem L”schen
+aller Bildschirmseiten, wird das Makro mit dem Code Hex EF aufgerufen. Dies
+ist die Funktionstaste <SHIFT BOTRIGHT>.
+
+#page#
+#h("3.", "Die Kommandozeile")#
+
+
+Die wichtigsten Parameter des Terminals k”nnen im laufenden Betrieb in den
+beiden Kommandozeilen ge„ndert werden. Die erste Kommandozeile erscheint
+beim Basiskeyboard durch Drcken von <SHIFT CE> und beim Apple durch <OA
+CTRL X>.
+
+Im Graphikmodus ersetzt die Kommandozeile die untersten 32 Graphikzeilen
+(entspricht vier Textzeilen). Man hat also auch im Graphikmodus die M”g-
+lichkeit wichtige Parameter in der Kommandozeile zu „ndern.
+
+Die angezeigten Einstellungen bieten auáerdem eine Informationsm”glichkeit
+ber die aktuellen Parameter der seriellen Schnittstelle u.s.w. Die zweite
+Kommandozeile enth„lt die Parameter der seriellen Schnittstelle.
+
+Alle in den Kommandozeilen angezeigten Parameter (bis auf BELL ON/BELL OFF)
+k”nnen auch durch ESC-Kommandos vom Host oder im Localmodus ge„ndert wer-
+den.
+Ein laufender Druckvorgang wird unterbrochen, solange die Kommandozeilen
+sichtbar sind.
+
+
+#k("3.1", "Tastenfunktionen in der Kommandozeile")#
+
+Folgende Tasten haben in der Kommandozeile eine Wirkung:
+
+Taste Bedeutung
+#linie ("16.2")#
+<UP> oder <DOWN> Wechselt in die jeweils andere Kommandozeile
+
+<LEFT> Springt zum vorherigen (linken) Parameter ohne etwas zu
+ ver„ndern.
+
+<RIGHT> Springt zum n„chsten (rechten) Parameter ohne etwas zu
+ ver„ndern.
+
+<SPACE> Žndert das selektierte Parameterfeld. Das selektierte
+ Parameterfeld ist durch Invertierung hervorgehoben. Die
+ m”glichen Parameter wiederholen sich zyklisch.
+
+<ESC> Die Kommandozeile wird verlassen. Es werden keine Žnde-
+ rungen durchgefhrt.
+
+<SHIFT S> Die Kommandozeile wird verlassen. Vorher werden alle
+ Žnderungen permanent auf die Diskette geschrieben. Wei-
+ tere Einzelheiten s.u. (Setup)
+
+<SHIFT R> Alle Parameter werden auf ihre Defaultwerte zurckge-
+ setzt. Die Kommandozeile wird noch nicht verlassen, daher
+ kann dieser 'Reset' durch <ESC> wieder aufgehoben werden.
+ <CE> oder <CTRL X> Die Kommandozeile wird verlassen. Die
+ Žnderungen werden nur im Speicher vermerkt. Nach dem
+ Ein-/Ausschalten des Rechners werden die alten Parameter
+ von der Diskette gelesen. Wird allerdings ein Hardware-
+ reset (s.o.) durchgefhrt, sind diese Žnderungen nicht
+ verloren.
+
+
+#k("3.2", "Setup")#
+
+Beim Setup, der in der Kommandozeile durch <SHIFT S> ausgel”st werden kann,
+werden wichtige Parameter auf die Diskette geschrieben. Sie werden dann
+'permanent' und mssen nach dem Einschalten des Terminals nicht neu einge-
+stellt werden. Diese Parameter sind die
+- Parameter der seriellen Schnittstelle (2. Kommandozeile)
+- anderen Parameter der Kommandozeilen
+- vom Benutzer programmierte Belegung der Funktionstasten
+- Druckerspezifischen Hardcopyparameter
+
+Vor dem Setup ist zu prfen, ob der Diskettenschreibschutz entfernt wurde
+(Klebeschildchen an der Diskettenseite entfernen). Der Schreibschutz sollte
+nach dem Setup wieder angebracht werden. Wurde der Schreibschutz nicht ent-
+fernt, wird eine Meldung 'Diskettenschreibschutz entfernen !' angezeigt. In
+diesem Falle erscheint nach dem Drcken einer Taste wieder die Kommando-
+zeile.
+Wenn keine Diskette einliegt oder ein harter Schreibfehler auftritt, er-
+scheint die Meldung 'Setup kann nicht geschrieben werden (Diskettenfeh-
+ler)!'. Weitere Schreibversuche sind m”glicherweise erfolgreich.
+
+
+#k("3.3", "Die zweite Kommandozeile")#
+
+Beim Basis (erste Zeile zeigt Defaultwerte fr <SHIFT R>)
+
+#type ("micron")#
+GER|BASIS|MON OFF|PRT OFF|SCRN ON |KEY CLK|NORVID|SCROLL|BELL ON |CUR FLH|F STRG
+USA TVI MON ON PRT ON SCRN OFF CLK OFF REVVID PAGE BELL OFF CUR STD F CODE
+APL HEX ON CUR OFF
+UNI
+#type ("elite")#
+
+Beim Apple (erste Zeile zeigt Defaultwerte fr <SHIFT R>)
+
+#type ("micron")#
+USA|APPLE|MON OFF|PRT OFF|SCRN ON |KEY CLK|NORVID|SCROLL|BELL ON |CUR FLH|F STRG
+FLH TVI MON ON PRT ON SCRN OFF CLK OFF REVVID PAGE BELL OFF CUR STD F CODE
+ HEX ON CUR OFF
+#type ("elite")#
+
+
+Default Andere Funktion
+#linie ("16.2")#
+Basis
+ GER USA Die Zeichensatzeinstellung ist fr die gebr„uchlichsten
+ APL vier Zeichens„tze in der Kommandozeile m”glich.
+ UNI GER = Deutsch Ascii, USA = US Ascii, APL = APL-Zeichensatz
+ UNI = Deutscher Zeichensatz mit inversen APL Zeichen. Der
+ APL-Zeichensatz ent„hlt auch die Zeichen [\]{|}~. šber
+ ESC-Kommandos lassen weitere M”glichkeiten einstellen.
+
+ BASIS TVI Keyboard Emulation. BASIS sendet die Funktionstastencodes
+ mit Bit 7 = 1. TVI sendet fr jede Funktionstaste eine
+ Zeichenfolge <SOH> x <CR>. Die Cursortasten sowie DEL CHAR,
+ INS CHAR, DEL LINE, INS LINE werden wie bei TVI blich
+ gesendet. Weiter Einzelheiten s.u. (TVI-Emulation)
+
+Apple
+ USA FLH USA = US Ascii, FLH = Voller Ascii Zeichensatz mit Blinken
+ und Invers.
+
+ APPLE TVI Keyboard Emulation. APPLE fhrt keine Codeumsetzung durch.
+ Wird allerdings die <OPEN APPLE>-Taste mit einer anderen
+ Taste zusammen gedrckt, wird das Bit 7 im Code auf 1 ge-
+ setzt. Zur TVI-Emulation siehe oben.
+
+MON OFF MON ON Der Monitor Modus wird mit MON ON eingeschaltet. In diesem
+ HEX ON Modus werden alle Steuerzeichen auf dem Bildschirm mar-
+ kiert ausgegeben. Bis auf die Kommandos <ESC> u oder <ESC>
+ X (um den Monitormodus auszuschalten) werden keine Komman-
+ dos interpretiert. Alle anderen Zeichen werden unver„ndert
+ dargestellt. Der Monitormodus kann auch durch MON OFF aus-
+ geschaltet werden.
+ Im Hexmodus werden keine Zeichen, sondern deren Ascii-
+ Codes in Hexadezimaldarstellung ausgegeben.
+
+PRT OFF PRT ON Parallele Druckerausgabe. Ist PRT ON eingeschaltet, werden
+ alle Zeichen die von der seriellen Schnittstelle kommen,
+ auf dem Drucker ausgegeben bzw. in den Druckerspooler ge-
+ schrieben. Die Bildschirmausgabe wird hiervon nicht beein-
+ fluát.
+
+SCRN ON SCR OFF Bildschirmausgabe an/aus. Ist SCRN ON eingeschaltet, wer-
+ den alle Zeichen die von der seriellen Schnittstelle kom-
+ men, auf dem Bildschirm ausgegeben. SCR OFF und PRT ON kann
+ zum Beispiel benutzt werden, um Daten nur an den Drucker zu
+ schicken, ohne daá diese auch auf dem Bildschirm erschei-
+ nen.
+
+KEY CLK CLK OFF Tastaturklick an/aus. Ist KEY CLK eingeschaltet, gibt jede
+ Taste (bis auf SHIFT, CTRL) bei ihrer Bet„tigung einen Ton
+ (Klick) von sich. CLK OFF schaltet dies ab.
+
+NORVID REVVID Bildschirmdarstellung. NORVID stellt hellen Text auf
+ schwarzem Grund dar, REVVID stellt schwarzen Text auf hel-
+ lem Grund dar (M”glicherweise angenehmer fr die Augen).
+
+SCROLL PAGE Ist SCROLL eingeschaltet, wird der Bildschirm um eine Zeile
+ nach oben geschoben, sobald der Cursor in der letzten Bild-
+ schirmzeile steht und ein Zeilenvorschub <LF> ausgefhrt
+ werden soll. Die erste Bildschirmzeile verschwindet. Ist
+ PAGE eingeschaltet, springt der Cursor in einer solchen
+ Situation in die erste Bildschirmzeile. Die Cursorspalte
+ wird dabei nicht ver„ndert.
+
+BELL ON BELL OFF Normalerweise erzeugt jedes empfangene <CTRL G> einen kur-
+ zen Signalton. Wenn das st”rt, kann die Tonausgabe mit BELL
+ OFF abgeschaltet werden.
+
+CUR FLH CUR STD Cursordarstellung. CUR FLH zeigt einen blinkenden CUR OFF
+ Cursorblock. CUR STD zeigt einen nichtblinkenden Cursor-
+ block. CUR OFF schaltet den Cursor ab (unsichtbar).
+
+F STRG F CODE Funktionstastenbelegung. Ist F STRG eingeschaltet, erzeugt
+ eine programmierte (belegte) Funktionstaste keinen Tasten-
+ code, sondern sendet die programmierten Zeichen. Eine unbe-
+ legte Funktionstaste sendet ihren Tastencode. Ist F CODE
+ eingeschaltet, erzeugen auch belegte Funktionstasten einen
+ Tastencode und senden keine programmierten Zeichen.
+
+
+#k("3.4", "Die zweite Kommandozeile")#
+
+Die erste Zeile zeigt Defaultwerte fr <SHIFT R>:
+
+#type ("micron")#
+STATOFF|TXT| 9600|STOP 1|DATA 8|NO PAR|NO XONOFF|NO RTSCTS|NO DTRDSR
+STAT ON GFX 19200 STOP 2 DATA 7 EVN PAR XON/XOFF RTS/CTS DTR/DSR
+ 50 ODD PAR
+ 75
+ 109.9
+ 134.6
+ 150
+ 300
+ 600
+ 1200
+ 1800
+ 2400
+ 3600
+ 4800
+ 7200
+#type ("elite")#
+
+Default Andere Funktion
+#linie ("16.2")#
+STATOFF STAT ON Anzeige der Statuszeile. Der Arbeitsbereich des Bildschirms
+ betr„gt zwar immer 24 Zeilen, allerdings ist bei STAT ON
+ anstelle der 24. Textzeile die Statuszeile sichtbar. Bei
+ STATOFF wird der aktuelle Inhalt der 24. Textzeile sicht-
+ bar. Einzelheiten s.u. (Die Statuszeile)
+
+TXT GFX Textmodus/Graphikmodus. TXT schaltet in die 80x24 Zeichen
+ Textdarstellung um. GFX schaltet auf die aktuelle Graphik-
+ seite um.
+
+9600 19200 W„hlt die Baudrate fr die serielle Schnittstelle.
+ 50 Die Angabe erfolgt in Bits/Sekunde (Baud)
+ 75
+ 109.9
+ 134.6
+ 150
+ 300
+ 600
+ 1200
+ 1800
+ 2400
+ 3600
+ 4800
+ 7200
+
+STOP 1 STOP 2 W„hlt die Anzahl der Stopbits fr die serielle Schnitt-
+ stelle.
+
+DATA 8 DATA 7 W„hlt die Anzahl der Datenbits fr die serielle Schnitt-
+ stelle.
+
+NO PAR EVN PAR W„hlt Parity Check Art. NO PAR = Kein Parit„tsbit, keine
+ ODD PAR Parit„tsprfung. EVN PAR = Gerade Parit„t, ODD PAR = Unge-
+ rade Parit„t.
+
+NO XONOFF W„hlt XON (CTRL Q) und XOFF (CTRL S) als Protokoll fr die
+ XON/XOFF serielle Schnittstelle. Wird XOFF vom Host gesendet, kann
+ das Terminal noch 255 Zeichen empfangen, bis der Empfangs-
+ puffer berl„uft. Mit NO XONXOFF wird dieses Protokoll
+ ausgeschaltet.
+
+NO RTSCTS W„hlt RTS/CTS als Protokoll fr die serielle Schnittstel-
+ RTS/CTS le. Mit NO RTSCTS wird dieses Protokoll ausgeschaltet.
+
+NO DTRDSR W„hlt DTR/DSR als Protokoll fr die serielle Schnittstel-
+ DTR/DSR le. Mit NO DTRDSR wird dieses Protokoll ausgeschaltet.
+
+#page#
+#h("4.", "Die Statuszeile")#
+
+
+Die Statuszeile enth„lt 5 Felder, die ber die wichtigsten Betriebszust„nde
+des Terminals Auskunft geben. Die Statuszeile ersetzt die (dann in den 'Hin-
+tergrund' verlegte) 24. Zeile. Die Statuszeile kann in der Kommandozeile mit
+STAT ON oder vom Host oder im Local Modus mit
+
+ #ib(1)#<ESC> }#ie(1)# (Hex 1B 7D)
+
+eingeschaltet werden. Ausschalten ebenso mit STATOFF oder
+
+ #ib(1)#<ESC> {#ie(1)# (Hex 1B 7B)
+
+Die Zuordnung der Felder:
+
+#type ("micron")#
+Spooler | Empf„ngerpuffer | Senderpuffer | Bereit/Besch„ftigt | Local/Online
+#type ("elite")#
+
+Kritische Zust„nde werden invers markiert. Dies sind alle F„lle, in denen
+ein Puffer berl„uft.
+Ist dies beim Empfangspuffer der Fall (RX FULL), gehen Daten verloren.
+Sollte der Druckerpuffer voll sein (PR FULL) und das Terminal keine Eingabe
+mehr annehmen, kann man durch l„ngeres Drcken von <SHIFT ESC> Zeichen aus
+dem Druckerpuffer entfernen, damit wieder Platz frei wird.
+Sollte der Senderpuffer voll sein (TX FULL), so liegt das wahrscheinlich
+daran, daá der Host kein XON gesendet hat oder dieses falsch bertragen
+wurde. Durch Drcken von <SHIFT ESC> kann man den Transmitter wieder star-
+ten.
+
+
+#k("4.1", "Spoolerstatus")#
+
+- Ein leeres Feld bedeutet: Der Spooler (Druckerpuffer) ist leer, es ist
+ nichts zum Drucken im Puffer.
+
+- PRINT zeigt an: Der Spooler ist gefllt. Das Terminal ist druckwillig oder
+ der Drucker druckt.
+
+- PR FULL bedeutet: Der Druckerpuffer ist voll. Da das Terminal keine wei-
+ teren Zeichen annimmt bis wieder Platz im Druckerpuffer ist, kann man
+ einzelne Zeichen mit <SHIFT ESC> aus dem Druckerpuffer entfernen bis PRINT
+ im Feld erscheint.
+
+
+#k("4.2", "Empf„ngerstatus")#
+
+- Ein leeres Feld bedeutet: Im Empf„ngerpuffer ist noch Platz.
+
+- RX FULL zeigt an: Es gehen Empfangsdaten verloren, da der Empf„ngerpuffer
+ voll ist.
+
+
+#k("4.3", "Senderstatus")#
+
+- TX ON bedeutet: Der Sender ist eingeschaltet. Wenn jetzt ein Zeichen ge-
+ sendet werden muá, wird es sofort auf die serielle Schnittstelle ge-
+ schickt.
+ Ein > vor TX ON zeigt an, daá das Terminal auf Freiwerden der seriellen
+ Schnittstelle wartet.
+
+- TX OFF bedeutet: Der Host hat entweder XOFF gesendet oder die Hardware-
+ fluákontrolle aktiviert, um das Terminal zu stoppen.
+
+- TX FULL zeigt an: Der Senderpuffer ist voll. Das Terminal nimmt keine
+ Eingaben mehr an bis der Puffer wieder frei ist. Dies kann mit <SHIFT ESC>
+ erzwungen werden.
+
+
+#k("4.4", "Busy - Anzeige")#
+
+- READY bedeutet: Der Empf„nger ist empfangsbereit, d.h. im Empfangspuffer
+ sind noch mindestens 256 Zeichen frei und das Terminal hat den Host nicht
+ per Fluákontrolle gestoppt.
+
+- BUSY bedeutet: Der Empf„nger hat dem Host per Fluákontrolle angezeigt, daá
+ nicht mehr gengend Platz im Empfangspuffer war. Die Fluákontrolle wird
+ wieder freigegeben, wenn nur noch 256 Bytes im Empfangspuffer sind.
+ (Warnung: Wenn BUSY angezeigt wird, eine Taste gedrckt wird und der Host
+ #on("u")#nicht#off("u")# empfangsbereit ist, ger„t das Terminal in eine
+ "Deadlock-Situation", die (mit Datenverlust) nur durch einen Hardwarereset
+ abgebrochen werden kann.)
+
+
+#k("4.5", "Online/Local - Anzeige")#
+
+- ONLINE bedeutet: Das Terminal sendet Tasteneingaben an den Host und emp-
+ f„ngt Zeichen und Kommandos vom Host.
+
+- LOCAL bedeutet: Keyboardeingaben erscheinen auf dem Bildschirm bzw. blei-
+ ben innerhalb des Terminals. Escape-Kommandos wirken direkt auf das Ter-
+ minal.
+
+#page#
+#h("5.", "Die Bedeutung der Tasten")#
+
+
+Zus„tzlich zu den normalerweise von der Tastatur gesendeten Tastencodes sind
+einige weitere zur Verfgung gestellt worden. Beim Apple senden fast alle
+Tasten mit Open-Apple zusammen einen Code mit Bit 7 = 1. Diese werden vom
+Terminal als Funktions- oder Steuertasten interpretiert. Beim Basis wurden
+einige bisher nur einfach belegte Tasten wie <RETURN>, <TAB>, <ESC>, <CE>
+und der Zehnerblock mit Doppelfunktionen ber <SHIFT> versehen.
+
+
+#k("5.1", "Die Funktions- und Steuertasten")#
+
+Zuerst werden die Tastenfunktionen erl„utert fr ein nicht emulierendes
+Terminal. Die TVI-Emulation kann in der Kommandozeile abgeschaltet werden
+(1. Zeile, 2. Feld) oder mit dem Kommando
+
+ #ib(1)#<ESC> <SPACE> 0#ie(1)# (Hex 1B 20 30)
+
+Die Cursortasten liefern beim Basiskeyboard andere Tastencodes als beim
+Applekeyboard. Wird das Bit 7 ignoriert (ausgeblendet), stimmen die Codes
+berein. <TOPLEFT> bezeichnet beim Basiskeyboard die linke obere Eckposi-
+tion des Cursorblocks, <TOPRIGHT> die rechte obere etc.
+
+Basis-Taste Apple-Taste Hex-Code Bedeutung
+#linie ("16.2")#
+<TAB> <TAB> 09 Der Cursor wird an die n„chste (re-
+ chte) Tabulatorposition gesetzt.
+ Tabulatorpositionen sind alle 8 Spal-
+ ten. Also 1, 9, 17, 25, 33, 41, 49,
+ 57, 65, 73. War der Cursor in Spalte
+ 73 bis 79, dann wird er in die erste
+ Spalte der n„chst tieferen Bild-
+ schirmzeile gesetzt. War der Cursor
+ vorher auch noch in Zeile 24, dann
+ wird der Bildschirminhalt entweder
+ nach oben gescrollt (SCROLL) oder in
+ Homeposition gebracht (PAGE).
+
+<SHIFT TAB> <OA TAB> 89 Back-Tab (Rckw„rtstabulator). Der
+ Cursor wird in die n„chste links vom
+ Cursor befindliche Tabulatorposition
+ gebracht. War der Cursor in Spalte 1,
+ dann steht er jetzt in Spalte 73 der
+ darberliegenden Zeile. War der Cur-
+ sor in Homeposition, dann „ndert sich
+ seine Position nicht.
+
+<SHIFT CE> <OA CTRL X> - Kommandozeile aktivieren. Einzelhei-
+ ten zur Kommandozeile siehe Abschnitt
+ 3.: Die Kommandozeilen.
+
+<CE> <CTRL X> 18 U.a. Kommandozeile verlassen.
+
+<RETURN> <RETURN> 0D Zum Zeilenanfang ohne Zeilenvorschub.
+ Der Cursor steht dann in der ersten
+ Spalte der Zeile.
+
+<SHIFT RETURN> <OA RETURN> 8D Zum Anfang der n„chsten Zeile. Falls
+ der Cursor in der letzten (24.) Bild-
+ schirmzeile war, wird der Bildschir-
+ minhalt entweder nach oben gescrollt
+ (SCROLL) oder in Homeposition ge-
+ bracht (PAGE).
+
+<UP> <UP> 8B/0B Cursor eine Zeile h”her. War der
+ Cursor in der ersten Bildschirmzei-
+ le, „ndert sich seine Position nicht.
+
+<DOWN> <DOWN> 8A/0A Cursor eine Zeile tiefer. War der
+ Cursor in Zeile 24, dann wird der
+ Bildschirminhalt entweder nach oben
+ gescrollt (SCROLL) oder der Cursor in
+ die erste Bildschirmzeile gesetzt
+ (PAGE).
+
+<CTRL V> <CTRL V> 16 Cursor eine Zeile tiefer. War der
+ Cursor in Zeile 24, dann „ndert er
+ seine Position nicht. Die Spalte
+ „ndert sich nicht.
+
+<LEFT> <LEFT> 88/08 Cursor eine Spalte nach links. War
+ der Cursor in der ersten Bildschirm-
+ spalte, dann steht er jetzt in der
+ letzten Spalte der darberliegenden
+ Bildschirmspalte. War der Cursor
+ allerdings in Homeposition, „ndert
+ sich seine Position nicht.
+
+<RIGHT> - 95 Cursor eine Spalte nach rechts. War
+ der Cursor in Spalte 79, dann steht
+ er jetzt in der ersten Spalte der
+ folgenden Zeile. War der Cursor in
+ der letzten Zeile, dann wird der
+ Bildschirminhalt um eine Zeile nach
+ oben gescrollt (SCROLL) oder der
+ Cursor in Homeposition gebracht
+ (PAGE).
+
+<HOME> <OA @> C0 Der Cursor wird in die linke obere
+ Bildschirmecke gebracht (Homeposi-
+ tion).
+
+<SHIFT HOME> <OA P> D0 Bildschirm l”schen und Cursor Home.
+
+<DELETE> <DELETE> 7F Dieses Zeichen wird auf dem Bild-
+ schirm als Punktraster dargestellt.
+ Der Host interpretiert es in der
+ Regel als Zeichenl”schbefehl.
+
+<TOPLEFT> <OA CTRL N> 8E Zeichen bei Cursorposition einfgen.
+ Der Cursor „ndert seine Position
+ nicht. Unter dem Cursor steht dann
+ ein Leerzeichen. Das Zeichen in Spal-
+ te 79 geht verloren.
+
+<SHIFT TOPLEFT> <OA CTRL B> 82 Zeichen unter Cursorposition l”schen.
+ In Spalte 79 steht dann ein Leerzei-
+ chen.
+
+<TOPRIGHT> <OA CTRL O> 8F Zeile bei Cursorposition einfgen.
+ Die Cursorposition „ndert sich nicht.
+ Der Inhalt der letzten Bildschirmzei-
+ le ist verloren. Die Zeile in der der
+ Cursor steht wird mit Leerzeichen
+ gefllt.
+
+<SHIFT TOPRIGHT> <OA CTRL C> 83 Zeile in der der Cursor steht l”-
+ schen. Die Cursorposition „ndert sich
+ nicht. Der Inhalt der gel”schten
+ Zeile ist verloren. Die letzte Bild-
+ schirmzeile wird mit Leerzeichen
+ aufgefllt.
+
+<BOTTOMLEFT> <BACKSPACE> 08 Cursor eine Spalte nach links. Die
+ Funktion ist mit der von <LEFT> iden-
+ tisch.
+
+<BOTTOMRIGHT> <RIGHT> 15 Apple: Cursor eine Spalte nach re-
+ chts. Die Funktion ist mit der von
+ <RIGHT> identisch.
+
+<SHIFT BOTTOMRIGHT> <OA RIGHT> EF Diese Taste ist eine programmierbare
+ Funktionstaste (siehe <ESC> e).
+
+<SHIFT DELETE> <OA DELETE> 81 Diese das liefert den
+ Makroparametercode (siehe <ESC> e).
+
+<ESC> <ESC> 1B Leitet eine Escape-Sequenz ein.
+
+<SHIFT ESC> <OA ESC> 9B W„hrend der Funktionstastedefinition
+ wirkt diese Taste wie ein Local
+ Escape, sonst liefert sie den Code 9B.
+ (siehe <ESC> e).
+
+<SHIFT CTRL HOME><OA 0> - Local/Online umschalten.
+
+<CTRL HOME> <OA SPACE> '00' Sendet V24-Break (Hexcode 00 mit
+ Rahmenfehler). Als Rahmenfehler wird
+ das Fehlen des oder der Stopbits
+ bezeichnet (Stopbitpegel ist norma-
+ lerweise 1, bei Break dagegen 0).
+
+#on("u")#Zehnerblock:#off("u")#
+
+<SHIFT 1> ... <OA a> ... E1 ... programmierbare Funktionstasten
+<SHIFT 9> <OA i> E9 " "
+<SHIFT 0> <OA j> EA " "
+<SHIFT .> <OA k> EB " "
+<SHIFT +> <OA l> EC " "
+<SHIFT -> <OA m> ED " "
+
+<SHIFT BOTRIGHT> <OA RIGHT> EF " "
+ (Dieser Code wird beim RESET des
+ Terminals ausgefhrt. Der Benut-
+ zer kann damit das Terminal nach
+ seinen Wnschen konfigurieren.)
+
+
+#on("u")#Funktionstasten:#off("u")#
+
+<F1> ... <OA A> ... C1 " "
+<F15> <OA O> CF " "
+<SHIFT F1> ... <OA Q> ... D1 " "
+<SHIFT F15> <OA _> DF " "
+<CTRL F1> ... <OA !> ... A1 " "
+<CTRL F15> <OA /> AF " "
+<SHIFT CTRL F1>..<OA 1> ... B1 " "
+<SHIFT CTRL F15> <OA ?> BF " "
+
+Die Programmierung der Funktionstasten geschieht mit #ib(1)#<ESC> e#ie(1)#.
+
+
+#k("5.2", "Die TVI-Emulation")#
+
+Wird das Terminal in den TVI-Emulationsmode gebracht, dann senden einige
+Tasten andere Tastencodes oder Codesequenzen. Die Bedeutung der Escape-
+Sequenzen „ndert sich dadurch nicht.
+Der TVI-Modus kann in der Kommandozeile eingeschaltet werden (1. Zeile, 2.
+Feld) oder durch
+
+ #ib(1)#<ESC> <SPACE> 1#ie(1)# (Hex 1B 20 31)
+
+An dieser Stelle erscheinen nur noch die Tastenbezeichnungen des Basiskey-
+boards. Die entsprechenden Tasten, die beim Applekeyboard zu drcken sind,
+kann man im letzten Abschnitt nachlesen.
+
+Folgende Tasten senden andere Tastencodes:
+
+Taste TVI-Code(sequenz) Bemerkung
+#linie ("16.2")#
+<RIGHT> 0C #ib(1)#<CTRL L>#ie(1)# Cursor nach rechts
+
+<HOME> 1E #ib(1)#<CTRL SHIFT ^>#ie(1)# Cursor in Homeposition
+
+<CLEAR> 1A #ib(1)#<CTRL Z>#ie(1)# Durch Drcken von <SHIFT HOME>
+ Bildschirm l”schen und Cursor Home
+
+<DEL CHAR> 1B 57 #ib(1)#<ESC> W#ie(1)# Durch Drcken von <SHIFT TOPLEFT>
+ Zeichen l”schen
+
+<DEL LINE> 1B 52 #ib(1)#<ESC> R#ie(1)# Durch Drcken von <SHIFT TOPRIGHT>
+ Zeile l”schen
+
+<INS CHAR> 1B 51 #ib(1)#<ESC> Q#ie(1)# Durch Drcken von <TOPLEFT>
+ Zeichen einfgen
+
+<INS LINE> 1B 45 #ib(1)#<ESC> E#ie(1)# Durch Drcken von <TOPRIGHT>
+ Zeile einfgen
+
+<LEFT> 08 #ib(1)#<BACKSPACE>#ie(1)# Cursor nach links
+
+<BACK TAB> 1B 49 #ib(1)#<ESC> I#ie(1)# Durch Drcken von <SHIFT TAB>
+ Rckw„rtstabulator
+
+<DOWN> 0A #ib(1)#<LF>#ie(1)# Cursor nach unten
+
+<UP> 0B #ib(1)#<CTRL K>#ie(1)# Cursor nach oben
+
+<NEWLINE> 1F #ib(1)#<CTRL SHIFT _>#ie(1)# Durch Drcken von <SHIFT RETURN>
+ Waagenrcklauf und Zeilenvorschub
+
+
+#on("u")#Funktionstasten:#off("u")#
+
+Fr jede Funktionstaste, die nicht belegt wurde wird eine Codesequenz der
+Form <CTRL A> <code> <CR> also 01 <code> 0D gesendet. Fr <code> gilt:
+
+Taste <code> Hex-Code
+<F1> ... @ ... 40 ... Diese Tasten sind auf fast allen
+<F11> J 4A TVI-Terminals vorhanden.
+<F12> ... ` ... 60 ...
+<F15> c 63
+
+<SHIFT F1> ... K ... 4B ...
+<SHIFT F15> Y 59
+
+
+#on("u")#Zehnerblock:#off("u")#
+
+<SHIFT 1> ... d ... 64 ...
+<SHIFT 9> l 6C
+<SHIFT 0> m 6D
+<SHIFT .> n 6E
+<SHIFT +> o 6F
+<SHIFT -> p 70
+
+<SHIFT BOTRIGHT> r 72
+
+Alle nicht in dieser Tabelle aufgefhrten Funktionstasten senden den Basis-
+tastencode.
+
+#page#
+#h("6.", "Der Graphikmodus")#
+
+
+#k("6.1", "Allgemeines")#
+
+Der Graphikmodus kann in der 2. Kommandozeile ein- und ausgeschaltet (Gra-
+phik: GFX, Text: TXT) oder mit dem Kommando
+
+ #ib(1)#<ESC> $#ie(1)# (Hex 1B 24)
+
+eingeschaltet und mit dem Kommando
+
+ #ib(1)#<ESC> %#ie(1)# (Hex 1B 25)
+
+ausgeschaltet.
+
+Die Aufl”sung betr„gt in y-Richtung 280 Punkte und in x-Richtung 192 Punk-
+te, das sind 53760 Punkte.
+
+
+#k("6.2", "Koordinaten und Parameterbergabe")#
+
+Die Koordinaten fr die Graphikkommandos drfen den Bereich von -32768 bis
+32767 berstreichen. Der sichtbare Bereich ist fr die X-Koordinate 0..279
+und fr die Y-Koordinate von 0..191. Der Ursprung (d.h. der Punkt (0,0) )
+des Koordinatensystems ist die linke untere Ecke. Die Graphikroutinen zeic-
+hnen nur innerhalb des sichtbaren Bereichs (Clipping).
+
+
+#k("6.2.1", "Cursorposition/Fadenkreuz")#
+
+Der Graphikcursor ist ein gedachter unsichtbarer Punkt, der sich im gesam-
+ten (auch unsichtbaren) Bereich des Koordinatensystems befinden kann. Wenn
+sich der Cursor im sichtbaren Bereich befindet, dann kann man an der Posi-
+tion ein Fadenkreuz darstellen. Das Fadenkreuz kann mit
+
+ #ib(1)#<CTRL X>#ie(1)# oder #ib(1)#<CE>#ie(1)# (Hex 18)
+
+ein- und ausgeschaltet werden. Das Fadenkreuz wird Exklusiv-Oder (XOR) ge-
+zeichnet. Das heiát, daá die Punkte an der Stelle des Fadenkreuzes inver-
+tiert (umgedreht) werden. Das hat wiederum zur Folge, daá an der Graphik-
+seite nichts ver„ndert wird, wenn zweimal <CTRL X> gesendet wird. Solange
+der Bereich oder die Position des Fadenkreuzes nicht ver„ndert wird, k”nnen
+zwischen den beiden <CTRL X> Kommandos auch andere Graphikkommandos ausge-
+fhrt werden.
+
+
+#k("6.2.2", "Bin„re oder dezimale Parameter")#
+
+Die šbergabe der x/y Koordinaten, eines Radius oder relativer Koordinaten
+und in einigen F„llen auch anderer Parameter, kann auf zwei verschiedene
+Arten erfolgen. Das Terminal erkennt die šbergabeart am ersten Parameterby-
+te:
+Bei dezimalen Parametern ist dies entweder <SPACE>, +, - oder eine Zahl. Bei
+Bin„ren Parametern liegt das H”herwertige Byte (das erste!) im Bereich von
+00..1F oder 3A..FF. Die Festlegung auf dezimale oder bin„re Parameter gilt
+fr beide (X und Y) Koordinaten.
+
+
+#k("6.2.2.1", "Bin„re Parameter")#
+
+Bin„re Parameter sind eine Folge von vier Bytes (mit 8 Bits). Die ersten
+beiden Bytes stellen die X-Koordinate dar, die anderen beiden Bytes die
+Y-Koordinate. Negative Koordinaten oder negative relative Koordinaten wer-
+den durch Bilden des Zweierkomplements dargestellt.
+Zu beachten ist, daá zuerst das h”herwertige (Highbyte) und dann das nie-
+derwertige (Lowbyte) gesendet werden muá.
+
+Der Vorteil der bin„ren Parameter ist, daá die Parameterbergabe schneller
+ist als bei dezimalen Parametern, da weder Host noch Terminal eine Konver-
+tierung vornehmen mssen und die Anzahl der Parameterbytes in der Regel
+geringer ist als bei dezimaler Parameterbergabe.
+
+Der Nachteil ist, daá bei XON/XOFF Fluákontrolle einige Zahlen als XON oder
+XOFF interpretiert werden k”nnen und daá diese Parameter nicht auf Funk-
+tionstasten gelegt werden k”nnen, wenn sie Zeichen > Hex 7F enthalten.
+
+
+#k("6.2.2.2", "Dezimale Parameter")#
+
+Dezimale Parameter bestehen aus einer Folge von ASCII-Zeichen. Die beiden
+Koordinaten werden durch einen Separator (Komma, CR, Semikolon o.„.) ge-
+trennt. Nach dem 2. Parameter steht ein weiterer Separator. An beliebiger
+Stelle in und vor den Zahlen drfen Leerzeichen (<SPACE>) oder Pluszeichen
+(+) stehen, die keine Žnderung des Ergebnisses bewirken. Ein Minuszeichen
+vor einer Zahl negiert sie.
+
+Der Vorteil der dezimalen Parameter ist, daá sie in h”heren Programmier-
+sprachen bequem und lesbar in ein Programm geschrieben werden k”nnen und daá
+keine Steuerzeichen vorkommen, die die XON/XOFF - Fluákontrolle st”ren k”nn-
+ten. Auáerdem k”nnen diese Parameter immer auf Funktionstasten gelegt wer-
+den, da sie keine Codes > Hex 7F enthalten.
+
+Der Nachteil ist wie unter 6.2.2.1 geschrieben, die Zeitdauer der zweima-
+liegen Konvertierung (Host, Terminal) und die in der Regel l„ngeren Parame-
+ter.
+
+
+#k("6.2.3", "Absolute oder relative Koordinaten")#
+
+Bei den Move- und Drawbefehlen hat man die Wahl zwischen relativen und abso-
+luten Koordinaten.
+
+Absolute Koordinaten setzen den Graphikcursor direkt auf die als Parameter
+angegebene Position. Z.B. <ESC> v 200, 100; setzt den Cursor direkt auf die
+Position X=200, Y=100. Die meisten Programme untersttzen nur absolute Koor-
+dinaten.
+
+Relative Koordinaten werden zur aktuellen Position des Graphikcursors ad-
+diert. Das hat den Vorteil, daá eine Routine nicht zu wissen braucht, wo der
+Graphikcursor gerade steht. Man kann sich zum Beispiel Folgen von relativen
+Move's und Draw's auf Funktionstasten legen, die dann im Localmodus an der
+aktuellen Cursorposition irgendwelche Symbole oder Sonderzeichen zeichnen.
+Z.B. <ESC> q -4, 3; bewegt den Graphikcursor 4 Punkte nach links und 3 Punk-
+te nach oben.
+
+
+#k("6.2.4", "Byteparameter")#
+
+Byteparameter sind solche, die nur aus einem Byte bestehen. Die Werte k”n-
+nen also normalerweise von 0 bis 255 oder Hex 00 bis Hex FF. In den F„llen,
+in denen nicht der ganze Wertebereich genutzt wird, werden nur die nieder-
+wertigsten Bits ausaskiert, die h”herwertigen werden ignoriert, wenn nicht
+ausdrcklich etwas anderes angegeben ist. Im Bereich von 0 bis 7 sind Wert
+und ASCII-Ziffer identisch. Bei Werten groáer als 9 geht das allerdings
+nicht mehr. Sind zum Beispiel die Werte von 0 bis 15 erlaubt, dann kann man
+folgende Tabelle benutzen:
+
+#on("u")#Wert ASCII (Hex) oder Bin„r#off("u")#
+ 0 0 30 00
+ 1 1 31 01
+ 2 2 32 02
+ 3 3 33 03
+ 4 4 34 04
+ 5 5 35 05
+ 6 6 36 06
+ 7 7 37 07
+ 8 8 38 08
+ 9 9 39 09
+ 10 : 3A 0A
+ 11 ; 3B 0B
+ 12 < 3C 0C
+ 13 = 3D 0D
+ 14 > 3E 0E
+ 15 ? 3F 0F
+
+Fr Werte zwischen 0 und 31 benutzt man dann besser die Buchstaben (Groá-
+buchstaben und [\]^_ oder Kleinbuchstaben und {|}~ und <DEL>). Die Zuord-
+nung entnimmt man der ASCII-Tabelle in Anhang A.
+
+
+#k("6.3", "Die Graphikparameter")#
+
+Fr die Linien und Zeichen in der Graphik gibt es verschiedene Darstellungs-
+weisen. Man kann die Strichdicke, die Farbe (auf einem Monochrommonitor die
+Helligkeit), den Linientyp (durchgehend, gepunktet, gestrichelt etc.) und
+die Bitverknpfungen (l”schen, invertieren...) festlegen. Diese Parameter
+werden mit einem Kommando <ESC> O <n> ... ver„ndert.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> O 0#ie(1)# (Hex 1B 4F 30)
+
+werden all diese Parameter auf Defaultwerte zurckgesetzt. Diese Default-
+werte sind: Strichdicke 1, durchgehende Linie, OR-Bitverknpfung (Punkte
+setzen), helle Farbe (gelb). Ausserdem wird die Seite 0 als sichtbare und
+als Arbeitsseite gew„hlt. Es wird auf ganzseitige Graphik geschaltet (falls
+im Graphikmodus).
+
+
+#k("6.3.1", "Strichdicke")#
+
+Die Strichdicke einer Linie ist normalerweise 1. Die Strichdicke 2 zeichnet
+parallel zur ursprnglichen Linie auf beiden Seiten jeweils eine weitere
+Linie der gleichen L„nge. Die Strichdicke 3 zeichnet dann auf beiden Seiten
+jeweils zwei parallele Linien usw. Die Strichdicke kann von 1 bis 15 ge-
+w„hlt werden. Sie wird mit dem Kommando
+
+ #ib(1)#<ESC> O 1#ie(1)# <dicke> (Hex 1B 4F 31 <dicke>)
+
+eingestellt. <dicke> ist ein Byteparameter (Kapitel 6.2.4) mit dem Wertebe-
+reich 1 bis 15.
+
+
+#k("6.3.2", "Farbe/Helligkeit")#
+
+Normalerweise ist Gelb (hell) eingestellt. Die Alternative ist Violett (dun-
+kel). Jeweils 7 nebeneinanderliegene Graphikpunkte haben die gleiche Farbe.
+Auf einem Farbmonitor kann die Farbe auch noch durch den Inhalt dieser 7
+Graphikpunkte bestimmt werden. Der Farbmodus wird von diesem Terminalpro-
+gramm allerdings nicht untersttzt, da sich dann die Aufl”sung in X-Richtung
+halbiert (also nur noch 140 x 192 Punkte).
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> O 2#ie(1)# <n> (Hex 1B 4F 32 <n>)
+
+kann die Helligkeit eingestellt werden. <n> ist ein Byteparameter bei dem
+nur das Bit 0 wichtig ist:
+
+Bit 0 Bedeutung
+ 0 dunkel/Violett <n> ist eine gerade Zahl
+ 1 hell/Gelb <n> ist eine ungerade Zahl
+
+
+#k("6.3.3", "Linientyp")#
+
+Der Linientyp ist das "Muster" der Striche. Es gibt 7 vordefinierte Strich-
+muster und ein vom Benutzer definiertes. Der Linientyp (im folgenden auch
+Pattern genannt) wird mit dem Kommando
+
+ #ib(1)#<ESC> O 3#ie(1)# <n> (Hex 1B 4F 33 <n>)
+
+eingestellt. <n> ist ein Byteparameter mit dem Wertebereich von 0 bis 7. Die
+Strichtypen sind <n> folgendermaáen zugeordnet:
+
+#on("u")#<n> Bitmuster (16 Bit) Name #off("u")#
+ 0 unsichtbare Linie
+ 1 ---------------- durchgehende Linie
+ 2 - - - - - - - - gepunktete Linie
+ 3 ---- ---- kurz gestrichelte Linie
+ 4 -------- lang gestrichelte Linie
+ 5 -------- - Strichpunktlinie
+ 6 - - ----- Strich-Punkt-Punkt Linie
+ 7 - - - - - - - - Benutzerdefinierte Linie
+ (Hier Defaultangabe)
+
+Die Bitmuster sind immer 16 Bit lang. Nach einem Movebefehl startet der
+n„chste Draw-Befehl mit dem linkesten (niederwertigsten!) Bit des Bitmu-
+sters. Das Muster wiederholt sich bei l„ngeren Linien zyklisch. Wird zwi-
+schen zwei Draw-Befehlen kein Move-Befehl gegeben, dann setzt der zweite
+Draw-Befehl im Bitmuster nach der gleichen Stelle fort, an der der erste
+Draw-Befehl aufgeh”rt hat. Auch dicke Linien behalten das Linienmuster bei,
+man sollte dann allerdings von gepunkteter auf lang gestrichelte Linie ber-
+gehen, wenn man eine gepunktete dicke Linie haben will.
+
+
+#k("6.3.3.1", "Selbstdefinierte Linientypen (Pattern)")#
+
+Wie in 6.3.3 angemerkt kann ein Linientyp auch vom Benutzer selbst definiert
+werden. Da die L„nge 16 Bit ist, kann man mit den relativen Move's und
+Draw's zusammen gut kleine Bildchen (Icons) zusammenstellen. Eine Hilfe ist
+dabei auch die Bitverknpfung COPY, die im n„chsten Abschnitt erl„utert
+wird. Man legt dazu zuerst das 16 Bit-Pattern als jeweils eine Zeile des
+Icons fest und zieht dann von links nach rechts eine 16 Punkte lange Linie
+mit dem benutzerdefinierten Pattern. Nach einem relativen Move (-16, -1)
+kann der Vorgang fr die n„chste Zeile fortgesetzt werden.
+
+Das benutzerdefinierbare Pattern wird mit dem Kommando
+
+ #ib(1)#<ESC> O 6#ie(1)# <l> <h> (Hex 1B 4F 36 <l> <h>)
+
+festgelegt. <l> ist dabei das niederwertige (Lowbyte) des Bitmusters, <h>
+ist das h”herwertige (Highbyte) des Bitmusters. Wenn das Pattern als Muster
+fr Linien (und nicht fr Icons) benutzt wird, dann sollte man darauf ach-
+ten, daá das Bit 0 im Lowbyte 1 ist, damit man bei kurzen Linien, denen ein
+Move vorangegangen ist, zumindestes einen Punkt sieht.
+
+
+#k("6.3.4", "Bitverknpfungen")#
+
+šber Bitverknpfungen werden die Punkte auf der Graphikseite ver„ndert. Das
+Linienmuster wird dazu zyklisch punktweise abgetastet und jenachdem ob das
+aktuelle Bit im Linienbitmuster 0 oder 1 ist eine Ver„nderung der Graphik-
+seite durchgefhrt.
+Bis auf die COPY-Funktion wirken die Bitverknpfungen nur auf die Graphik-
+seite, wenn der aktuelle Punkt im Linientyp-Bitmuster 1 ist.
+
+- Das Zeichnen einer sichtbaren Linie mit weiáen Punkten geschieht zum Bei-
+ spiel durch eine OR- (Oder-) Verknpfung.
+
+- Das L”schen einer Linie (also das Zeichnen von "schwarzen" Punkten) ge-
+ schieht mit einer AND- (Und-) Verknpfung (Genau genommen eine NAND-, d.h.
+ negierte AND-Verknpfung).
+
+- Das Invertieren (d.h. Weiáer Punkt wird schwarz, schwarzer Punkt wird
+ weiá) kann man mit einer XOR- (Exklusiv-Oder-) Verknpfung erreichen.
+
+- Fr Icons (siehe 6.3.3.1) und andere Zwecke, gibt es noch die COPY-Funk-
+ tion, die eigentlich keine einzelne Bitverknpfung ist. Ist im Linientyp
+ das aktuelle Bit 0, dann wird in der Graphikseite eine AND-Verknpfung
+ durchgefhrt (d.h. der Punkt wird gel”scht) ist das aktuelle Bit im Li-
+ nientyp 1, dann wird eine OR-Verknpfung durchgefhrt (d.h. der Punkt wird
+ gel”scht). Der Effekt ist, daá genau das Bitmuster des Linientyps in der
+ Graphikseite erscheint ("kopiert" wird), egal was vorher da stand, wo die
+ Linie gezeichnet wurde.
+
+Die Bitverknpfung kann mit dem Kommando
+
+ #ib(1)#<ESC> O 4#ie(1)# <n> (Hex 1B 4F 34 <n>)
+
+festgelegt werden. <n> ist ein Byteparameter mit dem Wertebereich 0 bis 3.
+<n> hat folgende Bedeutung:
+
+<n> Bitverknpfung Verwendung
+#linie ("16.2")#
+ 0 OR (Oder) Weiá (auf schwarzem Grund) zeichnen
+ 1 AND (Und) Schwarz (auf weiáem Grund) zeichnen
+ 2 XOR (Exklusiv Oder) Schwarze und Weiáe Punkte umdrehen (invertie-
+ ren)
+ 3 COPY (kopieren) Icons zeichnen oder Bilduntergrund berschrei-
+ ben
+
+
+#k("6.3.5", "Multiparametereinstellung")#
+
+Die obigen Parameter (bis auf Linientyp) k”nnen alle zugleich mit einem
+Kommando gesetzt werden. Das Kommando lautet
+
+ #ib(1)#<ESC> O 5#ie(1)# <n> (Hex 1B 4F 35 <n>)
+
+<n> ist ein Byteparameter mit dem Wertebereich 0 bis 127. Die Bits sind
+folgendermaáen zugeordnet:
+
+ Bit Bedeutung Werte
+#linie ("16.2")#
+ 0 .. 3 : Strickdicke 1 .. 15
+ 4 .. 5 : Bitverknpfung 0 = OR, 16 = AND, 32 = XOR, 48 = COPY
+ 6 : Farbe/Helligkeit 0 = Violett (dunkel), 64 = Gelb (hell)
+
+Standardeinstellung ist also '<ESC> O 5 A'.
+
+
+#k("6.4", "Graphikseiten")#
+
+Das Terminal verwaltet zwei Graphikseiten mit einer GrӇe von jeweils 8k
+Byte (d.h. 8192 Bytes).
+
+
+#k("6.4.1", "Die sichtbare Seite und die Arbeitsseite")#
+
+Die beiden Graphikseiten k”nnen (mssen aber nicht) getrennt voneinander
+angezeigt und bearbeitet werden. Das kann sinnvoll sein, wenn eine Seite "im
+Hintergrund" aufbereitet werden soll, w„hrend die andere (schon aufbereite-
+te) Seite angezeigt wird. Man kann auch die 80-Zeichen Textseite anzeigen
+und eine oder beide Graphikseiten im Hintergrund aufbereiten. Durch abwec-
+hselndes Umschalten der Arbeits- und Anzeigeseite kann dann der Eindruck
+eines bewegten Bildes erzeugt werden. Um diesen Vorgang zu beschleunigen,
+kann man die Graphikseiten auch auf dem Host vorbereiten und (im Hinter-
+grund) an das Terminal senden (bei 19200 Baud dauert das pro Seite ca. 4.7
+Sekunden).
+
+Die sichtbare und die Arbeitsseite k”nnen mit dem Kommando
+
+ #ib(1)#<ESC> O 7#ie(1)# <n> (Hex 1B 4F 37 <n>)
+
+gew„hlt werden. <n> ist ein Byteparameter mit dem Wertebereich 0 bis 7.
+
+Bit 0 von <n> : Sichtbare Seite (0 oder 1)
+Bit 1 von <n> : Arbeitsseite (0 oder 1)
+Bit 2 von <n> : 1 = 80 Zeichen Textseite wird in den untersten 32 Graphik-
+ zeilen eingeblendet. 0 = Nur Graphikmode.
+
+#on("u")#<n> Sichtbar Arbeitsseite Inhalt der untersten 32 Graphikzeilen#off("u")#
+ 0 Seite 0 Seite 0 Graphik (Seite 0)
+ 1 Seite 1 Seite 0 Graphik (Seite 1)
+ 2 Seite 0 Seite 1 Graphik (Seite 0)
+ 3 Seite 1 Seite 1 Graphik (Seite 1)
+ 4 Seite 0 Seite 0 Text
+ 5 Seite 1 Seite 0 Mll
+ 6 Seite 0 Seite 1 Text
+ 7 Seite 1 Seite 1 Mll
+
+
+#k("6.4.1.1", "80-Zeichen Text und Graphik")#
+
+Mit dem in 6.4.1 beschriebenen Kommando k”nnen, wie beschrieben, die unter-
+sten 4 Zeilen der Textzeile (d.h. ggf. auch die Statuszeile) statt der un-
+tersten 32 Graphikzeilen dargestellt werden. Da es nur eine Textseite gibt
+und jeder Graphikseite eine eigene Textseite zugeordnet ist, ist die Mi-
+schung von Text und Graphik in der Graphikseite 1 auf diese Weise nicht
+sinnvoll, da dann in den unstersten 32 Graphikzeilen nur Mll erscheint. Das
+Einblenden wird vom Terminal z.B. genutzt, wenn die Kommandozeile aktiviert
+wird. Man kann zum Beispiel Benutzerhinweise in die untersten 4 Zeilen der
+Textseite schreiben. Zeichenbefehle arbeiten in dem unsichtbaren (ausgeblen-
+deten) Teil der Graphikseite weiter. Das Ergebnis kann man sich beim Wieder-
+-Einblenden ansehen.
+
+
+#k("6.4.2", "Aufbau einer Graphikseite")#
+
+Eine Graphikseite besteht aus 8192 Bytes, von denen 7680 genutzt werden, 512
+sind somit (in der Graphikseite verstreut) ungenutzt. Jedes Byte besteht aus
+einem Farbbit (Bit 7) und 7 angezeigten Graphikbits. Ein gesetztes Bit ent-
+spricht einem sichtbaren Punkt auf dem Bildschirm. Das niederwertigste Bit
+eines Bytes wird am weitesten links angezeigt.
+Jede der 192 Graphikzeilen besteht also aus 40 Bytes. Jeweils 8 Graphikzei-
+len sind zu Reihen zusammengefaát. Es gibt also 24 Reihen. Jede erste Gra-
+phikzeile einer Reihe hat eine Anfangsadresse, die in folgender Tabelle
+aufgelistet ist:
+
+#on("u")#Reihe Adresse Hex | Reihe Adresse Hex | Reihe Adresse Hex#off("u")#
+ 0 0 000 | 8 40 028 | 16 80 050
+ 1 128 080 | 9 168 0A8 | 17 208 0D0
+ 2 256 100 | 10 296 128 | 18 336 150
+ 3 384 180 | 11 424 1A8 | 19 464 1D0
+ 4 512 200 | 12 552 228 | 20 592 250
+ 5 640 280 | 13 680 2A8 | 21 720 2D0
+ 6 768 300 | 14 808 328 | 22 848 350
+ 7 896 380 | 15 936 3A8 | 23 976 3D0
+
+Um den Offset den n. Graphikzeile in einer Reihe zu finden kann man folgen-
+de Tabelle benutzen:
+
+#on("u")#n Offset (Hex)#off("u")#
+0 0 0000
+1 1024 0400
+2 2048 0800
+3 3072 0C00
+4 4096 1000
+5 5120 1400
+6 6144 1800
+7 7168 1C00
+
+Beispiel:
+ Die Adresse des Punktes (123, 45) soll bestimmt werden.
+ 45 DIV 8 = 5, d.h. Y liegt in Reihe 5 mit Adresse 640 (Dezimal). 45 MOD 8
+ = 5, d.h. Y liegt in der n=5. Graphikzeile von Reihe 5. Der
+ Y-Offset also 5120.
+ 123 DIV 7 = 17 d.h. X liegt im Byte mit X-Offset 17.
+ Die Adresse des Punktes ist also im Byte 17 + 5120 + 640 = 5777.
+ 123 MOD 7 = 4 d.h. Bit 4 in Byte 5777 ist der gesuchte Punkt.
+
+
+#k("6.4.3", "Operationen auf den Graphikseiten")#
+
+Hier sollen nur die Operationen erl„utert werden, die nicht in andere Kate-
+gorien (z.B. L”schen, Linien zeichnen etc.) passen.
+
+Es gibt ein universelles Kommando, mit dem zwei Graphikseiten invertiert,
+kopiert, gemischt und miteinander logisch verknpft werden k”nnen. Ver„n-
+dert wird bei diesem Kommando nur die Arbeitsseite.
+
+Das Kommando lautet
+
+ #ib(1)#<ESC> !#ie(1)# <n> (Hex 1B 21 <n>)
+
+<n> ist dabei ein Byteparameter mit dem Wertebereich 0 bis 15 und hat fol-
+gende Bedeutung:
+
+<n> Bedeutung
+#linie ("16.2")#
+ 0 Keine Ver„nderung. Kopiert die Arbeitsseite in sich selbst (F„rbt die
+ Arbeitsseite allerdings mit der aktuellen Farbe/Helligkeit).
+ 1 Die Arbeitsseite wird invertiert.
+ 2 Mischt beide Seiten zusammen (OR Verknpfung).
+ 3 Mischt beide Seiten zusammen (OR) und invertiert das Ergebnis.
+ 6 Bildet den Durchschnitt beider Seiten (AND Verknpfung).
+ 7 Bildet den Durchschnitt beider Seite (AND) und invertiert das Ergebnis
+10 Es sind die Punkte gesetzt, die in beiden Seiten verschieden sind (XOR
+ Verknpfung).
+11 Es sind die Punkte gesetzt, die in beiden Seiten gleich sind (d.h. das
+ Inverse von <n>=10).
+14 Kopiert die andere Seite in die Arbeitsseite.
+15 Kopiert das Inverse von der anderen Seite in die Arbeitsseite.
+
+Andere Werte fr <n> wiederholen sich in der Tabelle. Die ganze Arbeitssei-
+te hat nach der Operation die gew„hlte Farbe/Helligkeit.
+
+
+#k("6.4.4", "Laden einer Graphikseite vom Host")#
+
+Graphikseiten k”nnen ganz oder teilweise vom Host geladen werden. Das k”n-
+nen auf dem Terminal erstellte und dann an den Host gesendete (Teil-)
+Graphiken sein, aber auch auf dem Host erstellte. In diesem Fall ist das
+Kapitel 6.4.2 (Aufbau einer Graphikseite) interessant.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> /#ie(1)# <ll> <lh> <al> <ah> <b...>
+ (Hex 1B 2F ...)
+
+kann eine Seite oder ein Teil einer Seite in die Arbeitsseite geladen wer-
+den. <lh>, <ll>, <ah>, <al> und <p...> sind Byteparameter (8 Bits). <ll> und
+<lh> bilden zusammen die bin„re L„nge, d.h. die Anzahl der Datenbytes
+<p...>, die die Graphik enthalten. Die L„nge kann von 0 bis Hex 2000 (dezi-
+mal 8192) reichen. Die Adresse, durch <al> und <ah> gebildet, darf von 0 bis
+Hex 1FFF reichen. Zus„tzlich gilt, daá die Summe von L„nge und Adresse nicht
+gr”áer als Hex 2000 sein darf, da sonst auáerhalb der Graphikseite geladen
+wrde. In einem dieser Fehlerf„lle werden die folgenden Graphikdatenbytes
+ignoriert. Die Datenbytes werden dann als Kommandos interpretiert, was zu
+unvorhersehbaren Reaktionen des Terminals fhrt.
+
+
+#k("6.4.5", "Graphik auf Diskette speichern/laden")#
+
+Um Graphikseiten, zum Besipiel fr Pr„sentationen, unabh„ngig vom Host auf
+dem Bildschirm darstellen zu k”nnen, benutzt man das Kommando
+
+ #ib(1)#<ESC> S#ie(1)# <n> (Hex 1B 53 <n>).
+
+Man kann bis zu 8 verschiedene Graphikseiten vorbereiten, auf Diskette spei-
+chern und zu einem sp„teren Zeitpunkt wieder in das Terminal zurckladen.
+Dieses Kommando wird auch verwendet, um eine Textseite auf Diskette zu
+schreiben oder von Diskette zu lesen. <n> ist ein Byteparameter mit dem
+Wertebereich 0 bis 31, wobei die Bits folgendermaáen belegt sind:
+
+Bit 0..2 : "Fachnummer" der Graphikseite auf der Diskette (0 bs 7)
+Bit 3 : Bei Graphikseiten immer 1 (Bei Textseiten 0)
+Bit 4 : 0 heiát: die Graphikseite wird von der Diskette gelesen,
+ 1 heiát: die Graphikseite wird auf die Diskette geschrieben.
+
+Wird die Graphikseite auf die Diskette geschrieben, dann wird eine eventuell
+schon in diesem "Fach" vorhandene Graphikseite berschrieben.
+
+Wie bei allen Graphikkommandos, bezieht sich dieses Kommando nicht unbedingt
+auf die sichtbare Graphikseite, sondern auf die Arbeitsseite.
+
+Beispiele:
+ <ESC> S <CTRL H> liest die Graphikseite in Fach 0 in die Arbeitsseite.
+ <ESC> S <CTRL X> schreibt die Arbeitsseite in Fach 0 der Diskette.
+
+Da das Lesen einer Graphikseite von Diskette mit ca. 1.1 Sekunden, um eini-
+ges schneller als der Datentransfer vom Host ist, sollte man bewegte Graphi-
+ken auf Diskette vorbereiten und sie dann mit verschr„nkter Arbeits- und
+Sichtbarkeitsseite anzeigen.
+Z.B.: Seite 1 als Arbeitsseite w„hlen, Seite 0 als sichtbare Seite. Graphik
+ von Diskette laden (wird in Seite 1 (= Arbeitsseite) geladen) Seite 1
+ als sichtbare Seite w„hlen, Seite 0 jetzt als Arbeitsseite w„hlen. Die
+ n„chste Graphikseite wird von der Diskette in die Seite 1 geladen etc.
+ Bei dieser Vorgehensweise scheinen šberg„nge kontinuierlich zu sein.
+
+Fr Insider: Eine Graphikseite belegt zwei Tracks (8k). Die 8 Graphikseiten
+ befinden sich auf den Tracks 10 bis 25 in aufsteigender Reihen-
+ folge.
+
+
+#k("6.5", "Textdarstellung im Graphikmodus")#
+
+Nicht nur auf der 80-Zeichen Textseite k”nnen Buchstaben und Zeichen darge-
+stellt werden, sondern auch auf den Graphikseiten. Die Aufl”sung ist zwar
+nicht so groá wie auf der reinen Textseite, aber die Anzahl der verschiede-
+nen Darstellungsm”glichkeiten ist sehr viel gr”áer. Fast alle Kommandos, die
+in der Textseite angewandt werden k”nnen, haben in der Graphikseite die
+gleiche Funktion.
+
+Textdarstellung in der Graphikseite ist haupts„chlich zum Beschriften von
+Graphiken oder zum Drucken von šberschriften etc. vorgesehen. Da aber fast
+alle Textkommandos (Delete/Insert Line/Character fehlt) auch im Graphikmo-
+dus zur Verfgung stehen, kann man auch im Graphikmodus Textverarbeitung
+oder Editor benutzen.
+
+
+#k("6.5.1", "Zeichendarstellung")#
+
+Die normale GrӇe eines Zeichens ist 6 x 10 Punkte (x * y), damit lassen
+sich 46 x 19 Zeichen (874 Zeichen) voll auf dem Bildschirm darstellen. Wenn
+die GrӇe mit einem Kommando auf 5 x 8 Punkte verringert wird, dann lassen
+sich 56 x 24 Zeichen (1344 Zeichen) auf dem Bildschirm darstellen. Komfor-
+table Textverarbeitung l„át sich damit natrlich nicht machen, zumal die
+Geschwindigkeit, mit der die Zeichen auf den Bildschirm geschrieben werden
+gegenber der der reinen Textseite langsamer ist.
+
+
+#k("6.5.1.1", "ZeichengrӇe und Schreibrichtung")#
+
+Die Zeichen k”nnen in verschiedenen Gr”áen und unter verschiedenen Winkeln
+auf den Bildschirm geschrieben werden. Damit ist auch ein Schreiben von
+rechts nach links mit auf dem Kopf stehenden Zeichen m”glich.
+Bei normaler Schreibrichtung (waagerecht von links nach rechts) befindet
+sich die linke untere Ecke eines Zeichens an der Position des Graphikcur-
+sors. Nach dem Zeichnen des Zeichens befindet sich der Graphikcursor hinter
+der rechten unteren Ecke des Zeichens. Da sich die Zeichen aus Vektoren
+(Linien) zusammensetzen und nicht aus einer festen Punktmatrix, k”nnen sie
+schnell beliebig gedreht und vergr”ssert (und verkleinert) werden. Der Dreh-
+winkel ist wie bei allen Graphikwinkelangaben in 5 Grad Schritten anzugeben.
+Die Zuordnung der Winkel zu den Parameterwerten oder ASCII-Zeichen ist im
+Anhang A angegeben.
+
+Das Kommando
+
+ #ib(1)#<ESC> N#ie(1)# <b> <h> <w> (Hex 1B 4E <b><h><w>)
+
+stellt Breite, H”he und Drehwinkel der Zeichen ein. Alle Parameter sind
+Byteparameter mit dem Wertebereich 0 bis 255. Mit einem Parameter Hex 00
+kann der Defaultwert (Standardwert) fr den jeweiligen Parameter eingestellt
+werden.
+<b> bezeichnet die Zeichenbreite in Punkten. Standardwert ist 6.
+<h> bezeichnet die Zeichenh”he in Punkten. Standardwert ist 10.
+<w> bezeichnet den Drehwinkel in 5 Grad Schritten. Standardwert ist 0.
+
+Einige ausgezeichnet Werte fr <w> sind:
+<w> Richtung
+#linie ("16.2")#
+ 0 Waagerecht von links nach rechts (Ost)
+ 9 Schr„g nach unten rechts (Sd-Ost)
+18 Senkrecht von oben nach unten (Sd)
+27 Schr„g nach unten links (Sd-West)
+36 Waagerecht (auf dem Kopf stehend) von rechts nach links (West)
+45 Schr„g nach oben links (Nord-West)
+54 Senkrecht von unten nach oben (Nord)
+63 Schr„g von nach oben rechts (Aufw„rts) (Nord-Ost)
+72... Wie 0 ...
+
+
+#k("6.5.1.2", "Dicke, Farbe etc.")#
+
+Buchstaben werden mit Vektoren (Linien) gezeichnet. Die gleichen Parameter,
+die fr Striche eingestellt werden, wirken dann auch auf die Zeichen. M”g-
+liche Parameter sind Farbe, Linientyp, Strichdicke und Bitverknpfung. Mit
+dem Kommando
+
+ #ib(1)#<ESC> O 0#ie(1)# (Hex 1B 4F 30)
+
+werden alle diese Parameter auf Standardwerte zurckgesetzt. Die Standard-
+werte sind in Kapitel 6.3 erl„utert. Die Beschreibung des Kommandos zur
+Einstellung der Zeichenfarbe ist in Kapitel 6.3.2 beschrieben, das Einstel-
+len der Zeichendicke in Kapitel 6.3.1, das Einstellen des Linientyps in
+Kapitel 6.3.3 und das Einstellen der Bitverknpfung ist in Kapitel 6.3.4
+beschrieben. Auch fr die Zeichendarstellung k”nnen mehrere dieser Parame-
+ter zugleich mit einem Kommando eingestellt werden. Das Multiparameterkom-
+mando ist in Kapitel 6.3.5 beschrieben.
+
+
+#k("6.5.1.3", "Zeichens„tze und Attribute")#
+
+Žhnlich wie bei der 80-Zeichen Textdarstellung k”nnen Zeichensatz und Text-
+attribute eingestellt werden. Mit dem Kommando
+
+ #ib(1)#<ESC> z#ie(1)# <n> (Hex 1B 7A <n>)
+
+kann einer der beiden Zeichens„tze USA oder GER (ASCII und Deutsch) gew„hlt
+werden. Ein griechischer Zeichensatz ist unabh„ngig von beiden immer vor-
+handen.
+<n> ist ein Byteparameter mit dem Wertebereich 0 bis 15, im Graphikmodus
+sind aber nur die beiden folgende Werte sinnvoll:
+
+#on("u")#<n> Zeichensatz Abweichende Zeichen#off("u")#
+ 2 Deutsch Ž ™ š „ ” á
+ 4 Ascii [ \ ] { | } ~
+
+Auáerdem kann der Zeichensatz im ersten Feld der ersten Kommandozeile ein-
+gestellt werden. Im amerikanischen Zeichensatz treten die deutschen Buch-
+staben auáerdem im Bereich von 214 bis 219 und 251 auf. Der Graphikzeichen-
+satz ist im Anhang abgebildet.
+
+Wie im Textmodus k”nnen Attribute mit dem Kommando
+
+ #ib(1)#<ESC> G#ie(1)# <n> (Hex 1B 47 <n>)
+
+eingestellt werden. <n> ist ein Byteparameter mit dem Wertebereich 0, 1, 4
+und 5. Die Werte von <n> sind folgendermaáen zugeordnet:
+
+#on("u")#<n> Bedeutung #off("u")#
+ 0 Normaler Text (sichtbar und aufrecht)
+ 1 Unsichtbarer Text (Nur der Cursor wird bewegt)
+ 4 Kursivschrift, die Zeichen werden schr„ggestellt
+ 5 Wie 1 (unsichtbarer Text)
+
+Das Kommando
+
+ #ib(1)#<ESC> )#ie(1)# (Hex 1B 29)
+
+hat wie im Textmodus die gleiche Bedeutung wie <ESC> G 4. Damit wird im
+Graphikmodus die Kursivschrift eingeschaltet. Mit dem Kommando
+
+ #ib(1)#<ESC> (#ie(1)# (hex 1B 28)
+
+wird die Kursivschrift wieder ausgeschaltet. Im Textmodus invers hervorge-
+hobene Textstellen werden im Graphikmodus also durch Kursivschrift hervor-
+gehoben.
+Steht rechts neben der Zeichenspalte mit einem Kursivzeichen ein nicht kur-
+sives Zeichen, dann wird das rechte Zeichen m”glicherweise etwas berschrie-
+ben, da es in den oberen Teil des Kursivzeichens hineinragt. Das kann ver-
+mieden werden, wenn nach dem Ausschalten der Kursivschrift ein Leerzeichen
+ausgegeben wird.
+
+
+#k("6.5.1.4", "Zeichen berschreiben")#
+
+Im 80-Zeichen Textmodus kann man Zeichen einfach bereinandertippen, das
+zweite Zeichen ersetzt dann das erste. Im Graphikmodus sollen Texte auch mit
+in eine Zeichnung geschrieben werden k”nnen, ohne daá Teile von Linien even-
+tuell gel”scht werden. Dieser Modus bringt auáerdem eine etwas gr”áere
+Schreibgeschwindigkeit mit sich. Es ist aber auch m”glich, daá die Fl„che,
+in die das Zeichen geschrieben werden soll, vorher gel”scht wird, um ein
+sauberes Schriftbild zu erzielen. Mit dem Kommando
+
+ #ib(1)#<ESC> &#ie(1)# (Hex 1B 26)
+
+kann man das vorherige L”schen einschalten, mit dem Kommando
+
+ #ib(1)#<ESC> '#ie(1)# (Hex 1B 27)
+
+wird der Modus des šberschreibens ausgeschaltet.
+
+Bei Kursivzeichen wird eine rautenf”rmige Fl„che gel”scht oder gefllt (wenn
+Bitverknpfung AND eingeschaltet ist). Bei normalen Zeichen wird eine re-
+chteckige Fl„che, der mit #ib(1)#<ESC> N#ie(1)# eingestellten Breite und H”he, gel”scht
+oder gefllt. Zu beachten ist, daá das L”schen/Fllen nur bei waagerechter
+Schreibrichtung von links nach rechts funktioniert.
+
+Da die GrӇe der Zeichen in weiten Grenzen mit <ESC> N eingestellt werden
+kann, ist es auch m”glich mit dem durch <ESC> & eingeschalteten Ersetzungs-
+modus schnell rechteckige Fl„chen zu fllen oder zu l”schen, wenn nicht auf
+das sp„ter beschriebene Fllkommando fr beliebige Fl„chen zurckgegriffen
+werden soll. Dazu schaltet man mit dem Kommando <ESC> O 4 1 die Bitverkn-
+pfung AND (fr Fllen) ein und gibt dann einfach ein Leerzeichen aus, das
+dann invertiert dargestellt wird.
+
+
+#k("6.5.2", "Textkommandos im Graphikmodus")#
+
+Fast alle Textkommandos des 80-Zeichen Textmodus wirken auch im Graphikmo-
+dus. Einige Kommandos, wie Zeichen senden, Zeile senden, Cursorposition
+senden, haben im Graphikmodus andere Funktionen und haben deshalb andere
+Escape-Sequenzen. Textkommandos, die nicht im Graphikmodus vorhanden sind:
+<ESC> I (Backtab), <ESC> j (Reverse Linefeed), <ESC> E (Insert Line), <ESC>
+Q (Insert Character), <ESC> R (Delete Line), <ESC> W (Delete Character).
+
+
+#k("6.5.2.1", "Die Cursorpositionierung")#
+
+Die Cursorpositionierungskommandos (UP, DOWN, LEFT, RIGHT) wirken im Gra-
+phikmodus in die aktuelle Schreibrichtung. Beispiel: Wenn als Schreibwinkel
+180 Grad eingestellt wurde (Winkel 36, also von rechts nach links auf dem
+Kopf schreiben), dann muá man, um einen Backspace (d.h. ein Zeichen zurck)
+auszufhren, nicht <RIGHT> sondern wie bei normaler Schreibrichtung blich,
+<LEFT> drcken. Die vier Cursorsteuertasten funktionieren fr beliebige
+Schreibrichtungen. Alle anderen Steuertasten beziehen sich immer auf waage-
+rechte Schreibrichtung von links nach rechts.
+
+Alle Steuertasten bercksichtigen die Zeichengr”áe (Breite und H”he). Auch
+die Graphikseite wird am Ende der letzten Zeile um soviele Graphikzeilen
+gescrollt, wie ein Zeichen hoch ist.
+
+Folgende Steuerkommandos/Tasten wirken im Graphikmodus:
+
+Basis-Taste Apple-Taste Hex-Code Bedeutung
+#linie ("16.2")#
+#ib(1)#<TAB>#ie(1)# <TAB> 09 Der Cursor wird an die n„chste (re-
+ chte) Tabulatorposition gesetzt.
+ Tabulatorpositionen sind alle 8 Spal-
+ ten (wie im Textmodus). Liegt die
+ n„chste Tabulatorposition auáerhalb
+ des sichtbaren Bereichs, dann steht
+ der Cursor jetzt da.
+
+#ib(1)#<SHIFT CE>#ie(1)# <OA CTRL X> - Kommandozeile aktivieren.
+ Einzelheiten zur Kommandozeile siehe
+ Abschnitt 3.: Die Kommandozeilen.
+
+#ib(1)#<CE>#ie(1)# <CTRL X> 18 u.a. Kommandozeile verlassen.
+
+#ib(1)#<RETURN>#ie(1)# <RETURN> 0D Zum Zeilenanfang ohne Zeilenvorschub.
+ Der Cursor steht dann in der ersten
+ Spalte der Zeile.
+
+#ib(1)#<SHIFT RETURN>#ie(1)# <OA RETURN> 8D Zum Anfang der n„chsten Zeile. Falls
+ der Cursor in der letzten sichtbaren
+ Bildschirmzeile war, wird der Bild-
+ schirminhalt entweder nach oben ge-
+ scrollt (SCROLL) oder in Homeposition
+ gebracht (PAGE).
+
+#ib(1)#<UP>#ie(1)# <UP> 8B/0B Cursor eine Zeile h”her (bzw. ber
+ die Zeile). War der Cursor in der
+ ersten sichtbaren Bildschirmzeile,
+ dann steht er jetzt im unsichtbaren
+ Bereich.
+
+#ib(1)#<DOWN>#ie(1)# <DOWN> 8A/0A Cursor eine Zeile tiefer (bzw. "un-
+ ter" die Zeile). War der Cursor in
+ der letzten sichtbaren Zeile, dann
+ wird der Inhalt des Graphikbild-
+ schirms nach oben gescrollt, d.h. die
+ obersten Zeilen werden gel”scht (im
+ SCROLL-Modus) oder der Cursor in die
+ erste Zeile gesetzt (im PAGE-Modus).
+
+#ib(1)#<CTRL V>#ie(1)# <CTRL V> 16 Cursor eine Zeile tiefer (bzw. "un-
+ ter" die Zeile). War der Cursor in
+ der letzten Zeile, dann „ndert er
+ seine Position nicht. Die Spalte
+ „ndert sich nicht.
+
+#ib(1)#<LEFT>#ie(1)# <LEFT> 88/08 Cursor eine Spalte nach links (bzw.
+ entegegen der Schreibrichtung). War
+ der Cursor in der ersten sichtbaren
+ Bildschirmspalte, dann ist er jetzt
+ unsichtbar "links" davon.
+
+#ib(1)#<RIGHT>#ie(1)# - 95 Cursor eine Spalte nach rechts (bzw.
+ in Schreibrichtung). War der Cursor
+ in der letzten sichtbaren Spalte,
+ dann befindet er sich jetzt auáer-
+ halb des Bildschirms. Im Gegensatz
+ zum Textmodus wird kein Linefeed oder
+ Scroll ausgefhrt.
+
+#ib(1)#<HOME>#ie(1)# <OA @> C0 Der Cursor wird in die linke obere
+ Bildschirmecke gebracht (Homeposi-
+ tion).
+
+#ib(1)#<SHIFT HOME>#ie(1)# <OA P> D0 Bildschirm l”schen und Cursor Home.
+
+#ib(1)#<DELETE>#ie(1)# <DELETE> 7F Dieses Zeichen wird auf dem Bild-
+ schirm nicht dargestellt. Der Host
+ interpretiert es in der Regel als
+ Zeichenl”schbefehl.
+
+#ib(1)#<BOTTOMLEFT>#ie(1)# <BACKSPACE> 08 Cursor eine Spalte nach links (bzw.
+ entgegen der Schreibrichtung). Die
+ Funktion ist mit der von <LEFT> iden-
+ tisch.
+
+#ib(1)#<BOTTOMRIGHT>#ie(1)# <RIGHT> 15 Apple: Cursor eine Spalte nach re-
+ chts (bzw. in Schreibrichtung). Die
+ Funktion ist mit der von <RIGHT>
+ identisch.
+
+#ib(1)#<ESC>#ie(1)# <ESC> 1B Leitet eine Escape-Sequenz ein.
+
+#ib(1)#<SHIFT CTRL HOME>#ie(1)#<OA 0> - Local/Online umschalten
+
+#ib(1)#<CTRL HOME>#ie(1)# <OA SPACE> '00' Sendet V24-Break (Hexcode 00 mit
+ Rahmenfehler). Als Rahmenfehler wird
+ das Fehlen des oder der Stopbits
+ bezeichnet (Stopbitpegel ist norma-
+ lerweise 1, bei Break dagegen 0).
+
+Unbelegte Funktionstasten erzeugen Graphikzeichen, die im Anhang A nachge-
+sehen werden k”nnen.
+
+
+#k("6.5.2.2", "L”schbefehle")#
+
+Das Kommando (Clear to End Of Line)
+
+ #ib(1)#<ESC> T#ie(1)# (Hex 1B 54)
+
+l”scht ab der aktuellen Cursorposition bis zum Zeilenende. Die H”he des
+gel”schten Balkens entspricht der Buchstabenh”he. Der Balken wird unabh„n-
+gig von der Bitverknpfung immer gel”scht. Der Balken wird unabh„ngig von
+der Schreibrichtung immer waagerecht gel”scht.
+
+Das Kommando (Clear to End Of Page)
+
+ #ib(1)#<ESC> Y#ie(1)# (Hex 1B 59)
+
+l”scht den Graphikbildschirm von der aktuellen Cursorposition an bis zum
+Bildschirmende. Auch dieses Kommando l”scht unabh„ngig von der gew„hlten
+Bitverknpfung und Schreibrichtung immer waagerecht.
+
+Die Kommandos
+
+ #ib(1)#<ESC> *#ie(1)# (Hex 1B 2A)
+ #ib(1)#<ESC> ,#ie(1)# (Hex 1B 2C)
+ #ib(1)#<ESC> +#ie(1)# (Hex 1B 2B)
+ #ib(1)#<ESC> :#ie(1)# (Hex 1B 3A)
+ #ib(1)#<CTRL Z>#ie(1)# (Hex 1A)
+
+l”schen den Bildschirm und bringen den Graphikcursor in Homeposition, d.h.
+eine Buchstabenh”he unter dem oberen Bildschirmrand.
+
+Das Kommando
+
+ #ib(1)#<ESC> y#ie(1)# (Hex 1B 79)
+
+l”scht den Bildschirm und bringt den Graphikcursor in die linke untere Ecke,
+d.h. den Ursprung des Koordinatensystems.
+
+
+#k("6.6", "Die Graphikkommandos")#
+
+
+#k("6.6.1", "Draw's und Move's")#
+
+Draw's sind Zeichenbefehle, die eine Linie zeichnen und den Cursor an den
+Endpunkt der Linie positionieren. Move's positionieren nur den Cursor und
+zeichnen nicht. Bei allen Draw's ist der Anfangspunkt der Linie die aktuel-
+le Cursorposition. Die Endposition kann relativ, absolut oder mit einem
+relativen Winkel angegeben werden. Der Befehl zum Setzen/L”schen eines Punk-
+tes wurde mit in diese Befehlskategorie aufgenommen.
+
+
+#k("6.6.1.1", "Punkt setzen")#
+
+Der Befehl zum Setzen eines Graphikpunktes ist ein absoluter Befehl, d.h.
+die Koordinaten des Punktes folgen dem Kommando. Die Position des Graphik-
+cursors wird durch diesen Befehl nicht ver„ndert.
+
+Das Kommando
+
+ #ib(1)#<ESC> m#ie(1)# <x, y;> (Hex 1B 6D <x, y;>)
+
+setzt einen Punkt an die Position x/y, wenn diese innerhalb des sichtbaren
+Bereichs liegt. <x, y;> sind dezimale oder bin„re Koordinaten. Das Aussehen
+des Punktes kann durch Farbe/Helligkeit oder Bitverknpfung festgelegt wer-
+den. Mit einer AND-Bitverknpfung wird der angegebene Punkt gel”scht, mit
+einer OR oder COPY Bitverknpfung wird der angegebene Punkt gesetzt, mit
+einer XOR Bitverknpfung wird sein Zustand umgedreht (invertiert).
+Soll ein dicker Punkt gezeichnet werden, dann kann man den (relativen)
+Draw-Befehl <ESC> r 0, 0; benutzen, der an die Position des Graphikcursors,
+einen Punkt der eingestellten Dicke zeichnet.
+
+
+#k("6.6.1.2", "Move-Befehle")#
+
+Den Move-Befehl gibt es in zwei Versionen, einer relativen und einer abso-
+luten. Das Kommando fr einen absoluten Move lautet
+
+ #ib(1)#<ESC> v#ie(1)# <x, y;> (Hex 1B 76 <x, y;>)
+
+Dabei sind <x, y;> dezimale oder bin„re Koordinaten, die die neue Position
+des Graphikcursors bezeichnen. Diese Position muá nicht im sichtbaren Be-
+reich liegen, sondern kann auch auáerhalb des Fensters liegen. Der Wertebe-
+reich von <x> und <y> ist -32768 bis 32767.
+
+Das Kommando fr den relativen Move-Befehl lautet
+
+ #ib(1)#<ESC> q#ie(1)# <x, y;> (Hex 1B 71 <x, y;>)
+
+Bei diesem Befehl werden die Werte von <x> und <y>, die auch den gesamten
+Wertebereich von -32768 bis 32767 berstreichen drfen, zu den Koordinaten
+des Graphikcursors addiert. Auch hier darf die neue Position des Graphik-
+cursors auáerhalb des sichtbaren Bereichs liegen.
+
+Die Move-Befehle setzen auáerdem das Bitmuster fr den Linientyp wieder auf
+den Startwert zurck, damit der n„chste Draw-Befehl auch mit einem Punkt
+beginnt.
+
+
+#k("6.6.1.3", "Draw-Befehle")#
+
+Ebenso wie den Move-Befehl gibt es auch den Draw-Befehl in zwei Versionen,
+einer relativen und einer absoluten. Das Kommando fr einen absoluten Draw
+lautet
+
+ #ib(1)#<ESC> w#ie(1)# <x, y;> (Hex 1B 77 <x, y;>)
+
+Dabei sind <x, y;> dezimale oder bin„re Koordinaten, die die Endposition der
+Linie bezeichnen. Diese Position muá nicht im sichtbaren Bereich liegen,
+sondern kann auch auáerhalb des Fensters liegen. Der unsichtbare Teil der
+Linie wird dann "geclippt". Der Wertebereich von <x> und <y> ist -32768 bis
+32767.
+
+Das Kommando fr den relativen Draw-Befehl lautet
+
+ #ib(1)#<ESC> r#ie(1)# <x, y;> (Hex 1B 72 <x, y;>)
+
+Bei diesem Befehl werden die Werte von <x> und <y>, die auch den gesamten
+Wertebereich von -32768 bis 32767 berstreichen drfen, zu den Koordinaten
+des Graphikcursors addiert, die dann die Endposition der Linie bilden. Auch
+hier darf die Endposition der Linie auáerhalb des sichtbaren Bereichs lie-
+gen.
+
+
+#k("6.6.1.4", "Turtle-Graphik")#
+
+Turtle-Graphik (Schildkr”ten-Graphik, obwohl hier keine Schildkr”te sicht-
+bar ist) wird zur Erzeugung von "rekursiven" Graphiken, die mit L„ngen und
+Winkelangaben, statt mit x/y-Koordinaten, arbeiten ben”tigt. Man stellt sich
+dazu eine Schildkr”te vor, die auf ihrem Weg ber den Bildschirm eine sicht-
+bare Spur zurcklassen kann (aber nicht muá). Die Schildkr”te kann einen Weg
+bestimmter L„nge in ihre Blickrichtung gehen und bleibt dann stehen. Auáer-
+dem kann sie sich nach links oder rechts drehen, d.h. ihre Blickrichtung
+„ndert sich. Alles was man dazu braucht, ist ein Befehl, der die Richtung
+der Schildkr”te ver„ndern kann und dann einen Weg bestimmter L„nge in dieser
+Richtung zurcklegt. Auáerdem wird noch ein Befehl ben”tigt, der das "Spur-
+verhalten" der Schildkr”te „ndert, also von "Spur sichtbar" auf "Spur un-
+sichtbar" umschaltet und umgekehrt. Natrlich ist die Zeichengeschwindigkeit
+nicht mit der Fortbewegungsgeschwindigkeit von Schildkr”ten zu vergleichen.
+Das erste Kommando lautet
+
+ #ib(1)#<ESC> n#ie(1)# <l, w;> (Hex 1B 6E <l, w;>)
+
+<l> und <w> sind dezimale oder bin„re Parameter. <l> ist die L„nge der Spur
+mit einem Wertebereich von 0 bis 511. <w> ist der relative Drehwinkel der
+Schildkr”te, also die Žnderung von der ursprnglichen Blickrichtung aus. <w>
+berstreicht den positiven und negativen Winkelbereich (0..71 entsprechen 0
+bis 355 in 5 Grad Schritten. -1 entspricht z.B. 355 Grad).
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> o#ie(1)# (Hex 1B 6F)
+
+kann von 'Draw' einer Spur auf 'Move' umgeschaltet werden und umgekehrt.
+
+Um die Sichtbarkeit der Spur am Programmamfang auf einen definierten Wert zu
+setzen, kann man das Kommando
+
+ #ib(1)#<ESC> O 8#ie(1)# <n> (Hex 1B 4F 38 <n>)
+
+benutzen. <n> ist ein Byteparameter mit dem Wertebereich 0 bis 3.
+
+#on("u")#Bit 0 hat folgende Bedeutung: #off("u")#
+ 0 Pendown. Die Schildkr”te hinterl„át eine sichtbare Spur
+ 1 Penup. Die Schildkr”te hinterl„át keine Spur
+
+#on("u")#Bit 1 hat folgende Bedeutung: #off("u")#
+ 0 Drawer. Es wird eine weiáe Linie gezeichnet.
+ 1 Eraser. Es wird eine schwarze Linie gezeichnet (gel”scht)
+
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> O 9#ie(1)# (Hex 1B 4F 39)
+
+wird die Turtle-Graphik initialisiert. Dieses Kommando muá nicht aufgerufen
+werden bevor die Turtle-Graphik benutzt wird, sollte aber nach M”glichkeit
+am Anfang eines Turtle-Graphik-Programmes benutzt werden. Das Kommando setzt
+die Schildkr”te in die Mitte des Bildschirms (140, 96) mit Blickrichtung
+nach oben. Der Drawer wird eingeschaltet (zeichnen) und eine sichtbare Linie
+wird voreingestellt (Pendown).
+
+
+#k("6.6.2", "Komplexere Zeichenkommandos")#
+
+Auáer den Kommandos zum Zeichnen von Linien und zum Bewegen des Graphikcur-
+sors gibt es noch verschiedene andere Zeichenkommandos.
+
+
+#k("6.6.2.1", "Kreise und Kreissegmente")#
+
+Der Mittelpunkt eines Kreises liegt immer an der aktuellen Cursorposition.
+Der Radius eines Kreises ist in weiten Grenzen von 0 bis ber 30000 Punkten
+w„hlbar. Clipping wird ausserhalb des Bildschirmrandes durchgefhrt. Ein
+Kreis kann in 8 Segmente unterteilt werden, von denen alle oder nur einzel-
+ne gezeichnet werden k”nnen. Damit ist es dann auch m”glich, Halb- oder
+Viertelkreise zu Zeichnen.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> K#ie(1)# <r, s;> (Hex 1B 4B <r, s;>)
+
+wird ein Kreis mit dem Radius <r> um die aktuelle Cursorposition gezeichnet
+(relative Kreise). <s> legt fest, welche Segmente gezeichnet werden sollen.
+<r, s;> sind dezimale oder bin„re Parameter. <s> hat den Wertebereich von 0
+bis 255.
+Jedes Bit in <s> ist einem Kreissegment zugeordnet. Ist das Bit gesetzt (1),
+dann wird das zugeh”rige Segment gezeichnet. Der Wert 0 entspricht dem Wert
+255 (der ganze Kreis wird gezeichnet), ist aber etwas schneller, da keine
+Abfrage der einzelnen Bits durchgefhrt wird.
+
+Die Segmente sind folgendermaáen numeriert:
+
+ 7 0
+ 6 1
+ 5 2
+ 4 3
+
+Beispiele fr <n> :
+
+#on("u")#<n> Bedeutung #off("u")#
+ 0 Zeichnet einen ganzen Kreis
+ 15 Zeichnet einen links offenen Halbkreis
+240 Zeichnet einen rechts offenen Halbkreis
+195 Zeichnet einen unten offenen Halbkreis
+ 60 Zeichnet einen oben offenen Halbkreis
+ 3 Zeichnet ein Kreisviertel rechts oben
+ 12 Zeichnet ein Kreisviertel rechts unten
+ 48 Zeichnet ein Kreisviertel links unten
+192 Zeichnet ein Kreisviertel links oben
+etc.
+
+Das Aussehen von Kreisen kann durch die Parameter Farbe/Helligkeit und die
+Bitverknpfung ver„ndert werden. Der Linientyp (Punkt-, Strichlinie) und die
+Strickdicke haben keinen Einfluá, d.h. der Kreis wird immer mit durchgehen-
+der Linie und einfacher Dicke gezeichnet. Sollen diese beiden Parameter auch
+ver„ndert werden, sollte man den Befehl <ESC> s fr Ellipsenb”gen verwenden.
+
+
+#k("6.6.2.2", "Rechtecke")#
+
+Rechtecke werden ebenso wie Kreise relativ gezeichnet, d.h. die aktuelle
+Cursorposition bildet eine Ecke des Rechtecks. Die Seiten des Rechtecks
+liegen parallel zur X- und Y-Achse, gedrehte Rechtecke k”nnen aber aus 4
+relativen Draw-Befehlen zusammengesetzt werden.
+
+Das Kommando
+
+ #ib(1)#<ESC> J#ie(1)# <b, h;> (Hex 1B 4A <b, h;>)
+
+zeichnet ein leeres Rechteck (Rahmen) an der aktuellen Cursorposition. <b,
+h;> sind dezimale oder bin„re Parameter. <b> ist die Breite des Rechtecks
+und kann den ganzen Wertebereich von -32768 bis 32767 berstreichen, <h> ist
+die H”he des Rechtecks und kann ebenfalls diesen Wertebereich berstreichen.
+Je nach Vorzeichen von <b> und <h> wird das Rechteck links/ rechts und
+oben/unten von der aktuelle Cursorposition gezeichnet.
+
+<b> <h> Cursorposition bildet die Ecke
+ + + unten links
+ + - oben links
+ - + unten rechts
+ - - oben rechts
+
+
+#k("6.6.2.3", "B”gen und Ellipsen")#
+
+Um die Zeichengeschwindigkeit eines Kreises zu vergrӇern, wurde ein sepa-
+rater Befehl fr Kreise eingefhrt (6.6.2.1). Da der Kreis ein Sonderfall
+der Ellipse ist, kann man das in diesem Abschnitt beschriebene Kommando auch
+benutzen, um Kreise mit anderen als den unter 6.6.2.1 beschriebenen Segmen-
+ten oder Parametern (Dicke, Strichtyp) zu Zeichnen.
+
+Das Kommando
+
+ #ib(1)#<ESC> s#ie(1)# <xr, yr,> <aw, ew;> (Hex 1B 73 ...)
+
+zeichnet um die aktuelle Cursorposition (also relativ) einen Ellipsenbogen
+mit Radius <xr> in X-Richtung und Radius <yr> in Y-Richtung, ausgehend vom
+Anfangswinkel <aw> im Uhrzeigersinn, bis zum Endwinkel <ew>. Der Winkel 0
+Grad ist dabei oben (Norden).
+
+Alle Parameter sind dezimale oder bin„re Parameter. <aw> und <ew> haben den
+Wertebereich von 0 bis 255, wobei eine ganze Ellipse einem Anfangswinkel von
+0 und einem Endwinkel von 72 entspricht. Die Winkelangaben sind in 5 Grad
+Schritten und k”nnen Anhang A entnommen werden.. <xr> und <yr> drfen den
+vollen Wertebereich von -32768 bis 32767 berstreichen.
+
+
+#k("6.6.2.4", "Gefllte Fl„chen")#
+
+Rechteckige oder rautenf”rmige Fl„chen k”nnen, wie in Abschnitt 6.5.1.4
+beschrieben, schnell gefllt werden. Fr beliebig geformte Fl„chen kann das
+Kommando
+
+ #ib(1)#<ESC> |#ie(1)#<n> (Hex 1B 7C <n>)
+
+benutzt werden. Dies ist ein relatives Kommando, da um die aktuelle Cursor-
+position herum gefllt wird. <n> ist ein Byteparameter mit dem Wertebereich
+0 bis 15, der die Nummer des Musters fr die Fllung angibt. Der Fill-Befehl
+arbeitet auf der aktuellen Arbeitsseite und fllt eine sichtbar begrenzte
+Fl„che mit einem angegebenen Muster aus.
+
+Ist die Bitverknpfung OR eingestellt darf der Cursor nicht auf einem weiáen
+Punkt stehen und die Fl„che muá von einer durchgehenden weiáen Linie be-
+grenzt sein.
+Ist die Bitverknpfung AND eingestellt, darf der Cursor nicht auf einem
+schwarzen Punkt stehen und die Fl„che muá von einer durchgehenden schwarzen
+Linie begrenzt sein.
+
+Auáer den Parametern Bitverknpfung und Helligkeit/Farbe werden keine be-
+rcksichtigt.
+
+Bei sehr komplex geformten Figuren kann der Fall eintreten, daá die Fl„che
+nicht ganz gefllt ist. Dies liegt daran, daá intern ein zu gr”áer Spei-
+cherplatz zum Merken von Rcksprungcursorpositionen ben”tigt wird (Stack-
+šberlauf). In diesem Fall sollte man den Cursor nocheinmal auf die nicht
+gefllte Fl„che setzen und das Kommando erneut geben.
+
+<n> kann folgende Werte annehmen (Werte Hexadezimal angegeben 0..F):
+<n> Bedeutung
+#linie ("16.2")#
+ 0 Fl„che ganz gefllt
+ 1 Fl„che halb gefllt (grau)
+ 2 Jede 4. Zeile wird durchgezogen
+ 3 Jede 2. Zeile wird durchgezogen
+ 4 Jede 4. Spalte wird durchgezogen
+ 5 Jede 2. Spalte wird durchgezogen
+ 6 Jede 4. Zeile und jede 4. Spalte wird durchgezogen (grobes Raster)
+ 7 Jede 2. zeile und jede 2. Spalte wird durchgezogen (feines Raster)
+ 8 Schraffur von links unten nach rechts oben
+ 9 Schraffur von links oben nach rechts unten
+ A Schr„ges Raster (Links- und Rechtsschraffur)
+ B Feines Funktraster(jeder 2.Punkt in x- und y-Richtung wird gesetzt)
+ C Mauerwerk
+ D Feines Netzgeflecht
+ E Feine Zickzacklinie
+ F Benutzerdefinierbares Muster. Default: Grobe Zickzacklinie
+
+Ist die AND-Bitverknpfung eingeschaltet, dann sind die Punkte schwarz und
+weiá in den Mustern vertauscht und in der obigen Tabelle sind die Bezeich-
+nungen 'gefllt' und 'gel”scht' auszutauschen.
+
+
+#k("6.6.2.4.1", "Definition des Musters")#
+
+Das benutzerdefinierbare Muster des Fill-Befehls (Muster 15) kann mit dem
+Kommando
+
+ #ib(1)#<ESC> O :#ie(1)# <b1..b8> (Hex 1B 4F 3A <b1..b8>)
+
+eingestellt werden. Das Defaultmuster wird dabei berschrieben, das neu
+eingestellte Muster allerdings nicht beim Setup mitgesichert.
+<b1..b1> sind 8 Byteparameter mit dem gesamten Wertebereich 0 bis 255. Das
+erste Byte wird im Fllmuster in Richtung der niedrigeren y-Positionen dar-
+gestellt, das niederwertigste Bit jedes Bytes in Richtung der niedrigeren
+x-Positionen.
+
+
+#k("6.7", "Graphikdaten zum Host")#
+
+Bisher wurden nur Kommandos beschrieben, die der Host an das Terminal sen-
+den kann. Damit der Host ber den Status des Terminals informiert werden
+kann, sind auch Kommandos vorhanden, die Daten an den Host senden. Der Host
+kann auch ganze Graphikseiten anfordern, so daá die auf dem Terminal er-
+zeugten Graphiken nach dem Ausschalten nicht verloren sind, sondern vom Host
+gespeichert werden k”nnen.
+
+
+#k("6.7.1", "Graphikseiten zum Host")#
+
+Graphikseiten k”nnen ganz oder teilweise bertragen werden. Da ein angefor-
+dertes Datenpaket immer ganz bertragen wird, sollte der Host, wenn keine
+Fluákontrolle eingeschaltet ist, nur so groáe Bl”cke anfordern, die er puf-
+fern kann (z.B. 256 Bytes). Selektives Lesen von Graphikseiten kann auch
+verwendet werden, um Teile einer Graphik vom Host (und nicht vom Terminal)
+ver„ndern zu lassen. Mit dem Kommando <ESC> / ... kann der modifizierte Teil
+dann wieder an das Terminal zurckgesendet werden. Zum Aufbau der Graphik-
+seite findet man in Kapitel 6.4.2 Informationen.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> \#ie(1)# <ll> <lh> <al> <ah> (Hex 1B 5C ...)
+
+kann eine Seite oder ein Teil einer Seite in an den Host gesendet werden.
+<lh>, <ll>, <ah> und <al> sind Byteparameter (8 Bits). <ll> und <lh> bilden
+zusammen die bin„re L„nge, d.h. die Anzahl der Datenbytes, die zum Host
+gesendet werden. Die L„nge kann von 0 bis Hex 2000 (dezimal 8192) reichen.
+Die Adresse durch <al> und <ah> gebildet, darf von 0 bis Hex 1FFF reichen.
+Zus„tzlich gilt, daá die Summe von L„nge und Adresse nicht gr”áer als Hex
+2000 sein darf, da sich die Endadresse dann ausserhalb der Graphikseite
+befindet. In diesem Fehlerfall werden keine Daten gesendet.
+
+
+#k("6.7.2", "Cursorposition zum Host")#
+
+Da die Graphikcursorposition einen anderen Wertebereich berstreicht als die
+Position des Textcursors, wurde zum Senden der Graphikcursorposition ein
+weiteres Kommando eingefhrt. Pro Koordinate werden dabei 2 Bytes, zusammen
+also 4 Bytes, gesendet. Mit dem Kommando
+
+ #ib(1)#<ESC> ;#ie(1)# (Hex 1B 3B)
+
+kann der Host diese 4 Bytes anfordern. Die Reihenfolge der Bytes ist <xlow>
+<xhigh> <ylow> <yhigh>. Im Gegensatz zu <ESC> ? (fr die Textcursorposi-
+tion) wird auch kein abschlieáendes <CR> gesendet.
+
+
+#k("6.7.3", "Einzelne Bits zum Host")#
+
+Auáer ganzen Graphikseiten oder Bl”cken daraus, kann der Host auch einzelne
+Bytes oder Bits selektieren und empfangen. Dazu stehen zwei Kommandos zur
+Verfgung. Mit dem Kommando
+
+ #ib(1)#<ESC> _#ie(1)# (Hex 1B 5F)
+
+kann das Byte angefordert werden, in dem sich der Graphikcursor gerade be-
+findet. Das Bit 7 ist das Farb- oder Helligkeitsbit, das Bit (xpos MOD 7)
+ist das Bit, das durch den Graphikcursor addressiert wird. Wenn der Cursor
+auáerhalb des sichtbaren Bereichs ist, wird ein Byte Hex 00 geliefert.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> -#ie(1)# (Hex 1B 2D)
+
+kann das Bit, daá durch die Graphikcursorposition addressiert wird, abge-
+fragt werden. Dieses Kommando liefert ein Byte, in dem die Bits folgende
+Bedeutung haben:
+
+#on("u")#Bit 0 Dezimal Bedeutung #off("u")#
+ 0 0 Das adressierte Bit ist nicht gesetzt
+ 1 1 Das adressierte Bit ist gesetzt
+
+#on("u")#Bit 1 Dezimal Bedeutung #off("u")#
+ 0 0 Die Farbe ist violett/dunkel
+ 1 2 Die Farbe ist gelb/hell
+
+Bit 2 Dezimal Bedeutung
+#linie ("16.2")#
+ 0 0 Der Graphikcursor ist innerhalb des sichtabren Bereichs
+ 1 4 Der Graphikcursor ist auáerhalb des sichtbaren Bereichs.
+ Bit 0 und Bit 1 sind dann 0.
+
+Bit 4 und Bit 5 sind immer 1. Es werden also die ASCII-Ziffern "0" bis "4"
+geliefert.
+
+
+#k("6.7.4", "Parameter zum Host")#
+
+Die eingestellten Draw-Parameter k”nnen auch abgefragt werden. Dazu exi-
+stieren zwei Kommandos. Mit dem Kommando
+
+ #ib(1)#<ESC> 4#ie(1)# (Hex 1B 34)
+
+k”nnen die Nummer der sichtbaren und der Arbeitsseite, im gleichen Format
+wie zum Einstellen der Seiten mit dem Kommando #ib(1)#<ESC> O 7#ie(1)# <n>, angefordert
+werden. Es werden ASCII-Zeichen von "0" bis "?" geliefert. Die Bits 0 bis 2
+sind folgendermaáen zugeordnet:
+
+#on("u")#Bit 0 Bedeutung #off("u")#
+ 0 Sichtbar ist Seite 0
+ 1 Sichtbar ist Seite 1
+
+#on("u")#Bit 1 Bedeutung #off("u")#
+ 0 Arbeitsseite ist Seite 0
+ 1 Arbeitsseite ist Seite 1
+
+#on("u")#Bit 2 Bedeutung #off("u")#
+ 0 Nur Graphik eingeschaltet
+ 1 In den letzten 32 Graphikzeilen
+ sind 4 Textzeilen eingeblendet
+
+#on("u")#Bit 3 Bedeutung #off("u")#
+ 0 Der Graphikmodus ist eingeschaltet
+ 1 Der Textmodus ist eingeschaltet
+
+Sinnvoll sind die Werte der Bits 0 bis 2 nur dann, wenn Bit 3 = 0 ist.
+
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 5#ie(1)# (Hex 1B 35)
+
+k”nnen die Linienparameter abgefragt werden. Es wird ein Byte mit dem Wer-
+tebereich von 1 bis 127 geliefert. Die einzelnen Bits sind folgendermaáen
+zugeordnet:
+
+Bit Bedeutung
+#linie("16.2")#
+Bit 0..3 : Strichdicke
+Bit 4..5 : Bitverknpfung (0 = OR, 16 = AND, 32 = XOR, 48 = COPY)
+Bit 6 : Aktuelle Farbe (0 = Violett/dunkel, 1 = Gelb/hell)
+
+Die Bitbelegung entspricht der des Parameters des Kommandos #ib(1)#<ESC> O 5#ie(1)# <n>.
+
+
+#k("6.8", "Graphikhardcopy")#
+
+Wie von der Textseite kann auch von den Graphikseiten ein Ausdruck angefer-
+tigt werden. Dabei k”nnen keine verschiedene Helligkeitsstufen oder Farben
+dargestellt werden.
+
+
+#k("6.8.1", "Der Druckertreiber")#
+
+Da das Ein- und Ausschalten des Graphikmodus nicht auf allen Druckern durch
+gleiche Kommandos erreicht werden kann, muá das Terminal an den vorhandenen
+Drucker angepaát werden. Defaultm„áig werden die Epson-Modelle ab RX80 auf-
+w„rts, sowie kompatible (IBM, Panasonic etc.) untersttzt. Die Anpassung
+wird in diesem Abschnitt beschrieben.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> ~#ie(1)# <n> <p...> (Hex 1B 7E <n> <p...>)
+
+k”nnen Kommandosequenzen eingestellt werden, die folgende Aufgaben haben:
+
+<n> Default (Hex) Aufgabe
+#linie ("16.2")#
+ 0 0D Einleiten der gesamten Hardcopy (Waagenrcklauf)
+ 1 1B 2A 04 18 01 Einschalten des Graphikmodus. Es folgen 280 Graphikby-
+ tes (jeweils 8 Bit)
+ 2 0D 1B 4A 17 Ausschalten des Graphikmodus. Zeilenvorschub ohne Zwi-
+ schenraum (Zeilenabstand ca. 8 Punkte) und Waagenrck-
+ lauf.
+ 3 Nichts Dieses Kommando wird nach der kompletten Hardcopy zum
+ Drucker gesendet.
+
+Wenn doppelte Punktbreite eingeschaltet ist, oder zwei Seiten nebeneinander
+gedruckt werden, wird die Kommandosequenz 1 auch mehrmals in einer Zeile
+gegeben.
+
+<n> ist dabei ein Byteparameter mit dem Wertebereich von 0 bis 3. <p...> ist
+eine Folge von bis zu 16 Bytes. Das erste dieser 16 Bytes ist ein L„ngenby-
+te, das die L„nge der Kommandosequenz (oder die Anzahl der noch folgenden
+Bytes) angibt. Fr die nach dem L„ngenbyte folgenden Bytes sind alle Werte
+von 0 bis 255 erlaubt.
+
+Die Druckertreiberstrings (Kommandosequenzen) werden beim Setup in der Kom-
+mandozeile auch mit abgespeichert, so daá sie nur einmal (wenn berhaupt)
+und dann nie wieder eingestellt werden máen.
+
+
+#k("6.8.2", "Die Hardcopyparameter")#
+
+Im Gegensatz zur Hardcopy einer Textseite kann das Aussehen einer Graphik
+beim Ausdruck noch ver„ndert werden. Das Kommando
+
+ #ib(1)#<ESC> ^#ie(1)# <n> (Hex 1B 5E <n>)
+
+druckt eine Hardcopy mit dem Parameter <n>. <n> ist ein Byteparameter mit
+dem Wertebereich von 0 bis 15. Jedes Bit in <n> legt eine Darstellungsweise
+fest. Die Bits haben folgende Bedeutung:
+
+Invertieren:
+Bit 0 Dezimal Bedeutung
+#linie("16.2")#
+ 0 0 Helle Punkte auf dem Bildschirm werden auf dem Drucker schwarz
+ gedruckt, dunkle Punkte bleiben beim Ausdruck weiá.
+ 1 1 Die Graphik wird invertiert, d.h. Ein dunkler Bildhintergrund
+ bleibt auf dem Drucker dunkel (schwarz).
+
+Doppelte Breite:
+Bit 1 Dezimal Bedeutung
+#linie("16.2")#
+ 0 0 Jeder Bildschirmpunkt wird in normaler Breite gedruckt. Es
+ werden also 280 Punkte nebeneinander gedruckt.
+ 1 2 Jeder Bildschirmpunkt wird in doppelter Breite gedruckt. In
+ diesem Fall werden auf dem Drucker 560 Punkte nebeneinander
+ gedruckt.
+
+Doppelte H”he:
+Bit 2 Dezimal Bedeutung
+#linie("16.2")#
+ 0 0 Jeder Bildschirmpunkt wird in normaler H”he gedruckt. Es wer-
+ den also 192 Punkte untereinander gedruckt.
+ 1 4 Jeder Bildschirmpunkt wird in doppelter H”he gedruckt. In
+ diesem Fall werden also 384 Punkte untereinander gedruckt.
+
+Zwei Seiten nebeneinander drucken:
+Bit 3 Dezimal Bedeutung
+#linie("16.2")#
+ 0 0 Es wird nur eine Graphikseite (linksbndig) gedruckt.
+ 1 8 Die aktuelle (mit #ib(1)#<ESC> O 7#ie(1)# <n> eingestellte) Graphikseite
+ wird linksbndig und die andere Graphikseite nahtlos rechts
+ daneben gedruckt.
+
+Zur Kombination von M”glichkeiten (mehrere Bits sind gesetzt):
+
+- Eine Graphik mit doppelter H”he und doppelter Breite hat ungef„hr das
+ Format des Bildschirms. Ein Ausdruck besteht dann aus 560 x 384 = 215040
+ Punkten. Zus„tzliches Invertieren macht die Graphik dem Bildschirmausse-
+ hen noch „hnlicher.
+
+- Werden zwei Seiten mit doppelter Breite nebeneinander gedruckt, dann re-
+ icht die Anzahl der Graphikspalten auf dem Drucker mit dem Defaultgra-
+ phikmodus nicht mehr aus. In diesem Fall sollte man die Druckertreiber
+ Kommandosequenz 1 tempor„r auf eine hohe (4-fache) Dichte umschalten.
+ Solange kein Setup ausgefhrt wird, ist diese Dichte nur solange gltig,
+ bis das Terminal ausgeschaltet wird.
+
+#page#
+#h("7.", "Die Parameter der seriellen Schnittstelle")#
+
+
+Die Parameter der seriellen Schnittstelle k”nnen vom Host durch Escape-
+Sequenzen g„ndert werden. Die Žnderung der Parameter wird erst durchgefhrt,
+wenn die Parameterbergabe komplett ist (d.h das letzte Byte wurde bertra-
+gen). Alle šbertragungsparameter wie Stopbits, Datenbits, Parit„t und Bau-
+drate werden zusammen in einem 'Rutsch' eingestellt. Die Art der Fluákon-
+trolle wird mit separaten Escape-Sequenzen eingestellt.
+Die Einstellung in der Kommandozeile ist im Kapitel 3 beschrieben.
+
+
+#k("7.1", "Das šbertragungsformat")#
+
+Das šbertragunsformat eines Datenbytes sieht folgendermaáen aus:
+(Beispiel fr 8 Datenbits, 1 Parit„tsbit und 1 Stopbit)
+
+ +---+---+---+---+---+---+---+---+---+---+---+
+ ... |"0"| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | P |"1"| ...
+ +---+---+---+---+---+---+---+---+---+---+---+
+ Start- ---- D a t e n b i t s ---- Pari- Stop-
+ bit t„ts- bit
+ bit
+ --------> Zeit
+
+Bei 7 Datenbits ist das Bit 7 "0". P bezeichnet das Parit„tsbit. Wenn zwei
+Stopbits bertragen werden steht an dieser Stelle das 1. Stopbit ("1").
+
+
+#k("7.2", "Die šbertragungsparameter")#
+
+Alle vier Parameter werden zugleich ver„ndert. Das Kommando lautet
+
+ #ib(1)#<ESC> <SPACE> <SPACE>#ie(1)# <x> (Hex 1B 20 20 <x>)
+
+<x> ist dabei ein Datenbyte, das wie folgt festgelegt wird:
+
+ Bit 7 6 5 4 3 2 1 0
+ +-------+-------+-------+-------+-------+-------+-------+-------+
+ |Parity |Parity | Stop- | Daten-| Baudrate |
+ | even/ |on/off | bits | bits | | | | |
+ | odd | | | | | | | |
+ +-------+-------+-------+-------+-------+-------+-------+-------+
+
+
+#k("7.2.1", "Baudrate")#
+
+Baudrate = Anzahl der pro Sekunde bertragenen Bits (šbertragungsgeschwin-
+digkeit) .
+
+ Bits
+#on("u")#Dezimal 3 2 1 0 Neue Baudrate#off("u")#
+ 0 0 0 0 0 Alte Baudrate (nicht ver„ndern)
+ 1 0 0 0 1 50 Baud
+ 2 0 0 1 0 75 Baud
+ 3 0 0 1 1 109.9 Baud
+ 4 0 1 0 0 134.58 Baud
+ 5 0 1 0 1 150 Baud
+ 6 0 1 1 0 300 Baud
+ 7 0 1 1 1 600 Baud
+ 8 1 0 0 0 1200 Baud
+ 9 1 0 0 1 1800 Baud
+ 10 1 0 1 0 2400 Baud
+ 11 1 0 1 1 3600 Baud
+ 12 1 1 0 0 4800 Baud
+ 13 1 1 0 1 7200 Baud
+ 14 1 1 1 0 9600 Baud
+ 15 1 1 1 1 19200 Baud
+
+Der Wert 0 kann gebraucht werden, wenn nur Datenbits, Stopbits und Pari-
+t„tsbit ver„ndert werden sollen.
+
+
+#k("7.2.2", "Datenbits")#
+
+Bit 4 legt die Anzahl der gesendeten und empfangenen Datenbits fest.
+
+#on("u")#Dezimal Bit 4 #off("u")#
+ 0 0 8 Datenbits
+ 16 1 7 Datenbits
+
+Mit einem anschliessenden Kommando
+
+ #ib(1)#<ESC> <SPACE> 6#ie(1)# (Hex 1B 20 36)
+
+kann das 8. Datenbit ausmaskiert (d.h auf "0" gesetzt) werden. Dies kann
+notwendig sein, wenn der Host nur 7 Bit ASCII verarbeitet und auf ein ge-
+setztes 8. Datenbit falsch reagiert (Steuerbit oder „hnliches).
+
+Mit
+
+ #ib(1)#<ESC> <SPACE> 7#ie(1)# (Hex 1B 20 37)
+
+kann die Maskierung wieder aufgehoben werden.
+Zu beachten ist, daá bei 7 Bit Datentransfer zum Beispiel das Farbbit bei
+Download einer Graphikseite nicht bertragen wird.
+
+
+#k("7.2.3", "Stopbits")#
+
+Bit 5 legt die Anzahl der Stopbits fest.
+
+#on("u")#Dezimal Bit 5 #off("u")#
+ 0 0 1 Stopbit
+ 32 1 2 Stopbits
+
+Zu beachten ist, daá bei eingeschaltetem Paritycheck und 8 Datenbits immer
+ein Stopbit bertragen wird, auch wenn 2 Stopbits programmiert wurden. (Es
+k”nnen maximal 11 Bits/Daten"byte" bertragen werden.)
+
+
+#k("7.2.4", "Parit„tsbit")#
+
+Bit 6 legt fest, ob Parit„tskontrolle erfolgen soll und ob ein Parit„tsbit
+vorhanden ist.
+
+Dezimal Bit 6
+#linie("16.2")#
+ 0 0 Keine Parit„tskontrolle/Kein Parit„tsbit
+ 64 1 Parit„tskontrolle eingeschaltet. Parit„t mit Bit 7 gew„hlt
+
+Wenn Bit 6 = 1 ist legt Bit 7 fest, ob gerade oder ungerade Parit„t geprft
+werden soll.
+
+#on("u")#Dezimal Bit 7 #off("u")#
+ 0 0 Ungerade Parit„t
+ 128 1 Gerade Parit„t
+
+
+#k("7.2.5", "šbertragungsfehler")#
+
+Wird ein Rahmenfehler (Stopbit fehlt) oder ein Parit„tsfehler (mindestens
+ein Bit verf„lscht) entdeckt, dann wird statt des empfangenen Mlls ein Byte
+Hex FF vom Terminal interpretiert. Steht dies im Text, kann man es als in-
+vertiertes Punktraster erkennen. Dieses Zeichen richtet wenig Schaden an,
+wenn es mitten in einer Escape-Sequenz empfangen wird.
+
+
+#k("7.3", "Die Fluákontrolle")#
+
+Damit keine Daten verloren gehen, wenn der Host oder das Terminal keine
+solchen mehr empfangen kann, sollte eine Fluákontrolle eingeschaltet wer-
+den. Das Terminal hat zwar einen Empfangspuffer von 4K Byte (4096 Zeichen),
+aber auch dieser kann einmal voll sein. Der Sendepuffer von 2K Byte (2048
+Zeichen) wird in Anspruch genommen, wenn der Host dem Terminal per Fluákon-
+trolle mitgeteilt hat, daá er keine Zeichen mehr empfangen kann. Das Termi-
+nal wartet dann nicht aktiv auf Freigabe vom Host, sondern kann weiter ar-
+beiten (Spooler, Bildschirmausgabe, Localmodus etc.).
+
+Wenn das Terminal den Host "gestoppt" hat, kann man das an einem "B U S Y"
+in der Statuszeile erkennen, sonst steht dort "R E A D Y".
+Wenn der Host das Terminal "gestoppt" hat, kann man das an einem "T X O F F"
+in der Statuszeile erkennen, sonst steht dort "T X O N".
+
+Da dieses Terminal einen groáen Empfangspuffer hat, sollte man allerdings im
+Notfall auch ohne Fluákontrolle auskommen, wenn nicht gerade umfangreiche
+Graphikoperationen ausgefhrt werden sollen, bei denen der Puffer nicht
+schnell genug geleert werden kann.
+
+
+#k("7.3.1", "XON/XOFF")#
+
+XON/XOFF ist eine Softwarefluákontrolle. Als Stopzeichen wird
+
+ #ib(1)#XOFF#ie(1)# (#ib(1)#<CTRL S>#ie(1)# Hex 13)
+
+verwendet. Als Startzeichen wird
+
+ #ib(1)#XON#ie(1)# (#ib(1)#<CTRL Q>#ie(1)# Hex 11)
+
+verwendet. Diese Fluákontrolle sollte nur im Textmodus verwendet werden, da
+Bin„rdaten m”glicherweise Hex 11 oder Hex 13 enthalten, die dann nicht als
+Protokollzeichen verwendet werden sollen. Der Vorteil dieser Art der Fluá-
+kontrolle ist, daá man mit 3 Leitungen (Masse, TXD, RXD) an der seriellen
+Schnittstelle auskommt.
+
+Das Terminal reagiert auf empfangene XON/XOFF-Zeichen sofort, d.h diese
+Zeichen werden nicht in den Empfangspuffer gestellt. Diese beiden Zeichen
+werden auch dann interpretiert, wenn das Terminal im Local-Modus ist.
+
+Die XON/XOFF Fluákontrolle kann in der 2. Kommandozeile ein- und ausgeschal-
+tet werden, sowie mit dem Kommando
+
+ #ib(1)#<CTRL O>#ie(1)# (Hex 0F)
+
+eingeschaltet und mit
+
+ #ib(1)#<CTRL N>#ie(1)# (Hex 0E)
+
+ausgeschaltet werden.
+
+Zu beachten ist, daá der Sender vor dem Ausschalten noch im "TX OFF"-
+Zustand sein kann. Man sollte deshalb direkt vor <CTRL N> noch <CTRL Q> (Hex
+11), also XON senden, um den Sender wieder einzuschalten. Dies wird vom
+Terminal nicht automatisch gemacht, da sonst ein <CTRL N> das im Datenstrom
+vorkommt, auch noch ein Zeichen fr Fluákontrolle w„re.
+
+
+#k("7.3.2", "DTR/DSR")#
+
+DTR/DSR ist eine Hardwarefluákontrolle bei der die Leitungen Pin 20 (DTR)
+und Pin 6 (DSR) (in der Regel berkreuzt) angeschloáen sein mssen.
+Bei dieser Art der Fluákontrolle drfen alle Zeichen bertragen werden, ohne
+daá eines die Fluákontrolle steuert. Ausnahme: Wenn zus„tzlich XON/ XOFF
+Fluákontrolle eingeschaltet ist werden natrlich XON/XOFF als Steuerzeichen
+interpretiert.
+
+DTR (Data Terminal Ready)/DSR (DataSet Ready) Fluákontrolle kann in der 2.
+Kommandozeile ein- und ausgeschaltet werden. Der Host kann dies mit dem
+Kommando
+
+ #ib(1)#<ESC> <SPACE>#ie(1)# <n> (Hex 1B 20 <n>)
+
+erreichen. Die Werte von <n> sind
+
+#on("u")#<n> Hex Bedeutung #off("u")#
+ 2 32 Weder RTS/CTS noch DSR/DTR Fluákontrolle
+ 3 33 RTS/CTS Fluákontrolle, aber keine DSR/DTR Fluákontrolle
+ 4 34 DSR/DTR Fluákontrolle, aber keine RTS/CTS Fluskontrolle
+ 5 35 DSR/DTR und RTS/CTS Fluákontrolle
+
+DTR/DSR Fluákontrolle wird empfohlen, da hier alle Zeichen ohne Ver„nderung
+empfangen werden k”nnen. RTS/CTS Fluákontrolle kann, hardwarem„áig bedingt,
+beim Einschalten von RTS ein Bit "umkippen".
+
+
+#k("7.3.3", "RTS/CTS")#
+
+RTS/CTS ist eine Hardwarefluákontrolle bei der die Leitungen Pin 4 (RTS) und
+Pin 5 (CTS) (in der Regel berkreuzt) angeschloáen sein mssen.
+Bei dieser Art der Fluákontrolle drfen alle Zeichen bertragen werden, ohne
+daá eines die Fluákontrolle steuert. Ausnahme: Wenn zus„tzlich XON/ XOFF
+Fluákontrolle eingeschaltet ist werden natrlich XON/XOFF als Steuerzeichen
+interpretiert.
+
+RTS (Ready To Send)/CTS (Clear To Send) Fluákontrolle kann in der 2. Kom-
+mandozeile ein- und ausgeschaltet werden. Der Host kann dies mit dem Kom-
+mando <ESC> <SPACE> <n> erreichen. Die Werte von <n> sind im letzten Ab-
+schnitt (7.3.2 DTR/DSR) angegeben.
+
+
+#k("7.4", "Echo und Local/Online")#
+
+In einigen F„llen verlangt der Host, daá das vom Terminal empfangene Zei-
+chen zurckgesendet (geechoed) wird, um eventuelle šbertragungsfehler zu
+erkennen. Dieser Modus wird mit dem Kommando
+
+ #ib(1)#<ESC> D E#ie(1)# (Hex 1B 44 45)
+
+eingeschaltet. Zus„tzlich wird hiermit der Localmodus ausgeschaltet (d.h der
+Online-Modus eingeschaltet), falls das Kommando am Terminal im Local-Modus
+gegeben wurde.
+
+Der Echo-Modus wird mit dem Kommando
+
+ #ib(1)#<ESC> D O#ie(1)# (Hex 1B 44 4F)
+
+ausgeschaltet. Das Terminal befindet sich dann im Fullduplex Online-Modus.
+Der Local-Modus wird auch hierbei verlassen.
+
+Der Local-Modus kann vom Host mit dem Kommando
+
+ #ib(1)#<ESC> D L#ie(1)# (Hex 1B 44 4C)
+
+eingeschaltet werden. Dabei ist zu beachten, daá der Host den Local-Modus
+nicht ausschalten kann. Der Local-Modus kann vom Benutzer durch Drcken von
+#ib(1)#<SHIFT CTRL HOME>#ie(1)# am Keyboard verlassen werden.
+
+Im Local-Modus werden Keyboardeingabe nicht mehr an den Host geschickt,
+sondern auf dem Bildschirm angezeigt bzw. durch das Terminal interpretiert.
+Funktionstastensequenzen werden auch nicht an den Host geschickt. Escape-
+Sequenzen die allerdings Daten senden (z.B Download von Text und Graphik
+oder die Abfrage der Cursorposition), werden wie im Online-Modus ausgefhrt,
+d.h. die Daten werden zum Host geschickt.
+
+#page#
+#h("8.", "Spezielle Kommandos im Textmodus")#
+
+
+In diesem Kapitel werden weitere Kommandos, die im Textmodus wirksam sind
+und thematisch nicht in die anderen Kapitel passen, beschrieben.
+
+
+#k("8.1", "Weitere Cursorpositionierungskommandos")#
+
+Zus„tzlich zu den im Graphikmodus und im Textmodus gltigen Cursorpositio-
+nierungskommandos gibt es noch einige weitere. Die fnf Kommandos Zeile
+l”schen, Zeile einfgen, Zeichen l”schen, Zeichen einfgen und Rckw„rtsta-
+bulator sind schon in Kapitel 5 beschrieben worden.
+
+Hier nur noch einmal die entsprechenden Kommandos:
+
+Funktion Escape-Sequenz
+#linie("16.2")#
+Zeile einfgen #ib(1)#<ESC> E#ie(1)# oder #ib(1)#<ESC> L#ie(1)#
+Zeile l”schen #ib(1)#<ESC> R#ie(1)# oder #ib(1)#<ESC> M#ie(1)#
+Zeichen einfgen #ib(1)#<ESC> Q#ie(1)#
+Zeichen l”schen #ib(1)#<ESC> W#ie(1)#
+Rckw„rtstabulator #ib(1)#<ESC> I#ie(1)#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> j#ie(1)# (Hex 1B 6A)
+
+kann ein umgekehrter Zeilenvorschub erreicht werden. Steht der Cursor in
+Zeile 2 bis Zeile 24, dann wirkt dieses Kommando wie <UP>. Steht der Cursor
+in Zeile 1, dann wird der Bildschirminhalt nach unten gescrollt und die
+erste Bildschirmzeile gel”scht.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> =#ie(1)# <y+32> <x+32> (Hex 1B 3D ...)
+
+kann der Cursor auf eine bestimmte Position auf dem Bildschirm gesetzt wer-
+den. <x+32> und <y+32> sind dabei Byteparameter. <x+32> hat den Wertebe-
+reich 32 (<SPACE>) bis 110 ("o"), <y+32> hat den Wertebereich 32 (<SPACE>)
+bis 55 ("7"). <x+32> ist dabei die gewnschte x-Position + 32 (gez„hlt wird
+von 0 bis 79), <y+32> ist die gewnschte y-Position + 32 (gez„hlt wird von 0
+bis 23). Die Zuordnungen der ASCII-Zeichen zu den Cursorpositionen kann man
+auch im Anhang A unter "Cursor" nachlesen.
+
+Dieser Befehl hat im Graphikmodus die gleiche Wirkung!
+
+
+#k("8.2", "Cursormodus")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> .#ie(1)# <n> (Hex 1B 2E <n>)
+
+kann die Darstellung des Cursors ver„ndert werden. Fr <n> sind ASCII-Zei-
+chen "0", "1" und "2" zugelassen. <n> hat folgende Bedeutung:
+
+#on("u")#<n> Bedeutung #off("u")#
+ 0 Cursor blinkt nicht und ist unsichtbar
+ 1 Cursor blinkt und ist sichtbar
+ 2 Cursor blinkt nicht und ist sichtbar
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> Z#ie(1)# (Hex 1B 5A)
+
+kann der Zustand des Cursors von sichtbar auf unsichtbar und umgekehrt umge-
+schaltet werden.
+
+
+#k("8.3", "Zeichensatz einstellen")#
+
+Da die Zeichens„tze von Basis und Apple unterschiedlich sind, muá hier bei
+den Parametern unterschieden werden. Das Kommando zur Einstellung des Zei-
+chensatzes lautet in beiden F„llen
+
+ #ib(1)#<ESC> z#ie(1)# <n> (Hex 1B 7A <n>)
+
+wobei <n> ein Byteparameter ist. Beim Apple hat <n> folgende Bedeutung:
+
+<n> Zeichensatz
+#linie("16.2")#
+ 1 Full Ascii: 128 Zeichen, ASCII, normale, inverse und blinkende Zei-
+ chen
+ 4 Ascii: 128 Zeichen, ASCII, normale und blinkende Zeichen
+
+Beim Basis hat <n> folgende Bedeutung:
+
+<n> Zeichensatz
+#linie("16.2")#
+ 0 = Apple II: 64 Zeichen, ASCII, normale, inverse und blinkende Zeichen
+ 1 = Full Ascii: 128 Zeichen, ASCII, normale, inverse und blinkende Zeichen
+ 2 = Deutsch: 128 Zeichen, deutsch, normale und inverse Zeichen
+ 4 = Ascii: 128 Zeichen, ASCII, normale und inverse Zeichen
+ 6 = APL: 128 Zeichen, APL, normale und inverse Zeichen
+
+ Und mit blinkenden statt inversen Zeichen:
+ 8 = Apple II: 64 Zeichen, ASCII, normale, blinkende und inverse Zeichen (!)
+ 9 = Full Ascii: 128 Zeichen, ASCII, normale, blinkende und inv. Zeichen (!)
+10 = Deutsch: 128 Zeichen, deutsch, normale und blinkende Zeichen
+12 = Ascii: 128 zeichen, ASCII, normale und blinkende Zeichen
+14 = APL: 128 Zeichen, APL, normale und blinkende Zeichen
+
+Einige ausgew„hlte Zeichens„tze k”nnen auch in der Kommandozeile eingestellt
+werden.
+
+
+#k("8.4", "Texthardcopy")#
+
+Einen Ausdruck des Textbildschirminhaltes auf dem Drucker kann man mit dem
+Kommando
+
+ #ib(1)#<ESC> P#ie(1)# (Hex 1B 50)
+
+erreichen. Der auf dem Drucker eingestellte Schrifttyp wird nicht ver„n-
+dert. Es werden 24 Zeilen gedruckt, die Statuszeile wird nicht gedruckt,
+sondern die "darunterliegende" 24. Textzeile. Nach jeder Zeile wird <CR> und
+<LF> gedruckt, der Drucker sollte deshalb kein Autolinefeed bei <CR> durch-
+fhren.
+
+Inverse Bildschirmzeichen (80..FF) werden durch Doppeldruck (dunkler) her-
+vorgehoben, Controlcharacter (00..1F und 80..9F) werden unterstrichen dar-
+gestellt, das Punktraster (7F und FF) wird als unterstrichenes # darge-
+stellt.
+
+
+#k("8.5", "Zeichen-Attribute")#
+
+Die Zeichenattribute werden mit dem Kommando
+
+ #ib(1)#<ESC> G#ie(1)# <n> (Hex 1B 47 <n>)
+
+eingestellt. <n> ist ein Byteparameter, der folgende Werte annehmen kann:
+
+#on("u")#<n> Attribute #off("u")#
+ 0 Sichtbare, normale Zeichen
+ 1 Unsichtbare Zeichen, es werden Leerzeichen dargestellt
+ 4 Sichtbare, inverse Zeichen
+ 5 Unsichtbare Zeichen, es werden inverse Leerzeichen dargestellt.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> (#ie(1)# (Hex 1B 28)
+
+kann auf normale Darstellung umgeschaltet werden (wirkt „hnlich <ESC> G 0,
+schaltet aber nicht auf sichtbare Darstellung, falls unsichtbar).
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> )#ie(1)# (Hex 1B 29)
+
+kann auf inverse Darstellung umgeschaltet werden (wirkt „hnlich <ESC> G 4,
+schaltet aber nicht auf sichtbare Darstellung, falls unsichtbar).
+
+
+#k("8.6", "Bildhintergrund hell/dunkel")#
+
+Die Bildschirmdarstellung kann von heller Schrift auf dunklem Grund (be-
+zglich eines gel”schten Bildschirms) umgeschaltet werden auf dunkle Schrift
+auf hellem Grund. Die Darstellung "schwarz auf weiá" ist auf einigen Monito-
+ren augenfreundlicher.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> b#ie(1)# (Hex 1B 62)
+
+kann die dunkle Schrift auf weiáem Grund eingeschaltet werden. Die Darstel-
+lung von inverser und normaler Schrift wird vertauscht.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> d#ie(1)# (Hex 1B 64)
+
+kann helle Schrift auf dunklem Grund eingeschaltet werden.
+
+
+#k("8.7", "Zeichentransfer zum Host")#
+
+Der Host kann Teile oder den ganzen Bildschirm vom Terminal lesen. Alle
+Zeichen werden als Bytes gesendet, bei denen ein gesetztes Bit 7 Invers-
+schrift anzeigt.
+
+
+#k("8.7.1", "Ein Zeichen senden")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 8#ie(1)# (Hex 1B 38)
+
+wird nur das Zeichen an der Cursorposition gesendet. Die Cursorposition
+„ndert sich nicht. Der Cursor muá nicht sichtbar sein.
+
+
+#k("8.7.2", "Eine Zeile senden")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 6#ie(1)# (Hex 1B 36)
+
+wird die Zeile, in der der Cursor steht (genauer: die Zeile der Cursorrow,
+falls der Cursor unsichtbar ist) an den Host gesendet. Falls der Cursor in
+Zeile 24 steht, wird nicht die Stauszeile, sondern die 24. Textzeile gesen-
+det. Im Anschluá an die Zeile werden eventuell ein oder zwei eingestellte
+Zeilenbegrenzer gesendet (Lineterminator). Die Programmierung der Begrenzer
+ist in Abschnitt 8.7.4 beschrieben. Es werden also 80 bis 82 Zeichen gesen-
+det. Die Cursorposition „ndert sich durch das Kommando nicht.
+
+
+#k("8.7.3", "Eine Seite senden")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 7#ie(1)# (Hex 1B 37)
+
+wird die gesamte Bildschirmseite an den Host gesendet. Im Anschluá an jede
+Zeile werden (falls eingestellt) Zeilenbegrenzer gesendet. Im Anschluá an
+die gesamte Seite wird ein (eingestellter) Seitenbegrenzer (Pageterminator)
+gesendet. Es werden also je nach Zeilen- und Seitenbegrenzer 1920 bis 1969
+Zeichen gesendet. Die Statuszeile wird nicht gesendet, sondern die "darun-
+terliegende" 24. Textzeile. Die Programmierung der Zeilen- und Seitenbe-
+grenzer ist in Abschnitt 8.7.4 beschrieben. Die Cursorposition „ndert sich
+durch dieses Kommando nicht.
+
+
+#k("8.7.4", "Terminatorzeichen definieren")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> x 1#ie(1)# <l1> <l2> (Hex 1B 78 31 <l1><l2>)
+
+k”nnen die Zeilenbegrenzer der Sendekommandos festgelegt werden. <l1> und
+<l2> sind dabei Byteparameter, die den Wertebereich 0 bis 255 berstrei-
+chen. Ist ein Parameter Hex 00, dann wird dieses Zeichen nicht gesendet.
+Wenn man also das Kommando (Hex) 1B 78 31 00 00 sendet, wird kein Begren-
+zerzeichen nach der Zeile gesendet.
+Voreingestellt ist ein Begrenzerzeichen; und zwar US (Hex 1F).
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> x 4#ie(1)# <p> (Hex 1B 78 34 <p>)
+
+kann der Seitenbegrenzer des Kommandos #ib(1)#<ESC> 7#ie(1)# festgelegt werden. <p> ist
+ein Byteparameter, der den Wertebereich von 0 bis 255 berstreicht. Ist <p>
+Hex 00, dann wird kein Seitenbegrenzer gesendet.
+Voreingestellt ist <p> = <CR> (Hex 0D).
+
+
+#k("8.7.5", "Cursorposition senden")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> ?#ie(1)# (Hex 1B 3F)
+
+kann der Host die Position des Textcursors abfragen. Es wird eine Folge von
+3 Bytes gesendet: <y+32> <x+32> <CR>
+
+<y+32> ist die y-Position + 32, <x+32> die x-Position + 32. Beide Parameter
+k”nnen fr den Befehl #ib(1)#<ESC> =#ie(1)# <y+32> <x+32> verwendet werden, da Sie den
+gleichen Wertebereich berstreichen.
+
+
+#k("8.8", "Textseite auf Diskette speichern/laden")#
+
+Genau wie Graphikseiten kann auch die Textseite auf Diskette geschrieben und
+zu einem sp„teren Zeitpunkt wieder zurckgeladen werden. Bei der Textseite
+wird auáerdem noch die aktuelle Cursorposition geladen/geschrieben. Man kann
+sich zum Beispiel eine Datei Seitenweise auf dem Bildschirm anzeigen lassen
+und diese Seiten auf Diskette abspeichern. Sp„ter kann man die Datei Offline
+(im Localmodus) Seitenweise ansehen.
+
+Bis zu 8 Textseite lassen sich auf Diskette speichern und wieder abrufen.
+Die "F„cher" fr die Textseiten sind unabh„ngig von denen fr die Graphik-
+seiten.
+Die Seiten werden unabh„ngig von REVVID (Schwarz auf Weiá) immer NORVID
+(also Weiá auf Schwarz) abgespeichert. Beim Laden der Seite wird sie je nach
+REVVID/NORVID dargestellt.
+
+Das Kommando fr diese Operationen lautet
+
+ #ib(1)#<ESC> S#ie(1)# <n> (Hex 1B 53 <n>).
+
+<n> ist ein Byteparameter mit dem Wertebereich 0 bis 31, wobei die Bits
+folgendermaáen belegt sind:
+Bit 0..2 : "Fachnummer" der Textseite auf der Diskette (0 bis 7)
+Bit 3 : Bei Textseiten immer 0 (Bei Graphikseiten immer 1)
+Bit 4 : 0 heiát: die Textseite wird von der Diskette gelesen,
+ 1 heiát: die Textseite wird auf die Diskette geschrieben.
+
+Wird die Textseite auf die Diskette geschrieben, dann wird eine eventuell
+schon in diesem "Fach" vorhandene Textseite berschrieben.
+
+Fr Insider: Jede Textseite belegt einen halben Track (2k). Die 8 Textseiten
+ befindenden auf den Tracks 6 bis 9 in aufsteigender Reihenfol-
+ ge.
+
+
+#page#
+#h("9.", "Verschiedene Steuerkommandos")#
+
+
+#k("9.1", "Signalton")#
+
+Mit
+ #ib(1)#<CTRL G>#ie(1)# (Hex 07)
+
+wird ein kurzer Signalton ausgegeben. Ein Warnton des Terminals ist sch„r-
+fer (heller).
+
+
+#k("9.2", "Keyboardclick")#
+
+Der Tastaturclick wird fr fast alle Tasten erzeugt. Ausnahmen sind die
+<SHIFT> und die <CTRL> Tasten, sowie beim Apple die Apfeltasten. Der Tasta-
+turclick kann in der ersten Kommandozeile abgeschaltet werden (CLK OFF) oder
+mit dem Kommando
+
+ #ib(1)#<ESC> <#ie(1)# (Hex 1B 3C)
+
+vom Host. Mit dem Kommando
+
+ #ib(1)#<ESC> >#ie(1)# (Hex 1B 3E)
+
+kann der Keyboardclick wieder eingeschaltet werden.
+
+
+#k("9.3", "Bildschirmausgabe/Druckerausgabe")#
+
+Die Bildschirmausgabe, die ja normalerweise eingeschaltet ist, kann in der
+Kommandozeile abgeschaltet werden (SCRNOFF) oder vom Host mit dem Kommando
+
+ #ib(1)#<ESC> `#ie(1)# (Hex 1B 60)
+
+abgeschaltet werden. Bis auf das Kommando
+
+ #ib(1)#<ESC> a#ie(1)# (Hex 1B 61)
+
+werden keine Escape-Squenzen oder Control-Codes interpretiert. Mit <ESC> a
+wird die Bildschirmausgabe wieder zugelassen.
+
+Die Druckerausgabe kann mit dem Kommando
+
+ #ib(1)#<ESC> @#ie(1)# (Hex 1B 40)
+
+eingeschaltet werden. Man kann dann Texte parallel auf Drucker und Bild-
+schirm ausgeben. In der ersten Kommandozeile kann die Druckerausgabe auch
+ein- und ausgeschaltet werden.
+Man kann zum Beispiel den Schrifttyp des Druckers im Local-Modus umschal-
+ten, wenn man in der Kommandozeile die Druckerausgabe (PRT ON) einschaltet.
+Dazu kann man sich auch eine Funktionstaste belegen, die Bildschirmausgabe
+abschaltet, Druckerausgabe einschaltet, den Schrifttyp umschaltet, Drucker-
+ausgabe wieder ausschaltet und Bildschirmausgabe wieder einschaltet.
+
+Abgeschaltet wird die Druckerausgabe mit dem Kommando
+
+ #ib(1)#<ESC> A#ie(1)# (Hex 1B 41)
+
+
+#k("9.4", "Scroll/Page-Modus")#
+
+Steht der Cursor in der letzten Zeile und soll er in die n„chst tiefere
+gebracht werden (<DOWN>, <TAB>, <NEWLINE> etc.), dann gibt es entweder die
+M”glichkeit, daá der Bildschirm nach oben gescrollt wird, d.h. die 1. Zeile
+verschwindet und die 24. Zeile wird gel”scht, oder daá der Cursor in der
+ersten Bildschirmzeile wieder auftaucht, ohne daá der Bildschirminhalt ver-
+„ndert wird. Die erste M”glichkeit heiát SCROLL-Modus, die zweite PAGE-
+Modus. Die Umschaltung kann entweder in der ersten Kommandozeile erfolgen
+oder mit dem Kommando
+
+ #ib(1)#<ESC> H#ie(1)# (Hex 1B 48).
+
+In der Kommandozeile hat man die Informationsm”glichkeit, welcher Modus
+gerade aktiv ist.
+
+
+#k("9.5", "Belegung der Funktionstasten")#
+
+Eine ntzliche Angelegenheit sind die programmierbaren Funktionstasten. Die
+Codes der Funktionstasten sind unter anderem in Anhang A zu finden. Funk-
+tionstasten k”nnen im Local-Modus aufgerufen werden, zum Beispiel fr h„u-
+fig gebrauchte Terminalkommandos oder l„ngere Kommandosequenzen (Graphikmo-
+dus). Im Online-Modus kann man z.B. Betriebssystemkommandos auf Funktion-
+stasten legen.
+
+Die L„nge der Zeichen auf allen Funktionstasten darf zusammen nicht 4095
+Zeichen berschreiten. Ein akustisches Warnsignal ert”nt, wenn die Funk-
+tionstastentabelle voll ist. Soll die Funktionstastendefinition auch noch
+nach dem Abschalten des Terminals erhalten bleiben, dann muá in der Komman-
+dozeile <SHIFT S> gegeben werden, damit der Setup samt Funktionstastende-
+finitionen auf die Diskette geschrieben wird.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> e#ie(1)# <d...> <t> (Hex 1B 65 <d...><t>)
+
+wird eine Taste belegt. <d...> und <t> sind Byteparameter. <d...> ist eine
+Folge von Datenbytes, deren Bit 7 = 0 sein muá. <t> ist der Code der Funk-
+tionstaste (Bit 7 = 1), auf die die Sequenz gelegt werden soll. Durch diese
+Einschr„nkung sind keine rekursiven (sich selbst aufrufenden) Tastenkomman-
+dos m”glich, man kann allerdings z.B. auch nicht alle bin„ren Parameter auf
+Tasten legen (Man sollte dezimale Parameter benutzen). Die Cursortasten etc.
+k”nnen nicht belegt werden.
+Um die Original-Tastencodes wieder zu benutzen, gibt es drei M”glichkeiten:
+
+- Die Tabelle der Tastendefinitionen wird ganz gel”scht (Abschnitt 9.6).
+- Die Definition auf einzelnen Tasten wird durch <ESC> e <t> gel”scht. <t>
+ ist dabei der Code einer zu l”schenden Taste.
+- In der ersten Kommandozeile wird F CODE eingeschaltet oder das Kommando
+
+ #ib(1)#<ESC> c#ie(1)# (Hex 1B 63)
+
+ gegeben. Dieses Kommando schaltet um, ob immer Tastencodes (A1..EF) oder,
+ bei belegten Tasten, die programmierte Sequenz geliefert werden soll. Im
+ Graphikmodus m”chte man eventuell die griechischen Sonderzeichen auf den
+ Funktionstasten benutzen (F CODE) und nicht die programmierten Tasten-
+ strings (F STRG).
+
+
+#k("9.5.1", "Local-Escape")#
+
+Um Funktionstasten mit Terminalkommandos auch im Online-Modus benutzen zu
+k”nnen (zum Beispiel ein Bildschirm Hardcopy) wird ein spezielles ESC-Zei-
+chen statt <ESC> (Hex 1B) verwendet.
+Das Zeichen
+
+ #ib(1)#<LOCESC>#ie(1)# (Hex 9B)
+
+teilt dem Terminal mit, daá die nun folgende Escape-Sequenz nicht an den
+Host gesendet wird (was bei <ESC> der Fall w„re), sondern vom Terminal in-
+terpretiert werden muá.
+Im Local-Modus wirkt ein <LOCESC> wie ein normales <ESC>, d.h. das Kommando
+wird sowieso vom Terminal interpretiert.
+
+
+#k("9.5.2", "Makrokommandos")#
+
+Ein Makrokommando hat (mindestens) drei Aufgaben:
+- Der Host kann dem Terminal neue ESC-Sequenzen (mit Parametern) definieren,
+ z.B. um andere Terminals zu emulieren.
+- Nicht nur das Terminal kann Funktionstasten aufrufen, sondern auch der
+ Host, wenn die Funkionstaste als Makro aufgerufen wird.
+- Der Datentransfer vom Host zum Terminal kann durch Makros als Abkrzungen
+ h„ufig benutzter Zeichenfolgen beschleunigt werden.
+
+Ein Makro wird wie eine Funktionstaste mit dem Kommando
+
+
+ #ib(1)#<ESC> e#ie(1)# <d...> <t> (Hex 1B 65 <d...><t>)
+
+definiert. <d...> und <t> sind Byteparameter. <d...> ist eine Folge von
+Datenbytes, deren Bit 7 = 0 sein muá. <t> ist der Code der Funktionstaste
+(Bit 7 = 1) oder mit anderen Worten der Makroname.
+Es sind alle Codes fr <t> zugelassen, die auch bei der Funktionstastende-
+finition zugelassen sind.
+
+Ein Makro kann sowohl vom Terminal (auch im F CODE-Modus) als auch vom Host
+mit
+
+ #ib(1)#<ESC> <Macrocode>#ie(1)# (Hex 1B <Makrocode>)
+
+aufgerufen werden. Dem Terminal wird die Zeichensequenz des Makros so vorge-
+setzt, als k„me sie von der Tastatur im Local-Modus. Wird das Makro also
+bereits im Local-Modus aufgerufen, hat das immer noch den Vorteil, daá man
+im F CODE-Modus weiterhin programmierte Funktionstasten benutzen kann.
+Anmerkung: Wird das <ESC> vor dem <Makrocode> weggelassen, dann wird der
+ Code <Makrocode> ohne Makroausfhrung an das Terminal gesendet
+ und i.d.R. als inverses Zeichen dargestellt.
+
+Sollen Byteparameter in die Zeichensequenz des Makros bernommen werden, die
+zur Zeit der Makrodefinition noch nicht feststehen, dann kann man einen
+Platzhalter mit dem Code Hex 81 an der Stelle einsetzen. Der Code Hex 81
+kann auf der Tastatur durch <SHIFT DELETE> erzeugt werden.
+Wird bei der Makroausfhrung ein solcher Code gefunden, wartet das Terminal
+auf ein Byte von Tastatur, wenn das Makro im Local-Modus aufgerufen wurde,
+oder vom Host, wenn das Makro vom Host aufgerufen wurde. Es drfen beliebig
+viele Codes 81 in der Makrozeichensequenz vorhanden sein. Jeder Code wird
+durch ein weiteres Zeichen von Host oder Tastatur ersetzt.
+
+
+#k("9.5.3", "Startup-Makro")#
+
+Ein besonderes Makro hat den Code Hex EF. Dieser Code kann auf der Tastatur
+durch <SHIFT BOTTOMRIGHT> (beim Apple <OA RIGHT>) erzeugt werden.
+
+Dieses Makro wird bei einem RESET des Terminals (Hardwarereset oder <ESC> 0)
+oder beim Einschalten des Terminals aufgerufen. Der Bildschirm und die Gra-
+phikseiten werden vorher gel”scht.
+
+
+#k("9.6", "Tabellen und Puffer l”schen")#
+
+Das Terminal enth„lt den Empfangspuffer, den Sendepuffer, den Druckerspoo-
+ler und die Tabelle der Tastendefinitionen. Um einen der Puffer oder die
+Tabelle zu l”schen, kann das Kommando
+
+ #ib(1)#<ESC> <DEL>#ie(1)# <n> (Hex 1B 7F <n>)
+
+verwendet werden. <n> ist ein Byteparameter mit dem Wertebereich 0 bis 15
+und hat folgende Bedeutung:
+
+#on("u")#<n> Gel”schte Tabelle oder Puffer#off("u")#
+ 0 Keine
+ 1 Tastendefinitionen
+ 2 Druckerspooler
+ 3 Empfangspuffer
+ 4 Sendepuffer
+
+Zu beachten ist, daá zwar der Sendepuffer gel”scht wird, aber eine eventu-
+ell gestoppte šbertragung (TX OFF) nicht wider gestartet wird.
+
+
+#k("9.7", "Zeitverz”gerung")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 9#ie(1)# <n> (Hex 1B 39 <n>)
+
+kann eine Zeitverz”gerung aufgerufen werden. Man kann zum Beispiel ein Fa-
+denkreuz darstellen, die Zeitverz”gerung aufrufen und das Fadenkreuz wieder
+l”schen. <n> ist ein Byteparameter mit dem Wertebereich von 0 bis 255. Die
+Verz”gerung betr„gt ca. <n> * 2 ms.
+
+
+#k("9.8", "Transparentmodi")#
+
+Der Monitor- und der Hexadezimalmodus sind zum Test von unbekannten Emp-
+fangsdaten oder zum Analysieren der Steuerzeichenausgabe von unbekannten
+Programmen gedacht.
+
+
+#k("9.8.1", "Monitor-Modus")#
+
+Im Monitor-Modus werden druckbare Zeichen wie normal dargestellt. Control-
+zeichen (Hex 00..1F und 80..9F) werden invertiert dargestellt. Im APL-Zei-
+chensatz kann man diese inversen Controlzeichen von den Zeichen mit Code Hex
+A0..FF unterscheiden, die auch invers dargestellt werden.
+Der Monitormode kann in der ersten Kommandozeile ein- und ausgeschaltet
+werden. Mit dem Kommando
+
+ #ib(1)#<ESC> U#ie(1)# (Hex 1B 55)
+
+kann der Monitormode eingeschaltet werden. Alle Zeichen werden ohne Inter-
+pretation ausgegeben, Ausnahmen sind
+
+ #ib(1)#<ESC> u#ie(1)# (Hex 1B 75)
+
+und
+
+ #ib(1)#<ESC> X#ie(1)# (Hex 1B 58)
+
+die den Monitormodus ausschalten.
+
+
+#k("9.8.2", "Hexadezimal-Modus")#
+
+In diesem Modus werden nicht die Zeichen auf dem Bildschirm gedruckt, son-
+dern ihr ASCII-Code in hexadezimaler Schreibweise mit zwei nachfolgenden
+Blanks. Der Hexmode kann mit dem Kommando
+
+ #ib(1)#<ESC> u#ie(1)# (Hex 1B 75)
+
+ein- und ausgeschaltet werden. Alle Zeichen werden ohne Interpretation aus-
+gegeben, auáer #ib(1)#<ESC> u#ie(1)# und
+
+ #ib(1)#<ESC> X#ie(1)# (Hex 1B 58),
+
+die den Hexmodus wieder ausschalten. Auch der Hexmode kann in der ersten
+Kommandozeile ein- und ausgeschaltet werden.
+
+
+#k("9.8.3", "Einzelne Control-Zeichen anzeigen")#
+
+Um nur einzelne Controlzeichen auf dem Bildschirm darzustellen, z.B. fr den
+unteren Teil des APL-Zeichensatzes (Codes 0 bis 31 oder 128 bis 159), gibt
+es das Kommando
+
+ #ib(1)#<ESC> F#ie(1)# <z> (Hex 1B 46 <z>).
+
+<z> ist dabei ein Byteparameter mit dem Wertebereich 0 bis 255, vorzugswei-
+se 0 bis 31. <z> wir mit invertiertem Bit 7 (normal/invers) in den Bild-
+schirmspeicher an der aktuellen Cursorposition geschrieben.
diff --git a/system/ruc-terminal/unknown/doc/TDOCP.PRT b/system/ruc-terminal/unknown/doc/TDOCP.PRT
new file mode 100644
index 0000000..c3bdeb4
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/TDOCP.PRT
@@ -0,0 +1,4008 @@
+#type ("elite")##limit (16.2)##block#
+#page##--------------------------------- Ende der Seite 0 -----------#
+#text begin#
+
+#type ("8")##center##on("b")##on("u")#Bedienungshandbuch zum ruc - Graphikterminal#off("u")##off("b")##type ("elite")#
+
+#center#Version 1.1
+
+#center#Oktober 1986
+#free (16.0)#
+ruc - Rolf Uhlig Computer
+GmbH & Co Kommanditgesellschaft
+Sendenhorster Straáe 82
+D - 4406 Drensteinfurt 1
+Telefon 02508/8500
+
+Michael Staubermann
+Mor„nenstraáe 29
+D - 4400 Mnster-Hiltrup
+Telefon 02501/4320
+#pagenr (""224"", 1)#
+#text end#
+#free(2.2225)#
+#page##--------------------------------- Ende der Seite 1 -----------#
+#center##on("b")#1. Einige Worte zuvor#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#1. Einige Worte zuvor#ie(3)##off("u")##off("i")##type("elite")#
+
+
+Dieses Terminalprogramm wird in zwei Versionen (fr den Basis 108 und den
+Apple IIe) geliefert. Die Version ist in der Kommandozeile erkenntlich
+(BASIS oder APPLE).
+
+Eigenschaften des Terminals:
+
+- Kommandozeilen fr schnelle Offline Parametereinstellung
+- Statuszeile fr spezielle Betriebzust„nde
+- šber 70 programmierbare Funktionstasten
+- Druckerspooler 32k (4 ganze Graphikhardcopys und noch mehr)
+- 7935 Zeichen Empfangspuffer
+- Verschiedene Hardcopy Modi fr Text und Graphik
+- 192x280 Punkte aufl”sender Graphikmodus mit zwei Helligkeitsstufen
+- Zwei Graphikseiten mit getrennter Anzeige/Bearbeitung
+- Viele Graphikroutinen (Bogen, Fl„chenfllung, Kreis, Rechteck...)
+- Graphikmodus fr Texte in verschieden Richtungen, Dicken, Gr”ssen
+- Griechische Graphikzeichen und Kursivschrift
+- Graphikseiten Scrollen, Mischen, vom Host laden, zum Host schicken
+
+
+Zum Handbuch
+
+Tasten werden durch Angabe ihres Aufdruckes in Grossbuchstaben angegeben und
+in spitze Klammern gesetzt (z.B. <TAB>) in einigen F„llen auch durch ihren
+Namen (z.B. <DOWN> oder <TOPLEFT>). Eine zus„tzlich zu bet„tigende Umschalt-
+taste, wie SHIFT, CTRL, OPEN APPLE (kurz: OA) oder beide zusammen, wird in
+der Klammer davorgestellt (z.B. <SHIFT RETURN>).
+
+Nicht druckbare Ascii-Codes (z.B. <ESC> oder <SPACE>), sowie Kommandopara-
+meter (z.B. <n>) werden ebenfalls in spitze Klammern gesetzt. Komandopara-
+meter werden mit Kleinbuchstaben bezeichnet.
+
+#text end#
+#free(7.220185)#
+
+
+ 1
+#page##--------------------------------- Ende der Seite 1 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#2. Die Hardware#ie(3)##off("u")##off("i")##type("elite")#
+
+
+Untersttzt wird eine 80-Zeichen Textanzeige, ein Basiskeyboard oder ein
+Applekeyboard mit Open-Apple Taste. Am Basis kann ein Drucker angeschlossen
+werden.
+
+
+#type("8")##center##ib(3)#2.1 Die serielle Schnittstelle#ie(3)##type("elite")#
+
+Die Parameter der seriellen Schnittstelle k”nnen vom Host oder vom Terminal
+(LOCAL) eingestellt werden (Siehe Kommando <ESC> <SPACE> <SPACE>). Es wer-
+den alle 15 g„ngigen Baudrates zwischen 50 und 19200 Baud untersttzt. Pari-
+tycheck kann mit gerader oder ungerader Parit„t durchgefhrt werden. Fluá-
+kontrolle ist in allen Kombinationen aus RTS/CTS, DTR/DSR, XON/XOFF m”glich.
+Empfohlen wird DTR/DSR oder XON/XOFF.
+
+ Ben”tigte Verdrahtung der seriellen Schnittstelle
+
+ Pin Priorit„t
+ 2 : TXD Sendedaten zum Host (RXD) 1
+ 3 : RXD Empfangsdaten vom Host (TXD) 1
+ 4 : RTS Ready To Send zum Host (CTS) 3
+ 5 : CTS Clear To Send vom Host (RTS) 3
+ 6 : DSR DataSet Ready vom Host (DTR) 2
+ 7 : Masse an Host Masse 1
+ 8 : DCD Eingang, nicht ben”tigt
+ 20 : DTR Data Terminal Ready zum Host (DSR) 2
+
+Priorit„t:
+ 1 : Muá verdrahtet werden
+ 2 : Ist bei DSR/DTR Fluákontrolle zu verdrahten
+ 3 : Ist bei RTS/CTS Fluákontrolle zu verdrahten
+
+Der Datentransfer geschieht in der Regel mit 8 Datenbits. Sollte der Host
+nur ber 7 Bit Datentransfer verfgen, mssen einige Einschr„nkungen bei der
+Parameterbergabe von Uploads/Downloads gemacht werden (Kein Farbbit). Die
+Anzahl der Datenbits kann auch in der Kommandozeile ver„ndert werden.
+
+
+#type("8")##center##ib(3)#2.2 Der Reset#ie(3)##type("elite")#
+
+Ein Reset bringt das Terminal in einen definierten Zustand. Alle Bildschirm-
+seiten und Puffer, sowie der Druckerspooler werden gel”scht. Der Reset kann
+vom Host durch
+
+ #ib(1)#<ESC> 0#ie(1)# (Hex 1B 30)
+
+initiiert werden, vom Basiskeyboard aus durch <SHIFT SHIFT CTRL>. Die Para-
+meter in der Kommandozeile werden dem Setup entnommen. Nach dem L”schen
+aller Bildschirmseiten, wird das Makro mit dem Code Hex EF aufgerufen. Dies
+ist die Funktionstaste <SHIFT BOTRIGHT>.
+#text end#
+#free(02.351852e-2)#
+
+
+#right#2
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 2 -----------#
+#center##on("b")#3. Die Kommandozeile#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#3. Die Kommandozeile#ie(3)##off("u")##off("i")##type("elite")#
+
+
+Die wichtigsten Parameter des Terminals k”nnen im laufenden Betrieb in den
+beiden Kommandozeilen ge„ndert werden. Die erste Kommandozeile erscheint
+beim Basiskeyboard durch Drcken von <SHIFT CE> und beim Apple durch <OA
+CTRL X>.
+
+Im Graphikmodus ersetzt die Kommandozeile die untersten 32 Graphikzeilen
+(entspricht vier Textzeilen). Man hat also auch im Graphikmodus die M”g-
+lichkeit wichtige Parameter in der Kommandozeile zu „ndern.
+
+Die angezeigten Einstellungen bieten auáerdem eine Informationsm”glichkeit
+ber die aktuellen Parameter der seriellen Schnittstelle u.s.w. Die zweite
+Kommandozeile enth„lt die Parameter der seriellen Schnittstelle.
+
+Alle in den Kommandozeilen angezeigten Parameter (bis auf BELL ON/BELL OFF)
+k”nnen auch durch ESC-Kommandos vom Host oder im Localmodus ge„ndert wer-
+den.
+Ein laufender Druckvorgang wird unterbrochen, solange die Kommandozeilen
+sichtbar sind.
+
+
+#type("8")##center##ib(3)#3.1 Tastenfunktionen in der Kommandozeile#ie(3)##type("elite")#
+
+Folgende Tasten haben in der Kommandozeile eine Wirkung:
+
+Taste Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+<UP> oder <DOWN> Wechselt in die jeweils andere Kommandozeile
+
+<LEFT> Springt zum vorherigen (linken) Parameter ohne etwas zu
+ ver„ndern.
+
+<RIGHT> Springt zum n„chsten (rechten) Parameter ohne etwas zu
+ ver„ndern.
+
+<SPACE> Žndert das selektierte Parameterfeld. Das selektierte
+ Parameterfeld ist durch Invertierung hervorgehoben. Die
+ m”glichen Parameter wiederholen sich zyklisch.
+
+<ESC> Die Kommandozeile wird verlassen. Es werden keine Žnde-
+ rungen durchgefhrt.
+
+<SHIFT S> Die Kommandozeile wird verlassen. Vorher werden alle
+ Žnderungen permanent auf die Diskette geschrieben. Wei-
+ tere Einzelheiten s.u. (Setup)
+
+#text end#
+#clear pos#
+#free(1.716852)#
+
+
+ 3
+#page##--------------------------------- Ende der Seite 3 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")#
+#text begin#
+<SHIFT R> Alle Parameter werden auf ihre Defaultwerte zurckge-
+ setzt. Die Kommandozeile wird noch nicht verlassen, daher
+ kann dieser 'Reset' durch <ESC> wieder aufgehoben werden.
+ <CE> oder <CTRL X> Die Kommandozeile wird verlassen. Die
+ Žnderungen werden nur im Speicher vermerkt. Nach dem
+ Ein-/Ausschalten des Rechners werden die alten Parameter
+ von der Diskette gelesen. Wird allerdings ein Hardware-
+ reset (s.o.) durchgefhrt, sind diese Žnderungen nicht
+ verloren.
+
+
+#type("8")##center##ib(3)#3.2 Setup#ie(3)##type("elite")#
+
+Beim Setup, der in der Kommandozeile durch <SHIFT S> ausgel”st werden kann,
+werden wichtige Parameter auf die Diskette geschrieben. Sie werden dann
+'permanent' und mssen nach dem Einschalten des Terminals nicht neu einge-
+stellt werden. Diese Parameter sind die
+- Parameter der seriellen Schnittstelle (2. Kommandozeile)
+- anderen Parameter der Kommandozeilen
+- vom Benutzer programmierte Belegung der Funktionstasten
+- Druckerspezifischen Hardcopyparameter
+
+Vor dem Setup ist zu prfen, ob der Diskettenschreibschutz entfernt wurde
+(Klebeschildchen an der Diskettenseite entfernen). Der Schreibschutz sollte
+nach dem Setup wieder angebracht werden. Wurde der Schreibschutz nicht ent-
+fernt, wird eine Meldung 'Diskettenschreibschutz entfernen !' angezeigt. In
+diesem Falle erscheint nach dem Drcken einer Taste wieder die Kommando-
+zeile.
+Wenn keine Diskette einliegt oder ein harter Schreibfehler auftritt, er-
+scheint die Meldung 'Setup kann nicht geschrieben werden (Diskettenfeh-
+ler)!'. Weitere Schreibversuche sind m”glicherweise erfolgreich.
+
+
+#type("8")##center##ib(3)#3.3 Die zweite Kommandozeile#ie(3)##type("elite")#
+
+Beim Basis (erste Zeile zeigt Defaultwerte fr <SHIFT R>)
+
+#type ("micron")#
+GER|BASIS|MON OFF|PRT OFF|SCRN ON |KEY CLK|NORVID|SCROLL|BELL ON |CUR FLH|F STRG
+USA TVI MON ON PRT ON SCRN OFF CLK OFF REVVID PAGE BELL OFF CUR STD F CODE
+APL HEX ON CUR OFF
+UNI
+#type ("elite")#
+
+Beim Apple (erste Zeile zeigt Defaultwerte fr <SHIFT R>)
+
+#type ("micron")#
+USA|APPLE|MON OFF|PRT OFF|SCRN ON |KEY CLK|NORVID|SCROLL|BELL ON |CUR FLH|F STRG
+FLH TVI MON ON PRT ON SCRN OFF CLK OFF REVVID PAGE BELL OFF CUR STD F CODE
+ HEX ON CUR OFF
+#type ("elite")#
+
+
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+#right#4
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 4 -----------#
+#center##on("b")#3. Die Kommandozeile#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")#
+#text begin#
+Default Andere Funktion
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+Basis
+ GER USA Die Zeichensatzeinstellung ist fr die gebr„uchlichsten
+ APL vier Zeichens„tze in der Kommandozeile m”glich.
+ UNI GER = Deutsch Ascii, USA = US Ascii, APL = APL-Zeichensatz
+ UNI = Deutscher Zeichensatz mit inversen APL Zeichen. Der
+ APL-Zeichensatz ent„hlt auch die Zeichen [\]{|}~. šber
+ ESC-Kommandos lassen weitere M”glichkeiten einstellen.
+
+ BASIS TVI Keyboard Emulation. BASIS sendet die Funktionstastencodes
+ mit Bit 7 = 1. TVI sendet fr jede Funktionstaste eine
+ Zeichenfolge <SOH> x <CR>. Die Cursortasten sowie DEL CHAR,
+ INS CHAR, DEL LINE, INS LINE werden wie bei TVI blich
+ gesendet. Weiter Einzelheiten s.u. (TVI-Emulation)
+
+Apple
+ USA FLH USA = US Ascii, FLH = Voller Ascii Zeichensatz mit Blinken
+ und Invers.
+
+ APPLE TVI Keyboard Emulation. APPLE fhrt keine Codeumsetzung durch.
+ Wird allerdings die <OPEN APPLE>-Taste mit einer anderen
+ Taste zusammen gedrckt, wird das Bit 7 im Code auf 1 ge-
+ setzt. Zur TVI-Emulation siehe oben.
+
+MON OFF MON ON Der Monitor Modus wird mit MON ON eingeschaltet. In diesem
+ HEX ON Modus werden alle Steuerzeichen auf dem Bildschirm mar-
+ kiert ausgegeben. Bis auf die Kommandos <ESC> u oder <ESC>
+ X (um den Monitormodus auszuschalten) werden keine Komman-
+ dos interpretiert. Alle anderen Zeichen werden unver„ndert
+ dargestellt. Der Monitormodus kann auch durch MON OFF aus-
+ geschaltet werden.
+ Im Hexmodus werden keine Zeichen, sondern deren Ascii-
+ Codes in Hexadezimaldarstellung ausgegeben.
+
+PRT OFF PRT ON Parallele Druckerausgabe. Ist PRT ON eingeschaltet, werden
+ alle Zeichen die von der seriellen Schnittstelle kommen,
+ auf dem Drucker ausgegeben bzw. in den Druckerspooler ge-
+ schrieben. Die Bildschirmausgabe wird hiervon nicht beein-
+ fluát.
+
+SCRN ON SCR OFF Bildschirmausgabe an/aus. Ist SCRN ON eingeschaltet, wer-
+ den alle Zeichen die von der seriellen Schnittstelle kom-
+ men, auf dem Bildschirm ausgegeben. SCR OFF und PRT ON kann
+ zum Beispiel benutzt werden, um Daten nur an den Drucker zu
+ schicken, ohne daá diese auch auf dem Bildschirm erschei-
+ nen.
+
+KEY CLK CLK OFF Tastaturklick an/aus. Ist KEY CLK eingeschaltet, gibt jede
+ Taste (bis auf SHIFT, CTRL) bei ihrer Bet„tigung einen Ton
+ (Klick) von sich. CLK OFF schaltet dies ab.
+
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+ 5
+#page##--------------------------------- Ende der Seite 5 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+NORVID REVVID Bildschirmdarstellung. NORVID stellt hellen Text auf
+ schwarzem Grund dar, REVVID stellt schwarzen Text auf hel-
+ lem Grund dar (M”glicherweise angenehmer fr die Augen).
+
+SCROLL PAGE Ist SCROLL eingeschaltet, wird der Bildschirm um eine Zeile
+ nach oben geschoben, sobald der Cursor in der letzten Bild-
+ schirmzeile steht und ein Zeilenvorschub <LF> ausgefhrt
+ werden soll. Die erste Bildschirmzeile verschwindet. Ist
+ PAGE eingeschaltet, springt der Cursor in einer solchen
+ Situation in die erste Bildschirmzeile. Die Cursorspalte
+ wird dabei nicht ver„ndert.
+
+BELL ON BELL OFF Normalerweise erzeugt jedes empfangene <CTRL G> einen kur-
+ zen Signalton. Wenn das st”rt, kann die Tonausgabe mit BELL
+ OFF abgeschaltet werden.
+
+CUR FLH CUR STD Cursordarstellung. CUR FLH zeigt einen blinkenden CUR OFF
+ Cursorblock. CUR STD zeigt einen nichtblinkenden Cursor-
+ block. CUR OFF schaltet den Cursor ab (unsichtbar).
+
+F STRG F CODE Funktionstastenbelegung. Ist F STRG eingeschaltet, erzeugt
+ eine programmierte (belegte) Funktionstaste keinen Tasten-
+ code, sondern sendet die programmierten Zeichen. Eine unbe-
+ legte Funktionstaste sendet ihren Tastencode. Ist F CODE
+ eingeschaltet, erzeugen auch belegte Funktionstasten einen
+ Tastencode und senden keine programmierten Zeichen.
+
+
+#type("8")##center##ib(3)#3.4 Die zweite Kommandozeile#ie(3)##type("elite")#
+
+Die erste Zeile zeigt Defaultwerte fr <SHIFT R>:
+
+#type ("micron")#
+STATOFF|TXT| 9600|STOP 1|DATA 8|NO PAR|NO XONOFF|NO RTSCTS|NO DTRDSR
+STAT ON GFX 19200 STOP 2 DATA 7 EVN PAR XON/XOFF RTS/CTS DTR/DSR
+ 50 ODD PAR
+ 75
+ 109.9
+ 134.6
+ 150
+ 300
+ 600
+ 1200
+ 1800
+ 2400
+ 3600
+ 4800
+ 7200
+#type ("elite")#
+
+#text end#
+#clear pos#
+#free(1.716852)#
+
+
+#right#6
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 6 -----------#
+#center##on("b")#3. Die Kommandozeile#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Default Andere Funktion
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+STATOFF STAT ON Anzeige der Statuszeile. Der Arbeitsbereich des Bildschirms
+ betr„gt zwar immer 24 Zeilen, allerdings ist bei STAT ON
+ anstelle der 24. Textzeile die Statuszeile sichtbar. Bei
+ STATOFF wird der aktuelle Inhalt der 24. Textzeile sicht-
+ bar. Einzelheiten s.u. (Die Statuszeile)
+
+TXT GFX Textmodus/Graphikmodus. TXT schaltet in die 80x24 Zeichen
+ Textdarstellung um. GFX schaltet auf die aktuelle Graphik-
+ seite um.
+
+9600 19200 W„hlt die Baudrate fr die serielle Schnittstelle.
+ 50 Die Angabe erfolgt in Bits/Sekunde (Baud)
+ 75
+ 109.9
+ 134.6
+ 150
+ 300
+ 600
+ 1200
+ 1800
+ 2400
+ 3600
+ 4800
+ 7200
+
+STOP 1 STOP 2 W„hlt die Anzahl der Stopbits fr die serielle Schnitt-
+ stelle.
+
+DATA 8 DATA 7 W„hlt die Anzahl der Datenbits fr die serielle Schnitt-
+ stelle.
+
+NO PAR EVN PAR W„hlt Parity Check Art. NO PAR = Kein Parit„tsbit, keine
+ ODD PAR Parit„tsprfung. EVN PAR = Gerade Parit„t, ODD PAR = Unge-
+ rade Parit„t.
+
+NO XONOFF W„hlt XON (CTRL Q) und XOFF (CTRL S) als Protokoll fr die
+ XON/XOFF serielle Schnittstelle. Wird XOFF vom Host gesendet, kann
+ das Terminal noch 255 Zeichen empfangen, bis der Empfangs-
+ puffer berl„uft. Mit NO XONXOFF wird dieses Protokoll
+ ausgeschaltet.
+
+NO RTSCTS W„hlt RTS/CTS als Protokoll fr die serielle Schnittstel-
+ RTS/CTS le. Mit NO RTSCTS wird dieses Protokoll ausgeschaltet.
+
+NO DTRDSR W„hlt DTR/DSR als Protokoll fr die serielle Schnittstel-
+ DTR/DSR le. Mit NO DTRDSR wird dieses Protokoll ausgeschaltet.
+
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+ 7
+#page##--------------------------------- Ende der Seite 7 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#4. Die Statuszeile#ie(3)##off("u")##off("i")##type("elite")#
+
+
+Die Statuszeile enth„lt 5 Felder, die ber die wichtigsten Betriebszust„nde
+des Terminals Auskunft geben. Die Statuszeile ersetzt die (dann in den 'Hin-
+tergrund' verlegte) 24. Zeile. Die Statuszeile kann in der Kommandozeile mit
+STAT ON oder vom Host oder im Local Modus mit
+
+ #ib(1)#<ESC> }#ie(1)# (Hex 1B 7D)
+
+eingeschaltet werden. Ausschalten ebenso mit STATOFF oder
+
+ #ib(1)#<ESC> {#ie(1)# (Hex 1B 7B)
+
+Die Zuordnung der Felder:
+
+#type ("micron")#
+Spooler | Empf„ngerpuffer | Senderpuffer | Bereit/Besch„ftigt | Local/Online
+#type ("elite")#
+
+Kritische Zust„nde werden invers markiert. Dies sind alle F„lle, in denen
+ein Puffer berl„uft.
+Ist dies beim Empfangspuffer der Fall (RX FULL), gehen Daten verloren.
+Sollte der Druckerpuffer voll sein (PR FULL) und das Terminal keine Eingabe
+mehr annehmen, kann man durch l„ngeres Drcken von <SHIFT ESC> Zeichen aus
+dem Druckerpuffer entfernen, damit wieder Platz frei wird.
+Sollte der Senderpuffer voll sein (TX FULL), so liegt das wahrscheinlich
+daran, daá der Host kein XON gesendet hat oder dieses falsch bertragen
+wurde. Durch Drcken von <SHIFT ESC> kann man den Transmitter wieder star-
+ten.
+
+
+#type("8")##center##ib(3)#4.1 Spoolerstatus#ie(3)##type("elite")#
+
+- Ein leeres Feld bedeutet: Der Spooler (Druckerpuffer) ist leer, es ist
+ nichts zum Drucken im Puffer.
+
+- PRINT zeigt an: Der Spooler ist gefllt. Das Terminal ist druckwillig oder
+ der Drucker druckt.
+
+- PR FULL bedeutet: Der Druckerpuffer ist voll. Da das Terminal keine wei-
+ teren Zeichen annimmt bis wieder Platz im Druckerpuffer ist, kann man
+ einzelne Zeichen mit <SHIFT ESC> aus dem Druckerpuffer entfernen bis PRINT
+ im Feld erscheint.
+
+
+#type("8")##center##ib(3)#4.2 Empf„ngerstatus#ie(3)##type("elite")#
+
+- Ein leeres Feld bedeutet: Im Empf„ngerpuffer ist noch Platz.
+
+- RX FULL zeigt an: Es gehen Empfangsdaten verloren, da der Empf„ngerpuffer
+ voll ist.
+
+
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#8
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 8 -----------#
+#center##on("b")#4. Die Statuszeile#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#4.3 Senderstatus#ie(3)##type("elite")#
+
+- TX ON bedeutet: Der Sender ist eingeschaltet. Wenn jetzt ein Zeichen ge-
+ sendet werden muá, wird es sofort auf die serielle Schnittstelle ge-
+ schickt.
+ Ein > vor TX ON zeigt an, daá das Terminal auf Freiwerden der seriellen
+ Schnittstelle wartet.
+
+- TX OFF bedeutet: Der Host hat entweder XOFF gesendet oder die Hardware-
+ fluákontrolle aktiviert, um das Terminal zu stoppen.
+
+- TX FULL zeigt an: Der Senderpuffer ist voll. Das Terminal nimmt keine
+ Eingaben mehr an bis der Puffer wieder frei ist. Dies kann mit <SHIFT ESC>
+ erzwungen werden.
+
+
+#type("8")##center##ib(3)#4.4 Busy - Anzeige#ie(3)##type("elite")#
+
+- READY bedeutet: Der Empf„nger ist empfangsbereit, d.h. im Empfangspuffer
+ sind noch mindestens 256 Zeichen frei und das Terminal hat den Host nicht
+ per Fluákontrolle gestoppt.
+
+- BUSY bedeutet: Der Empf„nger hat dem Host per Fluákontrolle angezeigt, daá
+ nicht mehr gengend Platz im Empfangspuffer war. Die Fluákontrolle wird
+ wieder freigegeben, wenn nur noch 256 Bytes im Empfangspuffer sind.
+ (Warnung: Wenn BUSY angezeigt wird, eine Taste gedrckt wird und der Host
+ #on("u")#nicht#off("u")# empfangsbereit ist, ger„t das Terminal in eine
+ "Deadlock-Situation", die (mit Datenverlust) nur durch einen Hardwarereset
+ abgebrochen werden kann.)
+
+
+#type("8")##center##ib(3)#4.5 Online/Local - Anzeige#ie(3)##type("elite")#
+
+- ONLINE bedeutet: Das Terminal sendet Tasteneingaben an den Host und emp-
+ f„ngt Zeichen und Kommandos vom Host.
+
+- LOCAL bedeutet: Keyboardeingaben erscheinen auf dem Bildschirm bzw. blei-
+ ben innerhalb des Terminals. Escape-Kommandos wirken direkt auf das Ter-
+ minal.
+
+#text end#
+#clear pos#
+#free(5.103519)#
+
+
+ 9
+#page##--------------------------------- Ende der Seite 9 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#5. Die Bedeutung der Tasten#ie(3)##off("u")##off("i")##type("elite")#
+
+
+Zus„tzlich zu den normalerweise von der Tastatur gesendeten Tastencodes sind
+einige weitere zur Verfgung gestellt worden. Beim Apple senden fast alle
+Tasten mit Open-Apple zusammen einen Code mit Bit 7 = 1. Diese werden vom
+Terminal als Funktions- oder Steuertasten interpretiert. Beim Basis wurden
+einige bisher nur einfach belegte Tasten wie <RETURN>, <TAB>, <ESC>, <CE>
+und der Zehnerblock mit Doppelfunktionen ber <SHIFT> versehen.
+
+
+#type("8")##center##ib(3)#5.1 Die Funktions- und Steuertasten#ie(3)##type("elite")#
+
+Zuerst werden die Tastenfunktionen erl„utert fr ein nicht emulierendes
+Terminal. Die TVI-Emulation kann in der Kommandozeile abgeschaltet werden
+(1. Zeile, 2. Feld) oder mit dem Kommando
+
+ #ib(1)#<ESC> <SPACE> 0#ie(1)# (Hex 1B 20 30)
+
+Die Cursortasten liefern beim Basiskeyboard andere Tastencodes als beim
+Applekeyboard. Wird das Bit 7 ignoriert (ausgeblendet), stimmen die Codes
+berein. <TOPLEFT> bezeichnet beim Basiskeyboard die linke obere Eckposi-
+tion des Cursorblocks, <TOPRIGHT> die rechte obere etc.
+
+Basis-Taste Apple-Taste Hex-Code Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+<TAB> <TAB> 09 Der Cursor wird an die n„chste (re-
+ chte) Tabulatorposition gesetzt.
+ Tabulatorpositionen sind alle 8 Spal-
+ ten. Also 1, 9, 17, 25, 33, 41, 49,
+ 57, 65, 73. War der Cursor in Spalte
+ 73 bis 79, dann wird er in die erste
+ Spalte der n„chst tieferen Bild-
+ schirmzeile gesetzt. War der Cursor
+ vorher auch noch in Zeile 24, dann
+ wird der Bildschirminhalt entweder
+ nach oben gescrollt (SCROLL) oder in
+ Homeposition gebracht (PAGE).
+
+<SHIFT TAB> <OA TAB> 89 Back-Tab (Rckw„rtstabulator). Der
+ Cursor wird in die n„chste links vom
+ Cursor befindliche Tabulatorposition
+ gebracht. War der Cursor in Spalte 1,
+ dann steht er jetzt in Spalte 73 der
+ darberliegenden Zeile. War der Cur-
+ sor in Homeposition, dann „ndert sich
+ seine Position nicht.
+
+<SHIFT CE> <OA CTRL X> - Kommandozeile aktivieren. Einzelhei-
+ ten zur Kommandozeile siehe Abschnitt
+ 3.: Die Kommandozeilen.
+
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#10
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 10 -----------#
+#center##on("b")#5. Die Bedeutung der Tasten#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+<CE> <CTRL X> 18 U.a. Kommandozeile verlassen.
+
+<RETURN> <RETURN> 0D Zum Zeilenanfang ohne Zeilenvorschub.
+ Der Cursor steht dann in der ersten
+ Spalte der Zeile.
+
+<SHIFT RETURN> <OA RETURN> 8D Zum Anfang der n„chsten Zeile. Falls
+ der Cursor in der letzten (24.) Bild-
+ schirmzeile war, wird der Bildschir-
+ minhalt entweder nach oben gescrollt
+ (SCROLL) oder in Homeposition ge-
+ bracht (PAGE).
+
+<UP> <UP> 8B/0B Cursor eine Zeile h”her. War der
+ Cursor in der ersten Bildschirmzei-
+ le, „ndert sich seine Position nicht.
+
+<DOWN> <DOWN> 8A/0A Cursor eine Zeile tiefer. War der
+ Cursor in Zeile 24, dann wird der
+ Bildschirminhalt entweder nach oben
+ gescrollt (SCROLL) oder der Cursor in
+ die erste Bildschirmzeile gesetzt
+ (PAGE).
+
+<CTRL V> <CTRL V> 16 Cursor eine Zeile tiefer. War der
+ Cursor in Zeile 24, dann „ndert er
+ seine Position nicht. Die Spalte
+ „ndert sich nicht.
+
+<LEFT> <LEFT> 88/08 Cursor eine Spalte nach links. War
+ der Cursor in der ersten Bildschirm-
+ spalte, dann steht er jetzt in der
+ letzten Spalte der darberliegenden
+ Bildschirmspalte. War der Cursor
+ allerdings in Homeposition, „ndert
+ sich seine Position nicht.
+
+<RIGHT> - 95 Cursor eine Spalte nach rechts. War
+ der Cursor in Spalte 79, dann steht
+ er jetzt in der ersten Spalte der
+ folgenden Zeile. War der Cursor in
+ der letzten Zeile, dann wird der
+ Bildschirminhalt um eine Zeile nach
+ oben gescrollt (SCROLL) oder der
+ Cursor in Homeposition gebracht
+ (PAGE).
+
+<HOME> <OA @> C0 Der Cursor wird in die linke obere
+ Bildschirmecke gebracht (Homeposi-
+ tion).
+
+<SHIFT HOME> <OA P> D0 Bildschirm l”schen und Cursor Home.
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+ 11
+#page##--------------------------------- Ende der Seite 11 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+<DELETE> <DELETE> 7F Dieses Zeichen wird auf dem Bild-
+ schirm als Punktraster dargestellt.
+ Der Host interpretiert es in der
+ Regel als Zeichenl”schbefehl.
+
+<TOPLEFT> <OA CTRL N> 8E Zeichen bei Cursorposition einfgen.
+ Der Cursor „ndert seine Position
+ nicht. Unter dem Cursor steht dann
+ ein Leerzeichen. Das Zeichen in Spal-
+ te 79 geht verloren.
+
+<SHIFT TOPLEFT> <OA CTRL B> 82 Zeichen unter Cursorposition l”schen.
+ In Spalte 79 steht dann ein Leerzei-
+ chen.
+
+<TOPRIGHT> <OA CTRL O> 8F Zeile bei Cursorposition einfgen.
+ Die Cursorposition „ndert sich nicht.
+ Der Inhalt der letzten Bildschirmzei-
+ le ist verloren. Die Zeile in der der
+ Cursor steht wird mit Leerzeichen
+ gefllt.
+
+<SHIFT TOPRIGHT> <OA CTRL C> 83 Zeile in der der Cursor steht l”-
+ schen. Die Cursorposition „ndert sich
+ nicht. Der Inhalt der gel”schten
+ Zeile ist verloren. Die letzte Bild-
+ schirmzeile wird mit Leerzeichen
+ aufgefllt.
+
+<BOTTOMLEFT> <BACKSPACE> 08 Cursor eine Spalte nach links. Die
+ Funktion ist mit der von <LEFT> iden-
+ tisch.
+
+<BOTTOMRIGHT> <RIGHT> 15 Apple: Cursor eine Spalte nach re-
+ chts. Die Funktion ist mit der von
+ <RIGHT> identisch.
+
+<SHIFT BOTTOMRIGHT> <OA RIGHT> EF Diese Taste ist eine programmierbare
+ Funktionstaste (siehe <ESC> e).
+
+<SHIFT DELETE> <OA DELETE> 81 Diese das liefert den
+ Makroparametercode (siehe <ESC> e).
+
+<ESC> <ESC> 1B Leitet eine Escape-Sequenz ein.
+
+<SHIFT ESC> <OA ESC> 9B W„hrend der Funktionstastedefinition
+ wirkt diese Taste wie ein Local
+ Escape, sonst liefert sie den Code 9B.
+ (siehe <ESC> e).
+
+<SHIFT CTRL HOME><OA 0> - Local/Online umschalten.
+
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#12
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 12 -----------#
+#center##on("b")#5. Die Bedeutung der Tasten#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+<CTRL HOME> <OA SPACE> '00' Sendet V24-Break (Hexcode 00 mit
+ Rahmenfehler). Als Rahmenfehler wird
+ das Fehlen des oder der Stopbits
+ bezeichnet (Stopbitpegel ist norma-
+ lerweise 1, bei Break dagegen 0).
+
+#on("u")#Zehnerblock:#off("u")#
+
+<SHIFT 1> ... <OA a> ... E1 ... programmierbare Funktionstasten
+<SHIFT 9> <OA i> E9 " "
+<SHIFT 0> <OA j> EA " "
+<SHIFT .> <OA k> EB " "
+<SHIFT +> <OA l> EC " "
+<SHIFT -> <OA m> ED " "
+
+<SHIFT BOTRIGHT> <OA RIGHT> EF " "
+ (Dieser Code wird beim RESET des
+ Terminals ausgefhrt. Der Benut-
+ zer kann damit das Terminal nach
+ seinen Wnschen konfigurieren.)
+
+
+#on("u")#Funktionstasten:#off("u")#
+
+<F1> ... <OA A> ... C1 " "
+<F15> <OA O> CF " "
+<SHIFT F1> ... <OA Q> ... D1 " "
+<SHIFT F15> <OA _> DF " "
+<CTRL F1> ... <OA !> ... A1 " "
+<CTRL F15> <OA /> AF " "
+<SHIFT CTRL F1>..<OA 1> ... B1 " "
+<SHIFT CTRL F15> <OA ?> BF " "
+
+Die Programmierung der Funktionstasten geschieht mit #ib(1)#<ESC> e#ie(1)#.
+
+
+#type("8")##center##ib(3)#5.2 Die TVI-Emulation#ie(3)##type("elite")#
+
+Wird das Terminal in den TVI-Emulationsmode gebracht, dann senden einige
+Tasten andere Tastencodes oder Codesequenzen. Die Bedeutung der Escape-
+Sequenzen „ndert sich dadurch nicht.
+Der TVI-Modus kann in der Kommandozeile eingeschaltet werden (1. Zeile, 2.
+Feld) oder durch
+
+ #ib(1)#<ESC> <SPACE> 1#ie(1)# (Hex 1B 20 31)
+
+An dieser Stelle erscheinen nur noch die Tastenbezeichnungen des Basiskey-
+boards. Die entsprechenden Tasten, die beim Applekeyboard zu drcken sind,
+kann man im letzten Abschnitt nachlesen.
+
+#text end#
+#clear pos#
+#free(08.701852e-1)#
+
+
+ 13
+#page##--------------------------------- Ende der Seite 13 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Folgende Tasten senden andere Tastencodes:
+
+Taste TVI-Code(sequenz) Bemerkung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+<RIGHT> 0C #ib(1)#<CTRL L>#ie(1)# Cursor nach rechts
+
+<HOME> 1E #ib(1)#<CTRL SHIFT ^>#ie(1)# Cursor in Homeposition
+
+<CLEAR> 1A #ib(1)#<CTRL Z>#ie(1)# Durch Drcken von <SHIFT HOME>
+ Bildschirm l”schen und Cursor Home
+
+<DEL CHAR> 1B 57 #ib(1)#<ESC> W#ie(1)# Durch Drcken von <SHIFT TOPLEFT>
+ Zeichen l”schen
+
+<DEL LINE> 1B 52 #ib(1)#<ESC> R#ie(1)# Durch Drcken von <SHIFT TOPRIGHT>
+ Zeile l”schen
+
+<INS CHAR> 1B 51 #ib(1)#<ESC> Q#ie(1)# Durch Drcken von <TOPLEFT>
+ Zeichen einfgen
+
+<INS LINE> 1B 45 #ib(1)#<ESC> E#ie(1)# Durch Drcken von <TOPRIGHT>
+ Zeile einfgen
+
+<LEFT> 08 #ib(1)#<BACKSPACE>#ie(1)# Cursor nach links
+
+<BACK TAB> 1B 49 #ib(1)#<ESC> I#ie(1)# Durch Drcken von <SHIFT TAB>
+ Rckw„rtstabulator
+
+<DOWN> 0A #ib(1)#<LF>#ie(1)# Cursor nach unten
+
+<UP> 0B #ib(1)#<CTRL K>#ie(1)# Cursor nach oben
+
+<NEWLINE> 1F #ib(1)#<CTRL SHIFT _>#ie(1)# Durch Drcken von <SHIFT RETURN>
+ Waagenrcklauf und Zeilenvorschub
+
+
+#on("u")#Funktionstasten:#off("u")#
+
+Fr jede Funktionstaste, die nicht belegt wurde wird eine Codesequenz der
+Form <CTRL A> <code> <CR> also 01 <code> 0D gesendet. Fr <code> gilt:
+
+Taste <code> Hex-Code
+<F1> ... @ ... 40 ... Diese Tasten sind auf fast allen
+<F11> J 4A TVI-Terminals vorhanden.
+<F12> ... ` ... 60 ...
+<F15> c 63
+
+<SHIFT F1> ... K ... 4B ...
+<SHIFT F15> Y 59
+
+
+#text end#
+#clear pos#
+#free(04.468519e-1)#
+
+
+#right#14
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 14 -----------#
+#center##on("b")#5. Die Bedeutung der Tasten#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#on("u")#Zehnerblock:#off("u")#
+
+<SHIFT 1> ... d ... 64 ...
+<SHIFT 9> l 6C
+<SHIFT 0> m 6D
+<SHIFT .> n 6E
+<SHIFT +> o 6F
+<SHIFT -> p 70
+
+<SHIFT BOTRIGHT> r 72
+
+Alle nicht in dieser Tabelle aufgefhrten Funktionstasten senden den Basis-
+tastencode.
+
+#text end#
+#clear pos#
+#free(16.11019)#
+
+
+ 15
+#page##--------------------------------- Ende der Seite 15 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#6. Der Graphikmodus#ie(3)##off("u")##off("i")##type("elite")#
+
+
+#type("8")##center##ib(3)#6.1 Allgemeines#ie(3)##type("elite")#
+
+Der Graphikmodus kann in der 2. Kommandozeile ein- und ausgeschaltet (Gra-
+phik: GFX, Text: TXT) oder mit dem Kommando
+
+ #ib(1)#<ESC> $#ie(1)# (Hex 1B 24)
+
+eingeschaltet und mit dem Kommando
+
+ #ib(1)#<ESC> %#ie(1)# (Hex 1B 25)
+
+ausgeschaltet.
+
+Die Aufl”sung betr„gt in y-Richtung 280 Punkte und in x-Richtung 192 Punk-
+te, das sind 53760 Punkte.
+
+
+#type("8")##center##ib(3)#6.2 Koordinaten und Parameterbergabe#ie(3)##type("elite")#
+
+Die Koordinaten fr die Graphikkommandos drfen den Bereich von -32768 bis
+32767 berstreichen. Der sichtbare Bereich ist fr die X-Koordinate 0..279
+und fr die Y-Koordinate von 0..191. Der Ursprung (d.h. der Punkt (0,0) )
+des Koordinatensystems ist die linke untere Ecke. Die Graphikroutinen zeic-
+hnen nur innerhalb des sichtbaren Bereichs (Clipping).
+
+
+#type("8")##center##ib(3)#6.2.1 Cursorposition/Fadenkreuz#ie(3)##type("elite")#
+
+Der Graphikcursor ist ein gedachter unsichtbarer Punkt, der sich im gesam-
+ten (auch unsichtbaren) Bereich des Koordinatensystems befinden kann. Wenn
+sich der Cursor im sichtbaren Bereich befindet, dann kann man an der Posi-
+tion ein Fadenkreuz darstellen. Das Fadenkreuz kann mit
+
+ #ib(1)#<CTRL X>#ie(1)# oder #ib(1)#<CE>#ie(1)# (Hex 18)
+
+ein- und ausgeschaltet werden. Das Fadenkreuz wird Exklusiv-Oder (XOR) ge-
+zeichnet. Das heiát, daá die Punkte an der Stelle des Fadenkreuzes inver-
+tiert (umgedreht) werden. Das hat wiederum zur Folge, daá an der Graphik-
+seite nichts ver„ndert wird, wenn zweimal <CTRL X> gesendet wird. Solange
+der Bereich oder die Position des Fadenkreuzes nicht ver„ndert wird, k”nnen
+zwischen den beiden <CTRL X> Kommandos auch andere Graphikkommandos ausge-
+fhrt werden.
+
+
+#text end#
+#clear pos#
+#free(2.140185)#
+
+
+#right#16
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 16 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.2.2 Bin„re oder dezimale Parameter#ie(3)##type("elite")#
+
+Die šbergabe der x/y Koordinaten, eines Radius oder relativer Koordinaten
+und in einigen F„llen auch anderer Parameter, kann auf zwei verschiedene
+Arten erfolgen. Das Terminal erkennt die šbergabeart am ersten Parameterby-
+te:
+Bei dezimalen Parametern ist dies entweder <SPACE>, +, - oder eine Zahl. Bei
+Bin„ren Parametern liegt das H”herwertige Byte (das erste!) im Bereich von
+00..1F oder 3A..FF. Die Festlegung auf dezimale oder bin„re Parameter gilt
+fr beide (X und Y) Koordinaten.
+
+
+#type("8")##center##ib(3)#6.2.2.1 Bin„re Parameter#ie(3)##type("elite")#
+
+Bin„re Parameter sind eine Folge von vier Bytes (mit 8 Bits). Die ersten
+beiden Bytes stellen die X-Koordinate dar, die anderen beiden Bytes die
+Y-Koordinate. Negative Koordinaten oder negative relative Koordinaten wer-
+den durch Bilden des Zweierkomplements dargestellt.
+Zu beachten ist, daá zuerst das h”herwertige (Highbyte) und dann das nie-
+derwertige (Lowbyte) gesendet werden muá.
+
+Der Vorteil der bin„ren Parameter ist, daá die Parameterbergabe schneller
+ist als bei dezimalen Parametern, da weder Host noch Terminal eine Konver-
+tierung vornehmen mssen und die Anzahl der Parameterbytes in der Regel
+geringer ist als bei dezimaler Parameterbergabe.
+
+Der Nachteil ist, daá bei XON/XOFF Fluákontrolle einige Zahlen als XON oder
+XOFF interpretiert werden k”nnen und daá diese Parameter nicht auf Funk-
+tionstasten gelegt werden k”nnen, wenn sie Zeichen > Hex 7F enthalten.
+
+
+#type("8")##center##ib(3)#6.2.2.2 Dezimale Parameter#ie(3)##type("elite")#
+
+Dezimale Parameter bestehen aus einer Folge von ASCII-Zeichen. Die beiden
+Koordinaten werden durch einen Separator (Komma, CR, Semikolon o.„.) ge-
+trennt. Nach dem 2. Parameter steht ein weiterer Separator. An beliebiger
+Stelle in und vor den Zahlen drfen Leerzeichen (<SPACE>) oder Pluszeichen
+(+) stehen, die keine Žnderung des Ergebnisses bewirken. Ein Minuszeichen
+vor einer Zahl negiert sie.
+
+Der Vorteil der dezimalen Parameter ist, daá sie in h”heren Programmier-
+sprachen bequem und lesbar in ein Programm geschrieben werden k”nnen und daá
+keine Steuerzeichen vorkommen, die die XON/XOFF - Fluákontrolle st”ren k”nn-
+ten. Auáerdem k”nnen diese Parameter immer auf Funktionstasten gelegt wer-
+den, da sie keine Codes > Hex 7F enthalten.
+
+Der Nachteil ist wie unter 6.2.2.1 geschrieben, die Zeitdauer der zweima-
+liegen Konvertierung (Host, Terminal) und die in der Regel l„ngeren Parame-
+ter.
+
+
+#text end#
+#clear pos#
+#free(04.468519e-1)#
+
+
+ 17
+#page##--------------------------------- Ende der Seite 17 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.2.3 Absolute oder relative Koordinaten#ie(3)##type("elite")#
+
+Bei den Move- und Drawbefehlen hat man die Wahl zwischen relativen und abso-
+luten Koordinaten.
+
+Absolute Koordinaten setzen den Graphikcursor direkt auf die als Parameter
+angegebene Position. Z.B. <ESC> v 200, 100; setzt den Cursor direkt auf die
+Position X=200, Y=100. Die meisten Programme untersttzen nur absolute Koor-
+dinaten.
+
+Relative Koordinaten werden zur aktuellen Position des Graphikcursors ad-
+diert. Das hat den Vorteil, daá eine Routine nicht zu wissen braucht, wo der
+Graphikcursor gerade steht. Man kann sich zum Beispiel Folgen von relativen
+Move's und Draw's auf Funktionstasten legen, die dann im Localmodus an der
+aktuellen Cursorposition irgendwelche Symbole oder Sonderzeichen zeichnen.
+Z.B. <ESC> q -4, 3; bewegt den Graphikcursor 4 Punkte nach links und 3 Punk-
+te nach oben.
+
+
+#type("8")##center##ib(3)#6.2.4 Byteparameter#ie(3)##type("elite")#
+
+Byteparameter sind solche, die nur aus einem Byte bestehen. Die Werte k”n-
+nen also normalerweise von 0 bis 255 oder Hex 00 bis Hex FF. In den F„llen,
+in denen nicht der ganze Wertebereich genutzt wird, werden nur die nieder-
+wertigsten Bits ausaskiert, die h”herwertigen werden ignoriert, wenn nicht
+ausdrcklich etwas anderes angegeben ist. Im Bereich von 0 bis 7 sind Wert
+und ASCII-Ziffer identisch. Bei Werten groáer als 9 geht das allerdings
+nicht mehr. Sind zum Beispiel die Werte von 0 bis 15 erlaubt, dann kann man
+folgende Tabelle benutzen:
+
+#on("u")#Wert ASCII (Hex) oder Bin„r#off("u")#
+ 0 0 30 00
+ 1 1 31 01
+ 2 2 32 02
+ 3 3 33 03
+ 4 4 34 04
+ 5 5 35 05
+ 6 6 36 06
+ 7 7 37 07
+ 8 8 38 08
+ 9 9 39 09
+ 10 : 3A 0A
+ 11 ; 3B 0B
+ 12 < 3C 0C
+ 13 = 3D 0D
+ 14 > 3E 0E
+ 15 ? 3F 0F
+
+Fr Werte zwischen 0 und 31 benutzt man dann besser die Buchstaben (Groá-
+buchstaben und [\]^_ oder Kleinbuchstaben und {|}~ und <DEL>). Die Zuord-
+nung entnimmt man der ASCII-Tabelle in Anhang A.
+
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#18
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 18 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.3 Die Graphikparameter#ie(3)##type("elite")#
+
+Fr die Linien und Zeichen in der Graphik gibt es verschiedene Darstellungs-
+weisen. Man kann die Strichdicke, die Farbe (auf einem Monochrommonitor die
+Helligkeit), den Linientyp (durchgehend, gepunktet, gestrichelt etc.) und
+die Bitverknpfungen (l”schen, invertieren...) festlegen. Diese Parameter
+werden mit einem Kommando <ESC> O <n> ... ver„ndert.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> O 0#ie(1)# (Hex 1B 4F 30)
+
+werden all diese Parameter auf Defaultwerte zurckgesetzt. Diese Default-
+werte sind: Strichdicke 1, durchgehende Linie, OR-Bitverknpfung (Punkte
+setzen), helle Farbe (gelb). Ausserdem wird die Seite 0 als sichtbare und
+als Arbeitsseite gew„hlt. Es wird auf ganzseitige Graphik geschaltet (falls
+im Graphikmodus).
+
+
+#type("8")##center##ib(3)#6.3.1 Strichdicke#ie(3)##type("elite")#
+
+Die Strichdicke einer Linie ist normalerweise 1. Die Strichdicke 2 zeichnet
+parallel zur ursprnglichen Linie auf beiden Seiten jeweils eine weitere
+Linie der gleichen L„nge. Die Strichdicke 3 zeichnet dann auf beiden Seiten
+jeweils zwei parallele Linien usw. Die Strichdicke kann von 1 bis 15 ge-
+w„hlt werden. Sie wird mit dem Kommando
+
+ #ib(1)#<ESC> O 1#ie(1)# <dicke> (Hex 1B 4F 31 <dicke>)
+
+eingestellt. <dicke> ist ein Byteparameter (Kapitel 6.2.4) mit dem Wertebe-
+reich 1 bis 15.
+
+
+#type("8")##center##ib(3)#6.3.2 Farbe/Helligkeit#ie(3)##type("elite")#
+
+Normalerweise ist Gelb (hell) eingestellt. Die Alternative ist Violett (dun-
+kel). Jeweils 7 nebeneinanderliegene Graphikpunkte haben die gleiche Farbe.
+Auf einem Farbmonitor kann die Farbe auch noch durch den Inhalt dieser 7
+Graphikpunkte bestimmt werden. Der Farbmodus wird von diesem Terminalpro-
+gramm allerdings nicht untersttzt, da sich dann die Aufl”sung in X-Richtung
+halbiert (also nur noch 140 x 192 Punkte).
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> O 2#ie(1)# <n> (Hex 1B 4F 32 <n>)
+
+kann die Helligkeit eingestellt werden. <n> ist ein Byteparameter bei dem
+nur das Bit 0 wichtig ist:
+
+Bit 0 Bedeutung
+ 0 dunkel/Violett <n> ist eine gerade Zahl
+ 1 hell/Gelb <n> ist eine ungerade Zahl
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+ 19
+#page##--------------------------------- Ende der Seite 19 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.3.3 Linientyp#ie(3)##type("elite")#
+
+Der Linientyp ist das "Muster" der Striche. Es gibt 7 vordefinierte Strich-
+muster und ein vom Benutzer definiertes. Der Linientyp (im folgenden auch
+Pattern genannt) wird mit dem Kommando
+
+ #ib(1)#<ESC> O 3#ie(1)# <n> (Hex 1B 4F 33 <n>)
+
+eingestellt. <n> ist ein Byteparameter mit dem Wertebereich von 0 bis 7. Die
+Strichtypen sind <n> folgendermaáen zugeordnet:
+
+#on("u")#<n> Bitmuster (16 Bit) Name #off("u")#
+ 0 unsichtbare Linie
+ 1 ---------------- durchgehende Linie
+ 2 - - - - - - - - gepunktete Linie
+ 3 ---- ---- kurz gestrichelte Linie
+ 4 -------- lang gestrichelte Linie
+ 5 -------- - Strichpunktlinie
+ 6 - - ----- Strich-Punkt-Punkt Linie
+ 7 - - - - - - - - Benutzerdefinierte Linie
+ (Hier Defaultangabe)
+
+Die Bitmuster sind immer 16 Bit lang. Nach einem Movebefehl startet der
+n„chste Draw-Befehl mit dem linkesten (niederwertigsten!) Bit des Bitmu-
+sters. Das Muster wiederholt sich bei l„ngeren Linien zyklisch. Wird zwi-
+schen zwei Draw-Befehlen kein Move-Befehl gegeben, dann setzt der zweite
+Draw-Befehl im Bitmuster nach der gleichen Stelle fort, an der der erste
+Draw-Befehl aufgeh”rt hat. Auch dicke Linien behalten das Linienmuster bei,
+man sollte dann allerdings von gepunkteter auf lang gestrichelte Linie ber-
+gehen, wenn man eine gepunktete dicke Linie haben will.
+
+
+#type("8")##center##ib(3)#6.3.3.1 Selbstdefinierte Linientypen (Pattern)#ie(3)##type("elite")#
+
+Wie in 6.3.3 angemerkt kann ein Linientyp auch vom Benutzer selbst definiert
+werden. Da die L„nge 16 Bit ist, kann man mit den relativen Move's und
+Draw's zusammen gut kleine Bildchen (Icons) zusammenstellen. Eine Hilfe ist
+dabei auch die Bitverknpfung COPY, die im n„chsten Abschnitt erl„utert
+wird. Man legt dazu zuerst das 16 Bit-Pattern als jeweils eine Zeile des
+Icons fest und zieht dann von links nach rechts eine 16 Punkte lange Linie
+mit dem benutzerdefinierten Pattern. Nach einem relativen Move (-16, -1)
+kann der Vorgang fr die n„chste Zeile fortgesetzt werden.
+
+Das benutzerdefinierbare Pattern wird mit dem Kommando
+
+ #ib(1)#<ESC> O 6#ie(1)# <l> <h> (Hex 1B 4F 36 <l> <h>)
+
+festgelegt. <l> ist dabei das niederwertige (Lowbyte) des Bitmusters, <h>
+ist das h”herwertige (Highbyte) des Bitmusters. Wenn das Pattern als Muster
+fr Linien (und nicht fr Icons) benutzt wird, dann sollte man darauf ach-
+ten, daá das Bit 0 im Lowbyte 1 ist, damit man bei kurzen Linien, denen ein
+Move vorangegangen ist, zumindestes einen Punkt sieht.
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#20
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 20 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.3.4 Bitverknpfungen#ie(3)##type("elite")#
+
+šber Bitverknpfungen werden die Punkte auf der Graphikseite ver„ndert. Das
+Linienmuster wird dazu zyklisch punktweise abgetastet und jenachdem ob das
+aktuelle Bit im Linienbitmuster 0 oder 1 ist eine Ver„nderung der Graphik-
+seite durchgefhrt.
+Bis auf die COPY-Funktion wirken die Bitverknpfungen nur auf die Graphik-
+seite, wenn der aktuelle Punkt im Linientyp-Bitmuster 1 ist.
+
+- Das Zeichnen einer sichtbaren Linie mit weiáen Punkten geschieht zum Bei-
+ spiel durch eine OR- (Oder-) Verknpfung.
+
+- Das L”schen einer Linie (also das Zeichnen von "schwarzen" Punkten) ge-
+ schieht mit einer AND- (Und-) Verknpfung (Genau genommen eine NAND-, d.h.
+ negierte AND-Verknpfung).
+
+- Das Invertieren (d.h. Weiáer Punkt wird schwarz, schwarzer Punkt wird
+ weiá) kann man mit einer XOR- (Exklusiv-Oder-) Verknpfung erreichen.
+
+- Fr Icons (siehe 6.3.3.1) und andere Zwecke, gibt es noch die COPY-Funk-
+ tion, die eigentlich keine einzelne Bitverknpfung ist. Ist im Linientyp
+ das aktuelle Bit 0, dann wird in der Graphikseite eine AND-Verknpfung
+ durchgefhrt (d.h. der Punkt wird gel”scht) ist das aktuelle Bit im Li-
+ nientyp 1, dann wird eine OR-Verknpfung durchgefhrt (d.h. der Punkt wird
+ gel”scht). Der Effekt ist, daá genau das Bitmuster des Linientyps in der
+ Graphikseite erscheint ("kopiert" wird), egal was vorher da stand, wo die
+ Linie gezeichnet wurde.
+
+Die Bitverknpfung kann mit dem Kommando
+
+ #ib(1)#<ESC> O 4#ie(1)# <n> (Hex 1B 4F 34 <n>)
+
+festgelegt werden. <n> ist ein Byteparameter mit dem Wertebereich 0 bis 3.
+<n> hat folgende Bedeutung:
+
+<n> Bitverknpfung Verwendung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 OR (Oder) Weiá (auf schwarzem Grund) zeichnen
+ 1 AND (Und) Schwarz (auf weiáem Grund) zeichnen
+ 2 XOR (Exklusiv Oder) Schwarze und Weiáe Punkte umdrehen (invertie-
+ ren)
+ 3 COPY (kopieren) Icons zeichnen oder Bilduntergrund berschrei-
+ ben
+
+
+#text end#
+#clear pos#
+#free(2.986852)#
+
+
+ 21
+#page##--------------------------------- Ende der Seite 21 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.3.5 Multiparametereinstellung#ie(3)##type("elite")#
+
+Die obigen Parameter (bis auf Linientyp) k”nnen alle zugleich mit einem
+Kommando gesetzt werden. Das Kommando lautet
+
+ #ib(1)#<ESC> O 5#ie(1)# <n> (Hex 1B 4F 35 <n>)
+
+<n> ist ein Byteparameter mit dem Wertebereich 0 bis 127. Die Bits sind
+folgendermaáen zugeordnet:
+
+ Bit Bedeutung Werte
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 .. 3 : Strickdicke 1 .. 15
+ 4 .. 5 : Bitverknpfung 0 = OR, 16 = AND, 32 = XOR, 48 = COPY
+ 6 : Farbe/Helligkeit 0 = Violett (dunkel), 64 = Gelb (hell)
+
+Standardeinstellung ist also '<ESC> O 5 A'.
+
+
+#type("8")##center##ib(3)#6.4 Graphikseiten#ie(3)##type("elite")#
+
+Das Terminal verwaltet zwei Graphikseiten mit einer GrӇe von jeweils 8k
+Byte (d.h. 8192 Bytes).
+
+
+#type("8")##center##ib(3)#6.4.1 Die sichtbare Seite und die Arbeitsseite#ie(3)##type("elite")#
+
+Die beiden Graphikseiten k”nnen (mssen aber nicht) getrennt voneinander
+angezeigt und bearbeitet werden. Das kann sinnvoll sein, wenn eine Seite "im
+Hintergrund" aufbereitet werden soll, w„hrend die andere (schon aufbereite-
+te) Seite angezeigt wird. Man kann auch die 80-Zeichen Textseite anzeigen
+und eine oder beide Graphikseiten im Hintergrund aufbereiten. Durch abwec-
+hselndes Umschalten der Arbeits- und Anzeigeseite kann dann der Eindruck
+eines bewegten Bildes erzeugt werden. Um diesen Vorgang zu beschleunigen,
+kann man die Graphikseiten auch auf dem Host vorbereiten und (im Hinter-
+grund) an das Terminal senden (bei 19200 Baud dauert das pro Seite ca. 4.7
+Sekunden).
+
+Die sichtbare und die Arbeitsseite k”nnen mit dem Kommando
+
+ #ib(1)#<ESC> O 7#ie(1)# <n> (Hex 1B 4F 37 <n>)
+
+gew„hlt werden. <n> ist ein Byteparameter mit dem Wertebereich 0 bis 7.
+
+Bit 0 von <n> : Sichtbare Seite (0 oder 1)
+Bit 1 von <n> : Arbeitsseite (0 oder 1)
+Bit 2 von <n> : 1 = 80 Zeichen Textseite wird in den untersten 32 Graphik-
+ zeilen eingeblendet. 0 = Nur Graphikmode.
+
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+#right#22
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 22 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#on("u")#<n> Sichtbar Arbeitsseite Inhalt der untersten 32 Graphikzeilen#off("u")#
+ 0 Seite 0 Seite 0 Graphik (Seite 0)
+ 1 Seite 1 Seite 0 Graphik (Seite 1)
+ 2 Seite 0 Seite 1 Graphik (Seite 0)
+ 3 Seite 1 Seite 1 Graphik (Seite 1)
+ 4 Seite 0 Seite 0 Text
+ 5 Seite 1 Seite 0 Mll
+ 6 Seite 0 Seite 1 Text
+ 7 Seite 1 Seite 1 Mll
+
+
+#type("8")##center##ib(3)#6.4.1.1 80-Zeichen Text und Graphik#ie(3)##type("elite")#
+
+Mit dem in 6.4.1 beschriebenen Kommando k”nnen, wie beschrieben, die unter-
+sten 4 Zeilen der Textzeile (d.h. ggf. auch die Statuszeile) statt der un-
+tersten 32 Graphikzeilen dargestellt werden. Da es nur eine Textseite gibt
+und jeder Graphikseite eine eigene Textseite zugeordnet ist, ist die Mi-
+schung von Text und Graphik in der Graphikseite 1 auf diese Weise nicht
+sinnvoll, da dann in den unstersten 32 Graphikzeilen nur Mll erscheint. Das
+Einblenden wird vom Terminal z.B. genutzt, wenn die Kommandozeile aktiviert
+wird. Man kann zum Beispiel Benutzerhinweise in die untersten 4 Zeilen der
+Textseite schreiben. Zeichenbefehle arbeiten in dem unsichtbaren (ausgeblen-
+deten) Teil der Graphikseite weiter. Das Ergebnis kann man sich beim Wieder-
+-Einblenden ansehen.
+
+
+#type("8")##center##ib(3)#6.4.2 Aufbau einer Graphikseite#ie(3)##type("elite")#
+
+Eine Graphikseite besteht aus 8192 Bytes, von denen 7680 genutzt werden, 512
+sind somit (in der Graphikseite verstreut) ungenutzt. Jedes Byte besteht aus
+einem Farbbit (Bit 7) und 7 angezeigten Graphikbits. Ein gesetztes Bit ent-
+spricht einem sichtbaren Punkt auf dem Bildschirm. Das niederwertigste Bit
+eines Bytes wird am weitesten links angezeigt.
+Jede der 192 Graphikzeilen besteht also aus 40 Bytes. Jeweils 8 Graphikzei-
+len sind zu Reihen zusammengefaát. Es gibt also 24 Reihen. Jede erste Gra-
+phikzeile einer Reihe hat eine Anfangsadresse, die in folgender Tabelle
+aufgelistet ist:
+
+#on("u")#Reihe Adresse Hex | Reihe Adresse Hex | Reihe Adresse Hex#off("u")#
+ 0 0 000 | 8 40 028 | 16 80 050
+ 1 128 080 | 9 168 0A8 | 17 208 0D0
+ 2 256 100 | 10 296 128 | 18 336 150
+ 3 384 180 | 11 424 1A8 | 19 464 1D0
+ 4 512 200 | 12 552 228 | 20 592 250
+ 5 640 280 | 13 680 2A8 | 21 720 2D0
+ 6 768 300 | 14 808 328 | 22 848 350
+ 7 896 380 | 15 936 3A8 | 23 976 3D0
+
+#text end#
+#clear pos#
+#free(1.716852)#
+
+
+ 23
+#page##--------------------------------- Ende der Seite 23 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Um den Offset den n. Graphikzeile in einer Reihe zu finden kann man folgen-
+de Tabelle benutzen:
+
+#on("u")#n Offset (Hex)#off("u")#
+0 0 0000
+1 1024 0400
+2 2048 0800
+3 3072 0C00
+4 4096 1000
+5 5120 1400
+6 6144 1800
+7 7168 1C00
+
+Beispiel:
+ Die Adresse des Punktes (123, 45) soll bestimmt werden.
+ 45 DIV 8 = 5, d.h. Y liegt in Reihe 5 mit Adresse 640 (Dezimal). 45 MOD 8
+ = 5, d.h. Y liegt in der n=5. Graphikzeile von Reihe 5. Der
+ Y-Offset also 5120.
+ 123 DIV 7 = 17 d.h. X liegt im Byte mit X-Offset 17.
+ Die Adresse des Punktes ist also im Byte 17 + 5120 + 640 = 5777.
+ 123 MOD 7 = 4 d.h. Bit 4 in Byte 5777 ist der gesuchte Punkt.
+
+
+#type("8")##center##ib(3)#6.4.3 Operationen auf den Graphikseiten#ie(3)##type("elite")#
+
+Hier sollen nur die Operationen erl„utert werden, die nicht in andere Kate-
+gorien (z.B. L”schen, Linien zeichnen etc.) passen.
+
+Es gibt ein universelles Kommando, mit dem zwei Graphikseiten invertiert,
+kopiert, gemischt und miteinander logisch verknpft werden k”nnen. Ver„n-
+dert wird bei diesem Kommando nur die Arbeitsseite.
+
+Das Kommando lautet
+
+ #ib(1)#<ESC> !#ie(1)# <n> (Hex 1B 21 <n>)
+
+#text end#
+#clear pos#
+#free(6.796852)#
+
+
+#right#24
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 24 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+<n> ist dabei ein Byteparameter mit dem Wertebereich 0 bis 15 und hat fol-
+gende Bedeutung:
+
+<n> Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 Keine Ver„nderung. Kopiert die Arbeitsseite in sich selbst (F„rbt die
+ Arbeitsseite allerdings mit der aktuellen Farbe/Helligkeit).
+ 1 Die Arbeitsseite wird invertiert.
+ 2 Mischt beide Seiten zusammen (OR Verknpfung).
+ 3 Mischt beide Seiten zusammen (OR) und invertiert das Ergebnis.
+ 6 Bildet den Durchschnitt beider Seiten (AND Verknpfung).
+ 7 Bildet den Durchschnitt beider Seite (AND) und invertiert das Ergebnis
+10 Es sind die Punkte gesetzt, die in beiden Seiten verschieden sind (XOR
+ Verknpfung).
+11 Es sind die Punkte gesetzt, die in beiden Seiten gleich sind (d.h. das
+ Inverse von <n>=10).
+14 Kopiert die andere Seite in die Arbeitsseite.
+15 Kopiert das Inverse von der anderen Seite in die Arbeitsseite.
+
+Andere Werte fr <n> wiederholen sich in der Tabelle. Die ganze Arbeitssei-
+te hat nach der Operation die gew„hlte Farbe/Helligkeit.
+
+
+#type("8")##center##ib(3)#6.4.4 Laden einer Graphikseite vom Host#ie(3)##type("elite")#
+
+Graphikseiten k”nnen ganz oder teilweise vom Host geladen werden. Das k”n-
+nen auf dem Terminal erstellte und dann an den Host gesendete (Teil-)
+Graphiken sein, aber auch auf dem Host erstellte. In diesem Fall ist das
+Kapitel 6.4.2 (Aufbau einer Graphikseite) interessant.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> /#ie(1)# <ll> <lh> <al> <ah> <b...>
+ (Hex 1B 2F ...)
+
+kann eine Seite oder ein Teil einer Seite in die Arbeitsseite geladen wer-
+den. <lh>, <ll>, <ah>, <al> und <p...> sind Byteparameter (8 Bits). <ll> und
+<lh> bilden zusammen die bin„re L„nge, d.h. die Anzahl der Datenbytes
+<p...>, die die Graphik enthalten. Die L„nge kann von 0 bis Hex 2000 (dezi-
+mal 8192) reichen. Die Adresse, durch <al> und <ah> gebildet, darf von 0 bis
+Hex 1FFF reichen. Zus„tzlich gilt, daá die Summe von L„nge und Adresse nicht
+gr”áer als Hex 2000 sein darf, da sonst auáerhalb der Graphikseite geladen
+wrde. In einem dieser Fehlerf„lle werden die folgenden Graphikdatenbytes
+ignoriert. Die Datenbytes werden dann als Kommandos interpretiert, was zu
+unvorhersehbaren Reaktionen des Terminals fhrt.
+
+
+#text end#
+#clear pos#
+#free(2.140185)#
+
+
+ 25
+#page##--------------------------------- Ende der Seite 25 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.4.5 Graphik auf Diskette speichern/laden#ie(3)##type("elite")#
+
+Um Graphikseiten, zum Besipiel fr Pr„sentationen, unabh„ngig vom Host auf
+dem Bildschirm darstellen zu k”nnen, benutzt man das Kommando
+
+ #ib(1)#<ESC> S#ie(1)# <n> (Hex 1B 53 <n>).
+
+Man kann bis zu 8 verschiedene Graphikseiten vorbereiten, auf Diskette spei-
+chern und zu einem sp„teren Zeitpunkt wieder in das Terminal zurckladen.
+Dieses Kommando wird auch verwendet, um eine Textseite auf Diskette zu
+schreiben oder von Diskette zu lesen. <n> ist ein Byteparameter mit dem
+Wertebereich 0 bis 31, wobei die Bits folgendermaáen belegt sind:
+
+Bit 0..2 : "Fachnummer" der Graphikseite auf der Diskette (0 bs 7)
+Bit 3 : Bei Graphikseiten immer 1 (Bei Textseiten 0)
+Bit 4 : 0 heiát: die Graphikseite wird von der Diskette gelesen,
+ 1 heiát: die Graphikseite wird auf die Diskette geschrieben.
+
+Wird die Graphikseite auf die Diskette geschrieben, dann wird eine eventuell
+schon in diesem "Fach" vorhandene Graphikseite berschrieben.
+
+Wie bei allen Graphikkommandos, bezieht sich dieses Kommando nicht unbedingt
+auf die sichtbare Graphikseite, sondern auf die Arbeitsseite.
+
+Beispiele:
+ <ESC> S <CTRL H> liest die Graphikseite in Fach 0 in die Arbeitsseite.
+ <ESC> S <CTRL X> schreibt die Arbeitsseite in Fach 0 der Diskette.
+
+Da das Lesen einer Graphikseite von Diskette mit ca. 1.1 Sekunden, um eini-
+ges schneller als der Datentransfer vom Host ist, sollte man bewegte Graphi-
+ken auf Diskette vorbereiten und sie dann mit verschr„nkter Arbeits- und
+Sichtbarkeitsseite anzeigen.
+Z.B.: Seite 1 als Arbeitsseite w„hlen, Seite 0 als sichtbare Seite. Graphik
+ von Diskette laden (wird in Seite 1 (= Arbeitsseite) geladen) Seite 1
+ als sichtbare Seite w„hlen, Seite 0 jetzt als Arbeitsseite w„hlen. Die
+ n„chste Graphikseite wird von der Diskette in die Seite 1 geladen etc.
+ Bei dieser Vorgehensweise scheinen šberg„nge kontinuierlich zu sein.
+
+Fr Insider: Eine Graphikseite belegt zwei Tracks (8k). Die 8 Graphikseiten
+ befinden sich auf den Tracks 10 bis 25 in aufsteigender Reihen-
+ folge.
+
+
+#type("8")##center##ib(3)#6.5 Textdarstellung im Graphikmodus#ie(3)##type("elite")#
+
+Nicht nur auf der 80-Zeichen Textseite k”nnen Buchstaben und Zeichen darge-
+stellt werden, sondern auch auf den Graphikseiten. Die Aufl”sung ist zwar
+nicht so groá wie auf der reinen Textseite, aber die Anzahl der verschiede-
+nen Darstellungsm”glichkeiten ist sehr viel gr”áer. Fast alle Kommandos, die
+in der Textseite angewandt werden k”nnen, haben in der Graphikseite die
+gleiche Funktion.
+
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#26
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 26 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Textdarstellung in der Graphikseite ist haupts„chlich zum Beschriften von
+Graphiken oder zum Drucken von šberschriften etc. vorgesehen. Da aber fast
+alle Textkommandos (Delete/Insert Line/Character fehlt) auch im Graphikmo-
+dus zur Verfgung stehen, kann man auch im Graphikmodus Textverarbeitung
+oder Editor benutzen.
+
+
+#type("8")##center##ib(3)#6.5.1 Zeichendarstellung#ie(3)##type("elite")#
+
+Die normale GrӇe eines Zeichens ist 6 x 10 Punkte (x * y), damit lassen
+sich 46 x 19 Zeichen (874 Zeichen) voll auf dem Bildschirm darstellen. Wenn
+die GrӇe mit einem Kommando auf 5 x 8 Punkte verringert wird, dann lassen
+sich 56 x 24 Zeichen (1344 Zeichen) auf dem Bildschirm darstellen. Komfor-
+table Textverarbeitung l„át sich damit natrlich nicht machen, zumal die
+Geschwindigkeit, mit der die Zeichen auf den Bildschirm geschrieben werden
+gegenber der der reinen Textseite langsamer ist.
+
+
+#type("8")##center##ib(3)#6.5.1.1 ZeichengrӇe und Schreibrichtung#ie(3)##type("elite")#
+
+Die Zeichen k”nnen in verschiedenen Gr”áen und unter verschiedenen Winkeln
+auf den Bildschirm geschrieben werden. Damit ist auch ein Schreiben von
+rechts nach links mit auf dem Kopf stehenden Zeichen m”glich.
+Bei normaler Schreibrichtung (waagerecht von links nach rechts) befindet
+sich die linke untere Ecke eines Zeichens an der Position des Graphikcur-
+sors. Nach dem Zeichnen des Zeichens befindet sich der Graphikcursor hinter
+der rechten unteren Ecke des Zeichens. Da sich die Zeichen aus Vektoren
+(Linien) zusammensetzen und nicht aus einer festen Punktmatrix, k”nnen sie
+schnell beliebig gedreht und vergr”ssert (und verkleinert) werden. Der Dreh-
+winkel ist wie bei allen Graphikwinkelangaben in 5 Grad Schritten anzugeben.
+Die Zuordnung der Winkel zu den Parameterwerten oder ASCII-Zeichen ist im
+Anhang A angegeben.
+
+Das Kommando
+
+ #ib(1)#<ESC> N#ie(1)# <b> <h> <w> (Hex 1B 4E <b><h><w>)
+
+stellt Breite, H”he und Drehwinkel der Zeichen ein. Alle Parameter sind
+Byteparameter mit dem Wertebereich 0 bis 255. Mit einem Parameter Hex 00
+kann der Defaultwert (Standardwert) fr den jeweiligen Parameter eingestellt
+werden.
+<b> bezeichnet die Zeichenbreite in Punkten. Standardwert ist 6.
+<h> bezeichnet die Zeichenh”he in Punkten. Standardwert ist 10.
+<w> bezeichnet den Drehwinkel in 5 Grad Schritten. Standardwert ist 0.
+
+#text end#
+#clear pos#
+#free(2.986852)#
+
+
+ 27
+#page##--------------------------------- Ende der Seite 27 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Einige ausgezeichnet Werte fr <w> sind:
+<w> Richtung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 Waagerecht von links nach rechts (Ost)
+ 9 Schr„g nach unten rechts (Sd-Ost)
+18 Senkrecht von oben nach unten (Sd)
+27 Schr„g nach unten links (Sd-West)
+36 Waagerecht (auf dem Kopf stehend) von rechts nach links (West)
+45 Schr„g nach oben links (Nord-West)
+54 Senkrecht von unten nach oben (Nord)
+63 Schr„g von nach oben rechts (Aufw„rts) (Nord-Ost)
+72... Wie 0 ...
+
+
+#type("8")##center##ib(3)#6.5.1.2 Dicke, Farbe etc.#ie(3)##type("elite")#
+
+Buchstaben werden mit Vektoren (Linien) gezeichnet. Die gleichen Parameter,
+die fr Striche eingestellt werden, wirken dann auch auf die Zeichen. M”g-
+liche Parameter sind Farbe, Linientyp, Strichdicke und Bitverknpfung. Mit
+dem Kommando
+
+ #ib(1)#<ESC> O 0#ie(1)# (Hex 1B 4F 30)
+
+werden alle diese Parameter auf Standardwerte zurckgesetzt. Die Standard-
+werte sind in Kapitel 6.3 erl„utert. Die Beschreibung des Kommandos zur
+Einstellung der Zeichenfarbe ist in Kapitel 6.3.2 beschrieben, das Einstel-
+len der Zeichendicke in Kapitel 6.3.1, das Einstellen des Linientyps in
+Kapitel 6.3.3 und das Einstellen der Bitverknpfung ist in Kapitel 6.3.4
+beschrieben. Auch fr die Zeichendarstellung k”nnen mehrere dieser Parame-
+ter zugleich mit einem Kommando eingestellt werden. Das Multiparameterkom-
+mando ist in Kapitel 6.3.5 beschrieben.
+
+
+#type("8")##center##ib(3)#6.5.1.3 Zeichens„tze und Attribute#ie(3)##type("elite")#
+
+Žhnlich wie bei der 80-Zeichen Textdarstellung k”nnen Zeichensatz und Text-
+attribute eingestellt werden. Mit dem Kommando
+
+ #ib(1)#<ESC> z#ie(1)# <n> (Hex 1B 7A <n>)
+
+kann einer der beiden Zeichens„tze USA oder GER (ASCII und Deutsch) gew„hlt
+werden. Ein griechischer Zeichensatz ist unabh„ngig von beiden immer vor-
+handen.
+<n> ist ein Byteparameter mit dem Wertebereich 0 bis 15, im Graphikmodus
+sind aber nur die beiden folgende Werte sinnvoll:
+
+#on("u")#<n> Zeichensatz Abweichende Zeichen#off("u")#
+ 2 Deutsch Ž ™ š „ ” á
+ 4 Ascii [ \ ] { | } ~
+
+#text end#
+#clear pos#
+#free(08.701852e-1)#
+
+
+#right#28
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 28 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Auáerdem kann der Zeichensatz im ersten Feld der ersten Kommandozeile ein-
+gestellt werden. Im amerikanischen Zeichensatz treten die deutschen Buch-
+staben auáerdem im Bereich von 214 bis 219 und 251 auf. Der Graphikzeichen-
+satz ist im Anhang abgebildet.
+
+Wie im Textmodus k”nnen Attribute mit dem Kommando
+
+ #ib(1)#<ESC> G#ie(1)# <n> (Hex 1B 47 <n>)
+
+eingestellt werden. <n> ist ein Byteparameter mit dem Wertebereich 0, 1, 4
+und 5. Die Werte von <n> sind folgendermaáen zugeordnet:
+
+#on("u")#<n> Bedeutung #off("u")#
+ 0 Normaler Text (sichtbar und aufrecht)
+ 1 Unsichtbarer Text (Nur der Cursor wird bewegt)
+ 4 Kursivschrift, die Zeichen werden schr„ggestellt
+ 5 Wie 1 (unsichtbarer Text)
+
+Das Kommando
+
+ #ib(1)#<ESC> )#ie(1)# (Hex 1B 29)
+
+hat wie im Textmodus die gleiche Bedeutung wie <ESC> G 4. Damit wird im
+Graphikmodus die Kursivschrift eingeschaltet. Mit dem Kommando
+
+ #ib(1)#<ESC> (#ie(1)# (hex 1B 28)
+
+wird die Kursivschrift wieder ausgeschaltet. Im Textmodus invers hervorge-
+hobene Textstellen werden im Graphikmodus also durch Kursivschrift hervor-
+gehoben.
+Steht rechts neben der Zeichenspalte mit einem Kursivzeichen ein nicht kur-
+sives Zeichen, dann wird das rechte Zeichen m”glicherweise etwas berschrie-
+ben, da es in den oberen Teil des Kursivzeichens hineinragt. Das kann ver-
+mieden werden, wenn nach dem Ausschalten der Kursivschrift ein Leerzeichen
+ausgegeben wird.
+
+
+#type("8")##center##ib(3)#6.5.1.4 Zeichen berschreiben#ie(3)##type("elite")#
+
+Im 80-Zeichen Textmodus kann man Zeichen einfach bereinandertippen, das
+zweite Zeichen ersetzt dann das erste. Im Graphikmodus sollen Texte auch mit
+in eine Zeichnung geschrieben werden k”nnen, ohne daá Teile von Linien even-
+tuell gel”scht werden. Dieser Modus bringt auáerdem eine etwas gr”áere
+Schreibgeschwindigkeit mit sich. Es ist aber auch m”glich, daá die Fl„che,
+in die das Zeichen geschrieben werden soll, vorher gel”scht wird, um ein
+sauberes Schriftbild zu erzielen. Mit dem Kommando
+
+ #ib(1)#<ESC> &#ie(1)# (Hex 1B 26)
+
+kann man das vorherige L”schen einschalten, mit dem Kommando
+
+ #ib(1)#<ESC> '#ie(1)# (Hex 1B 27)
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+ 29
+#page##--------------------------------- Ende der Seite 29 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+wird der Modus des šberschreibens ausgeschaltet.
+
+Bei Kursivzeichen wird eine rautenf”rmige Fl„che gel”scht oder gefllt (wenn
+Bitverknpfung AND eingeschaltet ist). Bei normalen Zeichen wird eine re-
+chteckige Fl„che, der mit #ib(1)#<ESC> N#ie(1)# eingestellten Breite und H”he, gel”scht
+oder gefllt. Zu beachten ist, daá das L”schen/Fllen nur bei waagerechter
+Schreibrichtung von links nach rechts funktioniert.
+
+Da die GrӇe der Zeichen in weiten Grenzen mit <ESC> N eingestellt werden
+kann, ist es auch m”glich mit dem durch <ESC> & eingeschalteten Ersetzungs-
+modus schnell rechteckige Fl„chen zu fllen oder zu l”schen, wenn nicht auf
+das sp„ter beschriebene Fllkommando fr beliebige Fl„chen zurckgegriffen
+werden soll. Dazu schaltet man mit dem Kommando <ESC> O 4 1 die Bitverkn-
+pfung AND (fr Fllen) ein und gibt dann einfach ein Leerzeichen aus, das
+dann invertiert dargestellt wird.
+
+
+#type("8")##center##ib(3)#6.5.2 Textkommandos im Graphikmodus#ie(3)##type("elite")#
+
+Fast alle Textkommandos des 80-Zeichen Textmodus wirken auch im Graphikmo-
+dus. Einige Kommandos, wie Zeichen senden, Zeile senden, Cursorposition
+senden, haben im Graphikmodus andere Funktionen und haben deshalb andere
+Escape-Sequenzen. Textkommandos, die nicht im Graphikmodus vorhanden sind:
+<ESC> I (Backtab), <ESC> j (Reverse Linefeed), <ESC> E (Insert Line), <ESC>
+Q (Insert Character), <ESC> R (Delete Line), <ESC> W (Delete Character).
+
+
+#type("8")##center##ib(3)#6.5.2.1 Die Cursorpositionierung#ie(3)##type("elite")#
+
+Die Cursorpositionierungskommandos (UP, DOWN, LEFT, RIGHT) wirken im Gra-
+phikmodus in die aktuelle Schreibrichtung. Beispiel: Wenn als Schreibwinkel
+180 Grad eingestellt wurde (Winkel 36, also von rechts nach links auf dem
+Kopf schreiben), dann muá man, um einen Backspace (d.h. ein Zeichen zurck)
+auszufhren, nicht <RIGHT> sondern wie bei normaler Schreibrichtung blich,
+<LEFT> drcken. Die vier Cursorsteuertasten funktionieren fr beliebige
+Schreibrichtungen. Alle anderen Steuertasten beziehen sich immer auf waage-
+rechte Schreibrichtung von links nach rechts.
+
+Alle Steuertasten bercksichtigen die Zeichengr”áe (Breite und H”he). Auch
+die Graphikseite wird am Ende der letzten Zeile um soviele Graphikzeilen
+gescrollt, wie ein Zeichen hoch ist.
+
+#text end#
+#clear pos#
+#free(4.256852)#
+
+
+#right#30
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 30 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Folgende Steuerkommandos/Tasten wirken im Graphikmodus:
+
+Basis-Taste Apple-Taste Hex-Code Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+#ib(1)#<TAB>#ie(1)# <TAB> 09 Der Cursor wird an die n„chste (re-
+ chte) Tabulatorposition gesetzt.
+ Tabulatorpositionen sind alle 8 Spal-
+ ten (wie im Textmodus). Liegt die
+ n„chste Tabulatorposition auáerhalb
+ des sichtbaren Bereichs, dann steht
+ der Cursor jetzt da.
+
+#ib(1)#<SHIFT CE>#ie(1)# <OA CTRL X> - Kommandozeile aktivieren.
+ Einzelheiten zur Kommandozeile siehe
+ Abschnitt 3.: Die Kommandozeilen.
+
+#ib(1)#<CE>#ie(1)# <CTRL X> 18 u.a. Kommandozeile verlassen.
+
+#ib(1)#<RETURN>#ie(1)# <RETURN> 0D Zum Zeilenanfang ohne Zeilenvorschub.
+ Der Cursor steht dann in der ersten
+ Spalte der Zeile.
+
+#ib(1)#<SHIFT RETURN>#ie(1)# <OA RETURN> 8D Zum Anfang der n„chsten Zeile. Falls
+ der Cursor in der letzten sichtbaren
+ Bildschirmzeile war, wird der Bild-
+ schirminhalt entweder nach oben ge-
+ scrollt (SCROLL) oder in Homeposition
+ gebracht (PAGE).
+
+#ib(1)#<UP>#ie(1)# <UP> 8B/0B Cursor eine Zeile h”her (bzw. ber
+ die Zeile). War der Cursor in der
+ ersten sichtbaren Bildschirmzeile,
+ dann steht er jetzt im unsichtbaren
+ Bereich.
+
+#ib(1)#<DOWN>#ie(1)# <DOWN> 8A/0A Cursor eine Zeile tiefer (bzw. "un-
+ ter" die Zeile). War der Cursor in
+ der letzten sichtbaren Zeile, dann
+ wird der Inhalt des Graphikbild-
+ schirms nach oben gescrollt, d.h. die
+ obersten Zeilen werden gel”scht (im
+ SCROLL-Modus) oder der Cursor in die
+ erste Zeile gesetzt (im PAGE-Modus).
+
+#ib(1)#<CTRL V>#ie(1)# <CTRL V> 16 Cursor eine Zeile tiefer (bzw. "un-
+ ter" die Zeile). War der Cursor in
+ der letzten Zeile, dann „ndert er
+ seine Position nicht. Die Spalte
+ „ndert sich nicht.
+
+#text end#
+#clear pos#
+#free(08.701852e-1)#
+
+
+ 31
+#page##--------------------------------- Ende der Seite 31 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#ib(1)#<LEFT>#ie(1)# <LEFT> 88/08 Cursor eine Spalte nach links (bzw.
+ entegegen der Schreibrichtung). War
+ der Cursor in der ersten sichtbaren
+ Bildschirmspalte, dann ist er jetzt
+ unsichtbar "links" davon.
+
+#ib(1)#<RIGHT>#ie(1)# - 95 Cursor eine Spalte nach rechts (bzw.
+ in Schreibrichtung). War der Cursor
+ in der letzten sichtbaren Spalte,
+ dann befindet er sich jetzt auáer-
+ halb des Bildschirms. Im Gegensatz
+ zum Textmodus wird kein Linefeed oder
+ Scroll ausgefhrt.
+
+#ib(1)#<HOME>#ie(1)# <OA @> C0 Der Cursor wird in die linke obere
+ Bildschirmecke gebracht (Homeposi-
+ tion).
+
+#ib(1)#<SHIFT HOME>#ie(1)# <OA P> D0 Bildschirm l”schen und Cursor Home.
+
+#ib(1)#<DELETE>#ie(1)# <DELETE> 7F Dieses Zeichen wird auf dem Bild-
+ schirm nicht dargestellt. Der Host
+ interpretiert es in der Regel als
+ Zeichenl”schbefehl.
+
+#ib(1)#<BOTTOMLEFT>#ie(1)# <BACKSPACE> 08 Cursor eine Spalte nach links (bzw.
+ entgegen der Schreibrichtung). Die
+ Funktion ist mit der von <LEFT> iden-
+ tisch.
+
+#ib(1)#<BOTTOMRIGHT>#ie(1)# <RIGHT> 15 Apple: Cursor eine Spalte nach re-
+ chts (bzw. in Schreibrichtung). Die
+ Funktion ist mit der von <RIGHT>
+ identisch.
+
+#ib(1)#<ESC>#ie(1)# <ESC> 1B Leitet eine Escape-Sequenz ein.
+
+#ib(1)#<SHIFT CTRL HOME>#ie(1)#<OA 0> - Local/Online umschalten
+
+#ib(1)#<CTRL HOME>#ie(1)# <OA SPACE> '00' Sendet V24-Break (Hexcode 00 mit
+ Rahmenfehler). Als Rahmenfehler wird
+ das Fehlen des oder der Stopbits
+ bezeichnet (Stopbitpegel ist norma-
+ lerweise 1, bei Break dagegen 0).
+
+Unbelegte Funktionstasten erzeugen Graphikzeichen, die im Anhang A nachge-
+sehen werden k”nnen.
+
+
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+#right#32
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 32 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.5.2.2 L”schbefehle#ie(3)##type("elite")#
+
+Das Kommando (Clear to End Of Line)
+
+ #ib(1)#<ESC> T#ie(1)# (Hex 1B 54)
+
+l”scht ab der aktuellen Cursorposition bis zum Zeilenende. Die H”he des
+gel”schten Balkens entspricht der Buchstabenh”he. Der Balken wird unabh„n-
+gig von der Bitverknpfung immer gel”scht. Der Balken wird unabh„ngig von
+der Schreibrichtung immer waagerecht gel”scht.
+
+Das Kommando (Clear to End Of Page)
+
+ #ib(1)#<ESC> Y#ie(1)# (Hex 1B 59)
+
+l”scht den Graphikbildschirm von der aktuellen Cursorposition an bis zum
+Bildschirmende. Auch dieses Kommando l”scht unabh„ngig von der gew„hlten
+Bitverknpfung und Schreibrichtung immer waagerecht.
+
+Die Kommandos
+
+ #ib(1)#<ESC> *#ie(1)# (Hex 1B 2A)
+ #ib(1)#<ESC> ,#ie(1)# (Hex 1B 2C)
+ #ib(1)#<ESC> +#ie(1)# (Hex 1B 2B)
+ #ib(1)#<ESC> :#ie(1)# (Hex 1B 3A)
+ #ib(1)#<CTRL Z>#ie(1)# (Hex 1A)
+
+l”schen den Bildschirm und bringen den Graphikcursor in Homeposition, d.h.
+eine Buchstabenh”he unter dem oberen Bildschirmrand.
+
+Das Kommando
+
+ #ib(1)#<ESC> y#ie(1)# (Hex 1B 79)
+
+l”scht den Bildschirm und bringt den Graphikcursor in die linke untere Ecke,
+d.h. den Ursprung des Koordinatensystems.
+
+
+#type("8")##center##ib(3)#6.6 Die Graphikkommandos#ie(3)##type("elite")#
+
+
+#type("8")##center##ib(3)#6.6.1 Draw's und Move's#ie(3)##type("elite")#
+
+Draw's sind Zeichenbefehle, die eine Linie zeichnen und den Cursor an den
+Endpunkt der Linie positionieren. Move's positionieren nur den Cursor und
+zeichnen nicht. Bei allen Draw's ist der Anfangspunkt der Linie die aktuel-
+le Cursorposition. Die Endposition kann relativ, absolut oder mit einem
+relativen Winkel angegeben werden. Der Befehl zum Setzen/L”schen eines Punk-
+tes wurde mit in diese Befehlskategorie aufgenommen.
+
+
+#text end#
+#clear pos#
+#free(04.468519e-1)#
+
+
+ 33
+#page##--------------------------------- Ende der Seite 33 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.6.1.1 Punkt setzen#ie(3)##type("elite")#
+
+Der Befehl zum Setzen eines Graphikpunktes ist ein absoluter Befehl, d.h.
+die Koordinaten des Punktes folgen dem Kommando. Die Position des Graphik-
+cursors wird durch diesen Befehl nicht ver„ndert.
+
+Das Kommando
+
+ #ib(1)#<ESC> m#ie(1)# <x, y;> (Hex 1B 6D <x, y;>)
+
+setzt einen Punkt an die Position x/y, wenn diese innerhalb des sichtbaren
+Bereichs liegt. <x, y;> sind dezimale oder bin„re Koordinaten. Das Aussehen
+des Punktes kann durch Farbe/Helligkeit oder Bitverknpfung festgelegt wer-
+den. Mit einer AND-Bitverknpfung wird der angegebene Punkt gel”scht, mit
+einer OR oder COPY Bitverknpfung wird der angegebene Punkt gesetzt, mit
+einer XOR Bitverknpfung wird sein Zustand umgedreht (invertiert).
+Soll ein dicker Punkt gezeichnet werden, dann kann man den (relativen)
+Draw-Befehl <ESC> r 0, 0; benutzen, der an die Position des Graphikcursors,
+einen Punkt der eingestellten Dicke zeichnet.
+
+
+#type("8")##center##ib(3)#6.6.1.2 Move-Befehle#ie(3)##type("elite")#
+
+Den Move-Befehl gibt es in zwei Versionen, einer relativen und einer abso-
+luten. Das Kommando fr einen absoluten Move lautet
+
+ #ib(1)#<ESC> v#ie(1)# <x, y;> (Hex 1B 76 <x, y;>)
+
+Dabei sind <x, y;> dezimale oder bin„re Koordinaten, die die neue Position
+des Graphikcursors bezeichnen. Diese Position muá nicht im sichtbaren Be-
+reich liegen, sondern kann auch auáerhalb des Fensters liegen. Der Wertebe-
+reich von <x> und <y> ist -32768 bis 32767.
+
+Das Kommando fr den relativen Move-Befehl lautet
+
+ #ib(1)#<ESC> q#ie(1)# <x, y;> (Hex 1B 71 <x, y;>)
+
+Bei diesem Befehl werden die Werte von <x> und <y>, die auch den gesamten
+Wertebereich von -32768 bis 32767 berstreichen drfen, zu den Koordinaten
+des Graphikcursors addiert. Auch hier darf die neue Position des Graphik-
+cursors auáerhalb des sichtbaren Bereichs liegen.
+
+Die Move-Befehle setzen auáerdem das Bitmuster fr den Linientyp wieder auf
+den Startwert zurck, damit der n„chste Draw-Befehl auch mit einem Punkt
+beginnt.
+
+
+#text end#
+#clear pos#
+#free(2.140185)#
+
+
+#right#34
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 34 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.6.1.3 Draw-Befehle#ie(3)##type("elite")#
+
+Ebenso wie den Move-Befehl gibt es auch den Draw-Befehl in zwei Versionen,
+einer relativen und einer absoluten. Das Kommando fr einen absoluten Draw
+lautet
+
+ #ib(1)#<ESC> w#ie(1)# <x, y;> (Hex 1B 77 <x, y;>)
+
+Dabei sind <x, y;> dezimale oder bin„re Koordinaten, die die Endposition der
+Linie bezeichnen. Diese Position muá nicht im sichtbaren Bereich liegen,
+sondern kann auch auáerhalb des Fensters liegen. Der unsichtbare Teil der
+Linie wird dann "geclippt". Der Wertebereich von <x> und <y> ist -32768 bis
+32767.
+
+Das Kommando fr den relativen Draw-Befehl lautet
+
+ #ib(1)#<ESC> r#ie(1)# <x, y;> (Hex 1B 72 <x, y;>)
+
+Bei diesem Befehl werden die Werte von <x> und <y>, die auch den gesamten
+Wertebereich von -32768 bis 32767 berstreichen drfen, zu den Koordinaten
+des Graphikcursors addiert, die dann die Endposition der Linie bilden. Auch
+hier darf die Endposition der Linie auáerhalb des sichtbaren Bereichs lie-
+gen.
+
+
+#type("8")##center##ib(3)#6.6.1.4 Turtle-Graphik#ie(3)##type("elite")#
+
+Turtle-Graphik (Schildkr”ten-Graphik, obwohl hier keine Schildkr”te sicht-
+bar ist) wird zur Erzeugung von "rekursiven" Graphiken, die mit L„ngen und
+Winkelangaben, statt mit x/y-Koordinaten, arbeiten ben”tigt. Man stellt sich
+dazu eine Schildkr”te vor, die auf ihrem Weg ber den Bildschirm eine sicht-
+bare Spur zurcklassen kann (aber nicht muá). Die Schildkr”te kann einen Weg
+bestimmter L„nge in ihre Blickrichtung gehen und bleibt dann stehen. Auáer-
+dem kann sie sich nach links oder rechts drehen, d.h. ihre Blickrichtung
+„ndert sich. Alles was man dazu braucht, ist ein Befehl, der die Richtung
+der Schildkr”te ver„ndern kann und dann einen Weg bestimmter L„nge in dieser
+Richtung zurcklegt. Auáerdem wird noch ein Befehl ben”tigt, der das "Spur-
+verhalten" der Schildkr”te „ndert, also von "Spur sichtbar" auf "Spur un-
+sichtbar" umschaltet und umgekehrt. Natrlich ist die Zeichengeschwindigkeit
+nicht mit der Fortbewegungsgeschwindigkeit von Schildkr”ten zu vergleichen.
+Das erste Kommando lautet
+
+ #ib(1)#<ESC> n#ie(1)# <l, w;> (Hex 1B 6E <l, w;>)
+
+<l> und <w> sind dezimale oder bin„re Parameter. <l> ist die L„nge der Spur
+mit einem Wertebereich von 0 bis 511. <w> ist der relative Drehwinkel der
+Schildkr”te, also die Žnderung von der ursprnglichen Blickrichtung aus. <w>
+berstreicht den positiven und negativen Winkelbereich (0..71 entsprechen 0
+bis 355 in 5 Grad Schritten. -1 entspricht z.B. 355 Grad).
+
+#text end#
+#clear pos#
+#free(08.701852e-1)#
+
+
+ 35
+#page##--------------------------------- Ende der Seite 35 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Mit dem Kommando
+
+ #ib(1)#<ESC> o#ie(1)# (Hex 1B 6F)
+
+kann von 'Draw' einer Spur auf 'Move' umgeschaltet werden und umgekehrt.
+
+Um die Sichtbarkeit der Spur am Programmamfang auf einen definierten Wert zu
+setzen, kann man das Kommando
+
+ #ib(1)#<ESC> O 8#ie(1)# <n> (Hex 1B 4F 38 <n>)
+
+benutzen. <n> ist ein Byteparameter mit dem Wertebereich 0 bis 3.
+
+#on("u")#Bit 0 hat folgende Bedeutung: #off("u")#
+ 0 Pendown. Die Schildkr”te hinterl„át eine sichtbare Spur
+ 1 Penup. Die Schildkr”te hinterl„át keine Spur
+
+#on("u")#Bit 1 hat folgende Bedeutung: #off("u")#
+ 0 Drawer. Es wird eine weiáe Linie gezeichnet.
+ 1 Eraser. Es wird eine schwarze Linie gezeichnet (gel”scht)
+
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> O 9#ie(1)# (Hex 1B 4F 39)
+
+wird die Turtle-Graphik initialisiert. Dieses Kommando muá nicht aufgerufen
+werden bevor die Turtle-Graphik benutzt wird, sollte aber nach M”glichkeit
+am Anfang eines Turtle-Graphik-Programmes benutzt werden. Das Kommando setzt
+die Schildkr”te in die Mitte des Bildschirms (140, 96) mit Blickrichtung
+nach oben. Der Drawer wird eingeschaltet (zeichnen) und eine sichtbare Linie
+wird voreingestellt (Pendown).
+
+
+#type("8")##center##ib(3)#6.6.2 Komplexere Zeichenkommandos#ie(3)##type("elite")#
+
+Auáer den Kommandos zum Zeichnen von Linien und zum Bewegen des Graphikcur-
+sors gibt es noch verschiedene andere Zeichenkommandos.
+
+
+#type("8")##center##ib(3)#6.6.2.1 Kreise und Kreissegmente#ie(3)##type("elite")#
+
+Der Mittelpunkt eines Kreises liegt immer an der aktuellen Cursorposition.
+Der Radius eines Kreises ist in weiten Grenzen von 0 bis ber 30000 Punkten
+w„hlbar. Clipping wird ausserhalb des Bildschirmrandes durchgefhrt. Ein
+Kreis kann in 8 Segmente unterteilt werden, von denen alle oder nur einzel-
+ne gezeichnet werden k”nnen. Damit ist es dann auch m”glich, Halb- oder
+Viertelkreise zu Zeichnen.
+
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+#right#36
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 36 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Mit dem Kommando
+
+ #ib(1)#<ESC> K#ie(1)# <r, s;> (Hex 1B 4B <r, s;>)
+
+wird ein Kreis mit dem Radius <r> um die aktuelle Cursorposition gezeichnet
+(relative Kreise). <s> legt fest, welche Segmente gezeichnet werden sollen.
+<r, s;> sind dezimale oder bin„re Parameter. <s> hat den Wertebereich von 0
+bis 255.
+Jedes Bit in <s> ist einem Kreissegment zugeordnet. Ist das Bit gesetzt (1),
+dann wird das zugeh”rige Segment gezeichnet. Der Wert 0 entspricht dem Wert
+255 (der ganze Kreis wird gezeichnet), ist aber etwas schneller, da keine
+Abfrage der einzelnen Bits durchgefhrt wird.
+
+Die Segmente sind folgendermaáen numeriert:
+
+ 7 0
+ 6 1
+ 5 2
+ 4 3
+
+Beispiele fr <n> :
+
+#on("u")#<n> Bedeutung #off("u")#
+ 0 Zeichnet einen ganzen Kreis
+ 15 Zeichnet einen links offenen Halbkreis
+240 Zeichnet einen rechts offenen Halbkreis
+195 Zeichnet einen unten offenen Halbkreis
+ 60 Zeichnet einen oben offenen Halbkreis
+ 3 Zeichnet ein Kreisviertel rechts oben
+ 12 Zeichnet ein Kreisviertel rechts unten
+ 48 Zeichnet ein Kreisviertel links unten
+192 Zeichnet ein Kreisviertel links oben
+etc.
+
+Das Aussehen von Kreisen kann durch die Parameter Farbe/Helligkeit und die
+Bitverknpfung ver„ndert werden. Der Linientyp (Punkt-, Strichlinie) und die
+Strickdicke haben keinen Einfluá, d.h. der Kreis wird immer mit durchgehen-
+der Linie und einfacher Dicke gezeichnet. Sollen diese beiden Parameter auch
+ver„ndert werden, sollte man den Befehl <ESC> s fr Ellipsenb”gen verwenden.
+
+
+#type("8")##center##ib(3)#6.6.2.2 Rechtecke#ie(3)##type("elite")#
+
+Rechtecke werden ebenso wie Kreise relativ gezeichnet, d.h. die aktuelle
+Cursorposition bildet eine Ecke des Rechtecks. Die Seiten des Rechtecks
+liegen parallel zur X- und Y-Achse, gedrehte Rechtecke k”nnen aber aus 4
+relativen Draw-Befehlen zusammengesetzt werden.
+
+#text end#
+#clear pos#
+#free(1.716852)#
+
+
+ 37
+#page##--------------------------------- Ende der Seite 37 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Das Kommando
+
+ #ib(1)#<ESC> J#ie(1)# <b, h;> (Hex 1B 4A <b, h;>)
+
+zeichnet ein leeres Rechteck (Rahmen) an der aktuellen Cursorposition. <b,
+h;> sind dezimale oder bin„re Parameter. <b> ist die Breite des Rechtecks
+und kann den ganzen Wertebereich von -32768 bis 32767 berstreichen, <h> ist
+die H”he des Rechtecks und kann ebenfalls diesen Wertebereich berstreichen.
+Je nach Vorzeichen von <b> und <h> wird das Rechteck links/ rechts und
+oben/unten von der aktuelle Cursorposition gezeichnet.
+
+<b> <h> Cursorposition bildet die Ecke
+ + + unten links
+ + - oben links
+ - + unten rechts
+ - - oben rechts
+
+
+#type("8")##center##ib(3)#6.6.2.3 B”gen und Ellipsen#ie(3)##type("elite")#
+
+Um die Zeichengeschwindigkeit eines Kreises zu vergrӇern, wurde ein sepa-
+rater Befehl fr Kreise eingefhrt (6.6.2.1). Da der Kreis ein Sonderfall
+der Ellipse ist, kann man das in diesem Abschnitt beschriebene Kommando auch
+benutzen, um Kreise mit anderen als den unter 6.6.2.1 beschriebenen Segmen-
+ten oder Parametern (Dicke, Strichtyp) zu Zeichnen.
+
+Das Kommando
+
+ #ib(1)#<ESC> s#ie(1)# <xr, yr,> <aw, ew;> (Hex 1B 73 ...)
+
+zeichnet um die aktuelle Cursorposition (also relativ) einen Ellipsenbogen
+mit Radius <xr> in X-Richtung und Radius <yr> in Y-Richtung, ausgehend vom
+Anfangswinkel <aw> im Uhrzeigersinn, bis zum Endwinkel <ew>. Der Winkel 0
+Grad ist dabei oben (Norden).
+
+Alle Parameter sind dezimale oder bin„re Parameter. <aw> und <ew> haben den
+Wertebereich von 0 bis 255, wobei eine ganze Ellipse einem Anfangswinkel von
+0 und einem Endwinkel von 72 entspricht. Die Winkelangaben sind in 5 Grad
+Schritten und k”nnen Anhang A entnommen werden.. <xr> und <yr> drfen den
+vollen Wertebereich von -32768 bis 32767 berstreichen.
+
+
+#text end#
+#clear pos#
+#free(4.256852)#
+
+
+#right#38
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 38 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#6.6.2.4 Gefllte Fl„chen#ie(3)##type("elite")#
+
+Rechteckige oder rautenf”rmige Fl„chen k”nnen, wie in Abschnitt 6.5.1.4
+beschrieben, schnell gefllt werden. Fr beliebig geformte Fl„chen kann das
+Kommando
+
+ #ib(1)#<ESC> |#ie(1)#<n> (Hex 1B 7C <n>)
+
+benutzt werden. Dies ist ein relatives Kommando, da um die aktuelle Cursor-
+position herum gefllt wird. <n> ist ein Byteparameter mit dem Wertebereich
+0 bis 15, der die Nummer des Musters fr die Fllung angibt. Der Fill-Befehl
+arbeitet auf der aktuellen Arbeitsseite und fllt eine sichtbar begrenzte
+Fl„che mit einem angegebenen Muster aus.
+
+Ist die Bitverknpfung OR eingestellt darf der Cursor nicht auf einem weiáen
+Punkt stehen und die Fl„che muá von einer durchgehenden weiáen Linie be-
+grenzt sein.
+Ist die Bitverknpfung AND eingestellt, darf der Cursor nicht auf einem
+schwarzen Punkt stehen und die Fl„che muá von einer durchgehenden schwarzen
+Linie begrenzt sein.
+
+Auáer den Parametern Bitverknpfung und Helligkeit/Farbe werden keine be-
+rcksichtigt.
+
+Bei sehr komplex geformten Figuren kann der Fall eintreten, daá die Fl„che
+nicht ganz gefllt ist. Dies liegt daran, daá intern ein zu gr”áer Spei-
+cherplatz zum Merken von Rcksprungcursorpositionen ben”tigt wird (Stack-
+šberlauf). In diesem Fall sollte man den Cursor nocheinmal auf die nicht
+gefllte Fl„che setzen und das Kommando erneut geben.
+
+<n> kann folgende Werte annehmen (Werte Hexadezimal angegeben 0..F):
+<n> Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 Fl„che ganz gefllt
+ 1 Fl„che halb gefllt (grau)
+ 2 Jede 4. Zeile wird durchgezogen
+ 3 Jede 2. Zeile wird durchgezogen
+ 4 Jede 4. Spalte wird durchgezogen
+ 5 Jede 2. Spalte wird durchgezogen
+ 6 Jede 4. Zeile und jede 4. Spalte wird durchgezogen (grobes Raster)
+ 7 Jede 2. zeile und jede 2. Spalte wird durchgezogen (feines Raster)
+ 8 Schraffur von links unten nach rechts oben
+ 9 Schraffur von links oben nach rechts unten
+ A Schr„ges Raster (Links- und Rechtsschraffur)
+ B Feines Funktraster(jeder 2.Punkt in x- und y-Richtung wird gesetzt)
+ C Mauerwerk
+ D Feines Netzgeflecht
+ E Feine Zickzacklinie
+ F Benutzerdefinierbares Muster. Default: Grobe Zickzacklinie
+
+#text end#
+#clear pos#
+#free(08.701852e-1)#
+
+
+ 39
+#page##--------------------------------- Ende der Seite 39 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Ist die AND-Bitverknpfung eingeschaltet, dann sind die Punkte schwarz und
+weiá in den Mustern vertauscht und in der obigen Tabelle sind die Bezeich-
+nungen 'gefllt' und 'gel”scht' auszutauschen.
+
+
+#type("8")##center##ib(3)#6.6.2.4.1 Definition des Musters#ie(3)##type("elite")#
+
+Das benutzerdefinierbare Muster des Fill-Befehls (Muster 15) kann mit dem
+Kommando
+
+ #ib(1)#<ESC> O :#ie(1)# <b1..b8> (Hex 1B 4F 3A <b1..b8>)
+
+eingestellt werden. Das Defaultmuster wird dabei berschrieben, das neu
+eingestellte Muster allerdings nicht beim Setup mitgesichert.
+<b1..b1> sind 8 Byteparameter mit dem gesamten Wertebereich 0 bis 255. Das
+erste Byte wird im Fllmuster in Richtung der niedrigeren y-Positionen dar-
+gestellt, das niederwertigste Bit jedes Bytes in Richtung der niedrigeren
+x-Positionen.
+
+
+#type("8")##center##ib(3)#6.7 Graphikdaten zum Host#ie(3)##type("elite")#
+
+Bisher wurden nur Kommandos beschrieben, die der Host an das Terminal sen-
+den kann. Damit der Host ber den Status des Terminals informiert werden
+kann, sind auch Kommandos vorhanden, die Daten an den Host senden. Der Host
+kann auch ganze Graphikseiten anfordern, so daá die auf dem Terminal er-
+zeugten Graphiken nach dem Ausschalten nicht verloren sind, sondern vom Host
+gespeichert werden k”nnen.
+
+
+#type("8")##center##ib(3)#6.7.1 Graphikseiten zum Host#ie(3)##type("elite")#
+
+Graphikseiten k”nnen ganz oder teilweise bertragen werden. Da ein angefor-
+dertes Datenpaket immer ganz bertragen wird, sollte der Host, wenn keine
+Fluákontrolle eingeschaltet ist, nur so groáe Bl”cke anfordern, die er puf-
+fern kann (z.B. 256 Bytes). Selektives Lesen von Graphikseiten kann auch
+verwendet werden, um Teile einer Graphik vom Host (und nicht vom Terminal)
+ver„ndern zu lassen. Mit dem Kommando <ESC> / ... kann der modifizierte Teil
+dann wieder an das Terminal zurckgesendet werden. Zum Aufbau der Graphik-
+seite findet man in Kapitel 6.4.2 Informationen.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> \#ie(1)# <ll> <lh> <al> <ah> (Hex 1B 5C ...)
+
+kann eine Seite oder ein Teil einer Seite in an den Host gesendet werden.
+<lh>, <ll>, <ah> und <al> sind Byteparameter (8 Bits). <ll> und <lh> bilden
+zusammen die bin„re L„nge, d.h. die Anzahl der Datenbytes, die zum Host
+gesendet werden. Die L„nge kann von 0 bis Hex 2000 (dezimal 8192) reichen.
+Die Adresse durch <al> und <ah> gebildet, darf von 0 bis Hex 1FFF reichen.
+#text end#
+#clear pos#
+#free(08.701852e-1)#
+
+
+#right#40
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 40 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Zus„tzlich gilt, daá die Summe von L„nge und Adresse nicht gr”áer als Hex
+2000 sein darf, da sich die Endadresse dann ausserhalb der Graphikseite
+befindet. In diesem Fehlerfall werden keine Daten gesendet.
+
+
+#type("8")##center##ib(3)#6.7.2 Cursorposition zum Host#ie(3)##type("elite")#
+
+Da die Graphikcursorposition einen anderen Wertebereich berstreicht als die
+Position des Textcursors, wurde zum Senden der Graphikcursorposition ein
+weiteres Kommando eingefhrt. Pro Koordinate werden dabei 2 Bytes, zusammen
+also 4 Bytes, gesendet. Mit dem Kommando
+
+ #ib(1)#<ESC> ;#ie(1)# (Hex 1B 3B)
+
+kann der Host diese 4 Bytes anfordern. Die Reihenfolge der Bytes ist <xlow>
+<xhigh> <ylow> <yhigh>. Im Gegensatz zu <ESC> ? (fr die Textcursorposi-
+tion) wird auch kein abschlieáendes <CR> gesendet.
+
+
+#type("8")##center##ib(3)#6.7.3 Einzelne Bits zum Host#ie(3)##type("elite")#
+
+Auáer ganzen Graphikseiten oder Bl”cken daraus, kann der Host auch einzelne
+Bytes oder Bits selektieren und empfangen. Dazu stehen zwei Kommandos zur
+Verfgung. Mit dem Kommando
+
+ #ib(1)#<ESC> _#ie(1)# (Hex 1B 5F)
+
+kann das Byte angefordert werden, in dem sich der Graphikcursor gerade be-
+findet. Das Bit 7 ist das Farb- oder Helligkeitsbit, das Bit (xpos MOD 7)
+ist das Bit, das durch den Graphikcursor addressiert wird. Wenn der Cursor
+auáerhalb des sichtbaren Bereichs ist, wird ein Byte Hex 00 geliefert.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> -#ie(1)# (Hex 1B 2D)
+
+kann das Bit, daá durch die Graphikcursorposition addressiert wird, abge-
+fragt werden. Dieses Kommando liefert ein Byte, in dem die Bits folgende
+Bedeutung haben:
+
+#on("u")#Bit 0 Dezimal Bedeutung #off("u")#
+ 0 0 Das adressierte Bit ist nicht gesetzt
+ 1 1 Das adressierte Bit ist gesetzt
+
+#on("u")#Bit 1 Dezimal Bedeutung #off("u")#
+ 0 0 Die Farbe ist violett/dunkel
+ 1 2 Die Farbe ist gelb/hell
+
+#text end#
+#clear pos#
+#free(1.716852)#
+
+
+ 41
+#page##--------------------------------- Ende der Seite 41 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Bit 2 Dezimal Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 0 Der Graphikcursor ist innerhalb des sichtabren Bereichs
+ 1 4 Der Graphikcursor ist auáerhalb des sichtbaren Bereichs.
+ Bit 0 und Bit 1 sind dann 0.
+
+Bit 4 und Bit 5 sind immer 1. Es werden also die ASCII-Ziffern "0" bis "4"
+geliefert.
+
+
+#type("8")##center##ib(3)#6.7.4 Parameter zum Host#ie(3)##type("elite")#
+
+Die eingestellten Draw-Parameter k”nnen auch abgefragt werden. Dazu exi-
+stieren zwei Kommandos. Mit dem Kommando
+
+ #ib(1)#<ESC> 4#ie(1)# (Hex 1B 34)
+
+k”nnen die Nummer der sichtbaren und der Arbeitsseite, im gleichen Format
+wie zum Einstellen der Seiten mit dem Kommando #ib(1)#<ESC> O 7#ie(1)# <n>, angefordert
+werden. Es werden ASCII-Zeichen von "0" bis "?" geliefert. Die Bits 0 bis 2
+sind folgendermaáen zugeordnet:
+
+#on("u")#Bit 0 Bedeutung #off("u")#
+ 0 Sichtbar ist Seite 0
+ 1 Sichtbar ist Seite 1
+
+#on("u")#Bit 1 Bedeutung #off("u")#
+ 0 Arbeitsseite ist Seite 0
+ 1 Arbeitsseite ist Seite 1
+
+#on("u")#Bit 2 Bedeutung #off("u")#
+ 0 Nur Graphik eingeschaltet
+ 1 In den letzten 32 Graphikzeilen
+ sind 4 Textzeilen eingeblendet
+
+#on("u")#Bit 3 Bedeutung #off("u")#
+ 0 Der Graphikmodus ist eingeschaltet
+ 1 Der Textmodus ist eingeschaltet
+
+Sinnvoll sind die Werte der Bits 0 bis 2 nur dann, wenn Bit 3 = 0 ist.
+
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 5#ie(1)# (Hex 1B 35)
+
+k”nnen die Linienparameter abgefragt werden. Es wird ein Byte mit dem Wer-
+tebereich von 1 bis 127 geliefert. Die einzelnen Bits sind folgendermaáen
+zugeordnet:
+
+#text end#
+#clear pos#
+#free(08.701852e-1)#
+
+
+#right#42
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 42 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Bit Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+Bit 0..3 : Strichdicke
+Bit 4..5 : Bitverknpfung (0 = OR, 16 = AND, 32 = XOR, 48 = COPY)
+Bit 6 : Aktuelle Farbe (0 = Violett/dunkel, 1 = Gelb/hell)
+
+Die Bitbelegung entspricht der des Parameters des Kommandos #ib(1)#<ESC> O 5#ie(1)# <n>.
+
+
+#type("8")##center##ib(3)#6.8 Graphikhardcopy#ie(3)##type("elite")#
+
+Wie von der Textseite kann auch von den Graphikseiten ein Ausdruck angefer-
+tigt werden. Dabei k”nnen keine verschiedene Helligkeitsstufen oder Farben
+dargestellt werden.
+
+
+#type("8")##center##ib(3)#6.8.1 Der Druckertreiber#ie(3)##type("elite")#
+
+Da das Ein- und Ausschalten des Graphikmodus nicht auf allen Druckern durch
+gleiche Kommandos erreicht werden kann, muá das Terminal an den vorhandenen
+Drucker angepaát werden. Defaultm„áig werden die Epson-Modelle ab RX80 auf-
+w„rts, sowie kompatible (IBM, Panasonic etc.) untersttzt. Die Anpassung
+wird in diesem Abschnitt beschrieben.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> ~#ie(1)# <n> <p...> (Hex 1B 7E <n> <p...>)
+
+k”nnen Kommandosequenzen eingestellt werden, die folgende Aufgaben haben:
+
+<n> Default (Hex) Aufgabe
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 0D Einleiten der gesamten Hardcopy (Waagenrcklauf)
+ 1 1B 2A 04 18 01 Einschalten des Graphikmodus. Es folgen 280 Graphikby-
+ tes (jeweils 8 Bit)
+ 2 0D 1B 4A 17 Ausschalten des Graphikmodus. Zeilenvorschub ohne Zwi-
+ schenraum (Zeilenabstand ca. 8 Punkte) und Waagenrck-
+ lauf.
+ 3 Nichts Dieses Kommando wird nach der kompletten Hardcopy zum
+ Drucker gesendet.
+
+Wenn doppelte Punktbreite eingeschaltet ist, oder zwei Seiten nebeneinander
+gedruckt werden, wird die Kommandosequenz 1 auch mehrmals in einer Zeile
+gegeben.
+
+<n> ist dabei ein Byteparameter mit dem Wertebereich von 0 bis 3. <p...> ist
+eine Folge von bis zu 16 Bytes. Das erste dieser 16 Bytes ist ein L„ngenby-
+te, das die L„nge der Kommandosequenz (oder die Anzahl der noch folgenden
+Bytes) angibt. Fr die nach dem L„ngenbyte folgenden Bytes sind alle Werte
+von 0 bis 255 erlaubt.
+
+#text end#
+#clear pos#
+#free(04.468519e-1)#
+
+
+ 43
+#page##--------------------------------- Ende der Seite 43 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Die Druckertreiberstrings (Kommandosequenzen) werden beim Setup in der Kom-
+mandozeile auch mit abgespeichert, so daá sie nur einmal (wenn berhaupt)
+und dann nie wieder eingestellt werden máen.
+
+
+#type("8")##center##ib(3)#6.8.2 Die Hardcopyparameter#ie(3)##type("elite")#
+
+Im Gegensatz zur Hardcopy einer Textseite kann das Aussehen einer Graphik
+beim Ausdruck noch ver„ndert werden. Das Kommando
+
+ #ib(1)#<ESC> ^#ie(1)# <n> (Hex 1B 5E <n>)
+
+druckt eine Hardcopy mit dem Parameter <n>. <n> ist ein Byteparameter mit
+dem Wertebereich von 0 bis 15. Jedes Bit in <n> legt eine Darstellungsweise
+fest. Die Bits haben folgende Bedeutung:
+
+Invertieren:
+Bit 0 Dezimal Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 0 Helle Punkte auf dem Bildschirm werden auf dem Drucker schwarz
+ gedruckt, dunkle Punkte bleiben beim Ausdruck weiá.
+ 1 1 Die Graphik wird invertiert, d.h. Ein dunkler Bildhintergrund
+ bleibt auf dem Drucker dunkel (schwarz).
+
+Doppelte Breite:
+Bit 1 Dezimal Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 0 Jeder Bildschirmpunkt wird in normaler Breite gedruckt. Es
+ werden also 280 Punkte nebeneinander gedruckt.
+ 1 2 Jeder Bildschirmpunkt wird in doppelter Breite gedruckt. In
+ diesem Fall werden auf dem Drucker 560 Punkte nebeneinander
+ gedruckt.
+
+Doppelte H”he:
+Bit 2 Dezimal Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 0 Jeder Bildschirmpunkt wird in normaler H”he gedruckt. Es wer-
+ den also 192 Punkte untereinander gedruckt.
+ 1 4 Jeder Bildschirmpunkt wird in doppelter H”he gedruckt. In
+ diesem Fall werden also 384 Punkte untereinander gedruckt.
+
+Zwei Seiten nebeneinander drucken:
+Bit 3 Dezimal Bedeutung
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 0 Es wird nur eine Graphikseite (linksbndig) gedruckt.
+ 1 8 Die aktuelle (mit #ib(1)#<ESC> O 7#ie(1)# <n> eingestellte) Graphikseite
+ wird linksbndig und die andere Graphikseite nahtlos rechts
+ daneben gedruckt.
+
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+#right#44
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 44 -----------#
+#center##on("b")#6. Der Graphikmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Zur Kombination von M”glichkeiten (mehrere Bits sind gesetzt):
+
+- Eine Graphik mit doppelter H”he und doppelter Breite hat ungef„hr das
+ Format des Bildschirms. Ein Ausdruck besteht dann aus 560 x 384 = 215040
+ Punkten. Zus„tzliches Invertieren macht die Graphik dem Bildschirmausse-
+ hen noch „hnlicher.
+
+- Werden zwei Seiten mit doppelter Breite nebeneinander gedruckt, dann re-
+ icht die Anzahl der Graphikspalten auf dem Drucker mit dem Defaultgra-
+ phikmodus nicht mehr aus. In diesem Fall sollte man die Druckertreiber
+ Kommandosequenz 1 tempor„r auf eine hohe (4-fache) Dichte umschalten.
+ Solange kein Setup ausgefhrt wird, ist diese Dichte nur solange gltig,
+ bis das Terminal ausgeschaltet wird.
+
+#text end#
+#clear pos#
+#free(16.11019)#
+
+
+ 45
+#page##--------------------------------- Ende der Seite 45 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#7. Die Parameter der seriellen Schnittstelle#ie(3)##off("u")##off("i")##type("elite")#
+
+
+Die Parameter der seriellen Schnittstelle k”nnen vom Host durch Escape-
+Sequenzen g„ndert werden. Die Žnderung der Parameter wird erst durchgefhrt,
+wenn die Parameterbergabe komplett ist (d.h das letzte Byte wurde bertra-
+gen). Alle šbertragungsparameter wie Stopbits, Datenbits, Parit„t und Bau-
+drate werden zusammen in einem 'Rutsch' eingestellt. Die Art der Fluákon-
+trolle wird mit separaten Escape-Sequenzen eingestellt.
+Die Einstellung in der Kommandozeile ist im Kapitel 3 beschrieben.
+
+
+#type("8")##center##ib(3)#7.1 Das šbertragungsformat#ie(3)##type("elite")#
+
+Das šbertragunsformat eines Datenbytes sieht folgendermaáen aus:
+(Beispiel fr 8 Datenbits, 1 Parit„tsbit und 1 Stopbit)
+
+ +---+---+---+---+---+---+---+---+---+---+---+
+ ... |"0"| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | P |"1"| ...
+ +---+---+---+---+---+---+---+---+---+---+---+
+ Start- ---- D a t e n b i t s ---- Pari- Stop-
+ bit t„ts- bit
+ bit
+ --------> Zeit
+
+Bei 7 Datenbits ist das Bit 7 "0". P bezeichnet das Parit„tsbit. Wenn zwei
+Stopbits bertragen werden steht an dieser Stelle das 1. Stopbit ("1").
+
+
+#type("8")##center##ib(3)#7.2 Die šbertragungsparameter#ie(3)##type("elite")#
+
+Alle vier Parameter werden zugleich ver„ndert. Das Kommando lautet
+
+ #ib(1)#<ESC> <SPACE> <SPACE>#ie(1)# <x> (Hex 1B 20 20 <x>)
+
+<x> ist dabei ein Datenbyte, das wie folgt festgelegt wird:
+
+ Bit 7 6 5 4 3 2 1 0
+ +-------+-------+-------+-------+-------+-------+-------+-------+
+ |Parity |Parity | Stop- | Daten-| Baudrate |
+ | even/ |on/off | bits | bits | | | | |
+ | odd | | | | | | | |
+ +-------+-------+-------+-------+-------+-------+-------+-------+
+
+
+#text end#
+#clear pos#
+#free(2.986852)#
+
+
+#right#46
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 46 -----------#
+#center##on("b")#7. Die Parameter der seriellen Schnittstelle#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#7.2.1 Baudrate#ie(3)##type("elite")#
+
+Baudrate = Anzahl der pro Sekunde bertragenen Bits (šbertragungsgeschwin-
+digkeit) .
+
+ Bits
+#on("u")#Dezimal 3 2 1 0 Neue Baudrate#off("u")#
+ 0 0 0 0 0 Alte Baudrate (nicht ver„ndern)
+ 1 0 0 0 1 50 Baud
+ 2 0 0 1 0 75 Baud
+ 3 0 0 1 1 109.9 Baud
+ 4 0 1 0 0 134.58 Baud
+ 5 0 1 0 1 150 Baud
+ 6 0 1 1 0 300 Baud
+ 7 0 1 1 1 600 Baud
+ 8 1 0 0 0 1200 Baud
+ 9 1 0 0 1 1800 Baud
+ 10 1 0 1 0 2400 Baud
+ 11 1 0 1 1 3600 Baud
+ 12 1 1 0 0 4800 Baud
+ 13 1 1 0 1 7200 Baud
+ 14 1 1 1 0 9600 Baud
+ 15 1 1 1 1 19200 Baud
+
+Der Wert 0 kann gebraucht werden, wenn nur Datenbits, Stopbits und Pari-
+t„tsbit ver„ndert werden sollen.
+
+
+#type("8")##center##ib(3)#7.2.2 Datenbits#ie(3)##type("elite")#
+
+Bit 4 legt die Anzahl der gesendeten und empfangenen Datenbits fest.
+
+#on("u")#Dezimal Bit 4 #off("u")#
+ 0 0 8 Datenbits
+ 16 1 7 Datenbits
+
+Mit einem anschliessenden Kommando
+
+ #ib(1)#<ESC> <SPACE> 6#ie(1)# (Hex 1B 20 36)
+
+kann das 8. Datenbit ausmaskiert (d.h auf "0" gesetzt) werden. Dies kann
+notwendig sein, wenn der Host nur 7 Bit ASCII verarbeitet und auf ein ge-
+setztes 8. Datenbit falsch reagiert (Steuerbit oder „hnliches).
+
+Mit
+
+ #ib(1)#<ESC> <SPACE> 7#ie(1)# (Hex 1B 20 37)
+
+kann die Maskierung wieder aufgehoben werden.
+Zu beachten ist, daá bei 7 Bit Datentransfer zum Beispiel das Farbbit bei
+Download einer Graphikseite nicht bertragen wird.
+
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+ 47
+#page##--------------------------------- Ende der Seite 47 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#7.2.3 Stopbits#ie(3)##type("elite")#
+
+Bit 5 legt die Anzahl der Stopbits fest.
+
+#on("u")#Dezimal Bit 5 #off("u")#
+ 0 0 1 Stopbit
+ 32 1 2 Stopbits
+
+Zu beachten ist, daá bei eingeschaltetem Paritycheck und 8 Datenbits immer
+ein Stopbit bertragen wird, auch wenn 2 Stopbits programmiert wurden. (Es
+k”nnen maximal 11 Bits/Daten"byte" bertragen werden.)
+
+
+#type("8")##center##ib(3)#7.2.4 Parit„tsbit#ie(3)##type("elite")#
+
+Bit 6 legt fest, ob Parit„tskontrolle erfolgen soll und ob ein Parit„tsbit
+vorhanden ist.
+
+Dezimal Bit 6
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 0 Keine Parit„tskontrolle/Kein Parit„tsbit
+ 64 1 Parit„tskontrolle eingeschaltet. Parit„t mit Bit 7 gew„hlt
+
+Wenn Bit 6 = 1 ist legt Bit 7 fest, ob gerade oder ungerade Parit„t geprft
+werden soll.
+
+#on("u")#Dezimal Bit 7 #off("u")#
+ 0 0 Ungerade Parit„t
+ 128 1 Gerade Parit„t
+
+
+#type("8")##center##ib(3)#7.2.5 šbertragungsfehler#ie(3)##type("elite")#
+
+Wird ein Rahmenfehler (Stopbit fehlt) oder ein Parit„tsfehler (mindestens
+ein Bit verf„lscht) entdeckt, dann wird statt des empfangenen Mlls ein Byte
+Hex FF vom Terminal interpretiert. Steht dies im Text, kann man es als in-
+vertiertes Punktraster erkennen. Dieses Zeichen richtet wenig Schaden an,
+wenn es mitten in einer Escape-Sequenz empfangen wird.
+
+
+#type("8")##center##ib(3)#7.3 Die Fluákontrolle#ie(3)##type("elite")#
+
+Damit keine Daten verloren gehen, wenn der Host oder das Terminal keine
+solchen mehr empfangen kann, sollte eine Fluákontrolle eingeschaltet wer-
+den. Das Terminal hat zwar einen Empfangspuffer von 4K Byte (4096 Zeichen),
+aber auch dieser kann einmal voll sein. Der Sendepuffer von 2K Byte (2048
+Zeichen) wird in Anspruch genommen, wenn der Host dem Terminal per Fluákon-
+trolle mitgeteilt hat, daá er keine Zeichen mehr empfangen kann. Das Termi-
+nal wartet dann nicht aktiv auf Freigabe vom Host, sondern kann weiter ar-
+beiten (Spooler, Bildschirmausgabe, Localmodus etc.).
+
+#text end#
+#clear pos#
+#free(04.468519e-1)#
+
+
+#right#48
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 48 -----------#
+#center##on("b")#7. Die Parameter der seriellen Schnittstelle#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Wenn das Terminal den Host "gestoppt" hat, kann man das an einem "B U S Y"
+in der Statuszeile erkennen, sonst steht dort "R E A D Y".
+Wenn der Host das Terminal "gestoppt" hat, kann man das an einem "T X O F F"
+in der Statuszeile erkennen, sonst steht dort "T X O N".
+
+Da dieses Terminal einen groáen Empfangspuffer hat, sollte man allerdings im
+Notfall auch ohne Fluákontrolle auskommen, wenn nicht gerade umfangreiche
+Graphikoperationen ausgefhrt werden sollen, bei denen der Puffer nicht
+schnell genug geleert werden kann.
+
+
+#type("8")##center##ib(3)#7.3.1 XON/XOFF#ie(3)##type("elite")#
+
+XON/XOFF ist eine Softwarefluákontrolle. Als Stopzeichen wird
+
+ #ib(1)#XOFF#ie(1)# (#ib(1)#<CTRL S>#ie(1)# Hex 13)
+
+verwendet. Als Startzeichen wird
+
+ #ib(1)#XON#ie(1)# (#ib(1)#<CTRL Q>#ie(1)# Hex 11)
+
+verwendet. Diese Fluákontrolle sollte nur im Textmodus verwendet werden, da
+Bin„rdaten m”glicherweise Hex 11 oder Hex 13 enthalten, die dann nicht als
+Protokollzeichen verwendet werden sollen. Der Vorteil dieser Art der Fluá-
+kontrolle ist, daá man mit 3 Leitungen (Masse, TXD, RXD) an der seriellen
+Schnittstelle auskommt.
+
+Das Terminal reagiert auf empfangene XON/XOFF-Zeichen sofort, d.h diese
+Zeichen werden nicht in den Empfangspuffer gestellt. Diese beiden Zeichen
+werden auch dann interpretiert, wenn das Terminal im Local-Modus ist.
+
+Die XON/XOFF Fluákontrolle kann in der 2. Kommandozeile ein- und ausgeschal-
+tet werden, sowie mit dem Kommando
+
+ #ib(1)#<CTRL O>#ie(1)# (Hex 0F)
+
+eingeschaltet und mit
+
+ #ib(1)#<CTRL N>#ie(1)# (Hex 0E)
+
+ausgeschaltet werden.
+
+Zu beachten ist, daá der Sender vor dem Ausschalten noch im "TX OFF"-
+Zustand sein kann. Man sollte deshalb direkt vor <CTRL N> noch <CTRL Q> (Hex
+11), also XON senden, um den Sender wieder einzuschalten. Dies wird vom
+Terminal nicht automatisch gemacht, da sonst ein <CTRL N> das im Datenstrom
+vorkommt, auch noch ein Zeichen fr Fluákontrolle w„re.
+
+
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+ 49
+#page##--------------------------------- Ende der Seite 49 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#7.3.2 DTR/DSR#ie(3)##type("elite")#
+
+DTR/DSR ist eine Hardwarefluákontrolle bei der die Leitungen Pin 20 (DTR)
+und Pin 6 (DSR) (in der Regel berkreuzt) angeschloáen sein mssen.
+Bei dieser Art der Fluákontrolle drfen alle Zeichen bertragen werden, ohne
+daá eines die Fluákontrolle steuert. Ausnahme: Wenn zus„tzlich XON/ XOFF
+Fluákontrolle eingeschaltet ist werden natrlich XON/XOFF als Steuerzeichen
+interpretiert.
+
+DTR (Data Terminal Ready)/DSR (DataSet Ready) Fluákontrolle kann in der 2.
+Kommandozeile ein- und ausgeschaltet werden. Der Host kann dies mit dem
+Kommando
+
+ #ib(1)#<ESC> <SPACE>#ie(1)# <n> (Hex 1B 20 <n>)
+
+erreichen. Die Werte von <n> sind
+
+#on("u")#<n> Hex Bedeutung #off("u")#
+ 2 32 Weder RTS/CTS noch DSR/DTR Fluákontrolle
+ 3 33 RTS/CTS Fluákontrolle, aber keine DSR/DTR Fluákontrolle
+ 4 34 DSR/DTR Fluákontrolle, aber keine RTS/CTS Fluskontrolle
+ 5 35 DSR/DTR und RTS/CTS Fluákontrolle
+
+DTR/DSR Fluákontrolle wird empfohlen, da hier alle Zeichen ohne Ver„nderung
+empfangen werden k”nnen. RTS/CTS Fluákontrolle kann, hardwarem„áig bedingt,
+beim Einschalten von RTS ein Bit "umkippen".
+
+
+#type("8")##center##ib(3)#7.3.3 RTS/CTS#ie(3)##type("elite")#
+
+RTS/CTS ist eine Hardwarefluákontrolle bei der die Leitungen Pin 4 (RTS) und
+Pin 5 (CTS) (in der Regel berkreuzt) angeschloáen sein mssen.
+Bei dieser Art der Fluákontrolle drfen alle Zeichen bertragen werden, ohne
+daá eines die Fluákontrolle steuert. Ausnahme: Wenn zus„tzlich XON/ XOFF
+Fluákontrolle eingeschaltet ist werden natrlich XON/XOFF als Steuerzeichen
+interpretiert.
+
+RTS (Ready To Send)/CTS (Clear To Send) Fluákontrolle kann in der 2. Kom-
+mandozeile ein- und ausgeschaltet werden. Der Host kann dies mit dem Kom-
+mando <ESC> <SPACE> <n> erreichen. Die Werte von <n> sind im letzten Ab-
+schnitt (7.3.2 DTR/DSR) angegeben.
+
+
+#text end#
+#clear pos#
+#free(3.833519)#
+
+
+#right#50
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 50 -----------#
+#center##on("b")#7. Die Parameter der seriellen Schnittstelle#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#7.4 Echo und Local/Online#ie(3)##type("elite")#
+
+In einigen F„llen verlangt der Host, daá das vom Terminal empfangene Zei-
+chen zurckgesendet (geechoed) wird, um eventuelle šbertragungsfehler zu
+erkennen. Dieser Modus wird mit dem Kommando
+
+ #ib(1)#<ESC> D E#ie(1)# (Hex 1B 44 45)
+
+eingeschaltet. Zus„tzlich wird hiermit der Localmodus ausgeschaltet (d.h der
+Online-Modus eingeschaltet), falls das Kommando am Terminal im Local-Modus
+gegeben wurde.
+
+Der Echo-Modus wird mit dem Kommando
+
+ #ib(1)#<ESC> D O#ie(1)# (Hex 1B 44 4F)
+
+ausgeschaltet. Das Terminal befindet sich dann im Fullduplex Online-Modus.
+Der Local-Modus wird auch hierbei verlassen.
+
+Der Local-Modus kann vom Host mit dem Kommando
+
+ #ib(1)#<ESC> D L#ie(1)# (Hex 1B 44 4C)
+
+eingeschaltet werden. Dabei ist zu beachten, daá der Host den Local-Modus
+nicht ausschalten kann. Der Local-Modus kann vom Benutzer durch Drcken von
+#ib(1)#<SHIFT CTRL HOME>#ie(1)# am Keyboard verlassen werden.
+
+Im Local-Modus werden Keyboardeingabe nicht mehr an den Host geschickt,
+sondern auf dem Bildschirm angezeigt bzw. durch das Terminal interpretiert.
+Funktionstastensequenzen werden auch nicht an den Host geschickt. Escape-
+Sequenzen die allerdings Daten senden (z.B Download von Text und Graphik
+oder die Abfrage der Cursorposition), werden wie im Online-Modus ausgefhrt,
+d.h. die Daten werden zum Host geschickt.
+
+#text end#
+#clear pos#
+#free(7.643519)#
+
+
+ 51
+#page##--------------------------------- Ende der Seite 51 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#8. Spezielle Kommandos im Textmodus#ie(3)##off("u")##off("i")##type("elite")#
+
+
+In diesem Kapitel werden weitere Kommandos, die im Textmodus wirksam sind
+und thematisch nicht in die anderen Kapitel passen, beschrieben.
+
+
+#type("8")##center##ib(3)#8.1 Weitere Cursorpositionierungskommandos#ie(3)##type("elite")#
+
+Zus„tzlich zu den im Graphikmodus und im Textmodus gltigen Cursorpositio-
+nierungskommandos gibt es noch einige weitere. Die fnf Kommandos Zeile
+l”schen, Zeile einfgen, Zeichen l”schen, Zeichen einfgen und Rckw„rtsta-
+bulator sind schon in Kapitel 5 beschrieben worden.
+
+Hier nur noch einmal die entsprechenden Kommandos:
+
+Funktion Escape-Sequenz
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+Zeile einfgen #ib(1)#<ESC> E#ie(1)# oder #ib(1)#<ESC> L#ie(1)#
+Zeile l”schen #ib(1)#<ESC> R#ie(1)# oder #ib(1)#<ESC> M#ie(1)#
+Zeichen einfgen #ib(1)#<ESC> Q#ie(1)#
+Zeichen l”schen #ib(1)#<ESC> W#ie(1)#
+Rckw„rtstabulator #ib(1)#<ESC> I#ie(1)#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> j#ie(1)# (Hex 1B 6A)
+
+kann ein umgekehrter Zeilenvorschub erreicht werden. Steht der Cursor in
+Zeile 2 bis Zeile 24, dann wirkt dieses Kommando wie <UP>. Steht der Cursor
+in Zeile 1, dann wird der Bildschirminhalt nach unten gescrollt und die
+erste Bildschirmzeile gel”scht.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> =#ie(1)# <y+32> <x+32> (Hex 1B 3D ...)
+
+kann der Cursor auf eine bestimmte Position auf dem Bildschirm gesetzt wer-
+den. <x+32> und <y+32> sind dabei Byteparameter. <x+32> hat den Wertebe-
+reich 32 (<SPACE>) bis 110 ("o"), <y+32> hat den Wertebereich 32 (<SPACE>)
+bis 55 ("7"). <x+32> ist dabei die gewnschte x-Position + 32 (gez„hlt wird
+von 0 bis 79), <y+32> ist die gewnschte y-Position + 32 (gez„hlt wird von 0
+bis 23). Die Zuordnungen der ASCII-Zeichen zu den Cursorpositionen kann man
+auch im Anhang A unter "Cursor" nachlesen.
+
+Dieser Befehl hat im Graphikmodus die gleiche Wirkung!
+
+
+#text end#
+#clear pos#
+#free(1.716852)#
+
+
+#right#52
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 52 -----------#
+#center##on("b")#8. Spezielle Kommandos im Textmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#8.2 Cursormodus#ie(3)##type("elite")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> .#ie(1)# <n> (Hex 1B 2E <n>)
+
+kann die Darstellung des Cursors ver„ndert werden. Fr <n> sind ASCII-Zei-
+chen "0", "1" und "2" zugelassen. <n> hat folgende Bedeutung:
+
+#on("u")#<n> Bedeutung #off("u")#
+ 0 Cursor blinkt nicht und ist unsichtbar
+ 1 Cursor blinkt und ist sichtbar
+ 2 Cursor blinkt nicht und ist sichtbar
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> Z#ie(1)# (Hex 1B 5A)
+
+kann der Zustand des Cursors von sichtbar auf unsichtbar und umgekehrt umge-
+schaltet werden.
+
+
+#type("8")##center##ib(3)#8.3 Zeichensatz einstellen#ie(3)##type("elite")#
+
+Da die Zeichens„tze von Basis und Apple unterschiedlich sind, muá hier bei
+den Parametern unterschieden werden. Das Kommando zur Einstellung des Zei-
+chensatzes lautet in beiden F„llen
+
+ #ib(1)#<ESC> z#ie(1)# <n> (Hex 1B 7A <n>)
+
+wobei <n> ein Byteparameter ist. Beim Apple hat <n> folgende Bedeutung:
+
+<n> Zeichensatz
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 1 Full Ascii: 128 Zeichen, ASCII, normale, inverse und blinkende Zei-
+ chen
+ 4 Ascii: 128 Zeichen, ASCII, normale und blinkende Zeichen
+
+Beim Basis hat <n> folgende Bedeutung:
+
+<n> Zeichensatz
+#rpos(16.2)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+ 0 = Apple II: 64 Zeichen, ASCII, normale, inverse und blinkende Zeichen
+ 1 = Full Ascii: 128 Zeichen, ASCII, normale, inverse und blinkende Zeichen
+ 2 = Deutsch: 128 Zeichen, deutsch, normale und inverse Zeichen
+ 4 = Ascii: 128 Zeichen, ASCII, normale und inverse Zeichen
+ 6 = APL: 128 Zeichen, APL, normale und inverse Zeichen
+
+#text end#
+#clear pos#
+#free(1.716852)#
+
+
+ 53
+#page##--------------------------------- Ende der Seite 53 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+ Und mit blinkenden statt inversen Zeichen:
+ 8 = Apple II: 64 Zeichen, ASCII, normale, blinkende und inverse Zeichen (!)
+ 9 = Full Ascii: 128 Zeichen, ASCII, normale, blinkende und inv. Zeichen (!)
+10 = Deutsch: 128 Zeichen, deutsch, normale und blinkende Zeichen
+12 = Ascii: 128 zeichen, ASCII, normale und blinkende Zeichen
+14 = APL: 128 Zeichen, APL, normale und blinkende Zeichen
+
+Einige ausgew„hlte Zeichens„tze k”nnen auch in der Kommandozeile eingestellt
+werden.
+
+
+#type("8")##center##ib(3)#8.4 Texthardcopy#ie(3)##type("elite")#
+
+Einen Ausdruck des Textbildschirminhaltes auf dem Drucker kann man mit dem
+Kommando
+
+ #ib(1)#<ESC> P#ie(1)# (Hex 1B 50)
+
+erreichen. Der auf dem Drucker eingestellte Schrifttyp wird nicht ver„n-
+dert. Es werden 24 Zeilen gedruckt, die Statuszeile wird nicht gedruckt,
+sondern die "darunterliegende" 24. Textzeile. Nach jeder Zeile wird <CR> und
+<LF> gedruckt, der Drucker sollte deshalb kein Autolinefeed bei <CR> durch-
+fhren.
+
+Inverse Bildschirmzeichen (80..FF) werden durch Doppeldruck (dunkler) her-
+vorgehoben, Controlcharacter (00..1F und 80..9F) werden unterstrichen dar-
+gestellt, das Punktraster (7F und FF) wird als unterstrichenes # darge-
+stellt.
+
+
+#type("8")##center##ib(3)#8.5 Zeichen-Attribute#ie(3)##type("elite")#
+
+Die Zeichenattribute werden mit dem Kommando
+
+ #ib(1)#<ESC> G#ie(1)# <n> (Hex 1B 47 <n>)
+
+eingestellt. <n> ist ein Byteparameter, der folgende Werte annehmen kann:
+
+#on("u")#<n> Attribute #off("u")#
+ 0 Sichtbare, normale Zeichen
+ 1 Unsichtbare Zeichen, es werden Leerzeichen dargestellt
+ 4 Sichtbare, inverse Zeichen
+ 5 Unsichtbare Zeichen, es werden inverse Leerzeichen dargestellt.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> (#ie(1)# (Hex 1B 28)
+
+kann auf normale Darstellung umgeschaltet werden (wirkt „hnlich <ESC> G 0,
+schaltet aber nicht auf sichtbare Darstellung, falls unsichtbar).
+
+#text end#
+#clear pos#
+#free(04.468519e-1)#
+
+
+#right#54
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 54 -----------#
+#center##on("b")#8. Spezielle Kommandos im Textmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Mit dem Kommando
+
+ #ib(1)#<ESC> )#ie(1)# (Hex 1B 29)
+
+kann auf inverse Darstellung umgeschaltet werden (wirkt „hnlich <ESC> G 4,
+schaltet aber nicht auf sichtbare Darstellung, falls unsichtbar).
+
+
+#type("8")##center##ib(3)#8.6 Bildhintergrund hell/dunkel#ie(3)##type("elite")#
+
+Die Bildschirmdarstellung kann von heller Schrift auf dunklem Grund (be-
+zglich eines gel”schten Bildschirms) umgeschaltet werden auf dunkle Schrift
+auf hellem Grund. Die Darstellung "schwarz auf weiá" ist auf einigen Monito-
+ren augenfreundlicher.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> b#ie(1)# (Hex 1B 62)
+
+kann die dunkle Schrift auf weiáem Grund eingeschaltet werden. Die Darstel-
+lung von inverser und normaler Schrift wird vertauscht.
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> d#ie(1)# (Hex 1B 64)
+
+kann helle Schrift auf dunklem Grund eingeschaltet werden.
+
+
+#type("8")##center##ib(3)#8.7 Zeichentransfer zum Host#ie(3)##type("elite")#
+
+Der Host kann Teile oder den ganzen Bildschirm vom Terminal lesen. Alle
+Zeichen werden als Bytes gesendet, bei denen ein gesetztes Bit 7 Invers-
+schrift anzeigt.
+
+
+#type("8")##center##ib(3)#8.7.1 Ein Zeichen senden#ie(3)##type("elite")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 8#ie(1)# (Hex 1B 38)
+
+wird nur das Zeichen an der Cursorposition gesendet. Die Cursorposition
+„ndert sich nicht. Der Cursor muá nicht sichtbar sein.
+
+
+#text end#
+#clear pos#
+#free(2.563519)#
+
+
+ 55
+#page##--------------------------------- Ende der Seite 55 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#8.7.2 Eine Zeile senden#ie(3)##type("elite")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 6#ie(1)# (Hex 1B 36)
+
+wird die Zeile, in der der Cursor steht (genauer: die Zeile der Cursorrow,
+falls der Cursor unsichtbar ist) an den Host gesendet. Falls der Cursor in
+Zeile 24 steht, wird nicht die Stauszeile, sondern die 24. Textzeile gesen-
+det. Im Anschluá an die Zeile werden eventuell ein oder zwei eingestellte
+Zeilenbegrenzer gesendet (Lineterminator). Die Programmierung der Begrenzer
+ist in Abschnitt 8.7.4 beschrieben. Es werden also 80 bis 82 Zeichen gesen-
+det. Die Cursorposition „ndert sich durch das Kommando nicht.
+
+
+#type("8")##center##ib(3)#8.7.3 Eine Seite senden#ie(3)##type("elite")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 7#ie(1)# (Hex 1B 37)
+
+wird die gesamte Bildschirmseite an den Host gesendet. Im Anschluá an jede
+Zeile werden (falls eingestellt) Zeilenbegrenzer gesendet. Im Anschluá an
+die gesamte Seite wird ein (eingestellter) Seitenbegrenzer (Pageterminator)
+gesendet. Es werden also je nach Zeilen- und Seitenbegrenzer 1920 bis 1969
+Zeichen gesendet. Die Statuszeile wird nicht gesendet, sondern die "darun-
+terliegende" 24. Textzeile. Die Programmierung der Zeilen- und Seitenbe-
+grenzer ist in Abschnitt 8.7.4 beschrieben. Die Cursorposition „ndert sich
+durch dieses Kommando nicht.
+
+
+#type("8")##center##ib(3)#8.7.4 Terminatorzeichen definieren#ie(3)##type("elite")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> x 1#ie(1)# <l1> <l2> (Hex 1B 78 31 <l1><l2>)
+
+k”nnen die Zeilenbegrenzer der Sendekommandos festgelegt werden. <l1> und
+<l2> sind dabei Byteparameter, die den Wertebereich 0 bis 255 berstrei-
+chen. Ist ein Parameter Hex 00, dann wird dieses Zeichen nicht gesendet.
+Wenn man also das Kommando (Hex) 1B 78 31 00 00 sendet, wird kein Begren-
+zerzeichen nach der Zeile gesendet.
+Voreingestellt ist ein Begrenzerzeichen; und zwar US (Hex 1F).
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> x 4#ie(1)# <p> (Hex 1B 78 34 <p>)
+
+kann der Seitenbegrenzer des Kommandos #ib(1)#<ESC> 7#ie(1)# festgelegt werden. <p> ist
+ein Byteparameter, der den Wertebereich von 0 bis 255 berstreicht. Ist <p>
+Hex 00, dann wird kein Seitenbegrenzer gesendet.
+Voreingestellt ist <p> = <CR> (Hex 0D).
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#56
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 56 -----------#
+#center##on("b")#8. Spezielle Kommandos im Textmodus#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#8.7.5 Cursorposition senden#ie(3)##type("elite")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> ?#ie(1)# (Hex 1B 3F)
+
+kann der Host die Position des Textcursors abfragen. Es wird eine Folge von
+3 Bytes gesendet: <y+32> <x+32> <CR>
+
+<y+32> ist die y-Position + 32, <x+32> die x-Position + 32. Beide Parameter
+k”nnen fr den Befehl #ib(1)#<ESC> =#ie(1)# <y+32> <x+32> verwendet werden, da Sie den
+gleichen Wertebereich berstreichen.
+
+
+#type("8")##center##ib(3)#8.8 Textseite auf Diskette speichern/laden#ie(3)##type("elite")#
+
+Genau wie Graphikseiten kann auch die Textseite auf Diskette geschrieben und
+zu einem sp„teren Zeitpunkt wieder zurckgeladen werden. Bei der Textseite
+wird auáerdem noch die aktuelle Cursorposition geladen/geschrieben. Man kann
+sich zum Beispiel eine Datei Seitenweise auf dem Bildschirm anzeigen lassen
+und diese Seiten auf Diskette abspeichern. Sp„ter kann man die Datei Offline
+(im Localmodus) Seitenweise ansehen.
+
+Bis zu 8 Textseite lassen sich auf Diskette speichern und wieder abrufen.
+Die "F„cher" fr die Textseiten sind unabh„ngig von denen fr die Graphik-
+seiten.
+Die Seiten werden unabh„ngig von REVVID (Schwarz auf Weiá) immer NORVID
+(also Weiá auf Schwarz) abgespeichert. Beim Laden der Seite wird sie je nach
+REVVID/NORVID dargestellt.
+
+Das Kommando fr diese Operationen lautet
+
+ #ib(1)#<ESC> S#ie(1)# <n> (Hex 1B 53 <n>).
+
+<n> ist ein Byteparameter mit dem Wertebereich 0 bis 31, wobei die Bits
+folgendermaáen belegt sind:
+Bit 0..2 : "Fachnummer" der Textseite auf der Diskette (0 bis 7)
+Bit 3 : Bei Textseiten immer 0 (Bei Graphikseiten immer 1)
+Bit 4 : 0 heiát: die Textseite wird von der Diskette gelesen,
+ 1 heiát: die Textseite wird auf die Diskette geschrieben.
+
+Wird die Textseite auf die Diskette geschrieben, dann wird eine eventuell
+schon in diesem "Fach" vorhandene Textseite berschrieben.
+
+Fr Insider: Jede Textseite belegt einen halben Track (2k). Die 8 Textseiten
+ befindenden auf den Tracks 6 bis 9 in aufsteigender Reihenfol-
+ ge.
+
+
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+ 57
+#page##--------------------------------- Ende der Seite 57 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#9. Verschiedene Steuerkommandos#ie(3)##off("u")##off("i")##type("elite")#
+
+
+#type("8")##center##ib(3)#9.1 Signalton#ie(3)##type("elite")#
+
+Mit
+ #ib(1)#<CTRL G>#ie(1)# (Hex 07)
+
+wird ein kurzer Signalton ausgegeben. Ein Warnton des Terminals ist sch„r-
+fer (heller).
+
+
+#type("8")##center##ib(3)#9.2 Keyboardclick#ie(3)##type("elite")#
+
+Der Tastaturclick wird fr fast alle Tasten erzeugt. Ausnahmen sind die
+<SHIFT> und die <CTRL> Tasten, sowie beim Apple die Apfeltasten. Der Tasta-
+turclick kann in der ersten Kommandozeile abgeschaltet werden (CLK OFF) oder
+mit dem Kommando
+
+ #ib(1)#<ESC> <#ie(1)# (Hex 1B 3C)
+
+vom Host. Mit dem Kommando
+
+ #ib(1)#<ESC> >#ie(1)# (Hex 1B 3E)
+
+kann der Keyboardclick wieder eingeschaltet werden.
+
+
+#type("8")##center##ib(3)#9.3 Bildschirmausgabe/Druckerausgabe#ie(3)##type("elite")#
+
+Die Bildschirmausgabe, die ja normalerweise eingeschaltet ist, kann in der
+Kommandozeile abgeschaltet werden (SCRNOFF) oder vom Host mit dem Kommando
+
+ #ib(1)#<ESC> `#ie(1)# (Hex 1B 60)
+
+abgeschaltet werden. Bis auf das Kommando
+
+ #ib(1)#<ESC> a#ie(1)# (Hex 1B 61)
+
+werden keine Escape-Squenzen oder Control-Codes interpretiert. Mit <ESC> a
+wird die Bildschirmausgabe wieder zugelassen.
+
+Die Druckerausgabe kann mit dem Kommando
+
+ #ib(1)#<ESC> @#ie(1)# (Hex 1B 40)
+
+eingeschaltet werden. Man kann dann Texte parallel auf Drucker und Bild-
+schirm ausgeben. In der ersten Kommandozeile kann die Druckerausgabe auch
+ein- und ausgeschaltet werden.
+#text end#
+#clear pos#
+#free(1.293519)#
+
+
+#right#58
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 58 -----------#
+#center##on("b")#9. Verschiedene Steuerkommandos#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Man kann zum Beispiel den Schrifttyp des Druckers im Local-Modus umschal-
+ten, wenn man in der Kommandozeile die Druckerausgabe (PRT ON) einschaltet.
+Dazu kann man sich auch eine Funktionstaste belegen, die Bildschirmausgabe
+abschaltet, Druckerausgabe einschaltet, den Schrifttyp umschaltet, Drucker-
+ausgabe wieder ausschaltet und Bildschirmausgabe wieder einschaltet.
+
+Abgeschaltet wird die Druckerausgabe mit dem Kommando
+
+ #ib(1)#<ESC> A#ie(1)# (Hex 1B 41)
+
+
+#type("8")##center##ib(3)#9.4 Scroll/Page-Modus#ie(3)##type("elite")#
+
+Steht der Cursor in der letzten Zeile und soll er in die n„chst tiefere
+gebracht werden (<DOWN>, <TAB>, <NEWLINE> etc.), dann gibt es entweder die
+M”glichkeit, daá der Bildschirm nach oben gescrollt wird, d.h. die 1. Zeile
+verschwindet und die 24. Zeile wird gel”scht, oder daá der Cursor in der
+ersten Bildschirmzeile wieder auftaucht, ohne daá der Bildschirminhalt ver-
+„ndert wird. Die erste M”glichkeit heiát SCROLL-Modus, die zweite PAGE-
+Modus. Die Umschaltung kann entweder in der ersten Kommandozeile erfolgen
+oder mit dem Kommando
+
+ #ib(1)#<ESC> H#ie(1)# (Hex 1B 48).
+
+In der Kommandozeile hat man die Informationsm”glichkeit, welcher Modus
+gerade aktiv ist.
+
+
+#type("8")##center##ib(3)#9.5 Belegung der Funktionstasten#ie(3)##type("elite")#
+
+Eine ntzliche Angelegenheit sind die programmierbaren Funktionstasten. Die
+Codes der Funktionstasten sind unter anderem in Anhang A zu finden. Funk-
+tionstasten k”nnen im Local-Modus aufgerufen werden, zum Beispiel fr h„u-
+fig gebrauchte Terminalkommandos oder l„ngere Kommandosequenzen (Graphikmo-
+dus). Im Online-Modus kann man z.B. Betriebssystemkommandos auf Funktion-
+stasten legen.
+
+Die L„nge der Zeichen auf allen Funktionstasten darf zusammen nicht 4095
+Zeichen berschreiten. Ein akustisches Warnsignal ert”nt, wenn die Funk-
+tionstastentabelle voll ist. Soll die Funktionstastendefinition auch noch
+nach dem Abschalten des Terminals erhalten bleiben, dann muá in der Komman-
+dozeile <SHIFT S> gegeben werden, damit der Setup samt Funktionstastende-
+finitionen auf die Diskette geschrieben wird.
+
+#text end#
+#clear pos#
+#free(3.410185)#
+
+
+ 59
+#page##--------------------------------- Ende der Seite 59 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Mit dem Kommando
+
+ #ib(1)#<ESC> e#ie(1)# <d...> <t> (Hex 1B 65 <d...><t>)
+
+wird eine Taste belegt. <d...> und <t> sind Byteparameter. <d...> ist eine
+Folge von Datenbytes, deren Bit 7 = 0 sein muá. <t> ist der Code der Funk-
+tionstaste (Bit 7 = 1), auf die die Sequenz gelegt werden soll. Durch diese
+Einschr„nkung sind keine rekursiven (sich selbst aufrufenden) Tastenkomman-
+dos m”glich, man kann allerdings z.B. auch nicht alle bin„ren Parameter auf
+Tasten legen (Man sollte dezimale Parameter benutzen). Die Cursortasten etc.
+k”nnen nicht belegt werden.
+Um die Original-Tastencodes wieder zu benutzen, gibt es drei M”glichkeiten:
+
+- Die Tabelle der Tastendefinitionen wird ganz gel”scht (Abschnitt 9.6).
+- Die Definition auf einzelnen Tasten wird durch <ESC> e <t> gel”scht. <t>
+ ist dabei der Code einer zu l”schenden Taste.
+- In der ersten Kommandozeile wird F CODE eingeschaltet oder das Kommando
+
+ #ib(1)#<ESC> c#ie(1)# (Hex 1B 63)
+
+ gegeben. Dieses Kommando schaltet um, ob immer Tastencodes (A1..EF) oder,
+ bei belegten Tasten, die programmierte Sequenz geliefert werden soll. Im
+ Graphikmodus m”chte man eventuell die griechischen Sonderzeichen auf den
+ Funktionstasten benutzen (F CODE) und nicht die programmierten Tasten-
+ strings (F STRG).
+
+
+#type("8")##center##ib(3)#9.5.1 Local-Escape#ie(3)##type("elite")#
+
+Um Funktionstasten mit Terminalkommandos auch im Online-Modus benutzen zu
+k”nnen (zum Beispiel ein Bildschirm Hardcopy) wird ein spezielles ESC-Zei-
+chen statt <ESC> (Hex 1B) verwendet.
+Das Zeichen
+
+ #ib(1)#<LOCESC>#ie(1)# (Hex 9B)
+
+teilt dem Terminal mit, daá die nun folgende Escape-Sequenz nicht an den
+Host gesendet wird (was bei <ESC> der Fall w„re), sondern vom Terminal in-
+terpretiert werden muá.
+Im Local-Modus wirkt ein <LOCESC> wie ein normales <ESC>, d.h. das Kommando
+wird sowieso vom Terminal interpretiert.
+
+
+#type("8")##center##ib(3)#9.5.2 Makrokommandos#ie(3)##type("elite")#
+
+Ein Makrokommando hat (mindestens) drei Aufgaben:
+- Der Host kann dem Terminal neue ESC-Sequenzen (mit Parametern) definieren,
+ z.B. um andere Terminals zu emulieren.
+- Nicht nur das Terminal kann Funktionstasten aufrufen, sondern auch der
+ Host, wenn die Funkionstaste als Makro aufgerufen wird.
+- Der Datentransfer vom Host zum Terminal kann durch Makros als Abkrzungen
+ h„ufig benutzter Zeichenfolgen beschleunigt werden.
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#60
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 60 -----------#
+#center##on("b")#9. Verschiedene Steuerkommandos#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+Ein Makro wird wie eine Funktionstaste mit dem Kommando
+
+
+ #ib(1)#<ESC> e#ie(1)# <d...> <t> (Hex 1B 65 <d...><t>)
+
+definiert. <d...> und <t> sind Byteparameter. <d...> ist eine Folge von
+Datenbytes, deren Bit 7 = 0 sein muá. <t> ist der Code der Funktionstaste
+(Bit 7 = 1) oder mit anderen Worten der Makroname.
+Es sind alle Codes fr <t> zugelassen, die auch bei der Funktionstastende-
+finition zugelassen sind.
+
+Ein Makro kann sowohl vom Terminal (auch im F CODE-Modus) als auch vom Host
+mit
+
+ #ib(1)#<ESC> <Macrocode>#ie(1)# (Hex 1B <Makrocode>)
+
+aufgerufen werden. Dem Terminal wird die Zeichensequenz des Makros so vorge-
+setzt, als k„me sie von der Tastatur im Local-Modus. Wird das Makro also
+bereits im Local-Modus aufgerufen, hat das immer noch den Vorteil, daá man
+im F CODE-Modus weiterhin programmierte Funktionstasten benutzen kann.
+Anmerkung: Wird das <ESC> vor dem <Makrocode> weggelassen, dann wird der
+ Code <Makrocode> ohne Makroausfhrung an das Terminal gesendet
+ und i.d.R. als inverses Zeichen dargestellt.
+
+Sollen Byteparameter in die Zeichensequenz des Makros bernommen werden, die
+zur Zeit der Makrodefinition noch nicht feststehen, dann kann man einen
+Platzhalter mit dem Code Hex 81 an der Stelle einsetzen. Der Code Hex 81
+kann auf der Tastatur durch <SHIFT DELETE> erzeugt werden.
+Wird bei der Makroausfhrung ein solcher Code gefunden, wartet das Terminal
+auf ein Byte von Tastatur, wenn das Makro im Local-Modus aufgerufen wurde,
+oder vom Host, wenn das Makro vom Host aufgerufen wurde. Es drfen beliebig
+viele Codes 81 in der Makrozeichensequenz vorhanden sein. Jeder Code wird
+durch ein weiteres Zeichen von Host oder Tastatur ersetzt.
+
+
+#type("8")##center##ib(3)#9.5.3 Startup-Makro#ie(3)##type("elite")#
+
+Ein besonderes Makro hat den Code Hex EF. Dieser Code kann auf der Tastatur
+durch <SHIFT BOTTOMRIGHT> (beim Apple <OA RIGHT>) erzeugt werden.
+
+Dieses Makro wird bei einem RESET des Terminals (Hardwarereset oder <ESC> 0)
+oder beim Einschalten des Terminals aufgerufen. Der Bildschirm und die Gra-
+phikseiten werden vorher gel”scht.
+
+
+#text end#
+#clear pos#
+#free(2.986852)#
+
+
+ 61
+#page##--------------------------------- Ende der Seite 61 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+#type("8")##center##ib(3)#9.6 Tabellen und Puffer l”schen#ie(3)##type("elite")#
+
+Das Terminal enth„lt den Empfangspuffer, den Sendepuffer, den Druckerspoo-
+ler und die Tabelle der Tastendefinitionen. Um einen der Puffer oder die
+Tabelle zu l”schen, kann das Kommando
+
+ #ib(1)#<ESC> <DEL>#ie(1)# <n> (Hex 1B 7F <n>)
+
+verwendet werden. <n> ist ein Byteparameter mit dem Wertebereich 0 bis 15
+und hat folgende Bedeutung:
+
+#on("u")#<n> Gel”schte Tabelle oder Puffer#off("u")#
+ 0 Keine
+ 1 Tastendefinitionen
+ 2 Druckerspooler
+ 3 Empfangspuffer
+ 4 Sendepuffer
+
+Zu beachten ist, daá zwar der Sendepuffer gel”scht wird, aber eine eventu-
+ell gestoppte šbertragung (TX OFF) nicht wider gestartet wird.
+
+
+#type("8")##center##ib(3)#9.7 Zeitverz”gerung#ie(3)##type("elite")#
+
+Mit dem Kommando
+
+ #ib(1)#<ESC> 9#ie(1)# <n> (Hex 1B 39 <n>)
+
+kann eine Zeitverz”gerung aufgerufen werden. Man kann zum Beispiel ein Fa-
+denkreuz darstellen, die Zeitverz”gerung aufrufen und das Fadenkreuz wieder
+l”schen. <n> ist ein Byteparameter mit dem Wertebereich von 0 bis 255. Die
+Verz”gerung betr„gt ca. <n> * 2 ms.
+
+
+#type("8")##center##ib(3)#9.8 Transparentmodi#ie(3)##type("elite")#
+
+Der Monitor- und der Hexadezimalmodus sind zum Test von unbekannten Emp-
+fangsdaten oder zum Analysieren der Steuerzeichenausgabe von unbekannten
+Programmen gedacht.
+
+
+#type("8")##center##ib(3)#9.8.1 Monitor-Modus#ie(3)##type("elite")#
+
+Im Monitor-Modus werden druckbare Zeichen wie normal dargestellt. Control-
+zeichen (Hex 00..1F und 80..9F) werden invertiert dargestellt. Im APL-Zei-
+chensatz kann man diese inversen Controlzeichen von den Zeichen mit Code Hex
+A0..FF unterscheiden, die auch invers dargestellt werden.
+Der Monitormode kann in der ersten Kommandozeile ein- und ausgeschaltet
+werden. Mit dem Kommando
+
+ #ib(1)#<ESC> U#ie(1)# (Hex 1B 55)
+
+#text end#
+#clear pos#
+#free(02.351852e-2)#
+
+
+#right#62
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 62 -----------#
+#center##on("b")#9. Verschiedene Steuerkommandos#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#clearpos#
+#rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")##rpos(16.2)##fillchar(" ")#
+#text begin#
+kann der Monitormode eingeschaltet werden. Alle Zeichen werden ohne Inter-
+pretation ausgegeben, Ausnahmen sind
+
+ #ib(1)#<ESC> u#ie(1)# (Hex 1B 75)
+
+und
+
+ #ib(1)#<ESC> X#ie(1)# (Hex 1B 58)
+
+die den Monitormodus ausschalten.
+
+
+#type("8")##center##ib(3)#9.8.2 Hexadezimal-Modus#ie(3)##type("elite")#
+
+In diesem Modus werden nicht die Zeichen auf dem Bildschirm gedruckt, son-
+dern ihr ASCII-Code in hexadezimaler Schreibweise mit zwei nachfolgenden
+Blanks. Der Hexmode kann mit dem Kommando
+
+ #ib(1)#<ESC> u#ie(1)# (Hex 1B 75)
+
+ein- und ausgeschaltet werden. Alle Zeichen werden ohne Interpretation aus-
+gegeben, auáer #ib(1)#<ESC> u#ie(1)# und
+
+ #ib(1)#<ESC> X#ie(1)# (Hex 1B 58),
+
+die den Hexmodus wieder ausschalten. Auch der Hexmode kann in der ersten
+Kommandozeile ein- und ausgeschaltet werden.
+
+
+#type("8")##center##ib(3)#9.8.3 Einzelne Control-Zeichen anzeigen#ie(3)##type("elite")#
+
+Um nur einzelne Controlzeichen auf dem Bildschirm darzustellen, z.B. fr den
+unteren Teil des APL-Zeichensatzes (Codes 0 bis 31 oder 128 bis 159), gibt
+es das Kommando
+
+ #ib(1)#<ESC> F#ie(1)# <z> (Hex 1B 46 <z>).
+
+<z> ist dabei ein Byteparameter mit dem Wertebereich 0 bis 255, vorzugswei-
+se 0 bis 31. <z> wir mit invertiertem Bit 7 (normal/invers) in den Bild-
+schirmspeicher an der aktuellen Cursorposition geschrieben.
+#text end#
+#clear pos#
+#free(5.103519)#
+
+
+ 63
+#page##--------------------------------- Ende der Seite 63 -----------#
diff --git a/system/ruc-terminal/unknown/doc/TINHALT.PRT b/system/ruc-terminal/unknown/doc/TINHALT.PRT
new file mode 100644
index 0000000..cfb865c
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/TINHALT.PRT
@@ -0,0 +1,120 @@
+#type ("elite")##limit (16.2)#
+#kopf ("Bedienungshandbuch zum ruc - Graphikterminal")#
+#h("", "Inhalt ")#
+
+1. Einige Worte zuvor ........................... 1
+2. Die Hardware ................................. 2
+2.1 Die serielle Schnittstelle .................. 2
+2.2 Der Reset ................................... 2
+3. Die Kommandozeile ............................ 3
+3.1 Tastenfunktionen in der Kommandozeile ....... 3
+3.2 Setup ....................................... 4
+3.3 Die zweite Kommandozeile .................... 4
+3.4 Die zweite Kommandozeile .................... 6
+4. Die Statuszeile .............................. 8
+4.1 Spoolerstatus ............................... 8
+4.2 Empf„ngerstatus ............................. 8
+4.3 Senderstatus ................................ 9
+4.4 Busy - Anzeige .............................. 9
+4.5 Online/Local - Anzeige ...................... 9
+5. Die Bedeutung der Tasten ..................... 10
+5.1 Die Funktions- und Steuertasten ............. 10
+5.2 Die TVI-Emulation ........................... 13
+6. Der Graphikmodus ............................. 16
+6.1 Allgemeines ................................. 16
+6.2 Koordinaten und Parameterbergabe ........... 16
+6.2.1 Cursorposition/Fadenkreuz ................. 16
+6.2.2 Bin„re oder dezimale Parameter ............ 17
+6.2.2.1 Bin„re Parameter ........................ 17
+6.2.2.2 Dezimale Parameter ...................... 17
+6.2.3 Absolute oder relative Koordinaten ........ 18
+6.2.4 Byteparameter ............................. 18
+6.3 Die Graphikparameter ........................ 19
+6.3.1 Strichdicke ............................... 19
+6.3.2 Farbe/Helligkeit .......................... 19
+6.3.3 Linientyp ................................. 20
+6.3.3.1 Selbstdefinierte Linientypen (Pattern) .. 20
+6.3.4 Bitverknpfungen .......................... 21
+6.3.5 Multiparametereinstellung ................. 22
+6.4 Graphikseiten ............................... 22
+6.4.1 Die sichtbare Seite und die Arbeitsseite .. 22
+6.4.1.1 80-Zeichen Text und Graphik ............. 23
+6.4.2 Aufbau einer Graphikseite ................. 23
+6.4.3 Operationen auf den Graphikseiten ......... 24
+6.4.4 Laden einer Graphikseite vom Host ......... 25
+6.4.5 Graphik auf Diskette speichern/laden ...... 26
+6.5 Textdarstellung im Graphikmodus ............. 26
+6.5.1 Zeichendarstellung ........................ 27
+6.5.1.1 ZeichengrӇe und Schreibrichtung ........ 27
+6.5.1.2 Dicke, Farbe etc. ....................... 28
+6.5.1.3 Zeichens„tze und Attribute .............. 28
+6.5.1.4 Zeichen berschreiben ................... 29
+6.5.2 Textkommandos im Graphikmodus ............. 30
+6.5.2.1 Die Cursorpositionierung ................ 30
+6.5.2.2 L”schbefehle ............................ 33
+6.6 Die Graphikkommandos ........................ 33
+6.6.1 Draw's und Move's ......................... 33
+6.6.1.1 Punkt setzen ............................ 34
+6.6.1.2 Move-Befehle ............................ 34
+6.6.1.3 Draw-Befehle ............................ 35
+6.6.1.4 Turtle-Graphik .......................... 35
+6.6.2 Komplexere Zeichenkommandos ............... 36
+6.6.2.1 Kreise und Kreissegmente ................ 36
+6.6.2.2 Rechtecke ............................... 37
+6.6.2.3 B”gen und Ellipsen ...................... 38
+6.6.2.4 Gefllte Fl„chen ........................ 39
+6.6.2.4.1 Definition des Musters ................ 40
+6.7 Graphikdaten zum Host ....................... 40
+6.7.1 Graphikseiten zum Host .................... 40
+6.7.2 Cursorposition zum Host ................... 41
+6.7.3 Einzelne Bits zum Host .................... 41
+6.7.4 Parameter zum Host ........................ 42
+6.8 Graphikhardcopy ............................. 43
+6.8.1 Der Druckertreiber ........................ 43
+6.8.2 Die Hardcopyparameter ..................... 44
+7. Die Parameter der seriellen Schnittstelle .... 46
+7.1 Das šbertragungsformat ...................... 46
+7.2 Die šbertragungsparameter ................... 46
+7.2.1 Baudrate .................................. 47
+7.2.2 Datenbits ................................. 47
+7.2.3 Stopbits .................................. 48
+7.2.4 Parit„tsbit ............................... 48
+7.2.5 šbertragungsfehler ........................ 48
+7.3 Die Fluákontrolle ........................... 48
+7.3.1 XON/XOFF .................................. 49
+7.3.2 DTR/DSR ................................... 50
+7.3.3 RTS/CTS ................................... 50
+7.4 Echo und Local/Online ....................... 51
+8. Spezielle Kommandos im Textmodus ............. 52
+8.1 Weitere Cursorpositionierungskommandos ...... 52
+8.2 Cursormodus ................................. 53
+8.3 Zeichensatz einstellen ...................... 53
+8.4 Texthardcopy ................................ 54
+8.5 Zeichen-Attribute ........................... 54
+8.6 Bildhintergrund hell/dunkel ................. 55
+8.7 Zeichentransfer zum Host .................... 55
+8.7.1 Ein Zeichen senden ........................ 55
+8.7.2 Eine Zeile senden ......................... 56
+8.7.3 Eine Seite senden ......................... 56
+8.7.4 Terminatorzeichen definieren .............. 56
+8.7.5 Cursorposition senden ..................... 57
+8.8 Textseite auf Diskette speichern/laden ...... 57
+9. Verschiedene Steuerkommandos ................. 58
+9.1 Signalton ................................... 58
+9.2 Keyboardclick ............................... 58
+9.3 Bildschirmausgabe/Druckerausgabe ............ 58
+9.4 Scroll/Page-Modus ........................... 59
+9.5 Belegung der Funktionstasten ................ 59
+9.5.1 Local-Escape .............................. 60
+9.5.2 Makrokommandos ............................ 60
+9.5.3 Startup-Makro ............................. 61
+9.6 Tabellen und Puffer l”schen ................. 62
+9.7 Zeitverz”gerung ............................. 62
+9.8 Transparentmodi ............................. 62
+9.8.1 Monitor-Modus ............................. 62
+9.8.2 Hexadezimal-Modus ......................... 63
+9.8.3 Einzelne Control-Zeichen anzeigen ......... 63
+Anhang A - ASCII Tabelle, Zeichens„tze, Parameter. 64
+Anhang B - Befehlsbersicht ...................... 70
+Anhang C - Default Funktionstastenbelegungen ..... 74
+Stichwortverzeichnis ............................. 75
diff --git a/system/ruc-terminal/unknown/doc/TINHALTP.PRT b/system/ruc-terminal/unknown/doc/TINHALTP.PRT
new file mode 100644
index 0000000..a41bbc1
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/TINHALTP.PRT
@@ -0,0 +1,157 @@
+#type ("elite")##limit (16.2)#
+#page##--------------------------------- Ende der Seite 0 -----------#
+#center##on("b")# Inhalt #off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)# Inhalt #ie(3)##off("u")##off("i")##type("elite")#
+
+1. Einige Worte zuvor ........................... 1
+2. Die Hardware ................................. 2
+2.1 Die serielle Schnittstelle .................. 2
+2.2 Der Reset ................................... 2
+3. Die Kommandozeile ............................ 3
+3.1 Tastenfunktionen in der Kommandozeile ....... 3
+3.2 Setup ....................................... 4
+3.3 Die zweite Kommandozeile .................... 4
+3.4 Die zweite Kommandozeile .................... 6
+4. Die Statuszeile .............................. 8
+4.1 Spoolerstatus ............................... 8
+4.2 Empf„ngerstatus ............................. 8
+4.3 Senderstatus ................................ 9
+4.4 Busy - Anzeige .............................. 9
+4.5 Online/Local - Anzeige ...................... 9
+5. Die Bedeutung der Tasten ..................... 10
+5.1 Die Funktions- und Steuertasten ............. 10
+5.2 Die TVI-Emulation ........................... 13
+6. Der Graphikmodus ............................. 16
+6.1 Allgemeines ................................. 16
+6.2 Koordinaten und Parameterbergabe ........... 16
+6.2.1 Cursorposition/Fadenkreuz ................. 16
+6.2.2 Bin„re oder dezimale Parameter ............ 17
+6.2.2.1 Bin„re Parameter ........................ 17
+6.2.2.2 Dezimale Parameter ...................... 17
+6.2.3 Absolute oder relative Koordinaten ........ 18
+6.2.4 Byteparameter ............................. 18
+6.3 Die Graphikparameter ........................ 19
+6.3.1 Strichdicke ............................... 19
+6.3.2 Farbe/Helligkeit .......................... 19
+6.3.3 Linientyp ................................. 20
+6.3.3.1 Selbstdefinierte Linientypen (Pattern) .. 20
+6.3.4 Bitverknpfungen .......................... 21
+6.3.5 Multiparametereinstellung ................. 22
+6.4 Graphikseiten ............................... 22
+6.4.1 Die sichtbare Seite und die Arbeitsseite .. 22
+6.4.1.1 80-Zeichen Text und Graphik ............. 23
+6.4.2 Aufbau einer Graphikseite ................. 23
+6.4.3 Operationen auf den Graphikseiten ......... 24
+6.4.4 Laden einer Graphikseite vom Host ......... 25
+6.4.5 Graphik auf Diskette speichern/laden ...... 26
+6.5 Textdarstellung im Graphikmodus ............. 26
+6.5.1 Zeichendarstellung ........................ 27
+6.5.1.1 ZeichengrӇe und Schreibrichtung ........ 27
+6.5.1.2 Dicke, Farbe etc. ....................... 28
+6.5.1.3 Zeichens„tze und Attribute .............. 28
+6.5.1.4 Zeichen berschreiben ................... 29
+6.5.2 Textkommandos im Graphikmodus ............. 30
+6.5.2.1 Die Cursorpositionierung ................ 30
+6.5.2.2 L”schbefehle ............................ 33
+#text end#
+#free(02.351852e-2)#
+
+
+ i
+#page##--------------------------------- Ende der Seite 1 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+6.6 Die Graphikkommandos ........................ 33
+6.6.1 Draw's und Move's ......................... 33
+6.6.1.1 Punkt setzen ............................ 34
+6.6.1.2 Move-Befehle ............................ 34
+6.6.1.3 Draw-Befehle ............................ 35
+6.6.1.4 Turtle-Graphik .......................... 35
+6.6.2 Komplexere Zeichenkommandos ............... 36
+6.6.2.1 Kreise und Kreissegmente ................ 36
+6.6.2.2 Rechtecke ............................... 37
+6.6.2.3 B”gen und Ellipsen ...................... 38
+6.6.2.4 Gefllte Fl„chen ........................ 39
+6.6.2.4.1 Definition des Musters ................ 40
+6.7 Graphikdaten zum Host ....................... 40
+6.7.1 Graphikseiten zum Host .................... 40
+6.7.2 Cursorposition zum Host ................... 41
+6.7.3 Einzelne Bits zum Host .................... 41
+6.7.4 Parameter zum Host ........................ 42
+6.8 Graphikhardcopy ............................. 43
+6.8.1 Der Druckertreiber ........................ 43
+6.8.2 Die Hardcopyparameter ..................... 44
+7. Die Parameter der seriellen Schnittstelle .... 46
+7.1 Das šbertragungsformat ...................... 46
+7.2 Die šbertragungsparameter ................... 46
+7.2.1 Baudrate .................................. 47
+7.2.2 Datenbits ................................. 47
+7.2.3 Stopbits .................................. 48
+7.2.4 Parit„tsbit ............................... 48
+7.2.5 šbertragungsfehler ........................ 48
+7.3 Die Fluákontrolle ........................... 48
+7.3.1 XON/XOFF .................................. 49
+7.3.2 DTR/DSR ................................... 50
+7.3.3 RTS/CTS ................................... 50
+7.4 Echo und Local/Online ....................... 51
+8. Spezielle Kommandos im Textmodus ............. 52
+8.1 Weitere Cursorpositionierungskommandos ...... 52
+8.2 Cursormodus ................................. 53
+8.3 Zeichensatz einstellen ...................... 53
+8.4 Texthardcopy ................................ 54
+8.5 Zeichen-Attribute ........................... 54
+8.6 Bildhintergrund hell/dunkel ................. 55
+8.7 Zeichentransfer zum Host .................... 55
+8.7.1 Ein Zeichen senden ........................ 55
+8.7.2 Eine Zeile senden ......................... 56
+8.7.3 Eine Seite senden ......................... 56
+8.7.4 Terminatorzeichen definieren .............. 56
+8.7.5 Cursorposition senden ..................... 57
+8.8 Textseite auf Diskette speichern/laden ...... 57
+9. Verschiedene Steuerkommandos ................. 58
+9.1 Signalton ................................... 58
+9.2 Keyboardclick ............................... 58
+9.3 Bildschirmausgabe/Druckerausgabe ............ 58
+9.4 Scroll/Page-Modus ........................... 59
+#text end#
+#free(02.351852e-2)#
+
+
+#right#ii
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 2 -----------#
+#center##on("b")# Inhalt #off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+9.5 Belegung der Funktionstasten ................ 59
+9.5.1 Local-Escape .............................. 60
+9.5.2 Makrokommandos ............................ 60
+9.5.3 Startup-Makro ............................. 61
+9.6 Tabellen und Puffer l”schen ................. 62
+9.7 Zeitverz”gerung ............................. 62
+9.8 Transparentmodi ............................. 62
+9.8.1 Monitor-Modus ............................. 62
+9.8.2 Hexadezimal-Modus ......................... 63
+9.8.3 Einzelne Control-Zeichen anzeigen ......... 63
+Anhang A - ASCII Tabelle, Zeichens„tze, Parameter. 64
+Anhang B - Befehlsbersicht ...................... 70
+Anhang C - Default Funktionstastenbelegungen ..... 74
+Stichwortverzeichnis ............................. 75
+#text end#
+#free(16.11019)#
+
+
+ iii
+#page##--------------------------------- Ende der Seite 3 -----------#
diff --git a/system/ruc-terminal/unknown/doc/TSTICHP.PRT b/system/ruc-terminal/unknown/doc/TSTICHP.PRT
new file mode 100644
index 0000000..4f2a3e8
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/TSTICHP.PRT
@@ -0,0 +1,211 @@
+#type ("elite")##limit (16.2)#
+#pagenr (""224"", 75)#
+#page##--------------------------------- Ende der Seite 0 -----------#
+#center##on("b")# Stichwortverzeichnis #off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)# Stichwortverzeichnis #ie(3)##off("u")##off("i")##type("elite")#
+
+<BACKSPACE> ...................................... 14
+<BOTTOMLEFT> ..................................... 32
+<BOTTOMRIGHT> .................................... 32
+<CE> ............................................. 16
+<CE> ............................................. 31
+<CTRL G> ......................................... 58
+<CTRL HOME> ...................................... 32
+<CTRL K> ......................................... 14
+<CTRL L> ......................................... 14
+<CTRL N> ......................................... 49
+<CTRL O> ......................................... 49
+<CTRL SHIFT ^> ................................... 14
+<CTRL SHIFT _> ................................... 14
+<CTRL V> ......................................... 31
+<CTRL X> ......................................... 16
+<CTRL Z> ......................................... 14
+<CTRL Z> ......................................... 33
+<CTRL Q> ......................................... 49
+<CTRL S> ......................................... 49
+<DELETE> ......................................... 32
+<DOWN> ........................................... 31
+<ESC> ! .......................................... 24
+<ESC> $ .......................................... 16
+<ESC> % .......................................... 16
+<ESC> & .......................................... 29
+<ESC> ' .......................................... 29
+<ESC> ( .......................................... 29
+<ESC> ( .......................................... 54
+<ESC> ) .......................................... 29
+<ESC> ) .......................................... 55
+<ESC> * .......................................... 33
+<ESC> + .......................................... 33
+<ESC> , .......................................... 33
+<ESC> - .......................................... 41
+<ESC> . .......................................... 53
+<ESC> ............................................ 32
+<ESC> / .......................................... 25
+<ESC> 0 .......................................... 2
+<ESC> 4 .......................................... 42
+<ESC> 5 .......................................... 42
+<ESC> 6 .......................................... 56
+<ESC> 7 .......................................... 56
+<ESC> 7 .......................................... 56
+<ESC> 8 .......................................... 55
+<ESC> 9 .......................................... 62
+<ESC> : .......................................... 33
+<ESC> ; .......................................... 41
+<ESC> < .......................................... 58
+<ESC> <DEL> ...................................... 62
+<ESC> <Macrocode> ................................ 61
+#text end#
+#free(02.351852e-2)#
+
+
+ 75
+#page##--------------------------------- Ende der Seite 75 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+<ESC> <SPACE> .................................... 50
+<ESC> <SPACE> 0 .................................. 10
+<ESC> <SPACE> 1 .................................. 13
+<ESC> <SPACE> 6 .................................. 47
+<ESC> <SPACE> 7 .................................. 47
+<ESC> <SPACE> <SPACE> ............................ 46
+<ESC> = .......................................... 52
+<ESC> = .......................................... 57
+<ESC> > .......................................... 58
+<ESC> ? .......................................... 57
+<ESC> @ .......................................... 58
+<ESC> A .......................................... 59
+<ESC> D E ........................................ 51
+<ESC> D L ........................................ 51
+<ESC> D O ........................................ 51
+<ESC> E .......................................... 14
+<ESC> E .......................................... 52
+<ESC> F .......................................... 63
+<ESC> G .......................................... 29
+<ESC> G .......................................... 54
+<ESC> H .......................................... 59
+<ESC> I .......................................... 14
+<ESC> I .......................................... 52
+<ESC> J .......................................... 38
+<ESC> K .......................................... 37
+<ESC> L .......................................... 52
+<ESC> M .......................................... 52
+<ESC> N .......................................... 27
+<ESC> N .......................................... 30
+<ESC> O 0 ........................................ 19
+<ESC> O 0 ........................................ 28
+<ESC> O 1 ........................................ 19
+<ESC> O 2 ........................................ 19
+<ESC> O 3 ........................................ 20
+<ESC> O 4 ........................................ 21
+<ESC> O 5 ........................................ 22
+<ESC> O 5 ........................................ 43
+<ESC> O 6 ........................................ 20
+<ESC> O 7 ........................................ 22
+<ESC> O 7 ........................................ 42
+<ESC> O 7 ........................................ 44
+<ESC> O 8 ........................................ 36
+<ESC> O 9 ........................................ 36
+<ESC> O : ........................................ 40
+<ESC> P .......................................... 54
+<ESC> Q .......................................... 14
+<ESC> Q .......................................... 52
+<ESC> R .......................................... 14
+<ESC> R .......................................... 52
+<ESC> S .......................................... 26
+<ESC> S .......................................... 57
+<ESC> T .......................................... 33
+#text end#
+#free(02.351852e-2)#
+
+
+#right#76
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 76 -----------#
+#center##on("b")# Stichwortverzeichnis #off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+<ESC> U .......................................... 62
+<ESC> W .......................................... 14
+<ESC> W .......................................... 52
+<ESC> X .......................................... 63
+<ESC> X .......................................... 63
+<ESC> Y .......................................... 33
+<ESC> Z .......................................... 53
+<ESC> \ .......................................... 40
+<ESC> ^ .......................................... 44
+<ESC> _ .......................................... 41
+<ESC> ` .......................................... 58
+<ESC> a .......................................... 58
+<ESC> b .......................................... 55
+<ESC> c .......................................... 60
+<ESC> d .......................................... 55
+<ESC> e .......................................... 13
+<ESC> e .......................................... 60
+<ESC> e .......................................... 61
+<ESC> j .......................................... 52
+<ESC> m .......................................... 34
+<ESC> n .......................................... 35
+<ESC> o .......................................... 36
+<ESC> q .......................................... 34
+<ESC> r .......................................... 35
+<ESC> s .......................................... 38
+<ESC> u .......................................... 63
+<ESC> u .......................................... 63
+<ESC> u .......................................... 63
+<ESC> v .......................................... 34
+<ESC> w .......................................... 35
+<ESC> x 1 ........................................ 56
+<ESC> x 4 ........................................ 56
+<ESC> y .......................................... 33
+<ESC> z .......................................... 28
+<ESC> z .......................................... 53
+<ESC> { .......................................... 8
+<ESC> | .......................................... 39
+<ESC> } .......................................... 8
+<ESC> ~ .......................................... 43
+<HOME> ........................................... 32
+<LEFT> ........................................... 32
+<LF> ............................................. 14
+<LOCESC> ......................................... 60
+<RETURN> ......................................... 31
+<RIGHT> .......................................... 32
+<SHIFT CE> ....................................... 31
+<SHIFT CTRL HOME> ................................ 32
+<SHIFT CTRL HOME> ................................ 51
+<SHIFT HOME> ..................................... 32
+<SHIFT RETURN> ................................... 31
+<TAB> ............................................ 31
+<UP> ............................................. 31
+#text end#
+#free(02.351852e-2)#
+
+
+ 77
+#page##--------------------------------- Ende der Seite 77 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+XOFF ............................................. 49
+XON .............................................. 49
+#text end#
+#free(21.19019)#
+
+
+#right#78
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 78 -----------#
diff --git a/system/ruc-terminal/unknown/doc/TSTICHWO.PRT b/system/ruc-terminal/unknown/doc/TSTICHWO.PRT
new file mode 100644
index 0000000..ac6f011
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/TSTICHWO.PRT
@@ -0,0 +1,161 @@
+#type ("elite")##limit (16.2)#
+#pagenr (""224"", 75)##page (75)#
+#kopf ("Bedienungshandbuch zum ruc - Graphikterminal")#
+#h("", "Stichwortverzeichnis ")#
+
+<BACKSPACE> ...................................... 14
+<BOTTOMLEFT> ..................................... 32
+<BOTTOMRIGHT> .................................... 32
+<CE> ............................................. 16
+<CE> ............................................. 31
+<CTRL G> ......................................... 58
+<CTRL HOME> ...................................... 32
+<CTRL K> ......................................... 14
+<CTRL L> ......................................... 14
+<CTRL N> ......................................... 49
+<CTRL O> ......................................... 49
+<CTRL SHIFT ^> ................................... 14
+<CTRL SHIFT _> ................................... 14
+<CTRL V> ......................................... 31
+<CTRL X> ......................................... 16
+<CTRL Z> ......................................... 14
+<CTRL Z> ......................................... 33
+<CTRL Q> ......................................... 49
+<CTRL S> ......................................... 49
+<DELETE> ......................................... 32
+<DOWN> ........................................... 31
+<ESC> ! .......................................... 24
+<ESC> $ .......................................... 16
+<ESC> % .......................................... 16
+<ESC> & .......................................... 29
+<ESC> ' .......................................... 29
+<ESC> ( .......................................... 29
+<ESC> ( .......................................... 54
+<ESC> ) .......................................... 29
+<ESC> ) .......................................... 55
+<ESC> * .......................................... 33
+<ESC> + .......................................... 33
+<ESC> , .......................................... 33
+<ESC> - .......................................... 41
+<ESC> . .......................................... 53
+<ESC> ............................................ 32
+<ESC> / .......................................... 25
+<ESC> 0 .......................................... 2
+<ESC> 4 .......................................... 42
+<ESC> 5 .......................................... 42
+<ESC> 6 .......................................... 56
+<ESC> 7 .......................................... 56
+<ESC> 7 .......................................... 56
+<ESC> 8 .......................................... 55
+<ESC> 9 .......................................... 62
+<ESC> : .......................................... 33
+<ESC> ; .......................................... 41
+<ESC> < .......................................... 58
+<ESC> <DEL> ...................................... 62
+<ESC> <Macrocode> ................................ 61
+<ESC> <SPACE> .................................... 50
+<ESC> <SPACE> 0 .................................. 10
+<ESC> <SPACE> 1 .................................. 13
+<ESC> <SPACE> 6 .................................. 47
+<ESC> <SPACE> 7 .................................. 47
+<ESC> <SPACE> <SPACE> ............................ 46
+<ESC> = .......................................... 52
+<ESC> = .......................................... 57
+<ESC> > .......................................... 58
+<ESC> ? .......................................... 57
+<ESC> @ .......................................... 58
+<ESC> A .......................................... 59
+<ESC> D E ........................................ 51
+<ESC> D L ........................................ 51
+<ESC> D O ........................................ 51
+<ESC> E .......................................... 14
+<ESC> E .......................................... 52
+<ESC> F .......................................... 63
+<ESC> G .......................................... 29
+<ESC> G .......................................... 54
+<ESC> H .......................................... 59
+<ESC> I .......................................... 14
+<ESC> I .......................................... 52
+<ESC> J .......................................... 38
+<ESC> K .......................................... 37
+<ESC> L .......................................... 52
+<ESC> M .......................................... 52
+<ESC> N .......................................... 27
+<ESC> N .......................................... 30
+<ESC> O 0 ........................................ 19
+<ESC> O 0 ........................................ 28
+<ESC> O 1 ........................................ 19
+<ESC> O 2 ........................................ 19
+<ESC> O 3 ........................................ 20
+<ESC> O 4 ........................................ 21
+<ESC> O 5 ........................................ 22
+<ESC> O 5 ........................................ 43
+<ESC> O 6 ........................................ 20
+<ESC> O 7 ........................................ 22
+<ESC> O 7 ........................................ 42
+<ESC> O 7 ........................................ 44
+<ESC> O 8 ........................................ 36
+<ESC> O 9 ........................................ 36
+<ESC> O : ........................................ 40
+<ESC> P .......................................... 54
+<ESC> Q .......................................... 14
+<ESC> Q .......................................... 52
+<ESC> R .......................................... 14
+<ESC> R .......................................... 52
+<ESC> S .......................................... 26
+<ESC> S .......................................... 57
+<ESC> T .......................................... 33
+<ESC> U .......................................... 62
+<ESC> W .......................................... 14
+<ESC> W .......................................... 52
+<ESC> X .......................................... 63
+<ESC> X .......................................... 63
+<ESC> Y .......................................... 33
+<ESC> Z .......................................... 53
+<ESC> \ .......................................... 40
+<ESC> ^ .......................................... 44
+<ESC> _ .......................................... 41
+<ESC> ` .......................................... 58
+<ESC> a .......................................... 58
+<ESC> b .......................................... 55
+<ESC> c .......................................... 60
+<ESC> d .......................................... 55
+<ESC> e .......................................... 13
+<ESC> e .......................................... 60
+<ESC> e .......................................... 61
+<ESC> j .......................................... 52
+<ESC> m .......................................... 34
+<ESC> n .......................................... 35
+<ESC> o .......................................... 36
+<ESC> q .......................................... 34
+<ESC> r .......................................... 35
+<ESC> s .......................................... 38
+<ESC> u .......................................... 63
+<ESC> u .......................................... 63
+<ESC> u .......................................... 63
+<ESC> v .......................................... 34
+<ESC> w .......................................... 35
+<ESC> x 1 ........................................ 56
+<ESC> x 4 ........................................ 56
+<ESC> y .......................................... 33
+<ESC> z .......................................... 28
+<ESC> z .......................................... 53
+<ESC> { .......................................... 8
+<ESC> | .......................................... 39
+<ESC> } .......................................... 8
+<ESC> ~ .......................................... 43
+<HOME> ........................................... 32
+<LEFT> ........................................... 32
+<LF> ............................................. 14
+<LOCESC> ......................................... 60
+<RETURN> ......................................... 31
+<RIGHT> .......................................... 32
+<SHIFT CE> ....................................... 31
+<SHIFT CTRL HOME> ................................ 32
+<SHIFT CTRL HOME> ................................ 51
+<SHIFT HOME> ..................................... 32
+<SHIFT RETURN> ................................... 31
+<TAB> ............................................ 31
+<UP> ............................................. 31
+XOFF ............................................. 49
+XON .............................................. 49
diff --git a/system/ruc-terminal/unknown/doc/TTAB.PRT b/system/ruc-terminal/unknown/doc/TTAB.PRT
new file mode 100644
index 0000000..5fdab0d
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/TTAB.PRT
@@ -0,0 +1,510 @@
+#type ("elite")##limit (16.2)#
+#pagenr (""224"", 64)##type ("elite")#
+#page (64)#
+#kopf ("Bedienungshandbuch zum ruc - Graphikterminal")#
+#h("A.", "Anhang A - ASCII Tabelle, Zeichens„tze, Parameter")#
+
+
+ Winkel Cur- Byteparameter
+Dez Hex ASCII Grad sor 4 5 6 Taste(n) Graphikzeichen
+#linie ("16.0")#
+ 0 00 NUL 0 0 0 0 <SHIFT CTRL @>
+ 1 01 SOH 5 1 1 1 <CTRL A>
+ 2 02 STX 10 2 2 2 <CTRL B>
+ 3 03 ETX 15 3 3 3 <CTRL C>
+ 4 04 EOT 20 4 4 4 <CTRL D>
+ 5 05 ENQ 25 5 5 5 <CTRL E>
+ 6 06 ACK 30 6 6 6 <CTRL F>
+ 7 07 BEL 35 7 7 7 <CTRL G>
+ 8 08 BS 40 8 8 8 <BACKSPACE> <==
+ 9 09 HT 45 9 9 9 <TAB>
+ 10 0A LF 50 10 10 10 <CTRL J> Apple: <DOWN>
+ 11 0B VT 55 11 11 11 <CTRL K> Apple: <UP>
+ 12 0C FF 60 12 12 12 <CTRL L> TVI: <RIGHT>
+ 13 0D CR 65 13 13 13 <RETURN>
+ 14 0E SO 70 14 14 14 <CTRL N>
+ 15 0F SI 75 15 15 15 <CTRL O>
+ 16 10 DLE 80 0 16 16 <CTRL P>
+ 17 11 DC1 XON 85 1 17 17 <CTRL Q>
+ 18 12 DC2 90 2 18 18 <CTRL R>
+ 19 13 DC3 XOFF 95 3 19 19 <CTRL S>
+ 20 14 DC4 100 4 20 20 <CTRL T>
+ 21 15 NAK 105 5 21 21 ==> Apple: <RIGHT>
+ 22 16 SYN 110 6 22 22 <CTRL V>
+ 23 17 ETB 115 7 23 23 <CTRL W>
+ 24 18 CAN 120 8 24 24 <CTRL X> <CE>
+ 25 19 EM 125 9 25 25 <CTRL Y>
+ 26 1A SUB 130 10 26 26 <CTRL Z> TVI: <CLEAR>
+ 27 1B ESC 135 11 27 27 <ESC>
+ 28 1C FS 140 12 28 28 <CTRL \>
+ 29 1D GS 145 13 29 29 <CTRL ]>
+ 30 1E RS 150 14 30 30 <CTRL ^> TVI: <HOME>
+ 31 1F US 155 15 31 31 <CTRL _> TVI: <SHIFT RETURN>
+ 32 20 SPACE 160 0 0 0 32 <SPACE>
+ 33 21 ! 165 1 1 1 33 !
+ 34 22 " 170 2 2 2 34 "
+ 35 23 # 175 3 3 3 35 #
+ 36 24 $ 180 4 4 4 36 $
+ 37 25 % 185 5 5 5 37 %
+ 38 26 & 190 6 6 6 38 &
+ 39 27 ' 195 7 7 7 39 '
+ 40 28 ( 200 8 8 8 40 (
+ 41 29 ) 205 9 9 9 41 )
+ 42 2A * 210 10 10 10 42 *
+ 43 2B + 215 11 11 11 43 +
+ 44 2C , 220 12 12 12 44 ,
+ 45 2D - 225 13 13 13 45 -
+ 46 2E . 230 14 14 14 46 .
+ 47 2F / 235 15 15 15 47 /
+ 48 30 0 240 16 0 16 48 0
+ 49 31 1 245 17 1 17 49 1
+ 50 32 2 250 18 2 18 50 2
+ 51 33 3 255 19 3 19 51 3
+ 52 34 4 260 20 4 20 52 4
+ 53 35 5 265 21 5 21 53 5
+ 54 36 6 270 22 6 22 54 6
+ 55 37 7 275 23 7 23 55 7
+ 56 38 8 280 24 8 24 56 8
+ 57 39 9 285 25 9 25 57 9
+ 58 3A : 290 26 10 26 58 :
+ 59 3B ; 295 27 11 27 59 ;
+ 60 3C < 300 28 12 28 60 <
+ 61 3D = 305 29 13 29 61 =
+ 62 3E > 310 30 14 30 62 >
+ 63 3F ? 315 31 15 31 63 ?
+ 64 40 @ 320 32 0 0 0 @
+ 65 41 A 325 33 1 1 1 A
+ 66 42 B 330 34 2 2 2 B
+ 67 43 C 335 35 3 3 3 C
+ 68 44 D 340 36 4 4 4 D
+ 69 45 E 345 37 5 5 5 E
+ 70 46 F 350 38 6 6 6 F
+ 71 47 G 355 39 7 7 7 G
+ 72 48 H 0 40 8 8 8 H
+ 73 49 I 5 41 9 9 9 I
+ 74 4A J 10 42 10 10 10 J
+ 75 4B K 15 43 11 11 11 K
+ 76 4C L 20 44 12 12 12 L
+ 77 4D M 25 45 13 13 13 M
+ 78 4E N 30 46 14 14 14 N
+ 79 4F O 35 47 15 15 15 O
+ 80 50 P 40 48 0 16 16 P
+ 81 51 Q 45 49 1 17 17 Q
+ 82 52 R 50 50 2 18 18 R
+ 83 53 S 55 51 3 19 19 S
+ 84 54 T 60 52 4 20 20 T
+ 85 55 U 65 53 5 21 21 U
+ 86 56 V 70 54 6 22 22 V
+ 87 57 W 75 55 7 23 23 W
+ 88 58 X 80 56 8 24 24 X
+ 89 59 Y 85 57 9 25 25 Y
+ 90 5A Z 90 58 10 26 26 Z
+ 91 5B [ Ž 95 59 11 27 27 [
+ 92 5C \ ™ 100 60 12 28 28 \
+ 93 5D ] š 105 61 13 29 29 ]
+ 94 5E ^ 110 62 14 30 30 ^
+ 95 5F _ 115 63 15 31 31 _
+ 96 60 ` 120 64 0 0 32 `
+ 97 61 a 125 65 1 1 33 a
+ 98 62 b 130 66 2 2 34 b
+ 99 63 c 135 67 3 3 35 c
+100 64 d 140 68 4 4 36 d
+101 65 e 145 69 5 5 37 e
+102 66 f 150 70 6 6 38 f
+103 67 g 155 71 7 7 39 g
+104 68 h 160 72 8 8 40 h
+105 69 i 165 73 9 9 41 i
+106 6A j 170 74 10 10 42 j
+107 6B k 175 75 11 11 43 k
+108 6C l 180 76 12 12 44 l
+109 6D m 185 77 13 13 45 m
+110 6E n 190 78 14 14 46 n
+111 6F o 195 79 15 15 47 o
+112 70 p 200 0 16 48 p
+113 71 q 205 1 17 49 q
+114 72 r 210 2 18 50 r
+115 73 s 215 3 19 51 s
+116 74 t 220 4 20 52 t
+117 75 u 225 5 21 53 u
+118 76 v 230 6 22 54 v
+119 77 w 235 7 23 55 w
+120 78 x 240 8 24 56 x
+121 79 y 245 9 25 57 y
+122 7A z 250 10 26 58 z
+123 7B { „ 255 11 27 59 {
+124 7C | ” 260 12 28 60 |
+125 7D } 265 13 29 61 }
+126 7E ~ á 270 14 30 62 ~
+127 7F DEL 275 15 31 63 <DELETE>
+128 80 * NUL 280 0 0 0
+129 81 * SOH 285 1 1 1 <SHIFT DELETE>
+130 82 * STX 290 2 2 2 <SHIFT TOPLEFT> #
+131 83 * ETX 295 3 3 3 <SHIFT TOPRIGHT> #
+132 84 * EOT 300 4 4 4
+133 85 * ENQ 305 5 5 5
+134 86 * ACK 310 6 6 6
+135 87 * BEL 315 7 7 7
+136 88 * BS 320 8 8 8 <LEFT> #
+137 89 * HT 325 9 9 9 <SHIFT TAB> #
+138 8A * LF 330 10 10 10 <DOWN> #
+139 8B * VT 335 11 11 11 <UP> #
+140 8C * FF 340 12 12 12
+141 8D * CR 345 13 13 13 <SHIFT RETURN> #
+142 8E * SO 350 14 14 14 <TOPLEFT> #
+143 8F * SI 355 15 15 15 <TOPRIGHT> #
+144 90 * DLE 0 0 16 16
+145 91 * DC1 5 1 17 17
+146 92 * DC2 10 2 18 18
+147 93 * DC3 15 3 19 19
+148 94 * DC4 20 4 20 20
+149 95 * NAK 25 5 21 21 <RIGHT> #
+150 96 * SYN 30 6 22 22
+151 97 * ETB 35 7 23 23
+152 98 * CAN 40 8 24 24
+153 99 * EM 45 9 25 25
+154 9A * SUB 50 10 26 26
+155 9B * ESC 55 11 27 27 <SHIFT ESC>
+156 9C * FS 60 12 28 28
+157 9D * GS 65 13 29 29
+158 9E * RS 70 14 30 30
+159 9F * US 75 15 31 31
+160 A0 * SPACE 80 0 0 32
+161 A1 * ! 85 1 1 33 <CTRL F1>
+162 A2 * " 90 2 2 34 <CTRL F2>
+163 A3 * # 95 3 3 35 <CTRL F3>
+164 A4 * $ 100 4 4 36 <CTRL F4>
+165 A5 * % 105 5 5 37 <CTRL F5>
+166 A6 * & 110 6 6 38 <CTRL F6>
+167 A7 * ' 115 7 7 39 <CTRL F7>
+168 A8 * ( 120 8 8 40 <CTRL F8>
+169 A9 * ) 125 9 9 41 <CTRL F9>
+170 AA * * 130 10 10 42 <CTRL F10>
+171 AB * + 135 11 11 43 <CTRL F11>
+172 AC * , 140 12 12 44 <CTRL F12>
+173 AD * - 145 13 13 45 <CTRL F13>
+174 AE * . 150 14 14 46 <CTRL F14>
+175 AF * / 155 15 15 47 <CTRL F15>
+176 B0 * 0 160 0 16 48
+177 B1 * 1 165 1 17 49 <SHIFT CTRL F1>
+178 B2 * 2 170 2 18 50 <SHIFT CTRL F2>
+179 B3 * 3 175 3 19 51 <SHIFT CTRL F3>
+180 B4 * 4 180 4 20 52 <SHIFT CTRL F4>
+181 B5 * 5 185 5 21 53 <SHIFT CTRL F5>
+182 B6 * 6 190 6 22 54 <SHIFT CTRL F6>
+183 B7 * 7 195 7 23 55 <SHIFT CTRL F7>
+184 B8 * 8 200 8 24 56 <SHIFT CTRL F8>
+185 B9 * 9 205 9 25 57 <SHIFT CTRL F9>
+186 BA * : 210 10 26 58 <SHIFT CTRL F10>
+187 BB * ; 215 11 27 59 <SHIFT CTRL F11>
+188 BC * < 220 12 28 60 <SHIFT CTRL F12>
+189 BD * = 225 13 29 61 <SHIFT CTRL F13>
+190 BE * > 230 14 30 62 <SHIFT CTRL F14>
+191 BF * ? 235 15 31 63 <SHIFT CTRL F15>
+192 C0 * @ 240 0 0 0
+193 C1 * A 245 1 1 1 <F1> #
+194 C2 * B 250 2 2 2 <F2> #
+195 C3 * C 255 3 3 3 <F3> #
+196 C4 * D 260 4 4 4 <F4> #
+197 C5 * E 265 5 5 5 <F5> #
+198 C6 * F 270 6 6 6 <F6> #
+199 C7 * G 275 7 7 7 <F7> #
+200 C8 * H 280 8 8 8 <F8> #
+201 C9 * I 285 9 9 9 <F9> #
+202 CA * J 290 10 10 10 <F10> #
+203 CB * K 295 11 11 11 <F11> #
+204 CC * L 300 12 12 12 <F12> #
+205 CD * M 305 13 13 13 <F13> #
+206 CE * N 310 14 14 14 <F14> #
+207 CF * O 315 15 15 15 <F15> #
+208 D0 * P 320 0 16 16 <SHIFT HOME> #
+209 D1 * Q 325 1 17 17 <SHIFT F1> #
+210 D2 * R 330 2 18 18 <SHIFT F2> #
+211 D3 * S 335 3 19 19 <SHIFT F3> #
+212 D4 * T 340 4 20 20 <SHIFT F4> #
+213 D5 * U 345 5 21 21 <SHIFT F5> #
+214 D6 * V 350 6 22 22 <SHIFT F6> #
+215 D7 * W 355 7 23 23 <SHIFT F7> #
+216 D8 * X 0 8 24 24 <SHIFT F8> #
+217 D9 * Y 5 9 25 25 <SHIFT F9> #
+218 DA * Z 10 10 26 26 <SHIFT F10> #
+219 DB * [ * Ž 15 11 27 27 <SHIFT F11> #
+220 DC * \ * ™ 20 12 28 28 <SHIFT F12> #
+221 DD * ] * š 25 13 29 29 <SHIFT F13> #
+222 DE * ^ 30 14 30 30 <SHIFT F14> #
+223 DF * _ 35 15 31 31 <SHIFT F15> #
+224 E0 * ` 40 0 0 32
+225 E1 * a 45 1 1 33 <SHIFT NUM1> #
+226 E2 * b 50 2 2 34 <SHIFT NUM2> #
+227 E3 * c 55 3 3 35 <SHIFT NUM3> #
+228 E4 * d 60 4 4 36 <SHIFT NUM4> #
+229 E5 * e 65 5 5 37 <SHIFT NUM5> #
+230 E6 * f 70 6 6 38 <SHIFT NUM6> #
+231 E7 * g 75 7 7 39 <SHIFT NUM7> #
+232 E8 * h 80 8 8 40 <SHIFT NUM8> #
+233 E9 * i 85 9 9 41 <SHIFT NUM9> #
+234 EA * j 90 10 10 42 <SHIFT NUM0> #
+235 EB * k 95 11 11 43 <SHIFT NUM.> #
+236 EC * l 100 12 12 44 <SHIFT NUM+> #
+237 ED * m 105 13 13 45 <SHIFT NUM-> #
+238 EE * n 110 14 14 46
+239 EF * o 115 15 15 47 <SHIFT BOTRIGHT> #
+240 F0 * p 120 0 16 48
+241 F1 * q 125 1 17 49
+242 F2 * r 130 2 18 50
+243 F3 * s 135 3 19 51
+244 F4 * t 140 4 20 52
+245 F5 * u 145 5 21 53
+246 F6 * v 150 6 22 54
+247 F7 * w 155 7 23 55
+248 F8 * x 160 8 24 56
+249 F9 * y 165 9 25 57
+250 FA * z 170 10 26 58
+251 FB * { * „ 175 11 27 59
+252 FC * | * ” 180 12 28 60
+253 FD * } * 185 13 29 61
+254 FE * ~ * á 190 14 30 62
+255 FF * DEL 195 15 31 63
+
+Beim Apple-Keyboard k”nnen alle Codes > 127 auch mit der Open-Apple Taste
+und einem ASCII-Zeichen zusammen erzeugt werden.
+Die mit # gekennzeichneten Tasten erzeugen im TVI-Modus nicht diesen Code.
+Die mit * gekennzeichneten ASCII-Zeichen werden auf dem Bildschirm invers
+dargestellt.
+
+#page#
+#h("B.", "Anhang B - Befehlsbersicht")#
+
+
+#on("u")#Controlkommandos:#off("u")#
+
+Hex ASCII Taste(n) Funktion
+#linie ("16.0")#
+07 BEL <CTRL G> Signalton
+08 BS <BACKSPACE> <== Backspace, Cursor Left
+09 HT <TAB> Tabulator, 8 Spalten
+0A LF <CTRL J> Apple: <DOWN> Zeilenvorschub, ggf. Scroll/Page
+0B VT <CTRL K> Apple: <UP> Cursor hoch
+0C FF <CTRL L> TVI: <RIGHT> Cursor rechts
+0D CR <RETURN> Waagenrcklauf, ohne Linefeed
+0E SO <CTRL N> XON/XOFF Protokoll ausschalten
+0F SI <CTRL O> XON/XOFF Protokoll einschalten
+11 DC1 <CTRL Q> XON
+13 DC3 <CTRL S> XOFF
+15 NAK <CTRL U> ==> Apple: <RIGHT> Cursor rechts
+16 SYN <CTRL V> Cursor runter (ohne Scroll/Page)
+17 CAN <CTRL X> <CE> Graphikmodus: Fadenkreuz an/aus
+1A SUB <CTRL Z> TVI: <CLEAR> Bildschirm l”schen & Cursor Home
+1B ESC <ESC> Escape-Sequenz einleiten
+1E RS <CTRL ^> TVI: <HOME> Cursor Home
+1F US <CTRL _> TVI: <SHIFT RETURN> Zum n„chsten Zeilenanfang, ggf.
+ Scroll/Page
+
+
+Escape-Sequenzen, thematisch sortiert
+-------------------------------------
+
+a.) Betriebsmodi:
+
+ESC $ Graphikmodus einschalten
+ESC % Textmodus einschalten
+ESC H Autoscroll/Pagemode
+ESC U Monitormode einschalten
+ESC X Monitormode/Hexmode ausschalten
+ESC c Funktionstastencode/Funktionstastenstring
+ESC u Hexmode ein-/ausschalten, Monitormode ausschalten
+
+
+b.) Editkommandos
+
+ESC * Text oder Graphikbildschirm l”schen und Cursor Home
+ESC + "
+ESC , "
+ESC : "
+ESC E Zeile einfgen (im Textmodus)
+ESC I Rckw„rtstabulator (8 Spalten, im Textmodus)
+ESC L Zeile einfgen (im Textmodus)
+ESC M Zeile l”schen (im Textmodus)
+ESC Q Zeichen einfgen (im Textmodus)
+ESC R Zeile l”schen (im Textmodus)
+ESC T Zeile ab Cursorposition bis zum Zeilenende l”schen
+ESC W Zeichen l”schen (im Textmodus)
+ESC Y Seite ab Cursorposition bis zum Seitenende l”schen
+ESC j Umgekehrter Zeilenvorschub
+ESC t Zeile ab Cursor bis Zeilenende l”schen (im Textmodus)
+
+
+c.) Sendekommandos
+
+ESC - Farbe, Zustand, In-Window-Bit bei Cursorpos senden
+ESC 4 Nummer der sichtbaren und der Arbeitsseite senden
+ESC 5 Graphikparameter (Dicke,Farbe,Bitverknpfung) senden
+ESC 6 Aktuelle Textzeile senden
+ESC 7 Ganze Textseite senden
+ESC 8 Zeichen an der Cursorposition senden
+ESC \ <ll><lh><al><ah>Aktuelle Graphikseite senden (oder Teile)
+ESC ; Position des Graphikcursors senden
+ESC ? Position des Textcursors senden
+ESC _ Graphikbyte bei Graphikcursorposition senden
+ESC x 1 <l><m> Zeilenbegrenzer fr <ESC> 6 und <ESC> 7 einstellen
+ESC x 4 <p> Seitenbegrenzer fr <ESC> 7 einstellen
+
+
+d.) šbertragungskommandos
+
+ESC SPACE SPACE <p> Baudrate, Stopbits, Datenbits, Parity einstellen
+ESC SPACE 0 Basis/Apple Keyboardcodes, keine Emulation
+ESC SPACE 1 TVI - Emulation
+ESC SPACE 2 Keine Hardware Fluákontrolle
+ESC SPACE 3 RTS/CTS Fluákontrolle
+ESC SPACE 4 DTR/DSR Fluákontrolle
+ESC SPACE 5 RTS/CTS und DTR/DSR Fluákontrolle
+ESC SPACE 6 8. Datenbit ist 0
+ESC SPACE 7 8. Datenbit vorhanden
+ESC D L Local-Modus
+ESC D E Online-Modus mit Echo
+ESC D O Online-Modus ohne Echo
+
+
+e.) Bildschirm/Druckerausgabe
+
+ESC @ Empfangsdaten auf Drucker ausgeben
+ESC A Empfangsdaten nicht auf Drucker ausgeben
+ESC P Hardcopy der Textseite
+ESC ^ <p> Hardcopy der aktuellen Graphikseite
+ESC ` Empfangsdaten nicht auf dem Bildschirm anzeigen
+ESC a Empfangsdaten auf dem Bildschirm anzeigen
+ESC ~ <n><l><p.> Definition d.Druckertreiberstrings f.Graphikhardcopy
+
+
+f.) Cursor/Cursor Adressierung
+
+ESC . 0 Cursor aus
+ESC . 1 Cursor blinkend
+ESC . 2 Cursor an, nicht blinkend
+ESC = <y+32><x+32> Cursor auf Adresse positionieren
+ESC Z Cursor an/aus
+
+
+g.) Attribute
+
+ESC ( Normale Zeichen
+ESC ) Textmodus: Inversschrift, Graphik: Kursivschrift
+ESC G 0 Normale Schrift
+ESC G 1 Unsichtbare Schrift, Leerzeichen
+ESC G 4 Inverse Schrift
+ESC G 5 Unsichtbare Schrift, inverse Leerzeichen
+ESC b Schwarze Schrift auf hellem Grund (nur im Textmodus)
+ESC d Helle Schrift auf dunklem Grund, (nur im Textmodus)
+ESC z <n> Zeichensatz einstellen
+
+
+h.) Text in Graphiken
+
+ESC & Graphikzeichen ersetzen darunterliegende
+ESC ' Graphikzeichen berschreiben darunterliegende
+ESC N <b><h><w> Zeichenbreite, -h”he und Schreibrichtung einstellen
+
+
+i.) Graphikzeichenkommandos
+
+ESC J <b, h;> Relatives Rechteck zeichnen
+ESC K <r, s;> Kreis(segmente) mit dem Radius <r> zeichnen
+ESC m <x, y;> Absoluten Punkt bei (x, y) zeichnen
+ESC n <l, w;> Turtle Draw/Move <l> ist L„nge, <w> ist Winkel
+ESC o Turtle Penup/Pendown
+ESC q <x, y;> Relativer Move
+ESC r <x, y;> Relativer Draw
+ESC s <xr,yr,aw,ew;> Ellipsenbogen(Radien xr,yr) v.<aw> bis <ew> zeichnen
+ESC v <x, y;> Absoluter Move nach (x, y)
+ESC w <x, y;> Absoluter Draw nach (x, y)
+
+
+j.) Verschiede Graphikkommandos
+
+ESC ! <p> Graphikseiten mischen, kopieren, trennen, invertieren
+ESC / <ll><lh><al><ah><p...> Graphikseite vom Host laden
+ESC O 0 Graphikparameter auf Default
+ESC O 1 <d> Strichdicke setzen
+ESC O 2 <f> Farbe/Helligkeit einstellen
+ESC O 3 <p> Linientyp (Punkt/Strichmuster) einstellen
+ESC O 4 <p> Bitverknpfung setzen (0=OR, 1=AND, 2=XOR, 3=COPY)
+ESC O 5 <p> Farbe, Dicke, Bitverknpfung zusammen einstellen
+ESC O 6 <pl><ph> Benutzerdefinierbares Linienmuster einstellen
+ESC O 7 <p> Arbeitsseite, sichtbare Seite u.Mixedmode einstellen
+ESC O 8 <p> Turtle Penup/Pendown und Eraser/Drawer einstellen
+ESC O 9 Turtle Bildmitte, Richtung nach oben, Pendown, Drawer
+ESC O : <b1..b8> Benutzerdefinierbares Fllmuster einstellen
+ESC y Graphikseite l”schen und Cursor nach (0, 0)
+ESC | <n> Fl„che fllen/l”schen mit dem Muster Nummer <n>
+
+
+k.) Verschiedene und spezielle Funktionen
+
+ESC 0 Terminalprogramm initialisieren (Softwarereset)
+ESC 9 <d> Zeitverz”gerung ca. <d> * 2 ms
+ESC < Keyboardclick ausschalten
+ESC > Keyboardclick einschalten
+ESC F <c> Controlcharacter darstellen
+ESC e <d...><t> Funktionstaste <t> mit Daten <d...> belegen
+ESC { Statuszeile aus (24. Textzeile sichtbar)
+ESC } Statuszeile an (24. Textzeile unsichtbar)
+ESC S <n> Graphik/Textseite von/auf Diskette laden/speichern
+ESC DEL 1 Tastenbelegungen l”schen
+ESC DEL 2 Druckerpuffer l”schen
+ESC DEL 3 Empfangspuffer l”schen
+ESC DEL 4 Sendepuffer l”schen
+
+#page#
+#h("C.", "Anhang C - Default Funktionstastenbelegungen")#
+
+
+Bemerkung zur Schreibweise:
+<#40> bezeichnet den ASCII-Code fr '(', also den ASCII-Code 40 (dezimal).
+<LESC> bezeichnet den Code Hex 9B fr Local Escape, damit diese Tastenfunk-
+tionen sowohl im Local- als auch im Onlinemodus ausgefhrt werden k”nnen.
+
+a.) Zehnerblock mit <SHIFT>
+
+Die Anordnung der Zifferntasten entspricht einem "Cursorblock" mit acht
+Richtungen. Die Taste <SHIFT 5> zeigt nur das Fadenkreuz, d.h. die Position
+des Graphikcursors bleibt unver„ndert. Bei allen anderen Zifferntasten „n-
+dert sich die Position des Graphikcursors und das Fadenkreuz wird kurz
+sichtbar. Bis auf die Help-Taste <SHIFT F4> k”nnen alle Tasten auch im On-
+line-Modus aufgerufen werden.
+
+Die Tastenbelegungen im einzelnen:
+
+Taste Hex-Code Code-Sequenz
+#linie ("16.0")#
+<SHIFT 1> E1 <LESC> q-1,-1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 2> E2 <LESC> q0,-1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 3> E3 <LESC> q1,-1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 4> E4 <LESC> q-1,0; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 5> E5 <LESC> <CTRL X><LESC> 9 <#127> <LESC> <CTRL X>
+<SHIFT 6> E6 <LESC> q1,0; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 7> E7 <LESC> q-1,1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 8> E8 <LESC> q0,1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 9> E9 <LESC> q1,1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+
+Terminalinitialisierung mit <SHIFT BOTTOMRIGHT>:
+ EF (Cursorpositionierung und Einschaltmeldung)
+
+
+b.) Die Funktionstasten mit <SHIFT>
+
+Taste Hex-Code Code-Sequenz Bedeutung
+#linie ("16.0")#
+<SHIFT F1> D1 <LESC> $ <LESC> O70 Graphikseite 1
+<SHIFT F2> D2 <LESC> $ <LESC> O73 Graphikseite 2
+<SHIFT F3> D3 <LESC> % Textseite
+<SHIFT F4> D4 <ESC>SW<#26> H e l p s c r e e n (a..f): <ESC>S<#81>
+ <ESC>9<#81> <ESC>SG Help-Bilschirm anzeigen
+<SHIFT F8> D8 <LESC> O41 Linien schwarz (l”schen)
+<SHIFT F9> D9 <LESC> O40 Linien weiá (sichtbar)
+<SHIFT F10> DA <LESC> O12 <LESC> N <#12><#20><#0> Groáe und dicke Schrift
+<SHIFT F11> DB <LESC> O11 <LESC> N <#0><#0><#0> Normal dnne Schrift
+<SHIFT F12> DC <LESC> G4 Kursiv/Invers an
+<SHIFT F13> DD <LESC> G0 Kursiv/Invers aus
+<SHIFT F14> DE <LESC> ^0 Graphikhardcopy
+<SHIFT F15> DF <LESC> P Texthardcopy
+
diff --git a/system/ruc-terminal/unknown/doc/TTABP.PRT b/system/ruc-terminal/unknown/doc/TTABP.PRT
new file mode 100644
index 0000000..b562709
--- /dev/null
+++ b/system/ruc-terminal/unknown/doc/TTABP.PRT
@@ -0,0 +1,666 @@
+#type ("elite")##limit (16.2)#
+#pagenr (""224"", 64)##type ("elite")#
+#page##--------------------------------- Ende der Seite 0 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#A. Anhang A - ASCII Tabelle, Zeichens„tze, Parameter#ie(3)##off("u")##off("i")##type("elite")#
+
+
+ Winkel Cur- Byteparameter
+Dez Hex ASCII Grad sor 4 5 6 Taste(n) Graphikzeichen
+#rpos(16.0)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+#clearpos#
+ 0 00 NUL 0 0 0 0 <SHIFT CTRL @>
+ 1 01 SOH 5 1 1 1 <CTRL A>
+ 2 02 STX 10 2 2 2 <CTRL B>
+ 3 03 ETX 15 3 3 3 <CTRL C>
+ 4 04 EOT 20 4 4 4 <CTRL D>
+ 5 05 ENQ 25 5 5 5 <CTRL E>
+ 6 06 ACK 30 6 6 6 <CTRL F>
+ 7 07 BEL 35 7 7 7 <CTRL G>
+ 8 08 BS 40 8 8 8 <BACKSPACE> <==
+ 9 09 HT 45 9 9 9 <TAB>
+ 10 0A LF 50 10 10 10 <CTRL J> Apple: <DOWN>
+ 11 0B VT 55 11 11 11 <CTRL K> Apple: <UP>
+ 12 0C FF 60 12 12 12 <CTRL L> TVI: <RIGHT>
+ 13 0D CR 65 13 13 13 <RETURN>
+ 14 0E SO 70 14 14 14 <CTRL N>
+ 15 0F SI 75 15 15 15 <CTRL O>
+ 16 10 DLE 80 0 16 16 <CTRL P>
+ 17 11 DC1 XON 85 1 17 17 <CTRL Q>
+ 18 12 DC2 90 2 18 18 <CTRL R>
+ 19 13 DC3 XOFF 95 3 19 19 <CTRL S>
+ 20 14 DC4 100 4 20 20 <CTRL T>
+ 21 15 NAK 105 5 21 21 ==> Apple: <RIGHT>
+ 22 16 SYN 110 6 22 22 <CTRL V>
+ 23 17 ETB 115 7 23 23 <CTRL W>
+ 24 18 CAN 120 8 24 24 <CTRL X> <CE>
+ 25 19 EM 125 9 25 25 <CTRL Y>
+ 26 1A SUB 130 10 26 26 <CTRL Z> TVI: <CLEAR>
+ 27 1B ESC 135 11 27 27 <ESC>
+ 28 1C FS 140 12 28 28 <CTRL \>
+ 29 1D GS 145 13 29 29 <CTRL ]>
+ 30 1E RS 150 14 30 30 <CTRL ^> TVI: <HOME>
+ 31 1F US 155 15 31 31 <CTRL _> TVI: <SHIFT RETURN>
+ 32 20 SPACE 160 0 0 0 32 <SPACE>
+ 33 21 ! 165 1 1 1 33 !
+ 34 22 " 170 2 2 2 34 "
+ 35 23 # 175 3 3 3 35 #
+ 36 24 $ 180 4 4 4 36 $
+ 37 25 % 185 5 5 5 37 %
+ 38 26 & 190 6 6 6 38 &
+ 39 27 ' 195 7 7 7 39 '
+ 40 28 ( 200 8 8 8 40 (
+ 41 29 ) 205 9 9 9 41 )
+ 42 2A * 210 10 10 10 42 *
+ 43 2B + 215 11 11 11 43 +
+ 44 2C , 220 12 12 12 44 ,
+ 45 2D - 225 13 13 13 45 -
+#text end#
+#free(02.351852e-2)#
+
+
+#right#64
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 64 -----------#
+#center##on("b")#A. Anhang A - ASCII Tabelle, Zeichens„tze, Parameter#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+ 46 2E . 230 14 14 14 46 .
+ 47 2F / 235 15 15 15 47 /
+ 48 30 0 240 16 0 16 48 0
+ 49 31 1 245 17 1 17 49 1
+ 50 32 2 250 18 2 18 50 2
+ 51 33 3 255 19 3 19 51 3
+ 52 34 4 260 20 4 20 52 4
+ 53 35 5 265 21 5 21 53 5
+ 54 36 6 270 22 6 22 54 6
+ 55 37 7 275 23 7 23 55 7
+ 56 38 8 280 24 8 24 56 8
+ 57 39 9 285 25 9 25 57 9
+ 58 3A : 290 26 10 26 58 :
+ 59 3B ; 295 27 11 27 59 ;
+ 60 3C < 300 28 12 28 60 <
+ 61 3D = 305 29 13 29 61 =
+ 62 3E > 310 30 14 30 62 >
+ 63 3F ? 315 31 15 31 63 ?
+ 64 40 @ 320 32 0 0 0 @
+ 65 41 A 325 33 1 1 1 A
+ 66 42 B 330 34 2 2 2 B
+ 67 43 C 335 35 3 3 3 C
+ 68 44 D 340 36 4 4 4 D
+ 69 45 E 345 37 5 5 5 E
+ 70 46 F 350 38 6 6 6 F
+ 71 47 G 355 39 7 7 7 G
+ 72 48 H 0 40 8 8 8 H
+ 73 49 I 5 41 9 9 9 I
+ 74 4A J 10 42 10 10 10 J
+ 75 4B K 15 43 11 11 11 K
+ 76 4C L 20 44 12 12 12 L
+ 77 4D M 25 45 13 13 13 M
+ 78 4E N 30 46 14 14 14 N
+ 79 4F O 35 47 15 15 15 O
+ 80 50 P 40 48 0 16 16 P
+ 81 51 Q 45 49 1 17 17 Q
+ 82 52 R 50 50 2 18 18 R
+ 83 53 S 55 51 3 19 19 S
+ 84 54 T 60 52 4 20 20 T
+ 85 55 U 65 53 5 21 21 U
+ 86 56 V 70 54 6 22 22 V
+ 87 57 W 75 55 7 23 23 W
+ 88 58 X 80 56 8 24 24 X
+ 89 59 Y 85 57 9 25 25 Y
+ 90 5A Z 90 58 10 26 26 Z
+ 91 5B [ Ž 95 59 11 27 27 [
+ 92 5C \ ™ 100 60 12 28 28 \
+ 93 5D ] š 105 61 13 29 29 ]
+ 94 5E ^ 110 62 14 30 30 ^
+ 95 5F _ 115 63 15 31 31 _
+ 96 60 ` 120 64 0 0 32 `
+ 97 61 a 125 65 1 1 33 a
+#text end#
+#free(02.351852e-2)#
+
+
+ 65
+#page##--------------------------------- Ende der Seite 65 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+ 98 62 b 130 66 2 2 34 b
+ 99 63 c 135 67 3 3 35 c
+100 64 d 140 68 4 4 36 d
+101 65 e 145 69 5 5 37 e
+102 66 f 150 70 6 6 38 f
+103 67 g 155 71 7 7 39 g
+104 68 h 160 72 8 8 40 h
+105 69 i 165 73 9 9 41 i
+106 6A j 170 74 10 10 42 j
+107 6B k 175 75 11 11 43 k
+108 6C l 180 76 12 12 44 l
+109 6D m 185 77 13 13 45 m
+110 6E n 190 78 14 14 46 n
+111 6F o 195 79 15 15 47 o
+112 70 p 200 0 16 48 p
+113 71 q 205 1 17 49 q
+114 72 r 210 2 18 50 r
+115 73 s 215 3 19 51 s
+116 74 t 220 4 20 52 t
+117 75 u 225 5 21 53 u
+118 76 v 230 6 22 54 v
+119 77 w 235 7 23 55 w
+120 78 x 240 8 24 56 x
+121 79 y 245 9 25 57 y
+122 7A z 250 10 26 58 z
+123 7B { „ 255 11 27 59 {
+124 7C | ” 260 12 28 60 |
+125 7D } 265 13 29 61 }
+126 7E ~ á 270 14 30 62 ~
+127 7F DEL 275 15 31 63 <DELETE>
+128 80 * NUL 280 0 0 0
+129 81 * SOH 285 1 1 1 <SHIFT DELETE>
+130 82 * STX 290 2 2 2 <SHIFT TOPLEFT> #
+131 83 * ETX 295 3 3 3 <SHIFT TOPRIGHT> #
+132 84 * EOT 300 4 4 4
+133 85 * ENQ 305 5 5 5
+134 86 * ACK 310 6 6 6
+135 87 * BEL 315 7 7 7
+136 88 * BS 320 8 8 8 <LEFT> #
+137 89 * HT 325 9 9 9 <SHIFT TAB> #
+138 8A * LF 330 10 10 10 <DOWN> #
+139 8B * VT 335 11 11 11 <UP> #
+140 8C * FF 340 12 12 12
+141 8D * CR 345 13 13 13 <SHIFT RETURN> #
+142 8E * SO 350 14 14 14 <TOPLEFT> #
+143 8F * SI 355 15 15 15 <TOPRIGHT> #
+144 90 * DLE 0 0 16 16
+145 91 * DC1 5 1 17 17
+146 92 * DC2 10 2 18 18
+147 93 * DC3 15 3 19 19
+148 94 * DC4 20 4 20 20
+149 95 * NAK 25 5 21 21 <RIGHT> #
+#text end#
+#free(02.351852e-2)#
+
+
+#right#66
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 66 -----------#
+#center##on("b")#A. Anhang A - ASCII Tabelle, Zeichens„tze, Parameter#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+150 96 * SYN 30 6 22 22
+151 97 * ETB 35 7 23 23
+152 98 * CAN 40 8 24 24
+153 99 * EM 45 9 25 25
+154 9A * SUB 50 10 26 26
+155 9B * ESC 55 11 27 27 <SHIFT ESC>
+156 9C * FS 60 12 28 28
+157 9D * GS 65 13 29 29
+158 9E * RS 70 14 30 30
+159 9F * US 75 15 31 31
+160 A0 * SPACE 80 0 0 32
+161 A1 * ! 85 1 1 33 <CTRL F1>
+162 A2 * " 90 2 2 34 <CTRL F2>
+163 A3 * # 95 3 3 35 <CTRL F3>
+164 A4 * $ 100 4 4 36 <CTRL F4>
+165 A5 * % 105 5 5 37 <CTRL F5>
+166 A6 * & 110 6 6 38 <CTRL F6>
+167 A7 * ' 115 7 7 39 <CTRL F7>
+168 A8 * ( 120 8 8 40 <CTRL F8>
+169 A9 * ) 125 9 9 41 <CTRL F9>
+170 AA * * 130 10 10 42 <CTRL F10>
+171 AB * + 135 11 11 43 <CTRL F11>
+172 AC * , 140 12 12 44 <CTRL F12>
+173 AD * - 145 13 13 45 <CTRL F13>
+174 AE * . 150 14 14 46 <CTRL F14>
+175 AF * / 155 15 15 47 <CTRL F15>
+176 B0 * 0 160 0 16 48
+177 B1 * 1 165 1 17 49 <SHIFT CTRL F1>
+178 B2 * 2 170 2 18 50 <SHIFT CTRL F2>
+179 B3 * 3 175 3 19 51 <SHIFT CTRL F3>
+180 B4 * 4 180 4 20 52 <SHIFT CTRL F4>
+181 B5 * 5 185 5 21 53 <SHIFT CTRL F5>
+182 B6 * 6 190 6 22 54 <SHIFT CTRL F6>
+183 B7 * 7 195 7 23 55 <SHIFT CTRL F7>
+184 B8 * 8 200 8 24 56 <SHIFT CTRL F8>
+185 B9 * 9 205 9 25 57 <SHIFT CTRL F9>
+186 BA * : 210 10 26 58 <SHIFT CTRL F10>
+187 BB * ; 215 11 27 59 <SHIFT CTRL F11>
+188 BC * < 220 12 28 60 <SHIFT CTRL F12>
+189 BD * = 225 13 29 61 <SHIFT CTRL F13>
+190 BE * > 230 14 30 62 <SHIFT CTRL F14>
+191 BF * ? 235 15 31 63 <SHIFT CTRL F15>
+192 C0 * @ 240 0 0 0
+193 C1 * A 245 1 1 1 <F1> #
+194 C2 * B 250 2 2 2 <F2> #
+195 C3 * C 255 3 3 3 <F3> #
+196 C4 * D 260 4 4 4 <F4> #
+197 C5 * E 265 5 5 5 <F5> #
+198 C6 * F 270 6 6 6 <F6> #
+199 C7 * G 275 7 7 7 <F7> #
+200 C8 * H 280 8 8 8 <F8> #
+201 C9 * I 285 9 9 9 <F9> #
+#text end#
+#free(02.351852e-2)#
+
+
+ 67
+#page##--------------------------------- Ende der Seite 67 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+202 CA * J 290 10 10 10 <F10> #
+203 CB * K 295 11 11 11 <F11> #
+204 CC * L 300 12 12 12 <F12> #
+205 CD * M 305 13 13 13 <F13> #
+206 CE * N 310 14 14 14 <F14> #
+207 CF * O 315 15 15 15 <F15> #
+208 D0 * P 320 0 16 16 <SHIFT HOME> #
+209 D1 * Q 325 1 17 17 <SHIFT F1> #
+210 D2 * R 330 2 18 18 <SHIFT F2> #
+211 D3 * S 335 3 19 19 <SHIFT F3> #
+212 D4 * T 340 4 20 20 <SHIFT F4> #
+213 D5 * U 345 5 21 21 <SHIFT F5> #
+214 D6 * V 350 6 22 22 <SHIFT F6> #
+215 D7 * W 355 7 23 23 <SHIFT F7> #
+216 D8 * X 0 8 24 24 <SHIFT F8> #
+217 D9 * Y 5 9 25 25 <SHIFT F9> #
+218 DA * Z 10 10 26 26 <SHIFT F10> #
+219 DB * [ * Ž 15 11 27 27 <SHIFT F11> #
+220 DC * \ * ™ 20 12 28 28 <SHIFT F12> #
+221 DD * ] * š 25 13 29 29 <SHIFT F13> #
+222 DE * ^ 30 14 30 30 <SHIFT F14> #
+223 DF * _ 35 15 31 31 <SHIFT F15> #
+224 E0 * ` 40 0 0 32
+225 E1 * a 45 1 1 33 <SHIFT NUM1> #
+226 E2 * b 50 2 2 34 <SHIFT NUM2> #
+227 E3 * c 55 3 3 35 <SHIFT NUM3> #
+228 E4 * d 60 4 4 36 <SHIFT NUM4> #
+229 E5 * e 65 5 5 37 <SHIFT NUM5> #
+230 E6 * f 70 6 6 38 <SHIFT NUM6> #
+231 E7 * g 75 7 7 39 <SHIFT NUM7> #
+232 E8 * h 80 8 8 40 <SHIFT NUM8> #
+233 E9 * i 85 9 9 41 <SHIFT NUM9> #
+234 EA * j 90 10 10 42 <SHIFT NUM0> #
+235 EB * k 95 11 11 43 <SHIFT NUM.> #
+236 EC * l 100 12 12 44 <SHIFT NUM+> #
+237 ED * m 105 13 13 45 <SHIFT NUM-> #
+238 EE * n 110 14 14 46
+239 EF * o 115 15 15 47 <SHIFT BOTRIGHT> #
+240 F0 * p 120 0 16 48
+241 F1 * q 125 1 17 49
+242 F2 * r 130 2 18 50
+243 F3 * s 135 3 19 51
+244 F4 * t 140 4 20 52
+245 F5 * u 145 5 21 53
+246 F6 * v 150 6 22 54
+247 F7 * w 155 7 23 55
+248 F8 * x 160 8 24 56
+249 F9 * y 165 9 25 57
+250 FA * z 170 10 26 58
+251 FB * { * „ 175 11 27 59
+252 FC * | * ” 180 12 28 60
+253 FD * } * 185 13 29 61
+#text end#
+#free(02.351852e-2)#
+
+
+#right#68
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 68 -----------#
+#center##on("b")#A. Anhang A - ASCII Tabelle, Zeichens„tze, Parameter#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+254 FE * ~ * á 190 14 30 62
+255 FF * DEL 195 15 31 63
+
+Beim Apple-Keyboard k”nnen alle Codes > 127 auch mit der Open-Apple Taste
+und einem ASCII-Zeichen zusammen erzeugt werden.
+Die mit # gekennzeichneten Tasten erzeugen im TVI-Modus nicht diesen Code.
+Die mit * gekennzeichneten ASCII-Zeichen werden auf dem Bildschirm invers
+dargestellt.
+
+#text end#
+#free(18.22685)#
+
+
+ 69
+#page##--------------------------------- Ende der Seite 69 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#B. Anhang B - Befehlsbersicht#ie(3)##off("u")##off("i")##type("elite")#
+
+
+#on("u")#Controlkommandos:#off("u")#
+
+Hex ASCII Taste(n) Funktion
+#rpos(16.0)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+#clearpos#
+07 BEL <CTRL G> Signalton
+08 BS <BACKSPACE> <== Backspace, Cursor Left
+09 HT <TAB> Tabulator, 8 Spalten
+0A LF <CTRL J> Apple: <DOWN> Zeilenvorschub, ggf. Scroll/Page
+0B VT <CTRL K> Apple: <UP> Cursor hoch
+0C FF <CTRL L> TVI: <RIGHT> Cursor rechts
+0D CR <RETURN> Waagenrcklauf, ohne Linefeed
+0E SO <CTRL N> XON/XOFF Protokoll ausschalten
+0F SI <CTRL O> XON/XOFF Protokoll einschalten
+11 DC1 <CTRL Q> XON
+13 DC3 <CTRL S> XOFF
+15 NAK <CTRL U> ==> Apple: <RIGHT> Cursor rechts
+16 SYN <CTRL V> Cursor runter (ohne Scroll/Page)
+17 CAN <CTRL X> <CE> Graphikmodus: Fadenkreuz an/aus
+1A SUB <CTRL Z> TVI: <CLEAR> Bildschirm l”schen & Cursor Home
+1B ESC <ESC> Escape-Sequenz einleiten
+1E RS <CTRL ^> TVI: <HOME> Cursor Home
+1F US <CTRL _> TVI: <SHIFT RETURN> Zum n„chsten Zeilenanfang, ggf.
+ Scroll/Page
+
+
+Escape-Sequenzen, thematisch sortiert
+-------------------------------------
+
+a.) Betriebsmodi:
+
+ESC $ Graphikmodus einschalten
+ESC % Textmodus einschalten
+ESC H Autoscroll/Pagemode
+ESC U Monitormode einschalten
+ESC X Monitormode/Hexmode ausschalten
+ESC c Funktionstastencode/Funktionstastenstring
+ESC u Hexmode ein-/ausschalten, Monitormode ausschalten
+
+
+#text end#
+#free(4.256852)#
+
+
+#right#70
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 70 -----------#
+#center##on("b")#B. Anhang B - Befehlsbersicht#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+b.) Editkommandos
+
+ESC * Text oder Graphikbildschirm l”schen und Cursor Home
+ESC + "
+ESC , "
+ESC : "
+ESC E Zeile einfgen (im Textmodus)
+ESC I Rckw„rtstabulator (8 Spalten, im Textmodus)
+ESC L Zeile einfgen (im Textmodus)
+ESC M Zeile l”schen (im Textmodus)
+ESC Q Zeichen einfgen (im Textmodus)
+ESC R Zeile l”schen (im Textmodus)
+ESC T Zeile ab Cursorposition bis zum Zeilenende l”schen
+ESC W Zeichen l”schen (im Textmodus)
+ESC Y Seite ab Cursorposition bis zum Seitenende l”schen
+ESC j Umgekehrter Zeilenvorschub
+ESC t Zeile ab Cursor bis Zeilenende l”schen (im Textmodus)
+
+
+c.) Sendekommandos
+
+ESC - Farbe, Zustand, In-Window-Bit bei Cursorpos senden
+ESC 4 Nummer der sichtbaren und der Arbeitsseite senden
+ESC 5 Graphikparameter (Dicke,Farbe,Bitverknpfung) senden
+ESC 6 Aktuelle Textzeile senden
+ESC 7 Ganze Textseite senden
+ESC 8 Zeichen an der Cursorposition senden
+ESC \ <ll><lh><al><ah>Aktuelle Graphikseite senden (oder Teile)
+ESC ; Position des Graphikcursors senden
+ESC ? Position des Textcursors senden
+ESC _ Graphikbyte bei Graphikcursorposition senden
+ESC x 1 <l><m> Zeilenbegrenzer fr <ESC> 6 und <ESC> 7 einstellen
+ESC x 4 <p> Seitenbegrenzer fr <ESC> 7 einstellen
+
+
+d.) šbertragungskommandos
+
+ESC SPACE SPACE <p> Baudrate, Stopbits, Datenbits, Parity einstellen
+ESC SPACE 0 Basis/Apple Keyboardcodes, keine Emulation
+ESC SPACE 1 TVI - Emulation
+ESC SPACE 2 Keine Hardware Fluákontrolle
+ESC SPACE 3 RTS/CTS Fluákontrolle
+ESC SPACE 4 DTR/DSR Fluákontrolle
+ESC SPACE 5 RTS/CTS und DTR/DSR Fluákontrolle
+ESC SPACE 6 8. Datenbit ist 0
+ESC SPACE 7 8. Datenbit vorhanden
+ESC D L Local-Modus
+ESC D E Online-Modus mit Echo
+ESC D O Online-Modus ohne Echo
+
+
+#text end#
+#free(04.468519e-1)#
+
+
+ 71
+#page##--------------------------------- Ende der Seite 71 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+e.) Bildschirm/Druckerausgabe
+
+ESC @ Empfangsdaten auf Drucker ausgeben
+ESC A Empfangsdaten nicht auf Drucker ausgeben
+ESC P Hardcopy der Textseite
+ESC ^ <p> Hardcopy der aktuellen Graphikseite
+ESC ` Empfangsdaten nicht auf dem Bildschirm anzeigen
+ESC a Empfangsdaten auf dem Bildschirm anzeigen
+ESC ~ <n><l><p.> Definition d.Druckertreiberstrings f.Graphikhardcopy
+
+
+f.) Cursor/Cursor Adressierung
+
+ESC . 0 Cursor aus
+ESC . 1 Cursor blinkend
+ESC . 2 Cursor an, nicht blinkend
+ESC = <y+32><x+32> Cursor auf Adresse positionieren
+ESC Z Cursor an/aus
+
+
+g.) Attribute
+
+ESC ( Normale Zeichen
+ESC ) Textmodus: Inversschrift, Graphik: Kursivschrift
+ESC G 0 Normale Schrift
+ESC G 1 Unsichtbare Schrift, Leerzeichen
+ESC G 4 Inverse Schrift
+ESC G 5 Unsichtbare Schrift, inverse Leerzeichen
+ESC b Schwarze Schrift auf hellem Grund (nur im Textmodus)
+ESC d Helle Schrift auf dunklem Grund, (nur im Textmodus)
+ESC z <n> Zeichensatz einstellen
+
+
+h.) Text in Graphiken
+
+ESC & Graphikzeichen ersetzen darunterliegende
+ESC ' Graphikzeichen berschreiben darunterliegende
+ESC N <b><h><w> Zeichenbreite, -h”he und Schreibrichtung einstellen
+
+
+i.) Graphikzeichenkommandos
+
+ESC J <b, h;> Relatives Rechteck zeichnen
+ESC K <r, s;> Kreis(segmente) mit dem Radius <r> zeichnen
+ESC m <x, y;> Absoluten Punkt bei (x, y) zeichnen
+ESC n <l, w;> Turtle Draw/Move <l> ist L„nge, <w> ist Winkel
+ESC o Turtle Penup/Pendown
+ESC q <x, y;> Relativer Move
+ESC r <x, y;> Relativer Draw
+ESC s <xr,yr,aw,ew;> Ellipsenbogen(Radien xr,yr) v.<aw> bis <ew> zeichnen
+ESC v <x, y;> Absoluter Move nach (x, y)
+ESC w <x, y;> Absoluter Draw nach (x, y)
+#text end#
+#free(02.351852e-2)#
+
+
+#right#72
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 72 -----------#
+#center##on("b")#B. Anhang B - Befehlsbersicht#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+j.) Verschiede Graphikkommandos
+
+ESC ! <p> Graphikseiten mischen, kopieren, trennen, invertieren
+ESC / <ll><lh><al><ah><p...> Graphikseite vom Host laden
+ESC O 0 Graphikparameter auf Default
+ESC O 1 <d> Strichdicke setzen
+ESC O 2 <f> Farbe/Helligkeit einstellen
+ESC O 3 <p> Linientyp (Punkt/Strichmuster) einstellen
+ESC O 4 <p> Bitverknpfung setzen (0=OR, 1=AND, 2=XOR, 3=COPY)
+ESC O 5 <p> Farbe, Dicke, Bitverknpfung zusammen einstellen
+ESC O 6 <pl><ph> Benutzerdefinierbares Linienmuster einstellen
+ESC O 7 <p> Arbeitsseite, sichtbare Seite u.Mixedmode einstellen
+ESC O 8 <p> Turtle Penup/Pendown und Eraser/Drawer einstellen
+ESC O 9 Turtle Bildmitte, Richtung nach oben, Pendown, Drawer
+ESC O : <b1..b8> Benutzerdefinierbares Fllmuster einstellen
+ESC y Graphikseite l”schen und Cursor nach (0, 0)
+ESC | <n> Fl„che fllen/l”schen mit dem Muster Nummer <n>
+
+
+k.) Verschiedene und spezielle Funktionen
+
+ESC 0 Terminalprogramm initialisieren (Softwarereset)
+ESC 9 <d> Zeitverz”gerung ca. <d> * 2 ms
+ESC < Keyboardclick ausschalten
+ESC > Keyboardclick einschalten
+ESC F <c> Controlcharacter darstellen
+ESC e <d...><t> Funktionstaste <t> mit Daten <d...> belegen
+ESC { Statuszeile aus (24. Textzeile sichtbar)
+ESC } Statuszeile an (24. Textzeile unsichtbar)
+ESC S <n> Graphik/Textseite von/auf Diskette laden/speichern
+ESC DEL 1 Tastenbelegungen l”schen
+ESC DEL 2 Druckerpuffer l”schen
+ESC DEL 3 Empfangspuffer l”schen
+ESC DEL 4 Sendepuffer l”schen
+
+#text end#
+#free(7.220185)#
+
+
+ 73
+#page##--------------------------------- Ende der Seite 73 -----------#
+#center##on("b")#Bedienungshandbuch zum ruc - Graphikterminal#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#type("8")##center##on("i")##on("u")##ib(3)#C. Anhang C - Default Funktionstastenbelegungen#ie(3)##off("u")##off("i")##type("elite")#
+
+
+Bemerkung zur Schreibweise:
+<#40> bezeichnet den ASCII-Code fr '(', also den ASCII-Code 40 (dezimal).
+<LESC> bezeichnet den Code Hex 9B fr Local Escape, damit diese Tastenfunk-
+tionen sowohl im Local- als auch im Onlinemodus ausgefhrt werden k”nnen.
+
+a.) Zehnerblock mit <SHIFT>
+
+Die Anordnung der Zifferntasten entspricht einem "Cursorblock" mit acht
+Richtungen. Die Taste <SHIFT 5> zeigt nur das Fadenkreuz, d.h. die Position
+des Graphikcursors bleibt unver„ndert. Bei allen anderen Zifferntasten „n-
+dert sich die Position des Graphikcursors und das Fadenkreuz wird kurz
+sichtbar. Bis auf die Help-Taste <SHIFT F4> k”nnen alle Tasten auch im On-
+line-Modus aufgerufen werden.
+
+Die Tastenbelegungen im einzelnen:
+
+Taste Hex-Code Code-Sequenz
+#rpos(16.0)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+#clearpos#
+<SHIFT 1> E1 <LESC> q-1,-1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 2> E2 <LESC> q0,-1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 3> E3 <LESC> q1,-1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 4> E4 <LESC> q-1,0; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 5> E5 <LESC> <CTRL X><LESC> 9 <#127> <LESC> <CTRL X>
+<SHIFT 6> E6 <LESC> q1,0; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 7> E7 <LESC> q-1,1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 8> E8 <LESC> q0,1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+<SHIFT 9> E9 <LESC> q1,1; <LESC><CTRL X><LESC> 9 <#40><LESC><CTRL X>
+
+Terminalinitialisierung mit <SHIFT BOTTOMRIGHT>:
+ EF (Cursorpositionierung und Einschaltmeldung)
+
+
+b.) Die Funktionstasten mit <SHIFT>
+
+Taste Hex-Code Code-Sequenz Bedeutung
+#rpos(16.0)##fillchar(" ")##table#
+#on("u")# #off("u")#
+#table end#
+#clearpos#
+<SHIFT F1> D1 <LESC> $ <LESC> O70 Graphikseite 1
+<SHIFT F2> D2 <LESC> $ <LESC> O73 Graphikseite 2
+<SHIFT F3> D3 <LESC> % Textseite
+<SHIFT F4> D4 <ESC>SW<#26> H e l p s c r e e n (a..f): <ESC>S<#81>
+ <ESC>9<#81> <ESC>SG Help-Bilschirm anzeigen
+<SHIFT F8> D8 <LESC> O41 Linien schwarz (l”schen)
+<SHIFT F9> D9 <LESC> O40 Linien weiá (sichtbar)
+<SHIFT F10> DA <LESC> O12 <LESC> N <#12><#20><#0> Groáe und dicke Schrift
+<SHIFT F11> DB <LESC> O11 <LESC> N <#0><#0><#0> Normal dnne Schrift
+<SHIFT F12> DC <LESC> G4 Kursiv/Invers an
+<SHIFT F13> DD <LESC> G0 Kursiv/Invers aus
+<SHIFT F14> DE <LESC> ^0 Graphikhardcopy
+<SHIFT F15> DF <LESC> P Texthardcopy
+#text end#
+#free(02.351852e-2)#
+
+
+#right#74
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#page##--------------------------------- Ende der Seite 74 -----------#
+#center##on("b")#C. Anhang C - Default Funktionstastenbelegungen#off("b")#
+
+
+
+#type("elite")##limit(16.2)##linefeed(01.0)#
+#text begin#
+#text end#
+#free(22.03685)#
+
+
+ 75
+#page##--------------------------------- Ende der Seite 75 -----------#
diff --git a/system/ruc-terminal/unknown/src/SCCPARAM.ELA b/system/ruc-terminal/unknown/src/SCCPARAM.ELA
new file mode 100644
index 0000000..2a6ab19
--- /dev/null
+++ b/system/ruc-terminal/unknown/src/SCCPARAM.ELA
@@ -0,0 +1,144 @@
+(* Uebertragungsparameter fuer Kanal 2 und 3 (SCC) setzen *)
+(* Vers. 1.2 : 'setup'-Prozedur / 03.02.86, M.Staubermann *)
+
+PACKET scc DEFINES baudrate,
+ setup ,
+
+ channel a,
+ channel b,
+ no parity,
+ even parity,
+ odd parity,
+
+ read port,
+ write port,
+ register,
+ quartz :
+
+BOOL CONSTchannel a :: TRUE ,
+ channel b :: FALSE ;
+INT CONST no parity :: 0,
+ even parity :: 3,
+ odd parity :: 1;
+
+REAL VAR clk frequency := 12288000.0 ; (* Oszillatorfrequenz *)
+LET offset = 0 ;
+
+PROC quartz (REAL CONST wert) :
+ clk frequency := wert
+ENDPROC quartz ;
+
+REAL PROC quartz :
+ clk frequency
+ENDPROC quartz ;
+
+PROC setup (BOOL CONST channel, INT CONST parity,
+ REAL CONST stopbits, INT CONST bits,
+ BOOL CONST dtr, rts, auto dtr, auto cts) :
+
+(* Parameter mssen zusammen gesetzt werden, da die Register keine
+ Read-Register sind. Alte Werte mssen ausserhalb des SCC's gespeichert
+ werden. *)
+
+ INT VAR value := 64 ;
+ value INCR parity value ;
+ value INCR stopbit value ;
+
+ register (channel, 3, 0) ;
+ register (channel, 5, 32 * bits value) ;
+ register (channel,14, 2) ;
+
+ register (channel, 4, value) ;
+ register (channel, 5, 8 + dtr value + rts value + 32 * bits value) ;
+ register (channel,14, 3 + auto dtr value) ;
+ register (channel, 3, 1 + 64 * bits value + auto cts value) .
+
+bits value :
+ IF bits <= 5 THEN 0
+ ELIF bits >= 8 THEN 3
+ ELIF bits = 6 THEN 2
+ ELSE 1
+ FI .
+
+parity value :
+ IF parity >= 0 AND parity <= 3 THEN parity ELSE 0 FI .
+
+stopbit value :
+ IF stopbits = 1.0 THEN 4
+ ELIF stopbits = 1.5 THEN 8
+ ELIF stopbits = 2.0 THEN 12
+ ELSE 4
+ FI .
+
+dtr value :
+ IF dtr THEN 128 ELSE 0 FI .
+
+rts value :
+ IF rts THEN 2 ELSE 0 FI .
+
+auto cts value :
+ IF auto cts THEN 32 ELSE 0 FI .
+
+auto dtr value :
+ IF auto dtr THEN 4 ELSE 0 FI .
+
+ENDPROC setup ;
+
+PROC baudrate (BOOL CONST channel, REAL CONST rate) :
+ INT CONST time constant :: int (clk frequency / (64.0 * rate) + 0.5) - 2 ;
+ register (channel, 13, time constant DIV 256) ;
+ register (channel, 12, time constant AND 255)
+ENDPROC baudrate ;
+
+REAL PROC baudrate (BOOL CONST channel) :
+ INT CONST time constant ::
+ register (channel, 12) + 256 * register (channel, 13) ;
+ round (clk frequency / (real (time constant + 2) * 64.0), 1)
+ENDPROC baudrate ;
+
+
+(*********************************************************************)
+(********* S C C - Z u g r i f f s p r o z e d u r e n ********)
+(*********************************************************************)
+
+
+INT PROC read port (INT CONST port) :
+ INT VAR value ;
+ control (-1, offset + port, -1, value) ;
+ IF value = -1 THEN errorstop ("SCC - Read failed") ; 0
+ ELSE value
+FI .
+
+ENDPROC read port ;
+
+PROC write port (INT CONST port, value) :
+ INT VAR rcode, my channel := channel ;
+ continue (32) ;
+ control (-1, offset + port, value, r code) ;
+ continue (my channel) ;
+ IF r code = -1 THEN errorstop ("SCC - Write failed") FI
+ENDPROC write port ;
+
+INT PROC register (BOOL CONST is channel a, INT CONST register x) :
+ INT VAR value ;
+ IF is channel a
+ THEN write port (1, registerx) ;
+ read port (1)
+ ELSE write port (0, registerx) ;
+ read port (0)
+ FI
+ENDPROC register ;
+
+
+PROC register (BOOL CONST is channel a, INT CONST register x, wert):
+ IF is channel a
+ THEN write port (1, register x) ;
+ write port (1, wert)
+ ELSE write port (0, register x) ;
+ write port (0, wert)
+ FI
+ENDPROC register ;
+
+ENDPACKET scc ;
+
+
diff --git a/system/ruc-terminal/unknown/src/SETUP.ELA b/system/ruc-terminal/unknown/src/SETUP.ELA
new file mode 100644
index 0000000..3e2f3e7
--- /dev/null
+++ b/system/ruc-terminal/unknown/src/SETUP.ELA
@@ -0,0 +1,257 @@
+PACKET setup DEFINES setup : (* 02.03.86, M.Staubermann *)
+
+LET separator = "|" ,
+ old option mark = " " , (* ""16"" , *)
+ choice mark = ""15"" ,
+ end mark = ""14"" ,
+ left = ""8"" ,
+ right = ""2"" ,
+ bottom = ""6""21""0"" ,
+ clr line = ""13""5"" ,
+ home = ""1"" ;
+
+PROC selektor (TEXT CONST options, INT VAR option number,BOOL CONST warten) :
+ TEXT VAR zeichen ;
+ INT VAR i ,
+ last separator pos ,
+ new separator pos := 0 ,
+ old option := option number ,
+ max options := 0 ;
+ REP
+ new separator pos := pos (options, separator, new separator pos +1) ;
+ max options INCR 1
+ UNTIL new separator pos = 0 PER ;
+ out (""13"") ;
+ REP
+ i := 0 ;
+ last separator pos := 0 ;
+ REP
+ i INCR 1 ;
+ new separator pos := pos (options, separator, last separator pos + 1) ;
+ IF new separator pos = 0
+ THEN new separator pos := LENGTH options + 1
+ FI ;
+ IF i = option number
+ THEN out (choice mark)
+ ELIF i = old option
+ THEN out (old option mark)
+ ELSE out (end mark)
+ FI ;
+ out subtext (options, last separator pos + 1, new separator pos - 1) ;
+ out (end mark) ;
+ last separator pos := new separator pos
+ UNTIL last separator pos = LENGTH options + 1 PER ;
+ out (""13"") ;
+ IF warten
+ THEN inchar (zeichen) ;
+ IF zeichen = ""27""
+ THEN option number := old option
+ ELIF zeichen = left AND option number = 1
+ THEN option number := max options
+ ELIF zeichen = left
+ THEN option number DECR 1
+ ELIF zeichen = right AND option number = max options
+ THEN option number := 1
+ ELIF zeichen = right
+ THEN option number INCR 1
+ FI
+ ELSE zeichen := ""13""
+ FI
+ UNTIL zeichen = ""13"" OR zeichen = ""27"" PER
+ENDPROC selektor ;
+
+LET std datenbits = 4 , (* 8 *)
+ std stopbits = 1 , (* 1.0 *)
+ std flowmode = 1 , (* xon/xoff *)
+ std parity = 1 , (* no parity *)
+ std fixed = 4 , (* RTS ON, DTR ON *)
+
+ setup text = "Ende|Kanal|Baudrate|Datenbits|Stopbits|Parity|Fluákontrolle",
+ ende text = "Žndern|Abbruch" ,
+ kanal text = "2|3" ,
+ datenbits text= "5|6|7|8" ,
+ stopbits text = "1.0|1.5|2.0" ,
+ parity text = "no|even|odd" ,
+ fixed text = "DTR OFF/RTS OFF|DTR OFF/RTS ON|DTR ON/RTS OFF|DTR ON/RTS ON" ,
+ flowmode text = "xon/xoff|dtr|rts/cts|dtr/rts/cts|fixed" ;
+
+INT VAR old session := 0 ;
+ROW 2 INT VAR datenbits, stopbits, parity, flowmode , fixed ;
+ROW 2 REAL VAR baudrates ;
+
+PROC init params :
+ datenbits := ROW 2 INT:(std datenbits , std datenbits) ;
+ stopbits := ROW 2 INT:(std stopbits , std stopbits) ;
+ parity := ROW 2 INT:(std parity , std parity) ;
+ flowmode := ROW 2 INT:(std flowmode , std flowmode) ;
+ fixed := ROW 2 INT:(std fixed, std fixed) ;
+ baudrates := ROW 2REAL:(baudrate (channelb), baudrate (channela)) ;
+ENDPROC init params ;
+
+PROC setup :
+ INT VAR kanal := aktueller kanal ,
+ setup choice := 1 ;
+ BOOL VAR x dtr, x rts, x auto dtr, x cts ;
+ page ;
+ init setup (kanal, setup choice) ;
+ select setup choice ;
+ cursor (1, 19) ;
+ setup choice := 2 ;
+ selektor (ende text, setup choice, TRUE) ;
+ out (bottom) ;
+ IF setup choice = 1
+ THEN kanal := 1 ;
+ x flowmode ;
+ setup (kanal bool, x parity, x stopbits, x datenbits,
+ x dtr, x rts, x auto dtr, x cts) ;
+ baudrate (kanal bool, baudrates (kanal)) ;
+ kanal := 2 ;
+ x flowmode ;
+ setup (kanal bool, x parity, x stopbits, x datenbits,
+ x dtr, x rts, x auto dtr, x cts) ;
+ baudrate (kanal bool, baudrates (kanal))
+ FI .
+
+x flowmode :
+ x dtr := FALSE ;
+ x rts := FALSE ;
+ SELECT flowmode (kanal) OF
+ CASE 1 : x auto dtr := FALSE ; (* XON/XOFF *)
+ x cts := FALSE
+ CASE 2 : x auto dtr := TRUE ; (* DTR *)
+ x cts := FALSE
+ CASE 3 : x auto dtr := FALSE ; (* RTS/CTS *)
+ x cts := TRUE
+ CASE 4 : x auto dtr := TRUE ; (* RTS/CTS/DTR *)
+ x cts := TRUE
+ CASE 5 : x auto dtr := FALSE ; (* fixed *)
+ x cts := FALSE ;
+ SELECT fixed (kanal) OF
+ CASE 1 : x dtr := FALSE ; (* wie XON/XOFF *)
+ x rts := FALSE
+ CASE 2 : x dtr := FALSE ; (* RTS=1 *)
+ x rts := TRUE
+ CASE 3 : x dtr := TRUE ; (* DTR=1 *)
+ x rts := FALSE
+ CASE 4 : x dtr := TRUE ; (* RTS=1,DTR=1 *)
+ x rts := TRUE
+ ENDSELECT
+ENDSELECT.
+
+x parity :
+ SELECT parity (kanal) OF
+ CASE 2 : even parity
+ CASE 3 : odd parity
+ OTHERWISE no parity
+ ENDSELECT.
+
+x stopbits :
+ SELECT stopbits (kanal) OF
+ CASE 2 : 1.5
+ CASE 3 : 2.0
+ OTHERWISE 1.0
+ ENDSELECT.
+
+x datenbits :
+ datenbits (kanal) + 4.
+
+select setup choice :
+ REP
+ cursor (1, 5) ;
+ selektor (setup text, setup choice, TRUE) ;
+ SELECT setup choice OF
+ CASE 1 : LEAVE select setup choice
+ CASE 2 : select kanal choice
+ CASE 3 : select baudrate choice
+ CASE 4 : select datenbits choice
+ CASE 5 : select stopbits choice
+ CASE 6 : select parity choice
+ CASE 7 : select flowmode choice
+ ENDSELECT
+ PER .
+
+select kanal choice :
+ INT VAR save kanal := kanal ;
+ cursor (1, 7) ;
+ selektor (kanal text, kanal, TRUE) ;
+ init setup (kanal, setup choice) .
+
+select baudrate choice :
+ cursor (1, 9) ;
+ TEXT VAR t := text (baudrates (kanal)) + " " ;
+ out (" ") ;
+ editget (t) ;
+ baudrates (kanal) := real (t) .
+
+select datenbits choice :
+ cursor (1, 11) ;
+ selektor (datenbits text, datenbits (kanal), TRUE) .
+
+select stopbits choice :
+ cursor (1, 13) ;
+ selektor (stopbits text, stopbits (kanal), TRUE) .
+
+select parity choice :
+ cursor (1, 15) ;
+ selektor (parity text, parity (kanal), TRUE).
+
+select flowmode choice :
+ cursor (1, 17) ;
+ selektor (flowmode text, flowmode (kanal), TRUE) ;
+ IF flowmode (kanal) = 5
+ THEN cursor (1, 19) ;
+ selektor (fixed text, fixed (kanal), TRUE) ;
+ out (clr line)
+ FI .
+
+aktueller kanal :
+ IF channel = 2 THEN 1
+ ELIF channel = 3 THEN 2
+ ELSE 1
+ FI .
+
+kanal bool :
+ IF kanal = 1 THEN channel b ELSE channel a FI .
+
+ENDPROC setup ;
+
+PROC init setup (INT VAR kanal, setup choice) :
+ IF session <> old session
+ THEN init params ;
+ old session := session
+ FI ;
+ out (home) ;
+ putline (" ----------------------------- V 2 4 - S E T U P ---------------------------") ;
+ line ;
+ putline (" Verlassen 'ESC', Aussuchen 'LEFT' und 'RIGHT', Einstellen 'RETURN'") ;
+ line ;
+ selektor (setup text, setup choice, FALSE) ;
+ line ;
+ line ;
+ selektor (kanal text, kanal, FALSE) ;
+ line ;
+ line ;
+ out (" ") ; put (baudrates (kanal)) ; out (" ") ;
+ line ;
+ line ;
+ selektor (datenbits text, datenbits (kanal), FALSE) ;
+ line ;
+ line ;
+ selektor (stopbits text, stopbits (kanal), FALSE) ;
+ line ;
+ line ;
+ selektor (parity text, parity (kanal), FALSE) ;
+ line ;
+ line ;
+ selektor (flowmode text, flowmode (kanal), FALSE) ;
+ line ;
+ line ;
+ line ;
+ line ;
+ putline (" --------------------------------------------------------------------------") ;
+ out (home) .
+ENDPROC init setup ;
+
+ENDPACKET setup ;
+
+
diff --git a/system/ruc-terminal/unknown/src/Terminal108(ascii) b/system/ruc-terminal/unknown/src/Terminal108(ascii)
new file mode 100644
index 0000000..71e335c
--- /dev/null
+++ b/system/ruc-terminal/unknown/src/Terminal108(ascii)
@@ -0,0 +1,121 @@
+ (* Terminaltyp: Terminal108 *)
+ (* Keyboard : Deutsch *)
+ (* Zeichensatz: ASCII *)
+ (* Stand : 28.04.86 *)
+
+forget ("Terminal108(ascii)", quiet) ;
+new type ("Terminal108(ascii)") ;
+
+cursor logic (32, ""30"", "", "") ;
+
+(* Nicht im EUMEL-Zeichensatz definierte Steuerzeichen *)
+illegal (11, 12) ;
+illegal (16, 31) ;
+illegal (128, 213) ;
+illegal (224, 250) ;
+illegal (252, 255) ;
+
+enter outcode ( 1, 25) ; (* Cursor Home *)
+enter outcode ( 2, 28) ; (* Cursor right *)
+enter outcode ( 3, 31) ; (* Cursor up *)
+enter outcode ( 4, 11) ; (* Clear EOP *)
+enter outcode ( 5, 29) ; (* Clear EOL *)
+enter outcode ( 7, 7) ; (* Bell *)
+enter outcode (14, 0, " "14"") ; (* Norm Vid *)
+enter outcode (15, 0, ""15" ") ; (* Inv Vid *)
+
+enter outcode (214, 193) ; (* Inv A *)
+enter outcode (215, 207) ; (* Inv O *)
+enter outcode (216, 213) ; (* Inv U *)
+enter outcode (217, 225) ; (* Inv a *)
+enter outcode (218, 239) ; (* Inv o *)
+enter outcode (219, 245) ; (* Inv u *)
+enter outcode (220, 235) ; (* Inv k *)
+enter outcode (221, 173) ; (* Inv - *)
+enter outcode (222, 163) ; (* Inv # *)
+enter outcode (223, 160) ; (* Inv Blank *)
+enter outcode (251, 194) ; (* Inv B *)
+
+enter outcode (64, 0, ""1"B"64"") ; (* ""1"B" = ASCII *)
+enter outcode (91, 0, ""1"B"91"") ;
+enter outcode (92, 0, ""1"B"92"") ;
+enter outcode (93, 0, ""1"B"93"") ;
+enter outcode (123,0, ""1"B"123"") ;
+enter outcode (124,0, ""1"B"124"") ;
+enter outcode (125,0, ""1"B"125"") ;
+enter outcode (126,0, ""1"B"126"") ;
+(*
+enter outcode (12, 12) ; (* CLR SCRN *)
+enter outcode (16, 2) ; (* Cursor Mode <mode> *)
+enter outcode (17, 1) ; (* Zeichensatz <switch> : Bit 0..3 *)
+enter outcode (18, 18) ; (* Insert Line *)
+enter outcode (19, 26) ; (* Erase (nicht Delete) Line *)
+enter outcode (20, 5) ; (* xpos := 80 *)
+enter outcode (22, 22) ; (* Select Screen <nr> : Bit 0 *)
+enter outcode (23, 23) ; (*SetWindow <left><top><right+1><bottom+1> (+128)*)
+*)
+enter incode ( 1, ""192"") ; (* Home : Cursorblock mitte *)
+enter incode ( 2, ""149"") ; (* Cursor right: Cursorblock mitte rechts *)
+enter incode ( 3, ""139"") ; (* Cursor up : Cursorblock oben mitte *)
+(*enter incode (4, ""21"") ; (* Info usw. : Cursorblock unten rechts*) *)
+enter incode ( 7, ""194"") ; (* SV - Call : Funktionstaste F2 *)
+enter incode ( 8, ""136"") ; (* Cursor left : Cursorblock mitte links *)
+enter incode ( 10, ""138"") ; (* Cursor down : Cursorblock unten mitte *)
+enter incode ( 11, ""142"") ; (* RUBIN/Insert: Cursorblock oben links *)
+enter incode ( 12, ""127"") ; (* RUBOUT/Delete:DELETE-Taste *)
+enter incode ( 16, ""143"") ; (* MARK : Cursorblock oben rechts *)
+enter incode ( 17, ""193"") ; (* Stop : Funktionstaste F1 *)
+enter incode ( 23, ""195"") ; (* Weiter : Funktionstaste F3 *)
+enter incode ( 31, ""8"") ; (* Backspace : (2x) gerahmter Linkspfeil *)
+
+enter incode (214, ""91"") ;
+enter incode (215, ""92"") ;
+enter incode (216, ""93"") ;
+enter incode (217, ""123"") ;
+enter incode (218, ""124"") ;
+enter incode (219, ""125"") ;
+enter incode (251, ""126"") ;
+
+enter incode ( 0, ""24"") ; (* CE *)
+enter incode ( 5, ""196"") ; (* F4 *)
+enter incode ( 6, ""197"") ; (* F5 *)
+enter incode (14, ""198"") ; (* F6 *)
+enter incode (15, ""199"") ; (* F7 *)
+enter incode (18, ""200"") ; (* F8 *)
+enter incode (19, ""201"") ; (* F9 *)
+enter incode (20, ""202"") ; (* F10 *)
+enter incode (21, ""203"") ; (* F11 *)
+enter incode (22, ""204"") ; (* F12 *)
+enter incode (24, ""205"") ; (* F13 *)
+enter incode (25, ""206"") ; (* F14 *)
+enter incode (26, ""207"") ; (* F15 *)
+enter incode (28, ""209"") ; (* SHIFT F1 *)
+enter incode (29, ""210"") ; (* SHIFT F2 *)
+enter incode (30, ""211"") ; (* SHIFT F3 *)
+
+enter incode (126,""165"") ; (* CTRL F5 *)
+enter incode (91, ""166"") ; (* CTRL F6 *)
+enter incode (92, ""167"") ; (* CTRL F7 *)
+enter incode (93, ""168"") ; (* CTRL F8 *)
+enter incode (123,""169"") ; (* CTRL F9 *)
+enter incode (124,""170"") ; (* CTRL F10 *)
+enter incode (125,""171"") ; (* CTRL F11 *)
+
+enter incode (251, ""213"") ; (* SHIFT F5 = á *)
+ (* SHIFT F6 = „
+Andere incodes schon Hardware- SHIFT F7 = ”
+m„áig implementiert: SHIFT F8 =
+ SHIFT F9 = Ž
+ SHIFT F10= ™
+ SHIFT F11= š
+ SHIFT F12= Trenn-k ( k )
+ SHIFT F13= Trenn-Strich ( - )
+ SHIFT F14= Geschtztes Fis ( # )
+ SHIFT F15= Geschtztes Blank ( ) *)
+
+PROC illegal (INT CONST from, to) :
+ INT VAR i ;
+ FOR i FROM from UPTO to REP
+ enter outcode (i, 127)
+ PER
+ENDPROC illegal ;
diff --git a/system/ruc-terminal/unknown/src/Terminal108(deutsch) b/system/ruc-terminal/unknown/src/Terminal108(deutsch)
new file mode 100644
index 0000000..b6fcfcf
--- /dev/null
+++ b/system/ruc-terminal/unknown/src/Terminal108(deutsch)
@@ -0,0 +1,122 @@
+ (* Terminaltyp: Terminal108 *)
+ (* Keyboard : Deutsch *)
+ (* Zeichensatz: Deutsch *)
+ (* Stand : 28.04.86 *)
+
+forget ("Terminal108(deutsch)", quiet) ;
+new type ("Terminal108(deutsch)") ;
+
+cursor logic (32, ""30"", "", "") ;
+
+(* Nicht im EUMEL-Zeichensatz definierte Steuerzeichen *)
+illegal (11, 12) ;
+illegal (16, 31) ;
+illegal (128, 213) ;
+illegal (224, 250) ;
+illegal (252, 255) ;
+
+enter outcode (91, 0, ""15"("14"") ;
+enter outcode (92, 0, ""15"/"14"") ;
+enter outcode (93, 0, ""15")"14"") ;
+enter outcode (123, 0, ""15"<"14"") ;
+enter outcode (124, 0, ""15"!"14"") ;
+enter outcode (125, 0, ""15">"14"") ;
+enter outcode (126, 0, ""15"`"14"") ;
+
+enter outcode (214, 0, ""1"D"91"") ; (* ""1"D" = Deutsch *)
+enter outcode (215, 0, ""1"D"92"") ;
+enter outcode (216, 0, ""1"D"93"") ;
+enter outcode (217, 0, ""1"D"123"") ;
+enter outcode (218, 0, ""1"D"124"") ;
+enter outcode (219, 0, ""1"D"125"") ;
+enter outcode (220, 235) ; (* Inv k *)
+enter outcode (221, 173) ; (* Inv - *)
+enter outcode (222, 163) ; (* Inv # *)
+enter outcode (223, 160) ; (* Inv Blank *)
+enter outcode (251, 0, ""1"D"126"") ;
+
+enter outcode ( 1, 25) ; (* Cursor Home *)
+enter outcode ( 2, 28) ; (* Cursor right *)
+enter outcode ( 3, 31) ; (* Cursor up *)
+enter outcode ( 4, 11) ; (* Clear EOP *)
+enter outcode ( 5, 29) ; (* Clear EOL *)
+enter outcode ( 7, 7) ; (* Bell *)
+enter outcode (14, 0, " "14"") ; (* Norm Vid *)
+enter outcode (15, 0, ""15" ") ; (* Inv Vid *)
+(*
+enter outcode (12, 12) ; (* CLR SCRN *)
+enter outcode (16, 2) ; (* Cursor Mode <mode> *)
+enter outcode (17, 1) ; (* Zeichensatz <switch> : Bit 0..3 *)
+enter outcode (18, 18) ; (* Insert Line *)
+enter outcode (19, 26) ; (* Erase (nicht Delete) Line *)
+enter outcode (20, 5) ; (* xpos := 80 *)
+enter outcode (22, 22) ; (* Select Screen <nr> : Bit 0 *)
+enter outcode (23, 23) ; (*SetWindow <left><top><right+1><bottom+1> (+128)*)
+*)
+enter incode ( 1, ""192"") ; (* Home : Cursorblock mitte *)
+enter incode ( 2, ""149"") ; (* Cursor right: Cursorblock mitte rechts *)
+enter incode ( 3, ""139"") ; (* Cursor up : Cursorblock oben mitte *)
+(*enter incode (4, ""21"") ; (* Info usw. : Cursorblock unten rechts*) *)
+enter incode ( 7, ""194"") ; (* SV - Call : Funktionstaste F2 *)
+enter incode ( 8, ""136"") ; (* Cursor left : Cursorblock mitte links *)
+enter incode ( 10, ""138"") ; (* Cursor down : Cursorblock unten mitte *)
+enter incode ( 11, ""142"") ; (* RUBIN/Insert: Cursorblock oben links *)
+enter incode ( 12, ""127"") ; (* RUBOUT/Delete:DELETE-Taste *)
+enter incode ( 16, ""143"") ; (* MARK : Cursorblock oben rechts *)
+enter incode ( 17, ""193"") ; (* Stop : Funktionstaste F1 *)
+enter incode ( 23, ""195"") ; (* Weiter : Funktionstaste F3 *)
+enter incode ( 31, ""8"") ; (* Backspace : (2x) gerahmter Linkspfeil *)
+
+enter incode (214, ""91"") ;
+enter incode (215, ""92"") ;
+enter incode (216, ""93"") ;
+enter incode (217, ""123"") ;
+enter incode (218, ""124"") ;
+enter incode (219, ""125"") ;
+enter incode (251, ""126"") ;
+
+enter incode ( 0, ""24"") ; (* CE *)
+enter incode ( 5, ""196"") ; (* F4 *)
+enter incode ( 6, ""197"") ; (* F5 *)
+enter incode (14, ""198"") ; (* F6 *)
+enter incode (15, ""199"") ; (* F7 *)
+enter incode (18, ""200"") ; (* F8 *)
+enter incode (19, ""201"") ; (* F9 *)
+enter incode (20, ""202"") ; (* F10 *)
+enter incode (21, ""203"") ; (* F11 *)
+enter incode (22, ""204"") ; (* F12 *)
+enter incode (24, ""205"") ; (* F13 *)
+enter incode (25, ""206"") ; (* F14 *)
+enter incode (26, ""207"") ; (* F15 *)
+enter incode (28, ""209"") ; (* SHIFT F1 *)
+enter incode (29, ""210"") ; (* SHIFT F2 *)
+enter incode (30, ""211"") ; (* SHIFT F3 *)
+
+enter incode (126,""165"") ; (* CTRL F5 *)
+enter incode (91, ""166"") ; (* CTRL F6 *)
+enter incode (92, ""167"") ; (* CTRL F7 *)
+enter incode (93, ""168"") ; (* CTRL F8 *)
+enter incode (123,""169"") ; (* CTRL F9 *)
+enter incode (124,""170"") ; (* CTRL F10 *)
+enter incode (125,""171"") ; (* CTRL F11 *)
+
+enter incode (251, ""213"") ; (* SHIFT F5 = á *)
+ (* SHIFT F6 = „
+Andere incodes schon Hardware- SHIFT F7 = ”
+m„áig implementiert: SHIFT F8 =
+ SHIFT F9 = Ž
+ SHIFT F10= ™
+ SHIFT F11= š
+ SHIFT F12= Trenn-k ( k )
+ SHIFT F13= Trenn-Strich ( - )
+ SHIFT F14= Geschtztes Fis ( # )
+ SHIFT F15= Geschtztes Blank ( ) *)
+
+PROC illegal (INT CONST from, to) :
+ INT VAR i ;
+ FOR i FROM from UPTO to REP
+ enter outcode (i, 127)
+ PER
+ENDPROC illegal ;
+
+
diff --git a/system/ruc-terminal/unknown/src/ructerm.apl-german b/system/ruc-terminal/unknown/src/ructerm.apl-german
new file mode 100644
index 0000000..9b4bdf1
--- /dev/null
+++ b/system/ruc-terminal/unknown/src/ructerm.apl-german
@@ -0,0 +1,125 @@
+ (* Terminaltyp: ructerm *)
+ (* Keyboard : Deutsch *)
+ (* Zeichensatz: Universal*)
+ (* Stand : 08.10.86 *)
+ (* Mit 'info'-Taste auf => *)
+
+forget ("ructerm.apl/german", quiet) ;
+new type ("ructerm.apl/german") ;
+
+enter outcode (11, 253) ; (* links Pfeil *)
+enter outcode (12, 221) ; (* rechts Pfeil *)
+enter outcode (16, 240) ;
+enter outcode (17, 241) ;
+enter outcode (18, 242) ;
+enter outcode (19, 243) ;
+enter outcode (20, 244) ;
+enter outcode (21, 245) ;
+enter outcode (22, 246) ;
+enter outcode (23, 247) ;
+enter outcode (24, 248) ;
+
+cursor logic (32, ""27"=", "", "") ;
+
+(* Ausgabe Codes : *)
+enter outcode ( 1, 30) ; (* Cursor Home : <CTRL-^> *)
+enter outcode ( 2, 12) ; (* Cursor right: <CTRL-L> *)
+enter outcode ( 3, 11) ; (* Cursor up : <CTRL-K> *)
+enter outcode ( 4, 0, ""27"Y"27"z7") ; (* CLEOP und Zeichensatz : <ESC> Y *)
+enter outcode ( 5, 0, ""27"T") ; (* CLEOL : <ESC> T *)
+enter outcode ( 8, 8) ; (* Cursor left : <CTRL-H> *)
+enter outcode ( 10, 10) ; (* Cursor down : <LF> *)
+enter outcode ( 13, 13) ; (* CR : <CR> *)
+enter outcode ( 14, 175) ; (* END MARK : Spitz. Klammer zu *)
+enter outcode ( 15, 192) ; (* BEGIN MARK : Spitz. Klammer auf *)
+
+enter outcode (214, 91) ; (* Ae *)
+enter outcode (215, 92) ; (* Oe *)
+enter outcode (216, 93) ; (* Ue *)
+enter outcode (217, 123) ; (* ae *)
+enter outcode (218, 124) ; (* oe *)
+enter outcode (219, 125) ; (* ue *)
+enter outcode (220, 235) ; (* Trenn-k *)
+enter outcode (221, 191) ; (* Trennstrich *)
+enter outcode (222, 188) ; (* Fest-# = Raute *)
+enter outcode (223, 160) ; (* Fest-Blank *)
+enter outcode (251, 126) ; (* sz *)
+enter outcode (252, 64) ; (* paragraph *)
+
+enter outcode (64, 131) ; (* At-Sign *)
+enter outcode (91, 252) ; (* Eck. Klammer auf *)
+enter outcode (92, 223) ; (* Backslash *)
+enter outcode (93, 251) ; (* Eck. Klammer zu *)
+enter outcode (123, 167) ; (* Geschw. Klammer auf *)
+enter outcode (124, 205) ; (* Senkr. Strich *)
+enter outcode (125, 163) ; (* Geschw. Klammer zu *)
+enter outcode (126, 212) ; (* Tilde *)
+
+enter outcode (144, 214) ; (* Zeichen mit Umlautcodes *)
+enter outcode (145, 215) ; (* verlegen *)
+enter outcode (146, 216) ;
+enter outcode (147, 217) ;
+enter outcode (148, 218) ;
+enter outcode (149, 219) ;
+enter outcode (150, 220) ;
+enter outcode (151, 221) ;
+enter outcode (152, 222) ;
+
+enter incode ( 1, ""192"") ; (* Home : Cursorblock mitte *)
+enter incode ( 2, ""149"") ; (* Cursor right: Cursorblock mitte rechts *)
+enter incode ( 3, ""139"") ; (* Cursor up : Cursorblock oben mitte *)
+enter incode ( 4, ""21"") ; (* Info usw. : Cursorblock unten rechts *)
+enter incode ( 7, ""194"") ; (* SV - Call : Funktionstaste F2 *)
+enter incode ( 8, ""136"") ; (* Cursor left : Cursorblock mitte links *)
+enter incode ( 10, ""138"") ; (* Cursor down : Cursorblock unten mitte *)
+enter incode ( 11, ""142"") ; (* RUBIN/Insert: Cursorblock oben links *)
+enter incode ( 12, ""127"") ; (* RUBOUT/Delete:DELETE-Taste *)
+enter incode ( 16, ""143"") ; (* MARK : Cursorblock oben rechts *)
+enter incode ( 17, ""193"") ; (* Stop : Funktionstaste F1 *)
+enter incode ( 23, ""195"") ; (* Weiter : Funktionstaste F3 *)
+enter incode ( 31, ""8"") ; (* Backspace : (2x) gerahmter Linkspfeil *)
+
+enter incode (214, ""91"") ;
+enter incode (215, ""92"") ;
+enter incode (216, ""93"") ;
+enter incode (217, ""123"") ;
+enter incode (218, ""124"") ;
+enter incode (219, ""125"") ;
+enter incode (251, ""126"") ;
+
+enter incode ( 0, ""24"") ; (* CE *)
+enter incode ( 5, ""196"") ; (* F4 *)
+enter incode ( 6, ""197"") ; (* F5 *)
+enter incode (14, ""198"") ; (* F6 *)
+enter incode (15, ""199"") ; (* F7 *)
+enter incode (18, ""200"") ; (* F8 Insert Line *)
+enter incode (19, ""201"") ; (* F9 *)
+enter incode (20, ""202"") ; (* F10 *)
+enter incode (21, ""203"") ; (* F11 *)
+enter incode (22, ""204"") ; (* F12 *)
+enter incode (24, ""205"") ; (* F13 *)
+enter incode (25, ""206"") ; (* F14 *)
+enter incode (26, ""207"") ; (* F15 *)
+enter incode (28, ""209"") ; (* SHIFT F1 *)
+enter incode (29, ""210"") ; (* SHIFT F2 *)
+enter incode (30, ""211"") ; (* SHIFT F3 *)
+
+enter incode (126,""165"") ; (* CTRL F5 *)
+enter incode (91, ""166"") ; (* CTRL F6 *)
+enter incode (92, ""167"") ; (* CTRL F7 *)
+enter incode (93, ""168"") ; (* CTRL F8 *)
+enter incode (123,""169"") ; (* CTRL F9 *)
+enter incode (124,""170"") ; (* CTRL F10 *)
+enter incode (125,""171"") ; (* CTRL F11 *)
+
+ (* SHIFT F6 = „
+Andere incodes schon Hardware- SHIFT F7 = ”
+m„áig implementiert: SHIFT F8 =
+ SHIFT F9 = Ž
+ SHIFT F10= ™
+ SHIFT F11= š
+ SHIFT F12= Trenn-k ( k )
+ SHIFT F13= Trenn-Strich ( - )
+ SHIFT F14= Geschtztes Fis ( # )
+ SHIFT F15= Geschtztes Blank ( ) *)
+
diff --git a/system/ruc-terminal/unknown/src/ructerm.ascii b/system/ruc-terminal/unknown/src/ructerm.ascii
new file mode 100644
index 0000000..4b5cddd
--- /dev/null
+++ b/system/ruc-terminal/unknown/src/ructerm.ascii
@@ -0,0 +1,94 @@
+ (* Terminaltyp: ructerm *)
+ (* Keyboard : Deutsch *)
+ (* Zeichensatz: Ascii *)
+ (* Stand : 08.10.86 *)
+ (* Mit 'info'-Taste auf => *)
+
+forget ("ructerm.ascii", quiet) ;
+new type ("ructerm.ascii") ;
+
+cursor logic (32, ""27"=", "", "") ;
+
+(* Ausgabe Codes : *)
+enter outcode ( 1, 30) ; (* Cursor Home : <CTRL-^> *)
+enter outcode ( 2, 12) ; (* Cursor right: <CTRL-L> *)
+enter outcode ( 3, 11) ; (* Cursor up : <CTRL-K> *)
+enter outcode ( 4, 0, ""27"Y") ; (* CLEOP : <ESC> Y *)
+enter outcode ( 5, 0, ""27"T") ; (* CLEOL : <ESC> T *)
+enter outcode ( 8, 8) ; (* Cursor left : <CTRL-H> *)
+enter outcode ( 10, 10) ; (* Cursor down : <LF> *)
+enter outcode ( 13, 13) ; (* CR : <CR> *)
+enter outcode ( 14, 0, " "27"(") ; (* END MARK : <ESC> ( *)
+enter outcode ( 15, 0, ""27") ") ; (* BEGIN MARK : <ESC> ) *)
+
+enter outcode (214, 193) ; (* Ae *)
+enter outcode (215, 207) ; (* Oe *)
+enter outcode (216, 213) ; (* Ue *)
+enter outcode (217, 225) ; (* ae *)
+enter outcode (218, 239) ; (* oe *)
+enter outcode (219, 245) ; (* ue *)
+enter outcode (220, 235) ; (* Trenn-k *)
+enter outcode (221, 173) ; (* Trennstrich *)
+enter outcode (222, 163) ; (* Fest-# *)
+enter outcode (223, 160) ; (* Fest-Blank *)
+enter outcode (251, 194) ; (* sz *)
+enter outcode (252, 192) ; (* paragraph *)
+
+enter incode ( 1, ""192"") ; (* Home : Cursorblock mitte *)
+enter incode ( 2, ""149"") ; (* Cursor right: Cursorblock mitte rechts *)
+enter incode ( 3, ""139"") ; (* Cursor up : Cursorblock oben mitte *)
+enter incode ( 4, ""21"") ; (* Info usw. : Cursorblock unten rechts *)
+enter incode ( 7, ""194"") ; (* SV - Call : Funktionstaste F2 *)
+enter incode ( 8, ""136"") ; (* Cursor left : Cursorblock mitte links *)
+enter incode ( 10, ""138"") ; (* Cursor down : Cursorblock unten mitte *)
+enter incode ( 11, ""142"") ; (* RUBIN/Insert: Cursorblock oben links *)
+enter incode ( 12, ""127"") ; (* RUBOUT/Delete:DELETE-Taste *)
+enter incode ( 16, ""143"") ; (* MARK : Cursorblock oben rechts *)
+enter incode ( 17, ""193"") ; (* Stop : Funktionstaste F1 *)
+enter incode ( 23, ""195"") ; (* Weiter : Funktionstaste F3 *)
+enter incode ( 31, ""8"") ; (* Backspace : (2x) gerahmter Linkspfeil *)
+
+enter incode (214, ""91"") ;
+enter incode (215, ""92"") ;
+enter incode (216, ""93"") ;
+enter incode (217, ""123"") ;
+enter incode (218, ""124"") ;
+enter incode (219, ""125"") ;
+enter incode (251, ""126"") ;
+
+enter incode ( 0, ""24"") ; (* CE *)
+enter incode ( 5, ""196"") ; (* F4 *)
+enter incode ( 6, ""197"") ; (* F5 *)
+enter incode (14, ""198"") ; (* F6 *)
+enter incode (15, ""199"") ; (* F7 *)
+enter incode (18, ""200"") ; (* F8 Insert Line *)
+enter incode (19, ""201"") ; (* F9 *)
+enter incode (20, ""202"") ; (* F10 *)
+enter incode (21, ""203"") ; (* F11 *)
+enter incode (22, ""204"") ; (* F12 *)
+enter incode (24, ""205"") ; (* F13 *)
+enter incode (25, ""206"") ; (* F14 *)
+enter incode (26, ""207"") ; (* F15 *)
+enter incode (28, ""209"") ; (* SHIFT F1 *)
+enter incode (29, ""210"") ; (* SHIFT F2 *)
+enter incode (30, ""211"") ; (* SHIFT F3 *)
+
+enter incode (126,""165"") ; (* CTRL F5 *)
+enter incode (91, ""166"") ; (* CTRL F6 *)
+enter incode (92, ""167"") ; (* CTRL F7 *)
+enter incode (93, ""168"") ; (* CTRL F8 *)
+enter incode (123,""169"") ; (* CTRL F9 *)
+enter incode (124,""170"") ; (* CTRL F10 *)
+enter incode (125,""171"") ; (* CTRL F11 *)
+
+ (* SHIFT F6 = „
+Andere incodes schon Hardware- SHIFT F7 = ”
+m„áig implementiert: SHIFT F8 =
+ SHIFT F9 = Ž
+ SHIFT F10= ™
+ SHIFT F11= š
+ SHIFT F12= Trenn-k ( k )
+ SHIFT F13= Trenn-Strich ( - )
+ SHIFT F14= Geschtztes Fis ( # )
+ SHIFT F15= Geschtztes Blank ( ) *)
+