tcl.define-terminal
Adds or modifies terminal types and drivers.
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.
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.
See Also
User Comments
What do you think?
Share your experience or ask a question by using the form below.
Login to leave your comments.
