1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-11 23:53:12 +00:00

TCTYP and CRTSTY documentation.

This commit is contained in:
Lars Brinkhoff 2016-11-07 13:56:04 +01:00
parent 14c2ff83ac
commit 577c730a7b
3 changed files with 3604 additions and 0 deletions

415
doc/_info_/tctyp.order Executable file
View File

@ -0,0 +1,415 @@
This file is .INFO.;TCTYP ORDER .
A brief description (typed by "HELP" command) comes first.
Full description on the next page.
Invoke TCTYP by ":TCTYP <COMMANDS> <CR>" typed at DDT.
Command names may be abbreviated if the abbreviation is unambiguous.
The basic commands are: AAA AMBASSADOR C100 CDI DATAMEDIA DATAPOINT
DISAPPOINT DM2500 EXECUPORT GLASS GT40 GT44 H19 HEATH HP2640 IMLAC
LA36 MBEE MEMOWRECK MINIBEE4 OMRON PRINTING S1GRINNEL SBEE
SIMLAC SOFTWARE SUPERBEE T1061 T35 TEKTRONIX TELETYPE
TERMINET TIMLAC TISILENT TT2500 TV VT50 VT52 Z19 340D.
For other types of terminals, see INFO;CRTSTY >.
User option flags are: MORE SAIL SCROLL STANDARDIZE UPPERCASE
LOWERCASE BOW ICO OCO ACCEPT REFUSE QUERY
Flag name sets flag. Precede name by "NO" to clear flag.
Terminal property flags are:
RAW ERASEABLE BACKSPACE DISPLAY OVERPRINT HALFDUPLEX
FULLDUPLEX
Numeric argument commands are: LINELENGTH PAGE PADCR PADLF
PADTAB WHOLINE SCRLCOUNT HEIGHT ISPEED OSPEED SPEED SAVELINES
Follow command by argument.
"PADDED" command => want normal padding even on pseudo-tty line
(normally they are unpadded) e.g.: "PADDED MEMOWRECK".
Users coming from TIPs often need this option.
No commands => describe tty's settings briefly.
"DESCRIBE" command => give full description.
TCTYP is a program for examining or changing various parameters
associated with terminals. To use it, type:
:TCTYP <COMMANDS> <CR>
at DDT.
<COMMANDS> should contain 0 or more commands, separated by
delimiters. All characters except alphanumeric characters may be
used as delimiters, but punctuation characters look best. "+" and
"-" have a special meaning as delimiters. No delimiter is required
after the last command. Each command contains a keyword, and, for
certain keywords, a following number (which is octal unless
followed by a ".") If there is a number, it should be separated
from the keyword by a delimiter. A keyword may be abbreviated as
long as the abbreviation is unambiguous.
If there are no commands (the string contains only delimiters)
then a line is typed out containing commands that would restore
the tty's parameters to what they currently are, except that
switches which have their default settings are not mentioned.
Otherwise, TCTYP alters the parameters according to the commands,
unless the "DESCRIBE" command was given, in which case TCTYP
prints the values of all the parameters, even those which have
their default values. If the command string also contains
commands to change the values of parameters then, rather than
changing them, TCTYP will print out the values the parameters
would have been given. Thus, it is possible to find out what the
effect of a command string would be without actually trying it, by
adding "DESCRIBE" to it.
The "BASIC COMMANDS" are "AMBASSADOR" "DATAPOINT", "DISAPPOINT", "DATAMEDIA",
"CDI", "EXECUPORT", "GLASS", "GT40", "GT44", "HEATH", "HP2640", "IMLAC",
"LA36", "LOSER", "MEMOWRECK", "MBEE", "MINIBEE4", "OMRON", "PRINTING",
"SIMLAC", "SIMULATED", "SOFTWARE", "SBEE", "SUPERBEE", "T35",
"TELETYPE", "TIMLAC", "TISILENT", "TERMINET", "TV", "VT50", "VT52".
Some are aliases of others.
Each basic command sets most of the major parameters. The other
commands usually set only one parameter. If a parameter is set by
a basic command and a specific command, the specific command
overrides the basic command. The basic commands "PRINTING", "GLASS",
"T35", "LA36", "TELETYPE", "MEMOWRECK", "TISILENT", "EXECUPORT" and
"TERMINET" are printing terminals. Basic commands for printing terminals
will default the padding variables to appropriate values on real tty's
but to 0 (no padding) on pseudo-tty's. To override that special
treatment of pseudo-tty lines (cause padding on them), include the
command "PADDED" in the string.
If a "+" or "-" is seen when a command is expected, it should be
followed by the name of a bit in the TTYOPT table (for example,
"+%TOLWR"). The bit is set by "+" and cleared by "-".
The keywords that now exist are:
AAA Synonymous with "AMBASSADOR".
ACCEPT Accept communications from other users.
:TCTYP ACCEPT is like ^_A
AMBASSADOR Declares the terminal to be an Ann Arbor Ambassador.
BACKSPACE Declares to the system that the terminal
is capable of backspacing, by setting %TOMVB.
The basic commands all set this flag appropriately.
This flag is not intended as a user option.
C100 Declares the terminal to be a Concept 100.
CDI Declares the terminal to be a CDI-300.
DATAMEDIA Declares the terminal to be a Datamedia DM-2500.
DATAPOINT Declares the terminal to be a datapoint.
DISAPPOINT Declares the terminal to be an inferior losing datapoint.
Such "losers" are indistinguishable in appearance from
true datapoints, but garble their output if they are
treated as such.
DESCRIBE Says that, rather than changing the tty, TCTYP
should print out a complete description of what
the tty would be like if changed as specified by
the other commands in the string. The description
printed resembles that which is printed in
response to a null command string, except that the
values of all the parameters of the tty are
printed out, not just those whose values differ
from the default. The "DESCR" command may go
anywhere in the string.
DISPLAY Tells the system to regard the terminal as a
display. This is not intended as a user option
(sets %TOMVU).
DM2500 is synonymous with "DATAMEDIA".
ERASEABLE Tells the system to believe that selective-erasing
is possible on the terminal (sets %TOERS).
EXECUPORT Declares the terminal to be an execuport. An
execuport is a printing terminal (see "PADDED").
GLASS Declares the terminal to be a glass teletype. A glass
teletype is an inferior display with no cursor control
except for backspace, however it can erase in primitive
ways. It is equivalent to a TIsilent with no padding,
no overprint(thus can erase), and pagesize of 24. lines.
Terminals such as the ADM-3 are glass teletypes.
GT40 Declares the terminal to be a GT40.
GT44 Declares the terminal to be a GT44.
HALFDUPLEX Causes the terminal to be half-duplex.
HEATH Declares the terminal to be an H19.
HEIGHT <n> Sets the vertical screen size to <n> .
Overrides the basic commands, which try to
set the height to the default for the particular
type of terminal.
HELP Types the first page of this file.
HP2640 Declares the terminal to be a H.P. 2640 series display.
This should also work for the HP2621.
H19 Synonymous with "HEATH".
ICO Tells the system to allow input typed while in a
com-link to be read by programs.
IMLAC Declares the terminal to be an Imlac PDS1 (DM Style).
Its basic type is actually SOFTWARE. This type of
Imlac cannot print SAIL characters or send meta bits.
ISPEED <n> Declares the input speed to be <n> baud. Use this in
addition to SPEED <output-baud> on split-speed lines.
LA36 Declares the terminal to be a LA36 Decwriter.
LINELENGTH <n> Sets the horizontal screen size to <n> .
Overrides the specification implicit in
commands that set the type of terminal.
LOSER Is synonymous with "DISAPPOINT".
MEMOWRECK Declares your terminal to be a memowreck.
A memowreck is a printing terminal (see "PADDED").
MBEE Is synonymous with "MINIBEE4".
MINIBEE4 Declares the terminal to be a mini-bee 4 display.
Note that earlier versions of the minibee terminal
are not supported by ITS.
MORE Tells the system that the default for this
tty should be to enable system **MORE**
processing (that is, it will be on in each
newly created job, unless the program turns
it off.)
NO The command "NO" followed by the command "<X>"
is the same as the command "NO<X>". For example,
"NO SAIL" is the same as "NOSAIL".
NOBACKSPACE Tells the system that the terminal can't backspace.
NODISPLAY Tells the system that the terminal can't move
its cursor upward.
NOERASEABLE Tells the system that it is impossible to erase
only a part of the screen.
NOHALFDUPLEX Causes the terminal to be treated as full-duplex.
NOICO Tells the system that input typed while in a com-link
should be invisible to programs.
NOMORE Tells the system that the default should be
not to do **MORE** processing except for
programs that specifically enable it.
NOOCO Tells the system that programs should not be allowed
to type out while a com-link is in progress.
NOOVERPRINT Tells the system that it is impossible to
overprint on the terminal.
NORAW Leaves "RAW MODE". See "RAW".
NOSAIL Tells the system that control chars
output in ascii mode, or echoed, should not come out
in the "SAIL" character set.
NOSCROLL makes the default for new jobs
be not to be in scroll mode.
Also causes the DDT TCTYP was run under
to leave scroll mode.
NOSTANDARDIZE Stops standardization of altmodes.
This is the normal state of most terminals.
NOSUPDUP Overrides the error check which normally will
not let you change the basic type of a SUPDUP
terminal to anything other than SOFTWARE.
NOUPPERCASE Stops conversion of lower case to upper case.
OCO Tells the system to allow programs to type out
even while a com-link is in progress.
OMRON Declares the terminal to be an OMRON display.
OVERPRINT Tells the system that overprinting is
possible on the terminal (sets %TOOVR). This
change is permanent, and is not intended to be
a user option.
PADCR <n> Sets the amount of padding to follow carriage-returns.
It overrides the default values supplied
by the basic commands.
See .INFO.;TTY ORDER for the meanings of the
possible values.
PADDED Normally, a basic command for a printing terminal
type gives the PADCR and PADLF variables default
values suitable for the type of terminal. However,
on pseudo-tty terminals (including network terminals)
the default values will be 0 (no padding) instead.
If padding is necessary on such a terminal, the
"PADDED" command suppresses that feature - it causes
the default PADCR and PADLF values on pseudo-tty
lines to be the same as on other tty's. Thus, the
commands "PADDED T35" might be used when TELNET'ing
to ITS from a system that supplies no padding, using
a teletype.
PADLF <n> Sets the amount of padding to follow linefeeds.
PADTAB <n> Sets the amount of padding to follow tabs.
0 => The terminal doesn't handle tabs;
1 <= n <= 7 => pad each tab with n-1 rubouts.
On displays (currently VT52-type only), <n> is 0
for no tabs, 1 for tabs, 2 for absolute cursor
positioning, and 3 for both tabs and absolute positioning.
PAGESIZE <n> Synonymous with "HEIGHT <N>".
PRINTING Declares your terminal to be a random printing
tty. The %TORAW bit is set, suppressing cursor
motion optimization. This mode is intended to win
on absolutely any terminal unless it requires
special padding treatment.
QUERY Tells the system to query you when others try
to communicate with you (same as ^_Q).
RAW Tells the system that the terminal needs to
operate in "RAW" mode, which means that no
optimization of cursor motion is done. Instead,
all formatting characters will be sent exactly
as output by the program (although padding will
still be done as specified, etc). Useful for
example on terminals that handle a crlf sequence
properly but don't handle stray cr or lf.
The command works by setting %TORAW.
REFUSE Tells the system not to let others communicate
with you (same as ^_R).
SAIL Says that control characters echoed, or output in
ascii mode, should come out as characters of the "SAIL"
character set, rather than as uparrow-whatever.
SAVELINES <n> Says that your terminal can save <n> lines of text
in local memory. EMACS uses this capability to avoid
retransmitting text, but it only works on SOFTWARE
terminals. The system rounds <n> up to a power of four.
SBEE Is synonymous with "SUPERBEE".
SCRLCOUNT The number of lines per "glitch" upward when scrolling.
On most terminals this is 1. On terminals that can't
scroll it is 0. It is more than 1 on some hairy displays.
It is always 1 on printing terminals.
SCROLL Makes scroll mode the default for new
jobs by setting %TOROL. If run from
a DDT, the DDT will also enter scroll mode.
SIMLAC Imlac PDS4 which can display SAIL characters and
has an AI keyboard (meta and top keys).
Its basic type is SOFTWARE.
SIMULATED Declares the terminal to be the SAIL telnet
in datapoint simulator mode.
SOFTWARE Declares the terminal to be an ITS "software" terminal;
that is, one that interprets internal ITS output
buffer codes. This command is unlike the other basic
commands since instead of specifying exactly how the
terminal acts, it merely supplies one piece of information
about HOW ITS should ask the terminal to perform functions.
It says nothing about what functions the terminal implements
(whether it is a display, etc). That is a property of the
program which, on some machine, is interpreting the ITS
output buffer codes. If particular such applications become
commonly used, specific basic commands will be created to
set a tty up to be used by that program.
SPEED <n> Declares the line speed to be <n> baud. E.g. SPEED 300
means 30 characters per second. This does not actually
set the speed, it simply sets the assumed speed which
controls padding.
SUPERBEE Declares the terminal to be a super-bee.
T1061 Declares the terminal to be a Teleray 1061.
(Note that the auto newline switch (switch 5 on rear)
should be in the off (auto newline disabled) position)
T35 Synonymous with "TELETYPE"
TEKTRONIX Declares the terminal to be a Tektronix storage scope
display terminal.
TELETYPE Declares the terminal to be a model 33 or 35
teletype (in other words, unable to backspace, and
needing altmode standardization).
TERMINET Declares the terminal to be a G.E. Terminet.
Padding is set according to the line speed. The PADLF
values are 1 (for 10 cps), 2 (15), 3 (30), 4 (60),
5 (120). A terminet is a printing terminal
(see "PADDED").
TIMLAC Like SIMLAC except that the Imlac is a PDS1 and cannot
output SAIL characters. Like IMLAC except that the
terminal can send meta bits.
TISILENT Declares the terminal to be an older TI terminal (TI 72X
or 73X). The 740 series is better declared with a PADCR 0.
TT2500 Declares the terminal to be a TT 2500. What is this?
TTYNUMBER <n> Tells TCTYP to deal with some other
terminal than its device TTY:.
This command is special in that it must
be the first command in the string,
and it by itself does not constitute a nonnull
command string. That is, ":TCTYP TTY <N> <CR>"
causes TCTYP to print out the parameters of
TTY <n> instead of setting them.
If TTY <n> is not free, and the rest of the
command string constitutes a request to change
it, an error message will result. However,
it is possible to get a description of a tty
that is in use.
TV Declares the terminal to be an AI PDP-11 TV.
UPPERCASE Causes conversion of lower case to upper case
on type-in. This sets the flag which ^_U
complements.
VT50 Declares the terminal to be a DEC VT50.
VT52 Declares the terminal to be a DEC VT52.
WHOLINE <n> Has no effect except on PDP-11 TV terminals.
On those, sets the who-line mode to <n>.
Thus 1 => current job, 0 => no who-line,
6 => system who-line.
WIDTH <n> Synonymous with "LINEL <N>".
Z19 Synonymous with "HEATH".
340D Declares the terminal to be the 340
datapoint simulator.

