This document provides some additional information on input/output devices supported by Natural.
This section covers the following topics:
Natural supports a wide variety of terminal types for the use with
                       mainframe computers. In TP monitor environments in which the terminal type
                       information is not supplied automatically to Natural, you can use the Natural
                       profile parameter TTYPE so that
                       Natural can activate the appropriate converter routine to operate a specific
                       type of terminal.
               
Links to related topics:
Terminal Communication - Profile Parameters Grouped by Function (Parameter Reference documentation)
NATCONFG Module (various I/O translation topics)
The support of light pens has been enhanced by the terminal command
                       %RM.
                       This command causes all light-pen-sensitive fields on the screen to be made
                       write-protected; that is, the user can select them with a light pen, but cannot
                       overwrite their contents.
               
For a field to be light-pen sensitive, it must be displayed intensified
                       (session parameter AD=I) or blinking
                       (AD=B), and the first character of the field must be a light-pen
                       designator character (see below). Selecting a field with a light pen causes the
                       designator character to be changed; therefore, you can make the processing of
                       fields selected with a light pen dependent on the values of the designator
                       characters.
               
The following designator characters are available:
| Character | Meaning | 
|---|---|
 ? 
                         |  
                                
                        You can select multiple fields before pressing ENTER. | 
 > |  
                                
                        It was selected and if it is selected again, it becomes a
                                    question mark ?; the characters ? and
                                    > will toggle.
                         |  
                               
                     
 & 
                         |  
                                
                        You can select only one field and it will be as an ENTER for both the field and the MDT (modified data tag). | 
 ' ' (blank) 
                         |  
                                
                        You can select only one field and you will only see the MDT. | 
As designator characters, you have to distinguish selection fields
                       (?, >) and attention fields (&,
                       blank or null). Selection fields do not start an immediate data transmission,
                       so you are able to select more than one field. Attention fields result in an
                       immediate action.
               
The SELECT CURSOR key emulates a light-pen selection. If you move the cursor to the field you want to select and press SELECT CURSOR, this field will be selected.
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 
                    
                   
                 
                  
                  
               The following topics are covered:
Printer-advance control characters can be generated within a Natural
                        program by using the DEFINE
                              PRINTER statement as follows:
               
.... DEFINE PRINTER (n) OUTPUT 'name' DEFINE PRINTER (n+1) OUTPUT 'CCONTROL' ....
Both DEFINE PRINTER statements work together so that all
                        Natural output for the printer (n)
                        follows the normal Natural report-output rules and all Natural output for the
                        printer (n+1) is also written to the
                        printer (n). Natural does not generate
                        a printer-advance control character for this report. Therefore, the first
                        character in the output variable is the control character.
               
With this method, it is possible to merge control characters for laser-printer systems and channel-advance characters for line printers in a normal Natural output report.
- Sample Natural Program for Printer-Advance Control Character
  ... 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 '....' ...The corresponding hexadecimal data in the spool file starting from column 0 are:
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 ....
CCONTROLis the name of a special printer control table associated to the printern-1; it must not be modified.
Natural supports IBM 3800 laser-printer systems.
The DEFINE
                              PRINTER statement is used to control and allocate a report
                        for the 3800 printer system. With this statement, you can specify that the
                        Natural print output for report 1 is routed to a 3800 printer system.
               
DEFINE PRINTER (1) OUTPUT 'LAS3800' I I => 1-31 for CMPRT01 to CMPRT31 ....
Depending on the setting of the INTENS parameter,
                        Natural repeats each line up to four times and recognizes the Natural
                        attributes AD=D, AD=I, AD=C and
                        AD=V (see session parameter AD).
               
The first line contains the ASA control code in the first column and
                        the 3800-font control character (hexadecimal F0) for the first
                        font in the second column. The columns 2 to
                        nnn contain the print data which are
                        not flagged with the attribute AD=I, AD=C or
                        AD=V.
               
The second line contains the ASA control code + (for
                        printing without line advance) in the first column and the 3800-font control
                        character (hexadecimal F1) for the second font in the second
                        column. The columns 2 to nnn contain
                        the print data which are flagged with AD=I.
               
The third line contains the ASA control code + (for
                        printing without line advance) in the first column and the 3800-font control
                        character (hexadecimal F2) for the third font in the second column. The columns
                        2 to nnn contain the print data which are flagged
                        with AD=C.
               
The fourth line contains the ASA control code + (for
                        printing without line advance) in the first column and the 3800-font control
                        character (hexadecimal F3) for the fourth font in the second
                        column. The columns 2 to nnn contain the print data
                        which are flagged with AD=V.
               
If INTENS is specified with a value less than 4, all
                        non-supported fonts are printed with hexadecimal F0.
               
- Sample Natural Program for Laser Printer Usage
  .... DEFINE PRINTER (1) OUTPUT 'LAS3800' WRITE (1) 'FIRST' 'SECOND' (AD=I) 'THIRD' (AD=C) 'FOURTH' (AD=V) ....The corresponding hexadecimal data in the spool file starting from column 0 are:
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- Sample JCL for Laser Printer Usage
 .... //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 ...