Summary of Teco Commands Lower Case a without argument>>40<<. appends next page to buffer with positive argument between 1 and 3>>40<<. takes from 1 to 3 characters following the a, packs them left justified, and standdds in expression as that value. with negative argument between -1 and -3>>40<<. takes from 1 to 3 characters following current position of pointer in buffer, does as above. Pointer moves over characters examined. b has the value of the position at the beginning of the buffer c with single argument, positive or negative>>40<<. moves over number of characters specified by argument. Negative argument causes reverse motion. d with single argument, positive or negative>>40<<. deletes specified number of characters after pointer (before pointer if arg is negative). e inserts stop code at pointer. f with single positive argument>>40<<. feeds number of lines of blank tape specified by argument. g with single argument consisting of single q register into which block of characters has been 'x'ed>>40<<. inserts previously stored block of characters at pointer. with no argument>>40<<. does garbage collection h with single positive argument, n>>40<<. inserts the n characters following the 'h' into the buffer at the pointer. i with no argument and sw3 down>>40<<. inserts into buffer at pointer characters following i until center dot. with no argument and sw3 up>>40<<. takes character immediately following 'i' as delimiter>>40<<, inserts characters until second occurance of delimiter. with argument magnitude less than 4096>>40<<. inserts argument into buffer at pointer as signed decimal number. j with single argument which is position in buffer>>40<<. moves pointer to specified position. k with single positive argument>>40<<. deletes characters from pointer to and including n>>40<>40<>40<<. deletes characters from but not including n>>40<>40<>40<<. deletes characters between specified two buffer positions. / 2 l with single positive (negative) argument>>40<<. moves pointer forward (backward) until n>>40<>40<>40<<. inserts commands from typewriter in command string following the 'm'>>40<<, commences executing same when upper case followed by lower case is typed in. with single argument>>40<<. defines macro having as its name the characters between the 'm' and the first following comma (only first three are recognized). Macro definition consists of characters between name-terminating comma and first occurance of overbar immediately followed by period. Nested definitions are not allowed. Macros are called by placing an overbar immediately before the name, and a comma immediately after the name. Nested calls are allowed. Macros may be redefined. n causes the contents of the buffer to be punched and the program to halt. 'CONTINUE' to execute additional commands. o with single positive arguement, n>>40<<. inserts n characters into buffer at pointer. Characters are indicated by their concise code values typed in octal following the 'o'. p with single positive argument,,unches contents of buffer and reads in next page n times. Does not attempt to read in new page after last page punched if 'w' immediately follows 'p'. q followed by single letter or number>>40<<. designates one of 36 available temporary storage registers. r with single argument, positive or negative>>40<<. moves pointer in reverse over specified number of characteeers. Negative argument causes forward motion. s with no argument>>40<<. presumes string following 's' in format same as 'i' (including sw3 option). Moves pointer forward until identical string is found. If string is not found in buffer, contents of buffer are punched and new page is read in anddd search continues. If sw6 is up, search is discontinued if string is not in buffer>>40<<, string is then typed out followed by question mark, and commands following the 's' are ignored. with single argument which is position of block of characters including terminator as specified above located in buffer or 'q' storage>>40<<. searches for string in storage instead of following 's'. sw6 option as above. t takes arguments in same forms as 'k'. Types out characters on on-line typewriter. Pointer does not move. u stores argument in 'q' register immediately following 'u'. >>37<< 3 v same as 't' except displays characters on scope instead of typing. w prevents 'p' from reading in new page after last page has been punched. x takes arguments in same form as 'k'>>40<<, must be followed by 'q' register. Places characters in storage. Leaves address in specified 'q' register such that characters may be retrieved by 'g'. Pointer does not move>>40<<, characters are not deleted from buffer. y deletes entire contents of buffer, reads in new page. z has the value of the position at the end of the buffer. >>04<< Upper Case A causes longitudinal parity character to be punched following stop code for all succeding pages. C character consists of xor of all characters on page with delete bit punched. TECO always examines the line immediately followinggstopcode. If it does not have the delete bit punched, it is ignored. If the delete bit is punched, the character is compared with one computed while reading the page, and a disagreement causes an informative typeout. B with single positive argument>>40<<. causes output to be written on tape unit number specified by argument. with single negative argument>>40<<. causes output to be written on drum field number as spppecified by magnitude of argument. C causes the entire stored command string to be inserted in the buffer at the pointer. Command string is not changed. D with single argument>>40<<. sets up size of characters for display routine. 2 is minimum displayable size. Routine is initially set to 4. E causes TECO to discontinue punching longitudinal parity check character (A) for succeeding pages. F with arguments same as 's'>>40<<. operates same as 's' except does not punch pages. G kills present command string and buffer and commences reading command tape. H dismisses reader and punch (time share). I with single argument>>40<<. specifies number of places between tab stops for disppJ unused K kills entire command string, moves entire buffer to command string, kills entire buffer, commences executing commands at beginning of strrring just moved. All macro definitions are killed. Loop depth is set to 0. L with no argument>>40<<. rewinds both tape units being used. with single positive argument>>40<<. rewinds specified tape unit. M unused N unused O with single argument>>40<<. causes argument to be printed on line as signed octal number. P causes output to be punched, clears punch buffer, requests punch. If punch is not available, 'punch busy' is typed. Typing in carriage return causes request to be made again. Q unused R causes input to be taken from paper tape reader, clears reader buffer, requests reader. If reader unavailable, action as in 'P'. 1 5 S with arguments same as 's'>>40<<. operates same as 's' except does not move beyond end of current buffer if string is not found. If string is found, entire 'S' commands has value -1. If string is not found, pointer is at end of buffer and entire 'S' command has value 0. T with single positive argument which is tape unit number>>40<<. causes input to be taken from specified tape unit instead of paper tape reader. with single negative argument>>40<<. causes input to be tak>>60<>40<<, terminates macro names>>40<<, indicates point at which value for loop control is found = [equals] with single argument>>40<<. cuases argument to be printed on line as signed decimal number. . [period] has value of pointer. x [times]cates multiplication in command string expression. / [slash] indicates division if within command string expression>>40<<, indicates start of comment if not within expression. Comment continues until next carriage return. Comment is typed on line if sw4 is up of if first / is followed by a second. >>40<< [centerdot] terminates search and insert strings if sw3 down. - [minus] indicates subtraction in command string expression. >>56<< [overbar] indicates beginning of macro name if followed by legal macro name character (letter or number),indicates end of macro definition if followed by period. >>40<<( [centerdot, open paren] indicates start of loop. Loop is executed if eexpression immediately before next comma is negative. If expression is zero of positive, commands are skipped until matching >>40<<) [centerdot, close paren] is encountered. >>40<<) [centerdot, close paren] loops back to matching >>40<<( [center dot, open paren]. >>52<< Error Procedure There are various ways in which TECO can be given commands which it feels are impossible to execute. Examples of these are inserts and serches with no terminating character in the remainder of the command string, an 'h' or 'o' command with an argument larger than the number of characters remaining in the command string, or an 'o' command in which a non-octal character is encountered. When one of these situations arises, TECO will print 'error' on line. Following will be a typeout of the last 40 (decimal) characters encountered in the command string. The last command in this string is responsible for the error. Following that is a typeout of various registers containing pointers to positions in the buffer. buf is the first character address being used for material stored by 'x' commands. tsl is the first character address of the command string. (All material from buf to tsl is 'x' storage.) cps is the character address of the present position in the command string. b is the character address of the beginning of the working buffer (same value as command 'b'). . is the character address of the pointer in the buffer. z is the character address of the first location not used by the buffer. (equal to the value of command 'z' plus 1). The quotient obtained by dividing the character address by 3 is the actual memory location. The remainder, 0, 1 or 2 indicates the left, middle or right 6 bits respectively of the word. TECO then enters a special post error typein loop in which the following characters are meaningful. Carriage return ignores all commands following error, re-enters regular typein loop if sw1 up, halts if sw1 down. p continues executing commands following error. m enters regular typein loop. Commands typed in will be executed, then commands in command string following error will be executed. overbar if sw5 down types out next character in command string. If sw5 up types out commands until end of command string reached or sw5 lowered. b sets command position pointer to beginning of command string. Usually one should type carriage return and type in the corrected commands. The other options may be useful in special circumstances. >>53<<