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 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.