458
doc/info/crtsty.39 Executable file
View File

@ -0,0 +1,458 @@
-*-TEXT-*-

File: CRTSTY, Node: Top, Up: (DIR), Next: Introduction
CRTSTY is a program that supports various display terminals
not directly supported by ITS. If you have problems with CRTSTY use
:BUG CRTSTY to report them.
* Menu:
* Introduction:: Introduction to CRTSTY
* Options:: Command line options
* Terminals:: Specific terminal types & features
* Unsupported:: What to do if your terminal is unsupported
* LOGIN Inits:: How to use CRTSTY from a LOGIN init
* New Terminals: (TERMS)TOP Info for people planning on buying terminals

File: CRTSTY, Node: Introduction, Up: Top, Previous: Top, Next: Options
CRTSTY is a program which attempts to function as an invisible
intermediary between ITS and a "strange" display terminal. A "strange"
terminal is anything not supported by ITS itself. To see what support is
available for your terminal, if any, see [*Note Terminals: (INFO;TERMS)Top.]
For a variety of reasons, a terminal might not be suitable for direct ITS
support. For example, it may have no command corresponding to one that
is required, or may need a non-standard escape sequence, or whatever.
In general these terminals are not numerous enough to justify putting
the support code directly into the system, and so CRTSTY exists.
In the usual case, all that is necessary is to furnish CRTSTY with the
terminal name:
:CRTSTY <name>
For example, one might say ":CRTSTY FOX" or ":CRTSTY H1500". The system
will now understand your terminal. This is not actually what goes on; a
full explanation will be given later.

