COMPILATION LISTING OF SEGMENT tape_ansi_position_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/04/82 1709.1 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 12 13 14 tape_ansi_position_: procedure (iocbP, type, n, code); /* iox_$position entry for tape_ansi_ IO Module */ 15 16 1 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 1 2 /* format: style2 */ 1 3 1 4 dcl 1 iocb aligned based, /* I/O control block. */ 1 5 2 version character (4) aligned, 1 6 2 name char (32), /* I/O name of this block. */ 1 7 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 1 8 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 1 9 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 1 10 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 1 11 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 1 12 2 reserved bit (72), /* Reserved for future use. */ 1 13 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 1 14 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 1 15 /* open(p,mode,not_used,s) */ 1 16 2 close entry (ptr, fixed (35)),/* close(p,s) */ 1 17 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 18 /* get_line(p,bufptr,buflen,actlen,s) */ 1 19 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 20 /* get_chars(p,bufptr,buflen,actlen,s) */ 1 21 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 1 22 /* put_chars(p,bufptr,buflen,s) */ 1 23 2 modes entry (ptr, char (*), char (*), fixed (35)), 1 24 /* modes(p,newmode,oldmode,s) */ 1 25 2 position entry (ptr, fixed, fixed (21), fixed (35)), 1 26 /* position(p,u1,u2,s) */ 1 27 2 control entry (ptr, char (*), ptr, fixed (35)), 1 28 /* control(p,order,infptr,s) */ 1 29 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 30 /* read_record(p,bufptr,buflen,actlen,s) */ 1 31 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 1 32 /* write_record(p,bufptr,buflen,s) */ 1 33 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 1 34 /* rewrite_record(p,bufptr,buflen,s) */ 1 35 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 1 36 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 37 /* seek_key(p,key,len,s) */ 1 38 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 39 /* read_key(p,key,len,s) */ 1 40 2 read_length entry (ptr, fixed (21), fixed (35)); 1 41 /* read_length(p,len,s) */ 1 42 1 43 declare iox_$iocb_version_sentinel 1 44 character (4) aligned external static; 1 45 1 46 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 17 18 2 1 /* BEGIN INCLUDE FILE: tape_ansi_cseg.incl.pl1 */ 2 2 /* */ 2 3 /* 1) Modified: 12/01/75 by Ross E. Klinger -- to allow */ 2 4 /* for allocation of the attach and open descriptions */ 2 5 /* within the cseg structure. */ 2 6 /* 2) Modified for resource management. */ 2 7 /* 3) Modified 9/79 by R.J.C. Kissel to handle the new tseg. */ 2 8 /* 4) Modified 4/82 by J.A. Bush for block sizes > 8192 bytes */ 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind9 */ 2 11 dcl cP ptr; /* pointer on which cseg structure is based */ 2 12 dcl cseg_tseg_version_2 fixed bin internal static options (constant) init (2); 2 13 2 14 dcl 1 cseg based (cP), /* control structure */ 2 15 2 file_set_lock bit (1) aligned, /* "1"b if file set in use */ 2 16 2 invalid bit (1) aligned, /* invalid cseg - delete at detach time bit */ 2 17 2 standard fixed bin, /* label standard */ 2 18 /* 1 - ANSI standard */ 2 19 /* 2 - IBM/OS-VS */ 2 20 /* 3 - IBM/DOS-VM */ 2 21 2 attach_description, /* iox_ attach description */ 2 22 3 length fixed bin (17), /* actual length of string */ 2 23 3 string char (256), /* maximum is 256 characters */ 2 24 2 open_description, /* iox_ open description */ 2 25 3 length fixed bin (17), /* actual length of string */ 2 26 3 string char (32), /* maximum is 32 */ 2 27 2 module char (12) varying, /* IO module name */ 2 28 2 ndrives fixed bin, /* maximum number of drives to be used */ 2 29 2 nactive fixed bin, /* number of drives actually in use */ 2 30 2 write_ring bit (1) aligned, /* volumes mounted with write rings */ 2 31 2 protect bit (1) aligned, /* volumes have rings, but are hardware protected */ 2 32 2 density fixed bin, /* file set recording density */ 2 33 /* 2 - 800 bpi NRZI */ 2 34 /* 3 - 1600 bpi PE */ 2 35 2 vcN fixed bin, /* number of links in volume chain */ 2 36 2 fcP ptr, /* file chain pointer */ 2 37 2 flP ptr, /* pointer to file link of current file */ 2 38 2 hdw_status, /* hardware status structure */ 2 39 3 bits bit (72) aligned, /* IOM status */ 2 40 3 no_minor fixed bin, /* number of minor status codes */ 2 41 3 major fixed bin (35), /* major status */ 2 42 3 minor (10) fixed bin (35), /* minor status */ 2 43 2 lbl_buf char (80), /* label I/O buffer */ 2 44 2 open_mode fixed bin, /* opening mode */ 2 45 /* 4 - sequential_input */ 2 46 /* 5 - sequential_output */ 2 47 2 close_rewind bit (1) aligned, /* rewind volume at next close */ 2 48 2 force bit (1) aligned, /* force file overwrite switch */ 2 49 2 user_labels bit (1) aligned, /* process user labels switch */ 2 50 2 no_labels bit (1) aligned, /* "1"b if volume has no labels */ 2 51 2 output_mode fixed bin, /* 0 - input */ 2 52 /* 1 - extend */ 2 53 /* 2 - modify */ 2 54 /* 3 - write */ 2 55 /* 4 - create */ 2 56 2 replace_id char (17), /* replace file identifier */ 2 57 2 retain fixed bin, /* 0 - default to rcp_ defaults */ 2 58 /* 1 - unassign drives and volumes */ 2 59 /* 2 - retain drives, unassign volumes */ 2 60 /* 3 - unassign drives, retain volumes */ 2 61 /* 4 - retain drives and volumes */ 2 62 2 lrec, /* logical record IO control data */ 2 63 3 bufP ptr, /* pointer to current processing buffer */ 2 64 3 nc_buf fixed bin, /* number of characters in buffer */ 2 65 3 offset fixed bin, /* current processing offset within buffer */ 2 66 3 saveP ptr, /* pointer to current D/V format RCW/RDW */ 2 67 3 file_lock bit (1) aligned, /* "1"b if file in use */ 2 68 3 blkcnt fixed bin (35), /* physical block count */ 2 69 3 reccnt fixed bin (35), /* logical record count (not presently used) */ 2 70 3 code fixed bin (35), /* lrec_io_ non-restartable error code */ 2 71 2 read_length, /* read_length control data */ 2 72 3 rlP ptr, /* pointer to read_length segment */ 2 73 3 rlN fixed bin (21), /* number of characters in segment */ 2 74 2 user_label_routine (6) variable entry (char (80), bit (1)), 2 75 /* 1 - read UHL */ 2 76 /* 2 - write UHL */ 2 77 /* 3 - read UTL */ 2 78 /* 4 - write UTL */ 2 79 /* 5 - read UVL */ 2 80 /* 6 - write UVL */ 2 81 /* THE FOLLOWING IS NEEDED ONLY WHILE TAPEIO_ / TDCM IS THE IO PROCEDURE */ 2 82 2 syncP ptr, /* pointer to synchronous IO buffer */ 2 83 2 mode fixed bin, /* 0 = binary -- 1 = 9 mode */ 2 84 2 soft_status, /* software status structure */ 2 85 3 nbuf fixed bin, /* number of suspended buffers */ 2 86 3 buf (2), 2 87 4 bufP ptr, /* pointer to buffer */ 2 88 4 count fixed bin, /* buffer character count */ 2 89 2 ( 2 90 free_list, 2 91 busy_list, 2 92 chain (3), 2 93 bufct (3) 2 94 ) fixed bin, /* buffer management variables */ 2 95 2 wait_switch (1:63) bit (1) unaligned, /* per-drive event wait switches */ 2 96 2 buf_size fixed bin, /* size of each tseg buffer in chars (bytes) */ 2 97 2 tseg aligned, 2 98 3 version_num fixed bin, 2 99 3 areap ptr, /* pointer to DSM area */ 2 100 3 ev_chan fixed bin (71), /* event channel number */ 2 101 3 write_sw fixed bin (1), /* 0 = read, 1 = write */ 2 102 3 sync fixed bin (1), /* non-zero for synchronous i/o */ 2 103 3 get_size fixed bin (1), /* ON for record sizes to be returned */ 2 104 3 ws_segno bit (18), /* rcp_ kluge */ 2 105 3 drive_name char (32), 2 106 3 tracks fixed bin, 2 107 3 density bit (36), 2 108 3 speed bit (36), /* bits are 75, 125, 200 ips respectively */ 2 109 3 pad99 bit (36), /* see tseg.incl.pl1 */ 2 110 3 buffer_offset fixed bin (12), /* offset of first buffer to be processed */ 2 111 3 buffer_count fixed bin (12), /* number of buffers to be processed */ 2 112 3 completion_status 2 113 fixed bin (2), /* 0 = no pending i/o or no status */ 2 114 /* 1 = normal termination of i/o */ 2 115 /* 2 = non-zero major status from previous i/o */ 2 116 3 hardware_status bit (36) aligned, /* major and sub-status */ 2 117 3 error_buffer fixed bin (12), /* buffer in which i/o error occurred */ 2 118 3 command_count fixed bin (12), /* number of non-data commands to execute */ 2 119 3 command_queue (10) fixed bin (6) aligned, /* non-data-transfer commands */ 2 120 3 bufferptr (12) fixed bin (18) aligned,/* relative ptrs to buffers */ 2 121 3 buffer_size (12) fixed bin (18) aligned,/* size of buffer */ 2 122 3 mode (12) fixed bin (2) aligned, /* 0 = bin, 1 = bcd, 2 = 9 track */ 2 123 3 buffer (4) char (cseg.buf_size) aligned, 2 124 /* data buffers */ 2 125 /* END OF TAPEIO_ / TDCM DATA */ 2 126 2 vl (63), /* volume chain link */ 2 127 3 position, /* volume position */ 2 128 4 fflX fixed bin unal, /* index of first file link on volume */ 2 129 4 cflX fixed bin unal, /* index of current file link */ 2 130 4 pos fixed bin unal, /* intra-file position code */ 2 131 /* 0 = in HDR group */ 2 132 /* 1 - in data / passed HDR TM */ 2 133 /* 2 = in EOx group / passed data TM */ 2 134 4 lflX fixed bin unal, /* index of last file link on volume */ 2 135 3 vol_data, 2 136 4 volname char (32), /* volume name */ 2 137 4 canonical_volname 2 138 char (6), /* volume name as appears on label */ 2 139 4 comment char (64) varying, /* mount comment */ 2 140 4 auth_code char (3) aligned, /* authentication code for this volume */ 2 141 4 rcp_id fixed bin (6), /* TDCM DUMMY - CHANGE TO BIT (36) ALIGNED */ 2 142 4 event_chan fixed bin (71), /* rcp_ attach event channel */ 2 143 4 tape_drive char (32), /* name of tape drive */ 2 144 4 ws_segno bit (18), /* segno of IOI workspace (per drive) */ 2 145 4 write_VOL1 fixed bin, /* 0 - correct VOL1 label */ 2 146 /* 1 - blank tape */ 2 147 /* 2 - can't read 1st block */ 2 148 /* 3 - 1st block not VOL1 label */ 2 149 /* 4 - valid VOL1 label but wrong volume ID (Obsolete) */ 2 150 /* 5 - correct VOL1 label, but wrong density */ 2 151 /* 6 - invalid file-set format (Obsolete) */ 2 152 /* -1 - correct VOL1 label of an earlier format */ 2 153 /* (no authentication code) */ 2 154 4 ioi_index fixed bin, /* ioi_ index for IO */ 2 155 3 reg_data, /* registration data */ 2 156 4 tracks fixed bin unal, /* number of tracks */ 2 157 4 density fixed bin unal, /* density code */ 2 158 4 label_type fixed bin unal, /* volume format */ 2 159 4 usage_count fixed bin unal, /* number of attachment to this volume */ 2 160 4 read_errors fixed bin unal, /* number of read errors */ 2 161 4 write_errors fixed bin unal, /* number of write errors */ 2 162 2 chain_area area; /* file chain allocation area */ 2 163 2 164 /* END INCLUDE FILE: tape_ansi_cseg.incl.pl1 */ 19 20 21 22 /* arguments */ 23 dcl iocbP ptr, /* pointer to iocb */ 24 type fixed bin, /* -1 : position to beginning of file */ 25 /* 0 : position +_ n records (only +n supported) */ 26 /* +1 : position to end of file */ 27 n fixed bin (21), /* number of records : type = 0 */ 28 code fixed bin (35); /* returned error code */ 29 30 /* automatic */ 31 dcl (i, j) fixed bin (21), /* temporary storage */ 32 tape_error bit (1) aligned; /* parity error switch */ 33 34 /* external procedures */ 35 dcl tape_ansi_lrec_io_$read_record ext entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)), 36 tape_ansi_file_cntl_$beginning_of_file ext entry (ptr, fixed bin (35)), 37 tape_ansi_file_cntl_$end_of_file ext entry (ptr, fixed bin (35)), 38 tape_ansi_ibm_lrec_io_$read_record ext entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)), 39 tape_ansi_nl_file_cntl_$beginning_of_file ext entry (ptr, fixed bin (35)), 40 tape_ansi_nl_file_cntl_$end_of_file ext entry (ptr, fixed bin (35)); 41 42 /* external static */ 43 dcl (error_table_$bad_arg, 44 error_table_$fatal_error, 45 error_table_$file_busy, 46 error_table_$long_record, 47 error_table_$tape_error, 48 error_table_$invalid_cseg) fixed bin (35) ext static; 49 50 /* builtin functions */ 51 dcl null builtin; 52 53 /* conditions */ 54 dcl cleanup condition; 55 56 cP = iocbP -> iocb.actual_iocb_ptr -> iocb.attach_data_ptr; /* set pointer to control segment */ 57 58 if cseg.invalid then do; 59 code = error_table_$invalid_cseg; 60 return; 61 end; 62 63 if cseg.file_lock then do; /* is file in use? */ 64 code = error_table_$file_busy; 65 return; 66 end; 67 else do; 68 on cleanup begin; 69 cseg.code = error_table_$fatal_error; 70 cseg.file_lock = "0"b; 71 end; 72 cseg.file_lock = "1"b; 73 end; 74 75 if type < -1 | type > 1 then do; /* invalid type */ 76 code = error_table_$bad_arg; 77 go to exit; 78 end; 79 else go to action (type); /* perform appropriate positioning operation */ 80 81 action (-1): /* position to beginning of file */ 82 83 if cseg.no_labels then call tape_ansi_nl_file_cntl_$beginning_of_file (iocbP, code); 84 else call tape_ansi_file_cntl_$beginning_of_file (iocbP, code); /* move to 1st data record */ 85 if code ^= 0 then cseg.code = code; /* disallow subsequent read ops */ 86 go to exit; 87 88 89 action (+1): /* position to end of file */ 90 91 if cseg.no_labels then call tape_ansi_nl_file_cntl_$end_of_file (iocbP, code); 92 else call tape_ansi_file_cntl_$end_of_file (iocbP, code); /* move to data EOF */ 93 if code ^= 0 then cseg.code = code; /* disallow subsequent read ops */ 94 go to exit; 95 96 action (0): /* position forward (n > 0) */ 97 98 code = 0; /* initialize return code */ 99 tape_error = "0"b; /* initialize parity error switch */ 100 101 if n = 0 then go to exit; /* nothing to do */ 102 if n < 0 then do; /* positioning backwards isn't supported */ 103 code = error_table_$bad_arg; 104 go to exit; 105 end; 106 107 i = n; /* copy n */ 108 109 if cseg.rlN ^= -1 then do; /* next record is in read length segment */ 110 cseg.rlN = -1; /* that record has just been position over */ 111 i = i - 1; /* decrement count */ 112 end; 113 114 do j = 1 to i; /* skip records until done or error or end of file */ 115 cseg.file_lock = "0"b; /* unlock so lrec_io_ call will work */ 116 if cseg.standard = 1 then call tape_ansi_lrec_io_$read_record (iocbP, null, 0, 0, code); 117 else call tape_ansi_ibm_lrec_io_$read_record (iocbP, null, 0, 0, code); 118 if code = error_table_$long_record then code = 0; /* ignore this */ 119 else if code = 0 then; /* rare, only skipping a zero-length record */ 120 else if code = error_table_$tape_error then do; /* ignore for now, but remember */ 121 tape_error = "1"b; /* this does the remembering */ 122 cseg.code = 0; /* this allows further lrec_io_ calls */ 123 end; 124 else go to exit; /* fatal error or EOF - give up */ 125 cseg.file_lock = "1"b; /* relock to avoid unlikely but disasterous situation */ 126 end; 127 128 if tape_error then do; /* a parity error occurred */ 129 cseg.code = error_table_$tape_error; /* inhibit further I/O */ 130 code = error_table_$tape_error; /* set return code */ 131 end; 132 133 exit: cseg.file_lock = "0"b; 134 return; 135 136 137 138 end tape_ansi_position_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/82 1606.1 tape_ansi_position_.pl1 >dumps>old>recomp>tape_ansi_position_.pl1 17 1 07/28/81 1333.4 iocb.incl.pl1 >ldd>include>iocb.incl.pl1 19 2 06/10/82 1045.3 tape_ansi_cseg.incl.pl1 >ldd>include>tape_ansi_cseg.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. actual_iocb_ptr 12 based pointer level 2 dcl 1-4 ref 56 attach_data_ptr 16 based pointer level 2 dcl 1-4 ref 56 cP 000100 automatic pointer dcl 2-11 set ref 56* 58 63 69 70 72 81 85 89 93 109 110 115 116 122 125 129 133 cleanup 000106 stack reference condition dcl 54 ref 68 code 223 based fixed bin(35,0) level 3 in structure "cseg" dcl 2-14 in procedure "tape_ansi_position_" set ref 69* 85* 93* 122* 129* code parameter fixed bin(35,0) dcl 23 in procedure "tape_ansi_position_" set ref 14 59* 64* 76* 81* 84* 85 85 89* 92* 93 93 96* 103* 116* 117* 118 118* 119 120 130* cseg based structure level 1 unaligned dcl 2-14 error_table_$bad_arg 000024 external static fixed bin(35,0) dcl 43 ref 76 103 error_table_$fatal_error 000026 external static fixed bin(35,0) dcl 43 ref 69 error_table_$file_busy 000030 external static fixed bin(35,0) dcl 43 ref 64 error_table_$invalid_cseg 000036 external static fixed bin(35,0) dcl 43 ref 59 error_table_$long_record 000032 external static fixed bin(35,0) dcl 43 ref 118 error_table_$tape_error 000034 external static fixed bin(35,0) dcl 43 ref 120 129 130 file_lock 220 based bit(1) level 3 dcl 2-14 set ref 63 70* 72* 115* 125* 133* i 000102 automatic fixed bin(21,0) dcl 31 set ref 107* 111* 111 114 invalid 1 based bit(1) level 2 dcl 2-14 ref 58 iocb based structure level 1 dcl 1-4 iocbP parameter pointer dcl 23 set ref 14 56 81* 84* 89* 92* 116* 117* j 000103 automatic fixed bin(21,0) dcl 31 set ref 114* lrec 212 based structure level 2 unaligned dcl 2-14 n parameter fixed bin(21,0) dcl 23 ref 14 101 102 107 no_labels 202 based bit(1) level 2 dcl 2-14 ref 81 89 null builtin function dcl 51 ref 116 116 117 117 read_length 224 based structure level 2 unaligned dcl 2-14 rlN 226 based fixed bin(21,0) level 3 dcl 2-14 set ref 109 110* standard 2 based fixed bin(17,0) level 2 dcl 2-14 ref 116 tape_ansi_file_cntl_$beginning_of_file 000012 constant entry external dcl 35 ref 84 tape_ansi_file_cntl_$end_of_file 000014 constant entry external dcl 35 ref 92 tape_ansi_ibm_lrec_io_$read_record 000016 constant entry external dcl 35 ref 117 tape_ansi_lrec_io_$read_record 000010 constant entry external dcl 35 ref 116 tape_ansi_nl_file_cntl_$beginning_of_file 000020 constant entry external dcl 35 ref 81 tape_ansi_nl_file_cntl_$end_of_file 000022 constant entry external dcl 35 ref 89 tape_error 000104 automatic bit(1) dcl 31 set ref 99* 121* 128 type parameter fixed bin(17,0) dcl 23 ref 14 75 75 75 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. cseg_tseg_version_2 internal static fixed bin(17,0) initial dcl 2-12 iox_$iocb_version_sentinel external static char(4) dcl 1-43 NAMES DECLARED BY EXPLICIT CONTEXT. action 000000 constant label array(-1:1) dcl 81 ref 75 exit 000340 constant label dcl 133 ref 77 86 94 101 104 120 tape_ansi_position_ 000021 constant entry external dcl 14 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 534 574 344 544 Length 1016 344 40 205 170 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tape_ansi_position_ 100 external procedure is an external procedure. on unit on line 68 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tape_ansi_position_ 000100 cP tape_ansi_position_ 000102 i tape_ansi_position_ 000103 j tape_ansi_position_ 000104 tape_error tape_ansi_position_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. tape_ansi_file_cntl_$beginning_of_file tape_ansi_file_cntl_$end_of_file tape_ansi_ibm_lrec_io_$read_record tape_ansi_lrec_io_$read_record tape_ansi_nl_file_cntl_$beginning_of_file tape_ansi_nl_file_cntl_$end_of_file THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$fatal_error error_table_$file_busy error_table_$invalid_cseg error_table_$long_record error_table_$tape_error LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000014 56 000026 58 000034 59 000036 60 000040 63 000041 64 000043 65 000045 68 000046 69 000062 70 000066 71 000067 72 000070 75 000073 76 000102 77 000105 81 000106 84 000122 85 000133 86 000140 89 000141 92 000155 93 000166 94 000173 96 000174 99 000175 101 000176 102 000200 103 000201 104 000204 107 000205 109 000206 110 000211 111 000213 114 000215 115 000224 116 000226 117 000256 118 000302 119 000311 120 000314 121 000316 122 000320 125 000322 126 000325 128 000327 129 000331 130 000335 133 000340 134 000342 ----------------------------------------------------------- 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