COMPILATION LISTING OF SEGMENT gfms_trailer_label_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-05-04_1651.29_Thu_mdt Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gfms_trailer_label_: proc ()returns (bit (1)); 7 8 /* Process the tape trailer label. 9* Return "1"b if this is end of file (EOF) label 10* versus end of reel (EOR) label. 11* 12* Author: Dave Ward 10/17/80 13* Changed: Ron Barstad 84-11-21 Fixed processing of multiple tape saves. 14**/ 15 16 call iox_$read_record ( /* Read the trailer record. */ 17 cbp /* (input) pointer to control block. */ 18 , addr (tape_label) /* (input) record buffer. */ 19 , size (tape_label)*4 /* (input) buffer length in bytes. */ 20 , nbr /* (output) number of bytes read. */ 21 , code /* (output) I/O system status. */ 22 ); 23 if code ^= 0 then do; 24 call com_err_ ( 25 code 26 , "gfms_trailer_label_" 27 , "Attempting to read tape trailer label file." 28 ||"^/Tape status ^4.3b" 29 ||"^/buffer length ^i (bytes)." 30 ||"^/bytes read ^i." 31 ||"^/attach description ""^a""" 32 , gfms_tape_status_ (cbp) 33 , size (tape_label)*4 34 , nbr 35 , attach_description 36 ); 37 signal cond (gfms_fail); 38 end; 39 40 if end_label = "202546262020"b3 then /* " EOF " bcd. */ 41 r = "1"b; /* EOF */ 42 else 43 if end_label = "202546512020"b3 then /* " EOR " bcd */ 44 r = "0"b; /* EOR */ 45 else do; /* Neither EOF or EOR. */ 46 call com_err_ ( 47 0 48 , "gfms_trailer_label_" 49 , "Trailer label, ""^6a"", not EOF or EOR." 50 , gfms_ascii_ ((end_label)) 51 ); 52 call gfms_dump_rec_ ( 53 addr (tape_label) 54 , divide (nbr+3, 4, 17) 55 ); 56 signal cond (gfms_fail); 57 end; 58 59 call ioa ("^|TRAILER LABEL INFORMATION:"); 60 call ioa ("end_label......... ^a", gfms_ascii_ ((end_label))); 61 if r then 62 reel_serial_num = "NOREEL"; 63 else do; 64 call ioa ("next_reel_serial.. ^a", gfms_ascii_ ((next_reel_serial))); 65 reel_serial_num = gfms_ascii_ ((next_reel_serial)); 66 substr (reel_serial_num, 1, 1) = " "; /* strip off the "#" */ 67 sequence_pic = decimal (reel_sequence_num, 6) + 1; 68 reel_sequence_num = sequence_pic; 69 if (gfms_close_ ()) then signal cond (gfms_fail); 70 call gfms_detach_ (); 71 attach_description = before (attach_description, " ") || reel_serial_num || after (after (attach_description, " "), " "); 72 73 end; 74 return (r); 75 76 /* Variables for gfms_trailer_label_: */ 77 /* IDENTIFIER ATTRIBUTES */ 78 dcl code fixed bin(35); 79 dcl com_err_ entry() options(variable); 80 dcl divide builtin; 81 dcl gfms_ascii_ entry(bit(*))returns(char(*)); 82 dcl gfms_close_ entry() returns(bit(1)); 83 dcl gfms_detach_ entry options(variable); 84 dcl gfms_dump_rec_ entry (ptr, fixed bin); 85 dcl gfms_fail condition ext; 86 dcl gfms_tape_status_ entry (ptr) returns(bit(12)); 87 dcl ioa_ entry() options(variable); 88 dcl iox_$control entry (ptr, char(*), ptr, fixed bin(35)); 89 dcl iox_$read_record entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 90 dcl nbr fixed bin(21); 91 dcl r bit(1); 92 dcl sequence_pic pic "zz9999"; 93 dcl size builtin; 94 95 /* See DD07 (April 1974) FILE AND RECORD CONTROL 96* Page 11-3 trailer label format. 97**/ 98 dcl 1 tape_label aligned 99 , 3 end_label bit(36) 100 , 3 block_count bit(36) 101 , 3 arbitrary (3:13)bit(36) 102 , 3 next_reel_serial bit(36) 103 ; 104 1 1 /* BEGIN INCLUDE FILE gfms_ext.incl.pl1 (Wardd Multics) 10/07/80 2142.2 mst Tue */ 1 2 /* Modified by: S. C. Akers 02/08/82 Add gfms_ext$working_dir, 1 3* mapping_rule, 1 4* umc_name 1 5* Modified Ron Barstad 83-06-03 attach_desc from 40 to 80 char 1 6**/ 1 7 1 8 dcl 1 gfms_ext$print_routines aligned ext 1 9 , 3 ioa entry variable options(variable) 1 10 , 3 ioa_nnl entry variable options(variable) 1 11 ; 1 12 1 13 dcl 1 gfms_ext$temp_segs aligned ext 1 14 , 3 dtp ptr 1 15 , 3 nlp ptr 1 16 , 3 inp ptr 1 17 ; 1 18 1 19 dcl 1 gfms_ext$tape_file aligned ext 1 20 , 3 cbp ptr 1 21 , 3 attach_description char(80)unal 1 22 , 3 density 1 23 , 4 ftd fixed bin /* First tape density to attempt. */ 1 24 , 4 ltd fixed bin /* Last tape density to attempt. */ 1 25 , 3 tape_reel_information 1 26 , 4 reel_serial_num char(6) 1 27 , 4 file_serial_num char(6) 1 28 , 4 reel_sequence_num char(6) 1 29 ; 1 30 1 31 dcl 1 gfms_ext$options aligned ext 1 32 , 3 close bit(1)unal /* perform iox close. */ 1 33 , 3 detach bit(1)unal /* perform iox detach. */ 1 34 , 3 dump bit(1)unal /* dump tape records/information. */ 1 35 , 3 gf bit(1)unal /* provide gtss file attributes. */ 1 36 , 3 prfn bit(1)unal /* print file names. */ 1 37 , 3 scan_ss bit(1)unal /* scan substructure, display, quit. */ 1 38 , 3 tll bit(1)unal /* print totals of llinks. */ 1 39 , 3 unload bit(1)unal /* unload files. */ 1 40 , 3 NOT_IN_USE bit(28)unal 1 41 ; 1 42 1 43 dcl gfms_ext$working_dir char (168) var ext static; /* Where to restore the files. 1 44* It may be the user's working 1 45* directory, or the UMC or SMC directory. */ 1 46 1 47 dcl gfms_ext$mapping_rule char(3) external static; 1 48 1 49 dcl gfms_ext$umc_name char(12) external static; 1 50 1 51 /* END INCLUDE FILE gfms_ext.incl.pl1 */ 105 106 end gfms_trailer_label_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/04/00 1651.2 gfms_trailer_label_.pl1 >udd>sm>ds>w>ml>gfms_trailer_label_.pl1 105 1 10/24/83 1742.4 gfms_ext.incl.pl1 >ldd>incl>gfms_ext.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. attach_description 2 000030 external static char(80) level 2 packed packed unaligned dcl 1-19 set ref 24* 71* 71 71 cbp 000030 external static pointer level 2 dcl 1-19 set ref 16* 24* 24* code 000100 automatic fixed bin(35,0) dcl 78 set ref 16* 23 24* com_err_ 000010 constant entry external dcl 79 ref 24 46 divide builtin function dcl 80 ref 52 52 end_label 000114 automatic bit(36) level 2 dcl 98 set ref 40 42 46 60 gfms_ascii_ 000012 constant entry external dcl 81 ref 46 60 64 65 gfms_close_ 000014 constant entry external dcl 82 ref 69 gfms_detach_ 000016 constant entry external dcl 83 ref 70 gfms_dump_rec_ 000020 constant entry external dcl 84 ref 52 gfms_ext$print_routines 000026 external static structure level 1 dcl 1-8 gfms_ext$tape_file 000030 external static structure level 1 dcl 1-19 gfms_fail 000102 stack reference condition dcl 85 ref 37 56 69 gfms_tape_status_ 000022 constant entry external dcl 86 ref 24 24 ioa 000026 external static entry variable level 2 dcl 1-8 ref 59 60 64 iox_$read_record 000024 constant entry external dcl 89 ref 16 nbr 000110 automatic fixed bin(21,0) dcl 90 set ref 16* 24* 52 52 next_reel_serial 15 000114 automatic bit(36) level 2 dcl 98 set ref 64 65 r 000111 automatic bit(1) packed unaligned dcl 91 set ref 40* 42* 61 74 reel_sequence_num 34 000030 external static char(6) level 3 dcl 1-19 set ref 67 68* reel_serial_num 30 000030 external static char(6) level 3 dcl 1-19 set ref 61* 65* 66* 71 sequence_pic 000112 automatic picture(6) packed unaligned dcl 92 set ref 67* 68 size builtin function dcl 93 ref 16 24 tape_label 000114 automatic structure level 1 dcl 98 set ref 16 16 16 24 52 52 tape_reel_information 30 000030 external static structure level 2 dcl 1-19 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. gfms_ext$mapping_rule external static char(3) packed unaligned dcl 1-47 gfms_ext$options external static structure level 1 dcl 1-31 gfms_ext$temp_segs external static structure level 1 dcl 1-13 gfms_ext$umc_name external static char(12) packed unaligned dcl 1-49 gfms_ext$working_dir external static varying char(168) dcl 1-43 ioa_ 000000 constant entry external dcl 87 iox_$control 000000 constant entry external dcl 88 NAME DECLARED BY EXPLICIT CONTEXT. gfms_trailer_label_ 000133 constant entry external dcl 6 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 16 16 52 52 after builtin function ref 71 71 before builtin function ref 71 decimal builtin function ref 67 substr builtin function ref 66 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1054 1106 726 1064 Length 1310 726 32 166 126 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gfms_trailer_label_ 339 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gfms_trailer_label_ 000100 code gfms_trailer_label_ 000110 nbr gfms_trailer_label_ 000111 r gfms_trailer_label_ 000112 sequence_pic gfms_trailer_label_ 000114 tape_label gfms_trailer_label_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ent_var_desc call_ext_out_desc call_ext_out return_mac signal_op shorten_stack ext_entry any_to_any_truncate_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ gfms_ascii_ gfms_close_ gfms_detach_ gfms_dump_rec_ gfms_tape_status_ iox_$read_record THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gfms_ext$print_routines gfms_ext$tape_file LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000130 16 000140 23 000162 24 000164 37 000247 40 000252 42 000260 46 000264 52 000336 56 000356 59 000361 60 000375 61 000437 64 000450 65 000512 66 000545 67 000550 68 000574 69 000601 70 000615 71 000622 73 000715 74 000716 ----------------------------------------------------------- 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