README.md
This file contains all the general information about
everything else on this medium. This page contains
a list of all the other files and a brief description.
The following page contains build instructions for TECO,
the pages after that contain instructions for use of the
TECO macros enclosed.
Please, if any problems are encountered, let me know about
them (plus the solution if you've got it). Also, comments
and suggestions are welcomed.
Herb Jacobs
Digital Equipment Corporation ML3-4
Maynard, Mass. 01754
I forgot to put this in the manual- RT-11 TECO tries to run with
the USR resident, but if it needs more memory it can dynamically
make the USR non-resident (assuming no SET USR NOSWAP).
The informational message [+2K Memory] is produced. This is normal.
File Explanation
README.TXT This file.
TECO.SAV An instantly runnable version of RT-11 TECO.
TECO.OBJ The central module of TECO for version 28.
TIO.MAC The source of the RT-11 I/O interface for TECO.
LOCAL.TEC TECO macro to reorder local symbol blocks in MACRO.
SORT.TEC TECO macro for general purpose in memory sorts.
INSERT.TEC TECO macro for immediate mode editing with VT11.
EDIT.TEC TECO macro for convenient startup with VT11.
VEG.TEC TECO macro for convenient startup with VT52.
VT52.TEC TECO macro for immediate mode editing with VT52.
Unfortunately the manual no longer fits on a DECtape
or floppy with the above files.
The build instructions for TECO are as follows:
MACRO TIO
LINK TIO,TECO/EXEC
1) Yes, I know I didn't include the source of TECO; we are in
the process of trying to standardize TECO and believe
distributing the source would be a mistake.
2) This version of TECO is intended for RT-11 V03.
3) This version will run with RT-11 V02C, but without
^C intercept support and EGcommand$.
LOCAL.TEC AUTHOR: Mark Bramhall
This macro renumbers local symbol blocks in MACRO assembly language
programs. The local symbols are changed to start at 1$ and increment
by 1 (2$, 3$, ...). The macro checks for .ENABL LSB and .DSABL LSB as
long as they are in the current text buffer and handles them correctly.
To load it when TECO has just started
ERLOCAL.TEC$YHXL$$
To execute it, place the text pointer within the local symbol block
to be reordered and
ML$$
An informational message is produced when it is finished.
All q-registers are preserved.
SORT.TEC AUTHOR: Herb Jacobs
This macro sorts variable length ASCII records into ascending order.
It accepts 2 inputs plus the text buffer to be sorted. Q-register A
is set to the column number of the field to sort on (0 origin), and
Q-register B is set to the field length.
To load it when TECO has just started
ERSORT.TEC$YHXS$$
To execute it, load the text buffer with the text to be sorted, set
q-registers A and B (nUAmUB$$) and
MS$$
In response to the "Print Warnings?" message type Y if you want
to see records with duplicate key fields, otherwise N.
If any records are too short (i.e. the entire sort field doesn't
exist) error messages are produced. Either remove these records,
typically they are not of the desired type (forgetting to remove
the date, null directory segment delimeter records, or free blocks
message in directories are frequent causes) or pad out short fields
with blanks.
Note that if warnings are not produced, the ordering of duplicate
records is not changed from how they orginally appeared, but if
warnings are produced the final ordering of the duplicates is backwards
from how the records originally appeared. This causes the warning to be
printed only once for each duplicate record. It also allows the records
to be put into descending order by first sorting them into ascending
order and then sorting again with 0UB and Y to the warnings prompt.
All q-registers except A and B are preserved.
INSERT.TEC AUTHOR: Anton Chernoff & Herb Jacobs
This macro provides immediate mode support for the VT-11 graphics
processor (updates occur as they are entered). This macro makes
editing with the VT-11 extremely easy and accurate, but will initially
take some editing to get used to. This macro is very complete and
allows for almost any editing situation.
The EDIT.TEC macro is usually used to load this macro when TECO is
started. INSERT.TEC resides in q-register I. If EDIT.TEC is not
used INSERT may be loaded by ERINSERT.TEC$YHXIHK$$. Whenever TECO
will accept a command MI$$ is used to enter INSERT.
Any characters typed to INSERT are immediately put into the text
buffer at the current position of the text pointer, except for
the single character commands described below. Because the typed text
is immediately displayed in the text buffer INSERT stops terminal
echo.
The commands for INSERT.TEC are:
Teco
Character equivalent Description
Control-H C Move text pointer forward 1 character
Control-R R Move text pointer backward 1 character
Control-A L Move text pointer down a line
Control-G L Same as Control-A, but works with GT ON
Control-N 0J Move text pointer to begining of text
Control-Z ZJ Move text pointer to end of text
Control-P 0L Move text pointer to begining of current line
Control-^ -L Move text pointer up a line
Control-D D Delete the character following the text pointer
Delete -D Delete previous character
Control-U 0K Delete the text from the begining of the line
to the text pointer
Control-K K Delete the text from the text pointer to the
end of the line
Control-T Insert a blank line and position before it;
esthetically pleasing for inserting text lines
Control-W Move the text pointer up a line to the same
column
Control-X Move the text pointer down a line to the same
column
Control-E Read the next input character literally, not
as a command
Control-_ Same as Control-E, but works with GT ON
Escape Enter extended command mode
Extended command mode allows any TECO command to be executed
directly while remaining in INSERT. The text buffer is not affected
except as the possible result of the executed TECO command. The TECO
command to be executed is displayed in "immediate mode" and is
allowed to be edited with the following commands:
Escape If a second Escape immediately follows the Escape
putting INSERT into extended command mode, INSERT
exits normally to regular TECO command mode.
Control-U Abort extended command mode, return to normal
insert mode. Nothing is executed.
Delete Delete previous character entered.
Escape Escape Execute the command just typed and then return
to normal insert mode. Commands are executed with
the text pointer at its last position in normal
insert mode. If the command causes an error, INSERT
has to be continued by executing MI$$ . Executing
another macro is O.K. as long as it doesn't destroy
any of INSERT's q-registers (LOCAL.TEC for example
preserves all of the q-registers and may therefore
be executed directly from INSERT).
EDIT.TEC AUTHOR: Herb Jacobs
This macro provides a convenient start up capability for users
with a VT11. The functions it performs are:
1) Get the LOCAL.TEC macro and put it into q-register L
2) Get the INSERT.TEC macro and put it into q-register I
3) Prompt with the last edited files name, allow it to change,
save the new name, perform an EB or EW for the file, and
bring the first page of text into memory.
4) Execute the INSERT macro.
To load EDIT.TEC when TECO has just started
EREDIT.TEC$YXZMZ$$
EDIT will prompt with its last file name. The Delete and
Control-U keys may be used to edit this name, when the name
is correct Return (carriage return) will open the file as
appropriate (EW if new file, EB if old file, nothing if no file),
load LOCAL and INSERT into q-registers, and finally start
INSERT (which removes EDIT for safety).
VEG.TEC AUTHOR: Herb Jacobs
This macro provides a convenient start up capability for users
with a VT52. The functions it performs are:
1) Get the LOCAL.TEC macro and put it into q-register L
2) Get the VT52.TEC macro and put it into q-register I
3) Prompt with the last edited files name, allow it to change,
save the new name, perform an EB or EW for the file, and
bring the first page of text into memory.
4) Perform a 2ET command for scope mode command editing.
5) Execute the VT52 macro.
To load VEG.TEC with TECO (assuming SET EDITOR TECO issued)
EDIT/EXEC VEG
Other alternatives are EDIT/TECO/EXEC VEG or
.R TECO
*ERVEG.TEC$YXZMZ$$
VEG will prompt with its last file name. The Delete and
Control-U keys may be used to edit this name, when the name
is correct Return (carriage return) will open the file as
appropriate (EW if new file, EB if old file, nothing if no file),
load LOCAL and VT52 into q-registers, and finally start
VT52 (which removes VEG to save space).
VT52.TEC AUTHOR: Herb Jacobs & Mark Bramhall
This macro provides immediate mode support for the VT52 video
terminal (updates occur as they are entered). This macro makes
editing with the VT52 extremely easy and accurate, but will initially
take some editing to get used to. This macro is very complete and
allows for almost any editing situation.
The VEG.TEC macro is usually used to load this macro when TECO is
started. VT52.TEC resides in q-register I. If VEG.TEC is not
used VT52 may be loaded by ERVT52.TEC$YHXIHK$$. Whenever TECO
will accept a command MI$$ is used to enter VT52.
Any characters typed to VT52 are immediately put into the text
buffer at the current position of the text pointer, except for
the single character commands described below. Because the typed text
is immediately displayed in the text buffer VT52 stops terminal
echo.
Commands shown with an 'n' in front of them take a numeric argument
specified by <ESC digits> then the command. For instance ESC 20 ->
moves the text pointer to the right 20 characters.
The commands for VT52.TEC are:
(named character commands are not on the keypad)
Keypad Teco
Character equivalent Description
n -> C Move text pointer forward 1(n) character(s)
n <- R Move text pointer backward 1(n) character(s)
n 0 L Move text pointer down 1(n) line(s)
1 0J Move text pointer to begining of text
2 ZJ Move text pointer to end of text
3 0L Move text pointer to begining of current line
n 4 -L Move text pointer up 1(n) line(s)
n 5 D Delete 1(n) character(s) following the text pointer
6 FR Delete the string just searched for or
saved by use of the blue key
n 7 Insert 1(n) blank line(s) and position before it;
esthetically pleasing for inserting text lines
n 8 P Perform 1(n) page command(s)
9 Read the next input character literally, not
as a command
n Delete -D Delete 1(n) previous character(s)
Backspace L2R Position the text pointer at the end of the line
Control-U 0K Delete the text from the begining of the line
to the text pointer
n Control-K K Delete the text from the text pointer to the
end of the line; n is the number of lines
n Control-D Removes the text from the text pointer to the end of
the line; n is the number of lines
Control-C Exit from this macro to normal TECO mode
The macro is started again by MI$$
Control-Z Same as Control-C
n ENTER Accept a new search argument to be used in
conjunction with the keypad '.' key. This argument
may be edited with DELETE and Control-U and is
terminated with the keypad '.' key which performs
the first search (or nth search)
n . Search for next(nth) occurence of ENTERed argument
If search fails, text pointer is moved to top of page
n ^(uparrow) Move the text pointer up 1(n) line(s) to the same
column
n v(downarrow) Move the text pointer down 1(n) line(s) to the same
column
n blue key Save 1(n) line(s) of text for moving, each successive
key strike adds another line to movable portion; the
first line saved is from the cursor to the end of line
grey key Retrieve saved text (from blue key) at current text
pointer position
red key Enter extended command mode
Extended command mode allows any TECO command to be executed
directly while remaining in VT52. The text buffer is not affected
except as the possible result of the executed TECO command. The TECO
command to be executed is displayed at the top of the VT52 screen and
allowed to be edited with the following commands:
Control-U Abort extended command mode, return to normal
insert mode. Nothing is executed.
Delete Delete previous character entered.
Escape Escape Execute the command just typed and then return
to normal insert mode. Commands are executed with
the text pointer at its last position in normal
insert mode. If the command causes an error, INSERT
has to be continued by executing MI$$ . Executing
another macro is O.K. as long as it doesn't destroy
any of INSERT's q-registers (LOCAL.TEC for example
preserves all of the q-registers and may therefore
be executed directly from INSERT).
Escape Escape Will execute the last entered TECO command.