tcl.define-terminal Verb: Access/TCL

tcl.define-terminal

Command tcl.define-terminal Verb: Access/TCL
Applicable release versions: AP, R83
Category TCL (746)
Description displays the available terminal (driver) definitions and allows changing existing definitions or adding new ones.

Each terminal definition is an item in the "devices" file with the terminal name used as the item-id.

The definitions that are marked with an asterisk (*) are also stored as items using the term type codes as the item-id.

These item-ids are used by the "term" verb to set up terminal characteristics.

In menu options 1 and 2, the name of the terminal is requested. If the definition for the specified terminal is on file, the definition is displayed. If it is not on file, the option to create a new terminal definition is offered.

In menu 3, a prompt requesting confirmation of the deletion displays.

In menu 4, The terminal name is requested, the corresponding item in the devices file is flagged as the selected term type, and the menu redisplays.

In menu 5, the terminal name is requested, the flag marking the corresponding item is deleted, and the menu redisplays.
Syntax
Options
Example
define-terminal

System Cursor Definition Utility

The following terminals are defined in the devices file.
Terminals marked with an asterisk (*) are selected to be
included in your system cursor definition.

*A ADDS580     G GTC          M MIME        *W wy-50-link
*A ADM-11      *G IBM3161     *N WY-100     *W wy-50132
A ADM3A        *G IBM3164     *P PERTEC     *W WY-60
A CIE-ANT      *G mn3161      *Q QVT102     *W wy50-132
*B AMPEX210    *G mn3161-132  *R R25        *W WY60
B BEEHIVE      H HONEYWELL    S ansi.c      *W wy60.1
*B IBM3151     I AT.MON       *S SOROC      X DATAGRAPHIX
*B ibm3151-132 I IBM          T TEC         *x xterm
*B mark        I IBM3010      T TV920       x xterm-dim
*B mn3151      *I MM-MON      *T TV950      Z ANSI
C DTC          *I port-mon    *V VP         Z att605
*C VT-52       *J VT100       V VP-60       Z att705
*D DATAMEDIA   J vt100-dim    *V VP-A2      Z HFT
D dg           J vt320        W link        Z rt.console
E EMULOG200    *K prism       *W link125    Z RT.MON
E EX-34        *L LSI         *W w          Z Z
*F TV910       *M AMPEX-D80   *W WY-50
*G g           *M AMPEX.D80   *W wy-50-132

1)   Create Terminal Definition
2)   Modify Terminal Definition
3)   Delete Terminal Definition
4)   Add Terminal To Selected Definitions
5)   Delete Terminal From Selected Definitions
EX   Exit DEFINE-TERMINAL To TCL

Enter Selection (1-5) or EX :

Modify Terminal
Enter Existing Terminal Name To Be Modified ?prism

Terminal: prism

1.  Term Type............................ K
2.  Terminal Description................. Prism-IV
3.  Backspace and Screen Size............ 8,80,24
4.  Cursor Address Code.................. A
5.  @(X,Y) Cursor Addressing............. CHAR(11) Y CHAR(16) X
6.  @(-1)  Clear Screen & Home........... FF SOH
7.  @(-2)  Cursor Home................... SOH
8.  @(-3)  Clear to End of Page.......... ESC "J"
9.  @(-4)  Clear to End of Line.......... ESC "K"
10.  @(-5)  Start Blink................... ESC "B"
11.  @(-6)  Stop Blink.................... ETX HEX(20)
12.  @(-7)  Start Protected Field.........
13.  @(-8)  Stop Protected Field..........
14.  @(-9)  Cursor Back................... NAK
15.  @(-10) Cursor Up..................... SUB
16.  @(-11) Enable Protect Mode...........
17.  @(-12) Disable Protect Mode..........
18.  @(-13) Start Reverse Video........... ETX "D"
19.  @(-14) Stop Reverse Video............ ETX " "
20.  @(-15) Start Underline............... ETX "0"
21.  @(-16) Stop Underline................ ETX "" ""
22.  @(-17) Slave On...................... ESC "R"
23.  @(-18) Slave Off..................... ESC "T"
24.  @(-19) Cursor Forward................ ACK
25.  @(-20) Cursor Down................... LF
26.  @(-21) Graphics Character Set On.....
27.  @(-22) Graphics Character Set Off....
28.  @(-23) Keyboard Lock.................
29.  @(-24) Keyboard Unlock...............
30.  @(-25) Control Character Enable......
31.  @(-26) Control Character Disable.....
32.  @(-27) Write Status Line............. HEX(E3)
33.  @(-28) Erase Status Line............. HEX(E5)
34.  @(-29) Initialize Terminal Mode......
35.  @(-30) Download Function Keys........
36.  @(-31) Non-embedded Stand-out On.....
37.  @(-32) Non-embedded Stand-out Off....
38.  @(-99) Embedded Visual Attributes?...
39. @(-100) Half Intensity................
40. @(-101) Full Intensity................

Is table for terminal prism correct? y

