Previous Topic: RestrictionsNext Topic: RHDCTTBL JCL and Execution


Preparing Device Independence Statements

The #TTYDIT macro is the core of the RHDCTTBL utility used to create TTY tables. Through it, the user defines the TTY environment and establishes protocol information.

Protocol coding is accomplished by editing the RHDCTTBL program which contains the #TTYDIT macro. The RHDCTTBL program is delivered with the tape and is installed in the source library. Assembling the RHDCTTBL program creates the TTY protocol device independence table. Executing the RHDCTTBL program adds the device independence table to the load area.

Sample assembly and execution JCL are provided later in this section. Syntax for #TTYDIT macro statements is shown:

►►───────── #TTYDIT ACTION = ─┬─ ADD ────┬─ NAME = table-name ────────────────►
                              ├─ MODIFY ─┤
                              └─ DELETE ─┘

 ►──┬───────────────────────────┬─────────────────────────────────────────────►
    └─ ROW = ──┬─ row-number ─┬─┘
               └─ 24 ◄ ───────┘

 ►──┬──────────────────────────────┬──────────────────────────────────────────►
    └─ COL = ──┬─ column-number ─┬─┘
               └─ 80 ◄ ──────────┘
 ►──┬─────────────────────────────────────┬───────────────────────────────────►
    └─ SSIZE = ──┬─ record-size ─┬────────┘
                 └─ 900 ◄ ───────┘

 ►──┬────────────────────────────────────┬────────────────────────────────────►
    └─ BUFL = ──┬─ buffer-size ─┬────────┘
                └─ 500 ◄ ───────┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ SUPF = ──┬─ hex-value ─┬───┘
                └─ 4E ◄ ──────┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ SPRF = ──┬─ hex-value ─┬───┘
                └─ 5A ◄ ──────┘
 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ DELM = ──┬─ hex-value ─┬───┘
                └─ 5C ◄ ──────┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ FERR = ──┬─ hex-value ─┬───┘
                └─ 6F ◄ ──────┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ HMRW = ──┬─ row-number ─┬──┘
                └─ 01 ◄ ───────┘

 ►──┬───────────────────────────────┬─────────────────────────────────────────►
    └─ HMCL = ──┬─ column-number ─┬─┘
                └─ 01 ◄ ──────────┘
 ►──┬────────────────────┬────────────────────────────────────────────────────►
    └─ KYBD = ──┬─ N ───┬┘
                └─ Y ◄ ─┘

 ►──┬────────────────────┬────────────────────────────────────────────────────►
    └─ ASKI = ──┬─ N ───┬┘
                └─ Y ◄ ─┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ ALRM = ──┬─ hex-value ─┬───┘
                └─ 07 ◄ ──────┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ UNLK = ──┬─ hex-value ─┬───┘
                └─ 0E ◄ ──────┘
 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ CTHM = ──┬─ hex-value ─┬───┘
                └─ 1E ◄ ──────┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ UPLN = ──┬─ hex-value ─┬───┘
                └─ 0B ◄ ──────┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ DNLN = ──┬─ hex-value ─┬───┘
                └─ 0A ◄ ──────┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ FRSP = ──┬─ hex-value ─┬───┘
                └─ 0C ◄ ──────┘
 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ BKSP = ──┬─ hex-value ─┬───┘
                └─ 08 ◄ ──────┘

 ►──┬────────────────────────────┬────────────────────────────────────────────►
    └─ ESC = ──┬─ hex-value ─┬───┘
               └─ 1B ◄ ──────┘

 ►──┬───────────────────────────────┬─────────────────────────────────────────►
    └─ CCLEAR = ──┬─ hex-value ─┬───┘
                  └─ 1A ◄ ──────┘

 ►──┬───────────────────────────────┬─────────────────────────────────────────►
    └─ CENTER = ──┬─ hex-value ─┬───┘
                  └─ 0D ◄ ──────┘
 ►──┬──────────────────────┬──────────────────────────────────────────────────►
    └─ CPOSn = hex-value ──┘

 ►──┬─────────────────────┬───────────────────────────────────────────────────►
    └─ CPFn = hex-value ──┘

 ►──┬─────────────────────┬───────────────────────────────────────────────────►
    └─ CPAn = hex-value ──┘

 ►──┬──────────────────────┬──────────────────────────────────────────────────►
    └─ PCURn = hex-value ──┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ PCLR = ──┬─ hex-value ─┬───┘
                └─ 1A ◄ ──────┘
 ►──┬──────────────────────┬──────────────────────────────────────────────────►
    └─ PDROW = ──┬─ Y ───┬─┘
                 └─ N ◄ ─┘

 ►──┬─────────────────────────────┬───────────────────────────────────────────►
    └─ ROWDELM = ──┬─ hex-value ─┬┘
                   └─ 00 ◄ ──────┘

 ►──┬──────────────────────┬──────────────────────────────────────────────────►
    └─ PDCOL = ──┬─ Y ───┬─┘
                 └─ N ◄ ─┘

 ►──┬──────────────────────────────┬──────────────────────────────────────────►
    └─ COLDELM = ──┬─ hex-value ─┬─┘
                   └─ 00 ◄ ──────┘

 ►──┬────────────────────────┬────────────────────────────────────────────────►◄
    └─ DECIMAL = ──┬─ Y ───┬─┘
                   └─ N ◄ ─┘
