" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " This include file contains some common macros used in describing the characters " used by the Network Virtual Terminal and the TTY-33 compatible Terminal as " accessed via the ARPA Network. " can be referenced by that name: " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " begin_table " " Macro to define some things and start the table header. " ¯o begin_table define_fields use TABLE_LC START: segdef &0 its -1,1 dec 1 vfd 36/END-START its -1,1 " entry to convert output its -1,1 " ... &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " end_table " " Macro used at end of table to close out the table and put things in proper order. " ¯o end_table use TABLE_LC null use LITERAL_LC null use LAST_LC END: join /text/TABLE_LC,LITERAL_LC,LAST_LC &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " define_fields " " Macro used to define the fields of the various micro-operations. " ¯o define_fields bool H_field,020000 " 760000 -- horizontal width field bool V_field,000400 " 017400 -- vertical width field bool S_field,000040 " 000340 -- descriptor field bool F_field,000001 " 000037 -- function field equ M_one,01 " Generalized movement of plus one equ M_bs,02 " Generalized movement of minus one equ M_cr,03 " Generalized movement to zero equ M_max,04 " Generalized movement ot maximum value equ M_tab,05 " Generalized movement to next tabulation equ M_two,06 " Generalized movement of plus two equ M_three,07 " Generalized movement of plus three equ H_one,M_one*H_field equ H_bs,M_bs*H_field equ H_cr,M_cr*H_field equ H_tab,M_tab*H_field equ H_two,M_two*H_field equ H_three,M_three*H_field equ V_one,M_one*V_field equ V_tab,M_tab*V_field equ V_ff,M_max*V_field equ V_top,M_cr*V_field equ S_visible,01*S_field equ S_redshift,02*S_field equ S_blackshift,03*S_field equ S_audible,04*S_field equ S_whitespace,05*S_field equ F_onechar,01*F_field equ F_twochar,02*F_field equ F_exact_sequence,03*F_field equ F_octal_escape,04*F_field equ F_twochar_sequence,05*F_field equ F_ascii_sequence,06*F_field equ F_ignore,20*F_field &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " input match_char,output_char,escape_list,actions,flags " " Most basic macro used for input characters. " ¯o input vfd o9/&1,o9/&2,18/&3,18/&4,18/&5 &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " output actions,datafield " "Most basic macro used for output characters. " ¯o output vfd 18/&1,&2 &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " escape_in_octal value " " Macro used to indicate that this entry is to be escaped in octal format. " ¯o escape_in_octal &(1 output F_octal_escape,(o9/&i,o9/000) &) &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ignore_output input_value " " Macro used to indicate that this character is to be ignored on output. " ¯o ignore_output &(1 output 0,18/0 &) &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " printing_character output_value " " Macro used to cause "output_value" to be put into output buffer for this value. " ¯o printing_character &(1 output H_one+S_visible+F_onechar,(o9/&i,o9/0) &) &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " normal_input_character input_value " " Macro used to cause "input_value" to be places into input buffer for this value. " ¯o normal_input_character &(1 input 000,&i,0,H_one+S_visible,0 &) &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ignored_input_character input_value " " Macro used to cause this input character to be totally ignored. " ¯o ignored_input_character &(1 input 000,&i,0,F_ignore,0 &) &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " whitespace type " " Macro used to indicate that this output character is whitespace and need not be placed " into the output buffer at this time. However, the effective movement is the "type" " movement, and the desired output position should be changed. " ¯o whitespace &(1 output S_whitespace+&i,o18/0 &) &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " chars_in_data_field char1,char2 " " Macro used to indicate that both characters in the description field are to be " placed into the output buffer. " ¯o chars_in_data_field output F_twochar_sequence,(o9/&1,o9/&2) &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " escape_entry input_char,output_char,-movement- " " Macro used to indicate the proper fields for the second (or subsequent) characters " of an escape sequence. If the movement is unspecified, a movement of two visible " normal characters will be used. " ¯o escape_entry set ESCAPE_COUNTER,ESCAPE_COUNTER+1 ife &3,,X " input &1,&2,0,H_two+S_visible,0 vfd o9/&1,o9/&2,18/0,18/H_two+S_visible,18/0 ifend ine &3,,X " input &1,&2,0,&3,0 vfd o9/&1,o9/&2,18/0,18/&3,18/0 ifend &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " begin_escape char " " Macro used to indicate that this character is the start of an escape sequence. " "char" is the character to be placed into the output buffer if no escape sequence " is matched by subsequent characters. " ¯o begin_escape input 000,&1,&U-START,H_one+S_visible,0 use LITERAL_LC vfd o36/&U set &U,0 &(2 set &U,&U+1 escape_entry &i &) use TABLE_LC &end " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " End of macro include file. " " " ----------------------------------------------------------- " " " " 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 " "