Eingabe-/Ausgabegeräte

Dieses Kapitel enthält zusätzliche Informationen zu den von Natural unterstützten Ein-/Ausgabegeräten.

Folgende Themen werden behandelt:


Terminal-Unterstützung

Natural unterstützt eine Vielzahl von Terminaltypen für die Verwendung mit Großrechnern. In TP-Monitor-Umgebungen, in denen die Informationen zum Terminaltyp nicht automatisch an Natural geliefert werden, können Sie den Natural-Profilparameter TTYPE verwenden, damit Natural die entsprechende Konvertierungsroutine zum Betrieb eines bestimmten Terminaltyps aktivieren kann.

Links zu verwandten Themen:

Unterstützung von Lichtstiften (Light Pens)

Die Unterstützung von Lichtstiften wurde durch das Terminalkommando %RM verbessert. Dieses Kommando bewirkt, dass alle lichtstiftempfindlichen Felder auf dem Bildschirm schreibgeschützt werden, d.h. der Benutzer kann sie mit einem Lichtstift anwählen, aber ihren Inhalt nicht überschreiben.

Damit ein Feld lichtstiftempfindlich ist, muss es intensiviert (Session-Parameter AD=I) oder blinkend (AD=B) dargestellt werden, und das erste Zeichen des Feldes muss ein Lichtstift-Funktionszeichen sein (siehe unten). Die Auswahl eines Feldes mit einem Lichtstift bewirkt eine Änderung des Funktionszeichens, daher können Sie die Verarbeitung von mit einem Lichtstift ausgewählten Feldern von den Werten der Funktionszeichen abhängig machen.

Die folgenden Lichtstift-Funktionszeichen sind verfügbar:

Zeichen Bedeutung
? Sie können mehrere Felder auswählen, bevor Sie ENTER drücken.
> Es wurde ausgewählt, und wenn es erneut ausgewählt wird, wird es zu einem Fragezeichen ?. Die Zeichen ? und > wechseln sich ab.
& Sie können nur ein Feld auswählen und es wird als ENTER sowohl für das Feld als auch für das MDT (Modified Data Tag) verwendet.
' ' (leer) Sie können nur ein Feld auswählen, und es wird nur das MDT angezeigt.

Bei Funktionszeichen müssen Sie zwischen Auswahlfeldern (?, >) und Achtungsfelder (&, leer oder Null) unterscheiden. Auswahlfelder lösen keine sofortige Datenübertragung aus, so dass Sie mehrere Felder auswählen können. Achtungsfelder führen zu einer sofortigen Aktion.

Die Taste SELECT CURSOR emuliert eine Auswahl mit dem Lichtstift. Wenn Sie den Cursor auf das Feld bewegen, das Sie auswählen möchten, und SELECT CURSOR drücken, wird dieses Feld ausgewählt.

Beispiel für ein Natural-Programm zur Verwendung eines Lichtstiftes

RESET #FIELD-1 (A8)
  #FIELD-2 (A8) #FIELD-3 (A8) #CV-1 (C) #CV-2 (C) #CV-3 (C)
SET KEY ALL
/* SET CONTROL 'RM' IS A TOGGLE. AFTER IT IS EXECUTED ONCE MAKE IT A
/* COMMENT, SO THAT YOU DO NOT TOGGLE IT 'OFF'.
**SET CONTROL 'RM'
REPEAT
  IF *PF-KEY NOT = 'ENTR' AND *PF-KEY NOT = 'PEN' ESCAPE BOTTOM
  MOVE (AD=I CD=YE) TO #CV-1
  MOVE (AD=I CD=RE) TO #CV-2
  MOVE (AD=I CD=BL) TO #CV-3
  MOVE ' FIELD-1' TO #FIELD-1
  MOVE '&FIELD-2' TO #FIELD-2
  MOVE '?FIELD-3' TO #FIELD-3
  INPUT (SG=OFF IP=OFF)
    01/01 #FIELD-1 (CV=#CV-1 AD=M)
    03/01 #FIELD-2 (CV=#CV-2 AD=M)
    05/01 #FIELD-3 (CV=#CV-3 AD=M)
  WRITE 'PF-KEY =' *PF-KEY
  IF #CV-1 MODIFIED WRITE '#CV-1 MODIFIED' #FIELD-1
  IF #CV-2 MODIFIED WRITE '#CV-2 MODIFIED' #FIELD-2
  IF #CV-3 MODIFIED WRITE '#CV-3 MODIFIED' #FIELD-3
LOOP
END

Drucker-Unterstützung

Folgende Themen werden behandelt:

Drucker-Vorschubsteuerzeichen

In einem Natural-Programm können Sie Steuerzeichen für den Druckervorschub mit dem Statement DEFINE PRINTER wie folgt erzeugen:

.... 
DEFINE PRINTER (n) OUTPUT 'name' 
DEFINE PRINTER (n+1) OUTPUT 'CCONTROL' 
....

Beide DEFINE PRINTER-Statements wirken zusammen, so dass alle Natural-Ausgaben für den Drucker (n) den normalen Natural-Report-Ausgaberegeln folgen und alle Natural-Ausgaben für den Drucker (n+1) auch auf den Drucker (n) geschrieben werden. Natural erzeugt für diesen Report kein Druckervorschubsteuerzeichen. Daher ist das erste Zeichen in der Ausgabevariablen das Steuerzeichen.

Mit dieser Methode ist es möglich, Steuerzeichen für Laserdruckersysteme und Kanalvorschubzeichen für Zeilendrucker in einem normalen Natural-Ausgabereport zu mischen.

Natural-Programmbeispiel für Drucker-Vorschubsteuerzeichen
...
DEFINE PRINTER (1) OUTPUT 'CMPRT01'
DEFINE PRINTER (2) OUTPUT 'CCONTROL'
WRITE (1) 'TEST'
WRITE (2) NOTITLE '+TEST'
MOVE H'5A' TO A(A1) 
WRITE (2) A '....'
...

Die entsprechenden hexadezimalen Daten in der Spooldatei, beginnend mit Spalte 0, sind:

I..I..I..I..I..I..I..I..I..I..I..I..I..I..I
F1 E3 C5 E2 E3
1  T  E  S  T
4E E3 C5 E2 E3
+  T  E  S  T 
5A ....

CCONTROL ist der Name einer speziellen Druckersteuertabelle, die dem Drucker n-1 zugeordnet ist. Dieser Name darf nicht geändert werden.

Natural-Unterstützung für Laserdrucker

Natural unterstützt Laserdruckersysteme des Typs IBM 3800.

Mit dem Statement DEFINE PRINTER können Sie einen Report für das Druckersystem 3800 steuern und zuordnen. Mit diesem Statement können Sie festlegen, dass die Natural-Druckausgabe für Report 1 an ein Druckersystem 3800 weitergeleitet wird.

DEFINE PRINTER (1) OUTPUT 'LAS3800'                
 I I => 1-31 for CMPRT01 to CMPRT31
 ....

Je nach Einstellung des Parameters INTENS wiederholt Natural jede Zeile bis zu viermal und erkennt die Natural-Attribute AD=D, AD=I, AD=C und AD=V (siehe Session-Parameter AD).

Die erste Zeile enthält in der ersten Spalte den ASA-Steuercode und in der zweiten Spalte das 3800-Font-Steuerzeichen (hexadezimal F0) für den ersten Font. Die Spalten 2 bis nnn enthalten die Druckdaten, die nicht mit dem Attribut AD=I, AD=C oder AD=V gekennzeichnet sind.

Die zweite Zeile enthält in der ersten Spalte den ASA-Steuercode + (für Druck ohne Zeilenvorschub) und in der zweiten Spalte das 3800-Font-Steuerzeichen (hexadezimal F1) für den zweiten Font. Die Spalten 2 bis nnn enthalten die Druckdaten, die mit AD=I gekennzeichnet sind.

Die dritte Zeile enthält in der ersten Spalte den ASA-Steuercode + (für Druck ohne Zeilenvorschub) und in der zweiten Spalte das 3800-Font-Steuerzeichen (hexadezimal F2) für die dritte Schriftart. Die Spalten 2 bis nnn enthalten die Druckdaten, die mit AD=C gekennzeichnet sind.

Die vierte Zeile enthält in der ersten Spalte den ASA-Steuercode + (für Druck ohne Zeilenvorschub) und in der zweiten Spalte das 3800-Font-Steuerzeichen (hexadezimal F3) für den vierten Font. Die Spalten 2 bis nnn enthalten die Druckdaten, die mit AD=V gekennzeichnet sind.

Wenn INTENS mit einem Wert kleiner als 4 angegeben wird, werden alle nicht unterstützten Schriften mit dem Hexadezimalzeichen F0 gedruckt.

Beispiel für ein Natural-Programm zur Verwendung von Laserdruckern
....
DEFINE PRINTER (1) OUTPUT 'LAS3800'
WRITE (1) 'FIRST' 'SECOND' (AD=I) 'THIRD' (AD=C) 'FOURTH' (AD=V)
....

Die entsprechenden hexadezimalen Daten in der Spooldatei, beginnend mit Spalte 0, sind:

I..I..I..I..I..I..I..I..I..I..I..I..I..I..I..I..I..I..I..I..I..I..I
40 F0 C6 C9 D9 E2 E3 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 (hex)
    0  F I R S T
4E F1 40 40 40 40 40 40 E2 C5 C3 E4 D5 C4 C4 40 40 40 40 40 40 40 (hex)
+ 1                      S E C O N D
4E F2 40 40 40 40 40 40 40 40 40 40 40 40 40 E3 C8 C9 D9 D4 40 40 (hex)
+ 2                                           T H I R D
4E F3 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 C5 (hex)
+ 3                                                             F
Beispiel-JCL für die Verwendung von Laserdruckern
....
//xxxx JOB xxxxx,....
.
//xxxxx EXEC PGM= XXXXXX;......
.
// PARM='INTENS=4,XXXX,.......
.
.
//OUT1 OUTPUT PAGEDEF=XXXX,FORMDEF=XXXX,TRC=ON
.                      I             I
.                      I             I => 3800 form definition
.                      I         
.                      I => 3800 page definition .
//CMPRT01 DD SYSOUT=Y
//        DCB=(RECFM=FBA,LRECL=133),OUTPUT=*,OUT1
//        CHARS=(WWWW,XXXX,YYYY, ZZZZ)
                  I
                  I => IBM font names
...