.T ^&##############TECO-11 Editing System Macro EDV##############\& .ST ^&#########################Using EDV#########################\& .PS 62, 60 .NF .NJ .NNM .PAGE .B 10 ^&EDITING SYSTEM - EDV\& ^&REFERENCE GUIDE\& .B 35 01-Mar-81 Christopher Mackay Reading, UK. .PAGE Copyright C 1981 DIGITAL EQUIPMENT COMPANY This editing macro is the property of Digital Equipment Corporation. Digital assumes no responsibility for its use and does not support it. .PAGE ^&CONTENTS\& Page INTRODUCTION . . . . . . . . . 1 ENTERING EDV . . . . . . . . . 2 Exceptions . . . . . . . . . 2 HELP . . . . . . . . . . . 3 Displayed Help Text . . . . . . . 4 DATA ENTRY . . . . . . . . . . 5 Auto justify mode . . . . . . . 5 .TP 14 MOVING THE CURSOR . . . . . . . . 6 Start Of Buffer . . . . . . . . 6 End Of Buffer . . . . . . . . 6 Move To Start Of Next Line . . . . . 6 Move To Start Of Previous Line . . . . 6 Move To The Left Margin Of This Line . . 7 Aligning Text On A Line . . . . . 7 Move To The End Of This Line . . . . 7 Move The Cursor Left Or Right . . . . 8 Move The Cursor Up Or Down . . . . . 8 Scroll Up Or Down . . . . . . . 9 Moving The Cursor Across A Word At A Time . 9 .TP 6 DELETING . . . . . . . . . . 10 Deleting Characters . . . . . . . 10 Deleting Words . . . . . . . . 10 Deleting Lines . . . . . . . . 11 Deleting Trailing Blanks And Control Characters 11 .TP 6 PAGE AND BUFFER CONTROL . . . . . . . 12 Get Next Page . . . . . . . . 12 Set Top Of Buffer Here . . . . . . 12 Add Next Page To Current Buffer . . . 12 Return To Top Of File . . . . . . 13 .TP 5 SAVING AND UNSAVING TEXT . . . . . . 14 Save To End Of The Line . . . . . 14 Save The Beginning Of The Line . . . . 14 Unsave Saved Text . . . . . . . 14 .TP 4 PARAGRAPH CONTROL . . . . . . . . 15 Manual Justification . . . . . . 15 Auto-Justification . . . . . . . 15 .TP 6 SETTING MARGINS . . . . . . . . 16 Examine Current Margin Settings . . . 16 Set The Margins To The Cursor Position . . 16 Set The Margins To Absolute Values . . . 16 Restore The Default Settings . . . . 17 .TP 5 STRING SEARCHES AND CHANGES . . . . . 18 Search For A String . . . . . . 18 Repeat A Search For A String . . . . 18 Change A String . . . . . . . 19 .TP 5 CASE AND SPACE CONVERSION . . . . . . 20 Case Conversion . . . . . . . 20 Line Conversion . . . . . . . 20 Tab And Space Conversion . . . . . 21 REPEATED EXECUTIONS . . . . . . . 22 MULTIPLE CHARACTER ENTRY . . . . . . 22 .TP 3 TERMINATION OF EDITING SESSIONS . . . . 23 Exit From EDV . . . . . . . . 23 SPECIAL FEATURES . . . . . . . . 23 REGISTER Y . . . . . . . . . . 24 ERROR RECOVERY . . . . . . . . . 25 INSTALLING EDV . . . . . . . . . 26 RSTS/E . . . . . . . . . . 26 RSX-11M . . . . . . . . . . 27 VAX/VMS . . . . . . . . . . 28 .NM 0 .PAGE ^&INTRODUCTION\& EDV is a text-editing utility. It works by opening a text file for input, and reading a number of lines into a work buffer in memory. This buffer is sometimes called a page. The EDV editing commands may be used to modify the text in the buffer, and when satisfied with it the contents of the buffer may be written out to an output file. The output file has the same name and extension as the input file (with a version number of 1 more (RSX-11/VAX), or the old version renanmed with file-type ".BAK" (RSTS/E)). Some of the keys are used for editing commands, and some for text input. For clarity the following conventions will be used in this document: [] Square brackets will be used to represent a key from the numeric keypad to the right of the keyboard, for example: [1], [.], [BLUE], [->] <> Angle brackets to represent other special keys, for example: for carriage return $ Dollar sign to represent _^ Caret sign to represent the control equivalent of a character, for example: <_^Z> , hold the key down and type Z .PAGE ^&ENTERING EDV\& To enter EDV, type either: EDV filename.ext or: EDV If the second form is used then EDV prompts for the file name: EDV> Respond by typing the desired filename and extension, for example: EDV EDV>DK0:[300,10]MODULE.TXT EDV will search for the named file. If the line terminator had been then the file would be opened and ready for immediate reading in. If had been used, then the file would not be opened till <_^F> has been used. .B 2 .TP 20 ^&Exceptions\& o If the named file is not found it will prompt: "EDV TO CREATE 'file' " If "Y" is not used then EDV will reprompt. o If a mistake was made, use one of the following keys: to erase the previous character <_^U> to erase all the input line <_^R> to reprompt the input line <_^Z> to exit from EDV, and return to the operating system. $ can be used to terminate the input line instead of (the RETURN key) o If a wild-card has been given in the file specification, the will display each occurence of a match for the specification until the display is confirmed by the use of or . .PAGE ^&HELP\& .B 2 To call up the HELP text display type: <_^X> a quick reference for all the control keys, and function keypad commands will be displayed. To return to normal use of EDV type any single character, the help text will disappear, and the file text will be redisplayed. .B 2 NOTE: o The current settings of the left and right margins are displayed beside <_^W> and <_^E> respectively. Columns are numbered from "0". o The File currently last opened is displayed above the keypad layout. If <_^F> has been used, then the text "Open" is displayed. o The current remembered paragraph number is displayed beside <_^N>; if 0 this means that <_^N> will start a new paragraph indented by 4 spaces freom the left margin setting. o "(On)" or "(Off)" is displayed next to <_^T> to indicate whether auto-justify mode is on or off; this is set or reset by using any negative argument with <_^T>. o Most commands may take an optional numeric argument, input as "<+/->n" and using the top row of digits on the keyboard. The use of the sign is significant in some cases for negative arguments but may be left out if a positive argument is used. If the command is used without entering "$n", then "$1" is presumed. .PAGE ^&Displayed Help Text\& .B 2 .RM 80 EDITOR.EDV Editing: EDV.TMP ^A Convert to UPPER CASE ------------------------------- ^B Convert to lower case | | | | ^ | ^C Suspend |BLUE |RED |GREY |Cursor | ^D Delete to |Save |Justify|Unsave |up | ^E Right margin (59) |-------+-------+-------+-------| ^F Top of file (Open) | 7 | 8 | 9 | v | ^G Restore defaults |Scroll |Next |Scroll |Cursor | ^H End of line |up |page |down |down | ^K Kill to |-------+-------+-------+-------| ^N Auto-Paragraph (3) | 4 | 5 | 6 | > | ^P Paste |Up |Delete |Delete |Cursor | ^R Ruler |line |next |Word |right | ^T Justify (Auto - On) |-------+-------+-------+-------| ^U Kill start of line | 1 | 2 | 3 | < | ^V Purge buffer (2>Tabs 3>Space)|Top of |End of |Left |Cursor | ^W Left margin (0) |page |page |margin |left | ^? ^X Help |---------------+-------+-------| PF4 ^= ^Y Auto-Justification | 0 | . | ENT | ^Z Exit edit |Down line |Repeat |Search | Kp, ^> Forward word | | | | Kp- ^< Back word ------------------------------- Insert new line Christopher Mackay, RG. DIGITAL Enter arguments: - default <1> .RM 60 .PAGE ^&DATA ENTRY\& .B 2 To enter text into the file simply type using the normal keys, that is to say: A-Z a-z 0-9 (above the alphabetic keys ONLY) punctuation characters , , , NOTE: The following characters have special meaning to EDV, and cannot be used for data entry: o All the control characters (<_^x>) o o o The keys in the numeric and function keypad on the right of the keyboard. .B 2 .TP 20 ^&Auto-Justify Mode\& .B 2 See the sections on PARAGRAPH CONTROL and SETTING MARGINS for details of how to justify text and change the margin settings. <_^T> Used to set EDV into AUTO-JUSTIFY MODE. When entering data in this mode EDV detects when input text crosses the right margin, and automatically justifies the text between the left and right margins whilst it is input. All the EDV editing commands are available when using auto-justify. (RETURN) causes a carriage return and line feed to be inserted and the line to be justified. Justification will not take place if the line fills less than 75% of the set width between the margins. To exit from auto-justify mode use $-1<_^T> again. .PAGE ^&MOVING THE CURSOR\& .B 2 ^&Start Of Buffer\& .B 2 [1] Move the cursor to the top of the current buffer. $n[1] Move the cursor to nth line from the top of the current buffer. .B 2 .TP 8 ^&End Of Buffer\& .B 2 [2] Move the cursor to the end of the current buffer. $n[2] Move the cursor to nth line from the bottom of the current buffer. .B 2 .TP 10 ^&Move To Start Of Next Line\& .B 2 [0] Move the cursor to the start of the next line. $n[0] Move the cursor to the start of the nth line after the current line. .B 2 .TP 10 ^&Move To Start Of Previous Line\& .B 2 [4] Move the cursor to the start of the previous line. $n[4] Move the cursor to the start of the nth line before the current line. .B 2 .TP 12 ^&Move To The Left Margin Of This Line\& .B 2 [3] Move the cursor to the set left margin. If the cursor is already at the left margin it will move to the start of the line. Repeated use of this key moves the cursor from one position to the other. $n[3] Move the cursor to the nth column. .B 2 .TP 15 ^&Aligning Text On A Line\& .B 2 $0[3] Centres the current line between the current setting of the left and the right margin. $0<_^W> Left justifies the current line to the left margin setting. $0<_^E> Right justifies the current line to the right margin setting. .B 2 .TP 17 ^&Move To The End Of This Line\& .B 2 Move the cursor to the end of this line. or <_^H> $n Move the cursor to the nth column from the end of the line. If the line crosses the right margin and the is repeated then the cursor will alternate between the right margin and the end of the line. .B 2 .TP 23 ^&Move The Cursor Left Or Right\& .B 2 [->] Move the cursor right one character. [<-] Move the cursor left one character. To move more than one character at a time use $n[->] or $n[<-]. These keys can cause the cursor to be set between a carriage return and a line feed. this is indicated by a small down-arrow displayed above the cursor at the left margin. To correct this simply move the cursor one more character left or right. .B 2 .TP 23 ^&Move The Cursor Up Or Down\& .B 2 [_^] Move the cursor up one line and, if possible, staying in the same column position. .B 2 [v] Move the cursor down one line and, if possible, staying in the same column position. To move more than one line at a time use $n[_^] or $n[v]. If there is a tab across this column, or the line does not reach this column, then the cursor will be temporarily out of position. It will return to its initial column when it is moved up or down to a line which has that column. .B 2 .TP 20 ^&Scroll Up Or Down\& .B 2 [9] Move the cursor down 15 lines. To scroll up or down more than one unit of 15 lines use $n[9]. If the cursor moves to the bottom of the buffer then it will automatically reset itself to scroll upwards on repeated use of [9]. To reverse the direction of the scroll, use a negative value for n. The cursor is set to the start of the line .B 2 .TP 16 ^&Moving The Cursor Across A Word At A Time\& .B 2 <_^>> ">, move the cursor to the start of the next word or non blank string. <_^<> , move the cursor to the end of the previous word or non-blank string. To move across more than one word at a time use "$n<_^<>" or "$n<_^>>" Formatting characters such as , , etc, are considered as blanks. .PAGE ^&DELETING\& ^&Deleting Characters\& .B 2 Delete the character preceding the cursor (Delete backwards). [5] Delete the character above the cursor (Delete forwards). $n, or $n[5] deletes n characters in the prescribed direction. The forward and backward deleting action of these commands will be apparent if the cursor is in the middle of a line and either key is used repeatedly. If n = 0, the buzzer will sound and then must be used to confirm the deletion from the cursor to the beginning or end of the buffer as is appropiate. .B 2 .TP 15 ^&Deleting Words\& .B 2 [7] Delete the next word. The cursor must be under the first character of the word for it to have this effect, since the delete operates from the current cursor position to the end of the next blank space. To delete several words use $n[7]. .B 2 .TP 20 ^&Deleting Lines\& .B 2 <_^D> Deletes from the current cursor position to the end of this line, but leaves the (carriage return - line feed). The effect is to erase all characters on the line to the right of the cursor up to the right hand margin. $n<_^D> If n is greater than 1, then n lines are processed in an identical manner, maintaining the cursor position. If n is less than 0 then n lines will have the left part of the line replaced by blanks. <_^U> Deletes from the current cursor position to the start of this line. The effect is to erase all characters on the line to the left of the cursor, left justifying the remainder of the line. <_^K> Deletes from the current cursor position to the start of the next line. If the cursor is at the start of the line the effect is to kill the line. If the cursor is in the middle of the line then the effect is to erase the characters to the right of the cursor, and to append the next line to the remains of the current line. To kill more than one line use $n<_^K>. If n = 0, the buzzer will sound and then must be used to confirm the deletion of the WHOLE buffer. .B 2 .TP 10 ^&Deleting Trailing Blanks And Control Characters\& .B 2 <_^V> Verifies the buffer and deletes all non-formatting control characters and spaces at the ends of lines. Any invalid combinations of and are corrected by the extra insertion of s or s as appropiate. .B 2 .TP 10 ^&Deleting Last Insert\& .B 2 The last set of text either inserted by the unsave key, or saved with the save key, or input from the keyboard (a single character at a time) or found by a successful search command may be deleted by the use of [6]. It must be used immediately after one of the processes just described has been executed. If a mistake was made and a searched for string was deleted by mistake, then the copy of the search string may inserted by the use of $-1[6]. .PAGE ^&PAGE AND BUFFER CONTROL\& .B 2 ^&Get Next Page\& .B 2 [8] Write the current buffer to the output file and get the next buffer from the input file. To move forward several buffers use $n[8]. When the last page in the file is read the buzzer will ring as an end of file warning. .B 2 .TP 15 ^&Set Top Of Buffer Here\& .B 2 $n[8] If n is 0 then the content of the buffer up to the beginning of the current line is ouput and no text is read into the buffer. The effect of this is to set the data from the cursor up to the end of the buffer to the top of the buffer. This is useful if a lot of data is being entered so as to avoid a buffer overflow. .B 2 .TP 15 ^&Add Next Page To Current Buffer\& .B 2 $-n[8] If n is less than 0 then the buffer is changed as for n = 0 and then further input is appended to the remaining buffer, maintaining any form-feeds. The effect of this is to set the data from the cursor up to the end of the buffer to the top of the buffer, This is useful when justifying paragraphs that happen to cross buffer boundaries. .B 2 .TP 20 ^&Return To Top Of File\& .B 2 <_^F> Copies the remains of the input file to the output file, closes both files, and reopens at the top of the new file. The buzzer sounds to indicate completion of this operation since the first page is not read in, and the screen is left blank. This enables the insertion of large amounts of data at the beginning of files. Every time <_^F> is used a new version of the file is created and is the equivalent to reinvoking EDV. <_^F> should be used periodically (say every 15 minutes ?) to back up the work just done. $0<_^F> outputs up to the beginning of the current line, closes the file and then solicits, by prompting with the buzzer, for confirmation with that deletion of the text from the the current position to the beginning of the buffer should be effected. $-1<_^F> aborts and deletes the output file and then solicits, by prompting with the buzzer, for confirmation with that deletion of the whole text buffer should be effected. .PAGE ^&SAVING AND UNSAVING TEXT\& ^&Save To End Of The Line\& .B 2 [BLUE] Save a copy of the current line in an internal (save) buffer. The text from the current cursor position to the end of the line is saved. The cursor moves to the end of the saved text. To save several lines use $n[BLUE]. A negative value of n will save to the beginning of the n lines before the cursor. If [6] is used immediately after [BLUE], then the text saved is deleted from the buffer. .B 2 .TP 10 ^&Save The Beginning Of The Line\& .B 2 $0[BLUE] Save a copy of the text from the start of the line to the current cursor position. .B 2 .TP 16 ^&Unsave Saved Text\& .B 2 [GREY] Copy the contents of the save buffer into the text at the current cursor position and leave the cursor at the end of the insertion. If the several copies of the saved text are to be unsaved at one time use $n[GREY]. Use this feature to insert copies of text that has to be inserted in several places in the file. .PAGE ^&PARAGRAPH CONTROL\& .B 2 To set the left and right margins for text justification see the section SETTING MARGINS. .B 2 ^&Manual Justification\& .B 2 <_^T> Justify the text between the left and right margin settings, from the current cursor position to the end of the paragraph. The end of a paragraph is indicated by a blank line or the end of the buffer. The first line is justified between the current cursor position and the right margin. The left margin is only used on the following lines in the paragraph. To justify more than one paragraph in one operation use $n<_^T>. If required, the justifier will go back to the beginning of the current paragraph and find the first character after the left hand margin column and then rejustify the paragraph; this is effected by the use of $0<_^T>. $0<_^>> Separates the current paragraph into phrases ending in a punctuation mark, each on a separate line. This is used to facilitate the removal or copying of a section of a paragraph. $0<_^<> Separates the current line into word, each on a separate line. This is used to facilitate the removal or copying of a section of a line. .B 2 .TP 12 ^&Auto-Justification\& .B 2 $-1<_^T> sets up auto-justify mode. From then on, text will be automatically justified as it is being typed in. See the section DATA ENTRY for more details. To exit from auto-justify mode use $-1<_^T> again. .PAGE ^&SETTING MARGINS\& .B 2 The default margin settings are: LEFT margin = 0 RIGHT margin = 59 .B 2 .TP 15 ^&Examine Current Margin Settings\& .B 2 <_^X> Calls for help. The current margin setting values are displayed beside <_^E> and <_^W>. <_^R> Displays a ruler across the screen. Solid white blocks indicate the current left and right margins, and the current cursor position. Type any single character to return to EDV .B 2 .TP 15 ^&Set The Margins To The Cursor Position\& .B 2 <_^W> Sets the left margin to the current cursor position. <_^E> Sets the right margin to the current cursor position. .B 2 .TP 12 ^&Set The Margins To Absolute Values\& .B 2 $n<_^W> Set the left margin to column n. $n<_^E> Set the right margin to column n. .B 2 .TP 20 ^&Restore The Default Settings\& .B 2 <_^G> Resets the left and right margins to 0 and 59, and reset the auto-paragraph numbering to 0 (insert standard paragraph breaks). If the user has SET.EDV in the current account, this is used to give alternate settings for the default margins. Its contents should be "l"UW"r"UE"j"UV where "l" is the default value for the left margin, "r" is the deafault value for the right margin, and "j" = 75% of (r-l) and is used as the measure of the minimum number of characters that will be justified on the a line. .PAGE ^&STRING SEARCHES AND CHANGES\& .B 2 A string in this context is any sequence of text characters, including carriage returns and line feeds. .B 2 ^&Search For A String\& .B 2 [ENTER] Type in a string and search from the current cursor position to the end of this buffer for it. On typing [ENTER] EDV prompts (at the top of the screen) for the string to be searched for. Type the string, followed by "$$" (). When a mistake is made use to delete back to the error or <_^U> to cancel the search command and return to normal EDV. $n[ENTER] to search for the nth occurrence of a string. If n is negative, then the buffer is searched backwards for the string from the current position of the cursor. If the string is not be in the current buffer, then enter $0[ENTER] to effect a search from the current position to the end of the file for the string. If the end of the file is reached and the string is still not found use <_^F> to effect a close and reopen of the file at the beginning again. .B 2 .TP 16 ^&Repeat A Search For A String\& .B 2 [.] Search for the same string as entered last for [ENTER]. $n[.] searchs for the nth occurrence of a string in the current buffer. If n is negative, then the buffer is searched backwards for the string from the current position of the cursor. $0[.] repeats the search from the current position till the end of the file is reached. .TP 20 ^&Change A String\& .B 2 <_^P> Paste the new string in place of the old string. EDV prompts at the top of the screen with: "Change file (F) or buffer (DEF) ?" To search the whole file for the string to be changed answer "F" or "f"; any other answer is taken as the default (DEF). <_^U> will abort the action. EDV then prompts: 1 Buffer (or "1 File") Search For: Enter the string to be searched for, ending with $$ (). EDV then prompts: Change To: Enter the paste string to be used and end with $$ (). EDV then searchs the file or buffer for the first string, and then changes it to the second string. To change the same string several times use $n<_^P>, in which case the value n will be displayed beside "File" or "Buffer" instead of 1, and the first n occurences of the first string will be changed to the second string. To change ALL occurrences of one string use $0<_^P> and then select the option to restrict the operation to the current buffer or to apply the paste to the whole file when the prompt displays. On subsequent use of <_^P>, the option to repeat the paste will be given by the prompt: "Change as last (L), file (F) or buffer (DEF) ? Entering <_^U> (control/U) at any stage up to the final aborts the paste and returns EDV to input mode. NOTE: After one $ () has been typed the only characters accepted are either <_^U> or a second $. .B 2 .TP 20 ^&CASE AND SPACE CONVERSION\& ^&Case Conversion\& .B 2 <_^A> Converts the next character to UPPER CASE if it is alphabetic. $n<_^A> processes the next n characters for possible conversion to upper case. .B 2 <_^B> Acts as for <_^A> but converts to LOWER CASE if it is alphabetic. .B 2 .TP 20 ^&Line Conversion\& .B 2 Insert and into the buffer at the current position of the cursor. If n is negative then the value of n determines the number of blank lines that PRECEDE the cursor after the process, regardless of the number before the process - useful for producing a standard number of blank lines between text paragraphs. Insert after the cursor a , and sufficient spacing characters to preserve the current column position of the remainder of the current line. If n is negative then the value of n determines the number of blank lines that FOLLOW the cursor after the process, regardless of the number before the process - useful for producing a standard number of blank lines between text paragraphs. .B 2 .TP 10 ^&Tab And Space Conversion\& .B 2 $2<_^V> Examine all spaces from the current position of the cursor and convert to s if possible. The cursor is to remain at the current postion at the end of the conversion process. $3<_^V> Convert all tabs to spaces, retaining the original alignment. Since this function may insert a lot of spaces in the buffer there is a possibility it might cause buffer overflow. To avoid this, format the file to have small buffers by inserting the form feed character <_^L> at convenient break points, or use $0[8] to unload the top half of the current buffer before the conversion process is executed. .PAGE ^&REPEATED EXECUTIONS\& .B 2 All functions which can take a numeric argument can receive that argument by the use of the sequence: $n<_^x> followed by the (signed) number, followed by the control character or keypad argument. .B 2 ^&MULTIPLE CHARACTER ENTRY\& .B 2 All formatting characters or printing characters may multiply entered into the buffer by preceding them with the numerical argument $n. .B 2 If n is set to 0 then the following set of keys execute the following reductions in the buffer: Reduce to zero the number of adjacent blank lines on either side of the cursor. Reduce to zero the adjacent space on either side of the cursor on the current line only. Delete all adjacent space and blank lines on either side of the current cursor position. .PAGE ^&TERMINATION OF EDITING SESSIONS\& .B 2 ^&Exit From EDV\& .B 2 <_^Z> copies the remainder of the input file to the output file, and close both files before returning to the Operating System level. Upon exit, EDV creates EDV.DEF to hold the name of the file invoked when EDV was started. This is accessed as the default, if it exists, to give the default file name to edit if one was not specified. .B 2 ^&SPECIAL FEATURES\& .B 2 [RED] prompts at the top of the screen with: n TECO * where n is the argument entered in the usual manner. At this point any TECO command may be executed, using the value of n (found in Q5) as an argument. The user may use the content of the string registers A, B, C and Y freely, though the values of the numeric parts of the first three cannot be guaranteed between uses of [RED]. The command entered is first saved in register Q9 and then excuted. To repeat the last command just enter . If the last TECO command uses the value of Q5 as a parameter, then repeat it with the sequence n; if n is not used then the value of Q5 is set to 1 by default. .B 2 .TP 15 <_^C> will abort the editing macro and return the user to TECO. This is signified by a "*" prompt in the left hand margin. The macro may be restarted by the entry of: <_^U>MI where <_^U> is used to clear the input of any characters inadvertenently typed in. This level will accept any valid TECO-11 command if the user is able to enter them. Unless the user uses the registers, then return to the editing macro should have know ill effect on its further functioning. $0[9] If this process is used, then it is meaningless instruction to the scrolling process; instead the buzzer will sound and the next charcter entered by the user will be inserted into the buffer literally as entered. In this manner, the experience user will be able to enter control-chracters for the purpose of writing TECO macro's, etc. .TP 20 ^®ISTER Y\& .B 2 Register Y is loaded with the content of USER.TEC if the system finds it in the current account. This should be a user written macro that may take the value of Q5 if so designed. .B 2 To execute the macro, use <_^=> or [PF4] (VT100). The sequence n may be used to pass a value in Q5 to the macro; if n is not used then the value of Q5 is set to 1 by default. .B 2 The macro may freely use the registers A, B and C and the numeric part of Y and Z, though only register Y will be guaranteed unaffected by the editing macro. .B 2 It is the responsibility of the writer of USER.TEC to ensure that it does not interfere with the proper functioning of the editing macro. The editing macro is not responsible for effects of using USER.TEC other than causing it's execution upon command from the user. .PAGE ^&ERROR RECOVERY\& .B 2 TECO-type errors should not occur with EDV. However it is possible to overfill the buffer, in which case a message such as this will be displayed: ?MEM memory overflow * You may try to recover from this by typing: <_^U>MI If that fails, then try: EX to effect an immediate and orderly exit from EDV. This will properly close the output files as if <_^Z> has been used, and provided there is still room on the ouput device. Otherwise it is left to the ingenuity of the user and wisdom of friends to avoid the loss of the buffer. Hint: try zeroing the content of register J with _.,.XJ, or registers 4, 8, V, Y, A, B, or C. .PAGE ^&INSTALLING EDV\& EDV may be installed on any system that supports TECO-11. There is no support available to the users of this macro other than friendly help from interested users of TECO. DIGITAL does not support this macro. The file EDITOR.TEC is a bootstrap macro that contains the following TECO macro conditionalised for TECO V35 upwards. EO-34"GZ"EGZ'HXZHK !Operating system/BASIC file switch support/TECO account! !RT-11 !-1EJ&255-7"EIDK:$' !RSTS/E !-1EJ&255-4"E1USG*' !RSX-11/IAS !-1EJ&255-4"LILB:[311,25]$' !VAX-VMS !(-1EJ/256-5)#(-1EJ&255)"EI[EDITOR]$' J:S]$"FJ:S:$UZ'0XWHKEI$518ETGZJ ::STEV$"SEI^EQWVT52.TEC$' ::STEC$"S0XHEI^EQWTECO.TEC$' ::SEDV$"S0XH2U4EI^EQWEDITOR.STA$' ::SEDS$"S0XH1U4EI^EQWEDITOR.STA$' HK'$$ The purpose of the bootstrap file is to conserve memory space and eliminate redundant start-up code. It has to be edited to conform to system requirements, as indicated below. To conserve disc space and ensure that all who use EDV do not have to have unnecessary copies in their own account, one of the following procedures may adopted as suits the users. .PAGE ^&RSTS/E\& Define the logical account "TC:" to hold all the macros. Place EDITOR.TEC (the bootstrap macro), EDITOR.STA (Setup macro) and EDITOR.EDV (the Editor macro) and any other TECO macros in the account "TC:". Set the protection of the Bootstrap, Setup and Editor macros: RUN $PIP *TC:EDITOR.TEC<104>,TC:EDITOR.STA<40>,TC:EDITOR.EDV<40>/RE _^Z The standard editor EDI has to be redefined to avoid a CCL conflict. Invoke UTILTY and perform the following commands: RUN $UTILTY < UTILTY's header line > ? CCL EDIT = ? CCL EDI-T = $EDIT.*; PRIV 30000 ? NAME TECO = TC:EDITOR.TEC ? CCL EDS- = TC:EDITOR.TEC; PRIV 0 ? CCL EDV- = TC:EDITOR.TEC; PRIV 0 ? CCL TEV- = TC:EDITOR.TEC; PRIV 0 ? EXIT and the system is installed. Make it permanent by patching the startup command file. The parameter PRIV above is a memory usage limit. If PRIV is 0 then the Editor will expand its memory on demand up to the user's memory limit. If PRIV is non-zero then the editor will not expand its memory over that number of k-words. For most installations, PRIV will be 0. If PRIV is included and EDITOR.TEC'S protection code is changed to <232>, TECO will expand its memory beyond the user's private memory limit (but never beyond the limit set by PRIV if any). .PAGE ^&RSX-11M\& Place EDITOR.STA (the Setup macro) and EDITOR.EDV (the Editor macro) in an account on LB: (preferably [311,25] - the unsupported account) with protections set for the world to read. Install TECO as the task ...EDS, ...EDV and ...TEV on RSX-11M systems or as $$$EDS, $$$EDV and $$$TEV on IAS/RSX-11 systems, Create the file TECO.TEC by copying and renaming EDITOR.TEC. This TECO macro will then execute either: LB:[311,25]EDITOR.STA and then LB:[311,25]EDITOR.EDS if the MCR command EDS is used, or LB:[311,25]EDITOR.STA and then LB:[311,25]EDITOR.EDV if the MCR command EDV is used, or LB:[311,25]VT52.TEC if the MCR command TEV is used .PAGE ^&VAX/VMS\& In a similar manner to RSX-11, install the files on a public account on the system device with an account name '[EDITOR]' or other suitable name and create the file TECO.TEC by copying and renaming EDITOR.TEC. Each user has to have a copy of this macro in their account if they wish to use the editor. The user must then install the commands in the login file to define the following: $ EDS :== MCR TEC @[EDITOR]EDITOR.TEC $ EDV :== MCR TEC @[EDITOR]EDITOR.TEC $ TEV :== MCR TEC @[EDITOR]EDITOR.TEC and have a copy of TECO.TEC in their account when using the editing macros. BUG: Always invoke the editor without a file specification - it will then prompt for the required file-specification without a problem. .PAGE