#TTYDIT ACTION=ADD/MODIFY/DELETE

Specifies the action to be taken:

NAME= table-name

Specifies a 3-character name suffix for the table. The table is known to CA IDMS as $TTY@table-name. The default for table-name is ADM.

ROW=row-n

Specifies the number of screen rows on the given type of glass TTY terminal. The default for row-n is 24.

COL=column-n

Specifies the number of screen columns on the given type of glass TTY terminal. The default for column-n is 80.

SSIZE=record-size-n

Specifies the size, in bytes, of the area in program variable storage that stores all data to be transmitted. The default for record-size-n is 900.

BUFL=buffer-size-n

Specifies the size, in bytes, of the TTY inbound buffer. The default for buffer-size-n is 500.

SUPF=hex-value-a

Specifies the character attribute symbol that marks the start of an unprotected field on the TTY screen. The value for hex-value-a must be supplied in hexadecimal format. The default for hex-value-a is the plus sign (+); hex 4E.

SPRF=hex-value-a

Specifies the character attribute symbol that marks the start of a blank protected field on the TTY screen. The default is 5A.

Note: Any character, including a space character, can be specified for SUPF, SPRF, DELM, and/or FERR. The same character can be specified for more than one attribute symbol.

DELM=hex-value-a

Specifies the character attribute symbol that marks the location of the delimit character on a delimited field. The value for hex-value-a must be supplied in hexadecimal format. The default for hex-value-a is the asterisk (*); hex 5C.

FERR=hex-value-a

Specifies the character attribute symbol that marks a data field containing erroneous input (as determined by automatic editing or by a user edit module). The value for hex-value-a The default for hex-value-a is the question mark (?); hex 6F.

HMRW=row-number-n

Specifies the 2-digit coordinate for the cursor home row. The default for row-number-n is 01.

HMCL=column-number-n

Specifies the 2-digit coordinate for the cursor home column. The default for column-number-n is 01.

KYBD=N/Y

Specifies whether the host should send the control code defined by the UNLK statement to the terminal to unlock the keyboard. Y (the default) specifies that it is necessary to send an unlock character to the terminal. Any other response suppresses the unlock code and should be used when the keyboard does not lock or when the terminal does not recognize an unlock code.

ASKI=N/Y

Specifies whether control codes in subsequent statements specify ASCII or EBCDIC codes; it is not permissible to mix ASCII and EBCDIC codes in a given table specification. Y (the default) indicates that all control codes in the table specification are in ASCII; any other response indicates that all subsequent control codes are in EBCDIC.

ALRM=hex-value-a

Specifies the hex control code to ring the terminal alarm. The default for hex-value-a is 07 (the ASCII mnemonic for this code is BEL).

UNLK=hex-value-a

Specifies the hex control code to unlock the keyboard. The default for hex-value-a is 0E (the ASCII mnemonic for this code is SO).

CTHM=hex-value-a

Specifies the hex control code that returns the cursor to the home position, as defined by the HMRW= and HMCL= statements presented previously. The default for hex-value-a is 1E (the ASCII mnemonic for this code is RS).

UPLN=hex-value-a

Specifies the hex control code for upward cursor movement (cursor up). The default for hex-value-a is 0B (the ASCII mnemonic for this code is VT).

DNLN=hex-value-a

Specifies the hex control code for downward cursor movement (cursor down). The default for hex-value-a is 0A (the ASCII mnemonic for this code is LF).

FRSP=hex-value-a

Specifies the hex control code for forward cursor movement (cursor right). The default for hex-value-a is 0C (the ASCII mnemonic for this code is FF).

BKSP=hex-value-a

Specifies the hex control code for backward cursor movement (cursor left). The default for hex-value-a is 08 (the ASCII mnemonic for this code is BS).

ESC=hex-value-a