File: CRTSTY, Node: Options, Up: Top, Previous: Introduction, Next: Terminals
There are many options that can be specified while invoking
CRTSTY, so as to better match the particular terminal or user. For
example, some particular models of a certain terminal may have
unusual features or options, which CRTSTY can take advantage of if it
is told about them, or they may lack some features which CRTSTY assumes
are standard, and CRTSTY must be prevented from using them.
Options are specified on the JCL line just like a terminal ID is,
separated by spaces or commas:
:CRTSTY <terminal> <option1> <option2>...
Some options may take an argument, which must immediately follow the
option name; for example, ":CRTSTY FOX SPEED 300 NO TAB" has an
option named "SPEED", with an argument of 300, as well as an option
named "NO TAB", with no argument.
The following list of options is organized functionally, although there
is some overlapping; the categories used are:
* Menu:
* Terminal capabilities and parameters::
speed, ispeed, ospeed, height, width, no abs, no tabs,
no bell, no cleol, no cleos, no lid, no cid, scrlcount
* ITS options::
glass, sail, scroll
* startup options::
no warn, softok, no login, login
* user choice options::
[no] inverse, visbel, wholine, alarm, [no] smeol, steos,
no sii, no attach, tty, slave, debug, tpcbs, buffer, simulate

File: CRTSTY, Node: Terminal capabilities and parameters, Up: Options,
Next: ITS options, Previous: Options
You can override CRTSTY's default assumptions about terminal
capabilities and parameters with these options. For example,
if you had a cheap model of the HP2645 that lacked line insert
and delete, you could use ":CRTSTY HP2645 NO LID".
SPEED, ISPEED, OSPEED
Are each followed by a decimal number, indicating the
actual speed of the terminal in bits per second. This is
primarily meant for terminals connected in such a manner that ITS
cannot determine the speed of their communications line, for
example, most terminals connected through the ARPANET. The speed
should be one of the following:
110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600.
The input speed is currently unimportant as far as CRTSTY is
concerned. The output speed, however, is used for two things:
[1] Padding. Terminals require a certain amount of time to execute
their functions; in some cases so much that pad characters must
be sent. The number of pads is a function of output speed.
[2] Output buffer size. CRTSTY attempts to buffer one second worth of
output at a time. If this buffer is too large, it will take a long
time to stop any output when the user wants to (by a ^S
for example). If this buffer is too small, output will be slowed down
and come in small bursts, especially when the system is loaded.
HEIGHT, PAGEL
Followed by a decimal number. This should only be used
to specify the actual number of lines on a terminal's screen, for
cases when CRTSTY's default size is wrong. Do not use it to
force display into an area smaller than the actual screen size;
instead use ":TCTYP PAGEL N" after invoking CRTSTY. It is
important that CRTSTY know the actual hardware screen size, even
if ITS is told not to use all of it.
WIDTH, LINEL
Followed by a decimal number. The number of columns on
the terminals screen. Same cautions for HEIGHT hold here; it is
OK to use ":TCTYP WIDTH N-1" to shorten effective screen width,
but CRTSTY must always know the actual hardware size. Note that
TCTYP uses width specifications that are the number of columns
minus one. Thus ":CRTSTY FOO WIDTH 80" and ":TCTYP FOO WIDTH 79"
are equivalent.
Note that some terminals may do unexpected things in the
last column of a line. If the terminal is skipping an extra
blank line whenever the system prints a continued line (one with
an ! at the end), you can probably fix that by giving a :TCTYP to
set the line length to one less than the actual screen width.
Some terminals have "auto-linefeed" switches which cause a
character written in the last column to generate a CRLF; in
general CRTSTY and ITS will provide better support if such
switches are turned off. Send mail to BUG-CRTSTY@MC if any of
these problems evidence themselves, so that permanent fixes can
be made.
SCRLCOUNT N
Tells CRTSTY that the terminal creates N blank lines on each
scroll (LF from last line of screen).
The following enable the user to disable the use of various
features that CRTSTY might normally believe a terminal capable
of. Meant for use in case the terminal is not properly executing
the feature for some reason, or use of the feature is causing
lossage (perhaps due to improper implementation in CRTSTY).
Since these are features that usually can be done in some other
(though usually slower) way, these options might enable
successful use of the terminal.
NO BELL - Tells CRTSTY that the terminal lacks a bell.
NO ABS - Tells CRTSTY that the terminal lacks absolute cursor
positioning.
NO TABS - Tells CRTSTY that the terminal lacks a tab command.
NO CLEOL - Tells CRTSTY that the terminal lacks a clear to end of
line command.
NO CLEOS - Tells CRTSTY that the terminal lacks a clear to end of
screen command.
NO LID - Tells CRTSTY that the terminal lacks line insert/delete
commands.
NO CID - Tells CRTSTY that the terminal lacks character
insert/delete commands.

