u`u~oq" !change!:ic!:x1:x2sq1-q1diq2!:x1:x2sq1-q1diq2o?end_of_lib? !comma!!,!<:l 0t:vw2q2-1"ng2-dq2-2"e0a-056."e-d0;'''c>0u2o?end_of_lib? !create_library!i/skeleton_library/152<040.i>.-168,.x1 -168d es1/teco$teco_search/u2q2"e:t/No teco library found./=o?end_of_lib?' i/ec|copy /g1q2-167di/registers.teco|/.-24-q2,.x1-q1dm10u1o?end_of_lib? !delete!:id?u5w.u3:x1:x2sq1.-q1u4sq2q5-.+q4"gq4,.k:'q3j:t/Too much to delete. /'?:x1:x2q`mdq1q2o?end_of_lib? !equals!!line_no!!=!:i=/(.u10u2jq1j0a-12."e%2w'q2)/ u1q1,q~"eq1,q`"e:i1/:x1m=/o/finish_lib_file/' :i1/:x1q`m=/o/finish_lib_file/' :i1/:x1q~,q`m=/o/finish_lib_file/o?end_of_lib? !help!:ih|:x1g1168-q1<040.i>.-168,.x4-168des4/teco$teco_search/"e0u1:t/No such macro./=o/end/' .u2012.i012.ig1q2,.x1q2,.keiq40u4.u3q2+2j<:sq1;.-q3;1a,041."l0l.u4:n/^$/;q4,.t0;'> q4"e:t/No macro description found./='0u1q2,q3k!end!|:x1mhq1o?end_of_lib? !library!:x1:x4.u2z-.u3ei/registers.teco/q2j2li/!/g1i/!/g4i/o?end_of_lib?/012.i012.i .u4i/:x"q2,z-q3eo!registers.teco!q2,z-q3kec!an registers.teco /g1i/.teco!0u1/q4,.x1q4,.ko?finish_lib_file?o?end_of_lib? !library_registers!:t| Use of registers: macro Registers Name Numeric Char Description of Use , See the description of the comma teco macro. = See the description of the equals teco macro. change c 1 2 This macro takes two string arguments. It searches for the first, deletes it, and inserts the second. The macro is stored in Q-register c, and the strings in Q-registers 1 and 2. comma 2 This macro is similar to the edm comment mode request. Starting on the current line, each line is typed without its newline and anything then typed by the user is appended to the line. If the user types only a period ("."), this macro is terminated without affecting the last line. Note - for blank lines nothing is typed although user input is expected. create_library 1 2 This macro creates a teco marco library, registers.teco, in the working directory to which macros may be added with the library macro, macros deleted with the unlib macro, macro descriptions added with the write_help macro, and macro descriptions read with the help macro. delete 3 4 5 d 1 2 This macro takes two string arguments and an optional numeric one. It searches for the first string, then searches for the second; the two search strings and any intervening characters define the delete string. If the length of the delete string is less than the numeric argument, or no numeric argument is given, the defined string is then deleted. The macro is stored in Q-register d and the strings in Q-registers 1 and 2. equals 1 2 = This macro returns an expression whose value is the current line number. This is computed every time the macro is called by counting the number of newlines between the beginning of the buffer and the current pointer. The macro is stored in Q-register =. This macro may be used in an expression as a numeric quantity. help 1 2 3 4 h This macro takes one string argument. The string contains the name of a macro, and teco search rules are used to locate the macro. If a description of the macro exists, it is typed. This macro is stored in Q-register h. library 1 2 3 4 This macro takes two string arguments and adds a macro to registers.teco in the working directory. The first string is the name of the macro, and the second is the actual macro text. This macro stores the macro text in the library in the proper format, and adds the name macro.teco to the library. library_registers This macro takes no arguments and types out all macro descriptions for teco macros in the directory containing teco. These are the teco macros provided by the installation. line_no See description of the equals teco macro. list 1 2 This macro takes no arguments and lists **.teco in the directory containing teco. These are the teco macros provided by the installation. list_all_macros 1 2 This macro lists **.teco in the working directory, login directory, and the directory containing teco. list_text_registers 1 2 3 This macro takes no arguments. It types out the contents of all Q-registers that contain text except Q-registers ",',1,2,3 . For each text register, a line containing a q and the register name is typed; then the contents of the register are typed; finally, a newline is typed. registers This macro takes no arguments. It types out all the macro descriptions for a user teco macro library. This macro is always part of a user teco macro library. restart * r This macro takes one string argument. This string is the relative pathname of the text to be edited. The buffer is emptied, the new text read, and the buffer pointer set to the beginning of the text. The macro is stored in Q-register r and the relative pathname in Q-register *. See description of the start_up teco macro. start_up 1 * f w This macro takes no arguments; however, it attempts to pop Q-registers off the pushdown stack. This macro is called automatically when teco is entered from command level. It allows the user to specify none, one, or two arguments to teco. First, Q-registers f and w are loaded with the string eoq*. If one or more arguments are given, the first is taken as the relative pathname of the text to be edited and stored in Q-register *. The text is read and the buffer pointer set to the beginning of the text. If there is more than one argument, the second is stored in Q-register * and becomes the relative pathname of the output file. type 1 2 3 t This macro types out the current line and possibly other lines with a <> to indicate the current pointer position. It can take two numeric arguments; both are optional. If no arguments are given, the current line is typed. If only one argument is given, the macro types what the t command would type with that argument, but includes the entire current line. If both arguments are given, the first must be negative and the second positive. Each will be used as an argument to the t command. The macro is stored in Q-register t. unlib 1 2 3 4 This macro takes one string argument, the name of a macro in a user teco macro library, and removes it from the library. The library from which the macro is removed must be in the working directory and have as one of its names registers.teco. The text for the macro is removed from the library, and the name macro.teco is deleted. upper_case This macro takes no arguments. It goes through the current text and converts all lowercase letters to uppercase. Only letters are affected. The pointer is not moved. write_help 1 5 6 7 8 This macro allows a user to write a macro description easily. No arguments are given; when input is asked for, the user may type in his descriptive text. If a line of input ends in a dollar sign ("$"), then the line is executed; otherwise, the line is inserted as text. A single blank line ends the macro. |o?end_of_lib? !list_all_macros!ec?ioa_ "^/^-^-working directory";list -nm -nhe **.teco? ec?ioa_ "^-^-home directory";ln -sm -lk -pn [home_dir] **.teco? !list! i/skeleton_library/152<040.i>.-168,.x1 -168d es1/teco$teco_search/u2q2"e:t/No teco library found./=o?end_of_lib?' i?ec|ioa_ "^-^-teco library";ln -sm -lk -pn [directory ?g1q2-168di?] **.teco|?.-q2-66,.x1-q1dm10u1o?end_of_lib? !list_text_registers!i'!#$%&()*+,-./0456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ '90r0u1.u2 900u3o?end_of_lib? !restart!:ir|:x*hkeiq*j|:x*hkeiq*jo?end_of_lib? !start_up!]1 :iw{eoq*{ :ifqw q1"n]*eiq*jq1-1"g]*'' o?end_of_lib? !type!:it|u2u1u3 q1,q3"e0u1 q2"l q2u1 1u2 ''q2,q3"e1u2'$["i/<>/]"q1t-3dq2t|q~,q`mto?end_of_lib? !unlib!:x1.u2z-.u3ei/registers.teco/q2ji/!/g1i/!/q2,.x4q2,.k:sq4"n.-q4u4s/o?end_of_lib? /q4,.ki/ec%dn /g1i/.teco%:x"q2,z-q3eo%registers.teco%q2,z-q3k0u1/q4,.x1q4,.ko/finish_lib_file/'q2,z-q3k0u1o?end_of_lib? !upper_case!.u2jz<1au1cq1,140."gq1,173."l-dq1-40.i''>q2jo?end_of_lib? !write_help!.u6z-.u7:i1|ei/registers.teco/q6ji/!/i/registers/i/!/.-11,.x8-11dsq8l4t4lz-.u8 <:vw5 1-q5;g5-1a-044."e-q5dm5'>z-q8ji/ /:x8q6,z-q7eo/registers.teco/q6,z-q7k0u10u5|o/finish_lib_file/o?end_of_lib? !finish_lib_file!m1!end_of_lib! ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved