.SPACING 1 .PAPER SIZE 58,75 .LEFT MARGIN 5 .RIGHT MARGIN 70 .TITLE ^^#####RSX-11D TECO\\ .CENTER 80 ^^TECO\\ .SKIP 2 .CENTER 80 ^^TEXT EDITOR AND CORRECTOR FOR RSX-11D\\ .SKIP 2 .CENTER 80 ^^PREFACE\\ .SKIP 2 ^THE IMPLEMENTATION OF THE ^^TECO\\ ^TEXT ^EDITOR UNDER ^R^S^X-11^D DOES ^^NOT\\ REPRESENT A SUPPORTED PRODUCT OF THE ^R^S^X-11^D DEVELOPMENT TEAM. ^THIS IMPLEMENTATION EVOLVED AS A CONVENIENCE FOR ^R^S^X-11^D PROGRAMMERS WHO PREFERRED ^^TECO\\ TO ^^SLPR\\ OR TO ^^LETTER\\ (11-^D ^^EDIT\\). ^HOWEVER, IT IS FELT THAT ^^TECO\\ UNDER ^R^S^X-11^D IS OF VALUE TO OTHERS AND IS THEREFORE BEING MADE AVAILABLE VIA ^^DECUS\\. .SKIP 1 ^THIS MANUAL DESCRIBES ^^TECO\\ AS CURRENTLY IMPLEMENTED UNDER ^R^S^X-11^D. ^THE MANUAL IS BASED PRIMARILY UPON THE ^O^S/8 ^^TECO\\ ^USERS ^MANUAL (^D^E^C-^S8-^^UTECA-A-D\\) AUGMENTED BY ^^DEC\\SYSTEM-10 DOCUMENTATION (^^DEC-10-NGZB-D\\). ^R^S^X-11^D ^^TECO\\ IS A SUPERSET OF ^D^E^CSYSTEM-10 ^^TECO\\. ^EXPERIENCED ^^TECO\\ USERS WILL FIND A DESCRIPTION OF CHANGES FROM ^^DEC\\SYSTEM-10 ^^TECO\\ IN ^APPENDIX ^B. .SKIP 1 ^NOTE: ^CURRENTLY, ^T^E^C^O WILL CRASH DISASTROUSLY IF A CONTROL-@ IS TYPED. .PAGE .CENTER 80 ^^INTRODUCTION\\ .PARAGRAPH 5 ^^TECO\\ IS A POWERFUL TEXT EDITING AND CORRECTING PROGRAM THAT RUNS UNDER THE ^R^S^X-11^D OPERATING SYSTEM. ^^TECO\\ MAY BE USED TO EDIT ANY FORM OF ^^ASCII\\ TEXT SUCH AS PROGRAM LISTINGS, MANUSCRIPTS, CORRESPONDENCE AND THE LIKE. ^SINCE ^^TECO\\ IS A CHARACTER-ORIENTED EDITOR RATHER THAN A LINE EDITOR, TEXT EDITED WITH ^^TECO\\ DOES NOT HAVE LINE NUMBERS ASSOCIATED WITH IT, NOR IS IT NECESSARY TO REPLACE AN ENTIRE LINE OF TEXT IN ORDER TO CHANGE ONE CHARACTER. .PARAGRAPH ^BECAUSE ^^TECO\\ IS VERY VERSATILE, IT IS NECESSARILY COMPLEX. ^THIS MANUAL IS, THEREFORE, DIVIDED INTO TWO PARTS. ^SECTION ^I CONTAINS BASIC INFORMATION AND INTRODUCES ENOUGH ^^TECO\\ COMMANDS TO ALLOW THE NOVICE ^^TECO\\ USER TO BEGIN CREATING AND EDITING TEXT FILES AFTER ONLY A FEW HOURS OF INSTRUCTION. ^THE INTRODUCTORY COMMANDS ARE SUFFICIENT FOR ANY EDITING APPLICATION; HOWEVER, THEY ARE LESS CONVENIENT, IN MOST CASES, THAN THE ADVANCED COMMANDS PRESENTED LATER. .PARAGRAPH ^SECTION ^I^I INTRODUCES THE FULL ^^TECO\\ COMMAND SET, INCLUDING A REVIEW OF THE INTRODUCTORY COMMANDS PRESENTED EARLIER. ^THIS SECTION ALSO INTRODUCES THE CONCEPT OF ^^TECO\\ AS A PROGRAMMING LANGUAGE AND EXPLAINS HOW BASIC EDITING COMMANDS MAY BE COMBINED INTO "PROGRAMS" WHICH ARE SOPHISTICATED ENOUGH TO HANDLE THE MOST COMPLICATED EDITING TASKS. .PARAGRAPH ^SPECIFIC EXAMPLES OF THE USE OF ^^TECO\\ COMMANDS HAVE BEEN DE-EMPHASIZED THROUGHOUT THIS MANUAL. ^THIS WAS DONE BECAUSE ALL OF THE ^^TECO\\ COMMANDS HAVE A CONSISTENT, LOGICAL FORMAT WHICH WILL QUICKLY BECOME APPARENT TO THE NOVICE USER. ^HOWEVER, EACH SECTION OF THE MANUAL IS CONCLUDED WITH ONE OR MORE ELABORATE EXAMPLES WHICH EMPLOY MOST OF THE COMMANDS INTRODUCED UP TO THAT POINT. ^USERS WHO ARE LEARNING ^^TECO\\ COMMANDS SHOULD EXPERIMENT WITH EACH COMMAND AS IT IS INTRODUCED, THEN DUPLICATE THE EXAMPLES ON THEIR COMPUTER. .PAGE .CENTER 80 ^^SECTION I\\ .SKIP 1 .CENTER 80 ^^INTRODUCTORY COMMANDS\\ .PARAGRAPH ^^TECO\\ CONSIDERS TEXT TO BE ANY STRING OF ^^ASCII\\ CODES. ^TEXT IS BROKEN DOWN INTO UNITS OF PAGES, LINES, AND CHARACTERS. ^A PAGE OF TEXT CONSISTS OF ALL THE ^^ASCII\\ CODES BETWEEN TWO FORM FEED CHARACTERS, INCLUDING THE SECOND FORM FEED. ^A CHARACTER IS ONE ^^ASCII\\ CODE. ^THUS, EVERY PAGE OF TEXT CONTAINS ONE FORM FEED CHARACTER, WHICH IS THE LAST CHARACTER ON THE PAGE. ^EVERY LINE OF TEXT CONTAINS ONE LINE FEED, WHICH IS THE LAST CHARACTER ON THE LINE. .PARAGRAPH ^^TECO\\ MAINTAINS A TEXT BUFFER IN WHICH TEXT IS STORED. ^THE BUFFER USUALLY CONTAINS ONE PAGE OF TEXT CONSISTING OF UP TO ABOUT 11000 CHARACTERS, BUT THE TERMINATING FORM FEED CHARACTER NEVER APPEARS IN THE BUFFER. ^^TECO\\ ALSO MAINTAINS A BUFFER POINTER. ^THE POINTER IS SIMPLY A MOVABLE POSITION INDICATOR WHICH IS ALWAYS LOCATED BETWEEN TWO CHARACTERS IN THE BUFFER, BEFORE THE FIRST CHARACTER IN THE BUFFER, OR AFTER THE LAST CHARACTER IN THE BUFFER. ^THE POINTER IS NEVER LOCATED ON A CHARACTER. .PARAGRAPH ^LINE FEED AND FORM FEED CHARACTERS ARE INSERTED AUTOMATICALLY BY ^^TECO\\. ^A LINE FEED IS AUTOMATICALLY APPENDED TO EVERY CARRIAGE RETURN ENTERED INTO THE BUFFER, AND A FORM FEED IS APPENDED TO THE CONTENT OF THE BUFFER BY CERTAIN OUTPUT COMMANDS. ^ADDITIONAL LINE FEED AND FORM FEED CHARACTERS MAY BE ENTERED INTO THE BUFFER AS TEXT. ^IF A FORM FEED CHARACTER IS ENTERED INTO THE BUFFER, IT WILL CAUSE A PAGE BREAK UPON OUTPUT. ^THAT IS, ALL TEXT PRECEDING THE FORM FEED WILL APPEAR ON ONE PAGE, AND THE TEXT FOLLOWING THE FORM FEED WILL APPEAR ON THE NEXT PAGE. .PARAGRAPH ^FINALLY, ^^TECO\\ ALSO MAINTAINS AN INPUT FILE AND AN OUTPUT FILE, BOTH OF WHICH ARE SELECTED BY THE USER THROUGH THE USE OF FILE SPECIFICATION COMMANDS. ^THE INPUT FILE IS ANY DEVICE FROM WHICH TEXT MAY BE ACCEPTED. ^FOR EXAMPLE, IF A BLOCK OF TEXT IS STORED ON PAPER TAPE, THE PAPER TAPE READER WOULD BE SPECIFIED AS AN INPUT FILE WHEN THE TAPE IS EDITED. .PARAGRAPH ^THE OUTPUT FILE IS ANY DEVICE ON WHICH EDITED TEXT MAY BE WRITTEN. ^IF THE PAPER TAPE FILE MENTIONED ABOVE WERE TO BE EDITED AND WRITTEN ONTO A DISK, FOR EXAMPLE, THE OUTPUT FILE WOULD BE A USER-NAMED DISK FILE. .PARAGRAPH ^^TECO\\ MAY BE CALLED FROM THE ^M^C^R BY TYPING: .SKIP 1 #####^M^C^R>^T^E^C .SKIP 1 (TERMINATED WITH A CARRIAGE RETURN). ^^TECO\\ WILL RESPOND BY PRINTING AN ASTERISK AT THE LEFT MARGIN TO INDICATE THAT IT IS READY TO ACCEPT USER COMMANDS. ^AT THIS POINT, ONE OR MORE COMMANDS MAY BE TYPED AT THE TERMINAL, AND ^^TECO\\ WILL EXECUTE THE COMMANDS UPON RECEIPT OF TWO CONSECUTIVE ^^ALT MODE\\ CHARACTERS. ^THE ^^ALT MODE\\ IS A NON-PRINTING CHARACTER WHICH MAY BE LABELLED ^^ESCAPE\\ OR ^^PREFIX\\ ON SOME KEYBOARDS. ^^TECO\\ ECHOES A DOLLAR SIGN ($) WHENEVER AN ^^ALT MODE\\ IS RECEIVED. .PARAGRAPH ^^A TECO\\ COMMAND CONSISTS OF ONE OR TWO CHARACTERS WHICH CAUSE A SPECIFIC OPERATION TO BE PERFORMED. ^SOME ^^TECO\\ COMMANDS MAY BE PRECEDED OR FOLLOWED BY ARGUMENTS. ^ARGUMENTS MAY BE EITHER NUMERIC OR TEXTUAL. ^A NUMERIC ARGUMENT IS SIMPLY AN INTEGER VALUE WHICH MIGHT BE USED TO INDICATE SUCH THINGS AS THE NUMBER OF TIMES A COMMAND SHOULD BE EXECUTED. ^A TEXT ARGUMENT IS A STRING OF ^^ASCII\\ CHARACTERS WHICH MIGHT BE WORDS OF TEXT, FOR EXAMPLE, OR AN ^R^S^X-11^D FILE SPECIFICATION. .PARAGRAPH ^IF A COMMAND REQUIRES A NUMERIC ARGUMENT, THE NUMERIC ARGUMENT ALWAYS PRECEDES THE COMMAND. ^IF A COMMAND REQUIRES A TEXT ARGUMENT, THE TEXT ARGUMENT ALWAYS FOLLOWS THE COMMAND. ^ALL TEXT ARGUMENTS ARE TERMINATED BY A SPECIAL CHARACTER (USUALLY AN ^^ALT MODE\\) WHICH INDICATES TO ^^TECO\\ THAT THE NEXT CHARACTER TYPED WILL BE THE FIRST CHARACTER OF A NEW COMMAND. .PARAGRAPH ^IF MORE THAN ONE COMMAND IS TYPED IN RESPONSE TO THE ASTERISK GENERATED BY ^^TECO\\, THE COMMAND STRING WILL BE EXECUTED FROM LEFT TO RIGHT UNTIL EITHER ALL COMMANDS HAVE BEEN EXECUTED OR A COMMAND ERROR IS RECOGNIZED. ^WHEN AN ERROR IS ENCOUNTERED, A MESSAGE IS PRINTED AND THE REST OF THE COMMAND STRING IS IGNORED. ^IN ANY CASE, ^^TECO\\ PRINTS ANOTHER ASTERISK AT THE LEFT MARGIN AS SOON AS IT FINISHES EXECUTION OF A COMMAND STRING, SO THAT ADDITIONAL COMMANDS MAY BE ENTERED. .PARAGRAPH ^THE EXTENSIVE TEXT EDITING CAPABILITY OF ^^TECO\\ IMPLIES A LARGE AND VERSATILE COMMAND SET. ^HOWEVER, THE NOVICE ^^TECO\\ USER WILL FIND THAT LITTLE MORE THAN A DOZEN BASIC COMMANDS SUFFICE FOR MOST EDITING REQUIREMENTS. ^THE FOLLOWING SECTION INTRODUCES THE BASIC ^^TECO\\ COMMANDS. ^THE FULL COMMAND SET WILL BE DESCRIBED LATER IN THIS MANUAL. .PARAGRAPH ^^TECO\\ WILL ACCEPT INPUT TEXT FROM ANY INPUT DEVICE IN THE ^R^S^X-11^D SYSTEM. ^IF INPUT IS SUPPLIED FROM ANY DEVICE EXCEPT THE KEYBOARD, THE INPUT DEVICE MUST BE SPECIFIED BY MEANS OF AN ^E^R COMMAND TERMINATED BY AN ^^ALT MODE\\. ^IF THE INPUT DEVICE IS A FILE-STRUCTURED DEVICE, THE FILE NAME AND EXTENSION (IF ANY) MUST ALSO BE SUPPLIED. ^IF A FILE NAME IS SPECIFIED AND NO DEVICE IS EXPLICITLY DEFINED, THE DEFAULT DEVICE ^S^Y IS ASSUMED. ^THE ^E^R COMMAND CAUSES ^^TECO\\ TO SEARCH FOR THE SPECIFIED FILE AND PRINT AN ERROR MESSAGE IF THE FILE IS NOT FOUND. ^THIS COMMAND DOES NOT CAUSE ANY PORTION OF THE FILE TO BE READ INTO THE TEXT BUFFER, HOWEVER. ^THE FOLLOWING EXAMPLES ILLUSTRATE USE OF THE ^E^R COMMAND: .LEFT MARGIN 35 .SKIP 2 .TEST PAGE 6 .INDENT -30 ^^COMMAND############################FUNCTION\\ .SKIP 1 .INDENT -30 ^E^RDE:FILENAME.EXT;N$##########^GENERAL FORM OF THE ^E^R COMMAND WHERE "DE:FILENAM.EXT;N" IS THE DESIGNATION OF THE INPUT FILE. ^THE COMMAND IS TERMINATED BY AN ^^ALT MODE\\, WHICH ECHOES AS A DOLLAR SIGN. .SKIP 1 .INDENT -30 ^^ERPR:\\$########################^PREPARE TO READ AN INPUT FILE FROM THE PAPER TAPE READER. .SKIP 1 .INDENT -30 ^^ERPROG.MAC\\$###################^PREPARE TO READ INPUT FILE ^^PROG.MAC\\ FROM THE DEFAULT DEVICE. .SKIP 1 .INDENT -30 ^^ERDK1:PROG$\\###################^PREPARE TO READ INPUT FILE ^^PROG\\ FROM ^^DK1\\. .LEFT MARGIN 5 .PARAGRAPH ^^TECO\\ WILL WRITE OUTPUT TEXT ONTO ANY DEVICE IN THE SYSTEM. ^IF OUTPUT IS WRITTEN ONTO ANY DEVICE EXCEPT THE USER TERMINAL, THE OUTPUT DEVICE MUST BE SPECIFIED BY MEANS OF AN ^E^W COMMAND TERMINATED BY AN ^^ALT MODE\\. ^IF THE OUTPUT DEVICE IS FILE-STRUCTURED, A FILE NAME AND EXTENSION (IF ANY) MUST ALSO BE SUPPLIED. ^IF A FILE NAME IS SPECIFIED BUT NO DEVICE IS EXPLICITLY DEFINED, THE DEFAUT DEVICE ^S^Y IS ASSUMED. ^THE FOLLOWING EXAMPLES ILLUSTRATE USE OF THE ^E^W COMMAND, WHICH HAS THE SAME FORMAT AS THE ^E^R\\ COMMAND: .SKIP 2 .LEFT MARGIN 35 .TEST PAGE 6 .INDENT -30 ^^COMMAND############################FUNCTION\\ .SKIP 1 .INDENT -30 ^E^WDE:FILENAME.EXT;N$##########^GENERAL FORM OF THE ^E^W COMMAND WHERE "DE:FILENAM.EXT;N" IS THE DESIGNATION OF THE OUTPUT FILE. ^THE COMMAND IS TERMINATED BY AN ^^ALT MODE\\, WHICH ECHOES AS A DOLLAR SIGN. .SKIP 1 .INDENT -30 ^^EWSY:TEST.LST\\$################^PREPARE TO WRITE OUTPUT FILE ^^TEXT.LST\\ ON THE DEFAULT SYSTEM DEVICE. .SKIP 1 .INDENT -30 ^^EWPROG$\\#######################^PREPARE TO WRITE OUTPUT FILE ^^PROG\\ ON THE SYSTEM DEFAULT DEVICE. .SKIP 1 .INDENT -30 ^^EWDK1:TEXT.LST$\\###############^PREPARE TO WRITE OUTPUT FILE ^^TEST.LST\\ ON ^^DK1.\\ .LEFT MARGIN 5 .PARAGRAPH ^IT IS NOT ALWAYS NECESSARY TO SPECIFY AN INPUT FILE. ^IF THE USER DESIRES TO CREATE A FILE WITHOUT USING ANY PREVIOUSLY EDITED TEXT AS INPUT, HE MAY INSERT THE NECESSARY TEXT DIRECTLY INTO THE TEXT BUFFER FROM THE KEYBOARD AND, AT THE END OF EACH PAGE, WRITE THE CONTENT OF THE BUFFER ONTO AN OUTPUT FILE. ^SINCE ALL INPUT IS SUPPLIED FROM THE KEYBOARD, NO INPUT FILE IS NECESSARY. .PARAGRAPH ^AN OUTPUT FILE IS UNNECESSARY IF THE USER DESIRES ONLY TO EXAMINE AN INPUT FILE, WITHOUT MAKING PERMANENT CHANGES OR CORRECTIONS. ^IN THIS CASE, THE CONTENT OF THE INPUT FILE MAY BE READ INTO THE TEXT BUFFER PAGE BY PAGE AND EXAMINED AT THE TERMINAL. ^SINCE ALL OUTPUT IS PRINTED ON THE USER TERMINAL, NO OUTPUT FILE IS NEEDED. .PARAGRAPH ^^TECO\\ WILL ONLY KEEP ONE INPUT AND ONE OUTPUT FILE OPEN AT A TIME. ^THE CURRENT INPUT FILE MAY BE CHANGED BY SIMPLY USING THE ^E^R COMMAND TO SPECIFY A NEW FILE. ^BEFORE AN OUTPUT FILE MAY BE CHANGED, IT IS ESSENTIAL THAT THE CURRENT OUTPUT FILE BE CLOSED BY MEANS OF AN ^E^F COMMAND (OR ONE OF THE OTHER FILE CLOSING COMMANDS PRESENTED LATER). ^IF THIS IS NOT DONE, THE CONTENT OF THE FILE MAY BE LOST. ^THE ^E^F COMMAND IS PRESENTED BELOW ALONG WITH SEVERAL EXAMPLES OF FILE SPECIFICATION COMMAND STRINGS. .SKIP 2 .LEFT MARGIN 15 .TEST PAGE 6 .INDENT -10 ^^COMMAND:##EF\\ .SKIP 1 .INDENT -10 ^^FUNCTION:#C\\LOSE THE CURRENT OUTPUT FILE. ^IF THE LAST ^E^W COMMAND SPECIFIED A FILE WHICH ALREADY EXISTED ON THE DEVICE, ^^TECO\\ CREATED AN ADDITIONAL FILE WITH THE SAME FILE NAME AND EXTENSION, BUT WITH THE VERSION NUMBER INCREMENTED BY 1 AT THE TIME THE NEW FILE WAS OPENED. .SKIP 1 .INDENT -10 ^^COMMAND STRING:##ERDK1:INPUT.MAC$EWOUTPUT.MAC$$\\ .SKIP 1 .INDENT -10 ^^FUNCTION:#O\\PEN AN INPUT FILE "^^INPUT.MAC\\" TO BE FOUND ON ^D^K1 AND OPEN AN OUTPUT FILE NAMED "^^OUTPUT.MAC\\" ON ^S^Y. ^IF FILE ^^OUTPUT.MAC\\ DOES NOT ALREADY EXIST, IT WILL BE CREATED. ^THE DOUBLE ^^ALT MODE\\ ($$) TERMINATES THE COMMAND STRING AND CAUSES THE STRING TO BE EXECUTED. .SKIP 1 .INDENT -10 ^^COMMAND STRING:#####EFEWTEXT.LST$$ .SKIP 1 .INDENT -10 ^^FUNCTION:#C\\LOSE THE CURRENT OUTPUT FILE AND OPEN AN OUTPUT FILE "^^TEST.LST\\" ON THE DEFAULT DEVICE. ^NOTE THAT THE ^^ALT MODE\\ WHICH TERMINATES THE ^E^W COMMAND MAY BE ONE OF THE TWO ^^ALT MODE\\S WHICH TERMINATES THE COMMAND STRING. .SKIP 1 .INDENT -10 ^^COMMAND STRING:#####ERPR:$EFEWSY:FILE$$ .SKIP 1 .INDENT -10 FUNCTION:#O\\PEN THE PAPER TAPE READER AS AN INPUT FILE, THEN CLOSE THE CURRENT OUTPUT FILE AND OPEN "^^FILE\\" ON THE DEFAULT DEVICE AS AN OUTPUT FILE. .LEFT MARGIN 5 .PARAGRAPH ^THE FOLLOWING COMMANDS PERMIT PAGES OF TEXT TO BE READ INTO THE ^^TECO\\ TEXT BUFFER FROM AN INPUT DEVICE OR WRITTEN FROM THE BUFFER ONTO AN OUTPUT DEVICE. ^ONCE A PAGE OF TEXT HAS BEEN WRITTEN ONTO THE OUTPUT FILE, IT CANNOT BE RECALLED INTO THE TEXT BUFFER UNLESS THE OUTPUT FILE IS CLOSED AND REOPENED AS AN INPUT FILE. .SKIP 2 .LEFT MARGIN 13 .TEST PAGE 4 .INDENT -8 ^^COMMAND###########FUNCTION\\ .SKIP 1 .INDENT -8 ^Y#######^CLEAR THE TEXT BUFFER, THEN READ THE NEXT PAGE OF THE INPUT FILE INTO THE BUFFER. .SKIP 1 .INDENT -8 ^P#######^WRITE THE CONTENT OF THE TEXT BUFFER ONTO THE NEXT PAGE OF THE OUTPUT FILE, THEN CLEAR THE BUFFER AND READ THE NEXT PAGE OF THE INPUT FILE INTO THE BUFFER. .SKIP 1 .INDENT -8 N^P######^EXECUTE THE ^P COMMAND N TIMES, WHERE N MUST BE AN INTEGER IN THE RANGE 0=TEC _\ *EWDK1:FILE1.TXT$$ / *HKIMR. JOHN P. JONES ! COMPUTER ELECTRONICS CORPORATION ! BOSTON, MASAASACHUSETTS ! ! DEAR MR. JONES: ! 2< I WAS PLEASED TO RECEIVE YOUR REQUEST FOR INFORMATION ! PERTAINING TO THE NEW TECO-11 TEXT EDITING AND CORRECTING ! PROGRAM. ! ! ENCLOSED IS A COPY OF THE TECO-11 USERS'S GUIDE, WHICH ! SHOULD ANSWER ALL OF YOUR QUESTIONS. ! ! SINCERELY, ! ! ! ! _\ $$ 3/ *-20LSETTS$I 02150$$ _\ *STION$2C13DIREGARDING$$ / *SGUIDE$-5DIMANUAL$$ ! *SELY$0T$$ ! SINCERELY*0KIVERY TRULY YOURS$$ ! *HT$$ ! MR. JOHN P. JONES ! COMPUTER ELECTRONICS CORPORATION ! BOSTON, MASSACHUSETTS 02150 ! ! DEAR MR. JONES ! 4< I WAS PLEASED TO RECEIVE YOUR REQUEST FOR INFORMATION ! REGARDING THE NEW TECO-11 TEXT EDITING AND CORRECTING ! PROGRAM. ! ! ENCLOSED IS A COPY OF THE TECO-11 USER'S MANUAL, WHICH ! SHOULD ANSWER ALL OF YOUR QUESTIONS. ! ! VERY TRULY YOURS, ! ! ! ! _\ 5/ *PEF _\ *ERDK1:FILE1.TXT$EWPP:$$ / *Y5KIMR. JAMES B. SMITH ! DATEK ASSOCIATES, INC. ! 122 MAIN STREET WEST ! AUSTIN, TEXAS ! ! DEAR MR. SMITH: ! $$ 6< *HT$$ ! MR. JAMES B. SMITH ! DATEK ASSOCIATES, INC. ! 122 MAIN STREET WEST ! AUSTIN, TEXAS ! ! DEAR MR: SMITH: ! ! I WAS PLEASED TO RECEIVE YOUR REQUEST FOR INFORMATION ! REGARDING THE NEW TECO-11 TEXT EDITING AND CORRECTING ! PROGRAM. ! ! ENCLOSED IS A COPY OF THE TECO-11 USER'S MANUAL, WHICH ! SHOULD ANSWER ALL OF YOUR QUESTIONS. ! ! VERY TRULY YOURS, ! ! ! ! *PEF$$ _\ *\\ .FILL .PAGE .CENTER 80 ^^SECTION II\\ .SKIP 2 .CENTER 80 ^^COMMAND SUMMARY\\ .SKIP 1 .PARAGRAPH ^THE REMAINDER OF THIS MANUAL IS DEVOTED TO A DETAILED DESCRIPTION OF THE FULL ^^TECO\\ COMMAND SET. ^IT IS ASSUMED THAT THE READER IS FAMILIAR WITH THE ELEMENTARY ^^TECO\\ COMMANDS PRESENTED EARLIER. .SKIP 2 2.0 ^^TECO CHARACTER SET\\ .PARAGRAPH ^^TECO\\ ACCEPTS THE FULL ^^ASCII\\ CHARACTER SET, WHICH IS PRESENTED IN ^APPENDIX ^A. ^MOST TERMINALS WILL NOT TRANSMIT AND RECEIVE ALL OF THE ^^ASCII\\ CODES; HOWEVER, CHARACTERS THAT ARE NOT AVAILABLE ON THE USER'S TERMINAL MAY BE INSERTED INTO THE ^^TECO\\ TEXT BUFFER BY MEANS OF SPECIAL COMMANDS WHICH WILL BE PRESENTED LATER IN THIS SECTION. .PARAGRAPH ^^TECO\\ COMMAND STRINGS MAY BE ENTERED USING UPPER CASE CHARACTERS, AS INDICATED THROUGHOUT THIS MANUAL, OR BY USING THE CORRESPONDING LOWER CASE CHARACTERS. ^A FILE WHICH CONTAINS UPPER AND LOWER CASE TEXT MAY BE EDITED IN THE SAME MANNER AS A FILE WHICH CONTAINS ONLY UPPER CASE TEXT. ^IF SUCH A FILE IS ENTERED FROM A TERMINAL THAT DOES NOT ACCEPT LOWER CASE CHARACTERS, ALL CHARACTERS WILL BE PRINTED AT THE TERMINAL AS THEIR UPPER CASE EQUIVALENTS. .PARAGRAPH ^^TECO\\ RECOGNIZES THE PRESENCE OF RECORD CONTROL ATTRIBUTES. ^IF AN INPUT FILE HAS IMPLIED CARRIAGE CONTROL ('^^FD.CR\\') OR ^FORTRAN CARRIAGE CONTROL ('^^FD.FTN\\'), ^^TECO\\ WILL APPEND ^C^R-^L^F TO EACH RECORD AS IT IS READ. ^FORTRAN CARRIAGE CONTROL CHARACTERS ARE NOT INTERPRETED BUT ARE LEFT AT THE BEGINNING OF EACH RECORD. ^IF THE FILE HAS NO CARRIAGE CONTROL ATTRIBUTES (I.E., INTERNAL CARRIAGE CONTROL), RECORDS ARE ACCUMULATED IN THE BUFFER AS READ. ^UPON OUTPUT, ^^TECO\\ TREATS OCCURRENCES OF ^C^R-^L^F AS RECORD SEPARATORS. ^IF THE OUTPUT FILE HAS IMPLIED OR ^FORTRAN CARRIAGE CONTROL, THE ^C^R-^L^F PAIRS ARE STRIPPED OFF AS THE FILE IS WRITTEN. ^THE OUTPUT FILE ATTRIBUTES ARE DEFAULTED AS FOLLOWS: .SKIP 1 .TAB STOPS 25, 50 .NOFILL ^^INPUT FILE OUTPUT FILE\\ .SKIP 1 ^IMPLIED ^C.^C. ^IMPLIED ^C.^C. ^FORTRAN ^C.^C. ^FORTRAN ^C.^C. ^INTERNAL ^C.^C. ^IMPLIED ^C.^C. .FILL .SKIP 1 ^STANDARD ^R^S^X-11^D SOURCE FILES USE IMPLIED CARRIAGE CONTROL. .SKIP 1 .TEST PAGE 9 ^THE FOLLOWING SWITCHES MAY BE USED TO FORCE CARRIAGE CONTROL ATTRIBUTES ON BOTH INPUT AND/OR OUTPUT FILES: .TAB STOPS 25, 40 .SKIP 1 .NOFILL /^C^R ^FORCE ^^IMPLIED C.C.\\ /^F^T ^FORCE ^^FORTRAN C.C.\\ /-^C^R ^FORCE ^^INTERNAL C.C.\\ .FILL .SKIP 1 ^EXAMPLE:^^ ERFOO.BAR$EWFOO.DAT/FT$Y$$\\ .PARAGRAPH ^^TECO\\ CONSIDERS CERTAIN ^^ASCII\\ CHARACTERS TO BE SPECIAL CHARACTERS. ^MOST OF THE SPECIAL CHARACTERS ARE IMMEDIATE ACTION COMMANDS. ^TYPING THESE CHARACTERS IN A COMMAND STRING CAUSES ^^TECO\\ TO PERFORM A SPECIFIED FUNCTION IMMEDIATELY, WITHOUT WAITING FOR THE DOUBLE ^^ALT MODE\\ WHICH TERMINATES THE COMMAND STRING. ^IMMEDIATE ACTION COMMANDS MAY BE ENTERED AT ANY POINT IN A COMMAND STRING - EVEN IN THE MIDDLE OF A COMMAND OR TEXT ARGUMENT. ^FOR THIS REASON, THE SPECIAL CHARACTERS SHOULD NOT BE USED IN TEXT ARGUMENTS, EXCEPT WHERE SPECIFICALLY INDICATED THROUGHOUT THIS MANUAL. .PARAGRAPH ^TABLE 2-0 LISTS THE SPECIAL CHARACTERS, THEIR FUNCTIONS AND THE RESTRICTIONS ASSOCIATED WITH EACH CHARACTER. .SKIP 2 .TEST PAGE 8 .CENTER 80 ^^TABLE 2-0: RESTRICTIONS ON SPECIAL CHARACTERS\\ .LEFT MARGIN 25 .SKIP 1 .INDENT -20 ^^CHARACTER#####################RESTRICTION\\ .SKIP 1 .INDENT -20 ^^ALT MODE\\############^THE ^^ALT MODE\\ CHARACTER IS A COMMAND TERMINATOR. ^IT MAY NOT BE USED IN THE ARGUMENT OF ANY COMMAND EXCEPT WHERE NOTED SPECIFICALLY THROUGHOUT THIS MANUAL. ^^TECO\\ ECHOES A DOLLAR SIGN WHEN AN ^^ALT MODE\\ IS RECEIVED. ^^ALT MODE\\ MAY BE LABELLED ^^ESCAPE\\ OR ^^PREFIX\\ ON SOME TERMINALS. .SKIP 1 .INDENT -20 ^^RUBOUT\\##############^TYPING A ^^RUBOUT\\ CHARACTER DELETES THE LAST CHARACTER TYPED. ^TYPING SEVERAL CONSECUTIVE ^^RUBOUT\\S DELETES ONE CHARACTER FOR EACH ^^RUBOUT\\ TYPED BEGINNING WITH THE LAST CHARACTER TYPED. ^^TECO\\ ECHOES THE DELETED CHARACTER WHENEVER A ^^RUBOUT\\ IS TYPED. .SKIP 1 .INDENT -20 ^CONTROL-^C###########^CONTROL-^C, PRODUCED BY STRIKING THE ^^CONTROL\\ KEY AND THE ^C KEY SIMULTANEOUSLY, CAUSES THE ^M^C^R TO BECOME ACTIVE. ^SINCE ^^TECO\\ REMAINS ACTIVE WITH FILES OPEN, THIS PROCEDURE IS NOT RECOMMENDED. .SKIP 1 .INDENT -20 ^CONTROL-^G###########^TYPING TWO CONSECUTIVE ^CONTROL-^G CHARACTERS, PRODUCED BY HOLDING THE ^^CONTROL\\ KEY DEPRESSED WHILE STRIKING THE ^G KEY TWICE, CAUSES ALL COMMANDS WHICH HAVE BEEN ENTERED BUT NOT EXECUTED TO BE ERASED. (^IF THE TERMINAL HAS A BELL, IT WILL RING.) ^THIS COMMAND IS USED TO ERASE AN ENTIRE COMMAND STRING. ^A SINGLE ^CONTROL-^G CHARACTER IS INTERPRETED AS A DIFFERENT COMMAND AND THE SINGLE ^CONTROL-^G IS NOT A SPECIAL CHARACTER. .SKIP 1 .INDENT -20 ^CONTROL-^U###########^CONTROL-^U, PRODUCED BY STRIKING THE ^^CONTROL\\ KEY AND THE ^U KEY SIMULTANEOUSLY, CAUSES THE CURRENT LINE OF THE CURRENT COMMAND LINE TO BE DELETED. ^^TECO\\ ECHOES THE CHARACTER AS _^^U FOLLOWED BY CARRIAGE RETURN AND LINE FEED. .SKIP 1 .INDENT -20 ^CONTROL-^W###########^CONTROL-^W, PRODUCED BY STRIKING THE ^CONTROL KEY AND THE ^W KEY SIMULTANEOUSLY, WILL CAUSE ALL SUBSEQUENTLY TYPED LOWER CASE LETTERS TO BE CONVERTED TO UPPER CASE (IT WILL NOT EFFECT LETTERS IN THE BUFFER BEING EDITTED; ONLY CHARACTERS TYPED AT THE KEYBOARD ARE CONVERTED.) THE CONVERSION IS TURNED OFF BY A SECOND ^CONTROL-^W. ^CONTROL-^W ECHOES AS A SPACE, AND IS TREATED AS A SPACE BY ^T^E^C^O. .SKIP 1 .INDENT -20 ^CONTROL-^G####^CONTROL-^G, PRODUCED BY STRIKING THE THE ^CONTROL KEY AND THE ^G KEY SIMULTANEOUSLY, FOLLOWED BY A SPACE, CAUSES THE LINE CURRENTLY BEING INPUT TO BE RETYPED. ^THIS COMMAND IS FUNCTIONALLY IDENTICAL TO THE ^R COMMAND OF THE ^R^S^X-11^D MULTI-^T^T^Y HANDLER. .LEFT MARGIN 5 .PARAGRAPH ^THE ^CONTROL-^Z CHARACTER IS USED AS AN END-OF-FILE TERMINATOR. ^INSERTING THIS CHARACTER INTO A FILE WILL CAUSE THE FILE TO BE TERMINATED PREMATURELY THE NEXT TIME IT IS READ AS AN INPUT FILE. .PARAGRAPH ^^TECO\\ ALSO ATTACHES SPECIAL SIGNIFICANCE TO THE CARRIAGE RETURN, LINE FEED, SPACE, AND NULL CHARACTERS. ^A LINE FEED IS APPENDED TO EVERY CARRIAGE RETURN ENTERED INTO THE TEXT BUFFER. ^THUS, IT IS NECESSARY TO TYPE A CARRIAGE RETURN AND THEN A ^^RUBOUT\\ IN ORDER TO ENTER A CARRIAGE RETURN WHICH IS NOT FOLLOWED BY A LINE FEED. .PARAGRAPH ^CARRIAGE RETURN, LINE FEED, AND SPACE CHARACTERS ARE IGNORED BETWEEN COMMANDS IN A COMMAND STRING; THEY MAY BE INSERTED FOR CLARITY OR CONVENIENCE WHENEVER NECESSARY. ^THE NULL CHARACTER (CONTROL-SHIFT-^P) IS IGNORED BY ALL ^^TECO\\ INPUT COMMANDS. .PARAGRAPH ^CONTROL CHARACTERS WHICH ARE NOT SPECIAL CHARACTERS (I.E. IMMEDIATE ACTION COMMANDS) MAY BE INCLUDED IN THE TEXT ARGUMENT OF ANY ^^TECO\\ COMMAND. ^WHEN USED IN THIS MANNER, THE CONTROL CHARACTER MUST BE PRODUCED BY STRIKING THE ^^CONTROL\\ KEY AND A CHARACTER KEY SIMULTANEOUSLY. ^^TECO\\ WILL ECHO A CARET (OR UPARROW) FOLLOWED BY THE CHARACTER WHICH WAS TYPED WHENEVER MOST CONTROL CHARACTERS ARE ENTERED; HOWEVER, SOME CONTROL CHARACTERS DO NOT ECHO, WHILE OTHERS, SUCH AS CONTROL-^L (FORM FEED) OR CONTROL-^G (BELL) ECHO AS THE FUNCTION THEY PERFORM. .PARAGRAPH ^MANY CONTROL CHARACTERS ARE ALSO ^^TECO\\ COMMANDS. ^WHEN A CONTROL CHARACTER IS ENTERED AS A COMMAND, IT MAY BE PRODUCED BY STRIKING THE ^^CONTROL\\ KEY AND THE CHARACTER KEY SIMULTANEOUSLY OR ELSE BY TYPING A CARET (UPARROW) FOLLOWED BY THE DESIRED CHARACTER. ^THIS IS ADVANTAGEOUS BECAUSE ALL CONTROL CHARACTERS ECHO NORMALLY WHEN TYPED IN THE CARET/CHARACTER FORMAT. .SKIP 2 .TEST PAGE 6 2.1 ^^FILE SPECIFICATION COMMANDS\\ .PARAGRAPH ^AN INPUT FILE MUST BE SPECIFIED WHENEVER ^^TECO\\ IS REQUESTED TO ACCEPT TEXT FROM ANY SOURCE EXCEPT THE TERMINAL. ^AN OUTPUT FILE MUST BE SPECIFIED WHENEVER A PERMANENT CHANGE IS MADE TO THE INPUT FILE. ^INPUT AND OUTPUT FILES ARE SELECTED BY MEANS OF FILE SPECIFICATION COMMANDS. ^FILE SPECIFICATIONS INCLUDE DEVICE, FILE NAME, EXTENSION, AND VERSION. ^IF THE DEVICE IS FILE-STRUCTURED, THE FILE NAME AND EXTENSION ARE REQUIRED. ^IF A FILE EXTENSION IS NOT EXPLICITLY DEFINED, THE NULL EXTENSION IS ASSUMED. ^IF A FILE NAME IS SPECIFIED BUT NO DEVICE IS EXPLICITLY DEFINED, THE SYSTEM DEFAULT DEVICE (^S^Y) IS ASSUMED. ^IF A VERSION NUMBER IS NOT SPECIFIED, ^^TECO\\ USES THE LATEST VERSION NUMBER FOR INPUT FILES AND VERSION NUMBER ONE FOR FOR OUTPUT IN CASES WHERE THE OUTPUT FILE DOES NOT ALREADY EXIST; WHERE THE OUTPUT FILE EXISTS, ^^TECO\\ INCREMENTS THE VERSION NUMBER BY ONE BEFORE OPENING THE FILE FOR OUTPUT. .PARAGRAPH ^ALMOST EVERY EDITING JOB BEGINS WITH AT LEAST ONE FILE SPECIFICATION COMMAND. ^ADDITIONAL FILE SPECIFICATION COMMANDS MAY BE EXECUTED DURING AN EDITING JOB WHENEVER REQUIRED; HOWEVER, ^^TECO\\ WILL ONLY KEEP ONE INPUT FILE AND ONE OUTPUT FILE ACTIVE AT A TIME, AND THE SAME FILE MAY NOT BE USED FOR BOTH INPUT AND OUTPUT. .PARAGRAPH ^TABLE 2-1 LISTS THE FULL FILE SPECIFICATION COMMAND SET. .SKIP 2 .TEST PAGE 8 .CENTER 80 ^^TABLE 2-1:##FILE SPECIFICATION COMMANDS\\ .SKIP 1 .LEFT MARGIN 29 .INDENT -24 ^^COMMAND######################FUNCTION\\ .SKIP 1 .INDENT -24 ^E^RDV:FILENAME.EXT;N$####^OPENS A FILE FOR OUTPUT WHERE "DV:FILENAME.EXT;N" IS THE FILE SPECIFICATION AND "$" SIGNIFIES AN ^ALT MODE\\. .SKIP 1 .INDENT -24 ^E^WDV:FILENAME.EXT;N$####^OPENS A FILE FOR OUTPUT WHERE "DV:FILENAME.EXT;N" IS THE FILE SPECIFICATION AND "$" SIGNIFIES AN ^^ALT MODE\\. .SKIP 1 .INDENT -24 ^E^BDV:FILENAME.EXT;N$####^THE ^E^B COMMAND MAY BE USED FOR FILES ON FILE-STRUCTURED DEVICES ONLY. ^IT OPENS FILE DV:FILENAME.EXT;N FOR INPUT AND FILE DV:FILENAME.EXT;N+1 FOR OUTPUT. .SKIP 1 .INDENT -24 ^E^F######################^CLOSES THE CURRENT OUTPUT FILE. .SKIP 1 .INDENT -24 ^E^C######################^MOVES THE REMAINDER OF THE CURRENT INPUT FILE TO THE CURRENT OUTPUT FILE, THEN CLOSES THE OUTPUT FILE. .SKIP 1 .INDENT -24 ^E^X######################^PERFORMS THE SAME FUNCTION AS THE ^E^C COMMAND, BUT THEN EXITS FROM ^^TECO\\. .SKIP 1 .INDENT -24 ^E^A######################^CLOSES THE CURRENT OUTPUT FILE, BUT "REMEMBERS" THE ^E^O^F. ^SUBSEQUENT TYPING OF '^E^W$' RE-OPENS THE OUTPUT FILE FOR APPENDING. ^SAVING AN OUTPUT FILE WITH AN '^E^A' COMMAND WORKS TO ONE LEVEL ONLY. .SKIP 1 .INDENT -24 ^E^P######################^CLOSES THE CURRENT INPUT FILE, BUT "REMEMBERS" THE CURRENT RECORD. ^SUBSEQUENT TYPING OF '^E^R$' RE-OPENS THE FILE FOR INPUT AT THE CURRENT RECORD. .SKIP 1 .INDENT -24 ^E^K######################^KILL THE CURRENT EDIT. ^THIS COMMAND CLOSES AND DELETES THE CURRENT OUTPUT FILE. .SKIP 1 .INDENT -24 ^E^G######################^EQUIVALENT TO ^E^X. .LEFT MARGIN 5 .PARAGRAPH ^MANY EDITING JOBS ARE MOST CONVENIENTLY ACCOMPLISHED BY USING THE ^E^B COMMAND TO OPEN THE DESIGNATED INPUT AND BACKUP FILE, THEN TERMINATING THE JOB WITH EITHER AN ^E^C COMMAND, WHICH RETURNS CONTROL TO ^^TECO\\, OR AN ^E^X COMMAND, WHICH EXITS FROM ^^TECO\\. .PARAGRAPH ^THE PRESENCE OF VERSION NUMBERS IN ^^FILES-11\\ CAUSES SOME OUTPUT FILE EFFECTS THAT HAVE NOT APPEARED WITH ^^TECO\\ UNDER OTHER OPERATING SYSTEMS. ^AN ^E^B WITH VERSION NUMBER DEFAULTED (I.E., ";0" OR UNSPECIFIED) WILL GENERATE A NEW FILE WITH THE NEXT HIGHEST VERSION NUMBER. ^THE PREVIOUS VERSION IS NOT REMOVED. ^SIMILARLY, AN ^E^W WITH DEFAULT VERSION PRODUCES THE NEXT HIGHER VERSION (OR VERSION 1 FOR A NEW FILE). ^HOWEVER, AN ^E^W WITH AN EXPLICIT VERSION NUMBER WILL SUPERCEDE AN EXISTING FILE OF THE SAME NAME-TYPE-VERSION. ^NO WARNING IS GENERATED WHEN THIS OCCURS. .PARAGRAPH ^AN ^E^B WITH AN EXPLICIT VERSION WILL INPUT FROM THE SPECIFIED VERSION, BUT THE OUTPUT FILL BE FORCED TO THE DEFAULT VALUE. ^DURING AN ^E^B, IT IS NOT POSSIBLE TO RE-READ THE INPUT FILE WITH AN ^E^R ON THE (DEFAULTED) LATEST VERSION, SINCE THE OUTPUT FILE ALREADY APPEARS IN THE DIRECTORY. ^TO RE-READ THE INPUT FILE, THE VERSION NUMBER MUST BE SPECIFIED. .PARAGRAPH ^^TECO\\ IS AN ^M^C^R FUNCTION, AND MAY BE STARTED IN EITHER OF THE THREE FOLLOWING WAYS: .TAB STOPS 30 .TEST PAGE 5 .SKIP 1 .NOFILL ^^MCR>TECO\\ .FILL .CENTER 80 OR .NOFILL ^^MCR>TECO\\ FILENAME<^C^R> .FILL .CENTER 80 OR .NOFILL ^^MCR>MAKE\\ FILENAME<^C^R> .FILL .SKIP 1 "^^TECO\\" JUSTS STARTS THE EDITOR. .BREAK "^^TECO\\ FILENAME<^C^R>" STARTS THE EDITOR AND EFFECTS AN "^^EB\\FILENAME$^Y". .BREAK "^^MAKE\\ FILENAME<^C^R>" STARTS THE EDITOR AND EFFECTS AN "^E^WFILENAME$". .SKIP 2 .TEST PAGE 7 2.2 ^^PAGE MANIPULATION COMMANDS\\ .PARAGRAPH ^THE FOLLOWING COMMANDS PERMIT WHOLE PAGES OF TEXT TO BE READ INTO THE TEXT BUFFER FROM AN INPUT FILE OR WRITTEN FROM THE BUFFER ONTO AN OUTPUT FILE. .SKIP 2 .TEST PAGE 6 .CENTER 80 ^^TABLE 2-2:##PAGE MANIPULATION COMMANDS\\ .SKIP 1 .LEFT MARGIN 15 .INDENT -10 ^^COMMAND\\########^^FUNCTION\\ .SKIP 1 .INDENT -10 ^A#########^APPENDS THE NEXT PAGE OF THE INPUT FILE TO THE CONTENT OF THE TEXT BUFFER, THUS COMBINING THE TWO PAGES OF TEXT ON A SINGLE PAGE WITH NO INTERVENING FORM FEED CHARACTER. .SKIP 1 .INDENT -10 ^Y#########^CLEARS THE TEXT BUFFER AND THEN READS THE NEXT PAGE OF THE INPUT FILE INTO THE BUFFER. .SKIP 1 .INDENT -10 ^P^W########^WRITE THE CONTENT OF THE BUFFER ONTO THE OUTPUT FILE AND APPENDS A FORM FEED CHARACTER. ^THE BUFFER IS NOT CLEARED AND THE POINTER POSITION REMAINS UNCHANGED. .SKIP 1 .INDENT -10 N^P^W#######^EXECUTES THE ^P^W COMMAND N TIMES, WHERE N MUST BE AN INTEGER IN THE RANGE 0<=N<=65535. .SKIP 1 .INDENT -10 M,N^P^W#####^WRITES THE CONTENT OF THE BUFFER FROM THE M+1TH CHARACTER THROUGH AND INCLUDING THE NTH CHARACTER ONTO THE OUTPUT FILE. ^M AND N MUST BE INTEGERS IN THE RANGE 0<=N<=65535 AND M SHOULD BE LESS THEN N. ^A FORM FEED IS NOT APPENDED TO THIS OUTPUT, NOR IS THE BUFFER CLEARED. THE POINTER POSITION REMAINS UNCHANGED. .SKIP 1 .INDENT -10 ^H^P^W#######^EQUIVALENT TO THE ^P^W COMMAND EXCEPT THAT A FORM FEED CHARACTER IS NOT APPENDED TO THE OUTPUT. .SKIP 1 .INDENT -10 ^P#########^WRITES THE CONTENT OF THE BUFFER ONTO THE OUTPUT FILE, APPENDING A FORM FEED, THEN CLEARS THE BUFFER AND READS THE NEXT PAGE OF THE INPUT FILE INTO THE BUFFER. .SKIP 1 .INDENT -10 N^P########^EXECUTES THE ^P COMMAND N TIMES, WHERE N MUST BE AN INTEGER IN THE RANGE 0<=N<=65535. .SKIP 1 .INDENT -10 M,N^P######^EQUIVALENT TO M,N^P^W. .SKIP 1 .INDENT -10 ^H^P########^EQUIVALENT TO ^H^P^W. .LEFT MARGIN 5 .PARAGRAPH ^ALL OF THE INPUT COMMANDS LISTED IN ^TABLE 2-2 ASSUME THAT THE INPUT FILE IS ORGANIZED INTO PAGES SMALL ENOUGH TO FIT INTO AVAILABLE MEMORY. ^IF ANY PAGE OF THE INPUT FILE CONTAINS MORE CHARACTERS THAN WILL FIT INTO AVAILABLE MEMORY, THE INPUT COMMAND WILL CONTINUE READING CHARACTERS INTO THE BUFFER UNTIL THE BUFFER IS MORE THAN 2/3 FULL AND A LINE FEED IS ENCOUNTERED OR UNTIL A POINT 128 CHARACTERS FROM THE END OF THE BUFFER IS REACHED. ^SPECIAL TECHNIQUES FOR HANDLING PAGES IN EXCESS OF THE BUFFER CAPACITY WILL BE DEVELOPED LATER IN THIS SECTION. .SKIP 2 .TEST PAGE 5 2.3 ^^BUFFER POINTER MANIPULATION COMMANDS\\ .PARAGRAPH ^TABLE 2-3 SUMMARIZES THE COMPLETE BUFFER POINTER MANIPULATION COMMAND SET. ^THESE COMMANDS MAY BE USED TO MOVE THE POINTER TO A POSITION BETWEEN ANY TWO CHARACTERS IN THE BUFFER, BUT THEY WILL NOT MOVE THE POINTER ACROSS EITHER BUFFER BOUNDARY. ^IF ANY ^R OR ^C COMMAND ATTEMPTS TO MOVE THE POINTER BACKWARD BEYOND THE BEGINNING OF THE BUFFER OR FORWARD PAST THE END OF THE BUFFER, THE COMMAND IS IGNORED AND AN ERROR MESSAGE IS PRINTED. ^IF ANY ^L COMMAND ATTEMPTS TO EXCEED THE BUFFER BOUNDARIES IN THIS MANNER, THE POINTER IS POSITIONED AT THE BOUNDARY WHICH WOULD HAVE BEEN EXCEEDED. ^NO ERROR MESSAGE IS PRINTED. .SKIP 2 .TEST PAGE 7 .CENTER 80 ^^TABLE 2-3:##BUFFER POINTER MANIPULATION COMMANDS\\ .LEFT MARGIN 15 .SKIP 1 .INDENT -10 ^^COMMAND########FUNCTION\\ .SKIP 1 .INDENT -10 ^J#########^MOVES THE POINTER TO A POSITION IMMEDIATELY PRECEDING THE FIRST CHARACTER IN THE BUFFER. .SKIP 1 .INDENT -10 N^J########^MOVES THE POINTER TO A POSITION IMMEDIATELY FOLLOWING THE NTH CHARACTER IN THE BUFFER. ^N MUST BE AN INTEGER. .SKIP 1 .INDENT -10 ^Z^J########^MOVES THE POINTER TO A POSITION IMMEDIATELY FOLLOWING THE LAST CHARACTER IN THE BUFFER. .SKIP 1 .INDENT -10 ^C#########^ADVANCES THE POINTER FORWARD ACROSS ONE CHARACTER. .SKIP 1 .INDENT -10 N^C########^EXECUTES THE ^C COMMAND N TIMES, WHERE N MUST BE AN INTEGER. ^IF N IS POSITIVE, THE POINTER IS MOVED FORFARD ACROSS N CHARACTERS. ^IF N IS NEGATIVE, THE POINTER IS MOVED BACKWARD ACROSS N CHARACTERS. ^IF N IS ZERO, THE POINTER POSITION IS NOT CHANGED. .SKIP 1 .INDENT -10 -^C########^EQUIVALENT TO -1^C. .SKIP 1 .INDENT -10 ^R#########^MOVES THE POINTER BACKWARD ACROSS ONE CHARACTER. .SKIP 1 .INDENT -10 N^R########^EXECUTES THE ^R COMMAND N TIMES, WHERE N IS AN INTEGER. ^IF N IS POSITIVE, THE POINTER IS MOVED BACKWARD ACROSS N CHARACTERS. ^IF N IS NEGATIVE, THE POINTER IS MOVED FORWARD ACROSS N CHARACTERS. ^IF N IS ZERO, THE POSITION OF THE POINTER IS NOT CHANGED. .SKIP 1 .INDENT -10 -^R########^EQUIVALENT TO -1^R. .SKIP 1 .INDENT -10 ^L#########^ADVANCES THE POINTER FORWARD ACROSS THE NEXT LINE FEED AND POSITIONS IT AT THE BEGINNING OF THE NEXT LINE. .SKIP 1 .INDENT -10 N^L########^EXECUTES THE ^L COMMAND N TIMES, WHERE N IS AN INTEGER. ^A POSITIVE VALUE OF N ADVANCES THE POINTER TO THE BEGINNING OF THE NTH LINE FOLLOWING ITS CURRENT POSITION. ^A NEGATIVE VALUE OF N MOVES THE POINTER BACKWARDS TO THE BEGINNING OF THE NTH LINE PRECEDING ITS CURRENT POSITION. ^IF N IS ZERO, THE POINTER IS MOVED TO THE BEGINNING OF THE LINE ON WHICH IT IS CURRENTLY POSITIONED. .LEFT MARGIN 5 .SKIP 2 .TEST PAGE 4 2.4 ^^TEXT TYPE-OUT COMMANDS\\ .PARAGRAPH ^TABLE 2-4 SUMMARIZES THE COMMANDS WHICH MAY BE USED TO TYPE OUT PART OR ALL OF THE CONTENT OF THE BUFFER FOR EXAMINATION. ^THESE COMMANDS DO NOT MOVE THE BUFFER POINTER. .SKIP 2 .TEST PAGE 7 .CENTER 80 ^^TABLE 2-4:##TEXT TYPE-OUT COMMANDS\\ .LEFT MARGIN 15 .SKIP 1 .INDENT -10 ^^COMMAND########FUNCTION\\ .SKIP 1 .INDENT -10 ^T#########^TYPES OF THE CONTENT OF THE BUFFER FROM THE CURRENT POSITION OF THE BUFFER POINTER THROUGH AND INCLUDING THE NEXT LINE FEED CHARACTER. .SKIP 1 .INDENT -10 N^T########^EXECUTES THE ^T COMMAND N TIMES, WHERE N IS AN INTEGER. ^IF N IS POSITIVE, THE N LINES FOLLOWING THE CURRENT POSITION OF THE POINTER ARE TYPED. ^IF N IS NEGATIVE, THE N LINES PRECEDING THE POINTER ARE TYPED. ^IF N IS ZERO, THE CONTENT OF THE BUFFER FROM THE BEGINNING OF THE LINE ON WHICH THE POINTER IS LOCATED UP TO THE POINTER IS TYPED. .SKIP 1 .INDENT -10 -^T########^EQUIVALENT TO -1^T. .SKIP 1 .INDENT -10 M,N^T######^TYPES OUT THE CONTENT OF THE BUFFER FROM THE M+1TH CHARACTER THROUGH AND INCLUDING THE NTH CHARACTER IN THE BUFFER. ^M AND N MUST BE INTEGERS, AND M SHOULD BE LESS THAN N. .SKIP 1 .INDENT -10 .,.+N^T####^TYPES OUT THE N CHARACTERS IMMEDIATELY FOLLOWING THE BUFFER POINTER. ^N SHOULD BE GREATER THAN ZERO. .SKIP 1 .INDENT -10 .-N,.^T####^TYPES THE N CHARACTERS IMMEDIATELY PRECEDING THE BUFFER POINTER. ^N SHOULD BE GREATER THAN ZERO (I. E., -N SHOULD BE LESS THAN ZERO). .SKIP 1 .INDENT -10 ^H^T########^TYPES OUT THE ENTIRE CONTENT OF THE BUFFER. .SKIP 1 .INDENT -10 ^V#########^EQUIVALENT TO 0^T^T. .LEFT MARGIN 5 .PARAGRAPH ^USERS MAY STOP THE EXECUTION OF ANY ^T COMMAND BY TYPING CONTROL-^O AT THE KEYBOARD. ^TYPING CONTROL-^O TERMINATES EXECUTION OF THE CURRENT ^T COMMAND. ^WHEN USED IN THIS MANNER, THE CONTROL-^O MUST BE ENTERED WHILE ^^TECO\\ IS ACTUALLY IN THE PROCESS OF TYPING OUT AT THE TERMINAL. .SKIP 2 .TEST PAGE 4 2.5 ^^DELETION COMMANDS\\ .PARAGRAPH ^TABLE 2-5 SUMMARIZES THE TEXT DELETION COMMANDS, WHICH PERMIT DELETION OF SINGLE CHARACTERS, GROUPS OF ADJACENT CHARACTERS, SINGLE LINES, OR GROUPS OF ADJACENT LINES. .SKIP 2 .TEST PAGE 5 .CENTER 80 ^^TABLE 2-5:##TEXT DELETION COMMANDS\\ .LEFT MARGIN 15 .SKIP 1 .INDENT -10 ^^COMMAND########FUNCTION\\ .SKIP 1 .INDENT -10 ^D#########^DELETE THE FIRST CHARACTER FOLLOWING THE CURRENT POSITION OF THE BUFFER POINTER. .SKIP 1 .INDENT -10 N^D########^EXECUTE THE ^D COMMAND N TIMES, WHERE N IS AN INTEGER. ^IF N IS POSITIVE, THE N CHARACTERS FOLLOWING THE CURRENT POINTER POSITION ARE DELETED. ^IF N IS NEGATIVE, THE N CHARACTERS PRECEDING THE CURRENT POINTER POSITION ARE DELETED. ^IF N IS ZERO, THE COMMAND IS IGNORED. .SKIP 1 .INDENT -10 -^D########^EQUIVALENT TO -1^D. .SKIP 1 .INDENT -10 ^K#########^DELETES THE CONTENT OF THE BUFFER FROM THE CURRENT POSITION OF THE BUFFER POINTER THROUGH AND INCLUDING THE NEXT LINE FEED CHARACTER. .SKIP 1 .INDENT -10 N^K########^EXECUTES THE ^K COMMAND N TIMES, WHERE N IS AN INTEGER. ^IF N IS POSITIVE, THE N LINES FOLLOWING THE CURRENT POINTER POSITION ARE DELETED. ^IF N IS NEGATIVE, THE N LINES PRECEDING THE CURRENT POINTER POSITION ARE DELETED. ^IF N IS ZERO, THE CONTENT OF THE BUFFER FROM THE BEGINNING OF THE LINE ON WHICH THE POINTER IS LOCATED UP TO THE POINTER IS DELETED. .SKIP 1 .INDENT -10 -^K########^EQUIVALENT TO -1^K. .SKIP 1 .INDENT -10 M,N^K######^DELETES THE CONTENT OF THE BUFFER FROM THE M+1TH CHARACTER THROUGH AND INCLUDING THE NTH CHARACTER. ^M AND N MUST BE INTEGERS, AND M SHOULD BE LESS THAN N. .SKIP 1 .INDENT -10 ^H^K########^DELETES THE ENTIRE CONTENTS OF THE BUFFER. .LEFT MARGIN 5 .SKIP 2 .TEST PAGE 6 2.6 ^^INSERTION COMMANDS\\ .PARAGRAPH ^TABLE 2-6 LISTS THE FULL TEXT INSERTION COMMAND SET. ^ALL TEXT INSERTION COMMANDS CAUSE THE STRING OF CHARACTERS SPECIFIED IN THE COMMAND TO BE INSERTED INTO THE TEXT BUFFER AT THE CURRENT POSITION OF THE BUFFER POINTER. ^FOLLOWING EXECUTION OF AN INSERTION COMMAND, THE POINTER WILL BE POSITIONED IMMEDIATELY AFTER THE LAST CHARACTER OF THE INSERTION. .PARAGRAPH ^THE LENGTH OF AN INSERTION COMMAND IS LIMITED PRIMARILY BY THE AMOUNT OF MEMORY AVAILABLE FOR COMMAND STRING STORAGE. ^DURING NORMAL EDITING JOBS, IT IS MOST CONVENIENT TO LIMIT INSERTIONS TO ABOUT 10 OR 15 LINES EACH. ^IF A VERY LONG INSERTION COMMAND BEGINS TO EXCEED THE ^^TECO\\ COMMAND STORAGE CAPACITY, ^^TECO\\ WILL RING THE TERMINAL BELL ONCE AFTER EACH ADDITIONAL CHARACTER IS ENTERED. ^WHEN THIS OCCURS, THE COMMAND STRING SHOULD BE TERMINATED IMMEDIATELY. ^ATTEMPTING TO ENTER MORE CHARACTERS INTO THE CURRENT COMMAND STRING CAUSES ^^TECO\\TO DELETE THEM AS THEY ARE ENTERED. ^USE OF THE ^^RUBOUT\\ KEY SHOULD BE ATTEMPTED TO SHORTEN THE COMMAND TO PERMIT ITS TERMINATION. .PARAGRAPH ^WITH THE EXCEPTION OF THE N^I$ COMMAND, INSERTION COMMAND ARGUMENTS MAY CONTAIN ANY ^^ASCII\\ CHARACTERS THAT ARE NOT SPECIAL CHARACTERS. ^THE N^I$ COMMAND WILL INSERT ANY CHARACTER INTO THE BUFFER, INCLUDING THE SPECIAL CHARACTERS. .SKIP 2 .TEST PAGE 7 .CENTER 80 ^^TABLE 2-6:##TEXT INSERTION COMMANDS\\ .LEFT MARGIN 15 .SKIP 1 .INDENT -10 ^^COMMAND########FUNCTION\\ .SKIP 1 .INDENT -10 ^ITEXT$####^WHERE "TEXT" IS A STRING OF ^^ASCII\\ CHARACTERS TERMINATED BY AN ^^ALT MODE\\, WHICH ECHOES AS A DOLLAR SIGN. ^THE SPECIFIED TEXT STRING IS ENTERED INTO THE BUFFER AT THE CURRENT POSITION OF THE POINTER, WITH THE POINTER POSITIONED IMMEDIATELY AFTER THE LAST CHARACTER OF THE INSERTION. .SKIP 1 .INDENT -10 N^I$#######^WHERE N IS ANY ^^ASCII\\ CODE. ^THIS FORM OF THE ^I COMMAND INSERTS THE SINGLE CHARACTER WHOSE ^^ASCII\\ CODE IS N INTO THE BUFFER AT THE CURRENT POSITION OF THE BUFFER POINTER. ^IT MAY BE USED TO INSERT CHARACTERS THAT ARE NOT AVAILABLE ON THE USER'S TERMINAL OR SPECIAL CHARACTERS SUCH AS ^^RUBOUT\\ WHICH MAY NOT BE INSERTED WITH THE STANDARD ^I COMMAND. .SKIP 1 .INDENT -10 <^I>TEXT$##^WHERE <^I> IS A TABULATION, PRODUCED BY STRIKING THE ^^TAB\\ KEY OR BY PRESSING THE ^^CONTROL\\ KEY AND THE ^I KEY SIMULTANEOUSLY. ^THE ^^TAB\\ CHARACTER ECHOES AS FROM ONE TO EIGHT SPACES ON MOST TERMINALS. ^THIS COMMAND IS EQUIVALENT TO THE ^I COMMAND EXCEPT THAT THE TABULATION IS ALSO INSERTED INTO THE BUFFER IMMEDIATELY PRECEDING THE SPECIFIED TEXT STRING. .SKIP 1 .INDENT -10 @^I/TEXT/##^EQUIVALENT TO THE ^I COMMAND EXCEPT THAT THE TEXT TO BE INSERTED MAY CONTAIN ^^ALT MODE\\ CHARACTERS AS LONG AS IT DOES NOT CONTAIN TWO CONSECUTIVE ^^ALT MODE\\S. ^A DELIMITING CHARACTER (SHOWN AS A SLASH HERE) MUST PRECEDE AND FOLLOW THE TEXT TO BE INSERTED. ^THIS DELIMITER MAY BE ANY CHARACTER WHICH DOES NOT APPEAR IN THE INSERTION EXCEPT FOR THE SPECIAL CHARACTERS. .SKIP 1 .INDENT -10 ^F^RTEXT$###^EQUIVALENT TO "-N^D^ITEXT$", WHERE "N" IS OBTAINED FROM ONE OF THE FOLLOWING: (A) THE LENGTH OF THE MOST RECENT SEARCH STRING, (B) THE LENGTH OF THE LAST INSERT, OR (C) THE LENGTH OF THE STRING RETRIEVED BY THE MOST RECENT "^G" COMMAND. "_^^S" ALWAYS CONTAINS THE VALUE OF "-N". .LEFT MARGIN 5 .SKIP 2 .TEST PAGE 6 2.7 ^^SEARCH COMMANDS\\ .PARAGRAPH ^IN MANY CASES, THE EASIEST WAY TO POSITION THE BUFFER POINTER IS BY MEANS OF A CHARACTER STRING SEARCH. ^THE SEARCH COMMANDS CAUSE ^^TECO\\ TO SCAN THROUGH TEXT UNTIL A SPECIFIED STRING OF FROM 1 TO 31 CHARACTERS IS FOUND, AND THEN POSITION THE BUFFER POINTER AT THE END OF THE STRING. ^A CHARACTER STRING SEARCH ALWAYS BEGINS AT THE CURRENT POSITION OF THE POINTER AND PROCEEDS IN A FORWARD DIRECTION. .SKIP 2 .TEST PAGE 6 .CENTER 80 ^^TABLE 2-7: SEARCH COMMANDS\\ .LEFT MARGIN 25 .SKIP 1 .INDENT -20 ^STEXT$##############^WHERE "TEXT" IS A STRING OF 1 TO 31 CHARACTERS TERMINATED BY AN ^^ALT MODE\\. ^THIS COMMAND SEARCHES THE TEXT BUFFER FOR THE NEXT OCCURRENCE OF THE SPECIFIED CHARACTER STRING FOLLOWING THE CURRENT POSITION OF THE BUFFER POINTER. ^IF THE STRING IS FOUND, THE POINTER IS POSITIONED AFTER THE LAST CHARACTER IN THE STRING. ^IF IT IS NOT FOUND, THE POINTER IS POSITIONED IMMEDIATELY BEFORE THE FIRST CHARACTER IN THE BUFFER AND AN ERROR MESSAGE IS PRINTED. .SKIP 1 .INDENT -20 N^STEXT$#############^THIS COMMAND SEARCHES FOR THE NTH OCCURRENCE OF THE SPECIFIED CHARACTER STRING, WHERE N MUST BE GREATER THAN ZERO. ^IT IS IDENTICAL TO THE ^S COMMAND IN OTHER RESPECTS. .SKIP 1 .INDENT -20 .SKIP 1 .INDENT -20 -N^STEXT$############^IDENTICAL TO "N^STEXT$" EXCEPT THAT THE SEARCH IS PERFORMED IN THE REVERSE DIRECTION. ^IF THE STRING IS NOT FOUND, THE POINTER IS POSITIONED IMMEDIATELY BEFORE THE FIRST CHARACTER IN THE BUFFER AND AN ERROR MESSAGE IS PRINTED. .SKIP 1 .INDENT -20 ^NTEXT$##############^PERFORMS THE SAME FUNCTION AS THE ^S COMMAND EXCEPT THAT THE SEARCH IS CONTINUED ACROSS PAGE BOUNDARIES, IF NECESSARY, UNTIL THE CHARACTER STRING IS FOUND OR THE END OF THE INPUT FILE IS REACHED. ^THIS IS ACCOMPLISHED BY EXECUTING AN EFFECTIVE ^P COMMAND, IF THE CONTENT OF THE BUFFER WAS FOLLOWED BY A FORM FEED CHARACTER IN THE INPUT FILE; OTHERWISE BY EXECUTING AN EFFECTIVE ^H^P^Y COMMAND STRING, WHICH DOES NOT APPEND A FORM FEED CHARACTER. ^IF THE END OF THE INPUT FILE IS REACHED, AN ERROR MESSAGE IS PRINTED AND IT IS NECESSARY TO CLOSE THE OUTPUT FILE AND RE-OPEN IT AS AN INPUT FILE BEFORE ANY FURTHER EDITING COMMANDS ARE EXCUTED. ^THE ^N COMMAND WILL NOT LOCATE A CHARACTER STRING WHICH CONTINUES ACROSS A PAGE BOUNDARY. .SKIP 1 .INDENT -20 __TEXT$##############^THE UNDERSCORE (BACKARROW) COMMAND IS IDENTICAL TO THE ^N COMMAND EXCEPT THAT THE SEARCH IS CONTINUED ACROSS PAGE BOUNDARIES BY EXECUTING EFFECTIVE ^Y COMMANDS INSTEAD OF ^P OR ^H^P^Y COMMANDS, SO THAT NO OUTPUT IS GENERATED. .SKIP 1 .INDENT -20 N__TEXT$#############^THIS COMMAND SEARCHES FOR THE NTH OCCURRENCE OF THE SPECIFIED CHARACTER STRING, WHERE N MUST BE GREATER THAN ZERO. ^IT IS IDENTICAL TO THE __ COMMAND IN OTHER RESPECTS. .SKIP 1 .INDENT -20 _^^RTEXT1$TEXT2$######^EXECUTES AN ^STEXT1$ COMMAND, THEN DELETES "TEXT1" AND REPLACES IT WITH "TEXT2", WHERE TEXT1 IS A STRING OF 1 TO 31 CHARACTERS AND TEXT2 IS A CHARACTER STRING OF ANY LENGTH. ^THE _^^R MUST BE A CARET (UPARROW) CHARACTER FOLLOWED BY AN ^R CHARACTER. ^^TECO\\ WILL ACCEPT A ^CONTROL-^R CHARACTER, IF PASSED BY THE ^R^S^X-11^D TERMINAL DEVICE HANDLER. .SKIP 1 .INDENT -20 ^F^RTEXT1$TEXT2$######^EQUIVALENT TO _^^RTEXT1$TEXT2$. .SKIP 1 .INDENT -20 N_^^RTEXT1$TEXT2$#####^EXECUTES AN N^STEXT1$ COMMAND, THEN DELETES "TEXT1" AND REPLACES IT WITH "TEXT2", WHERE TEXT1 IS A STRING OF 1 TO 31 CHARACTERS AND TEXT2 IS A CHARACTER STRING OF ANY LENGTH. .LEFT MARGIN 5 .PARAGRAPH ^IF A SEARCH COMMAND IS ENTERED WITHOUT A TEXT ARGUMENT, ^^TECO\\ WILL EXECUTE THE SEARCH COMMAND AS THOUGH IT HAD BEEN ENTERED WITH THE SAME CHARACTER STRING ARGUMENT AS THE LAST SEARCH COMMAND ENTERED. ^FOR EXAMPLE, SUPPOSE THE COMMAND "^^STHE#END\\$" RESULTS IN AN ERROR MESSAGE, INDICATING THAT CHARACTER STRING "^^THE#END\\" WAS NOT FOUND ON THE CURRENT PAGE. ^ENTERING THE COMMAND "^N$" CAUSES ^^TECO\\ TO EXECUTE AN ^N SEARCH FOR THE SAME CHARACTER STRING. ^ALTHOUGH THE TEXT ARGUMENT MAY BE OMITTED, THE COMMAND TERMINATOR (^^ALT MODE\\, IN THIS CASE) MUST ALWAYS BE ENTERED. .PARAGRAPH ^ANY OF THE SEARCH COMMANDS LISTED ABOVE MAY BE PRECEDED BY A COLON (:). ^THE COLON IS A SEARCH COMMAND MODIFIER WHICH SUPRESSES ERROR MESSAGE GENERATION AND CAUSES THE NEXT SEQUENTIAL COMMAND TO BE EXECUTED WITH AN ARGUMENT OF ZERO, IF THE SEARCH FAILS. ^IF THE SEARCH SUCCEEDS, THE NEXT SEQUENTIAL COMMAND IS EXECUTED WITH AN ARGUMENT OF -1. ^IF THE NEXT SEQUENTIAL COMMAND BELONGS TO THE CLASS OF COMMANDS WHICH REQUIRE A POSITIVE ARGUMENT, THE -1 IS INTERPRETED AS A POSITIVE 65535. ^IF THE NEXT SEQUENTIAL COMMAND DOES NOT REQUIRE AN ARGUMENT, IT IS EXECUTED AS IT STANDS. ^THE FOLLOWING EXAMPLES ILLUSTRATE USE OF THE COLON MODIFIER. .LEFT MARGIN 20 .SKIP 1 .INDENT -15 ^^COMMANDS:\\######:N^STEXT$ .NOFILL :^NTEXT$ :N^NTEXT$ :__TEXT$ :N__TEXT$ :_^^RTEXT1$TEXT2$ :N_^^RTEXT1$TEXT2$ .FILL .SKIP 1 .INDENT -15 ^^FUNCTION:######I\\N EACH CASE. EXECUTE THE SEARCH COMMAND. ^IF THE SEARCH IS SUCCESSFUL, EXECUTE THE NEXT SEQUENTIAL COMMAND WITH AN ARGUMENT OF -1 (OR 65535, IF IT IS A COMMAND WHICH MUST HAVE A POSITIVE ARGUMENT). ^IF THE SEARCH FAILS, EXECUTE THE NEXT COMMAND WITH AN ARGUMENT OF ZERO. ^IF THE NEXT COMMAND DOES NOT REQUIRE A NUMERIC ARGUMENT, EXECUTE IT AS IT STANDS. .LEFT MARGIN 5 .PARAGRAPH ^A SPECIAL CASE IS THE COMPARE COMMAND, THE FORMAT OF WHICH IS '::^STEXT$'. ^THE ::^S COMMAND DOES NOT MOVE THE POINTER. ^IT RETURNS A VALUE OF -1 IF THE TEXT FOLLOWING THE POINTER IS IDENTICAL TO THE SEARCH STRING. ^OTHERWISE IT RETURNS A VALUE OF ZERO. .PARAGRAPH ^THE @ CHARACTER IS ANOTHER SEARCH COMMAND MODIFIER. ^INSERTING AN @ CHARACTER BETWEEN THE NUMERIC ARGUMENT OF ANY SEARCH COMMAND AND THE COMMAND ITSELF CAUSES ^^TECO\\ TO ACCEPT THE FIRST CHARACTER FOLLOWING THE COMMAND AS A DELIMITING CHARACTER WHICH WILL ALSO BE THE COMMAND TERMINATOR. ^THIS CHARACTER MAY BE ANY CHARACTER WHICH DOES NOT APPEAR IN THE SEARCH COMMAND ARGUMENT, EXCEPT FOR SPECIAL CHARACTERS. ^WHEN THE @ COMMAND IS USED, SEARCH COMMAND ARGUMENTS MAY CONTAIN ^^ALT MODE\\ CHARACTERS, AS LONG AS THEY DO NOT CONTAIN TWO CONSECUTIVE ^^ALT MODE\\S. ^THE FOLLOWING EXAMPLES ILLUSTRATE USE OF THE @ COMMAND MODIFIER. .SKIP 1 .LEFT MARGIN 20 .INDENT -15 ^^COMMANDS:\\######@^S/TEXT/ .NOFILL N@^S/TEXT/ @^N/TEXT/ N@^N/TEXT/ @__/TEXT/ N@__/TEXT/ @_^^R/TEXT1/TEXT2/ N@_^^R/TEXT1/TEXT2/ .FILL .SKIP 1 .INDENT -15 ^^FUNCTION:\\######^IN EACH CASE, EXECUTE THE SEARCH COMMAND WITH TEXT STRING "TEXT" AS AN ARGUMENT. ^THIS ARGUMENT MUST BE PRECEDED AND FOLLOWED BY A DELIMITING CHARACTER WHICH DOES NOT APPEAR IN THE ARGUMENT ( A SLASH IS SHOWN HERE). ^THE SEARCH COMMAND ARGUMENT MAY CONTAIN ^^ALT MODE\\ CHARACTERS, AS LONG AS IT DOES NOT CONTAIN TWO CONSECUTIVE ^^ALT MODE\\S. .LEFT MARGIN 5 .SKIP 2 .TEST PAGE 5 2.8 ^^MATCH CONTROL CHARACTERS\\ .PARAGRAPH ^^TECO\\ EXECUTES A SEARCH COMMAND BY ATTEMPTING TO MATCH THE SEARCH COMMAND ARGUMENT CHARACTER-BY-CHARACTER WITH SOME PORTION OF THE INPUT FILE. .PARAGRAPH ^THERE ARE FOUR SPECIAL CONTROL CHARACTERS THAT MAY BE USED IN SEARCH COMMAND ARGUMENTS. ^THESE CHARACTERS ALTER THE USUAL MATCHING PROCESS THAT OCCURS WHEN A SEARCH IS EXECUTED. ^^TECO\\ CONSIDERS MATCH CONTROL CHARACTERS TO BE SINGLE CHARACTERS (THEY ECHO AS TWO CHARACTERS) AND COUNTS THEM AS ONE OF THE MAXIMUM 31 CHARACTERS IN THE SEARCH COMMAND ARGUMENT. ^TABLE 2-8 LISTS THE MATCH CONTROL CHARACTERS AND THEIR FUNCTIONS. .SKIP 2 .TEST PAGE 6 .CENTER 80 ^^TABLE 2-8: MATCH CONTROL CHARACTERS\\ .LEFT MARGIN 20 .SKIP 1 .INDENT -20 ^^CHARACTER###########FUNCTION\\ .SKIP 1 .INDENT -20 ^CONTROL-^X######^A CONTROL-^X CHARACTER INDICATES THAT THIS POSITION IN THE CHARACTER STRING IS UNIMPORTANT. ^^TECO\\ ACCEPTS EVERY OTHER CHARACTER AS A MATCH FOR CONTROL-^X. .SKIP 1 .INDENT -20 ^CONTROL-^S######^A CONTROL-^S CHARACTER INDICATES THAT ANY SEPARATOR CHARACTER IS ACCEPTABLE IN THIS POSITION. ^^TECO\\ ACCEPTS ANY CHARACTER THAT IS NOT A LETTER (UPPER OR LOWER CASE ^A TO ^Z) OR A DIGIT (0 TO 9) AS A MATCH FOR CONTROL-^S. .SKIP 1 .INDENT -20 ^CONTROL-^N######^THE CONTROL-^N CHARACTER AND THE CHARACTER FOLLOWING IT ARE TREATED AS A SINGLE CHARACTER IN THE SEARCH COMMAND ARGUMENT, BUT COUNTED AS 2 OF THE MAXIMUM 31 CHARACTERS. ^^TECO\\ ACCEPTS ANY CHARACTER AS A MATCH FOR THE CONTROL-^N/CHARACTER COMBINATION ^^EXCEPT\\ THE CHARACTER WHICH FOLLOWS THE CONTROL-^N. ^THE COMBINATION CONTROL-^N/CONTROL-^S IS LEGAL; ^^TECO\\ ACCEPTS ANY CHARACTER WHICH IS NOT A SEPARATOR AS A MATCH FOR _^^N/_^^S. .SKIP 1 .INDENT -20 ^CONTROL-^Q######^A CONTROL-^Q CHARACTER IN A SEARCH COMMAND ARGUMENT INDICATES THAT THE CHARACTER FOLLOWING THE CONTROL-^Q IS TO BE INTERPRETED LITERALLY RATHER THAN AS A COMMAND. ^THIS CHARACTER MAY BE USED TO SEARCH FOR OTHER MATCH CONTROL CHARACTERS. ^IT DOES NOT COUNT AS ONE OF THE MAXIMUM 31 CHARACTERS IN THE SEARCH COMMAND ARGUMENT. .SKIP 1 .INDENT -20 ^CONTROL-^E^A#####^CONTROL-^E^A INDICATES THAT ANY ALPHA CHARACTER IS ACCEPTABLE IN THIS POSITION. ^^TECO\\ ACCEPTS ANY LETTER (UPPER OR LOWER CASE ^A TO ^Z) AS A MATCH FOR _^^E^A. .SKIP 1 .INDENT -20 ^CONTROL-^E^D#####^CONTROL-^E^D INDICATES THAT ANY DIGIT IS ACCEPTABLE IN THIS POSITON. ^^TECO\\ ACCEPTS ANY DIGIT (0 TO 9) AS A MATCH FOR _^^E^D. .SKIP 1 .INDENT -20 ^CONTROL-^E^L#####^CONTROL-^E^L INDICATES THAT ANY LINE TERMINATOR IS ACCEPTABLE IN THE POSITION OCCUPIED BY _^^E^L IN THE SEARCH STRING. .SKIP 1 .INDENT -20 ^CONTROL-^E^X#####^EQUIVALENT TO _^^X. .SKIP 1 .INDENT -20 ^CONTROL-^E^S#####^CONTROL-^E^S INDICATES THAN A STRING OF SPACES AND/OR TABS IS ACCEPTABLE IN THE POSITION OCCUPIED BY _^^E^S. .SKIP 1 .INDENT -20 ^CONTROL-^E^QN####^CONTROL-^E^QN INDICATES THAT THE STRING STORED IN ^Q-REGISTER N IS TO BE USED IN THE POSITION OCCUPIED BY THE _^^E^QN IN THE SEARCH STRING. .LEFT MARGIN 5 .PARAGRAPH ^AS WITH ALL OTHER CONTROL CHARACTERS ENTERED INTO TEXT ARGUMENTS, MATCH CONTROL CHARACTERS MUST BE TYPED BY HOLDING THE ^^CONTROL\\ KEY DEPRESSED WHILE STRIKING THE CHARACTER KEY. ^THE CARET (UPARROW) CONSTRUCTION MAY NOT BE USED. .PARAGRAPH ^THE MATCH CONTROL CHARACTERS MAY NOT BE ENTERED DIRECTLY IN A SEARCH COMMAND IF THE MULTI-^T^T^Y HANDLER IS USED. ^TO OVERCOME THIS PROBLEM, THE USER MAY INSERT THE COMMAND INTO THE TEXT BUFFER (THE N^I COMMAND IS USED TO INSERT THE MATCH CONTROL CHARACTER), TRANSFER THE COMMAND TO A ^Q-REGISTER, AND PERFORM THE SEARCH AS A MACRO. ^THE FOLLOWING EXAMPLE ILLUSTRATES THIS PROCEDURE IN A SEARCH FOR THE STRING "END" FOLLOWED BY ANY DIGIT: .SKIP 1 ^^JISEND$5I$@I/D$/ 0XA0KMA$$\\ .SKIP 2 .TEST PAGE 6 2.9 ^^COMMAND LOOPS\\ .PARAGRAPH ^THE USER MAY CAUSE A COMMAND STRING TO BE EXECUTED ANY NUMBER OF TIMES BY PLACING THE COMMAND STRING WITHIN ANGLE BRACKETS AND PRECEDING THE BRACKETS WITH A NUMERIC ARGUMENT WHICH DESIGNATES THE NUMBER OF ITERATIONS. ^ITERATED COMMAND STRINGS ARE CALLED COMMAND LOOPS. ^LOOPS MAY BE NESTED IN SUCH A WAY THAT ONE COMMAND LOOP CONTAINS ANOTHER COMMAND LOOP, WHICH, IN TURN, CONTAINS OTHER COMMAND LOOPS, AND SO ON. ^COMMAND LOOPS SHOULD NOT BE NESTED TO MORE THAN ABOUT 15 LEVELS. .PARAGRAPH ^THE GENERAL FORM OF THE COMMAND LOOP IS: .SKIP 1 .LEFT MARGIN 15 N .LEFT MARGIN 5 .SKIP 1 WHERE "COMMAND STRING" IS THE SEQUENCE OF COMMANDS TO BE ITERATED AND N IS THE NUMBER OF ITERATIONS. ^N MUST BE A POSITIVE INTEGER. ^IF N IS NOT SUPPLIED, A VALUE OF 65535 IS ASSUMED. .PARAGRAPH ^IF A SEARCH COMMAND WHICH IS NOT PRECEDED BY A COLON MODIFIER IS ENTERED INTO A COMMAND LOOP AND THE SEARCH FAILS, THE COMMAND LOOP IS EXITED IMMEDIATELY AND THE COMMAND FOLLOWING THE RIGHT ANGLE BRACKETS OF THE LOOP IS THE NEXT COMMAND TO BE EXECUTED. ^NO ERROR MESSAGE IS PRINTED. .SKIP 2 .TEST PAGE 6 2.10 ^^Q-REGISTERS\\ .PARAGRAPH ^^TECO\\ PROVIDES 36 DATA STORAGE REGISTERS, CALLED ^Q-REGISTERS, WHICH MAY BE USED TO STORE SINGLE INTEGERS AND/OR ^^ASCII\\ CHARACTER STRINGS. ^EACH ^Q-REGISTER IS DIVIDED INTO TWO STORAGE AREAS. ^IN THE NUMBER STORAGE AREA, EACH ^Q-REGISTER CAN STORE ONE INTEGER IN THE RANGE -32768<=N<=32767. ^IN THE TEXT STORAGE AREA, EACH ^Q-REGISTER CAN STORE AN ^^ASCII\\ CHARACTER STRING UP TO 2000 CHARACTERS WHICH MAY BE EITHER TEXT OR A ^^TECO\\COMMAND STRING. ^EACH ^Q-REGISTER HAS A SINGLE CHARACTER NAME WHICH IS ONE OF THE UPPER CASE LETTERS ^A TO ^Z OR ONE OF THE DIGITS 0 TO 9. ^IN THIS MANUAL, A ^Q-REGISTER NAME IS INDICATED BY A LOWER CASE "Q", WHICH STANDS FOR ANY ONE OF THE 36 ^Q-REGISTERS. .PARAGRAPH ^TABLE 2-10^A LISTS THE COMMANDS WHICH PERMIT CHARACTERS TO BE LOADED INTO THE ^Q-REGISTERS. .SKIP 2 .TEST PAGE 7 .CENTER 80 ^^TABLE 2-10A: Q-REGISTER LOADING COMMANDS\\ .LEFT MARGIN 20 .SKIP 1 .INDENT -15 ^^COMMAND########FUNCTION\\ .SKIP 1 .INDENT -15 _^^UQSTRING$#####^WHERE _^^U IS A CONTROL-^U CHARACTER, "Q" IS THE NAME OF A USER-SPECIFIED ^Q-REGISTER, "STRING" IS A STRING OF ^^ASCII\\ CHARACTERS, AND "$" SIGNIFIES ^^ALT MODE\\. ^THIS COMMAND INSERTS CHARACTER STRING "STRING" INTO THE TEXT STORAGE AREA OF ^Q-REGISTER "Q". _^^U MUST BE SPECIFIED IN THE CARET (UPARROW)/^U FORMAT; THE CONTROL-^U CHARACTER IS A SPECIAL ^^RSX-11D\\ TERMINAL CHARACTER FOR ERASING THE TERMINAL LINE BUFFER. .SKIP 1 .INDENT -15 @_^^U/STRING/####^EQUIVALENT TO THE _^^U COMMAND EXCEPT THAT THE CHARACTER STRING TO BE INSERTED INTO ^Q-REGISTER Q MAY CONTAIN ^^ALT MODE\\ CHARACTERS AS LONG AS IT DOES NOT CONTAIN TWO CONSECUTIVE ^^ALT MODE\\ CHARACTERS. ^THE INSERTION MUST BE DELIMITED BEFORE AND AFTER BY ANY CHARACTER (A SLASH IS SHOWN HERE) WHICH DOES NOT APPEAR IN THE INSERTION. .SKIP 1 .INDENT -15 N^UQ############^LOAD N INTO THE NUMBER STORAGE AREA OF ^Q-REGISTER Q, WHERE N MUST BE AN INTEGER IN THE RANGE -32768<=N<=32767. .SKIP 1 .INDENT -15 N%Q$###########^ADD N TO THE CONTENT OF THE NUMBER STORAGE AREA OF ^Q-REGISTER Q, WHERE N SHOULD BE AN INTEGER THAT WILL NOT CAUSE OVERFLOW. .SKIP 1 .INDENT -15 N%Q############^EQUIVALENT TO N%Q$ EXCEPT THAT THE RESULTING VALUE CONTAINED IN ^Q-REGISTER Q IS USED AS A NUMERIC ARGUMENT FOR THE NEXT COMMAND. ^IF THE NEXT COMMAND DOES NOT REQUIRE A NUMERIC ARGUMENT, THIS VALUE IS DISCARDED. .SKIP 1 .INDENT -15 ^XQ#############^COPY THE CONTENT OF THE BUFFER FROM THE CURRENT POSITION OF THE POINTER THROUGH AND INCLUDING THE NEXT LINE FEED CHARACTER INTO THE TEXT STORAGE AREA OF ^Q-REGISTER Q. .SKIP 1 .INDENT -15 N^XQ############^EXECUTE THE ^XQ COMMAND N TIMES, WHERE N IS AN INTEGER IN THE RANGE -32768<=N<=32767. ^IF N IS POSITIVE, THE N LINES FOLLOWING THE CURRENT POINTER POSITION ARE COPIED INTO THE TEXT STORAGE AREA OF ^Q-REGISTER Q. ^IF N IS NEGATIVE, THE N LINES PRECEDING THE POINTER ARE COPIED. ^IF N IS ZERO, THE CONTENT OF THE BUFFER FROM THE BEGINNING OF THE LINE ON WHICH THE POINTER IS LOCATED UP TO THE POINTER IS COPIED. .SKIP 1 .INDENT -15 M,N^XQ##########^COPY THE CONTENT OF THE BUFFER FROM THE M+1TH CHARACTER THROUGH AND INCLUDING THE NTH CHARACTER INTO THE TEXT STORAGE AREA OF ^Q-REGISTER Q. ^M AND N MUST BE POSITIVE, AND M SHOULD BE LESS THAN N. .LEFT MARGIN 5 .PARAGRAPH ^TABLE 2-10^B LISTS THE COMMANDS WHICH PERMIT CHARACTERS TO BE RETRIEVED FROM THE ^Q-REGISTERS. .SKIP 2 .TEST PAGE 6 .CENTER 80 ^^TABLE 10B: Q-REGISTER EXECUTION COMMANDS\\ .LEFT MARGIN 20 .SKIP 1 .INDENT -15 ^^COMMAND#############FUNCTION\\ .SKIP 1 .INDENT -15 ^GQ#############^COPY THE CONTENT OF THE TEXT STORAGE AREA OF ^Q-REGISTER Q INTO THE BUFFER AT THE CURRENT POSITION OF THE BUFFER POINTER, LEAVING THE POINTER POSITIONED AFTER THE LAST CHARACTER COPIED. .SKIP 1 .INDENT -15 ^QQ#############^USE THE INTEGER STORED IN THE NUMBER STORAGE AREA OF ^Q-REGISTER Q AS THE ARGUMENT OF THE NEXT COMMAND. ^THE CHARACTERS "^QQ" MAY BE CONSIDERED AS EQUIVALENT TO "THE VALUE CONTAINED IN THE NUMBER STORAGE AREA OF ^Q-REGISTER Q", WHERE "Q" IS ANY ^Q-REGISTER NAME. .SKIP 1 .INDENT -15 ^MQ#############^EXECUTE THE CONTENT OF THE TEXT STORAGE AREA OF ^Q-REGISTER Q AS A COMMAND STRING. .SKIP 1 .INDENT -15 N^MQ############^EXECUTE THE CONTENT OF THE TEXT STORAGE AREA OF ^Q-REGISTER Q AS A COMMAND STRING AND USE N AS A NUMERIC ARGUMENT FOR THE FIRST COMMAND IN THIS STRING. .LEFT MARGIN 5 .SKIP 2 .TEST PAGE 5 2.11 ^^BRANCHING COMMANDS\\ .PARAGRAPH ^^TECO\\ COMMANDS MAY BE COMBINED IN SOPHISTICATED COMMAND STRINGS WHICH ARE CAPABLE OF SOLVING EVEN THE MOST COMPLEX EDITING PROBLEMS. ^IN FACT, ^^TECO\\ MIGHT BE CONSIDERED A PROGRAMMING LANGUAGE WHICH ACCEPTS AN INPUT FILE AS DATA AND PROCESSES THIS INPUT TO PRODUCE AN OUTPUT FILE. ^AS WITH MOST PROGRAMMING LANGUAGES, ^^TECO\\ PROVIDES AN UNCONDITIONAL BRANCH COMMAND AND A SET OF CONDITIONAL EXECUTION COMMANDS. .PARAGRAPH ^TO PROVIDE FOR BRANCHING WITHIN A COMMAND STRING, THERE MUST BE SOME MEANS OF NAMING LOCATIONS INSIDE THE STRING. ^^TECO\\ PERMITS LOCATION TAGS WHICH HAVE THE FORM: .SKIP 1 .CENTER 80 !TAG! .SKIP 1 TO BE PLACED BETWEEN ANY TWO COMMANDS IN A COMMAND STRING. ^THE NAME "TAG" WILL BE ASSOCIATED WITH THIS LOCATION WHEN THE COMMAND STRING IS EXECUTED. ^TAGS MAY CONTAIN ANY NUMBER OF ^^ASCII\\ CHARACTERS AND ANY CHARACTER EXCEPT FOR SPECIAL CHARACTERS AND EXCLAMATION POINTS. ^SINCE TAGS ARE IGNORED BY ^^TECO\\ EXCEPT WHEN A BRANCH COMMAND REFERENCES THE TAGGED LOCATION, THEY MAY ALSO BE USED AS COMMENTS WITHIN COMPLICATED COMMAND STRINGS. .PARAGRAPH ^THE UNCONDITIONAL BRANCH COMMAND IS THE ^O COMMAND WHICH HAS THE FORM: .SKIP 1 .CENTER 80 ^OTAG$ .SKIP 1 WHERE "TAG" IS A NAMED LOCATION ELSEWHERE WITHIN THE COMMAND STRING AND "$" SIGNIFIES AN ^^ALT MODE\\. ^WHEN AN ^O COMMAND IS EXECUTED, THE NEXT COMMAND TO BE EXECUTED WILL BE THE COMMAND FOLLOWING THE TAG REFERENCED BY THE ^O COMMAND, AND COMMAND EXECUTION CONTINUES NORMALLY FROM THIS POINT. .PARAGRAPH ^IF AN ^O COMMAND IS STORED IN A ^Q-REGISTER AS PART OF A COMMAND STRING WHICH IS TO BE EXECUTED BY AN ^M COMMAND, THE TAG REFERENCED BY THE ^O COMMAND MUST ALSO RESIDE IN THE SAME ^Q-REGISTER. .PARAGRAPH ^AN IMPORTANT RESTRICTION ON THE ^O COMMAND PREVENTS ANY ^O COMMAND WHICH IS INSIDE A COMMAND LOOP FROM BRANCHING TO A TAGGED LOCATION PRECEDING THE COMMAND LOOP. ^HOWEVER, IT IS ALWAYS POSSIBLE TO BRANCH OUT OF A COMMAND LOOP TO A LOCATION WHICH FOLLOWS THE COMMAND LOOP. .SKIP 2 .TEST PAGE 6 2.12 ^^CONDITIONAL EXECUTION COMMANDS\\ .PARAGRAPH ^ALL CONDITONAL EXECUTION COMMANDS ARE OF THE FORM: .SKIP 1 .CENTER 80 N"^GCOMMAND STRING' .SKIP 1 WHERE "N" IS A NUMERIC ARGUMENT ON WHICH THE DECISION IS BASED, "G" MAY BE ANY OF THE CONDITIONAL EXECUTION COMMANDS LISTED IN TABLE 2-12, AND "COMMAND STRING" IS THE COMMAND STRING WHICH WILL BE EXECUTED IF THE CONDITION IS SATISFIED. ^IF THE CONDITION ON N IS NOT SATISFIED, THE COMMAND STRING WILL NOT BE EXECUTED. ^NOTE THAT THE NUMERIC ARGUMENT IS SEPARATED FROM THE CONDITIONAL EXECUTION COMMAND BY A DOUBLE QUOTE (") AND THE COMMAND STRING IS TERMINATED WITH AN APOSTROPHE ('). .PARAGRAPH ^CONDITIONAL EXECUTION COMMANDS MAY BE NESTED IN THE SAME MANNER AS ITERATION COMMANDS. ^THAT IS, THE COMMAND STRING WHICH IS TO BE EXECUTED IF THE CONDITION ON N IS MET MAY CONTAIN CONDITIONAL EXECUTION COMMANDS, WHICH MAY, IN TURN, CONTAIN FURTHER CONDITIONAL EXECUTION COMMANDS. .PARAGRAPH ^TABLE 2-12 LISTS THE CONDITIONAL EXECUTION COMMANDS. ^EACH CONDITIONAL EXECUTION COMMAND MUST BE FOLLOWED BY A COMMAND STRING (NOT SHOWN IN ^TABLE 2-12) WHICH WILL BE EXECUTED ONLY IF THE CONDITION IS SATISFIED. ^THIS COMMAND STRING MUST BE TERMINATED BY AN APOSTOPHE. ^IF THE CONDITION IS NOT SATISFIED, THE FIRST COMMAND FOLLOWING THE APOSTROPHE WILL BE THE NEXT COMMAND EXECUTED. .SKIP 2 .TEST PAGE 8 .CENTER 80 ^^TABLE 2-12: CONDITIONAL EXECUTION COMMANDS\\ .LEFT MARGIN 15 .SKIP 1 .INDENT -10 ^^COMMAND########FUNCTION\\ .SKIP 1 .INDENT -10 N"^G#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS GREATER THAN ZERO. ^OTHERWISE SKIP THE FOLLOWING COMMAND STRING. ^N MUST BE AN INTEGER. .SKIP 1 .INDENT -10 N"^L#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS LESS THAN ZERO. ^OTHERWISE SKIP THE FOLLOWING COMMAND STRING. .SKIP 1 .INDENT -10 N"^E#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS EQUAL TO ZERO. ^OTHERWISE SKIP THE FOLLOWING COMMAND STRING. .SKIP 1 .INDENT -10 N"^C#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS THE DECIMAL ^^ASCII\\ CODE OF ANY CHARACTER WHICH IS ONE OF THE UPPER OR LOWER CASE LETTERS ^A TO ^Z, ONE OF THE DIGITS 0 TO 9, OR PERIOD, OR DOLLAR SIGN. ^OTHERWISE SKIP THE FOLLOWING COMMAND STRING. .SKIP 1 .INDENT -10 N"^N#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS NOT EQUAL TO ZERO. ^OTHERWISE SKIP THE FOLLOWING COMMAND STRING. .SKIP 1 .INDENT -10 N"^T#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS ^^TRUE\\. ^EQUVALENT TO N"^L. .SKIP 1 .INDENT -10 N"^S#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS ^^SUCCESSFUL\\. ^EQUIVALENT TO N"^L. .SKIP 1 .INDENT -10 N"^F#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS ^^FALSE\\. ^EQUIVALENT TO N"^E. .SKIP 1 .INDENT -10 N"^U#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N IS ^^UNSUCCESSFUL\\. ^^EQUIVALENT TO N"^E. .SKIP 1 .INDENT -10 N"^A#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N EQUALS AN ^^ASCII\\ ALPABETIC CHARACTER (UPPER OR LOWER CASE ^A TO ^Z). .SKIP 1 .INDENT -10 N"^D#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N EQUALS THE ^^ASCII\\ CODE FOR A DIGIT (0 TO 9). .SKIP 1 .INDENT -10 N"^R#######^EXECUTE THE FOLLOWING COMMAND STRING (TERMINATED BY AN APOSTROPHE) IF N EQUALS THE ^^ASCII\\ CODE FOR AN ALPHANUMERIC (UPPER OR LOWER CASE ^A TO ^Z OR 0 TO 9). .LEFT MARGIN 5 .PARAGRAPH ^THERE IS ONE FURTHER CONDITIONAL EXECUTION COMMAND WHICH IS NOT RELATED TO THE COMMANDS LISTED IN ^TABLE 2-12. ^THE ;N COMMAND, WHERE N IS ANY INTEGER, MAY BE INSERTED BETWEEN ANY TWO COMMANDS IN AN ITERATED COMMAND LOOP. ^IT HAS THE GENERAL FORM: .SKIP 1 .CENTER 80 MSTRING3 .SKIP 1 WHERE "M" IS THE ITERATION COUNT, "STRING1", "STRING2", AND "STRING3" ARE COMMAND STRINGS AND "N;" IS THE CONDITIONAL EXIT COMMAND. ^WHEN THE N; COMMAND IS EXECUTED, IT WILL CAUSE ^^TECO\\ TO EXIT THE COMMAND LOOP SO THAT "STRING3" WILL BE EXECUTED NEXT IF N IS GREATER THAN OR EQUAL TO ZERO. ^IF N IS LESS THAN ZERO, THE N; COMMAND IS IGNORED AND "STRING2" IS EXECUTED NEXT. ^THE SEMICOLON MAY BE PRECEDED BY AN ARGUMENT SUCH AS ^QQ (THE VALUE OF THE NUMERIC PART OF ^Q-REGISTER Q), OR THE ARGUMENT MAY BE OMITTED IF THE SEMICOLON COMMAND IS PRECEDED BY A COMMAND THAT GENERATES AN ARGUMENT, SUCH AS ANY COLON-MODIFIED SEARCH COMMAND. .PARAGRAPH ^NOTE THAT ALL UNMODIFIED SEARCH COMMANDS ENTERED WITHIN COMMAND LOOPS ARE EXECUTED AS THOUGH THEN WERE PRECEDED BY A COLON AND FOLLOWED BY A SEMICOLON. ^IF THE SEARCH COMMAND IS PRECEDED BY A COLON MODIFIER, HOWEVER, IT WILL BE EXECUTED AS IT STANDS. .PARAGRAPH ^THE CONDITIONAL EXECUTION COMMANDS WILL ACCEPT USER-SUPPLIED NUMERIC ARGUMENTS (N IN ^TABLE 2-12) OF THE SAME FORM AS MOST OTHER ^^TECO\\ COMMANDS. ^THIS IS GENERALLY A TRIVIAL CASE, HOWEVER, BECAUSE THE USER WILL KNOW IN ADVANCE WHETHER THE CONDITION IS SATISFIED, AND NEED NOT USE THE CONDITIONAL EXECUTION COMMAND. ^THE FOLLOWING SECTION INTRODUCES RUN-TIME NUMERIC QUANTITIES COMPUTED BY ^^TECO\\ WHICH MAY ALSO BE USED AS NUMERIC ARGUMENTS. .SKIP 2 .TEST PAGE 5 2.13 ^^NUMERIC ARGUMENTS\\ .PARAGRAPH ^ALMOST ALL ^^TECO\\ COMMANDS MAY BE PRECEDED BY A NUMERIC ARGUMENT WHICH GENERALLY INDICATES THE NUMBER OF ITERATIONS, OR HOW MANY TIMES THE COMMAND SHOULD BE EXECUTED. ^SOME NUMERIC ARGUMENTS MUST BE POSITIVE, WHILE OTHERS MAY BE NEGATIVE OR ZERO. ^IN ANY CASE, EVERY NUMERIC ARGUMENT IS STORED AS A SINGLE 16-BIT WORD. .PARAGRAPH ^THIS LEADS TO AN IMPORTANT RESTRICTION ON THE MAXIMUM SIZE OF ANY NUMERIC ARGUMENT. ^COMMANDS WHICH REQUIRE POSITIVE ARGUMENTS MUST HAVE AN ARGUMENT IN THE RANGE 0<=N<=65535, SINCE 65535 IS THE LARGEST NUMBER WHICH MAY BE STORED IN ONE 16-BIT WORD. ^COMMANDS WHICH HAVE POSITIVE OR NEGATIVE ARGUMENTS REQUIRE AN ARGUMENT IN THE RANGE -32768<=N<=32767, BECAUSE -32768 IS THE SMALLEST NUMBER WHICH MAY BE STORED IN 16 BITS USING 2'S COMPLEMENT NOTATION, WHILE 32767 IS THE LARGEST NUMBER WHICH MAY BE STORED IN THIS MANNER. .PARAGRAPH ^^TECO\\ MAINTAINS SEVERAL INTERNAL COUNTERS WHICH RECORD CONDITIONS WITHIN THE TEXT BUFFER. ^EACH OF THE COUNTERS HAS A ONE-CHARACTER NAME WHICH IS EQUIVALENT TO THE CURRENT CONTENTS OF THE COUNTER. ^THESE CHARACTERS MAY BE ENTERED AS NUMERIC ARGUMENTS TO ^^TECO\\ COMMANDS. ^WHEN THE COMMAND IS EXECUTED, THE CURRENT VALUE OF THE DESIGNATED COUNTER IS SUBSTITUTED FOR THE CHARACTER AND USED IN THE NUMERIC ARGUMENT OF THE COMMAND. .PARAGRAPH ^SOME OF THE CHARACTERS WHICH STAND FOR SPECIFIC VALUES ASSOCIATED WITH THE TEXT BUFFER HAVE BEEN INTRODUCED EARLIER IN THIS MANUAL. ^FOR EXAMPLE, THE DOT CHARACTER (.), WHICH REFERENCES A COUNTER THAT ALWAYS CONTAINS THE NUMBER OF CHARACTERS BETWEEN THE BEGINNING OF THE BUFFER AND THE CURRENT POINTER POSITION, MAY BE USED IN THE ARGUMENT OF A ^T COMMAND. ^THE COMMAND ".,.+5^T" CAUSES THE 5 CHARACTERS FOLLOWING THE BUFFER POINTER TO BE TYPED OUT. ^WHEN THIS COMMAND IS EXECUTED, THE NUMBER OF CHARACTERS PRECEDING THE BUFFER POINTER IS SUBSTITUTED (TWICE) FOR THE "DOT". ^THE ADDITION IS THEN CARRIED OUT, AND THE COMMAND IS EXECUTED AS THOUGH IT WERE OF THE FORM "M,N^T". .PARAGRAPH ^TABLE 2-13^A LISTS ALL OF THE CHARACTERS WHICH HAVE SPECIAL NUMERIC VALUES. ^ANY OF THESE CHARACTERS MAY BE USED AS NUMERIC ARGUMENTS IN PLACE OF THE VALUES THEY REPRESENT. .SKIP 2 .TEST PAGE 7 .CENTER 80 ^^TABLE 2-13^A: CHARACTERS ASSOCIATED WITH NUMERIC QUANTITIES\\ .LEFT MARGIN 15 .SKIP 1 .INDENT -10 ^^CHARACTER######FUNCTION\\ .SKIP 1 .INDENT -10 ^B#########^ALWAYS EQUIVALENT TO ZERO. ^THUS, ^B REPRESENTS THE POSITION AT THE BEGINNING OF THE BUFFER, PRECEDING THE FIRST CHARACTER IN THE BUFFER. .SKIP 1 .INDENT -10 ^Z#########^EQUIVALENT TO THE NUMBER OF CHARACTERS CURRENTLY CONTAINED IN THE BUFFER. ^THUS, ^Z REPRESENTS THE POSITION AT THE END OF THE BUFFER, FOLLOWING THE LAST CHARACTER IN THE BUFFER. .SKIP 1 .INDENT -10 .#########^EQUIVALENT TO THE NUMBER OF CHARACTERS BETWEEN THE BEGINNING OF THE BUFFER AND THE CURRENT POSITION OF THE POINTER, THUS REPRESENTS THE CURRENT POSITION OF THE POINTER. .SKIP 1 .INDENT -10 ^H#########^EQUIVALENT TO THE NUMERIC PAIR "^B,^Z", OR "FROM THE BEGINNING OF THE BUFFER UP TO THE END OF THE BUFFER." ^THUS, ^H REPRESENTS THE WHOLE BUFFER. .SKIP 1 .INDENT -10 _^^Z########^CONTROL-^Z (OR CARET/^Z) IS EQUIVALENT TO THE NUMBER OF CHARACTERS PRESENTLY STORED IN THE ^Q-REGISTER STORAGE AREA, INCLUDING REQUIREMENTS FOR THE COMMAND STRING CONTAINING THE _^^Z CHARACTER. .SKIP 1 .INDENT -10 N^A########^WHERE N IS A POSITIVE INTEGER. ^EQUIVALENT TO THE ^^ASCII\\ CODE FOR THE N+1TH CHARACTER FOLLOWING THE CURRENT POSITION OF THE POINTER. .SKIP 1 .INDENT -10 _^^E########^CONTROL-^E (CARET/^E) IS EQUIVALENT TO -1 IF THE BUFFER CURRENTLY CONTAINS A FULL PAGE OF TEXT (WHICH WAS TERMINATED BY A FORM FEED IN THE INPUT FILE) OR 0 IF THE BUFFER CONTAINS ONLY PART OF A PAGE OF TEXT (WHICH EITHER FILLED THE BUFFER TO CAPACITY BEFORE THE TERMINATING FORM FEED WAS READ OR WHICH WAS NOT TERMINATED BY A FORM FEED). ^THE _^^E FLAG IS TESTED BY ^N, ^E^C, AND ^E^X COMMANDS TO DETERMINE WHETHER A FORM FEED SHOULD BE APPENDED TO THE CONTENT OF THE BUFFER ON OUTPUT. .SKIP 1 .INDENT -10 _^^F########^CONTROL-^F (^CARET/^F) IS EQUIVALENT TO THE CURRENT VALUE OF THE CONSOLE SWITCH REGISTER. .SKIP 1 .INDENT -10 _^_^^X#######^THE COMBINATION OF THE DOUBLE CARET (DOUBLE UPARROW) FOLLOWED BY ANY CHARACTER IS EQUIVALENT TO THE VALUE OF THE ^^ASCII\\ CODE FOR THE CHARACTER. ^THE "^X" IN THIS EXAMPLE MAY BE ANY CHARACTER EXCEPT CONTROL-^C. .SKIP 1 .INDENT -10 _\#########^A BACKSLASH CHARACTER WHICH IS NOT PRECEDED BY A NUMERIC ARGUMENT IS EQUIVALENT TO THE VALUE OF THE DIGIT STRING (IF ANY) THAT BEGINS WITH THE CHARACTER IMMEDIATELTY FOLLOWING THE BUFFER POINTER AND IS TERMINATED BY THE NEXT CHARACTER THAT IS NOT A DIGIT. ^THE FIRST CHARACTER MAY BE A DIGIT OR ONE OF THE CHARACTERS + OR -. ^AS EACH BACKSLASH IS EVALUATED, ^^TECO\\ MOVES THE BUFFER POINTER TO A POSITION IMMEDIATELY FOLLOWING THE DIGIT STRING. ^IF THERE IS NO DIGIT STRING FOLLOWING THE POINTER, THE BACKSLASH IS EQUIVALENT TO ZERO AND THE POINTER POSITION REMAINS UNCHANGED. .SKIP 1 .INDENT -10 _^^T########^CONTROL-^T (CARET/^T) IS EQUIVALENT TO THE ^^ASCII\\ CODE FOR THE NEXT CHARACTER TYPED AT THE TERMINAL. ^CONTROL-^T MAY BE ENTERED IN THE NUMERIC ARGUMENT OF ANY COMMAND. ^WHEN ^^TECO\\ EXECUTES A COMMAND STRING, EVERY _^^T CHARACTER ENCOUNTERED CAUSES IT TO PAUSE AND ACCEPT ONE CHARACTER TYPED AT THE TERMINAL. ^THE ^^ASCII\\ CODE FOR THIS CHARACTER IS THEN SUBSTITUTED FOR THE _^^T. .SKIP 1 .INDENT -10 _^^V########^CONTROL-^V (CARET/^V) IS EQUIVALENT TO THE VERSION NUMBER OF THE VERSION OF ^^TECO\\ WHICH IS CURRENTLY BEING RUN. ^THIS MANUAL DESCRIBES ^^RSX-11D TECO\\ VERSION 14. .SKIP 1 .INDENT -10 _^^H########^CONTROL-^H (CARET/^H) IS EQUIVALENT TO A VALUE OF ELAPSED TIME IN SECONDS SINCE MIDNIGHT DIVIDED BY TWO. .SKIP 1 .INDENT -10 _^^B########^CONTROL-^B (CARET/^B) IS EQUIVALENT TO THE CURRENT DATE VIA THE FOLLOWING EQUATION: _^^B = DAY + (MONTH*32) + ((YEAR-1900)*512) .SKIP 1 .INDENT -10 ^MQ########^THE ^MQ COMMAND (EXECUTE THE CONTENT OF THE TEXT STORAGE AREA OF ^Q-REGISTER "Q" AS A COMMAND STRING) MAY RETURN A NUMERIC VALUE IF THE LAST COMMAND IN THE STRING RETURNS A NUMERIC VALUE AND IS NOT FOLLOWED BY AN ^^ALT MODE\\. .LEFT MARGIN 5 .PARAGRAPH ^THE NUMERIC ARGUMENT OF A ^^TECO\\ COMMAND MAY CONSIST OF A SINGLE INTEGER, ANY OF THE CHARACTERS LISTED IN ^TABLE 2-13^A, OR AN ARITHMETIC COMBINATION OF INTEGERS AND THE CHARACTERS LISTED IN ^TABLE 2-13^A. ^IF AN ARITHMETIC EXPRESSION IS SUPPLIED AS A NUMERIC ARGUMENT, ^^TECO\\ WILL EVALUATE THE EXPRESSION. ^ALL ARITHMETIC EXPRESSIONS ARE EVALUATED FROM LEFT TO RIGHT. ^PARENTHESES MAY BE USED TO OVERRIDE THE NORMAL ORDER OF EVALUATING AN EXPRESSION. ^IF PARENTHESES ARE USED, ALL OPERATIONS WITHIN THE PARENTHESES ARE PERFORMED, LEFT TO RIGHT, BEFORE PERFORMING OPERATIONS OUTSIDE THE PARENTHESES. ^PARENTHESES MAY BE NESTED, IN WHICH CASE THE INNERMOST EXPRESSION CONTAINED BY PARENTHESES WILL BE EVALUATED FIRST. ^TABLE 2-13^B LISTS ALL OF THE ARITHMETIC OPERATORS THAT MAY BE USED IN ARITHMETIC EXPRESSIONS. .SKIP 2 .TEST PAGE 7 .CENTER 80 ^^TABLE 2-13^B: ARITHMETIC OPERATORS\\ .LEFT MARGIN 25 .SKIP 1 .INDENT -20 ^^OPERATOR##EXAMPLE########FUNCTION\\ .SKIP 1 .INDENT -20 +#########+2=2######^IGNORED IF USED BEFORE THE FIRST TERM IN AN EXPRESSION. .SKIP 1 .INDENT -20 +#########5+6=11####^ADDITION, IF USED BETWEEN TERMS. .SKIP 1 .INDENT -20 -#########-2=-2#####^NEGATION, IF USED BEFORE THE FIRST TERM IN AN EXPRESSION. .SKIP 1 .INDENT -20 -#########8-2=6#####^SUBTRACTION, IF USED BETWEEN TERMS .SKIP 1 .INDENT -20 *#########8*2=16####^MULTIPLICATION. USED BETWEEN TERMS. .SKIP 1 .INDENT -20 /#########8/3=2#####^INTEGER DIVIDE AND DROP THE REMAINDER. ^USED BETWEEN TERMS. .SKIP 1 .INDENT -20 _&#########12_&10=8###^BITWISE LOGICAL ^^AND\\ OF THE BINARY REPRESENTATION OF THE TWO TERMS. ^USED BETWEEN TERMS. .SKIP 1 .INDENT -20 _##########12_#10=14##^BITWISE LOGICAL ^O^R OF THE BINARY REPRESENTATION OF TWO TERMS. ^USED BETWEEN TERMS. .SKIP 1 .INDENT -20 _^__########5_^__=-6####^UNITARY ONE'S COMPLEMENT. ^USED BEFORE EXPRESSIONS. .LEFT MARGIN 5 .PARAGRAPH ^TABLE 2-13^C LISTS TWO COMMANDS WHICH MAY BE USED TO FACILITATE ENTERING ARITHMETIC EXPRESSIONS INTO ^^TECO\\ COMMAND STRINGS. .SKIP 2 .TEST PAGE 9 .CENTER 80 ^^TABLE 2-13C: RADIX CONTROL COMMANDS\\ .LEFT MARGIN 15 .SKIP 1 .INDENT -10 ^^COMMAND########FUNCTION\\ .SKIP 1 .INDENT -10 N=########WHERE N IS AN ARITHMETIC EXPRESSION WHICH MAY CONTAIN THE OPERATORS LISTED IN ^TABLE 2-13^B. ^UPON EXECUTION, THIS COMMAND CAUSES THE VALUE OF THE EXPRESSION TO BE TYPED OUT AT THE TERMINAL. .SKIP 1 .INDENT -10 _^^O########^CONTROL-^O (CARET/^O) CAUSES ALL SUBSEQUENT NUMERIC INPUT TO BE ACCEPTED AS OCTAL NUMBERS. ^THIS COMMAND MUST NOT BE TYPED WHILE ^^TECO\\ IS EXECUTING A ^T COMMAND. ^THE OCTAL RADIX WILL CONTINUE TO BE USED UNTIL THE NEXT _^^D COMMAND IS EXECUTED. .SKIP 1 .INDENT -10 _^^D########^CONTROL-^D (CARET/^D) CAUSES ALL SUBSEQUENT NUMERIC INPUT TO BE ACCEPTED AS DECIMAL NUMBERS. ^THIS IS THE INITIAL SETTING. .SKIP 1 .INDENT -10 N_\########^WHERE N IS ANY ARITHMETIC EXPRESSION. ^THE BACKSLASH COMMAND (PRECEDED BY AN EXPRESSION) INSERTS THE VALUE OF N INTO THE TEXT BUFFER AT THE CURRENT POSITION OF THE POINTER, LEAVING THE POINTER POSITIONED AFTER THE LAST DIGIT OF THE INSERTION. .LEFT MARGIN 5 .PARAGRAPH ^SOME ^^TECO\\ COMMANDS GENERATE NUMERIC ARGUMENTS WHICH THEY PASS ON TO SUBSEQUENT COMMANDS. ^AN EXAMPLE IS ANY COLON-MODIFIED SEARCH COMMAND, WHICH CAUSES THE NEXT SEQUENTIAL COMMAND TO BE EXECUTED WITH AN ARGUMENT OF -1 OR 0, DEPENDING UPON THE OUTCOME OF THE SEARCH. ^COMMANDS OF THIS SORT ARE VERY USEFUL, BUT OCCASIONALLY IT MAY BE UNDESIRABLE TO HAVE ARGUMENTS PASSED IN THIS MANNER. ^A SINGLE ^ALT MODE\\ CHARACTER MAY BE INSERTED BETWEEN ANY TWO COMMANDS IN A COMMAND STRING, AS LONG AS IT IS NOT PLACED ADJACENT TO ANOTHER ^^ALT MODE\\ CHARACTER. ^THIS ^^ALT MODE\\ HAS NO EFFECT ON THE INDIVIDUAL COMMANDS, HOWEVER A NUMERIC ARGUMENT WILL NEVER BE PASSED ACROSS THE EXTRANEOUS ^^ALT MODE\\. .SKIP 2 .TEST PAGE 5 2.14 ^^PROGRAMMING AIDS\\ .PARAGRAPH ^THE CHARACTERS CARRIAGE RETURN, LINE FEED, VERTICAL TAB, AND SPACE ARE IGNORED IN COMMAND STRINGS, EXCEPT WHEN THEY APPEAR AS PART OF A TEXT ARGUMENT. ^THESE CHARACTERS MAY BE INSERTED BETWEEN ANY TWO ^^TECO\\ COMMANDS TO LEND CLARITY TO A LONG COMMAND STRING. ^THE CARRIAGE RETURN/LINE FEED COMBINATION IS PARTICULARLY USEFUL FOR TYPING COMMAND STRINGS WHICH ARE TOO LONG TO FIT ON A SINGLE LINE. .PARAGRAPH ^ONE OF THE MOST POWERFUL FEATURES OF ^^TECO\\ IS THE ABILITY TO STORE VERY LONG COMMAND STRINGS SO THAT A GIVEN SEQUENCE OF COMMANDS MAY BE EXECUTED WHENEVER NEEDED. ^LONG COMMAND STRINGS MAY BE THOUGHT OF AS EDITING PROGRAMS AND, LIKE ANY OTHER TYPE OF PROGRAM, THEY SHOULD BE DOCUMENTED BY MEANS OF COMMENTS. .PARAGRAPH ^COMMENTS MAY BE INSERTED BETWEEN ANY TWO COMMANDS BY USING A TAG CONSTRUCTION OF THE FORM: .SKIP 1 .CENTER 80 ^^!THIS IS A COMMENT!\\ .SKIP 1 ^COMMENTS MAY CONTAIN ANY NUMBER OF CHARACTERS AND ANY CHARACTERS EXCEPT THE SPECIAL CHARACTERS. ^IT IS OFTEN CONVENIENT TO INCLUDE CARRIAGE RETURN AND LINE FEED CHARACTERS WITHIN THE COMMENTS SO THAT THE COMMAND STRING LOOKS LIKE: .SKIP 1 .LEFT MARGIN 15 .NOFILL ^^TECO\\ COMMANDS!######^THIS COMMENT DESCRIBES LINE 1 !^^TECO\\ COMMANDS!#####^THIS COMMENT DESCRIBES LINE 2 !MORE COMMANDS! !$$!################END OF COMMENT STRING! .FILL .LEFT MARGIN 5 .PARAGRAPH ^THE CONTROL-^A COMMAND MAY BE USED TO PRINT OUT A STATEMENT AT ANY POINT DURING THE EXECUTION OF A COMMAND STRING. ^THE CONTROL-^A COMMAND HAS THE GENERAL FORM: .SKIP 1 .INDENT -5 ####################################_^^ATEXT_^^A .SKIP 1 WHERE THE FIRST _^^A IS THE ACTUAL COMMAND, WHICH MAY BE ENTERED BY STRIKING THE CONTROL KEY AND THE ^A KEY SIMULTANEOUSLY OR BY TYPING A CARET (UPARROW) FOLLOWED BY AN ^A CHARACTER. ^THE SECOND CONTROL-^A CHARACTER IS THE COMMAND TERMINATOR, WHICH MUST BE ENTERED BY TYPING THE CONTROL KEY AND THE ^A KEY SIMULTANEOUSLY. ^THE MESSAGE WHICH APPEARS BETWEEN THE CONTROL-^A CHARACTERS MAY CONTAIN ANY CHARACTERS EXCEPT THE SPECIAL CHARACTERS AND THE _^^A CHARACTER. ^UPON EXECUTION, THIS COMMAND CAUSES ^^TECO\\ TO PRINT THE SPECIFIED MESSAGE AT THE TERMINAL. .PARAGRAPH ^THE _^^AMESSAGE_^^A COMMAND IS PARTICULARLY USEFUL WHEN IT PRECEDES A COMMAND WHOSE NUMERIC ARGUMENT CONTAINS _^^T OR _^^F CHARACTERS. ^THE MESSAGE MAY CONTAIN INSTRUCTIONS NOTIFYING THE COMPUTER OPERATOR WHAT SORT OF INPUT IS REQUIRED. .PARAGRAPH ^A QUESTION MARK ENTERED BETWEEEN ANY TWO COMMANDS IN A COMMAND STRING CAUSES ^^TECO\\ TO PRINT ALL SUBSEQUENT COMMANDS AT THE TERMINAL AS THEY ARE EXECUTED. ^COMMANDS WILL BE PRINTED AS THEY ARE EXECUTED UNTIL ANOTHER QUESTION MARK CHARACTER IS ENCOUNTERED. ^THE SECOND QUESTION MARK CHARACTER MAY BE IN THE SAME COMMAND STRING AS THE FIRST QUESTION MARK, OR IT MAY APPEAR IN A LATER COMMAND STRING. ^IT MAY NOT BE THE FIRST CHARACTER TYPED AFTER A ^^TECO\\-GENERATED ERROR MESSAGE, HOWEVER. .PARAGRAPH ^IF AN ERROR IS TYPED WHILE ENTERING A COMMAND STRING, THE ERROR MAY BE CORRECTED AT ANY TIME BEFORE THE DOUBLE ^^ALT MODE\\ WHICH TERMINATES THE COMMAND STRING IS TYPED. ^CHARACTERS MAY BE DELETED INDIVIDUALLY BY STRIKING THE ^^RUBOUT\\ KEY. ^EACH DEPRESSION OF THE ^^RUBOUT\\ KEY DELETES ONE CHARACTER, BEGINNING WITH THE LAST CHARACTER TYPED, AND CAUSES THE DELETED CHARACTER TO BE PRINTED AT THE TERMINAL. ^AN ENTIRE LINE OF A COMMAND STRING MAY BE DELETED BY TYPING CONTROL-^U. ^IF AN ENTIRE COMMAND STRING IS DELETED IN ONE OF THESE MANNERS, ^^TECO\\ RESPONDS BY PRINTING A NEW ASTERISK AT THE LEFT MARGIN. .PARAGRAPH ^TYPING ^CONTROL-^G CAUSES ^^TECO\\ TO RETYPE THE LINE CURRENTLY BEING INPUT. _^^G IS FUNCTIONALLY EQUIVALENT TO THE ^R^S^X-11^D MULTI-^T^T^Y _^^R COMMAND. ^THE CARET FORM OF THE CONTROL-^G MAY NOT BE USED FOR THIS COMMAND. .PARAGRAPH ^TYPING TWO SUCCESSIVE CONTROL-^G CHARACTERS CAUSES THE CURRENT COMMAND STRING TO BE ERASED COMPLETELY. ^THE DOUBLE CONTROL-^G COMMAND MUST BE PRODUCED BY HOLDING THE CONTROL KEY DEPRESSED WHILE STRIKING THE ^G KEY TWICE (IF THE TERMINAL HAS A BELL, IT WILL RING). ^THE CARET FORM OF THE CONTROL-^G MAY NOT BE USED FOR THIS COMMAND. .PARAGRAPH ^AFTER AN ERROR (OR AFTER _^^G_^^G TO CANCEL A COMMAND), THE PREVIOUS COMMAND BUFFER CONTENTS MAY BE RECOVERED BY IMMEDIATELY TYPING "*Q", WHERE "Q" IS ANY ^Q-REGISTER NAME. ^THIS PLACES THE COMMAND BUFFER CONTENTS INTO THE NAMED ^Q-REGISTER. .SKIP 2 .TEST PAGE 9 2.15 ^^ERROR MESSAGES\\ .PARAGRAPH ^WHEN ^^TECO\\ ENCOUNTERS AN ILLEGAL COMMAND OR A COMMAND THAT CANNOT BE EXECUTED, AN ERROR MESSAGE IS PRINTED AT THE TERMINAL. ^ERROR MESSAGES ARE OF THE FORM: .SKIP 1 ^^?XXX MESSAGE\\ .SKIP 1 WHERE "^^XXX\\" IS AN ERROR CODE AND "^^MESSAGE\\" IS AN EXPLANATORY MESSAGE. ^WHEN AN ERROR MESSAGE IS GENERATED, THE COMMAND TO WHICH IT REFERS IS NOT EXECUTED, THE REST OF THE CURRENT COMMAND STRING IS IGNORED, AND ^^TECO\\ PRINTS AN ASTERISK AT THE LEFT MARGIN TO INDICATE THAT IT IS READY TO ACCEPT FURTHER COMMANDS. .PARAGRAPH ^IN SOME CASES IT MAY BE DIFFICULT TO DETERMINE WHICH COMMAND IN A LONG COMMAND STRING RESULTED IN AN ERROR MESSAGE. ^TYPING A QUESTION MARK IMMEDIATELY AFTER THE ^^TECO\\-GENERATED ERROR MESSAGE CAUSES ^^TECO\\ TO PRINT THE CURRENT COMMAND STRING UP TO AND INCLUDING THE ERRONEOUS CHARACTER. ^WHEN USED IN THIS MANNER, THE QUESTION MARK MUST BE THE FIRST CHARACTER TYPED AFTER THE ERROR MESSAGE IS PRINTED. ^IT IS NOT NECESSARY TO FOLLOW THE QUESTION MARK WITH AN ^^ALT MODE\\. .PARAGRAPH ^IN GENERAL, ^^TECO\\ COMMAND STRINGS SHOULD BE LIMITED TO A MAXIMUM OF ABOUT 2000 CHARACTERS. ^COMMAND STRINGS WHICH EXCEED 2000 CHARACTERS IN LENGTH SHOULD BE SPLIT INTO SMALLER STRINGS. ^LONG COMMAND STRINGS ARE IMPRACTICAL BECAUSE THE PROBABILITY OF A COMMAND ERROR IS INCREASED AND BECAUSE A STRING WHICH CONTAINS MORE THAN 2000 CHARACTERS MAY BE TOO LONG TO BE STORED IN A ^Q-REGISTER. .PARAGRAPH ^^TECO\\ RESERVES A LIMITED AMOUNT OF MEMORY FOR COMMAND STRING STORAGE. ^IF A VERY LONG COMMAND STRING (OR A LONG INSERTION COMMAND) USES ALL OF THE COMMAND STRING STORAGE LOCATIONS, ^^TECO\\ PRINTS ONE CONTROL-^G CHARACTER AFTER EVERY ADDITIONAL CHARACTER THAT IS ENTERED. ^SHOULD THIS OCCUR, THE CURRENT COMMAND STRING WILL BE LOST. .SKIP 2 .TEST PAGE 12 2.16 ^^MANIPULATING LARGE PAGES\\ .PARAGRAPH ^^TECO\\ IS DESIGNED TO OPERATE MOST EFFICIENTLY WHEN EDITING FILES THAT CONTAIN NO MORE THAN ABOUT 11000 CHARACTERS PER PAGE.[1] .FOOTNOTE 6 .LEFT MARGIN 5 -------------------- .SKIP 1 [1]. ^^TECO\\ STORAGE INCLUDES Q-REGISTER STORAGE AND BUFFER SPACE. ^THE 11000-CHARACTER LIMITATION REPRESENTS THE APPROXIMATE TOTAL STORAGE CAPACITY OF ^^TECO\\ WHEN BUILT USING THE COMMANDS INCLUDED IN ^APPENDIX ^D. ! ^IF ANY PAGE OF AN INPUT FILE CONTAINS MORE THAN 11000 CHARACTERS, THE VARIOUS ^^TECO\\ INPUT COMMANDS MAY TERMINATE READING THAT PAGE INTO MEMORY WHEN THE FIRST LINE FEED IS ENCOUNTERED AFTER THE BUFFER IS 2/3 FULL OR IF A POINT 128 CHARACTERS FROM THE END OF THE BUFFER IS REACHED. .PARAGRAPH ^MOST OF THE ^^TECO\\ OUTPUT COMMANDS APPEND A FORM FEED TO THE CONTENT OF THE BUFFER WHENEVER A PAGE OF TEXT IS WRITTEN ONTO THE OUTPUT FILE. ^IF AN INPUT FILE CONTAINS PAGES WHICH EXCEED THE BUFFER CAPACITY, THESE OUTPUT COMMANDS WILL CAUSE FORM FEED CHARACTERS TO BE INSERTED INTO THE FILE AT LOCATIONS WHERE THEY MAY NOT BE DESIRED. ^TO PREVENT THIS, THE USER MUST UNDERSTAND EXACTLY HOW THE OUTPUT COMMANDS OPERATE. ^THESE COMMANDS ARE DESCRIBED BRIEFLY IN ^TABLE 2-16. .SKIP 2 .CENTER 80 ^^TABLE 2-16: FORM FEED PROCESSING BY OUTPUT COMMANDS\\ .LEFT MARGIN 35 .SKIP 1 .INDENT -30 ^^OUTPUT COMMAND#####################FORM FEED PROCESSING\\ .SKIP 1 .INDENT -30 ^P, N^P, ^P^W AND N^P^W#############^ALWAYS APPENDS A FORM FEED CHARACTER TO THE NEXT CONTAINED IN THE BUFFER, REGARDLESS OF WHETHER THIS TEXT ACTUALLY CONSTITUTES A COMPLETE PAGE OF THE FILE. ^THAT IS, A FORM FEED IS APPENDED ON OUTPUT EVEN THOUGH ONE MAY NOT HAVE BEEN PRESENT UPON INPUT. .SKIP 1 .INDENT -30 ^H^P, ^H^P^W, M,N^P AND M,N^P^W#######^NEVER APPENDS A FORM FEED CHARACTER TO THE TEXT CONTAINED IN THE BUFFER. .SKIP 1 .INDENT -30 ^N, ^E^C AND ^E^X##################^IF THE TEXT CONTAINED IN THE BUFFER WAS FOLLOWED BY A FORM FEED CHARACTER IN THE INPUT FILE, A FORM FEED WILL BE APPENDED TO THIS TEXT UPON OUTPUT. ^IF THIS TEXT WAS NOT FOLLOWED BY A FORM FEED, NO FORM FEED WILL BE APPENDED. .LEFT MARGIN 5 .PARAGRAPH ^IF IT BECOMES NECESSARY TO EDIT TEXT THAT CONSISTS OF LARGE PAGES WITHOUT INTRODUCING EXTRANEOUS FORM FEED CHARACTERS INTO THE OUTPUT, THIS MAY BE ACCOMPLISHED BY AVOIDING ALL OUTPUT COMMANDS EXCEPT THE ^N, ^E^C, AND ^E^X COMMANDS. ^FOR EXAMPLE, IF USE OF A ^P COMMAND WOULD INTRODUCE AN EXTRANEOUS FORM FEED, USE AN ^N COMMAND, INSTEAD, TO SEARCH FOR A CHARACTER STRING CONTAINED IN THE NEXT PAGE OF THE INPUT FILE. .SKIP 2 .TEST PAGE 6 2.17 ^^TECHNIQUES AND EXAMPLES\\ .PARAGRAPH ^^TECO\\ MAY BE USED IN THREE WAYS. ^THE MOST ELEMENTARY APPLICATION, DESCRIBED IN ^SECTION ^I OF THIS MANUAL, INVOLVES USING ^^TECO\\ TO CREATE AND EDIT ^^ASCII\\ FILES ON-LINE. ^THE USER ENTERS SHORT COMMAND STRINGS, OFTEN CONSISTING OF A SINGLE COMMAND, AND PROCEEDS FROM TASK TO TASK UNTIL THE FILE IS COMPLETELY EDITED. .PARAGRAPH ^SINCE EVERY EDITING JOB IS SIMPLY A LONG SEQUENCE OF ^^TECO\\ COMMANDS, AN ENTIRE JOB MAY BE ACCOMPLISHED WITH ONE LONG COMMAND STRING CONSISTING OF ALL OF THE SHORT COMMAND STRINGS PLACED END TO END WITH THE INTERVENING DOUBLE ^^ALT MODE\\ CHARACTERS REMOVED. ^THIS LEADS TO THE CONCEPT OF A ^^TECO\\ EDITING PROGRAM, WHICH IS SIMPLY A LONG COMMAND STRING THAT PERFORMS A CERTAIN EDITING TASK. ^EDITING PROGRAMS MAY BE WRITTEN (USING ^^TECO\\) AND STORED IN THE SAME MANNER AS ANY OTHER ^^ASCII\\ FILE. ^WHENEVER THE PROGRAM IS NEEDED, IT MAY BE READ INTO THE BUFFER AS TEXT, STORED IN A ^Q-REGISTER, AND EXECUTED BY AN ^MQ COMMAND (WHERE "Q" IS THE ^Q-REGISTER NAME). .PARAGRAPH ^THIS IS FINE FOR CLEAR-CUT EDITING ASSIGNMENTS, SUCH AS CONVERTING FROM ONE FORMAT TO ANOTHER OR EDITING CERTAIN CHARACTERS OUT OF A FILE, BUT MANY EDITING JOBS ARE SO COMPLEX THAT A GIVEN EDITING PROGRAM WILL ONLY SOLVE A SMALL CLASS OF PROBLEMS. ^THE SOLUTION, IN THIS CASE, IS TO WRITE VERY SPECIALIZED "EDITING SUBROUTINES." ^^TECO\\ SUBROUTINES MIGHT PERFORM SUCH ELEMENTARY FUNCTIONS AS REPLACING EVERY OCCURRENCE OF TWO OR MORE CONSECUTIVE SPACES WITH A TABULATION CHARACTER, FOR EXAMPLE, OR ENSURING THAT WORDS ARE NOT HYPHENATED ACROSS A PAGE BOUNDARY. ^WHEN AN EDITING PROBLEM ARISES, THE RIGHT COMBINATION OF SUBROUTINES MAY BE LOADED INTO VARIOUS ^Q-REGISTERS, AUGMENTED WITH ADDITIONAL COMMANDS IF NECESSARY, AND CALLED BY A "MAINLINE" COMMAND STRING. .PARAGRAPH ^EDITING SUBROUTINES ARE ESSENTIALLY MACROS; THAT IS, SEQUENCES OF COMMANDS WHICH PERFORM COMMONLY REQUIRED EDITING FUNCTIONS. ^THUS THE THIRD AND MOST POWERFUL APPLICATION OF ^^TECO\\ IS THE CREATION AND USE OF A MACRO LIBRARY. ^AS EACH EDITING JOB IS UNDERTAKEN, THE USER MAY LOOK FOR SEQUENCES OF OPERATIONS WHICH MIGHT BE REQUIRED IN FUTURE EDITING ASSIGNMENTS. ^ALL OF THE ^^TECO\\ COMMANDS REQUIRED TO PERFORM SUCH AN OPERATION MAY BE LOADED INTO A ^Q-REGISTER AND EXECUTED BY MEANS OF AN ^MQ OR N^MQ COMMAND. ^WHEN THE JOB IS FINISHED, THE CONTENT OF ANY ^Q-REGISTER WHICH CONTAINS A USEFUL MACRO MAY BE WRITTEN ONTO AN OUTPUT FILE (VIA THE BUFFER) AND SAVED IN THE MACRO LIBRARY. ^THE N^MQ COMMAND, WHICH WAS DESIGNED TO FACILITATE USE OF MACROS, PERMITS ONE RUN-TIME NUMERIC ARGUMENT TO BE PASSED TO THE MACRO. .PARAGRAPH ^THE FOLLOWING EXAMPLES ARE INTENDED TO ILLUSTRATE SOME OF THE TECHNIQUES DISCUSSED EARLIER. ^IT WOULD NOT BE PRACTICAL TO INCLUDE EXAMPLES OF THE USE OF EVERY ^^TECO\\ COMMAND, SINCE MOST OF THE COMMANDS ADMIT TO MANY DIVERSE APPLICATIONS. ^INSTEAD, USERS ARE ENCOURAGED TO EXPERIMENT WITH THE INDIVIDUAL COMMANDS. .SKIP 2 .TEST PAGE 4 ^^EXAMPLE 1: SPLITTING, MERGING, AND REARRANGING FILES\\ .PARAGRAPH ^ASSUME THAT THE USER HAS A FILE NAMED ^^PROGRAM.DAT\\ ON THE SYSTEM DISK AND THAT THIS FILE CONTAINS DATA IN THE FOLLOWING FORM: .SKIP 1 ^^AB#FORM#CD#FORM#EF#FORM#GH#FORM#IJ#FORM#KL#FORM#MN#FORM#OP\\ .SKIP 1 WHERE EACH OF THE LETTERS ^A, ^B, ^C ETC., REPRESENTS 20 LINES OF TEXT AND ^^FORM\\ REPRESENTS A FORM FEED CHARACTER. ^THE USER INTENDS TO REARRANGE THE FILE SO THAT IT APPEARS IN THE FOLLOWING FORMAT: .SKIP 1 ^^AOB#FORM#D#FORM#MN#FORM#EF#FORM#ICJ#FORM#KL#FORM#P#FORM#GH\\ .SKIP 1 ^THE FOLLOWING SEQUENCE OF COMMANDS WILL ACHIEVE THIS REARRANGEMENT. (SEARCH COMMAND ARGUMENTS ARE NOT LISTED EXPLICITLY.) .LEFT MARGIN 25 .SKIP 1 .INDENT -20 ^^MCR>TEC\\#############^CALL ^^TECO.\\ .INDENT -20 *^^EBPROGRAM.DAT$Y$$##S\\PECIFY INPUT FILE AND GET FIRST PAGE. .INDENT -20 *^N^C$$###############^SEARCH FOR A CHARACTER STRING IN ^C TO WRITE ^A AND ^B ON THE OUTPUT FILE. .INDENT -20 *^J20^X1$$############^SAVE ALL OF ^C IN ^Q-REGISTER 1. .INDENT -20 *20^K$$##############^DELETE ^C FROM THE BUFFER. .INDENT -20 *^N^G$$###############^SEARCH FOR A CHARACTER STRING IN ^G TO WRITE ^D, ^E, AND ^F ON THE OUTPUT FILE. .INDENT -20 *^H^X2$$##############^S^AVE ^G AND ^H IN ^Q-REGISTER 2. .INDENT -20 *^Y$$################^DELETE ^G^H FROM THE BUFFER AND READ ^I^J. .INDENT -20 *20^L$$##############^MOVE THE POINTER TO THE BEGINNING OF ^J. .INDENT -20 *^G1$$###############^INSERT ^C, WHICH WAS STORED IN ^Q-REGISTER 1. .INDENT -20 *^N^M$$###############^SEARCH FOR A CHARACTER STRING IN ^M TO WRITE ^I^C^J AND ^K^L ON THE OUTPUT FILE. .INDENT -20 *^H^X1$$##############^SAVE ^M^N IN ^Q-REGISTER 1 (THE PREVIOUS CONTENT IS OVERWRITEN). .INDENT -20 *^Y$$################^DELETE ^M^N AND READ ^O^P .INDENT -20 *^J20^X3$$############^SAVE ALL OF ^O IN ^Q-REGISTER 3. .INDENT -20 *20^K$$##############^DELETE ^O FROM THE BUFFER. .INDENT -20 *^P$$################^WRITE ^P ONTO THE OUTPUT FILE, LEAVING THE BUFFER CLEARED (HTE INPUT FILE IS EXHAUSTED). .INDENT -20 *^G2$$###############^BRING ^G^H INTO THE BUFFER FROM ^Q-REGISTER 2. .INDENT -20 *^H^P^E^F$$#############^WRITE ^G^H ON THE OUTPUT FILE AND CLOSE IT. .INDENT -20 *^^EBPROGRAM.DAT$Y\\$$##^OPEN THE PARTIALLY REVISED FILE. .INDENT -20 *20^L$$##############^MOVE THE POINTER TO THE BEGINNING OF ^B. .INDENT -20 *^G3$$###############^INSERT ALL OF ^O FROM ^Q-REGISTER 3. .INDENT -20 *^N^D$$###############^SEARCH FOR A CHARACTER STRING IN ^D TO WRITE ^A^O^B ON THE OUTPUT FILE. .INDENT -20 *^P^W^H^K$$#############^WRITE ^D ON THE OUTPUT FILE AND CLEAR BUFFER. .INDENT -20 *^G1$$###############^BRING ALL OF ^M^N FROM ^Q-REGISTER 1 INTO THE BUFFER. .INDENT -20 *^E^X$$###############^WRITE ^M^N ONTO THE OUTPUT FILE, THEN CLOSE THE FILE AND EXIT TO THE ^M^C^R. .LEFT MARGIN 5 .PARAGRAPH ^AT THIS POINT THE FILE HAS BEEN REARRANGED IN THE DESIRED FORMAT. ^OF COURSE, THIS REARRANGEMENT COULD HAVE BEEN ACCOMPLISHED IN FEWER STEPS IF THE COMMANDS LISTED ABOVE HAD BEEN COMBINED INTO LONGER COMMAND STRINGS. ^NOTE THAT THE ASTERISKS SHOWN AT THE LEFT MARGIN IN THIS EXAMPLE ARE GENERATED BY ^^TECO\\, AND NOT TYPED BY THE USER. .PARAGRAPH ^ASSUME, NOW, THAT THE SAME INPUT FILE MENTIONED EARLIER, CONTAINING DATA IN THE FORM: .SKIP 1 ^^AB#FORM#CD#FORM#EF#FORM#...#FORM#OP\\ .SKIP 1 IS TO BE SPLIT INTO TWO SEPARATE FILES, WITH THE FIRST FILE CONTAINING ^^AB#FORM#CD\\ AND THE SECOND FILE CONTAINING ^^KL#FORM#M\\, WHILE THE REST OF THE DATA IS TO BE DISCARDED. ^THE FOLLOWING COMMANDS COULD BE USED TO ACHIEVE THIS REARRANGEMENT: .SKIP 2 .LEFT MARGIN 25 .INDENT -20 ^M^C^R<^T^E^C#############^CALL ^^TECO\\. .INDENT -20 *^^ERFILE$EWFILE1$$\\###^OPEN THE INPUT FILE AND THE FIRST OUTPUT FILE. .INDENT -20 *^Y$$################^READ ^A^B INTO THE BUFFER. .INDENT -20 *^P$$################^WRITE ^^AB FORM\\ ONTO THE OUTPUT FILE AND READ ^C^D INTO THE BUFFER. .INDENT -20 *^^HPEF\\$$#############^WRITE ^C^D ONTO THE OUTPUT FILE (WITHOUT APPENDING A FORM FEED), AND CLOSE THE FIRST OUTPUT FILE. .INDENT -20 *__^K$$###############^SEARCH FOR A CHARACTER STRING IN ^K. ^AFTER THIS COMMAND HAS BEEN EXECUTED, THE BUFFER WILL CONTAIN ^K^L. ^NO OUTPUT IS GENERATED. .INDENT -20 *^^EWFILE2\\$$##########^OPEN THE SECOND OUTPUT FILE AND WRITE ^K^L ONTO IT. ^READ ^M^N INTO THE BUFFER. .INDENT -20 *20^L0,.^P$$##########^MOVE THE POINTER TO THE END OF ^M, THEN WRITE ^M ONTO THE OUTPUT FILE. .INDENT -20 *^E^X#################^CLOSE THE OUTPUT FILE AND EXIT TO ^M^C^R. .LEFT MARGIN 5 .PARAGRAPH ^AS A FINAL EXAMPLE OF FILE MANIPULATION TECHNIQUES, ASSUME THAT THE USER HAS TWO FILES. ^ONE FILE IS ^^MATH.ONE\\, WHICH CONTAINS INFORMATION IN THE FORM: .SKIP 1 ^^AB#FORM#CD#FORM#EF#FORM#GH#FORM#IJ#FORM#KL\\ .SKIP 1 AND THE OTHER IS ^^MATH.TWO\\, WHICH CONTAINS: .SKIP 1 ^^MN#FORM#OP#FORM#QR\\ .SKIP 1 ^IF BOTH OF THESE FILES ARE STORED ON ^D^K1, THE FOLLOWING SEQUENCE OF COMMANDS MAY BE USED TO MERGE THE TWO FILES INTO A SINGLE FILE, ^^MATH.NEW\\, WHICH CONTAINS ALL OF ^^MATH.TWO\\ FOLLOWED BY THE LATTER HALF OF FILE ^^MATH.ONE\\ IN THE FOLLOWING FORMAT: .SKIP 1 ^^MN#FORM#OP#FORM#QR#FORM#GH#FORM#IJ#FORM#KL\\ .SKIP 2 .LEFT MARGIN 25 .INDENT -20 ^M^C^R>^T^E^C#############^CALL ^^TECO\\. .INDENT -20 *^^ERDK1:MATH.TWO$$###O\\PEN THE FIRST INPUT FILE. .INDENT -20 *^^EWMATH.NEW$$#######O\\PEN THE OUTPUT FILE ON THE DEFAULT DEVICE. .INDENT -20 *^Y$$################^READ ^M^N INTO THE TEXT BUFFER. .INDENT -20 *^N^R$$###############^SEARCH FOR A CHARACTER STRING IN ^R TO WRITE ^M^N AND ^O^P ONTO THE OUTPUT FILE. .INDENT -20 *^P^W$$###############^WRITE ^Q^R ONTO THE OUTPUT FILE, APPENDING A FORM FEED. .INDENT -20 *^^ERDK1:MATH.ONE$$\\###^OPEN THE SECOND INPUT FILE. .INDENT -20 *^Y$$################^READ ^A^B INTO THE BUFFER. ^Q^R IS OVER-WRITTEN. .INDENT -20 *__^G$$###############^SEARCH FOR A CHARACTER STRING IN ^G TO DELETE ^A^B, ^C^D, AND ^E^F, LEAVING ^G^H IN THE BUFFER. .INDENT -20 *^N^K$$###############^SEARCH FOR A CHARACTER STRING IN ^K TO WRITE ^G^H AND ^I^J ON THE OUTPUT FILE, LEAVING ^K^L IN THE BUFFER. .INDENT -20 *^H^P^E^X$$#############^WRITE ^K^L ONTO THE OUTPUT FILE (WITHOUT APPENDING A FORM FEED) AND CLOSE THE FILE, THEN EXIT TO ^M^C^R. .LEFT MARGIN 5 .SKIP 2 .TEST PAGE 6 ^^EXAMPLE 2: ALPHABETIZING BY BINARY SEARCH\\ .PARAGRAPH ^ASSUME THAT ^^TECO\\ IS RUNNING AND THAT THE BUFFER CONTAINS MANY SHORT LINES OF TEXT BEGINNING WITH AN ALPHABETIC CHARACTER AT THE LEFT MARGIN (I.E. IMMEDIATELY FOLLOWING A LINE FEED). ^THE LINES MIGHT CONSIST OF NAMES IN A ROSTER, FOR EXAMPLE, OR ENTRIES IN AN INDEX. ^THE FOLLOWING COMMAND STRING WILL REARRANGE THE LINES INTO ROUGH ALPHABETICAL ORDER. ^THIS COMMAND STRING GROUPS ALL LINES WHICH BEGIN WITH THE CHARACTER "^A" AT THE BEGINNING OF THE PAGE, FOLLOWED BY ALL LINES WITH "^B", AND SO ON. ^NOTE THAT THE ALGORITHM COULD BE EXTENDED TO PLACE THE ENTRIES IN STRICT ALPHABETICAL ORDER BY HAVING IT LOOP BACK TO PERFORM THE SAME BINARY SORTING OPERATION ON SUCCESSIVE CHARACTERS IN EACH LINE. .SKIP 2 .LEFT MARGIN 35 .INDENT -30 ^^!START!#J#0AUA!###############LOAD FIRST CHARACTER OF FIRST LINE INTO Q-REGISTER A .SKIP 1 .INDENT -30 !!CONT!#L#0AUB!###############LOAD FIRST CHARACTER OF NEXT LINE INTO Q-REGISTER B .SKIP 1 .INDENT -30 !QA-QB"G#XA#K#-L#GA#1UZ'!#####IF A>B, SWITCH THE LINES AND SET A FLAG (Q-REGISTER Z) .SKIP 1 .INDENT -30 !QBUA!########################LOAD B INTO A .SKIP 1 .INDENT -30 !L#Z-."G#-L#OCONT$'!##########LOOP BACK IF THERE IS ANOTHER LINE IN THE BUFFER .SKIP 1 .INDENT -30 !QZ"G#0UZ#OSTART$'!###########REPEAT IF A SWITCH WAS MADE ON THE LAST PASS .SKIP 1 .INDENT -30 !$$\\ .LEFT MARGIN 5 .PAGE .CENTER 80 ^^APPENDIX A\\ .SKIP 2 .CENTER 80 ^^OCTAL _& DECIMAL ASCII CHARACTER SET .SKIP 4 .TAB STOPS 11 15 21 26 31 36 41 46 51 56 61 .NOFILL CHAR OCT DEC CHAR OCT DEC CHAR OCT DEC CHAR OCT DEC NULL 000 000 SP 040 032 @ 100 064 ` 140 096 _^A 001 001 ! 041 033 A 101 065 \A 141 097 _^B 002 002 " 042 034 B 102 066 \B 142 098 _^C 003 003 _# 043 035 C 103 067 \C 144 099 _^D 004 004 $ 044 036 D 104 068 \D 144 100 _^E 005 005 % 045 037 E 105 069 \E 145 101 _^F 006 006 _& 046 038 F 106 070 \F 146 102 _^G 007 007 ' 047 039 G 107 071 \G 147 103 _^H 010 008 ( 050 040 H 110 072 \H 150 104 TAB 011 009 ) 051 041 I 111 073 \I 151 105 LF 012 010 * 052 042 J 112 074 \J 152 106 VT 013 011 + 053 043 K 113 075 \K 153 107 FF 014 012 , 054 044 L 114 076 \L 154 108 CR 015 013 - 055 045 M 115 077 \M 155 109 _^N 016 014 . 056 046 N 116 078 \N 156 110 _^O 017 015 / 057 047 O 117 079 \O 157 111 _^P 020 016 0 060 048 P 120 080 \P 160 112 _^Q 021 017 1 061 049 Q 121 081 \Q 161 113 _^R 022 018 2 062 050 R 122 082 \R 162 114 _^S 023 019 3 063 051 S 123 083 \S 163 115 _^T 024 020 4 064 052 T 124 084 \T 164 116 _^U 025 021 5 065 053 U 125 085 \U 165 117 _^V 026 022 6 066 054 V 126 086 \V 166 118 _^W 027 023 7 067 055 W 127 087 \W 167 119 _^X 030 024 8 070 056 X 130 088 \X 170 120 _^Y 031 025 9 071 057 Y 131 089 \Y 171 121 _^Z 032 026 : 072 058 Z 132 090 \Z 172 122 ALT 033 027 ; 073 059 [ 133 091 { 173 123 FS 034 028 < 074 060 _\ 134 092 | 174 124 GS 035 029 = 075 061 ] 135 093 } 175 125 RS 036 030 > 076 062 _^ 136 094 ~ 176 126 US 037 031 ? 077 063 __ 137 095 RUB 177 127\\ .FILL .PAGE .CENTER 80 ^^APPENDIX B\\ .SKIP 1 .CENTER 80 ^^DESCRIPTION RELATIVE TO PDP-10 TECO\\ .SKIP ^WITH THE EXCEPTION OF THE ABSENCE OF UPPER/LOWER CASE SHIFT COMMANDS, THIS EDITOR IS A SUPERSET OF THE ^^PDP-10\\ ^^TECO\\.[1] .FOOTNOTE 5 .SKIP .FILL .LEFT MARGIN 5 --------------- .SKIP [1]#^THE ^^PDP-10\\ ^^TECO\\ IS DESCRIBED IN DOCUMENT ^^DEC-10-NGZB-D\\. ! ^THE FOLLOWING IS A DESCRIPTION OF THE ADDITIONAL FEATURES INCLUDED IN THE ^^RSX-11D\\ IMPLEMENTATION OF ^^TECO\\. .SKIP .LEFT MARGIN 10 .RIGHT MARGIN 70 .TEST PAGE 8 .INDENT -5 1.###^^TECO\\ IS AN ^^MCR\\ ^FUNCTION, AND MAY BE STARTED IN EITHER OF THE THREE FOLLOWING WAYS: .NOFILL .SKIP .TAB STOPS 25,50 ^^MCR>TECO\\<^^CR\\> OR ^^MCR>TECO\\ FILENAME<^^CR\\> OR ^^MCR>MAKE\\ FILENAME<^^CR\\> . .FILL .SKIP "^^TECO\\" JUST STARTS THE EDITOR. .SKIP "^^TECO\\#FILENAME<^^CR\\>" STARTS THE EDITOR AND EFFECTS AN "^^EB\\FILENAME$^Y"##. .SKIP "^^MAKE\\#FILENAME<^^CR\\>" STARTS THE EDITOR AND EFFECTS AN "^^EW\\FILENAME$"##. .SKIP .TEST PAGE 8 .INDENT -5 2.###^THE COMMAND '^V' IS EQUIVALENT TO '^^0TT\\'#. .SKIP .TEST PAGE 8 .INDENT -5 3.###'_^^G_#' (^CONTROL-^G-^SPACE)[2] .FOOTNOTE 6 .SKIP .FILL .LEFT MARGIN 5 --------------- .SKIP [2]#^IN THIS APPENDIX "_^" IS USED TO REPRESENT THE ^^CTRL\\ KEY, AND "_#" IS USED TO REPRESENT A SYNTAX CRITICAL SPACE. ! WILL RETYPE THE LINE CURRENTLY BEING INPUT. I.E., _^^G_# FUNCTION IN THE SAME MANNER AS DOES _^^R WITH THE MULTI-^^TTY\\ ^HANDLER. .SKIP .TEST PAGE 8 .INDENT -5 4.###^AFTER AN ERROR (OR AFTER _^^G_^^G TO CANCEL A COMMAND), THE PREVIOUS COMMAND BUFFER CONTENTS MAY BE RECOVERED BY IMMEDIATELY TYPING '*Q' WHERE "Q" IS ANY ^Q-REGISTER NAME. ^THIS PLACES THE COMMAND BUFFER CONTENTS INTO THE NAMED ^Q-REGISTER. .SKIP .TEST PAGE 8 .INDENT -5 5.###^THE COMMAND '^^EA\\' CLOSES THE CURRENT OUTPUT FILE, BUT "REMEMBERS" THE CURRENT ^^EOF\\. ^SUBSEQUENT TYPING "^^EW$\\" RE-OPENS THE OUTPUT FILE FOR APPENDING. ^SAVING AN OUTPUT FILE WITH AN '^^EA\\' WORKS TO ^^ONE#LEVEL\\ ONLY. .SKIP .TEST PAGE 8 .INDENT -5 6.###^THE COMMAND '^^EP\\' CLOSES THE CURRENT INPUT FILE AS ABOVE, BUT ALLOWS TYPING '^^ER\\$' TO RE-OPEN IT AT THE CURRENT RECORD. .SKIP .TEST PAGE 8 .INDENT -5 7.###^THE FOLLOWING SPECIAL CHARACTERS ARE RECOGNIZED IN SEARCHES: .SKIP .BREAK .INDENT -5 ##########_^^^S \\#######MATCHES ANY NON-ALPHANUMERIC CHARACTER. .BREAK .INDENT -5 ##########_^^^EA\\#######MATCHES ANY ^^ALPHA\\ CHARACTER. .BREAK .INDENT -5 ##########_^^^ED\\#######MATCHES ANY ^^DIGIT\\ CHARACTER. .BREAK .INDENT -5 ##########_^^NX#######MATCHES ANY CHARACTER EXCEPT "X". .BREAK .INDENT -5 ##########_^^^EL\\#######MATCHES ANY LINE TERMINATOR. .BREAK .INDENT -5 ##########_^^^EX\\#######MATCHES ^^ANY\\ CHARACTER. .BREAK .INDENT -5 ##########_^^^ES\\#######MATCHES A STRING OF ^^SPACES\\ AND/OR ^^TABS\\. .BREAK .INDENT -5 ##########_^^^EQ\\N######MATCHES THE STRING STORED IN ^Q-REGISTER "N". .SKIP .TEST PAGE 8 .INDENT -5 8.###"^COMPARE" TYPE SEARCH '::^S-----$' DOES NOT MOVE THE CURRENT TEXT POINTER. ^IT GIVES A VALUE OF -1 IF THE CURRENT TEXT STRING IS IDENTICAL TO THE SEARCH STRING, OTHERWISE, IT GIVES A VALUE OF ZERO. .SKIP .TEST PAGE 8 .INDENT -5 9.###"^NEGATIVE" (REVERSE) SEARCHES '-N^S-----$' SEARCHES THE CURRENT TEXT BUFFER IN THE REVERSE DIRECTION FOR THE INDICATED STRING. I.E., ROUGHLY EQUIVALENT TO '!^^START\\!::^S-----$"^^EROSTART\\$'##. .SKIP .TEST PAGE 8 .INDENT -5 10.##^THE COMMAND '^^FR-----\\' IS EQUIVALENT TO '-N^^DI-----\\' WHERE THE VALUE "N" IS OBTAINED FROM ONE OF THE FOLLOWING: .SKIP .NOFILL .LEFT MARGIN 18 A.#^THE LENGTH OF THE LAST STRING SEARCHED FOR, B.#^THE LENGTH OF THE LAST INSERT, OR C.#^THE LENGTH OF THE LAST "^G" COMMAND. .FILL .SKIP .LEFT MARGIN 15 "_^^S" ALWAYS CONTAINS THE VALUE OF "-N"##. .SKIP .TEST PAGE 8 .INDENT -5 11.##^MOST CONTROL CHARACTERS (NOTABLY _^^E) ARE NOT PASSED BY THE MULTI-^^TTY\\ ^HANDLER. ^IN COMMAND STRINGS THIS PROBLEM CAN BE CIRCUMVENTED BY TYPING UP-ARROW#_&#CHARACTER INSTEAD OF THE CONTROL CHARACTER, BUT IN OTHER CASES, THE SINGLE-UNIT ^^TTY\\ ^HANDLER IS REQUIRED. ^THE ^SINGLE-UNIT ^^TTY\\ ^HANDLER WILL ALLOW ALL CONTROL CHARACTERS TO BE INPUT, HOWEVER, IT DOES NOT SUPPORT THE USEFUL _^^O _& _^^R FEATURES. .SKIP .TEST PAGE 8 .INDENT -5 12.##^THE PRESENCE OF VERSION NUMBERS IN ^^FILES-11\\ CAUSES SOME EFFECTS WITH OUTPUT FILES THAT HAVE NOT APPEARED IN OTHER OPERATING SYSTEMS. .SKIP ^AN '^^EB\\' WITH DEFAULT VERSION (I.E., ";0" OR NOT SPECIFIED) WILL GENERATE A NEW FILE WITH THE NEXT HIGHEST VERSION NUMBER. ^THE PREVIOUS VERSION IS NOT RE-NAMED. .SKIP ^LIKEWISE, AN '^^EW\\' WITH DEFAULT VERSION WILL PRODUCE THE NEXT HIGHER VERSION (OR A VERSION#1 FOR A NEW FILE). .SKIP ^AN '^^EW\\' WITH AN EXPLICIT VERSION WILL SUPERCEDE AN EXISTING FILE OF THE SAME NAME-TYPE-VERSION WITH NO WARNING. .SKIP ^AN '^^EB\\' WITH EXPLICIT VERSION WILL INPUT FROM THE SPECIFIED VERSION, BUT THE OUTPUT VERSION NUMBER WILL BE FORCED TO THE DEFAULT VALUE. .SKIP ^DURING AN '^^EB\\' IT IS NOT POSSIBLE TO RE-READ THE INPUT FILE WITH AN '^^ER\\' ON THE LATEST VERSION, SINCE THE OUTPUT FILE ALREADY APPEARS IN THE DIRECTORY. ^TO RE-READ THE INPUT FILE, THE VERSION NUMBER MUST BE SPECIFIED. .SKIP .TEST PAGE 8 .INDENT -5 13.##^THE COMMAND '^^EK\\' KILLS THE CURRENT EDIT. ^IT CLOSES AND DELETES THE CURRENT OUTPUT FILE. .SKIP .TEST PAGE 8 .INDENT -5 14.##^THE FOLLOWING CONDITIONALS ARE AVAILABLE: .TAB STOPS 20,27 .SKIP .NOFILL N"^G N>0 N"^L N<0 N"^E N=0 N"^N N NOT-EQUAL 0 .SKIP .TEST PAGE 8 N"^T N IS ^^TRUE\\ (N<0) N"^S N IS ^^SUCCESSFUL\\ (N<0) N"^F N IS ^^FALSE\\ (N=0) N"^U N IS ^^UNSUCCESSFUL\\ (N=0) .SKIP .TEST PAGE 8 N"^A N IS ^ALPHABETIC (^A THRU ^Z) N"^D N IS A DIGIT (0 THRU 9) N"^R N IS ALPHA-NUMERIC (^A-^Z OR 0-9) N"^C N IS SYMBOL CONSTITUENT (^A-^Z, 0-9, POINT, OR DOLLAR SIGN). .FILL .SKIP .TEST PAGE 8 .INDENT -5 15.##^THE COMMAND '_^^^UX\\$' PLACES THE STRING IN ^Q-REGISTER "^X". .SKIP .TEST PAGE 8 .INDENT -5 16.##^THE COMMAND '_^^R' IS EQUIVALENT TO '^^FS\\'. .SKIP .TEST PAGE 8 .INDENT -5 17.##^THE COMMAND '_^^O' SETS THE RADIX FOR TYPE-IN AND '_\' TO OCTAL (BASE-8). .SKIP .TEST PAGE 8 .INDENT -5 18.##^THE COMMAND '_^^D' SETS THE RADIX FOR TYPE-IN AND '_\' TO DECIMAL (BASE-10). .SKIP .TEST PAGE 8 .INDENT -5 19.##^THE COMMAND '_^^B' RETURNS THE CURRENT DATE IN THE FOLLOWING FORMAT: .BREAK ^^###DAY + (MONTH*32) + ((YEAR-1900)*512)\\. .SKIP .TEST PAGE 8 .INDENT -5 20.##^THE COMMAND '_^^H' RETURNS THE CURRENT TIME OF DAY IN SECONDS PAST MIDNIGHT DIVIDED BY TWO. .SKIP .TEST PAGE 8 .INDENT -5 21.##^THE COMMAND '_^^V' RETURNS THE VERSION NUMBER OF THE RUNNING COPY OF ^^TECO\\. .SKIP .TEST PAGE 8 .INDENT -5 22.##^THE COMMAND '_^^Z' RETURNS THE TOTAL SIZE OF THE ^Q-REGISTER AREA (IN BYTES). .SKIP .TEST PAGE 8 .INDENT -5 23.##^THE COMMAND '^^EG\\' IS EQUIVALENT TO '^^EX\\'. .SKIP .TEST PAGE 8 .INDENT -5 24.##'N_^__' IS THE ONES COMPLEMENT OF "N". .SKIP .TEST PAGE 8 .INDENT -5 25.##^TECO RECOGNIZES THE PRESENCE OF RECORD CONTROL ATRIBUTES. ^IF AN INPUT FILE HAS IMPLIED CARRIAGE CONTROL ('^^FD.CR\\') OR ^FORTRAN CARRIAGE CONTROL ('^^FD.FTN\\'), ^TECO WILL APPEND ^^CR-LF\\ TO EACH RECORD AS IT IS READ. ^FORTRAN CARRIAGE CONTROL CHARACTERS ARE NOT INTERPRETED BUT ARE LEFT AT THE BEGINNING OF EACH RECORD. ^IF THE FILE HAS NO CARRIAGE CONTROL ATRIBUTES (I.E., INTERNAL CARRIAGE CONTROL), RECORDS ARE ACCUMULATED IN THE BUFFER AS READ. ^UPON OUTPUT, ^TECO TREATS OCCURRANCES OF ^^CR-LF\\ AS RECORD SEPARATORS. ^IF THE OUTPUT FILE HAS IMPLIED OR ^FORTRAN CARRIAGE CONTROL, THE ^^CR-LF\\ PAIRS ARE STRIPPED OFF AS THE FILE IS WRITTEN. ^THE OUTPUT FILE ATTRIBUTES ARE DEFAULTED AS FOLLOWS. .SKIP .NOFILL .TAB STOPS 25,48 ^^INPUT FILE OUTPUT FILE\\ .SKIP ^IMPLIED ^C.^C. ^IMPLIED ^C.^C. ^FORTRAN ^C.^C. ^FORTRAN ^C.^C. ^INTERNAL ^C.^C. ^IMPLIED ^C.^C. .SKIP .FILL ^STANDARD ^^RSX-11D\\ SOURCE FILES USE IMPLIED CARRIAGE CONTROL. .SKIP ^THE FOLLOWING SWITCHES MAY BE USED TO FORCE CARRIAGE CONTROL ATTRIBUTES ON BOTH INPUT AND/OR OUTPUT FILES: .SKIP .NOFILL .TAB STOPS 25,31 ^^/CR\\ ^FORCE ^^IMPLIED\\ ^C.^C. ^^/FT\\ ^FORCE ^^FORTRAN\\ ^C.^C. ^^/-CR\\ ^FORCE ^^INTERNAL\\ ^C.^C.####. .SKIP ^EXAMPLE: ^^ERFOO.BAR$EWFOO.DAT/FT$Y$$\\ .SKIP .FILL .LEFT MARGIN 10 .RIGHT MARGIN 70 .PAGE .CENTER 80 ^^APPENDIX C\\ .CENTER 80 ^^INSTALLATION OF TECO\\ .CENTER 80 ------------ -- ---- .SKIP 2 ^THIS ^^TECO\\ PACKAGE CONSISTS OF FOUR FILES THAT HAVE BEEN RECORDED VIA ^^RSX-11D\\#FILEX\\ IN ^^DOS\\ FORMAT. ^THE FOUR FILES ARE: .SKIP .TAB STOPS 13,25 .NOFILL ^^TECO.RNO\\ ^THE ^^RUNOFF\\ SOURCE FOR THE ^^TECO\\ MANUAL, ^^TECBLD.CMD\\ ^^TKB\\ COMMAND FILE TO BUILD ^TASK, ^^TECO.OBJ\\ ^OBJECT MODULE FOR BODY OF EDITOR, AND ^^TECOIO.OBJ\\ ^OBJECT MODULE FOR ^^RSX-11D\\ ^I/^O SECTION. .FILL .SKIP ^FOLLOWING ARE EXAMPLES OF: (1)#^READING THE FOUR FILES ONTO THE SYSTEM DISK, (2)#^PRODUCING THIS DOCUMENT, AND (3)#^BULDING AND INSTALLING THE EDITOR ^TASK. .SKIP .TAB STOPS 13,40 .NOFILL ^^INS [11,1]FLX\\ (MAY ALREADY BE INSTALLED) ^^FLX SY:=DT\\N^^:[200,200]*.*\\ (FROM ^^DEC\\TAPE) ^^FLX SY:=MT\\N^^:[200,200]*.*\\ (FROM ^MAGTAPE) ^^FLX SY:=DK\\N^^:[200,200]*.*\\ (FROM ^^RK\\ DISK) .SKIP ^^INS [11,1]RNO\\ (MAY ALREADY BE INSTALLED) ^^RNO LP:=[200,200]TECO\\ (96-CHAR SET PRINTER) ^^RNO LP:/UC=[200,200]TECO\\ (64-CHAR SET PRINTER) ^^RNO TT\\N^^:/UC=[200,200]TECO\\ (64-CHAR SET ^^TTY\\) .SKIP ^^TKB @TECBLD\\ (SEE ^APPENDIX ^D) ^^INS [11,1]TECO\\ ^^INS [11,1]TECO/TASK=...MAK\\ .LEFT MARGIN 10 .RIGHT MARGIN 70 .FILL .LEFT MARGIN 5 .RIGHT MARGIN 70 .PAGE .CENTER 80 ^^##APPENDIX D -- TKB COMMAND FILE\\ .SKIP 3 .NOFILL .RIGHT MARGIN 70 ^^ ; ; TASK BUILD FILE FOR RSX-11D TECO. TO WORK IN ITS NORMAL FASHION, ; TECO SHOULD BE INSTALLED TWICE, ONCE UNDER ITS NORMAL NAME AND ONCE ; UNDER ; THE NAME "...MAK" TO IMPLEMENT THE "MAKE" COMMAND. [11,1]TECO/-FP,TECO=TECO,TECOIO / TASK=...TEC LIBR=SYSRES:RO ; ; LUN 2 IS USED FOR CONSOLE I/O ; LUN 3 IS USED FOR THE OUTPUT FILE ; LUN 4 IS USED FOR THE INPUT FILE ; LUN 5 IS USED TO CALL MO ; ASG=CI:2 ASG=MO:5 ; ; ALL OF TECO'S DYNAMIC STORAGE IS KEPT IN THE STACK AREA ALLOCATED ; BY THE TASK BUILDER. ; STACK=6000 ; ; THE FOLLOWING PARAMETER SETS THE ACTUAL STACK USED BY THE TECO ; PROGRAM. ; THERE IS NORMALLY NO NEED TO CHANGE IT. GBLDEF=STACKZ:200 ; ; THE FOLLOWING PARAMETER SETS THE SIZE OF TECO'S PUSH DOWN LIST. ; IT MAY ; BE NECESSARY TO INCREASE THIS TO ACCOMMODATE MANY LEVELS OF ; ITERATION, MACRO CALLS, ETC. GBLDEF=PDLSIZ:100 ; ; THE FOLLOWING PARAMETER SETS THE SIZE OF THE SEARCH BUFFER. ; IT MAY BE INCREASED TO ACCOMMODATE VERY LONG SEARCH STRINGS. ; GBLDEF=SCHSIZ:100 ; ; THE REMAINING SPACE IS DYNAMICALLY SHARED BETWEEN TEXT BUFFER AND ; Q REGISTER STORAGE. ; // \\