COMPILATION LISTING OF SEGMENT read_tsoapl_tape Compiled by: Experimental PL/I Compiler of Friday, July 31, 1981 at 13:16 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 08/08/81 2024.6 mst Sat Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 /* READ_TSOAPL_TAPE - Program to read in an IBM tape created by APLUTIL (at MIT) or APL/DOS. 11* These tapes have a 144 byte workspace header record, followed by as many 10000 byte records 12* as necessary to hold the workspace. 13* 14* To increase the maximum tape record size, change the variable TPMXL and the -bk argument in the attach description. 15**/ 16 17 read_tsoapl_tape: rtt: 18 procedure; 19 20 /* Written by Paul Green */ 21 /* Changed for tape_nstd_, name args by B. Greenberg 10/77 */ 22 /* Modified 771122 by PG to use correct maximum tape record length (10000 bytes). */ 23 /* Modified 771201 by PG to set remaining_bytes to maximum before every workspace. */ 24 /* Modified 771208 by PG to put library_number in workspace name. */ 25 /* Modified 780811 by PG to permit density to be specified. */ 26 27 /* automatic */ 28 29 dcl arg_count fixed bin, 30 argno fixed bin, 31 arg_len fixed bin (21), 32 arg_ptr ptr, 33 attach_desc char (128) varying, 34 bitcount fixed bin (24), 35 buff_offset fixed bin (21), 36 buff_ptr ptr, 37 bytes_read fixed bin (21), 38 bytes_to_read fixed bin (21), 39 code fixed bin (35), 40 density char (4) varying, 41 dname char (168), 42 ename char (32), 43 end_of_tape bit (1) aligned, 44 file_found (10) bit (1) aligned, 45 fileno fixed bin, 46 filenames (10) char (15), 47 i fixed bin, 48 listopt bit (1) init ("0"b), 49 input_iocb_ptr ptr, 50 n_words fixed bin (18), 51 nfiles fixed bin, 52 record_length fixed bin (21), 53 record_number fixed bin, 54 remaining_bytes fixed bin (21), 55 tapename char (16) varying, 56 ws_number fixed bin, 57 ws_ptr ptr; 58 59 /* based */ 60 61 dcl arg_string char (arg_len) based (arg_ptr), 62 buffer (0:1044479) char (1) based (buff_ptr); 63 64 /* builtins */ 65 66 dcl (addr, binary, divide, hbound, ltrim, min, null, rtrim, substr, translate) builtin; 67 68 /* conditions */ 69 70 dcl cleanup condition; 71 72 /* entries */ 73 74 dcl com_err_ entry options (variable), 75 apl_zcode_to_ascii_ entry (char (*), char (*)), 76 cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin), 77 cu_$arg_count entry (fixed bin), 78 cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)), 79 get_wdir_ entry () returns (char (168)), 80 ioa_ entry options (variable), 81 hcs_$delentry_seg entry (ptr, fixed bin (35)), 82 hcs_$chname_seg entry (ptr, char (*), char (*), fixed bin (35)), 83 hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)), 84 hcs_$set_bc_seg entry (ptr, fixed bin (24), fixed bin (35)), 85 hcs_$terminate_noname entry (ptr, fixed bin (35)), 86 hcs_$truncate_seg entry (ptr, fixed bin (18), fixed bin (35)), 87 iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)), 88 iox_$close entry (ptr, fixed bin (35)), 89 iox_$control entry (ptr, char (*), ptr, fixed bin (35)), 90 iox_$detach_iocb entry (ptr, fixed bin (35)), 91 iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)), 92 iox_$read_record entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 93 94 /* external static */ 95 96 dcl (error_table_$badopt, 97 error_table_$tape_error, 98 error_table_$too_many_files, 99 error_table_$noarg, 100 error_table_$long_record, 101 error_table_$end_of_info) fixed bin (35) external static; 102 103 /* internal static */ 104 105 dcl my_name char (16) aligned internal static initial ("read_tsoapl_tape") options (constant); 106 dcl TPMXL fixed bin init (10000) static options (constant); 107 108 /* include files */ 109 1 1 /* ====== BEGIN INCLUDE SEGMENT apl_characters.incl.pl1 =================================== */ 1 2 1 3 /* 1 4* * This include file contains all the characters in the APL character set, 1 5* * declared char(1) [Instead of fixed bin as in the apl_character_codes.incl.pl1 file] 1 6* * 1 7* Modified 780913 by PG to add CentSign 1 8* Modified 790319 by PG to add CommaHyphen 1 9* */ 1 10 1 11 declare ( 1 12 QBell init(""), 1 13 QBackSpace init(""), 1 14 QTab init(" "), 1 15 QNewLine init(" 1 16 "), 1 17 QSpace init(" "), 1 18 QExclamation init("!"), 1 19 QDollar init("$"), 1 20 QApostrophe init("'"), 1 21 QLeftParen init("("), 1 22 QRightParen init(")"), 1 23 QStar init("*"), 1 24 QPlus init("+"), 1 25 QComma init(","), 1 26 QMinus init("-"), 1 27 QPeriod init("."), 1 28 QSlash init("/"), 1 29 QZero init("0"), 1 30 QOne init("1"), 1 31 QTwo init("2"), 1 32 QThree init("3"), 1 33 QFour init("4"), 1 34 QFive init("5"), 1 35 QSix init("6"), 1 36 QSeven init("7"), 1 37 QEight init("8"), 1 38 QNine init("9"), 1 39 QColon init(":"), 1 40 QSemiColon init(";"), 1 41 QLessThan init("<"), 1 42 QEqual init("="), 1 43 QGreaterThan init(">"), 1 44 QQuestion init("?"), 1 45 QLetterA_ init("A"), 1 46 QLetterB_ init("B"), 1 47 QLetterC_ init("C"), 1 48 QLetterD_ init("D"), 1 49 QLetterE_ init("E"), 1 50 QLetterF_ init("F"), 1 51 QLetterG_ init("G"), 1 52 QLetterH_ init("H"), 1 53 QLetterI_ init("I"), 1 54 QLetterJ_ init("J"), 1 55 QLetterK_ init("K"), 1 56 QLetterL_ init("L"), 1 57 QLetterM_ init("M"), 1 58 QLetterN_ init("N"), 1 59 QLetterO_ init("O"), 1 60 QLetterP_ init("P"), 1 61 QLetterQ_ init("Q"), 1 62 QLetterR_ init("R"), 1 63 QLetterS_ init("S"), 1 64 QLetterT_ init("T"), 1 65 QLetterU_ init("U"), 1 66 QLetterV_ init("V"), 1 67 QLetterW_ init("W"), 1 68 QLetterX_ init("X"), 1 69 QLetterY_ init("Y"), 1 70 QLetterZ_ init("Z"), 1 71 QLeftBracket init("["), 1 72 QBackSlash init("\"), 1 73 QRightBracket init("]"), 1 74 QUnderLine init("_"), 1 75 QLetterA init("a"), 1 76 QLetterB init("b"), 1 77 QLetterC init("c"), 1 78 QLetterD init("d"), 1 79 QLetterE init("e"), 1 80 QLetterF init("f"), 1 81 QLetterG init("g"), 1 82 QLetterH init("h"), 1 83 QLetterI init("i"), 1 84 QLetterJ init("j"), 1 85 QLetterK init("k"), 1 86 QLetterL init("l"), 1 87 QLetterM init("m"), 1 88 QLetterN init("n"), 1 89 QLetterO init("o"), 1 90 QLetterP init("p"), 1 91 QLetterQ init("q"), 1 92 QLetterR init("r"), 1 93 QLetterS init("s"), 1 94 QLetterT init("t"), 1 95 QLetterU init("u"), 1 96 QLetterV init("v"), 1 97 QLetterW init("w"), 1 98 QLetterX init("x"), 1 99 QLetterY init("y"), 1 100 QLetterZ init("z"), 1 101 QLeftBrace init("{"), 1 102 QVerticalBar init("|"), 1 103 QRightBrace init("}"), 1 104 QTilde init("~"), 1 105 QLessOrEqual init(""), 1 106 QGreaterOrEqual init(""), 1 107 QNotEqual init(""), 1 108 QOrSign init(""), 1 109 QAndSign init(""), 1 110 QDivision init(""), 1 111 QEpsilon init(""), 1 112 QUpArrow init(""), 1 113 QDownArrow init(""), 1 114 QCircle init(""), 1 115 QCeiling init(""), 1 116 QFloor init(""), 1 117 QDelta init(""), 1 118 QSmallCircle init(""), 1 119 QQuad init(""), 1 120 QCap init(""), 1 121 QDeCode init(""), 1 122 QEnCode init(""), 1 123 QLeftLump init(""), 1 124 QRightLump init(""), 1 125 QCup init(""), 1 126 QNorSign init(""), 1 127 QNandSign init(""), 1 128 QCircleHyphen init(""), 1 129 QSlashHyphen init(""), 1 130 QDelTilde init(""), 1 131 QCircleStar init(""), 1 132 QCircleBar init(""), 1 133 QCircleBackSlash init(""), 1 134 QCircleSlash init(""), 1 135 QGradeDown init(""), 1 136 QGradeUp init(""), 1 137 QLamp init(""), 1 138 QQuadQuote init(""), 1 139 QIBeam init(""), 1 140 QBackSlashHyphen init(""), 1 141 QDomino init(""), 1 142 QDiaresis init(""), 1 143 QOmega init(""), 1 144 QIota init(""), 1 145 QRho init(""), 1 146 QTimes init(""), 1 147 QAlpha init(""), 1 148 QUpperMinus init(""), 1 149 QDel init(""), 1 150 QLeftArrow init(""), 1 151 QRightArrow init(""), 1 152 QDiamond init(""), 1 153 QZero_ init(""), 1 154 QOne_ init(""), 1 155 QTwo_ init(""), 1 156 QThree_ init(""), 1 157 QFour_ init(""), 1 158 QFive_ init(""), 1 159 QSix_ init(""), 1 160 QSeven_ init(""), 1 161 QEight_ init(""), 1 162 QNine_ init(""), 1 163 QDelta_ init(""), 1 164 QMarkError init(""), 1 165 QExecuteSign init(""), 1 166 QFormatSign init(""), 1 167 QLeftTack init(""), 1 168 QRightTack init(""), 1 169 QLineFeed init(""), 1 170 QConditionalNewLine init(""), 1 171 QCentSign init(""), 1 172 QCommaHyphen init("") 1 173 ) char(1) internal static options (constant); 1 174 1 175 /* ------ END INCLUDE SEGMENT apl_characters.incl.pl1 ----------------------------------- */ 110 2 1 /* Begin include file ..... iox_modes.incl.pl1 */ 2 2 2 3 /* Written by C. D. Tavares, 03/17/75 */ 2 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 2 5 2 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 2 7 ("stream_input", "stream_output", "stream_input_output", 2 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 2 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 2 10 "direct_input", "direct_output", "direct_update"); 2 11 2 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 2 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 2 14 2 15 dcl (Stream_input initial (1), 2 16 Stream_output initial (2), 2 17 Stream_input_output initial (3), 2 18 Sequential_input initial (4), 2 19 Sequential_output initial (5), 2 20 Sequential_input_output initial (6), 2 21 Sequential_update initial (7), 2 22 Keyed_sequential_input initial (8), 2 23 Keyed_sequential_output initial (9), 2 24 Keyed_sequential_update initial (10), 2 25 Direct_input initial (11), 2 26 Direct_output initial (12), 2 27 Direct_update initial (13)) fixed bin int static options (constant); 2 28 2 29 /* End include file ..... iox_modes.incl.pl1 */ 111 112 113 /* program */ 114 115 input_iocb_ptr = null; 116 ws_ptr = null; 117 dname = get_wdir_ (); 118 attach_desc = ""; 119 fileno = 0; 120 nfiles = 0; 121 file_found (*) = "0"b; 122 tapename = ""; 123 density = "1600"; /* default value */ 124 125 call cu_$arg_count (arg_count); 126 if arg_count = 0 127 then do; 128 call com_err_ (0, my_name, "Usage: ^a tapename [filenames]", my_name); 129 return; 130 end; 131 132 do argno = 1 to arg_count; 133 call cu_$arg_ptr (argno, arg_ptr, arg_len, code); 134 135 if arg_string = "-atd" | arg_string = "-attach_description" 136 then do; 137 argno = argno + 1; 138 call cu_$arg_ptr (argno, arg_ptr, arg_len, code); 139 if code ^= 0 140 then do; 141 call com_err_ (code, my_name, "Attach description expected."); 142 return; 143 end; 144 145 attach_desc = arg_string; 146 end; 147 else if arg_string = "-list" | arg_string = "-ls" then listopt = "1"b; 148 /* busted else if arg_string = "-number" | arg_string = "-nb" 149* then do; 150* argno = argno + 1; 151* call cu_$arg_ptr (argno, arg_ptr, arg_len, code); 152* if code ^= 0 153* then do; 154* call com_err_ (code, my_name, "File number expected."); 155* return; 156* end; 157* 158* fileno = cv_dec_check_ (arg_string, code); 159* if code ^= 0 then do; 160* call com_err_ (0, my_name, "Bad numeric arg: ^a", arg_string); 161* return; 162* end; 163* end; */ 164 else if arg_string = "-den" | arg_string = "-density" 165 then do; 166 argno = argno + 1; 167 call cu_$arg_ptr (argno, arg_ptr, arg_len, code); 168 if code ^= 0 169 then do; 170 call com_err_ (code, my_name, "Density value of 200, 556, 800, or 1600 expected."); 171 return; 172 end; 173 174 if arg_string ^= "200" & arg_string ^= "556" & arg_string ^= "800" & arg_string ^= "1600" 175 then do; 176 call com_err_ (0, my_name, "Invalid density ^a. Permissible values are 200, 556, 800, or 1600.", 177 arg_string); 178 return; 179 end; 180 181 density = arg_string; 182 end; 183 else if substr (arg_string, 1, 1) = "-" then do; 184 call com_err_ (error_table_$badopt, my_name, "^a", arg_string); 185 return; 186 end; 187 else do; 188 if argno = 1 then tapename = arg_string; 189 else do; 190 if nfiles >= hbound (filenames, 1) then do; 191 call com_err_ (error_table_$too_many_files, my_name, "Max is ^d workspaces.", hbound (filenames, 1)); 192 return; 193 end; 194 nfiles = nfiles + 1; 195 filenames (nfiles) = arg_string; 196 end; 197 end; 198 end; 199 200 if attach_desc = "" & tapename = "" then do; 201 call com_err_ (error_table_$noarg, my_name, "Neither attach desc nor tape name given."); 202 return; 203 end; 204 205 if attach_desc = "" 206 then attach_desc = "tape_nstd_ " || tapename || " -bk 10000"; /* 10000 is biggest tape record. */ 207 208 on cleanup call clean_up; 209 210 call iox_$attach_ioname ("apl_tape_input_", input_iocb_ptr, (attach_desc), code); 211 if code ^= 0 212 then do; 213 call com_err_ (code, my_name, "Trying to attach I/O switch."); 214 return; 215 end; 216 217 call iox_$open (input_iocb_ptr, Sequential_input, "0"b, code); 218 if code ^= 0 219 then do; 220 call com_err_ (code, my_name, "Trying to open I/O switch for sequential input."); 221 call clean_up; 222 return; 223 end; 224 225 call iox_$control (input_iocb_ptr, "d" || density, null (), code); 226 if code ^= 0 227 then do; 228 call com_err_ (code, my_name, "Trying to set density to ^a bpi.", density); 229 call clean_up; 230 return; 231 end; 232 233 call iox_$control (input_iocb_ptr, "nine", null(), code); 234 if code ^= 0 235 then do; 236 call com_err_ (code, my_name, "Trying to set nine mode."); 237 call clean_up; 238 return; 239 end; 240 241 call ioa_ ("Begin processing of ^a at ^a bpi.", tapename, density); 242 call skip_file; 243 record_number = 0; 244 ws_number = 0; 245 end_of_tape = "0"b; 246 247 do while (^end_of_tape); 248 call do_workspace; 249 if fileno > 0 then end_of_tape = "1"b; 250 end; 251 252 do i = 1 to nfiles; 253 if ^file_found (i) 254 then call com_err_ (0, my_name, "File ^a not found.", filenames (i)); 255 end; 256 257 call clean_up; 258 return; 259 260 abort: 261 call ioa_ ("Tape reading aborted at record ^d.", record_number); 262 263 return_from_main: 264 call clean_up; 265 return; 266 267 do_workspace: 268 procedure; 269 270 /* automatic */ 271 272 declare new_ename char (32), 273 this_file_name char (32), 274 this_library_number fixed bin, 275 ten_digits picture "(9)z9"; 276 277 /* based */ 278 279 dcl 1 ws_header aligned based (ws_ptr), 280 2 pad1 (32) bit (36), 281 2 qr13stk bit (36), 282 2 qsymbot bit (36), 283 2 mx bit (36), 284 2 svi bit (36), 285 2 pad2 (21) bit (36), 286 2 library_number bit (36), 287 2 name, 288 3 len fixed bin (8) unal, 289 3 chars char (11) unal; 290 291 /* program */ 292 293 ws_ptr, buff_ptr = get_ws_seg (); 294 call iox_$read_record (input_iocb_ptr, buff_ptr, min (remaining_bytes, TPMXL), record_length, code); 295 if code ^= 0 296 then if code = error_table_$end_of_info 297 then do; 298 end_of_tape = "1"b; 299 return; 300 end; 301 else do; 302 call com_err_ (code, my_name, "While reading workspace header."); 303 go to abort; 304 end; 305 306 record_number = record_number + 1; 307 308 if record_length ^= 144 309 then do; 310 call ioa_ ("Tape not in expected format: first record of workspace not 144 bytes long."); 311 go to abort; 312 end; 313 314 bytes_read = record_length; 315 buff_offset = record_length; 316 bytes_to_read = binary (pack (ws_header.mx)); 317 remaining_bytes = remaining_bytes - record_length; 318 call fill_buffer; 319 320 bytes_read = 0; 321 buff_offset = binary (pack (ws_header.svi)); 322 bytes_to_read = binary (pack (ws_header.qr13stk), 22) - binary (pack (ws_header.svi), 22) + 1000; 323 call fill_buffer; 324 325 bitcount = (buff_offset + bytes_read) * 9; 326 n_words = divide (bitcount + 35, 36, 24, 0); 327 328 call apl_zcode_to_ascii_ (substr (ws_header.name.chars, 1, ws_header.name.len), this_file_name); 329 this_file_name = translate (this_file_name, "dD", QDelta || QDelta_); 330 this_library_number = binary (pack (ws_header.library_number)); 331 332 if substr (this_file_name, 1, 11) = "PLDIRECTORY" 333 then return; /* ignore useless APLDIRECTORY */ 334 335 ws_number = ws_number + 1; 336 337 if nfiles > 0 then do; 338 do i = 1 to nfiles; 339 if this_file_name = filenames (i) then do; 340 call list_file; 341 file_found (i) = "1"b; 342 go to yes_save_this_file; 343 end; 344 end; 345 return; 346 end; 347 348 call list_file; 349 yes_save_this_file: 350 if listopt then return; 351 352 ten_digits = this_library_number; 353 new_ename = rtrim (this_file_name) || ".lib" || ltrim (ten_digits) || ".sv.tsoapl"; 354 call hcs_$chname_seg (ws_ptr, ename, new_ename, code); 355 if code ^= 0 356 then call com_err_ (code, my_name, "Cannot rename ^a>^a to ^a", dname, ename, new_ename); 357 358 call hcs_$truncate_seg (ws_ptr, n_words, code); 359 if code ^= 0 360 then call com_err_ (code, my_name, "Unable to truncate ^a>^a to ^d words.", dname, ename, n_words); 361 362 call hcs_$set_bc_seg (ws_ptr, bitcount, code); 363 if code ^= 0 364 then call com_err_ (code, my_name, "Unable to set bitcount of ^a>^a to ^d.", 365 dname, ename, bitcount); 366 367 call hcs_$terminate_noname (ws_ptr, code); 368 buff_ptr, ws_ptr = null (); 369 return; 370 371 372 list_file: 373 procedure; 374 375 call ioa_ ("^3d ^7d ^a", ws_number, this_library_number, this_file_name); 376 377 end list_file; 378 379 end do_workspace; 380 381 fill_buffer: 382 procedure; 383 384 buff_ptr = addr (ws_ptr -> buffer (buff_offset)); 385 do while (bytes_read < bytes_to_read); 386 call iox_$read_record (input_iocb_ptr, buff_ptr, min (remaining_bytes, TPMXL), record_length, code); 387 if code ^= 0 388 then do; 389 call com_err_ (code, my_name, "While reading record ^d.", record_number + 1); 390 if code ^= error_table_$tape_error then go to abort; 391 end; 392 393 record_number = record_number + 1; /* Successfully read another record! */ 394 bytes_read = bytes_read + record_length; 395 buff_ptr = addr (buffer (record_length)); /* step over this record */ 396 remaining_bytes = remaining_bytes - record_length; 397 end; 398 399 return; 400 401 end fill_buffer; 402 403 get_ws_seg: 404 procedure returns (ptr); 405 406 dcl get_wdir_ entry () returns (char (168)); 407 dcl unique_chars_ entry (bit (*)) returns (char (15)); 408 409 if ws_ptr = null then do; 410 dname = get_wdir_ (); 411 ename = unique_chars_ ("0"b); 412 call hcs_$make_seg (dname, ename, "", 1010b, ws_ptr, code); 413 if ws_ptr = null 414 then do; 415 call com_err_ (code, my_name, "Cannot create ^a>^a", dname, ename); 416 go to return_from_main; 417 end; 418 end; 419 420 call hcs_$truncate_seg (ws_ptr, 0, code); 421 if code ^= 0 422 then do; 423 call com_err_ (code, my_name, "Unable to zero-truncate ^a>^a", dname, ename); 424 go to return_from_main; 425 end; 426 427 remaining_bytes = 1044480; 428 return (ws_ptr); 429 430 end get_ws_seg; 431 432 pack: 433 procedure (aplsv_word) returns (bit (36) aligned); 434 435 /* parameters */ 436 437 dcl aplsv_word bit (36) aligned; 438 439 /* automatic */ 440 441 dcl word bit (36) aligned; 442 443 /* program */ 444 445 word = ""b; 446 substr (word, 5, 8) = substr (aplsv_word, 2, 8); 447 substr (word, 13, 8) = substr (aplsv_word, 11, 8); 448 substr (word, 21, 8) = substr (aplsv_word, 20, 8); 449 substr (word, 29, 8) = substr (aplsv_word, 29, 8); 450 return (word); 451 452 end pack; 453 454 clean_up: 455 procedure; 456 457 if ws_ptr ^= null 458 then do; 459 call hcs_$delentry_seg (ws_ptr, code); 460 ws_ptr = null; 461 end; 462 call iox_$close (input_iocb_ptr, code); 463 call iox_$detach_iocb (input_iocb_ptr, code); 464 465 end; 466 467 468 469 skip_file: proc; 470 471 dcl tbuf char (4) aligned; 472 473 code = error_table_$end_of_info - 1; 474 do while (code ^= error_table_$end_of_info); 475 call iox_$read_record (input_iocb_ptr, addr (tbuf), 4, (0), code); 476 if code ^= 0 & code ^= error_table_$end_of_info & code ^= error_table_$long_record then do; 477 call com_err_ (code, my_name, "Error during file spacing."); 478 go to return_from_main; 479 end; 480 end; 481 482 end skip_file; 483 484 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/08/81 1600.1 read_tsoapl_tape.pl1 >dumps>old_dumps>on>MIB-073181>read_tsoapl_tape.pl1 110 1 08/08/81 1934.9 apl_characters.incl.pl1 >dumps>old_dumps>on>MIB-073181>apl_characters.incl.pl1 111 2 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include_1>iox_modes.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. QDelta constant char(1) initial unaligned dcl 1-11 ref 329 QDelta_ constant char(1) initial unaligned dcl 1-11 ref 329 Sequential_input 000016 constant fixed bin(17,0) initial dcl 2-15 set ref 217* TPMXL constant fixed bin(17,0) initial dcl 106 ref 294 294 386 386 addr builtin function dcl 66 ref 384 395 475 475 apl_zcode_to_ascii_ 000012 constant entry external dcl 74 ref 328 aplsv_word parameter bit(36) dcl 437 ref 432 446 447 448 449 arg_count 000100 automatic fixed bin(17,0) dcl 29 set ref 125* 126 132 arg_len 000102 automatic fixed bin(21,0) dcl 29 set ref 133* 135 135 138* 145 147 147 164 164 167* 174 174 174 174 176 176 181 183 184 184 188 195 arg_ptr 000104 automatic pointer dcl 29 set ref 133* 135 135 138* 145 147 147 164 164 167* 174 174 174 174 176 181 183 184 188 195 arg_string based char unaligned dcl 61 set ref 135 135 145 147 147 164 164 174 174 174 174 176* 181 183 184* 188 195 argno 000101 automatic fixed bin(17,0) dcl 29 set ref 132* 133* 137* 137 138* 166* 166 167* 188* attach_desc 000106 automatic varying char(128) dcl 29 set ref 118* 145* 200 205 205* 210 binary builtin function dcl 66 ref 316 321 322 322 330 bitcount 000147 automatic fixed bin(24,0) dcl 29 set ref 325* 326 362* 363* buff_offset 000150 automatic fixed bin(21,0) dcl 29 set ref 315* 321* 325 384 buff_ptr 000152 automatic pointer dcl 29 set ref 293* 294* 368* 384* 386* 395* 395 buffer based char(1) array unaligned dcl 61 set ref 384 395 bytes_read 000154 automatic fixed bin(21,0) dcl 29 set ref 314* 320* 325 385 394* 394 bytes_to_read 000155 automatic fixed bin(21,0) dcl 29 set ref 316* 322* 385 chars 72(09) based char(11) level 3 packed unaligned dcl 279 ref 328 328 cleanup 000350 stack reference condition dcl 70 ref 208 code 000156 automatic fixed bin(35,0) dcl 29 set ref 133* 138* 139 141* 167* 168 170* 210* 211 213* 217* 218 220* 225* 226 228* 233* 234 236* 294* 295 295 302* 354* 355 355* 358* 359 359* 362* 363 363* 367* 386* 387 389* 390 412* 415* 420* 421 423* 459* 462* 463* 473* 474 475* 476 476 476 477* com_err_ 000010 constant entry external dcl 74 ref 128 141 170 176 184 191 201 213 220 228 236 253 302 355 359 363 389 415 423 477 cu_$arg_count 000014 constant entry external dcl 74 ref 125 cu_$arg_ptr 000016 constant entry external dcl 74 ref 133 138 167 density 000160 automatic varying char(4) dcl 29 set ref 123* 181* 225 228* 241* divide builtin function dcl 66 ref 326 dname 000162 automatic char(168) unaligned dcl 29 set ref 117* 355* 359* 363* 410* 412* 415* 423* ename 000234 automatic char(32) unaligned dcl 29 set ref 354* 355* 359* 363* 411* 412* 415* 423* end_of_tape 000244 automatic bit(1) dcl 29 set ref 245* 247 249* 298* error_table_$badopt 000054 external static fixed bin(35,0) dcl 96 set ref 184* error_table_$end_of_info 000066 external static fixed bin(35,0) dcl 96 ref 295 473 474 476 error_table_$long_record 000064 external static fixed bin(35,0) dcl 96 ref 476 error_table_$noarg 000062 external static fixed bin(35,0) dcl 96 set ref 201* error_table_$tape_error 000056 external static fixed bin(35,0) dcl 96 ref 390 error_table_$too_many_files 000060 external static fixed bin(35,0) dcl 96 set ref 191* file_found 000245 automatic bit(1) array dcl 29 set ref 121* 253 341* filenames 000260 automatic char(15) array unaligned dcl 29 set ref 190 191 191 195* 253* 339 fileno 000257 automatic fixed bin(17,0) dcl 29 set ref 119* 249 get_wdir_ 000020 constant entry external dcl 74 in procedure "rtt" ref 117 get_wdir_ 000070 constant entry external dcl 406 in procedure "get_ws_seg" ref 410 hbound builtin function dcl 66 ref 190 191 191 hcs_$chname_seg 000026 constant entry external dcl 74 ref 354 hcs_$delentry_seg 000024 constant entry external dcl 74 ref 459 hcs_$make_seg 000030 constant entry external dcl 74 ref 412 hcs_$set_bc_seg 000032 constant entry external dcl 74 ref 362 hcs_$terminate_noname 000034 constant entry external dcl 74 ref 367 hcs_$truncate_seg 000036 constant entry external dcl 74 ref 358 420 i 000326 automatic fixed bin(17,0) dcl 29 set ref 252* 253 253* 338* 339 341* input_iocb_ptr 000330 automatic pointer dcl 29 set ref 115* 210* 217* 225* 233* 294* 386* 462* 463* 475* ioa_ 000022 constant entry external dcl 74 ref 241 260 310 375 iox_$attach_ioname 000040 constant entry external dcl 74 ref 210 iox_$close 000042 constant entry external dcl 74 ref 462 iox_$control 000044 constant entry external dcl 74 ref 225 233 iox_$detach_iocb 000046 constant entry external dcl 74 ref 463 iox_$open 000050 constant entry external dcl 74 ref 217 iox_$read_record 000052 constant entry external dcl 74 ref 294 386 475 len 72 based fixed bin(8,0) level 3 packed unaligned dcl 279 ref 328 328 library_number 71 based bit(36) level 2 dcl 279 set ref 330* listopt 000327 automatic bit(1) initial unaligned dcl 29 set ref 29* 147* 349 ltrim builtin function dcl 66 ref 353 min builtin function dcl 66 ref 294 294 386 386 mx 42 based bit(36) level 2 dcl 279 set ref 316* my_name 000000 constant char(16) initial dcl 105 set ref 128* 128* 141* 170* 176* 184* 191* 201* 213* 220* 228* 236* 253* 302* 355* 359* 363* 389* 415* 423* 477* n_words 000332 automatic fixed bin(18,0) dcl 29 set ref 326* 358* 359* name 72 based structure level 2 dcl 279 new_ename 000370 automatic char(32) unaligned dcl 272 set ref 353* 354* 355* nfiles 000333 automatic fixed bin(17,0) dcl 29 set ref 120* 190 194* 194 195 252 337 338 null builtin function dcl 66 ref 115 116 225 225 233 233 368 409 413 457 460 qr13stk 40 based bit(36) level 2 dcl 279 set ref 322* record_length 000334 automatic fixed bin(21,0) dcl 29 set ref 294* 308 314 315 317 386* 394 395 396 record_number 000335 automatic fixed bin(17,0) dcl 29 set ref 243* 260* 306* 306 389 393* 393 remaining_bytes 000336 automatic fixed bin(21,0) dcl 29 set ref 294 294 317* 317 386 386 396* 396 427* rtrim builtin function dcl 66 ref 353 substr builtin function dcl 66 set ref 183 328 328 332 446* 446 447* 447 448* 448 449* 449 svi 43 based bit(36) level 2 dcl 279 set ref 321* 322* tapename 000337 automatic varying char(16) dcl 29 set ref 122* 188* 200 205 241* tbuf 000456 automatic char(4) dcl 471 set ref 475 475 ten_digits 000411 automatic picture(10) unaligned dcl 272 set ref 352* 353 this_file_name 000400 automatic char(32) unaligned dcl 272 set ref 328* 329* 329 332 339 353 375* this_library_number 000410 automatic fixed bin(17,0) dcl 272 set ref 330* 352 375* translate builtin function dcl 66 ref 329 unique_chars_ 000072 constant entry external dcl 407 ref 411 word 000446 automatic bit(36) dcl 441 set ref 445* 446* 447* 448* 449* 450 ws_header based structure level 1 dcl 279 ws_number 000344 automatic fixed bin(17,0) dcl 29 set ref 244* 335* 335 375* ws_ptr 000346 automatic pointer dcl 29 set ref 116* 293* 316 321 322 322 328 328 328 328 330 354* 358* 362* 367* 368* 384 409 412* 413 420* 428 457 459* 460* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Direct_input internal static fixed bin(17,0) initial dcl 2-15 Direct_output internal static fixed bin(17,0) initial dcl 2-15 Direct_update internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 2-15 QAlpha internal static char(1) initial unaligned dcl 1-11 QAndSign internal static char(1) initial unaligned dcl 1-11 QApostrophe internal static char(1) initial unaligned dcl 1-11 QBackSlash internal static char(1) initial unaligned dcl 1-11 QBackSlashHyphen internal static char(1) initial unaligned dcl 1-11 QBackSpace internal static char(1) initial unaligned dcl 1-11 QBell internal static char(1) initial unaligned dcl 1-11 QCap internal static char(1) initial unaligned dcl 1-11 QCeiling internal static char(1) initial unaligned dcl 1-11 QCentSign internal static char(1) initial unaligned dcl 1-11 QCircle internal static char(1) initial unaligned dcl 1-11 QCircleBackSlash internal static char(1) initial unaligned dcl 1-11 QCircleBar internal static char(1) initial unaligned dcl 1-11 QCircleHyphen internal static char(1) initial unaligned dcl 1-11 QCircleSlash internal static char(1) initial unaligned dcl 1-11 QCircleStar internal static char(1) initial unaligned dcl 1-11 QColon internal static char(1) initial unaligned dcl 1-11 QComma internal static char(1) initial unaligned dcl 1-11 QCommaHyphen internal static char(1) initial unaligned dcl 1-11 QConditionalNewLine internal static char(1) initial unaligned dcl 1-11 QCup internal static char(1) initial unaligned dcl 1-11 QDeCode internal static char(1) initial unaligned dcl 1-11 QDel internal static char(1) initial unaligned dcl 1-11 QDelTilde internal static char(1) initial unaligned dcl 1-11 QDiamond internal static char(1) initial unaligned dcl 1-11 QDiaresis internal static char(1) initial unaligned dcl 1-11 QDivision internal static char(1) initial unaligned dcl 1-11 QDollar internal static char(1) initial unaligned dcl 1-11 QDomino internal static char(1) initial unaligned dcl 1-11 QDownArrow internal static char(1) initial unaligned dcl 1-11 QEight internal static char(1) initial unaligned dcl 1-11 QEight_ internal static char(1) initial unaligned dcl 1-11 QEnCode internal static char(1) initial unaligned dcl 1-11 QEpsilon internal static char(1) initial unaligned dcl 1-11 QEqual internal static char(1) initial unaligned dcl 1-11 QExclamation internal static char(1) initial unaligned dcl 1-11 QExecuteSign internal static char(1) initial unaligned dcl 1-11 QFive internal static char(1) initial unaligned dcl 1-11 QFive_ internal static char(1) initial unaligned dcl 1-11 QFloor internal static char(1) initial unaligned dcl 1-11 QFormatSign internal static char(1) initial unaligned dcl 1-11 QFour internal static char(1) initial unaligned dcl 1-11 QFour_ internal static char(1) initial unaligned dcl 1-11 QGradeDown internal static char(1) initial unaligned dcl 1-11 QGradeUp internal static char(1) initial unaligned dcl 1-11 QGreaterOrEqual internal static char(1) initial unaligned dcl 1-11 QGreaterThan internal static char(1) initial unaligned dcl 1-11 QIBeam internal static char(1) initial unaligned dcl 1-11 QIota internal static char(1) initial unaligned dcl 1-11 QLamp internal static char(1) initial unaligned dcl 1-11 QLeftArrow internal static char(1) initial unaligned dcl 1-11 QLeftBrace internal static char(1) initial unaligned dcl 1-11 QLeftBracket internal static char(1) initial unaligned dcl 1-11 QLeftLump internal static char(1) initial unaligned dcl 1-11 QLeftParen internal static char(1) initial unaligned dcl 1-11 QLeftTack internal static char(1) initial unaligned dcl 1-11 QLessOrEqual internal static char(1) initial unaligned dcl 1-11 QLessThan internal static char(1) initial unaligned dcl 1-11 QLetterA internal static char(1) initial unaligned dcl 1-11 QLetterA_ internal static char(1) initial unaligned dcl 1-11 QLetterB internal static char(1) initial unaligned dcl 1-11 QLetterB_ internal static char(1) initial unaligned dcl 1-11 QLetterC internal static char(1) initial unaligned dcl 1-11 QLetterC_ internal static char(1) initial unaligned dcl 1-11 QLetterD internal static char(1) initial unaligned dcl 1-11 QLetterD_ internal static char(1) initial unaligned dcl 1-11 QLetterE internal static char(1) initial unaligned dcl 1-11 QLetterE_ internal static char(1) initial unaligned dcl 1-11 QLetterF internal static char(1) initial unaligned dcl 1-11 QLetterF_ internal static char(1) initial unaligned dcl 1-11 QLetterG internal static char(1) initial unaligned dcl 1-11 QLetterG_ internal static char(1) initial unaligned dcl 1-11 QLetterH internal static char(1) initial unaligned dcl 1-11 QLetterH_ internal static char(1) initial unaligned dcl 1-11 QLetterI internal static char(1) initial unaligned dcl 1-11 QLetterI_ internal static char(1) initial unaligned dcl 1-11 QLetterJ internal static char(1) initial unaligned dcl 1-11 QLetterJ_ internal static char(1) initial unaligned dcl 1-11 QLetterK internal static char(1) initial unaligned dcl 1-11 QLetterK_ internal static char(1) initial unaligned dcl 1-11 QLetterL internal static char(1) initial unaligned dcl 1-11 QLetterL_ internal static char(1) initial unaligned dcl 1-11 QLetterM internal static char(1) initial unaligned dcl 1-11 QLetterM_ internal static char(1) initial unaligned dcl 1-11 QLetterN internal static char(1) initial unaligned dcl 1-11 QLetterN_ internal static char(1) initial unaligned dcl 1-11 QLetterO internal static char(1) initial unaligned dcl 1-11 QLetterO_ internal static char(1) initial unaligned dcl 1-11 QLetterP internal static char(1) initial unaligned dcl 1-11 QLetterP_ internal static char(1) initial unaligned dcl 1-11 QLetterQ internal static char(1) initial unaligned dcl 1-11 QLetterQ_ internal static char(1) initial unaligned dcl 1-11 QLetterR internal static char(1) initial unaligned dcl 1-11 QLetterR_ internal static char(1) initial unaligned dcl 1-11 QLetterS internal static char(1) initial unaligned dcl 1-11 QLetterS_ internal static char(1) initial unaligned dcl 1-11 QLetterT internal static char(1) initial unaligned dcl 1-11 QLetterT_ internal static char(1) initial unaligned dcl 1-11 QLetterU internal static char(1) initial unaligned dcl 1-11 QLetterU_ internal static char(1) initial unaligned dcl 1-11 QLetterV internal static char(1) initial unaligned dcl 1-11 QLetterV_ internal static char(1) initial unaligned dcl 1-11 QLetterW internal static char(1) initial unaligned dcl 1-11 QLetterW_ internal static char(1) initial unaligned dcl 1-11 QLetterX internal static char(1) initial unaligned dcl 1-11 QLetterX_ internal static char(1) initial unaligned dcl 1-11 QLetterY internal static char(1) initial unaligned dcl 1-11 QLetterY_ internal static char(1) initial unaligned dcl 1-11 QLetterZ internal static char(1) initial unaligned dcl 1-11 QLetterZ_ internal static char(1) initial unaligned dcl 1-11 QLineFeed internal static char(1) initial unaligned dcl 1-11 QMarkError internal static char(1) initial unaligned dcl 1-11 QMinus internal static char(1) initial unaligned dcl 1-11 QNandSign internal static char(1) initial unaligned dcl 1-11 QNewLine internal static char(1) initial unaligned dcl 1-11 QNine internal static char(1) initial unaligned dcl 1-11 QNine_ internal static char(1) initial unaligned dcl 1-11 QNorSign internal static char(1) initial unaligned dcl 1-11 QNotEqual internal static char(1) initial unaligned dcl 1-11 QOmega internal static char(1) initial unaligned dcl 1-11 QOne internal static char(1) initial unaligned dcl 1-11 QOne_ internal static char(1) initial unaligned dcl 1-11 QOrSign internal static char(1) initial unaligned dcl 1-11 QPeriod internal static char(1) initial unaligned dcl 1-11 QPlus internal static char(1) initial unaligned dcl 1-11 QQuad internal static char(1) initial unaligned dcl 1-11 QQuadQuote internal static char(1) initial unaligned dcl 1-11 QQuestion internal static char(1) initial unaligned dcl 1-11 QRho internal static char(1) initial unaligned dcl 1-11 QRightArrow internal static char(1) initial unaligned dcl 1-11 QRightBrace internal static char(1) initial unaligned dcl 1-11 QRightBracket internal static char(1) initial unaligned dcl 1-11 QRightLump internal static char(1) initial unaligned dcl 1-11 QRightParen internal static char(1) initial unaligned dcl 1-11 QRightTack internal static char(1) initial unaligned dcl 1-11 QSemiColon internal static char(1) initial unaligned dcl 1-11 QSeven internal static char(1) initial unaligned dcl 1-11 QSeven_ internal static char(1) initial unaligned dcl 1-11 QSix internal static char(1) initial unaligned dcl 1-11 QSix_ internal static char(1) initial unaligned dcl 1-11 QSlash internal static char(1) initial unaligned dcl 1-11 QSlashHyphen internal static char(1) initial unaligned dcl 1-11 QSmallCircle internal static char(1) initial unaligned dcl 1-11 QSpace internal static char(1) initial unaligned dcl 1-11 QStar internal static char(1) initial unaligned dcl 1-11 QTab internal static char(1) initial unaligned dcl 1-11 QThree internal static char(1) initial unaligned dcl 1-11 QThree_ internal static char(1) initial unaligned dcl 1-11 QTilde internal static char(1) initial unaligned dcl 1-11 QTimes internal static char(1) initial unaligned dcl 1-11 QTwo internal static char(1) initial unaligned dcl 1-11 QTwo_ internal static char(1) initial unaligned dcl 1-11 QUnderLine internal static char(1) initial unaligned dcl 1-11 QUpArrow internal static char(1) initial unaligned dcl 1-11 QUpperMinus internal static char(1) initial unaligned dcl 1-11 QVerticalBar internal static char(1) initial unaligned dcl 1-11 QZero internal static char(1) initial unaligned dcl 1-11 QZero_ internal static char(1) initial unaligned dcl 1-11 Sequential_input_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_update internal static fixed bin(17,0) initial dcl 2-15 Stream_input internal static fixed bin(17,0) initial dcl 2-15 Stream_input_output internal static fixed bin(17,0) initial dcl 2-15 Stream_output internal static fixed bin(17,0) initial dcl 2-15 cv_dec_check_ 000000 constant entry external dcl 74 iox_modes internal static char(24) initial array dcl 2-6 short_iox_modes internal static char(4) initial array dcl 2-12 NAMES DECLARED BY EXPLICIT CONTEXT. abort 001774 constant label dcl 260 ref 303 311 390 clean_up 003322 constant entry internal dcl 454 ref 208 221 229 237 257 263 do_workspace 002021 constant entry internal dcl 267 ref 248 fill_buffer 002736 constant entry internal dcl 381 ref 318 323 get_ws_seg 003050 constant entry internal dcl 403 ref 293 list_file 002704 constant entry internal dcl 372 ref 340 348 pack 003270 constant entry internal dcl 432 ref 316 321 322 322 330 read_tsoapl_tape 000452 constant entry external dcl 17 return_from_main 002014 constant label dcl 263 ref 416 424 478 rtt 000442 constant entry external dcl 17 skip_file 003373 constant entry internal dcl 469 ref 242 yes_save_this_file 002350 constant label dcl 349 ref 342 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4014 4110 3501 4024 Length 4414 3501 74 267 312 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rtt 576 external procedure is an external procedure. on unit on line 208 64 on unit do_workspace internal procedure shares stack frame of external procedure rtt. list_file internal procedure shares stack frame of external procedure rtt. fill_buffer internal procedure shares stack frame of external procedure rtt. get_ws_seg internal procedure shares stack frame of external procedure rtt. pack internal procedure shares stack frame of external procedure rtt. clean_up 70 internal procedure is called by several nonquick procedures. skip_file internal procedure shares stack frame of external procedure rtt. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rtt 000100 arg_count rtt 000101 argno rtt 000102 arg_len rtt 000104 arg_ptr rtt 000106 attach_desc rtt 000147 bitcount rtt 000150 buff_offset rtt 000152 buff_ptr rtt 000154 bytes_read rtt 000155 bytes_to_read rtt 000156 code rtt 000160 density rtt 000162 dname rtt 000234 ename rtt 000244 end_of_tape rtt 000245 file_found rtt 000257 fileno rtt 000260 filenames rtt 000326 i rtt 000327 listopt rtt 000330 input_iocb_ptr rtt 000332 n_words rtt 000333 nfiles rtt 000334 record_length rtt 000335 record_number rtt 000336 remaining_bytes rtt 000337 tapename rtt 000344 ws_number rtt 000346 ws_ptr rtt 000370 new_ename do_workspace 000400 this_file_name do_workspace 000410 this_library_number do_workspace 000411 ten_digits do_workspace 000446 word pack 000456 tbuf skip_file THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return enable shorten_stack ext_entry int_entry set_cs_eis translate_3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. apl_zcode_to_ascii_ com_err_ cu_$arg_count cu_$arg_ptr get_wdir_ get_wdir_ hcs_$chname_seg hcs_$delentry_seg hcs_$make_seg hcs_$set_bc_seg hcs_$terminate_noname hcs_$truncate_seg ioa_ iox_$attach_ioname iox_$close iox_$control iox_$detach_iocb iox_$open iox_$read_record unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$end_of_info error_table_$long_record error_table_$noarg error_table_$tape_error error_table_$too_many_files LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000436 17 000441 115 000460 116 000462 117 000463 118 000472 119 000473 120 000474 121 000475 122 000505 123 000506 125 000512 126 000521 128 000523 129 000553 132 000554 133 000562 135 000577 137 000611 138 000612 139 000627 141 000631 142 000655 145 000656 146 000667 147 000670 164 000703 166 000713 167 000714 168 000731 170 000733 171 000757 174 000760 176 001002 178 001036 181 001037 182 001047 183 001050 184 001054 185 001106 188 001107 190 001123 191 001126 192 001163 194 001164 195 001165 198 001173 200 001175 201 001207 202 001233 205 001234 208 001273 210 001316 211 001361 213 001364 214 001410 217 001411 218 001430 220 001432 221 001456 222 001462 225 001463 226 001526 228 001531 229 001561 230 001565 233 001566 234 001616 236 001620 237 001647 238 001653 241 001654 242 001700 243 001701 244 001702 245 001703 247 001704 248 001706 249 001707 250 001713 252 001714 253 001723 255 001765 257 001767 258 001773 260 001774 263 002014 265 002020 267 002021 293 002022 294 002027 295 002053 298 002060 299 002062 302 002063 303 002106 306 002107 308 002110 310 002113 311 002127 314 002130 315 002131 316 002132 317 002146 318 002150 320 002151 321 002152 322 002166 323 002220 325 002221 326 002225 328 002230 329 002257 330 002277 332 002314 335 002321 337 002322 338 002324 339 002332 340 002337 341 002340 342 002343 344 002344 345 002346 348 002347 349 002350 352 002353 353 002362 354 002447 355 002474 358 002535 359 002550 362 002612 363 002625 367 002667 368 002700 369 002703 372 002704 375 002705 377 002735 381 002736 384 002737 385 002743 386 002746 387 002772 389 002774 390 003032 393 003036 394 003037 395 003041 396 003044 397 003046 399 003047 403 003050 409 003052 410 003056 411 003065 412 003107 413 003146 415 003152 416 003206 420 003207 421 003223 423 003225 424 003261 427 003262 428 003264 432 003270 445 003272 446 003273 447 003300 448 003305 449 003312 450 003316 454 003321 457 003327 459 003334 460 003344 462 003347 463 003360 465 003372 469 003373 473 003374 474 003403 475 003407 476 003432 477 003441 478 003464 480 003465 482 003466 ----------------------------------------------------------- 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