/* BEGIN INCLUDE FILE ... cobol_pd_decls.incl.pl1 */ /* <<< SYSTEM RECORDS USED BY PD SYNTAX >>> */ /* <<< MODIFIED ON 12-24-75 by fch >>> */ /* <<< MODIFIED ON 1-15_76 by fch >>> */ /* <<< MODIFIED ON 1-21-76 by fch >>> */ declare 1 header, 2 size fixed bin(15), 2 line fixed bin(15), 2 column fixed bin(7), 2 type fixed bin(7), 2 body char(2000); declare 1 alphabet_name based(addr_record), %include cobol_TYPE40; /* BEGIN INCLUDE FILE ... cobol_type1.incl.pl1 */ /* <<< TYPE 1 RESERVED WORD TOKEN >>> */ /* <<< LAST MODIFIED ON 07-18-74 >>> */ /* ***STRUCTURE SIZE INFORMATION*** */ /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: HARDWARE | SIZE (BYTES) --------------------------------- 645/6180 | 28 P7 | 15 --------------------------------- */ /* A reserved word token is created in the minpral files for each occurrence of a reserved word in the source program. The value of the key field indicates the specific reserved word which a type 1 token represents. */ /* THE RESERVED WORD TOKEN STRUCTURE */ dcl 1 reserved_word based (addr_record), %include cobol_TYPE1; /* <<< END OF TYPE 1 RESERVED WORD TOKEN >>> */ /* END INCLUDE FILE ... cobol_type1.incl.pl1 */ /* BEGIN INCLUDE FILE ... cobol_type2.incl.pl1 */ /* <<< TYPE 2 NUMERIC LITERAL TOKEN >>> */ /* <<< MODIFIED ON 11-29-74 by orn >>> */ /* <<< MODIFIED ON 12-18-74 by fch >>> */ /* ***STRUCTURE SIZE INFORMATION*** */ /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: HARDWARE | SIZE (BYTES) --------------------------------- 6180 | 36 P7 | 19 --------------------------------- */ /* A type 2 numeric literal token is entered into the minpral file by the lexical analysis phase for each numeric literal encountered in the source program. */ /* THE NUMERIC LITERAL TOKEN STRUCTURE */ dcl 1 numeric_lit based (addr_record), %include cobol_TYPE2; /* <<< END OF TYPE 2 NUMERIC LITERAL TOKEN >>> */ /* END INCLUDE FILE ... cobol_type2.incl.pl1 */ /* BEGIN INCLUDE FILE ... cobol_type3.incl.pl1 */ /* <<< TYPE 3 ALPHANUMERIC LITERAL TOKEN >>> */ /* <<< LAST MODIFIED ON 11-29-74 by orn >>> */ /* ***STRUCTURE SIZE INFORMATION*** */ /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: HARDWARE | SIZE (BYTES) --------------------------------- 6180 | 24 P7 | 11 --------------------------------- */ /* A type 3 alphanumeric literal token is entered into the minpral file by the lexical analysis phase for each alphanumeric literal encountered in the source program. */ /* THE ALPHANUMERIC LITERAL TOKEN STRUCTURE */ dcl 1 alphanum_lit based (addr_record), %include cobol_TYPE3; /* <<< END OF TYPE 3 ALPHANUMERIC LITERAL TOKEN >>> */ /* END INCLUDE FILE ... cobol_type3.incl.pl1 */ dcl 1 message based (addr_record), /* 2 header */ 02 size fixed bin (15), 02 line fixed bin(15), 02 column fixed bin (7), 02 type fixed bin (7), 02 run fixed bin (7), /* phase no issuing diagnostic for pd it is */ /* 2 body */ 02 number fixed bin (15), 02 info bit (15), /* bit1 means parameter to be inserted */ 02 rep_bit bit (15), /* bit2 maans token has been replaced */ 02 infoa bit (6), 02 length fixed bin (15), 02 body char (message.length); dcl 01 source based (addr_record), /* 2 header */ 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), /* 2 body */ 02 info bit (8), 02 length fixed bin (15), 02 image char (source.length); /* BEGIN INCLUDE FILE ... cobol_type7.incl.pl1 */ /* <<< TYPE 7 PROCEDURE DEFINITION TOKEN >>> */ /* <<< LAST MODIFIED ON 08-24-74 >>> */ /* ***STRUCTURE SIZE INFORMATION*** */ /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: HARDWARE | SIZE (BYTES) --------------------------------- 6180 | 52 P7 | 28 --------------------------------- */ /* A type 7 procedure definition token is entered into the name table and into the procedure division minpral file by the lexical analysis phase for each procedure definition found in the source program. */ /* THE PROCEDURE DEFINITION TOKEN STRUCTURE */ dcl 1 proc_def based (addr_record), %include cobol_TYPE7; /* <<< END OF TYPE 7 PROCEDURE DEFINITION TOKEN >>> */ /* END INCLUDE FILE ... cobol_type7.incl.pl1 */ /* BEGIN INCLUDE FILE ... cobol_type9.incl.pl1 */ /* <<< FOR TYPE 9 DATA NAME TOKEN >>> */ /* <<< LAST MODIFIED ON 7-11-75 by tlf >>> */ /* ***STRUCTURE SIZE INFORMATION*** */ /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: HARDWARE | SIZE (BYTES) --------------------------------- 645/6180 | 112 P7 | 68 --------------------------------- */ /* A type 9 data name token is entered into the name table by the data division syntax phase for each data name described in the data division. The replacement phase subsequently replaces type 8 user word references to data names in the procedure division minpral file with the corresponding type 9 tokens from the name table. */ /* THE DATA NAME TOKEN STRUCTURE */ dcl 1 data_name based (addr_record), %include cobol_TYPE9; /* <<< END OF TYPE 9 DATA NAME TOKEN >>> */ /* END INCLUDE FILE ... cobol_type9.incl.pl1 */ /* BEGIN INCLUDE FILE ... cobol_occurs.incl.pl1 */ /* >udd>L2COBOL>include> cobol_occurs.incl.pl1 */ dcl 1 occurs based (occptr), 2 keyed fixed bin (7), 2 key_number fixed bin(15), 2 dimensions fixed bin (7), 2 level (3), 3 indexedno fixed bin (15), 3 min fixed bin (15), 3 max fixed bin (15), 3 struclength fixed bin (15), 3 cswdx fixed bin(15), 3 cswd fixed bin (31); /* END INCLUDE FILE ... cobol_occurs.incl.pl1 */ /* BEGIN INCLUDE FILE ... cobol_type10.incl.pl1 */ /* <<< TYPE 10 INDEX NAME TOKEN >>> */ /* <<< LAST MODIFIED ON 08-13-74 >>> */ /* ***STRUCTURE SIZE INFORMATION*** */ /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: HARDWARE | SIZE (BYTES) --------------------------------- 6180 | 80 P7 | 43 --------------------------------- */ /* A type 10 index name token is entered into the name table by the data division syntax phase for each index name appearing in the data division. An index name is declared in the indexed by phrase of an occurs clause. Associated with each occurs clause, and thereby with each index name, is a four-byte compute subscript word used by the object code to manipulate the array defined by the occurs clause. All index names in a single indexed by clause are associated with the same compute subscript word. A compute subscript word consists of two 2-byte fields: the left-most field contains one less than the number of elements in the associated array, and the right-most field contains the number of bytes in one entry of the array. An index name occupies six bytes. The left-most four bytes are used to maintain the binary byte offset, within the array, corresponding to the current setting of the index name. The right-most two bytes contain the binary occurrence number to which the index name is set. When the replacement phase processes the procedure division minpral file, each reference to an index name is replaced with the type 10 token created for that index name. */ /* THE INDEX NAME TOKEN STRUCTURE */ dcl 1 index_name based (addr_record), %include cobol_TYPE10; /* <<< END OF TYPE 10 INDEX NAME TOKEN >>> */ /* END INCLUDE FILE ... cobol_type10.incl.pl1 */ /* BEGIN INCLUDE FILE ... cobol_fd_token.incl.pl1 */ /* last modified on 2/21/74 */ dcl 1 fd_token based(addr_record), 2 size fixed bin(15), 2 line fixed bin(15), 2 column fixed bin(7), 2 type fixed bin(7), /* FD =12 SD =16 */ 2 string_ptr ptr, 2 prev_rec ptr, 2 info bit(8), 2 def_line fixed bin(15), 2 file_no fixed bin(7), 2 name_size fixed bin(15), 2 name char(31); /* END INCLUDE FILE ... cobol_fd_token.incl.pl1 */ /* BEGIN INCLUDE FILE ... cobol_cdtoken.incl.pl1 */ dcl 1 cdtoken based(addr_record), 2 forward ptr, 2 backward ptr, 2 size fixed bin(15), 2 line fixed bin(15), 2 column fixed bin(15), 2 type fixed bin(15), 2 stringptr ptr, 2 prevptr ptr, 2 info bit(8), 2 options, 3 input bit(1), 3 output bit(1), 3 initial bit(1), 3 spares bit(5), 2 defline fixed bin(15), 2 level fixed bin(7), 2 cd_seg fixed bin(15), 2 cd_ofs fixed bin(31), 2 max_redef fixed bin(31), 2 mdest fixed bin(15), 2 name_size fixed bin(15), 2 name char(cdtoken.name_size); /* END INCLUDE FILE ... cobol_cdtoken.incl.pl1 */ dcl 01 satoken based (addr( record)), /* 2 header */ 03 size fixed bin(15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), /* 2 body */ 02 stringptr ptr, 02 defline fixed bin (15), 02 address bit (32), 02 sanum fixed bin (15), 02 numrecs fixed bin (15), 02 minchars fixed bin (15), 02 maxchars fixed bin (15), 02 namesize fixed bin (7), 02 name char (30); /* BEGIN INCLUDE FILE ... cobol_type17.incl.pl1 */ /* <<< TYPE 17 MNEMONIC NAME TOKEN >>> */ /* <<< LAST MODIFIED ON 03-19-74 >>> */ /* ***STRUCTURE SIZE INFORMATION*** */ /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: HARDWARE | SIZE (BYTES) --------------------------------- 645/6180 | 56 P7 | 28 --------------------------------- */ /* A type 17 mnemonic name token is entered into the name table by the environment division syntax phase for each special name appearing in the environment division. */ /* THE MNEMONIC NAME TOKEN STRUCTURE */ dcl 1 mnemonic_name based (addr_record), %include cobol_TYPE17; /* <<< END OF TYPE 17 MNEMONIC NAME TOKEN >>> */ /* END INCLUDE FILE ... cobol_type17.incl.pl1 */ /* BEGIN INCLUDE FILE ... cobol_type19.incl.pl1 */ /* <<< FOR TYPE 19 END OF STATEMENT TOKEN >>> */ /* <<< LAST MODIFIED ON 07-18-74 >>> */ /* ***STRUCTURE SIZE INFORMATION*** */ /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: HARDWARE | SIZE (BYTES) --------------------------------- 6180 | 38 P7 | 20 --------------------------------- */ /* A type 19 end of statement token is created in the procedure division minpral file at the end of each minpral statement generated by the procedure division syntax phase. A minpral statement may be a complete or partial source language statement. A type 19 token contains information describing the statement which it delimits. */ /* THE END OF STATEMENT TOKEN STRUCTURE */ declare eosptr ptr; dcl 1 end_stmt static, %include cobol_TYPE19; /* <<< END OF END OF STATEMENT >>> */ /* END INCLUDE FILE ... cobol_type19.incl.pl1 */ /* based area to get pointer */ dcl 01 headerb based (mptr), 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 body char (header.size-16); /* general form of internal record */ /* current word buffer */ /* used for i-o operations */ dcl seq fixed bin (15) static; dcl mptr ptr; /* points to record of input minpral file */ dcl input fixed bin (15) static; dcl rewind fixed bin (15) static; dcl output fixed bin (15) static; /* save items here */ dcl 01 saveitem, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 body char (430); dcl itemsize char (512) based; /*length in bytes of current record */ dcl savitmptr ptr ; /* used for saveitem */ /* a dummy procedure name reference type 18 used for go to action 49 */ dcl 01 dumprocname static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 string_ptr ptr, 02 prev_rec ptr, 02 perform_bit bit (1), /*1= end of perform*/ 02 true_false_bit bit (1), /* 1= true*/ 02 info bit (6), 02 priority char (2), 02 multics char (1), 02 section_num fixed bin (15), 02 proc_num fixed bin (15), 02 length fixed bin (15), 02 name char (1); /* pointer for dummy procedure name */ dcl dpnptr ptr ; /* pointer for dummy procedure name */ /* used to save the item for ident subrouttines */ dcl 01 saveident, 02 header, 03 size fixed bin (15), 03 line fixed bin (15), 03 column fixed bin (7), 03 type fixed bin (7), 02 body char (430); /* dummy alter verb for alter verb */ dcl 01 dumalter static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (36), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (5); /* dummy cancedl verb for action (105)*/ dcl 01 dumcancel static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin(7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (36), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (6); /* dummy close verb for action 106*/ dcl 01 dumclose static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (1), 02 classa bit (35), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (5); /* dummy initiate verb for action 111 */ dcl 01 duminitiate static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), class bit (36), length fixed bin (15), subset fixed bin (7), word char (8); /* operation eos used for action 115 */ dcl 01 opeos static, 02 header, 03 size fixed bin (15), 03 line fixed bin (15), 03 column fixed bin (7), 03 type fixed bin (7), 02 body, 03 verb fixed bin (7), 03 e fixed bin (7), 03 h fixed bin (7), 03 i fixed bin (7), 03 j fixed bin (7), 03 a bit (16); /* dummy open verb for acton 119 */ dcl 01 dumopen static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (1), 02 classa bit (35), 02 length fixed bin(15), 02 subset fixed bin (7), 02 word char (4); /* dummy suspend verb used by action 123 */ dcl 01 dumsuspend static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (36), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (7); /* dummy terminate veerb for action 124 */ dcl 01 dumterminate static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (36), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (9); /* type18 procedure name stored here for go to depending */ dcl 01 store_label_1, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 string_ptr ptr, 02 prev_rec ptr, 02 info bit (8), 02 priority char (2), 02 multics char (1), 02 section_num fixed bin (15), 02 proc_num fixed bin (15), 02 length fixed bin (15), 02 name char (30); /* store type 18 for go dependig */ dcl 01 store_label_2, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 string_ptr ptr, 02 prev_rec ptr, 02 info bit (8), 02 priority char (2), 02 multics char (1), 02 section_num fixed bin (15), 02 proc_num fixed bin (15), 02 length fixed bin (15), 02 name char (30); dcl savidptr ptr ; /* pointer for saved identifier */ /* used to reference the extensions of type 9 records */ dcl exten (430) char (1) based; dcl occptr ptr; /* used to reference the subscript extension of type 9 */ /* a dummy RETURN for the SORT statement */ dcl 01 dumreturn static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (1), 02 classa bit (35), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (6); /* a dummy WRITE for the SORT statement */ dcl 01 dumwrite static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (1), 02 classa bit (35), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (5); /* a dummy READ for the SORT statement */ dcl 01 dumread static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (1), 02 classa bit (35), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word47 char (4); /* a dummy RELEASE for the SORT statement */ dcl 01 dumrelease static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (1), 02 classa bit (35), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (7); /* save the SORTFILE RECORD here */ dcl 01 sv_srtfil_rec, 02 size fixed bin(15), 02 body char (300); /* a dummy PERFORM for the SORT statement */ dcl 01 dumperform static, 02 size fixed bin (15), 02 line fixed bin (15), 02 column fixed bin (7), 02 type fixed bin (7), 02 key fixed bin (15), 02 class bit (1), 02 classa bit (35), 02 length fixed bin (15), 02 subset fixed bin (7), 02 word char (25); /* temp patch*/ dcl convtemp fixed bin (15); dcl histno fixed bin (15); /* used for IO verbs */ /* save procedure definition from sort statement here */ dcl 01 sv_proc_def, 02 size fixed bin (15), 02 body char (300); /* save the FILE after USING or GIVING in SORT statement here */ dcl 01 sv_usfil, 02 size fixed bin (15), 02 body char (300); /* save the generated tag number here */ dcl save_gentag fixed bin (15); dcl seqvarptr ptr; dcl seqvarleng fixed bin (15); dcl varrecaddr char (5); declare repcsbit bit(1); declare cobol_pdst entry(ptr , fixed bin(15)) ext; /* END INCLUDE FILE ... cobol_pd_decls.incl.pl1 */ */ ----------------------------------------------------------- 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 */