These are files containing EVE procedures that started as personal hacks and as creative laziness on the part of the author. In general, they are dependent upon various EVE procedures; they also borrow from ideas found in other DECUS TPU submissions. The author's own source file is in MAIN.TPU; a number of associated files have either individual TPU procedures, or groups of related TPU procedures in them. Generally, to use one of these procedures, EDIT/TPU the associated source file, DO TPU COMPILE ( CURRENT_BUFFER ) , bind the command to a key (see KEYDEFS.TPU for examples of that) , and DO SAVE EXTENDED TPU. Then EDIT/TPU/SECTION=[the section file created by the SAVE] will be the extended EVE editor you just created. To get the author's current EVE interface, start with ROMTPU.SEC, compile MAIN.TPU, and save the result (which will be the same as TPU.SEC). ASCII.TPU has a procedure for inserting ASCII characters into text BUFMANAGER.TPU: A windowing buffer-manager that allows you to see a summary of the information about the current buffers, return to the buffer from which BUFMANAGER was called, go to buffers, delete buffers, write buffers out to disk, read in files from disk, FORTRAN-compile the currently-highlighted buffer (using the TPU procedure in F_COMPILE.TPU), and exit from EVE. CHANGECASE.TPU has procedures for upcasing, downcasing, capitalizing either single words, or the entire select_range, if any. COUNT.TPU: Count the characters, words (defined to be any contiguous sequence of non-whitespace characters), and lines in the current buffer, or in the current select-range, if there is one. NOTE: this procedure is NOT blindingly fast. DATE.TPU: Insert the current system date in a reasonable format at the current editing position. DECIMAL.TPU: Prompt for a number in decimal, and display the corresponding hexadecimal in the message-window. DEL_PAT_LINES.TPU: Prompt for a text string to be searched for and deleted, then repeatedly prompt for file-names. For each file read in, search through it for the search-string, and delete all lines in which the string appears. DETAB.TPU replaces tabs by spaces, assuming tab spacing of 8 starting at column 1. DISPLAY_CHAR.TPU displays ASCII number(in both decimal and hex), name, control-sequence, and printing character(if any) associated with the character under the cursor. ERASURES.TPU does variations on "erase rest of word" , "erase rest-of- line" FILELIST.TPU: Prompt for a file-spec, and display a listing of the corresponding files in the DCL-buffer. Useful for creating command procedures via cut-and-paste. (In that context, see also FILLS.TPU) FILLS.TPU: Contains procedures to pre-pend or post-pend a source string to all the rest of the lines in the current buffer, or in the current select-range, if there is one. Useful (with FILELIST) for creating command-procedures via cut-and-paste. FINDLABELS.TPU: Find the next FORTRAN label (line-begin, followed by 0 to 4 blanks, followed by a digit) in the current direction. FIXLABELS.TPU takes FORTRAN labels and left-justifies them to column 1 (as opposed to the practice of right-justifying them to column 5 , as done by some misguided individuals at the author's location). FIX_CRLFS.TPU replaces , , and characters by TPU LINE_BEGINs and LINE_ENDs. FIX_LIS.TPU: generates headerless, page-break-free FORTRAN listing files by doing global search for formfeed character, then deleting four lines starting at that position (thereby deleting the page break and the header inserted by the compiler. Makes it much easier to compare machine-code listings. For safety's sake, this does check that it is working on a listing-file. F_COMPILE.TPU: FORTRAN-compile (with /LIST/EXTEND_SOURCE options) the file in the current buffer; if there are compilation errors, split the screen (if necessary) and display the listing file centered on the first error-message. Set the EVE search-target to "FORT-" to find any additional errors. F_PRETTY.TPU: Does global search-and-replace with the intent of generating a reasonable amount of whitespace from "dense" FORTRAN code -- replacing "(" by " ( ", etc., and then fixing extra sets of blanks introduced. Because of fix-ups, does not affect reasonably-styled FORTRAN much. MANUAL CORRECTION of line-lengths REQUIRED afterward. Also contains CJC_INDENT_BLOCK which indents the current select-range by 3 spaces (not indenting FORTRAN comments; handles FORTRAN labels correctly. ASSUMES ANSI-style FORTRAN with no tabs. F_IBM.TPU: Does part of conversion from VAX FORTRAN to IBM FORTRAN-- converts *-comments, !-comments, D-lines to C-comments, fixes up empty lines, replaces '_' by '$'. F_STRUC.TPU: Contains procedures to build FORTRAN DO-loops and IF-THEN- ELSEIF-THEN-ELSE blocks and maintain structured indenting. Requires INDENT.TPU; works using the indentation structure defined there. GLOBAL_S_R.TPU: Contains procedures to do global search-and-replace on: the current buffer; a sequence of files entered from the keyboard. HEX.TPU: Prompt for a number in hexadecimal, and display the equivalent decimal in the message-window. INDENT.TPU: Procedures for automatic indenting/outdenting; for setting the left margin at the current cursor-position. KEYDEFS.TPU: Some keydefs for things you may or may not have thought of. MATCHPAREN.TPU: Find the first paren, brace, or bracket in the current direction. Move in the appropriate direction until the matching symbol (compensating for nesting) is found. If there is none, display an appropriate error-message. MOVES.TPU: Procedures for moving cursor to top, middle, bottom of screen; for prompting for a displacement and jumping the requested number of lines forward or back (use negative displacement for that) from the current position; for generating FORTRAN line-continuations and comments. NEWKEYS.TPU: Defines CTRL4, CTRL5, CTRL6, CTRL7 keys, so that definitions may be bound to them. (Other EVE-not-defined control-keys interfere with "normal" keys: CTRL3 is ESC, for example). POSITION.TPU: Procedure to report the line and column-numbers for the current position. SETWINDOWS.TPU: Procedure to set up variable-height windows for EVE, using the current cursor position to determine placement of window margins. TOGWINDOW.TPU: Cycles back and forth between ONE WINDOW / TWO WINDOWS. WIDTHTOGGLE.TPU: Procedure to toggle the width and margin back and forth among 7--72 , 1--80 , 1--132. WRITES.TPU: Procedure to write either the current select-range or the current buffer to a file. Carlie J. Coats, Jr. Computer Sciences Corporation P. O. Box 12767 Research Triangle Park, N. C. 27709 (919)541-2563