File: CRTSTY, Node: ITS options, Up: Options,
Previous: Terminal capabilities and parameters, Next: startup options
GLASS - Same as :TCTYP GLASS.
SAIL - Same as :TCTYP SAIL. Tells ITS to display characters 0-37
and 177 directly.
SCROLL - Same as :TCTYP SCROLL. Tells ITS to scroll instead of
wrap when typeout reaches the bottom of the screen.

File: CRTSTY, Node: startup options, Up: Options, Previous: ITS options,
Next: user choice options
NO LOGIN - CRTSTY ^Z's a new HACTRN, but does not log the
user in automatically as it usually does.
LOGIN <name> - CRTSTY ^Z's a new HACTRN, and logs it in
automatically as <name>.
NO WARN - Suppress warning messages on startup, such as "interchanged keys"
messages. This can be useful when CRTSTY is invoked from a
DDT INIT file, and the user is sick and tired of seeing the same
warning again and again.
SOFTOK - Suppresses error check that complains if CRTSTY user
current terminal type is "software".

File: CRTSTY, Node: user choice options, Up: Options,
Previous: startup options
The user can control various random options.
[no] inverse, visbel, wholine, alarm,
[no] smeol, steos,
no sii, no attach, tty, slave, debug,
tpcbs, buffer, simulate
BUFFER N
Followed by a decimal number. Can be used to
specifically override the output buffer size. See the
description of the OSPEED option for the implications of this.
In general, using this option isn't recommended.
VISBEL - Send a visible printing sequence in addition to (or instead of, if
NO BELL is specified) all hardware bells, usually using
the standout mode of the terminal.
INVERSE - "Inverse Video". Reverses the sense of the entire
screen. Characters will be black-on-white.
ALARM <# mins> - If this option is given, CRTSTY will send a bell
whenever terminal output happens after being idle for the specified
number of minutes. The idea is that you may want to be alerted
from your book/desk/dinner by an unsolicited typeout of any form.
Typein resets the "timer", as does typeout, so echo alone won't feep.
NO ATTACH - CRTSTY runs like any other job, under the user's HACTRN; it does
not :ATTACH itself and become top-level. ^Z will
bring the user back to his original HACTRN, stopping the CRTSTY.
SLAVE - To "slave" a STY; suppresses the ^Z of a new HACTRN, and naturally
doesn't log the user in either. Also, logging out will not
kill the STY or CRTSTY; it can be ^Z'd again manually. Note that
if NO ATTACH is not also given, there is no way to flush the CRTSTY
short of gunning it down. This can be useful for semi-permanent
setups.
TPCBS - A temporary debugging switch which turns off CRTSTY's use of
%TPCBS (intelligent terminal ptcl) so as to produce weird errors
with SCPOS for the edification of unbelieving ITS TTY hackers.
Don't use it.