Specifies the hex control code for the ESC (ESCAPE) key. The default for hex-value-a is 1B (the ASCII mnemonic for this code is ESC).

CCLEAR=hex-value-a

Specifies the hex control code that functions as the 3270 clear key aid byte. The default for hex-value-a is 1A (the ASCII mnemonic for this code is SUB).

CENTER=hex-value-a

Specifies the hex control code for the RETURN (ENTER) key. The default for hex-value-a is 0D (the ASCII mnemonic for this code is CR).

CPOSn= hex-value-a

Where n is an integer from 1 to 80, specifies the hex control codes for absolute cursor positions. Each code specifies a unique row/column screen location.

CPFn=hex-value-a

Where n is an integer from 1 to 24, specifies hex control codes for control keys. The control code specified for CPF1 is translated to respond as though PF1 were pressed on a 3270-type terminal; the control code for CPF2 functions as PF2; the control code for CPF3 functions as PF3; and so forth.

Default values for hex-value-a are presented in the table located at the end of this section. To override either a default or user-specified setting, the user must specify both a new code and a null value for the given setting.

CPAn=hex-value-a

Where n is an integer from 1 to 3, specifies hex control codes for control keys that correspond to the PA keys on 3270-type terminals. The default value for CPA1 is 19, which corresponds to CTRL/Y in ASCII. There are no defaults for CPA2 and CPA3. To override either a default or user-specified setting, the user must specify both a new code and a null value for the given setting.

PCURn=hex-value-

Where n is an integer from 1 to 3, specifies the hex control codes for the leading control bytes in the cursor positioning protocol. The value specified for PCUR1 is the first byte in the protocol; PCUR2 specifies the second byte; and PCUR3 specifies the third byte (if any). If all three PCUR statements are assigned values, there will be three leading control bytes and PCURLEN must be set to 3. The default for PCUR1 is 1B (ESC in ASCII) and the default for PCUR2 is 3D (= in ASCII). There is no default for PCUR3. The leading position cursor protocol is combined with the row/column delimit protocol (if any) to position the cursor during execution of the application program.

PCLR=hex-value-a

Specifies the hexadecimal control code that clears the screen. This is the protocol transmitted to the TTY terminal. The default for hex-value-a is 1A; (the ASCII mnemonic for this code is SUB).

PDROW=Y/N

Specifies whether protocol is needed to delimit the row parameter of the position cursor protocol. N (the default) indicates that protocol is not required.

ROWDELM=hex-value-a

Specifies the hex control code that is the protocol required to delimit the row parameter of the position cursor protocol. This value is used only if PDROW is specified as Y. The default for hex-value-a is 00.

PDCOL=Y/N

Specifies whether protocol is needed to delimit the column parameter of the position cursor protocol. N (the default) indicates that protocol is not required.

COLDELM=hex-value-a

Specifies the hex control code that is the protocol required to delimit the column parameter of the position cursor protocol. This value is used only if PDCOL is specified as Y. The default for hex-value-a is 00.

DECIMAL=Y/N

Specifies whether the protocol to position the cursor requires decimal numbers for the row/column parameters. N (the default) indicates that row/column is specified in hexadecimal format and that CPOSn values are to be used. Y indicates that row/column is specified in decimal format and that specified CPOSn values are not to be used. If Y is specified, the row/column numbers are converted to decimal numbers from the 3270 data stream by the glass TTY runtime system.

Absolute Cursor Positions

Each default hex-value-a value in the following table specifies a single row/column screen position for internal use. The ASCII values presented in this table are typical absolute cursor position values. Documentation for any given terminal should be consulted for the absolute cursor position values that are valid for that terminal.

CPOS=

hex -value -a

CPOS=

hex -value -a

CPOS=

hex -value -a

CPOS=

hex -value -a

1

20

21

34

41

48

61

5C

2

21

22

35

42

49

62

5D

3

22

23

36

43

4A

63

5E

4

23

24

37

44

4B

64

5F

5

24

25

38

45

4C

65

60

6

25

26

39

46

4D

66

61

7

26

27

3A

47

4E

67

62

8

27

28

3B

48

4F

68

63

9

28

29

3C

49

50

69

64

10

29

30

3D

50

51

70

65

11

2A

31

3E

51

52

71

66

12

2B

32

3F

52

53

72

67

13

2C

33

40

53

54

73

68

14

2D

34

41

54

55

74

69

15

2E

35

42

55

56

75

6A

16

2F

36

43

56

57

76

6B

17

30

37

44

57

58

77

6C

18

31

38

45

58

59

78

6E

19

32

39

46

59

5A

79

6E

20

33

40

47

60

5B

80

6F