COMPILATION LISTING OF SEGMENT gfms_end_of_input_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-05-04_1651.09_Thu_mdt Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gfms_end_of_input_: proc (bp, bl, nb)returns (bit (1)); 7 8 /* End of information reached attempting to read a record. 9* Determine if tape is multi-reel, in which case, proceed 10* to the next reel, fill the remainder of the record (based 11* on "bp" of length "bl" bytes of which "nb" have been input) 12* and return "0"b. If trailing label indicates EOF (end of file) 13* then return "1"b, there is no more input. 14* 15* Author: Dave Ward 10/18/80 16**/ 17 dcl bl fixed bin(21) parm /* Length of buffer (bytes). */; 18 dcl bp ptr parm /* Pointer to input buffer. */; 19 dcl nb fixed bin(21) parm /* Number of bytes no in buffer. */; 20 if gfms_trailer_label_ () then return ("1"b); /* Multireel tape concluded. */ 21 22 /* Continue file from next tape reel. */ 23 24 call gfms_header_label_; /* Process label from next reel. */ 25 26 /* Obtain the next FILE CONTENT record from tape. 27**/ 28 call iox_$read_record ( 29 cbp /* (input) pointer to control block. */ 30 , addr (rec_space) /* (input) record buffer. */ 31 , size (rec_space)*4 /* (input) buffer length in bytes. */ 32 , nbr /* (output) number of bytes read. */ 33 , code /* (output) I/O system status. */ 34 ); 35 if code ^= 0 then do; 36 call com_err_ ( 37 code 38 , "gfms_file_content_records_" 39 , "Attempting to read EOI record." 40 ||"^/Tape status ^4.3b" 41 ||"^/buffer length ^i (bytes)." 42 ||"^/bytes read ^i." 43 ||"^/attach description ""^a""" 44 , gfms_tape_status_ (cbp) 45 , size (rec_space)*4 46 , nbr 47 , attach_description 48 ); 49 fail: ; 50 signal cond (gfms_fail); 51 end; 52 53 if (nb + nbr) > bl then do; /* Exceeded bytes in buffer. */ 54 call com_err_ ( 55 0 56 , "gfms_end_of_input_" 57 , "Record split over reels exceeds buffer bytes ^i" 58 ||"^/^i bytes read from last reel, ^i bytes from current reel." 59 , bl 60 , nb 61 , nbr 62 ); 63 signal cond (gfms_fail); 64 end; 65 66 buffer.new = substr (rec_space, 1, nbr); 67 nb = nb+nbr; /* Reset to total bytes now in buffer. */ 68 return ("0"b); 69 70 /* Variables for gfms_end_of_input_: */ 71 /* IDENTIFIER ATTRIBUTES */ 72 dcl code fixed bin(35); 73 dcl com_err_ entry() options(variable); 74 dcl divide builtin; 75 dcl error_table_$long_record fixed bin(35) ext static; 76 dcl gfms_fail condition ext; 77 dcl gfms_header_label_ entry; 78 dcl gfms_tape_status_ entry (ptr) returns(bit(12)); 79 dcl gfms_trailer_label_ entry() returns(bit(1)); 80 dcl iox_$read_record entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 81 dcl nbr fixed bin(21); 82 dcl rec_space char(15624)aligned /* 15624 = 3906 words (file content data records). */; 83 84 dcl 1 buffer aligned based(bp) 85 , 3 old char(nb)unal 86 , 3 new char(nbr)unal 87 ; 88 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 */ 89 90 end gfms_end_of_input_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/04/00 1651.0 gfms_end_of_input_.pl1 >udd>sm>ds>w>ml>gfms_end_of_input_.pl1 89 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 000022 external static char(80) level 2 packed packed unaligned dcl 1-19 set ref 36* bl parameter fixed bin(21,0) dcl 17 set ref 6 53 54* bp parameter pointer dcl 18 ref 6 66 buffer based structure level 1 dcl 84 cbp 000022 external static pointer level 2 dcl 1-19 set ref 28* 36* 36* code 000100 automatic fixed bin(35,0) dcl 72 set ref 28* 35 36* com_err_ 000010 constant entry external dcl 73 ref 36 54 gfms_ext$tape_file 000022 external static structure level 1 dcl 1-19 gfms_fail 000102 stack reference condition dcl 76 ref 50 63 gfms_header_label_ 000012 constant entry external dcl 77 ref 24 gfms_tape_status_ 000014 constant entry external dcl 78 ref 36 36 gfms_trailer_label_ 000016 constant entry external dcl 79 ref 20 iox_$read_record 000020 constant entry external dcl 80 ref 28 nb parameter fixed bin(21,0) dcl 19 set ref 6 53 54* 66 67* 67 nbr 000110 automatic fixed bin(21,0) dcl 81 set ref 28* 36* 53 54* 66 66 67 new based char level 2 packed packed unaligned dcl 84 set ref 66* rec_space 000111 automatic char(15624) dcl 82 set ref 28 28 28 36 66 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. divide builtin function dcl 74 error_table_$long_record external static fixed bin(35,0) dcl 75 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$print_routines external static structure level 1 dcl 1-8 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 NAMES DECLARED BY EXPLICIT CONTEXT. fail 000273 constant label dcl 49 gfms_end_of_input_ 000132 constant entry external dcl 6 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 28 28 size builtin function ref 28 36 substr builtin function ref 66 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 500 524 372 510 Length 716 372 24 155 105 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gfms_end_of_input_ 4066 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gfms_end_of_input_ 000100 code gfms_end_of_input_ 000110 nbr gfms_end_of_input_ 000111 rec_space gfms_end_of_input_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac signal_op ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ gfms_header_label_ gfms_tape_status_ gfms_trailer_label_ iox_$read_record THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gfms_ext$tape_file LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000125 20 000137 24 000156 28 000163 35 000206 36 000210 49 000273 50 000274 53 000277 54 000304 63 000351 66 000354 67 000364 68 000365 ----------------------------------------------------------- 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