"TYPE" is a single letter which identifies the terminal to the 
system. The terminal-type field in the terminal table corresponds to the 
single-character value typed in at the 'term' command.

"SCREEN SIZE" is the size of the display screen (in columns by rows). 
It is entered as cols,rows. If a Pick/BASIC "print @()" command 
exceeds these values, the maximum allowable value will be used.

"CURSOR ADDRESS CODE" is usually a series of characters used to 
denote cursor addressing, followed by the row and column of the position. 
Sometimes the row and column are in binary, sometimes not. Sometimes it 
requires column and row. Others use an ASCII code in place of binary row/column 
addresses. Choose the method your terminal manufacturer uses (NOTE: 
'X' is the X-axis, 'Y' is the Y-axis):

"A{+}"  ADDS-type addressing: 
row = char(Y+64)
col = char((int(X/10)*6)+X)

"L{+}"  Lear-Seigler addressing:
row = char(Y+32)
col = char(X+32)

"T{+}"  TEC addressing:
row = char(-(1+Y))
col = char(1(1+X))

"H{+}"  Hazeltine addressing:
row = char( X )
col = char( Y )

"D{cr}{+}"  Decimal addressing. It outputs a 1-3 digit binary code 
(each) for row and column. "c" specifies the number of digits to 
output for the column (1-3); "r" specifies the number of digits to 
output for the row (1-3). If used, the code will force leading zeroes. A 
"D" alone generates "floating" decimal numbers from 1 to 3 
digits.

row = char(x)  as 1-3 digits
col = char(Y)  as 1-3 digits

All cursor addressing codes may be followed by a '+', which adds one 
the row and column addresses before generating the address codes, to take care 
of the terminals whose addresses starts at "0,0" instead of 
"1,1".

"@(X,Y) CURSOR ADDRESSING" is the string of control and escape codes 
needed to tell the terminal that a row and column address is coming up next. 
For example:

ESC "=" Y X

is a cursor-positioning code for a Lear-Siegler terminal. The Y  and X will be 
replaced by the proper ASCII codes (and is determined by the cursor address 
code above).

"@(-1) .. @(-300)" are explained in the section describing "@ 
functions".

Entering values for the codes:

ASCII codes may be entered in one of several ways:

ASCII strings

ASCII characters are enclosed in double-quotes i.e. "T02".

ASCII control codes

ASCII control codes may be entered using the 2 or 3-letter word which 
represents the unprintable ASCII control code:

"NUL" = 00   "BS" = 08  "DLE" = 16  
"CAN" = 24  "SP" = 32
"SOH" = 01   "HT" = 09  "DC1" = 17   
"EM" = 25
"STX" = 02   "LF" = 10  "DC2" = 18  
"SUB" = 26  "DEL" = 127
"ETX" = 03   "VT" = 11  "DC3" = 19  
"ESC" = 27
"EOT" = 04   "FF" = 12  "DC4" = 20   
"FS" = 28
"ENQ" = 05   "CR" = 13  "NAK" = 21   
"GS" = 29
"ACK" = 06   "SO" = 14  "SYN" = 22   
"RS" = 30
"BEL" = 07   "SI" = 15  "ETB" = 23   
"US" = 31

ASCII character value in decimal

The decimal ASCII value may be entered by typing the word "CHAR(", 
the decimal ASCII value (1-255), and a closing parenthesis ")", i.e. 
CHAR(27)

ASCII character value in Hex

The hexadecimal ASCII value may be entered by typing the word "HEX(", 
the 1-byte hex value (00-FF), and a closing parenthesis ")", i.e. 
HEX(1B)

String function

Strings may be entered as a Pick/BASIC string function, i.e. 
STR("*",5) or STR(CHAR(12),X)

Cursor Address variable

There are three cursor address variables available: X, Y, and Z. They cause the 
specified address (byte or decimal string) to be inserted into the control 
string at the specified position. 

X Contains the Column. 
Y Contains the Row. 
Z Contains the previous Row referenced in an @(X,Y) code, or zero if the last 
reference was an @(-1) or @(-2).

Any combination of the above may be used on a line. Different codes are 
separated with a space (not a comma), i.e.

HEX(1B) SOH "1TS04" or 
CHAR(27) SOH "1TS04" or 
ESC SOH "1TS04"

There are other codes which have been defined for use, but do not show up in 
the maintenance screens. The "dm,devices,devices <item-id>" 
item will have to be edited directly to insert these codes if they are needed.

There may be other features available only on specific terminals, and there are 
no existing "@ function" codes for them, such as "uppercase 
on/off". To take advantage of those features:

*  ASCII sequences must be hard-coded into every program (forcing the use of 
that terminal forever), or

*  A separate file of control codes is created (like 'terminals 
perkin-elmer-bantam'), and referenced instead of the 
"dm,devices," file, or

*  The custom codes are added to the "dm,devices," file at, such as, 
@(-1001) and beyond.
Purpose
Related filename.devices
tcl.termp
filename.pibs
tcl.choose.term