There are no other files named tvi9xx.emacs in the archive.
!* -*-TECO-*- *!
!~FILENAME~:! !Support package for TeleVideo-9xx terminals
Sets up emacs to run nicely on 1200-baud and slower lines
and allows definition of up to 22 hard-coded function keys
on those TeleVideo terminals supporting them.!
!& Setup TVI9xx Library:! !S Do initial setup for TeleVideos.
Loads the BARE library to get docs on built-in teco functions,
sets up line speed (teco flag 1FS OSPEED) to supress multitudes of
padding characters, defines Cntl-A as a prefix character, defines ^A^A
to be the standard ^A (^R Beginning of Line), modifies the teco flag
FS HELP MAC to provide documentation for Fkey definitions, and puts
some initial default assignments on several Fkeys. If $TVI9xx Setup
Hook$ is defined, it is run afterwards to make any additional
assignments or changes.!
M(M.M load_library)BARE !* Get the BARE library !
FS tty macro [0 !* Current tty mac pushed on q-reg 0 !
0| FS tty macro !* Add redefinition of FS ospeed !
!* to beginning of fs tty macro !
FS tty init !* Run tty init to process our tty macro!
[0 QPREFIX_CHAR_LISTU0 !* Allow recognition of ^A as a prefix !
@:I*\0Control-A__QTVFUN !* character for doc functions by adding !
\UPREFIX_CHAR_LIST !* its name to the emacs variable !
]0 !* $prefix char list$ !
128M(M.M MAKE_PREFIX_CHARACTER)TVFUNU.A !* Make ^A a prefix char!
!* with 128 entries to handle lower case!
M.M ^R_Beginning_of_LineU:tvfun() !* Two ^A in row runs standard !
!* ^A (in case I forget ^A is pfx char)!
FS help macro [0 !* Push current help mac onto q-reg 0!
@:I*\:M(M.M^R_Describe)\ [0 M0 2,M.I FI
|FS help macro !* Add help function F to the help !
!* macro to do the regular ^R Describe !
!* but also gobble the <cr> from the fkey!
!* ---------------------- Default Fkey definitions ----------------------- !
12M(M.M_^R_SET_FKEY)^R_SET_FKEY !* Make shifted F1 run ^R Set Fkey. !
!* ---------------------- End of defaults -------------------------------- !
0FO..QTVI9xx_Setup_HookF"N [1 M1' !* run user hook if any!
!^R Set Fkey:! !^R Assign Emacs function to TVI Function key.
For best performance call with C-M-X or assign to a key. If given a numeric
argument will interpret it as the Fkey on which to put the function.
Unshifted Fkeys are numbered 1 through 11 and shifted Fkeys 12 through 22.
Without argument will attempt to read the Fkey from the terminal--you should
press the appropriate shifted or unshifted Fkey. The function name will be
read from the terminal.!
9,fFunction_name:_ [1 !* Get Function name and put in q-reg 1 !
m.m1 [2 !* Get Function definition and put in qr 2!
q2 m(m.m&_macro_name)u1 !* Get full function name!
ff&1"N !* If there is a postcomma arg!
-12"L ( - 1 + @) [3' !* Then use it as the fkey number and save!
"# ( - 12 + `) [3' !* the corresponding Q-vector index in!
!* Q-reg 3!
"# @ft_Put_1_on_fkey:_ !* Else read the fkey from the tty!
:i* m.i !* prepare to read without prompt!
fi-"N :i*_Not_an_FKEY fs err' !* check if 1st char is ^A!
fi [3 !* save ascii value of 2nd char in q-reg 3!
2,m.i fi !* read and discard 3rd char (the CRLF)!
@:I*|FI W f@m(m.m1) |M.VMM_FKEY_1 !* define a new!
!*function named FKEY <function name> !
!* which does the following!
!* 1. reads and discard the CRLF!
!* 2. runs the function named <function!
!* name> passing it any numeric arguments!
!* given to the fkey!
!* 3. would pass it the string argument!
!* given to the FKEY but I can't figure!
!* out how to give it one therefore!
!* 4. fools the function into thinking!
!* it is being run directly from a key!
!* rather than as an extended command!
!* so it will prompt for its string arg!
qmm_fkey_1u:tvfun(Q3) !* put the def of FKEY <function name>!
!* in the dispatch table for ^A!
!* create this!
!* variable containing the documentation!
!* for the documentation reader!
!* For proper documentation, use the !
!* help character with option F !