File: CRTSTY, Node: Terminals, Up: Top, Previous: Options, Next: Unsupported
This node may eventually have a menu pointing at each possible
terminal type that CRTSTY will understand, with each subnode documenting
various relevant features which CRTSTY furnishes for that terminal and
the like. In the meantime, [*Note Terminals: (INFO;TERMS)Terminals.]
lists most supported terminals and gives technical information about them,
mostly aimed toward a potential buyer.
For the time being, the VT52 is the only one described here owing to its
usefulness (and complexity for the unknowing crtsty user).
Basically CRTSTY's VT52 implementation turns on the "alternate keypad"
mode in the following ways:
Key Function
Left blank (blue) META These 3 apply to next real char typed;
Center blank (red) TOP any combination may be used. If you
Right blank (black) CONTROL make a mistake, then hit the following
Down arrow Cancel previous keys which does what it says.
Up arrow CALL As opposed to plain Control-Z
Left arrow BACK-NEXT (^_ for com-links etc.)
ENTER CRTSTY-Escape Tell CRTSTY to do something
Right arrow BREAK escape for SUPDUP, TELNET, and PTY
0-9 META-0 to META-9 Very handy as args in EMACS.
Note that Escape (altmode) followed by a capital A, B, C, or D very quickly
has a small but non-zero chance of being interpreted as CALL, Cancel-previous,
BREAK, or BACK-NEXT. If you don't use CAPS LOCK you'll probably never see
this, but if you do, the solution is (unfortunately) to not type with lightning
speed.
The ENTER key is a key that signals CRTSTY that you want to tell it something.
It saves the bottom line of your screen, and prompts with a "CRTSTY-->"
and waits for a single character. It understands the following commands on
any terminal:
D -- Dump the screen image into the file .TEMP.;<uname> SCREEN
H -- Send a HELP character to the program
F -- Toggle FEEP mode (the ALARM option in JCL) whereby a BEEP is sent if you
get output after being idle for both input and output for more than a
JCL-specified amount of time.
In addition, individual terminals may specify additional operations.

File: CRTSTY, Node: Unsupported, Up: Top, Previous: Terminals,
Next: LOGIN Inits
It is generally a simple matter to add support for a new
terminal to CRTSTY. This section will attempt to describe certain
minimum requirements the terminal must satisfy in order to be
supportable. It then gives the procedure for requesting CRTSTY support
for your terminal.
The first step is to check to see if your terminal is already
supported. The most up to date information can be gained by typing
:CRTSTY ?, which will cause CRTSTY to list the terminals it knows
about. However, sometimes the 6 letter names can be difficult to
recognize, therefore one might want to look over the menu in
[*Note Terminals: (INFO;TERMS)Terminals.]
In order for a terminal to be usable as an ITS display terminal
it must be able to selectively erase portions of the screen and to move
its cursor to any position on the screen. While these requirements are
satisfied by most display terminals there are some which do not. For
example a storage scope terminal (e.g. the Tektronix 4010 series
terminals) cannot selectively erase - only the whole screen can be
cleared. Some terminals cannot move the cursor anywhere on the screen,
(e.g. the ADM-3) and so do not qualify. This is not to say that these
terminals are unusable as ITS terminals, but that they cannot be used
as display terminals (e.g. for real-time editing in EMACS). Use
":TCTYP TEK" for the 4010 series, and ":TCTYP GLASS" for those CRT
terminals which cannot move their cursor. (*Note (INFO;TCTYP)Top.)
If the terminal satisfies the above two requirements then it is
possible for CRTSTY to support it. However some terminals which meet
these requirements are painful to use as display terminals because they
lack features which must be simulated. For example some terminals lack
any easy means of erasing to the end of a line or to the end of the
screen; to simulate these basic erasure commands CRTSTY must erase
character by character to the end of line/screen. This is often
unbearable, especially at slow speeds. Such terminals are better used
as "glass teletypes" rather than display terminals. If you have such a
terminal (e.g. the ADM-3A) we highly recomend that you use it as a glass
TTY instead of trying to use CRTSTY. If you do use CRTSTY, be content
that it works as well as it does; suggestions for display optimization
on such terminals are given the very lowest priority and will probably
never be done.
At slow speeds even terminals with the basic erasure commands can
be painful to use as editing terminals unless they have the ability to
insert a new line on the screen (moving subsequent lines down), delete a
line from the screen (moving subsequent lines up), insert a character in a
line, and delete a character from a line.
If your terminal has all the necessary features (selective erase
and cursor positioning), and is not supported by ITS or CRTSTY, you are
welcome to request CRTSTY support for it. To do so send a message to
BUG-CRTSTY, that is do
:BUG CRTSTY
and give a detailed description of the terminal. If you simply ask for
support without giving a description we will at best ask for the details,
or at worst ignore you. To support a terminal we need to know the
following things:
(Please do not specify commands in hex, or use obscure ASCII names for
control characters.)
[1] The size of the screen, i.e. the no. of characters per line and
the no. of lines on the screen.
[2] The commands which should be sent to perform each of the following
functions:
a. Move cursor up one line
b. Move cursor down one line - usually this is LF (^J, 012)
c. Move cursor back one character position - usually this is BS (^H, 010)
d. Move cursor forward one character position
e. Move cursor to "home" position - For our purposes, this better be the
upper left corner.
f. Move cursor to beginning of line - usually CR (^M, 015)
g. Move cursor to arbitrary position on screen ("absolute move")
h. Erase to end of line - say whether it erases the complete line the
cursor is on (bad) or just everything to the right of cursor (good).
i. Erase to end of screen - similarly, will this clobber chars to the
left of the cursor? (It shouldn't)
j. Erase whole screen - does it also move the cursor? (should home)
k. Insert line
l. Delete line
m. Insert character (or enter/exit insert character mode)
n. Delete character
o. Ring bell - usually BEL (^G, 007)
p. Set tab stops - If tabs are not settable, or defaults are furnished,
specify tab size (usually this is 8)
q. Tab - usually HT (^I, 011)
[3] What the terminal does when a character is typed when the cursor
is on the last column of a line. Some terminals remain in the
last column after the character is typed, others automatically
CRLF. If there is a choice (e.g. a switch) the former
(remaining in the last column) is preferred.
[4] What the terminal does if you attempt to move down off the edges of the
the screen
a. by LineFeed off bottom
b. by cursor position command off the bottom
c. move off the bottom by an auotmatic CRLF off the last line
d. cursor position off the right, left and top of the screen.
[5] A list of functions which might require padding at some speeds
and the amount of padding required (this is best expressed as
the amount of time required to perform the operation, but can
also be given as the no. of pad characters required at each
speed).
[6] Also any other features which might be useful. If in doubt as to
"usefulness", describe them anyway; who knows?
[7] Any misfeatures which CRTSTY should try to correct for. For
example many terminals have poor keyboard layouts which CRTSTY
can correct for by exchanging certain keys. The most common
such switch is done for terminals where RUBOUT can only be typed
with the SHIFT key down. RUBOUT and the unshifted character are
then usually exchanged. Other common misfeatures include LF
being ignored or interpreted specially after CR.
It isn't necessary that a terminal be able to do everything listed above
(in fact, much of CRTSTY's benefit comes from simulating those which
the terminal can't do), however, be sure to furnish some answer for
all of the items; otherwise we'll probably have to ask you about it
anyway.

File: CRTSTY, Node: LOGIN Inits, Up: Top, Previous: Unsupported
If one simply puts :CRTSTY ... in one's init file, when one logs in, CRTSTY
will be started up, and will log in the user on the CRTSTY's STY. However,
this second login will also attempt to run CRTSTY and encounter an error unless
precautions are taken to prevent such recursion.
The way to prevent the recursion is as follows:
:DDTSYM TCTYP/
:IF N Q-%TNSFW
(:CRTSTY <the JCL you would use to run it by hand>
)
Note that all 's in the above are ALTMODE's, not Dollar-signs
This should be placed near the beginning of your init before anything real
is done. The first time through, you won't be on a STY so it will simply
run the CRTSTY, which will flush the DDT that was running the init, so no
further processing will be done on that run of the init. The second time
through, you will be on a STY, and the :IF conditional will fail and the
part between the ( and the ) will not be done. It also will not try to
run it if you are on a PTY, or using SUPDUP.
If you wish to have it ask you if you want to run CRTSTY, you can do the
following:
:DDTSYM TCTYP/
:IF N Q-%TNSFW
(:--CRTSTY--IF MORE 0
(:CRTSTY <the JCL you would use to run it by hand>
))
To prevent it from asking if you're on a TV, another layer is necessary:
:DDTSYM TCTYP/
:IF N Q-%TNSFW
(:IF N Q-%TNTV
(:--CRTSTY--IF MORE 0
(:CRTSTY <the JCL you would use to run it by hand>
)))
Another aproach is to only run it if you are on a dialup or coming in from the
net:
:DDTSYM TCTYP/
:IF N -%TNSFW
(:DDTSYM TTYTYP/
:IF N Q&<%TYDIL^_%TYSTY>
(:--CRTSTY--IF MORE 0
:CRTSTY <the JCL you would use to run it by hand>
)))
For more info on DDT see *note DDT: (DDT)TOP.
For more info on INIT files, and DDT conditionals,
see *note INITS: (DDT)XFILE.

2731
doc/info/terms.160 Executable file

File diff suppressed because it is too large Load Diff