dcl 1 mpout static, 2 n fixed bin init(4), 2 pt1 ptr, 2 pt2 ptr, 2 pt3 ptr, 2 pt4 ptr; /* VARIABLE TOKEN DEFINITIONS */ dcl 1 fkey_type9 static, 2 header (4) fixed bin init(112,0,0,9), 2 repl_ptr (2) ptr init((2)null()), 2 fill1 bit(108) init(""b), 2 file_key_info, 3 fb (6) fixed bin init(0,0,0,0,0,0), 3 flags1 bit(36) init(""b), 3 flags2 bit(36) init(""b), 3 seg fixed bin, 3 off fixed bin, 2 fill2 (7) fixed bin init(0,0,0,0,0,0,0); dcl 1 type7 static, 2 size fixed bin init(52), 2 line fixed bin init(0), 2 column fixed bin init(0), 2 type fixed bin init(7), 2 string_ptr ptr init(null()), 2 prev_rec ptr init(null()), 2 bits1 bit(4) init(""b), 2 section_name bit(1) init("1"b), 2 declarative_proc bit(1) init("1"b), 2 bits2 bit(3) init(""b), 2 priority char(2) init("00"), 2 bits3 bit(9) init(""b), 2 section_num fixed bin init(0), 2 proc_num fixed bin init(0), 2 def_line fixed bin init(0), 2 name_size fixed bin init(0); /* CONSTANT TOKEN DEFINITIONS */ dcl 1 zero_type1 static options(constant), 2 size fixed bin init(28), 2 line fixed bin init(0), 2 column fixed bin init(0), 2 type fixed bin init(1), 2 key fixed bin init(180), /* ZERO */ 2 bits bit(36) init("001"b); /* figurative constant */ dcl 1 skey12_type9 static , 2 header (4) fixed bin init(112,0,0,9), 2 repl_ptr (2) ptr init((2)null()), 2 fill1 bit(108) init(""b), 2 file_key_info, 3 fb1 (3) fixed bin init(0,0,0), 3 size fixed bin init(2), 3 places_left fixed bin init(2), 3 places_right fixed bin init(0), 3 flags1 bit(36) init("010000100100000001000000000100000000"b), 3 flags2 bit(36) init(""b), 3 seg fixed bin init(1000), /* stack */ 3 off fixed bin init(42*4), /* pr6|42 */ 2 fill2 (7) fixed bin init(0,0,0,0,0,0,0); dcl 1 skey3_type9 static , 2 header (4) fixed bin init(112,0,0,9), 2 repl_ptr (2) ptr init((2)null()), 2 fill1 bit(108) init(""b), 2 file_key_info, 3 fb1 (3) fixed bin init(0,0,0), 3 size fixed bin init(4), 3 fb2 (2) fixed bin init(0,0), 3 flags1 bit(36) init("010000100100000000010000000100000000"b), 3 flags2 bit(36) init(""b), 3 seg fixed bin init(1000), /* stack */ 3 off fixed bin init(43*4), /* pr6|43 */ 2 fill2 (7) fixed bin init(0,0,0,0,0,0,0); dcl 1 move_type19 static options(constant), 2 size fixed bin init(38), 2 line fixed bin init(0), 2 column fixed bin init(0), 2 type fixed bin init(19), 2 verb fixed bin init(18), /* move */ 2 e fixed bin init(1), 2 h fixed bin init(0), 2 i fixed bin init(0), 2 j fixed bin init(0), 2 a bit(3) init(""b), 2 b bit(1) init(""b), 2 c bit(1) init(""b), 2 d bit(2) init(""b), 2 f bit(2) init(""b), 2 g bit(2) init(""b), 2 k bit(5) init(""b); dcl 1 perform_type19 static options(constant), 2 size fixed bin init(38), 2 line fixed bin init(0), 2 column fixed bin init(0), 2 type fixed bin init(19), 2 verb fixed bin init(20), /* perform */ 2 e fixed bin init(1), 2 h fixed bin init(0), 2 i fixed bin init(0), 2 j fixed bin init(0), 2 a bit(3) init(""b), 2 b bit(1) init(""b), 2 c bit(1) init(""b), 2 d bit(2) init(""b), 2 f bit(2) init(""b), 2 g bit(2) init(""b), 2 k bit(5) init(""b); /* INSTRUCTION DEFINITIONS */ dcl cmpa_dl_instr bit(36) static init( "000000000000000000001001101000000111"b); dcl tra_instr bit(36) static options(constant) init( "000000000000000000111001000000000100"b); dcl tnz_instr bit(36) static options(constant) init( "000000000000000000110000001000000100"b); dcl set_mode_instr(2) bit(36) static options(constant) init( "001000000000000010010011101001000000"b, /* lda pr1|2 */ "000000000000110000011111101000000111"b); /* ana 60,dl */ dcl check_is_instr(2) bit(36) static options(constant) init( "110000000000101001010011101001000000"b, /* lda pr6|51 */ "000000000000000000110000001000000100"b); /* tnz [is_tag],ic */ dcl ( extend_mode fixed bin init(0), input_mode fixed bin init(16), i_o_mode fixed bin init(32), output_mode fixed bin init(48) ) static options(constant); /* ENTRY DEFINITIONS */ /* utilities */ dcl cobol_reg_manager$set_pr5 entry; dcl cobol_emit entry(ptr,ptr,fixed bin); dcl cobol_read_rand entry(fixed bin,char(5),ptr); dcl cobol_make_tagref entry(fixed bin,fixed bin,ptr); dcl cobol_define_tag entry(fixed bin); /* sub-generators */ dcl cobol_gen_error entry(fixed bin,fixed bin); dcl cobol_gen_error$use entry(fixed bin); dcl cobol_perform_gen entry(ptr); dcl cobol_move_gen entry(ptr); dcl cobol_set_fsbptr entry(ptr); /***** Declaration for builtin function *****/ dcl (substr,mod,binary,fixed,addr,addrel,rel,length, string,unspec,null,index) builtin; /***** End of declaration for builtin function *****/ %include cobol_file_table; %include cobol_file_key; %include cobol_; %include cobol_ext_; %include cobol_fixed_common; */ ----------------------------------------------------------- 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 */