COMPILATION LISTING OF SEGMENT gtss_drl_drlsav_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1231.3 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 /* ************************************************************* 10* * * 11* * Copyright (c) 1979 by Honeywell Information Systems, Inc. * 12* * * 13* ************************************************************* */ 14 15 gtss_drl_drlsav_: proc (mcpp, increment); 16 17 /* * gtss save a program on a permanemt file. 18* 19* Authors: Robert J. Grimes Created 20* Albert N. Kepner 1978 21* Robert M. May 22* David B. Ward 23* 24* Changed: Ron Barstad 11/06/82 Remove stringsize condition from word_count assign 25**/ 26 dcl mcpp ptr parm; 27 dcl increment fixed bin parm; 28 mcp = mcpp; 29 30 /** 31* 32* DRL DRLSAV, SAVE PROGRAM ON PERMANEMT FILE (octal 62) 33* 34* 35* 8_________1_6_____________________ 36* 37* DRL DRLSAV 38* ZERO nameloc,0 or 1 39* ZERO loc 1, loc 2 40* ZERO entry addr,load org 41* ZERO tra,bufloc 42* 43* (See TSS SYSTEM PROGRAMMER'S 44* REFERENCE MANUAL DD17B, Rev. 0, July 1976 45* Page 3-23) 46* 47**/ 48 49 scup = addr (mc.scu); 50 gseg = gtss_ext_$gtss_slave_area_seg (gtss_ext_$stack_level_); 51 arg_list_ptr = addrel (gseg, fixed (scu.ilc, 18)+1); /* get addres of arg_list */ 52 53 /** Verify 3 word name list available. **/ 54 if (fixed (nameloc)+2) > fixed (gtss_ust.lsize.limit, 18) then do; 55 call gtss_abort_subsystem_ (mcp, 56 "gtss_drl_drlsav_", 57 4, 58 "DRLSAV: 3 word name list outside memory at (^6o)", 59 fixed (scu.ilc, 18)); 60 return; 61 end; 62 name_list_ptr = addrel (gseg, nameloc); 63 64 65 /** Verify name of perm file is in AFT. **/ 66 call gtss_aft_$find ((ascii_file_name), fn, code); 67 if code = 1 then do; /* Not in AFT. */ 68 call gtss_abort_subsystem_ (mcp, 69 "gtss_drl_drlsav_", 70 42, 71 err42, /* H* file name not in aft. */ 72 fixed (scu.ilc, 18), 73 ascii_file_name); 74 return; 75 end; 76 temp = divide (file_size (fn), 64, 24, 0); 77 if temp > max_for_18_bits 78 then file_size_in_blocks = max_for_18_bits; 79 else file_size_in_blocks = temp; 80 81 if name_list.bcd_program_name = "0"b then do; 82 call gtss_abort_subsystem_ ( 83 mcp, 84 "gtss_drl_drlsav_", 85 54, 86 err54, /* H* File program name required */ 87 fixed (scu.ilc, 18), 88 ascii_file_name); 89 return; 90 end; 91 92 if ^gtss_disk (fn).permissions.write then do; 93 call gtss_abort_subsystem_ ( 94 mcp, 95 "gtss_drl_drlsav_", 96 25, 97 err25, /* Write attempted on read only file */ 98 fixed (scu.ilc, 18), 99 ascii_file_name); 100 return; 101 end; 102 103 if ^gtss_disk (fn).pat_body.random then do; 104 call gtss_abort_subsystem_ ( 105 mcp, 106 "gtss_drl_drlsav_", 107 52, 108 err52, /* H* file must be random */ 109 fixed (scu.ilc, 18), 110 ascii_file_name); 111 return; 112 end; 113 if arg_list.loc_1 >= gtss_ust.lsize.limit then do; 114 call gtss_abort_subsystem_ ( 115 mcp, 116 "gtss_drl_drlsav_", 117 4, /* Invalid derail argument */ 118 "DRLSAV: Initial data address outside memory at (^6o)", 119 fixed (scu.ilc, 18)); 120 return; 121 end; 122 if arg_list.loc_2 >= gtss_ust.lsize.limit then do; 123 call gtss_abort_subsystem_ ( 124 mcp, 125 "gtss_drl_drlsav_", 126 4, /* Invalid derail argument */ 127 "DRLSAV: Final data address outside memory at (^6o)", 128 fixed (scu.ilc, 18)); 129 return; 130 end; 131 words_in_element = fixed (loc_2) - fixed (loc_1) + 1; 132 blocks_in_element = divide (words_in_element+63, 64, 18, 0); 133 if words_in_element < 1 then do; 134 call gtss_abort_subsystem_ ( 135 mcp, 136 "gtss_drl_drlsav_", 137 50, 138 err50, /* Bad DRL DRLSAV data loc */ 139 fixed (scu.ilc, 18)); 140 return; 141 end; 142 143 /* Return 0 in A register if successful */ 144 mc.regs.a = "0"b; 145 146 if arg_list.tra >= gtss_ust.lsize.limit 147 | fixed (arg_list.tra) < 100 then do; 148 call gtss_abort_subsystem_ ( 149 mcp, 150 "gtss_drl_drlsav_", 151 4, 152 err4, /* Bad derail argument */ 153 fixed (scu.ilc, 18)); 154 return; 155 end; 156 if fixed (arg_list.bufloc)+63 >= fixed (gtss_ust.lsize.limit) 157 | fixed (arg_list.bufloc, 18) < 100 then do; 158 call gtss_abort_subsystem_ ( 159 mcp, 160 "gtss_drl_drlsav_", 161 4, 162 err4, /* Bad derail argument */ 163 fixed (scu.ilc, 18)); 164 return; 165 end; 166 buffer_ptr = addrel (gseg, arg_list.bufloc); 167 168 /* Now all the arguments have been verified and the 169* actual save processing starts. */ 170 171 if arg_list.not_first_name then do; 172 call locate_catalog_entry; 173 end; 174 else do; /* First program on H* file */ 175 176 /* Clear buffer */ 177 unspec (catalog_block) = "0"b; 178 catalog_block.blk_num = 1; 179 catalog_entry = 1; 180 initial_block_of_element = 2; 181 end; 182 call add_element_to_catalog_block; 183 call update_available_space_block; 184 call make_data_block; 185 186 final_transfer: ; 187 increment = fixed (arg_list.tra, 18) - fixed (scu.ilc, 18) - 1; 188 ret: ; 189 return; 190 191 192 add_element_to_catalog_block: proc; 193 194 /* When this routine is called catalog_entry must indicate where to add the new element in the 195* catalog. initial_block_of_element indicates where in the file the data element will be 196* placed. blocks_in_element indicates the number of 64 word blocks needed for the 197* program being added excluding the data control block. */ 198 199 cat (catalog_entry).bcd_name = name_list.bcd_program_name; 200 201 /* Add one for control block when computing element size */ 202 cat (catalog_entry).element_size = bit (fixed (blocks_in_element+1, 18), 18); 203 cat (catalog_entry).initial_block = bit (initial_block_of_element, 18); 204 205 /* Determine if file is large enough */ 206 temp = blocks_in_element + initial_block_of_element+1; 207 if temp > max_for_18_bits then do; 208 program_too_large: ; 209 mc.regs.a = (35)"0"b||"1"b; 210 go to final_transfer; 211 end; 212 else blocks_used_in_file = temp; 213 if blocks_used_in_file > file_size_in_blocks then go to program_too_large; 214 215 /* Do not include old checksum in new => check first 63 words. */ 216 catalog_block.checksum = checksum (buffer_ptr, 63); 217 call write_buffer (0, fixed (arg_list.bufloc)); 218 end add_element_to_catalog_block; 219 220 locate_catalog_entry: proc; 221 222 /* This routine reads the catalog block and determines where in the H* file 223* the new program will be placed. */ 224 225 if ^gtss_disk (fn).pat_body.write_performed 226 then do; 227 not_initialized: ; 228 call gtss_abort_subsystem_ ( 229 mcp, 230 "gtss_drl_drlsav_", 231 51, 232 err51, /* H* file not initialized */ 233 fixed (scu.ilc, 18), 234 ascii_file_name); 235 go to ret; 236 end; 237 238 /* Read the catalog block */ 239 call read_buffer (0, fixed (arg_list.bufloc)); 240 241 /* Make sure this looks like a catalog */ 242 if catalog_block.blk_num ^= 1 | catalog_block.fill2 ^= "0"b 243 then go to not_initialized; 244 245 /* Find the first empty slot in the catalog */ 246 element_name = "1"b; 247 do i = 1 to hbound (cat, 1); 248 element_name = cat (i).bcd_name; 249 if element_name = "0"b then go to found_slot; 250 end; 251 252 /* If we fall through the catalog is full */ 253 call gtss_abort_subsystem_ ( 254 mcp, 255 "gtss_drl_drlsav_", 256 48, 257 err48, /* H* file catalog full */ 258 fixed (scu.ilc, 18), 259 ascii_file_name); 260 goto ret; 261 262 found_slot: ; 263 catalog_entry = i; 264 265 /* Guard against first name on catalog being zero */ 266 if i < 1 then go to not_initialized; 267 i = i-1; 268 initial_block_of_element = fixed (cat (i).element_size)+fixed (cat (i).initial_block); 269 end locate_catalog_entry; 270 271 make_data_block: proc; 272 273 /* When this routine is called initial_block_of_element must indicate the 274* block within the file where the data control block for this element is to be 275* written. words_in_element indicates the number of words in the program 276* element being added. */ 277 278 /* Clear the buffer again */ 279 unspec (data_control_block) = "0"b; 280 281 data_control_block.number_of_data_blocks = bit (blocks_in_element, 18); 282 data_control_block.entry_address = arg_list.entry_address; 283 data_control_block.load_origin = arg_list.load_origin; 284 data_control_block.bcd_name = name_list.bcd_program_name; 285 286 /* Make DCW's for control block */ 287 288 /* For some reason Gcos offsets the address field of each DCW by 289* 2000 octal = 1024 from the load origin. */ 290 memory_loc = fixed (arg_list.load_origin, 18)+1024; 291 words_remaining = words_in_element; 292 word_count = "7400"b3; /* 7400 octal = 3840 = one link */ 293 do i = 1 to hbound (data_control_block.dcws, 1); 294 if words_remaining < 3841 then go to last_dcw; 295 data_control_block.dcws (i).memory_loc = bit (memory_loc, 18); 296 data_control_block.dcws (i).action_code = "001"b; /* IOTP */ 297 data_control_block.dcws (i).word_count = substr(word_count,1,12); 298 memory_loc = memory_loc+3840; 299 words_remaining = words_remaining - 3840; 300 end; 301 302 /* If we fall through, the program is too large to save. */ 303 304 call gtss_abort_subsystem_ ( 305 mcp, 306 "gtss_drl_drlsav_", 307 4, /* Bad drl argument */ 308 "DRL DRLSAV (^6o) program size ^i words exceeds maximum 58 links", 309 fixed (scu.ilc, 18), 310 words_in_element); 311 return; 312 313 last_dcw: ; 314 data_control_block.dcws (i).memory_loc = 315 bit (memory_loc, 18); 316 data_control_block.dcws (i).action_code = "000"b; /* IOTD */ 317 data_control_block.dcws (i).word_count = bit (fixed (words_remaining, 12), 12); 318 319 /* Checksum the data */ 320 data_ptr = addrel (gseg, arg_list.loc_1); 321 data_control_block.data_checksum = checksum (data_ptr, words_in_element); 322 323 /* Checksum the control block */ 324 data_control_block.control_block_checksum = checksum (buffer_ptr, 64); 325 call write_buffer (initial_block_of_element, fixed (arg_list.bufloc)); 326 call write_data (initial_block_of_element+1, fixed (arg_list.loc_1)); 327 end make_data_block; 328 329 update_available_space_block: proc; 330 331 /* When this routine is called blocks_used_in_file must reflect the space used in 332* the file including the new program being added. file_size_in_blocks must be the total 333* size of the file in 64 word blocks. */ 334 335 /* Clear the buffer */ 336 unspec (available_space_block) = "0"b; 337 338 /* Fill in the available space block */ 339 available_space_block.blocks_used = bit (blocks_used_in_file, 18); 340 available_space_block.blocks_remaining = 341 bit (fixed (file_size_in_blocks - blocks_used_in_file, 18), 18); 342 available_space_block.checksum = 343 available_space_block.blocks_used||available_space_block.blocks_remaining; 344 call write_buffer (1, fixed (arg_list.bufloc)); 345 end update_available_space_block; 346 1 1 /* BEGIN INCLUDE FILE gtss_checksum.incl.pl1 */ 1 2 1 3 checksum: proc (p, n) returns (bit (36)aligned); 1 4 1 5 /* Calculate checksum of "n" words pointed to by "p". 1 6* 1 7* Author: Al Kepner 1978 1 8* Change: Al Dupuis 09/24/79 Added an extra add after do loop in case carry was generated. 1 9**/ 1 10 dcl p ptr parm; 1 11 dcl n fixed bin (18)parm; 1 12 1 13 /* Calculate the checksum for n words starting at p */ 1 14 1 15 a = 0; 1 16 do i = 1 to n; 1 17 b = fixed (array (i), 36) + fixed (sum, 36) + fixed (carry, 1); 1 18 a = b; 1 19 end; 1 20 b = fixed (sum, 36) + fixed (carry, 1); /* last add may have generated carry */ 1 21 a = b; 1 22 return (sum); 1 23 1 24 dcl a fixed bin(71); 1 25 dcl b fixed bin(71); 1 26 dcl i fixed bin(24); 1 27 dcl array (n) bit (36) based (p); 1 28 dcl 1 a_overlay aligned based (addr (a)), 1 29 2 fill bit (35) unal, 1 30 2 carry bit (1) unal, 1 31 2 sum bit (36); 1 32 1 33 end checksum; 1 34 1 35 /* END INCLUDE FILE gtss_checksum.incl.pl1 */ 347 348 349 /** Variables for gtss_drl_drlsav_: 350* IDENTIFIER ATTRIBUTES **/ 351 dcl addrel builtin; 352 dcl arg_list_ptr ptr init (null ()); 353 dcl blocks_in_element fixed bin (18); 354 dcl blocks_used_in_file fixed bin (18); 355 dcl catalog_entry fixed bin (18); 356 dcl code fixed bin (35); 357 dcl data_ptr ptr init (null ()); 358 dcl fixed builtin; 359 dcl fn fixed bin (24); 360 dcl gseg ptr init (null ()); 361 dcl gtss_fail condition; 362 dcl initial_block_of_element fixed bin (18); 363 dcl me char (32) static int options (constant) init ("gtss_drl_drlsav_"); 364 dcl name_list_ptr ptr init (null ()); 365 dcl status fixed bin (24); 366 dcl to_from char (16) static int options (constant) init ("write program to"); 367 dcl word_count bit (18); 368 369 dcl 1 arg_list aligned based (arg_list_ptr) 370 , 2 nameloc bit (18)unal 371 , 2 not_first_name bit (18) unal 372 , 2 loc_1 bit (18)unal 373 , 2 loc_2 bit (18)unal 374 , 2 entry_address bit (18)unal 375 , 2 load_origin bit (18)unal 376 , 2 tra bit (18)unal 377 , 2 bufloc bit (18)unal 378 ; 379 380 dcl 1 name_list aligned based (name_list_ptr) 381 , 2 ascii_file_name char (8) 382 , 2 bcd_program_name bit (36) 383 ; 384 385 2 1 /* BEGIN INCLUDE FILE gtss_ext_.incl.pl1 */ 2 2 /* 2 3* Created: (Wardd Multics) 05/20/78 1307.6 mst Sat 2 4* Modified: Ward 1981 add suspended_process dcl 2 5* Modified: Ron Barstad 83-07-21 Fixed level number on mcfc to 3 2 6* Modified: Ron Barstad 83-07-25 Fixed derail range in statistics to 4js3 number 2 7**/ 2 8 dcl gtss_ext_$aem fixed bin static ext /* >0 Print "additional" error information. */; 2 9 dcl gtss_ext_$bad_drl_rtrn static ext label /* Default for drl_rtrn. */; 2 10 dcl gtss_ext_$db (72)bit(1)unal static ext; 2 11 dcl gtss_ext_$deferred_catalogs_ptr ptr ext; 2 12 dcl gtss_ext_$dispose_of_drl static ext label /* quit handlers for some derails use this label to abort */; 2 13 dcl gtss_ext_$drl_rtrn (4)static ext label /* where to return at subsystem end */; 2 14 dcl gtss_ext_$drm_path char(168)static ext /* gtss_expand_pathname_stores drm_path */; 2 15 dcl gtss_ext_$drun_jid char (5) static ext /* valid only for DRUN executing under absentee */; 2 16 dcl gtss_ext_$event_channel fixed bin (71) static ext /* used for DABT signals */; 2 17 dcl gtss_ext_$finished static ext label /* Return to gtss for normal conclusion. */; 2 18 dcl gtss_ext_$gdb_name char(8)ext /* Name H* module to debug. */; 2 19 dcl gtss_ext_$get_line entry(ptr,ptr,fixed bin(21),fixed bin(21),fixed bin(35))variable ext /* Build mode input procedure. */; 2 20 dcl gtss_ext_$gtss_slave_area_seg (4) ext static ptr /* pointer to gtss slave area segment */; 2 21 dcl gtss_ext_$hcs_work_area_ptr ptr ext static /* Temp seg for acl lists. */; 2 22 dcl gtss_ext_$homedir char (64) static ext /* user's home dir */; 2 23 dcl gtss_ext_$last_k_was_out bit (1)aligned ext static /* "1"b => last tty output was output. */; 2 24 dcl gtss_ext_$pdir char (168) varying ext static /* pathname of process directory */; 2 25 dcl gtss_ext_$popup_from_pi static ext label /* transfer to this label after pi simulates popup primitive */; 2 26 dcl gtss_ext_$process_type fixed bin (17) static ext; 2 27 dcl gtss_ext_$put_chars entry(ptr,ptr,fixed bin(24),fixed bin(35)) variable ext /* Terminal output procedure. */; 2 28 dcl gtss_ext_$restart_from_pi static ext label /* transfer to this label after pi restores machine conditions */; 2 29 dcl gtss_ext_$restart_seg_ptr ptr static ext /* points to DRUN restart file when exec under absentee */; 2 30 dcl gtss_ext_$sig_ptr ext static ptr /* saved ptr to signal_ */; 2 31 dcl gtss_ext_$stack_level_ fixed bin ext static; 2 32 dcl gtss_ext_$suspended_process bit(1) ext static; 2 33 dcl gtss_ext_$SYstarstar_file_no fixed bin (24) static ext; 2 34 dcl gtss_ext_$user_id char (26)var ext; 2 35 dcl gtss_ext_$work_area_ptr ptr ext; 2 36 2 37 dcl 1 gtss_ext_$CFP_bits aligned static external 2 38 , 3 no_input_yet bit (1) unaligned /* used in gtss_CFP_input_, gtss_read_starCFP_ */ 2 39 , 3 rtn_bits bit (4) unaligned /* used in gtss_CFP_input_, gtss_CFP_output_ */ 2 40 , 3 cpos_called bit (1) unaligned /* used in gtss_CFP_input_, gtss_drl_t_cfio_, gtss_abandon_CFP_ */ 2 41 , 3 cout_called bit (1) unaligned /* used in gtss_read_starCFP_, gtss_abandon_CFP_ */ 2 42 , 3 build_mode bit (1) unaligned /* used in gtss_build_, gtss_dsd_process_ */ 2 43 ; 2 44 2 45 dcl 1 gtss_ext_$com_reg aligned static ext, 2 46 3 tsdmx, 2 47 4 dst fixed bin (18) unsigned unaligned, 2 48 4 dit fixed bin (18) unsigned unaligned, 2 49 3 tsdpt fixed bin (36) unsigned unaligned, 2 50 3 tsddt fixed bin (36) unsigned unaligned, 2 51 3 tsdid bit (72) unaligned, 2 52 3 tsdsd bit (36) unaligned, 2 53 3 tsdst fixed bin (36) unsigned unaligned, 2 54 3 tsdjb fixed bin (35) unaligned, 2 55 3 tsdgt, 2 56 4 ust_loc fixed bin (18) unsigned unaligned, 2 57 4 gating_ctl fixed bin (18) unsigned unaligned, 2 58 3 tcdfr bit (36) unaligned; 2 59 2 60 dcl 1 gtss_ext_$flags aligned static ext 2 61 , 3 dispose_of_drl_on_pi bit (01) unal /* 1 => drl that should be aborted after quit-pi sequence */ 2 62 , 3 drl_in_progress bit (01) unal /* 1 => drl handler executing; 0 => gcos code executing */ 2 63 , 3 popup_from_pi bit (01) unal /* 1 => derail processor will simulate Gcos break instead of returning */ 2 64 , 3 unfinished_drl bit (01) unal /* 1 => subsystem is handling breaks and quit was raised during a drl */ 2 65 , 3 ss_time_limit_set bit (01) unal /* 1 => exec time limit set for subsystem */ 2 66 , 3 timer_ranout bit (01) unal /* 1 => user is executing timer runout code */ 2 67 , 3 gtss_com_err_sw bit (01) unal /* 1 => stop com_err_ string from going to terminal */ 2 68 , 3 available bit (65) unal 2 69 ; 2 70 2 71 2 72 dcl 1 gtss_ext_$statistics aligned static ext, /* Derail usage statistics */ 2 73 3 total_time (-10:71)fixed bin (71), 2 74 3 count (-10:71)fixed bin (17); 2 75 2 76 /* Declaration of Available File Table 2 77* */ 2 78 dcl 1 gtss_ext_$aft aligned ext, /* aft structure */ 2 79 2 80 3 start_list (0:102) fixed bin (24), /* >0 => 1st aft_entry row to start of next entry chain. */ 2 81 2 82 3 aft_entry (20), 2 83 4 altname char (8), /* altname name for attaching this file */ 2 84 4 next_entry fixed bin (24), /* Next aft_entry in hash chain. */ 2 85 4 previous_add fixed bin (24), /* Previously added entry. */ 2 86 4 next_add fixed bin (24), /* Entry added after this one. */ 2 87 4 used bit (1) unal, /* "1"b => aft_entry contains AFT value. */ 2 88 4 forced bit(1) unal, /* "1"b => gtss_verify_access_ forced access on this file. */ 2 89 2 90 3 free_space fixed bin (24), /* Index of start of free space list for aft entries. */ 2 91 3 first_added fixed bin (24), /* >0 => start of chain in add order. */ 2 92 3 last_added fixed bin (24) /* >0 => end of chain in added order. */; 2 93 2 94 dcl gtss_ext_$ppt ptr ext /* switch name for tapein drl */; 2 95 /** Data structure to provide access to installed 2 96* subsystems fast library load. 2 97* **/ 2 98 dcl 1 gtss_ext_$fast_lib aligned ext 2 99 , 3 fast_lib_fcb ptr /* Pointer to msf fcb. */ 2 100 , 3 fast_lib_ncp fixed bin (24) /* Number of components. */ 2 101 , 3 comp_ptr (0:9)ptr /* Pointer to component. */ 2 102 , 3 comp_wds (0:9)fixed bin (24) /* Component length (words). */ 2 103 ; 2 104 2 105 /* Pointers to segments to regulate multipler 2 106* callers to files. Same segments are used to regulate 2 107* all simulator callers. 2 108**/ 2 109 dcl 1 gtss_ext_$mcfc aligned ext, 2 110 3 multics_lock_id bit(36), 2 111 3 wait_time fixed bin, 2 112 3 files_ptr ptr, 2 113 3 names_ptr ptr, 2 114 3 callers_ptr (0:3)ptr 2 115 ; 2 116 2 117 /* END INCLUDE FILE gtss_ext_.incl.pl1 */ 386 387 3 1 /* */ 3 2 /* BEGIN INCLUDE FILE mc.incl.pl1 Created Dec 72 for 6180 - WSS. */ 3 3 /* Modified 06/07/76 by Greenberg for mc.resignal */ 3 4 /* Modified 07/07/76 by Morris for fault register data */ 3 5 /* Modified 08/28/80 by J. A. Bush for the DPS8/70M CVPU */ 3 6 /* Modified '82 to make values constant */ 3 7 3 8 /* words 0-15 pointer registers */ 3 9 3 10 dcl mcp ptr; 3 11 3 12 dcl 1 mc based (mcp) aligned, 3 13 2 prs (0:7) ptr, /* POINTER REGISTERS */ 3 14 (2 regs, /* registers */ 3 15 3 x (0:7) bit (18), /* index registers */ 3 16 3 a bit (36), /* accumulator */ 3 17 3 q bit (36), /* q-register */ 3 18 3 e bit (8), /* exponent */ 3 19 3 pad1 bit (28), 3 20 3 t bit (27), /* timer register */ 3 21 3 pad2 bit (6), 3 22 3 ralr bit (3), /* ring alarm register */ 3 23 3 24 2 scu (0:7) bit (36), 3 25 3 26 2 mask bit (72), /* mem controller mask at time of fault */ 3 27 2 ips_temp bit (36), /* Temporary storage for IPS info */ 3 28 2 errcode fixed bin (35), /* fault handler's error code */ 3 29 2 fim_temp, 3 30 3 unique_index bit (18) unal, /* unique index for restarting faults */ 3 31 3 resignal bit (1) unal, /* recompute signal name with fcode below */ 3 32 3 fcode bit (17) unal, /* fault code used as index to FIM table and SCT */ 3 33 2 fault_reg bit (36), /* fault register */ 3 34 2 pad2 bit (1), 3 35 2 cpu_type fixed bin (2) unsigned, /* L68 = 0, DPS8/70M = 1 */ 3 36 2 ext_fault_reg bit (15), /* extended fault reg for DPS8/70M CPU */ 3 37 2 fault_time bit (54), /* time of fault */ 3 38 3 39 2 eis_info (0:7) bit (36)) unaligned; 3 40 3 41 3 42 dcl (apx fixed bin init (0), 3 43 abx fixed bin init (1), 3 44 bpx fixed bin init (2), 3 45 bbx fixed bin init (3), 3 46 lpx fixed bin init (4), 3 47 lbx fixed bin init (5), 3 48 spx fixed bin init (6), 3 49 sbx fixed bin init (7)) internal static options (constant); 3 50 3 51 3 52 3 53 3 54 dcl scup ptr; 3 55 3 56 dcl 1 scu based (scup) aligned, /* SCU DATA */ 3 57 3 58 3 59 /* WORD (0) */ 3 60 3 61 (2 ppr, /* PROCEDURE POINTER REGISTER */ 3 62 3 prr bit (3), /* procedure ring register */ 3 63 3 psr bit (15), /* procedure segment register */ 3 64 3 p bit (1), /* procedure privileged bit */ 3 65 3 66 2 apu, /* APPENDING UNIT STATUS */ 3 67 3 xsf bit (1), /* ext seg flag - IT modification */ 3 68 3 sdwm bit (1), /* match in SDW Ass. Mem. */ 3 69 3 sd_on bit (1), /* SDW Ass. Mem. ON */ 3 70 3 ptwm bit (1), /* match in PTW Ass. Mem. */ 3 71 3 pt_on bit (1), /* PTW Ass. Mem. ON */ 3 72 3 pi_ap bit (1), /* Instr Fetch or Append cycle */ 3 73 3 dsptw bit (1), /* Fetch of DSPTW */ 3 74 3 sdwnp bit (1), /* Fetch of SDW non paged */ 3 75 3 sdwp bit (1), /* Fetch of SDW paged */ 3 76 3 ptw bit (1), /* Fetch of PTW */ 3 77 3 ptw2 bit (1), /* Fetch of pre-paged PTW */ 3 78 3 fap bit (1), /* Fetch of final address paged */ 3 79 3 fanp bit (1), /* Fetch of final address non-paged */ 3 80 3 fabs bit (1), /* Fetch of final address absolute */ 3 81 3 82 2 fault_cntr bit (3), /* number of retrys of EIS instructions */ 3 83 3 84 3 85 /* WORD (1) */ 3 86 3 87 2 fd, /* FAULT DATA */ 3 88 3 iro bit (1), /* illegal ring order */ 3 89 3 oeb bit (1), /* out of execute bracket */ 3 90 3 e_off bit (1), /* no execute */ 3 91 3 orb bit (1), /* out of read bracket */ 3 92 3 r_off bit (1), /* no read */ 3 93 3 owb bit (1), /* out of write bracket */ 3 94 3 w_off bit (1), /* no write */ 3 95 3 no_ga bit (1), /* not a gate */ 3 96 3 ocb bit (1), /* out of call bracket */ 3 97 3 ocall bit (1), /* outward call */ 3 98 3 boc bit (1), /* bad outward call */ 3 99 3 inret bit (1), /* inward return */ 3 100 3 crt bit (1), /* cross ring transfer */ 3 101 3 ralr bit (1), /* ring alarm register */ 3 102 3 am_er bit (1), /* associative memory fault */ 3 103 3 oosb bit (1), /* out of segment bounds */ 3 104 3 paru bit (1), /* processor parity upper */ 3 105 3 parl bit (1), /* processor parity lower */ 3 106 3 onc_1 bit (1), /* op not complete type 1 */ 3 107 3 onc_2 bit (1), /* op not complete type 2 */ 3 108 3 109 2 port_stat, /* PORT STATUS */ 3 110 3 ial bit (4), /* illegal action lines */ 3 111 3 iac bit (3), /* illegal action channel */ 3 112 3 con_chan bit (3), /* connect channel */ 3 113 3 114 2 fi_num bit (5), /* (fault/interrupt) number */ 3 115 2 fi_flag bit (1), /* 1 => fault, 0 => interrupt */ 3 116 3 117 3 118 /* WORD (2) */ 3 119 3 120 2 tpr, /* TEMPORARY POINTER REGISTER */ 3 121 3 trr bit (3), /* temporary ring register */ 3 122 3 tsr bit (15), /* temporary segment register */ 3 123 3 124 2 pad2 bit (9), 3 125 3 126 2 cpu_no bit (3), /* CPU number */ 3 127 3 128 2 delta bit (6), /* tally modification DELTA */ 3 129 3 130 3 131 /* WORD (3) */ 3 132 3 133 2 word3 bit (18), 3 134 3 135 2 tsr_stat, /* TSR STATUS for 1,2,&3 word instructions */ 3 136 3 tsna, /* Word 1 status */ 3 137 4 prn bit (3), /* Word 1 PR number */ 3 138 4 prv bit (1), /* Word 1 PR valid bit */ 3 139 3 tsnb, /* Word 2 status */ 3 140 4 prn bit (3), /* Word 2 PR number */ 3 141 4 prv bit (1), /* Word 2 PR valid bit */ 3 142 3 tsnc, /* Word 3 status */ 3 143 4 prn bit (3), /* Word 3 PR number */ 3 144 4 prv bit (1), /* Word 3 PR valid bit */ 3 145 3 146 2 tpr_tbr bit (6), /* TPR.TBR field */ 3 147 3 148 3 149 /* WORD (4) */ 3 150 3 151 2 ilc bit (18), /* INSTRUCTION COUNTER */ 3 152 3 153 2 ir, /* INDICATOR REGISTERS */ 3 154 3 zero bit (1), /* zero indicator */ 3 155 3 neg bit (1), /* negative indicator */ 3 156 3 carry bit (1), /* carryry indicator */ 3 157 3 ovfl bit (1), /* overflow indicator */ 3 158 3 eovf bit (1), /* eponent overflow */ 3 159 3 eufl bit (1), /* exponent underflow */ 3 160 3 oflm bit (1), /* overflow mask */ 3 161 3 tro bit (1), /* tally runout */ 3 162 3 par bit (1), /* parity error */ 3 163 3 parm bit (1), /* parity mask */ 3 164 3 bm bit (1), /* ^bar mode */ 3 165 3 tru bit (1), /* truncation mode */ 3 166 3 mif bit (1), /* multi-word instruction mode */ 3 167 3 abs bit (1), /* absolute mode */ 3 168 3 hex bit (1), /* hexadecimal exponent mode */ 3 169 3 pad bit (3), 3 170 3 171 3 172 /* WORD (5) */ 3 173 3 174 2 ca bit (18), /* COMPUTED ADDRESS */ 3 175 3 176 2 cu, /* CONTROL UNIT STATUS */ 3 177 3 rf bit (1), /* on first cycle of repeat instr */ 3 178 3 rpt bit (1), /* repeat instruction */ 3 179 3 rd bit (1), /* repeat double instruction */ 3 180 3 rl bit (1), /* repeat link instruciton */ 3 181 3 pot bit (1), /* IT modification */ 3 182 3 pon bit (1), /* return type instruction */ 3 183 3 xde bit (1), /* XDE from Even location */ 3 184 3 xdo bit (1), /* XDE from Odd location */ 3 185 3 poa bit (1), /* operation preparation */ 3 186 3 rfi bit (1), /* tells CPU to refetch instruction */ 3 187 3 its bit (1), /* ITS modification */ 3 188 3 if bit (1), /* fault occured during instruction fetch */ 3 189 3 190 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 3 191 3 192 3 193 /* WORDS (6,7) */ 3 194 3 195 2 even_inst bit (36), /* even instruction of faulting pair */ 3 196 3 197 2 odd_inst bit (36); /* odd instruction of faulting pair */ 3 198 3 199 3 200 3 201 3 202 3 203 3 204 /* ALTERNATE SCU DECLARATION */ 3 205 3 206 3 207 dcl 1 scux based (scup) aligned, 3 208 3 209 (2 pad0 bit (36), 3 210 3 211 2 fd, /* GROUP II FAULT DATA */ 3 212 3 isn bit (1), /* illegal segment number */ 3 213 3 ioc bit (1), /* illegal op code */ 3 214 3 ia_am bit (1), /* illegal address - modifier */ 3 215 3 isp bit (1), /* illegal slave procedure */ 3 216 3 ipr bit (1), /* illegal procedure */ 3 217 3 nea bit (1), /* non existent address */ 3 218 3 oobb bit (1), /* out of bounds */ 3 219 3 pad bit (29), 3 220 3 221 2 pad2 bit (36), 3 222 3 223 2 pad3a bit (18), 3 224 3 225 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 3 226 3 prn bit (3), /* PR number */ 3 227 3 prv bit (1), /* PR valid bit */ 3 228 3 229 2 pad3b bit (6)) unaligned, 3 230 3 231 2 pad45 (0:1) bit (36), 3 232 3 233 2 instr (0:1) bit (36); /* Instruction ARRAY */ 3 234 3 235 3 236 3 237 /* END INCLUDE FILE mc.incl.pl1 */ 388 389 4 1 /* BEGIN INCLUDE FILE gtss_pnterr.incl.pl1 */ 4 2 /* 4 3* Created: (Grimes SMP) 04/15/78 0933.2 mst Sat 4 4* Change: Dave Ward 06/08/78 made attributes constant. 4 5* Change: Dave Ward 08/17/81 made lengths same as constans. 4 6* Change: Ron Barstad 83-03-29 fixed err 53, add missing err 56 4 7* Change: Ron Barstad 84-02-27 changed back to all same length because of based array in gtss_abort_subsystem_ 4 8**/ 4 9 dcl 1 gtss_pnterr static int options (constant), 4 10 2 err1 char(50) init("001-INCORRECT PRIMITIVE"), 4 11 2 err2 char(50) init("002-(^6o)INVALID FILE I/O COMMAND"), 4 12 2 err3 char(50) init("003-(^6o)INVALID DCW"), 4 13 2 err4 char(50) init("004-(^6o)INVALID DRL ARGUMENT"), 4 14 2 err5 char(50) init("005-(^6o)INVALID DRL CODE"), 4 15 2 err6 char(50) init("006-LEVEL OF CONTROL TOO DEEP"), 4 16 2 err7 char(50) init("007-BAP PROG. DESC."), 4 17 2 err8 char(50) init("008-LOOP IN PRIMITIVES"), 4 18 2 err9 char(50) init("009-SYSTEM UNKNOWN"), 4 19 2 err10 char(50) init("010-PROGRAM TOO LARGE TO SWAP"), 4 20 2 err11 char(50) init("011-(^6o)INCORRECT CORE FILE USAGE"), 4 21 2 err12 char(50) init("012-(^6o)PRIVILEGED I/O ATTEMPTED"), 4 22 2 err13 char(50) init("013-(^6o)DRL USERID NOT PERMITTED"), 4 23 2 err14 char(50) init("(^6o)ILLEGAL DRL RELMEM REQUEST"), 4 24 2 err15 char(50) init("015-(^6o)CANNOT RESET USER ID"), 4 25 2 err16 char(50) init("016-(^6o)OVERFLOW FAULT"), 4 26 2 err17 char(50) init("017-(^6o)ILLEGAL OP CODE"), 4 27 2 err18 char(50) init("018-(^6o)MEMORY FAULT"), 4 28 2 err19 char(50) init("019-(^6o)FAULT TAG FAULT"), 4 29 2 err20 char(50) init("020-(^6o)DIVIDE CHECK FAULT"), 4 30 2 err21 char(50) init("021-(^6o)BAD STATUS - SWAP OUT"), 4 31 2 err22 char(50) init("022-(^6o)BAD STATUS - SWAP IN"), 4 32 2 err23 char(50) init("023-(^6o)BAD STATUS - LOAD"), 4 33 2 err24 char(50) init("(^6o)TALK PERMISSION NOT GRANTED"), 4 34 2 err25 char(50) init("(^6o)WRITE ATTEMPTED ON READ-ONLY FILE - ^8a"), 4 35 2 err26 char(50) init("(^6o)READ ATTEMPTED ON EXECUTE-ONLY FILE - ^8a"), 4 36 2 err27 char(50) init("024-(^6o)MME FAULT"), 4 37 2 err28 char(50) init("028-(^6o)REWIND ATTEMPTED FOR RANDOM FILE - ^8a"), 4 38 2 err29 char(50) init("029-ILLEGAL SYSTEM SELECTION"), 4 39 2 err30 char(50) init("134-(^6o)INVALID DRL FILACT FUNCTION #^i"), 4 40 2 err31 char(50) init("135-(^6o)PRIVILEGED DRL FILACT REQUEST"), 4 41 2 err32 char(50) init("138-(^6o)NO TAP* FILE FOR DRL TAPEIN"), 4 42 2 err33 char(50) init("139-ERROR IN WRITING TAP* FILE"), 4 43 2 err34 char(50) init("(^6o)DRL ABORT - CANNOT WRITE ABRT FILE"), 4 44 2 err35 char(50) init("(^6o)DRL ABORT - ABRT FILE WRITTEN"), 4 45 2 err36 char(50) init("NOT ENOUGH CORE TO RUN JOB"), 4 46 2 err37 char(50) init("SORRY-OUT OF SWAP SPACE. TRY AGAIN."), 4 47 2 err38 char(50) init("(^6o)FILE ADDRESS ERROR"), 4 48 2 err39 char(50) init("(^6o)DRL ABORT - ABRT FILE I/O ERROR"), 4 49 2 err40 char(50) init("(^6o)DRL ABORT - ABRT FILE TOO SMALL"), 4 50 2 err41 char(50) init("(^6o)BAD STATUS FOR DRL SAVE/RESTOR - ^8a"), 4 51 2 err42 char(50) init("(^6o)H* FILE NOT IN AFT - ^8a"), 4 52 2 err43 char(50) init("064-EXECUTE TIME LIMIT EXCEEDED"), 4 53 2 err44 char(50) init("025-(^6o)LOCKUP FAULT"), 4 54 2 err45 char(50) init("065-OBJECT PROGRAM SIZE LIMIT EXCEEDED"), 4 55 2 err46 char(50) init("(^6o)INCORRECT ENTRY TO DRL TASK"), 4 56 2 err47 char(50) init("(^6o)H* PROGRAM NAME UNDEFINED - ^8a"), 4 57 2 err48 char(50) init("(^6o)H* FILE CATALOG FULL - ^8a"), 4 58 2 err49 char(50) init("(^6o)TALLY OR CHARACTER COUNT INCORRECT"), 4 59 2 err50 char(50) init("(^6o)BAD DRL SAVE DATA LOC"), 4 60 2 err51 char(50) init("(^6o)H* FILE NOT INITITALIZED - ^8a"), 4 61 2 err52 char(50) init("(^6o)H* FILE MUST BE RANDOM - ^8a"), 4 62 2 err53 char(50) init("026-(^6o)OP-NOT-COMPLETE FAULT"), 4 63 2 err54 char(50) init("(^6o)H* FILE PROGRAM NAME REQUIRED - ^8a"), 4 64 2 err55 char(50) init("027-(^6o)COMMAND FAULT"), 4 65 2 err56 char(50) init("(^6o)LINKED FILE I/O CANNOT SPAN >63 LLINKS - ^8a"), 4 66 2 err57 char(50) init("UNASSIGNED"), 4 67 2 err58 char(50) init("(^6o)INVALID TIME FOR DRL GWAKE"), 4 68 2 err59 char(50) init("UNASSIGNED"), 4 69 2 err60 char(50) init("(^6o)INVALID SNUMB FOR DRL JOUT"), 4 70 2 err61 char(50) init("(^6o)PRIVILEGED DRL"), 4 71 2 err62 char(50) init("(^6o)INVALID DRL JOUT FUNCTION"), 4 72 2 err63 char(50) init("MEMORY PARITY ERROR"), 4 73 2 err64 char(50) init("SY** I/O ERROR"), 4 74 /* The following error messages are artifacts of gtss and are not found in TSS */ 4 75 2 err100 char(50) init("DRL ADDMEM ERROR at (^6o)"), 4 76 2 err101 char(50) init("DRL RELMEM ERROR TRUNCATE SEGMENT at (^6o)"), 4 77 2 err102 char(50) init("DRL RELMEM ERROR SET MAX SEGMENT LENGTH"), 4 78 2 err103 char(50) init("UNIMPLEMENTED DRL FILACT FUNCTION (^i)"), 4 79 2 err999 char(50) init("dummy"); 4 80 4 81 /* END INCLUDE FILE gtss_pnterr.incl.pl1 */ 390 391 5 1 /* BEGIN INCLUDE FILE gtss_ust_ext_.incl.pl1 */ 5 2 /* UST: User Status Table 5 3* definitions based on 5 4* System Tables, Order number DD14-01E, January 1981 5 5* Section 15, Time Sharing System 5 6* 5 7* Authors: Robert J. Grimes Created 5 8* - Albert N. Kepner 1978 5 9* - Robert M. May 5 10* - David B. Ward 5 11* Change: Dave Ward 02/23/79 Level 4 numbering. 5 12* Change: Ron Barstad 83-07-12 Repaired damaged formating and word offset comments 5 13* Brought up to 4JS3 functionality 5 14**/ 5 15 /* octal word offsets of entries */ 5 16 dcl 1 gtss_ust_ext_$ust aligned ext, 5 17 3 gtss_ust, 5 18 /* 0-1 */ 4 lid bit (72), 5 19 /* 2 */ 4 lstp bit (36), 5 20 /* 3 */ 4 ltin bit (36), 5 21 /* 4 */ 4 lstio, 5 22 5 no_of_chars_by_8 fixed bin (18) uns unal, 5 23 5 no_of_disk_io fixed bin (18) uns unal, 5 24 /* 5 */ 4 lsnub bit (36), 5 25 /* 6-7 */ 4 lchg bit (72), 5 26 /* 10 */ 4 lbuf, 5 27 5 address bit (18)unaligned, 5 28 5 tally bit (1)unaligned, 5 29 5 terminal_type bit (5)unaligned, 5 30 5 station_id bit (12)unaligned, 5 31 /* 11-12 */ 4 liost (0:1) bit (36), 5 32 /* 13 */ 4 lcc bit (36), 5 33 /* 14 */ 4 lback, 5 34 5 fill1 bit (18) unaligned, 5 35 5 gwake fixed bin (17) unaligned, 5 36 /* 15 */ 4 lflag, 5 37 5 mp_list bit (18) unaligned, 5 38 5 flags unaligned, 5 39 6 b18 bit (1) unaligned, 5 40 6 b19 bit (1) unaligned, 5 41 6 b20 bit (1) unaligned, 5 42 6 b21 bit (1) unaligned, 5 43 6 b22 bit (1) unaligned, 5 44 6 b23 bit (1) unaligned, 5 45 6 b24 bit (1) unaligned, 5 46 6 b25 bit (1) unaligned, 5 47 6 b26 bit (1) unaligned, 5 48 6 b27 bit (1) unaligned, 5 49 6 b28 bit (1) unaligned, 5 50 6 b29 bit (1) unaligned, 5 51 6 b30 bit (1) unaligned, 5 52 6 b31 bit (1) unaligned, 5 53 6 b32 bit (1) unaligned, 5 54 6 b33 bit (1) unaligned, 5 55 6 b34 bit (1) unaligned, 5 56 6 b35 bit (1) unaligned, 5 57 /* 16 */ 4 lkdss bit (36), 5 58 /* 17 */ 4 lfile, 5 59 5 program_stack fixed bin (17) unal, 5 60 5 file_list_ptr bit (18) unal, 5 61 /* 20 */ 4 lttys bit (36), 5 62 /* 21 */ 4 lswth, 5 63 5 b0 bit (1) unaligned, 5 64 5 b1 bit (1) unaligned, 5 65 5 b2 bit (1) unaligned, 5 66 5 b3 bit (1) unaligned, 5 67 5 b4 bit (1) unaligned, 5 68 5 b5 bit (1) unaligned, 5 69 5 b6 bit (1) unaligned, 5 70 5 b7 bit (1) unaligned, 5 71 5 b8 bit (1) unaligned, 5 72 5 b9 bit (1) unaligned, 5 73 5 b10 bit (1) unaligned, 5 74 5 b11 bit (1) unaligned, 5 75 5 b12 bit (1) unaligned, 5 76 5 b13 bit (1) unaligned, 5 77 5 b14 bit (1) unaligned, 5 78 5 b15 bit (1) unaligned, 5 79 5 b16 bit (1) unaligned, 5 80 5 b17 bit (1) unaligned, 5 81 5 b18 bit (1) unaligned, 5 82 5 b19 bit (1) unaligned, 5 83 5 b20 bit (1) unaligned, 5 84 5 b21 bit (1) unaligned, 5 85 5 b22 bit (1) unaligned, 5 86 5 b23 bit (1) unaligned, 5 87 5 b24 bit (1) unaligned, 5 88 5 b25 bit (1) unaligned, 5 89 5 b26 bit (1) unaligned, 5 90 5 b27 bit (1) unaligned, 5 91 5 b28 bit (1) unaligned, 5 92 5 b29 bit (1) unaligned, 5 93 5 b30 bit (1) unaligned, 5 94 5 b31 bit (1) unaligned, 5 95 5 b32 bit (1) unaligned, 5 96 5 b33 bit (1) unaligned, 5 97 5 b34 bit (1) unaligned, 5 98 5 b35 bit (1) unaligned, 5 99 /* 22 */ 4 lsize, 5 100 5 bar fixed bin (17) unaligned, 5 101 5 limit bit (18) unaligned, 5 102 /* 23... */ 4 lswap, 5 103 5 fill bit (18) unal, 5 104 5 size bit (18) unal, 5 105 /* ...24 */ 4 transfer_cell bit (36) unal, 5 106 /* 25 */ 4 lerrm bit (36), 5 107 /* 26-37 */ 4 lcfil (0:9) bit (36), 5 108 /* 40 */ 4 lsybc, 5 109 5 b0_17 fixed bin (17) unaligned, 5 110 5 b18_35 fixed bin (17) unaligned, 5 111 /* 41-42 */ 4 lstem (0:1) bit (36), 5 112 /* 43 */ 4 lcals, 5 113 5 b0_17 fixed bin (17) unaligned, 5 114 5 b18_35 bit (18) unaligned, 5 115 /* 44-51 */ 4 subsystems (3), 5 116 5 content_lswap, 5 117 6 fill bit (18) unal, 5 118 6 size bit (18) unal, 5 119 5 tally_address fixed bin (17) unaligned, 5 120 5 ss_flags bit (18) unaligned, 5 121 /* 52 */ 4 ltalc, 5 122 5 tod fixed bin (17) unaligned, 5 123 5 startup fixed bin (17) unaligned, 5 124 /* 53 */ 4 lspts fixed bin (35), 5 125 /* 54 */ 4 lflg2, 5 126 5 b0 bit (1) unaligned, 5 127 5 b1 bit (1) unaligned, 5 128 5 b2 bit (1) unaligned, 5 129 5 b3 bit (1) unaligned, 5 130 5 b4 bit (1) unaligned, 5 131 5 b5 bit (1) unaligned, 5 132 5 b6 bit (1) unaligned, 5 133 5 b7 bit (1) unaligned, 5 134 5 b8 bit (1) unaligned, 5 135 5 b9 bit (1) unaligned, 5 136 5 b10 bit (1) unaligned, 5 137 5 b11 bit (1) unaligned, 5 138 5 b12 bit (1) unaligned, 5 139 5 b13 bit (1) unaligned, 5 140 5 b14 bit (1) unaligned, 5 141 5 b15 bit (1) unaligned, 5 142 5 b16 bit (1) unaligned, 5 143 5 b17 bit (1) unaligned, 5 144 5 b18 bit (1) unaligned, 5 145 5 b19 bit (1) unaligned, 5 146 5 b20 bit (1) unaligned, 5 147 5 b21 bit (1) unaligned, 5 148 5 b22 bit (1) unaligned, 5 149 5 b23 bit (1) unaligned, 5 150 5 b24 bit (1) unaligned, 5 151 5 b25 bit (1) unaligned, 5 152 5 b26 bit (1) unaligned, 5 153 5 b27 bit (1) unaligned, 5 154 5 b28 bit (1) unaligned, 5 155 5 b29 bit (1) unaligned, 5 156 5 b30 bit (1) unaligned, 5 157 5 b31 bit (1) unaligned, 5 158 5 b32 bit (1) unaligned, 5 159 5 b33 bit (1) unaligned, 5 160 5 b34 bit (1) unaligned, 5 161 5 b35 bit (1) unaligned, 5 162 /* 55-60 */ 4 lsftm (0:3) bit (36), 5 163 /* 61 */ 4 lsprt fixed bin (35), 5 164 /* 62 */ 4 ltrm bit (36), 5 165 /* 63 */ 4 linno fixed bin (35), 5 166 /* 64 */ 4 lincr fixed bin (35), 5 167 /* 65 */ 4 ltdes bit (36), 5 168 /* 66 */ 4 lbptr bit (36), 5 169 /* 67 */ 4 lpptr, 5 170 5 last_file_pat_ptr bin (18) uns unal, 5 171 5 lpptr_reserved bin (18) uns unal, 5 172 /* 70 */ 4 lsclp bit (36), 5 173 /* 71 */ 4 limit fixed bin (35), 5 174 /* 72 */ 4 lacpt, 5 175 5 jout_pat_offset bit (18) unal, 5 176 5 permissions unal, 5 177 6 lodx bit (1) unal, 5 178 6 cardin bit (1) unal, 5 179 6 talk bit (1) unal, 5 180 6 lods bit (1) unal, 5 181 5 cardin_urgency bit (14) unal, 5 182 /* 73 */ 4 ldrl, 5 183 5 ilc bit (18) unaligned, 5 184 5 code fixed bin (17) unaligned, 5 185 /* 74 */ 4 ljsnb bit (36), 5 186 /* 75 */ 4 ltm0 bit (36), 5 187 /* 76 */ 4 ltm1 bit (36), 5 188 /* 77 */ 4 ltm2 bit (36), 5 189 /* 100 */ 4 ltm3 bit (36), 5 190 /* 101 */ 4 ltm4 bit (36), 5 191 /* 102 */ 4 ltm5 bit (36), 5 192 /* 103 */ 4 ltmwt bit (36), 5 193 /* 104 */ 4 ltmrs bit (36), 5 194 /* 105 */ 4 ltc0 bit (36), 5 195 /* 106 */ 4 ltc1 bit (36), 5 196 /* 107 */ 4 ltc2 bit (36), 5 197 /* 110 */ 4 lct3 bit (36), 5 198 /* 111 */ 4 ltc4 bit (36), 5 199 /* 112 */ 4 ltc5 bit (36), 5 200 /* 113 */ 4 ltcw bit (36), 5 201 /* 114 */ 4 lkst bit (36), 5 202 /* 115 */ 4 lkst2 bit (36), 5 203 /* 116 */ 4 lkcc bit (36), 5 204 /* 117 */ 4 lkms bit (36), 5 205 /* 120-121 */ 4 lksdc (0:1) bit (36), 5 206 /* 122 */ 4 lkntp bit (36), 5 207 /* 123 */ 4 lkrdc bit (36), 5 208 /* 124 */ 4 lpqf bit (36), 5 209 /* 125 */ 4 lpqb bit (36), 5 210 /* 126 */ 4 lustl bit (36), 5 211 /* 127 */ 4 ltemp bit (36), 5 212 /* 130 */ 4 lrtll, 5 213 5 word_length fixed bin unaligned, 5 214 5 char_length fixed bin unaligned, 5 215 /* 131 */ 4 ltim bit (36), 5 216 /* 132 */ 4 lcfio, 5 217 5 sect_out fixed bin(18)unsigned unal, 5 218 5 sect_in fixed bin(18)unsigned unal, 5 219 /* 133 */ 4 lcfst, 5 220 5 initial_sect_out fixed bin(18)unsigned unal, 5 221 5 start_term fixed bin(18)unsigned unal, 5 222 /* 134 */ 4 lcmpt bit (36), 5 223 /* 135 */ 4 lcjid bit (36), 5 224 /* 136-137 */ 4 lrcal (0:1) bit (36), 5 225 /* 140 */ 4 lrdta bit (36), 5 226 /* 141 */ 4 lrrsk bit (36), 5 227 /* 142 */ 4 lrskd bit (36), 5 228 /* 143 */ 4 lrcc bit (36), 5 229 /* 144-145 */ 4 lrsts (0:1) bit (36), 5 230 /* 146 */ 4 lrtm bit (36), 5 231 /* 147 */ 4 lswt2, 5 232 5 b0 bit (1) unaligned, 5 233 5 b1 bit (1) unaligned, 5 234 5 b2 bit (1) unaligned, 5 235 5 b3 bit (1) unaligned, 5 236 5 b4 bit (1) unaligned, 5 237 5 b5 bit (1) unaligned, 5 238 5 b6 bit (1) unaligned, 5 239 5 b7 bit (1) unaligned, 5 240 5 b8 bit (1) unaligned, 5 241 5 b9 bit (1) unaligned, 5 242 5 b10 bit (1) unaligned, 5 243 5 b11 bit (1) unaligned, 5 244 5 b12 bit (1) unaligned, 5 245 5 b13 bit (1) unaligned, 5 246 5 b14 bit (1) unaligned, 5 247 5 b15 bit (1) unaligned, 5 248 5 b16 bit (1) unaligned, 5 249 5 b17 bit (1) unaligned, 5 250 5 b18 bit (1) unaligned, 5 251 5 b19 bit (1) unaligned, 5 252 5 b20 bit (1) unaligned, 5 253 5 b21 bit (1) unaligned, 5 254 5 b22 bit (1) unaligned, 5 255 5 b23 bit (1) unaligned, 5 256 5 b24 bit (1) unaligned, 5 257 5 b25 bit (1) unaligned, 5 258 5 b26 bit (1) unaligned, 5 259 5 b27 bit (1) unaligned, 5 260 5 b28 bit (1) unaligned, 5 261 5 b29 bit (1) unaligned, 5 262 5 b30 bit (1) unaligned, 5 263 5 b31 bit (1) unaligned, 5 264 5 b32 bit (1) unaligned, 5 265 5 b33 bit (1) unaligned, 5 266 5 b34 bit (1) unaligned, 5 267 5 b35 bit (1) unaligned, 5 268 /* 150 */ 4 llsnb bit (36), 5 269 /* 151 */ 4 lesq bit (36), 5 270 /* 152-153 */ 4 lumc (0:1) bit (36), 5 271 /* 154-155 */ 4 lfnam (0:1) bit (36), 5 272 /* 156 */ 4 lopts bit (36), 5 273 /* 157 */ 4 licec, 5 274 5 b0_17 bit (18) unaligned, 5 275 5 b18_35 fixed bin (17) unaligned, 5 276 /* 160 */ 4 lflg3, 5 277 5 b0 bit (1) unaligned, 5 278 5 b1 bit (1) unaligned, 5 279 5 b2 bit (1) unaligned, 5 280 5 b3 bit (1) unaligned, 5 281 5 b4 bit (1) unaligned, 5 282 5 b5 bit (1) unaligned, 5 283 5 b6 bit (1) unaligned, 5 284 5 b7 bit (1) unaligned, 5 285 5 b8 bit (1) unaligned, 5 286 5 b9 bit (1) unaligned, 5 287 5 b10 bit (1) unaligned, 5 288 5 b11 bit (1) unaligned, 5 289 5 b12 bit (1) unaligned, 5 290 5 b13 bit (1) unaligned, 5 291 5 b14 bit (1) unaligned, 5 292 5 b15 bit (1) unaligned, 5 293 5 b16 bit (1) unaligned, 5 294 5 b17 bit (1) unaligned, 5 295 5 b18 bit (1) unaligned, 5 296 5 b19 bit (1) unaligned, 5 297 5 b20 bit (1) unaligned, 5 298 5 b21 bit (1) unaligned, 5 299 5 b22 bit (1) unaligned, 5 300 5 b23 bit (1) unaligned, 5 301 5 b24 bit (1) unaligned, 5 302 5 b25 bit (1) unaligned, 5 303 5 b26 bit (1) unaligned, 5 304 5 b27 bit (1) unaligned, 5 305 5 b28 bit (1) unaligned, 5 306 5 b29 bit (1) unaligned, 5 307 5 b30 bit (1) unaligned, 5 308 5 b31 bit (1) unaligned, 5 309 5 b32 bit (1) unaligned, 5 310 5 b33 bit (1) unaligned, 5 311 5 b34 bit (1) unaligned, 5 312 5 b35 bit (1) unaligned, 5 313 /* 161-163 */ 4 lpage (0:2) bit (36), 5 314 /* 164 */ 4 lsit1 bit (36), 5 315 /* 165 */ 4 lsit2 bit (36), 5 316 /* 166 */ 4 lsit3 bit (36), 5 317 /* 167 */ 4 lsit4 bit (36), 5 318 /* The following entries are maintained by gtss and are not found in TSS UST */ 5 319 /* 170 */ 4 lxxx, /* program stack index, offset from gtss_ust */ 5 320 5 b0_17 fixed bin (17) unaligned, 5 321 5 b18_35 bit (18) unaligned, /* not used */ 5 322 /* 171-175 */ 4 lprgs (5), 5 323 5 b0_17 fixed bin (17) unaligned, 5 324 5 b18_35 fixed bin (17) unaligned, 5 325 /* 176 */ 4 fill bit (36), 5 326 /* 177 */ 4 remote_io_buffer aligned, 5 327 5 buffer_control_word, 5 328 6 current_line_pointer bit (18)unal, 5 329 6 buffer_threshold_address bit (18)unal, 5 330 5 number_words_transmitted fixed bin (17)unal, 5 331 5 FILL1 fixed bin (17)unal, 5 332 5 count_of_characters_transmitted fixed bin (17)unal, 5 333 5 FILL2 fixed bin (17)unal, 5 334 5 characters_transmitted (244) char (1) unal, 5 335 /* 277 */ 4 word_after_ust bit (36) aligned; 5 336 5 337 /* END INCLUDE FILE gtss_ust_ext_.incl.pl1 */ 392 393 6 1 /* BEGIN INCLUDE FILE gtss_entry_dcls.incl.pl1 */ 6 2 /* 6 3* Created: (Wardd Multics) 06/30/78 1624.8 mst Fri 6 4* Modified: Ron Barstad 84-02-24 Fixed wrong and obsolete entries 6 5**/ 6 6 6 7 /** gtss external entry variables. **/ 6 8 dcl com_err_ entry() options(variable); 6 9 dcl gtss_CFP_abort_ entry options(variable); 6 10 dcl gtss_CFP_break_ entry options(variable); 6 11 dcl gtss_CFP_input_ entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 6 12 dcl gtss_CFP_output_ entry (ptr, ptr, fixed bin(21), fixed bin(35)); 6 13 dcl gtss_abandon_CFP_ entry options(variable); 6 14 dcl gtss_abort_dump_ entry (fixed bin(18)); 6 15 dcl gtss_abort_subsystem_ entry options (variable); 6 16 dcl gtss_abort_subsystem_$not_imp entry (ptr, fixed bin(24)); 6 17 dcl gtss_abs_login_banner_ entry() returns(char(*)); 6 18 dcl gtss_abs_logout_banner_ entry() returns(char(*)); 6 19 dcl gtss_abs_$abs_equiv entry options(variable); 6 20 dcl gtss_abs_$cpu_runout entry (ptr, char(4)); 6 21 dcl gtss_abs_$create_absin entry() returns(char(*)); 6 22 dcl gtss_abs_$dabt_check entry (ptr, char(4)); 6 23 dcl gtss_abs_$get_id entry (char(5)) returns(char(19)); 6 24 dcl gtss_abs_$get_drm entry() returns(char(*)); 6 25 dcl gtss_adjust_size_ entry (ptr); 6 26 dcl gtss_aft_$add entry (char(8), fixed bin(24), fixed bin(35)); 6 27 dcl gtss_aft_$delete entry (char(8), fixed bin(24), fixed bin(35)); 6 28 dcl gtss_aft_$find entry (char(8), fixed bin(24), fixed bin(35)); 6 29 dcl gtss_aft_$initialize entry (fixed bin(35)); 6 30 dcl gtss_ascii_bcd_ entry (ptr, fixed bin, ptr); 6 31 dcl gtss_attributes_mgr_$get entry (ptr, fixed bin(35)); 6 32 dcl gtss_attributes_mgr_$set entry (ptr, fixed bin(35)); 6 33 dcl gtss_bcd_ascii_ entry (ptr, fixed bin(24), ptr); 6 34 dcl gtss_bcd_ascii_$lc entry (ptr, fixed bin(24), ptr); 6 35 dcl gtss_break_vector_ entry (); 6 36 dcl gtss_break_vector_$drl_in_progress entry() returns(bit(1)); 6 37 dcl gtss_break_vector_$status entry() returns(bit(1)); 6 38 dcl gtss_build_ entry options(variable); 6 39 dcl gtss_com_err_ entry options(variable); 6 40 dcl gtss_derail_processor_ entry (ptr, char(*), ptr, ptr, bit(1) aligned) /* called at fault time instead of signal_ */; 6 41 dcl gtss_derail_processor_$set entry options(variable); 6 42 dcl gtss_dq_$catp entry (char (5), ptr, fixed bin (18) unsigned); 6 43 dcl gtss_dq_$create entry (bit(1)); 6 44 dcl gtss_dq_$dibp entry (char(5), ptr); 6 45 dcl gtss_dq_$entries_info entry (ptr, fixed bin (18) unsigned, fixed bin (18) unsigned); 6 46 dcl gtss_dq_$hdrp entry (ptr); 6 47 dcl gtss_dq_$mod_js entry (char(5), fixed bin (6) unsigned, bit (1)); 6 48 dcl gtss_dq_$open_exc entry (bit(1)); 6 49 dcl gtss_dq_$open_gen entry (bit(1)); 6 50 dcl gtss_drl_abort_ entry (ptr, fixed bin); 6 51 dcl gtss_drl_addmem_ entry (ptr, fixed bin); 6 52 dcl gtss_drl_callss_ entry (ptr, fixed bin); 6 53 dcl gtss_drl_corfil_ entry (ptr, fixed bin); 6 54 dcl gtss_drl_defil_ entry (ptr, fixed bin); 6 55 dcl gtss_drl_defil_$subr entry (ptr, ptr, ptr); 6 56 dcl gtss_drl_dio_ entry (ptr, fixed bin); 6 57 dcl gtss_drl_drlimt_ entry (ptr, fixed bin); 6 58 dcl gtss_drl_drlsav_ entry (ptr, fixed bin); 6 59 dcl gtss_drl_filact_ entry (ptr, fixed bin); 6 60 dcl gtss_drl_filsp_ entry (ptr, fixed bin); 6 61 dcl gtss_drl_grow_ entry (ptr, fixed bin); 6 62 dcl gtss_drl_gwake_ entry (ptr, fixed bin); 6 63 dcl gtss_drl_jsts_ entry (ptr, fixed bin); 6 64 dcl gtss_drl_kin_ entry (ptr, fixed bin); 6 65 dcl gtss_drl_kotnow_ entry (ptr, fixed bin); 6 66 dcl gtss_drl_kotnow_$gtss_drl_kout_ entry (ptr, fixed bin); 6 67 dcl gtss_drl_koutn_ entry (ptr, fixed bin); 6 68 dcl gtss_drl_morlnk_ entry (ptr, fixed bin); 6 69 dcl gtss_drl_msub_ entry (ptr, fixed bin); 6 70 dcl gtss_drl_objtim_ entry (ptr, fixed bin); 6 71 dcl gtss_drl_part_ entry (ptr, fixed bin); 6 72 dcl gtss_drl_pasaft_ entry (ptr, fixed bin); 6 73 dcl gtss_drl_pasdes_ entry (ptr, fixed bin); 6 74 dcl gtss_drl_pasust_ entry (ptr, fixed bin); 6 75 dcl gtss_drl_pdio_ entry (ptr, fixed bin); 6 76 dcl gtss_drl_prgdes_ entry (ptr, fixed bin); 6 77 dcl gtss_drl_pseudo_ entry (ptr, fixed bin); 6 78 dcl gtss_drl_relmem_ entry (ptr, fixed bin); 6 79 dcl gtss_drl_restor_ entry (ptr, fixed bin); 6 80 dcl gtss_drl_retfil_ entry (ptr, fixed bin); 6 81 dcl gtss_drl_return_ entry (ptr, fixed bin); 6 82 dcl gtss_drl_rew_ entry (ptr, fixed bin); 6 83 dcl gtss_drl_rstswh_ entry (ptr, fixed bin); 6 84 dcl gtss_drl_setlno_ entry (ptr, fixed bin); 6 85 dcl gtss_drl_setswh_ entry (ptr, fixed bin); 6 86 dcl gtss_drl_snumb_ entry (ptr, fixed bin); 6 87 dcl gtss_drl_spawn_ entry (ptr, fixed bin); 6 88 dcl gtss_drl_spawn_$gtss_drl_pasflr_ entry (ptr, fixed bin); 6 89 dcl gtss_drl_stoppt_ entry (ptr, fixed bin); 6 90 dcl gtss_drl_switch_ entry (ptr, fixed bin); 6 91 dcl gtss_drl_sysret_ entry (ptr, fixed bin); 6 92 dcl gtss_drl_t_cfio_ entry (ptr, fixed bin); 6 93 dcl gtss_drl_t_cmov_ entry (ptr, fixed bin); 6 94 dcl gtss_drl_t_err_ entry (ptr, fixed bin); 6 95 dcl gtss_drl_t_goto_ entry (ptr, fixed bin); 6 96 dcl gtss_drl_t_linl_ entry (ptr, fixed bin); 6 97 dcl gtss_drl_t_rscc_ entry (ptr, fixed bin); 6 98 dcl gtss_drl_tapein_ entry (ptr, fixed bin); 6 99 dcl gtss_drl_task_ entry (ptr, fixed bin); 6 100 dcl gtss_drl_termtp_ entry (ptr, fixed bin); 6 101 dcl gtss_drl_time_ entry (ptr, fixed bin); 6 102 dcl gtss_drun_ entry (bit(1)); 6 103 dcl gtss_dsd_lookup_ entry (char(8) var) returns(fixed bin(24)); 6 104 dcl gtss_dsd_process_ entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 6 105 dcl gtss_edit_dsd_ entry (ptr, fixed bin(21)) returns(fixed bin(24)); 6 106 dcl gtss_mcfc_empty entry (char(*) var); 6 107 dcl gtss_expand_pathname_ entry (ptr, char(*), char(*), fixed bin(35)); 6 108 dcl gtss_expand_pathname_$verify_umc entry (ptr, char(*), char(*), bit(18), fixed bin(35)); 6 109 dcl gtss_fault_processor_ entry options(variable); 6 110 dcl gtss_find_cond_frame_ entry (char(32) var) returns(ptr); 6 111 dcl gtss_fault_processor_$timer_runout entry (ptr, char(*)); 6 112 dcl gtss_filact_error_status_ entry (fixed bin(35))returns(bit(12)); 6 113 dcl gtss_filact_funct02_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 114 dcl gtss_filact_funct03_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 115 dcl gtss_filact_funct04_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 116 dcl gtss_filact_funct05_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 117 dcl gtss_filact_funct08_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 118 dcl gtss_filact_funct10_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 119 dcl gtss_filact_funct11_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 120 dcl gtss_filact_funct14_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 121 dcl gtss_filact_funct18_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 122 dcl gtss_filact_funct19_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 123 dcl gtss_filact_funct21_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 124 dcl gtss_filact_funct22_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 6 125 dcl gtss_mcfc_init_ entry (char(*) var); 6 126 dcl gtss_interp_prim_ entry options(variable); 6 127 dcl gtss_interp_prim_$callss entry (char(4), ptr); 6 128 dcl gtss_interp_prim_$sysret entry options(variable); 6 129 dcl gtss_interp_prim_$t_goto entry (char(4)); 6 130 dcl gtss_ios_change_size_ entry (fixed bin(24), fixed bin(24), bit(1), fixed bin(24), fixed bin(35)); 6 131 dcl gtss_ios_close_ entry (fixed bin(24), ptr, fixed bin(35)); 6 132 dcl gtss_ios_exchange_names_ entry (fixed bin(24), fixed bin(24), fixed bin(24), fixed bin(35)); 6 133 dcl gtss_ios_initialize_ entry options(variable); 6 134 dcl gtss_ios_io_ entry (fixed bin(24), ptr, ptr, fixed bin(24), fixed bin(24), fixed bin(35)); 6 135 dcl gtss_ios_open_ entry (fixed bin(24), char(168), char(32), bit(6), bit(1), ptr, ptr, fixed bin(35)); 6 136 dcl gtss_ios_position_ entry (fixed bin(24), fixed bin(24), fixed bin(24), bit(6), ptr); 6 137 dcl gtss_mcfc_$delete entry (fixed bin(24), char(*), char(*), bit(36) aligned, ptr, fixed bin(35)); 6 138 dcl gtss_mcfc_$open entry (char(*), char(*), bit(6), bit(36) aligned, ptr, fixed bin(35)); 6 139 dcl gtss_mcfc_$close entry (char(*), char(*), bit(36) aligned, ptr, fixed bin(35)); 6 140 dcl gtss_read_starCFP_ entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 6 141 dcl gtss_read_starCFP_$last_os entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 6 142 dcl gtss_run_subsystem_ entry (fixed bin(24)); 6 143 dcl gtss_run_subsystem_$finish entry options(variable); 6 144 dcl gtss_run_subsystem_$restor entry (fixed bin(24), ptr); 6 145 dcl gtss_run_subsystem_$restor_perm entry (fixed bin(24), ptr, fixed bin(18)); 6 146 dcl gtss_set_slave_ entry (fixed bin (24), ptr); 6 147 dcl gtss_set_slave_$load_bar entry (fixed bin (17)); 6 148 dcl gtss_update_safe_store_ entry (ptr); 6 149 dcl gtss_verify_access_ entry (char(*), char(*), fixed bin(24), bit(6), bit(12) aligned); 6 150 dcl gtss_verify_access_$check_forced_access entry (char(*), char(*), fixed bin(24)); 6 151 dcl gtss_write_starCFP_ entry (ptr, ptr, fixed bin(21), fixed bin(35)); 6 152 /* END INCLUDE FILE gtss_entry_dcls.incl.pl1 */ 394 395 7 1 /* BEGIN INCLUDE FILE gtss_save_restore_data_.incl.pl1 */ 7 2 /* 7 3* Created: (Kepner Multics) 10/07/78 1634.3 mst Sat 7 4**/ 7 5 7 6 7 7 /** data structure used for file I/O by 7 8* gtss_drl_drlsav_ and gtss_drl_restor_. **/ 7 9 7 10 dcl 1 gtss_save_restore_data_$IO aligned static ext 7 11 , 3 select_sequence 7 12 , 4 OP1 /* Seek operation. */ 7 13 , 5 Device_Command bit(06)unal 7 14 , 5 zeroes_1 bit(12)unal 7 15 , 5 IOC_Command bit(05)unal 7 16 , 5 zeroes_2 bit(01)unal 7 17 , 5 Control bit(06)unal 7 18 , 5 Count bit(06)unal 7 19 7 20 , 4 ID1 7 21 , 5 fcb_loc bit(18)unal 7 22 , 5 DCW_list_loc bit(18)unal 7 23 7 24 , 4 OP2 /* Read or Write opteration. */ 7 25 , 5 Device_Command bit(06)unal 7 26 , 5 zeroes_1 bit(12)unal 7 27 , 5 IOC_Command bit(05)unal 7 28 , 5 zeroes_2 bit(01)unal 7 29 , 5 Control bit(06)unal 7 30 , 5 Count bit(06)unal 7 31 7 32 , 4 ID2 7 33 , 5 fcb_loc bit(18)unal 7 34 , 5 DCW_list_loc bit(18)unal 7 35 7 36 , 4 RETURN_WORD 7 37 , 5 Status_loc bit(18)unal 7 38 , 5 Courtesy_Call_loc bit(18)unal 7 39 7 40 , 3 Seek_Word 7 41 , 4 Seek_loc bit(18)unal 7 42 , 4 Seek_count fixed bin(17)unal 7 43 , 3 Seek_Address fixed bin(35) 7 44 , 3 STATUS bit(72) 7 45 7 46 , 3 DCW (64) 7 47 , 4 memory_loc bit(18)unal 7 48 , 4 zeroes_3 bit(03)unal 7 49 , 4 action_code bit(03)unal 7 50 , 4 word_count bit(12)unal 7 51 ; 7 52 /* END INCLUDE FILE gtss_save_restore_data_.incl.pl1 */ 396 397 8 1 /* BEGIN INCLUDE FILE gtss_device_cmds.incl.pl1 */ 8 2 /* 8 3* Created: (Wardd Multics) 07/08/78 1503.0 mst Sat 8 4**/ 8 5 dcl read_cmd bit(6)static int options(constant)init("25"b3); 8 6 dcl seek_cmd bit(6)static int options(constant)init("34"b3); 8 7 dcl write_cmd bit(6)static int options(constant)init("31"b3); 8 8 /* END INCLUDE FILE gtss_device_cmds.incl.pl1 */ 398 399 9 1 /* BEGIN INCLUDE FILE gtss_dfd_ext_.incl.pl1 */ 9 2 /* 9 3* Created: (Wardd Multics) 06/09/78 1650.6 mst Fri 9 4**/ 9 5 9 6 dcl 1 gtss_dfd_ext_$disk_file_data (41) aligned ext, /* disk_file_data structure */ 9 7 9 8 3 gtss_disk, 9 9 4 dir_name char (168) unal, /* containing directory for file */ 9 10 4 entry_name char (32) unal, /* entry name for file */ 9 11 4 fcb_ptr ptr aligned, /* ptr to file control block */ 9 12 4 msf_array_ptr ptr, /* Pointer to an array of pointers for a msf. Each 9 13* component which has been accessed has a corresponding 9 14* initialized pointer. Currently 500 components 9 15* are supported. */ 9 16 4 single_segment_ptr ptr, /* Pointer to segment for single segment file */ 9 17 4 indicators aligned, /* one word of flags */ 9 18 9 19 5 msf bit (1) unaligned, /* 1=msf segment | 0= single segment */ 9 20 5 protected_file bit (1) unaligned, /* 1=file uses protections | 0= unprotected */ 9 21 5 fill bit (34) unal, 9 22 9 23 4 permissions aligned, 9 24 5 read bit (1) unaligned, /* 1=read permission */ 9 25 5 execute bit (1) unaligned, /* 1=execute permission */ 9 26 5 write bit (1) unaligned, /* 1=write permission */ 9 27 5 fill2 bit (33) unaligned, /* unused at this time */ 9 28 9 29 4 access_mode bit (6) aligned, /* contains the mode by which the file was accessed */ 9 30 4 component fixed bin, /* current component value (first component = 0) */ 9 31 4 offset fixed bin (24), /* current word offset in the component */ 9 32 4 file_position fixed bin (30), /* current file position in words */ 9 33 4 file_size fixed bin (30), /* size of file in words */ 9 34 4 no_components fixed bin (24), /* number of components for a msf */ 9 35 4 attributes_ptr ptr, /* Pointer to the attributes structure 9 36* for this file. (See gtss_file_attributes.incl.pl1) */ 9 37 9 38 4 pat_body, 9 39 9 40 5 word_0, 9 41 6 defective bit (1) unal, /* 1 = file has defective space */ 9 42 6 io_errors bit (1) unal, /* 1 = I/O errors encountered on file */ 9 43 6 reserved bit (2) unal, /* Reserved for GCOS */ 9 44 6 sct bit (12) unal, /* address of SCT for device on which 9 45* file begins or if cataloged, 9 46* for device with file catalog entry */ 9 47 6 reserved2 bit (2) unal, /* Reserved for GCOS */ 9 48 9 49 5 word_1, 9 50 6 io_time fixed bin (35), /* I/O time for this file */ 9 51 9 52 5 word_2, 9 53 6 protected bit (1) unal, /* 1 = file has protected allocation */ 9 54 6 hash_code bit (5) unal, /* hash code of user name under which 9 55* file is cataloged */ 9 56 6 not_cat bit (1) unal, /* 1 = file is not cataloged */ 9 57 6 last_desc bit (1) unal, /* 1 = last descriptor for file is not in memory */ 9 58 6 random bit (1) unal, /* 1 = access to file is random */ 9 59 6 perm bit (1) unal, /* 1 = file space is permanently assigned */ 9 60 6 first_desc bit (1) unal, /* 1 = first descriptor for file is not in memory */ 9 61 6 creator bit (1) unal, /* 1 = user is not creator of file */ 9 62 6 disposition bit (2) unal, /* Abort disposition code 9 63* 00 = Release 9 64* 01 = Dismount 9 65* 10 = Save 9 66* 11 = Continue */ 9 67 6 ids1 bit (1) unal, /* 1 = file is an I-D-S/I file */ 9 68 6 write_performed bit (1) unal, /* 1 = write was performed on file */ 9 69 6 unpermitted_access bit (1) unal, /* 1 = unpermitted access to file attempted or seek 9 70* attempted to part of file marked defective (only 9 71* for procted allocation) */ 9 72 6 purge bit (1) unal, /* 1 = file space to be purgedbefore deallocating file. */ 9 73 6 sector_number bit (18) unal, /* If cataloged file, sector number of file catalog 9 74* (on device with SCT referenced in word 0). If 9 75* cataloged file that is proctected (bit 0 ON in this 9 76* word), memory location of table in File Management 9 77* Supervisor Executive. If user temporary file, 9 78* largest size file has ever attained, in llinks. 9 79* If system value equals 777777 octal, it is system 9 80* file created by System Input. */ 9 81 9 82 5 word_3, 9 83 6 llink_size bit (14) unal, /* 0-13 ^= 0, Current total file size in llinks 9 84* 0-13 = 0, File size is greater than 16,383 llinks, 9 85* and if the file is cataloged, call to .MFS19,5 with 9 86* offset to PAT pointer in index 5 will cause bits 9 87* 14-35 of Q-register to be set to file size. (Unless 9 88* there is a Seek error on file catalog in which case 9 89* zero is returned. ) 9 90* */ 9 91 6 llink_position bit (22) unal, /* Relative llink position within the space descriptors 9 92* in memory. */ 9 93 9 94 5 word_4, 9 95 6 not_last_desc bit (1) unal, /* 1 = not last descriptor in memory */ 9 96 6 space_desc bit (1) unal, /* 0 = this is space descriptor */ 9 97 6 space_defective bit (1) unal, /* 1 = Space is defective */ 9 98 6 extent bit (15) unal, /* Number of llinks in this extent (area defined by this 9 99* descriptor) */ 9 100 6 origin bit (18) unal; /* device llinks number of origin of this extent */ 9 101 /* END INCLUDE FILE gtss_dfd_ext_.incl.pl1 */ 400 401 10 1 /* BEGIN INCLUDE FILE gtss_hstar.incl.pl1 */ 10 2 /* 10 3* Created: (Kepner Multics) 10/12/78 1500.3 mst Thu 10 4**/ 10 5 /* This include file contains data structures, variables, 10 6*and routines used in common between gtss_drl_drlsav_ and 10 7*gtss_drl_restor_ for reading and writing H* files. */ 10 8 dcl 1 catalog_block aligned based (buffer_ptr), 10 9 2 blk_num fixed bin (17) unal, 10 10 2 continue_catalog bit (18) unal, 10 11 2 fill2 bit (36), 10 12 2 cat (15), 10 13 3 bcd_name bit (36), 10 14 3 element_size bit (18) unal, /* Size in 64 word blocks */ 10 15 3 initial_block bit (18) unal, 10 16 3 fill3 bit (72), 10 17 2 fill4 bit (36), 10 18 2 checksum bit (36); 10 19 10 20 dcl 1 available_space_block aligned based (buffer_ptr), 10 21 2 fill1 bit (36), 10 22 2 blocks_used bit (18) unal, 10 23 2 blocks_remaining bit (18)unal, 10 24 2 fill2 (61) bit (36), 10 25 2 checksum bit (36); 10 26 10 27 dcl 1 data_control_block aligned based (buffer_ptr), 10 28 2 data_checksum bit (36), 10 29 2 fill1 bit (36), 10 30 2 control_block_checksum bit (36), 10 31 2 bcd_name bit (36), 10 32 2 entry_address bit (18) unal, 10 33 2 load_origin bit (18) unal, 10 34 2 fill2 bit (18) unal, 10 35 2 number_of_data_blocks bit (18) unal, 10 36 2 dcws (58), 10 37 3 memory_loc bit (18)unal, 10 38 3 zeros_3 bit (03)unal, 10 39 3 action_code bit (03)unal, 10 40 3 word_count bit (12) unal; 10 41 10 42 dcl buffer_ptr ptr init(null()); 10 43 dcl element_name bit (36); 10 44 dcl file_size_in_blocks fixed bin (18); 10 45 dcl i fixed bin (24); 10 46 dcl max_for_18_bits fixed bin (18) static int options (constant) init (256*1024-1); 10 47 dcl memory_loc fixed bin (18); 10 48 dcl temp fixed bin (24); 10 49 dcl words_in_element fixed bin (18); 10 50 dcl words_remaining fixed bin (18); 10 51 10 52 write_data: proc (sector,memory_location); 10 53 dcl memory_location fixed bin(18) parm; 10 54 dcl sector fixed bin (18) parm; 10 55 OP2.Device_Command = write_cmd; 10 56 go to data_dcws; 10 57 10 58 read_data: entry(sector,memory_location); 10 59 OP2.Device_Command = read_cmd; 10 60 10 61 10 62 data_dcws:; 10 63 memory_loc = memory_location; 10 64 words_remaining = words_in_element; 10 65 do i = 1 to hbound (DCW, 1); 10 66 if words_remaining < 4097 then go to last_dcw; 10 67 DCW (i).memory_loc = bit (memory_loc, 18); 10 68 DCW (i).action_code = "001"b; /* IOTP */ 10 69 DCW (i).word_count = "0000"b3; /* 10000 octal = 4096 words indicated by all zeros in dcw count */ 10 70 memory_loc = memory_loc + 4096; 10 71 words_remaining = words_remaining - 4096; 10 72 end; 10 73 10 74 last_dcw: ; 10 75 DCW (i).memory_loc = bit (memory_loc, 18); 10 76 DCW (i).action_code = "000"b; /* IOTD */ 10 77 DCW (i).word_count = bit (fixed (words_remaining, 12), 12); 10 78 go to common; 10 79 10 80 write_buffer: entry (sector,memory_location); 10 81 OP2.Device_Command = write_cmd; 10 82 go to buffer_dcw; 10 83 10 84 read_buffer: entry (sector,memory_location); 10 85 OP2.Device_Command = read_cmd; 10 86 10 87 buffer_dcw: ; 10 88 DCW (1).memory_loc = bit(memory_location,18); 10 89 DCW (1).action_code = "000"b; /* IOTD */ 10 90 DCW (1).word_count = "0100"b3; /* 100 octal = 64 = block_size */ 10 91 10 92 common: ; 10 93 Seek_Address = sector; 10 94 call gtss_ios_io_ ( 10 95 fn, 10 96 addr (select_sequence), 10 97 gseg, 10 98 fixed (gtss_ust.lsize.limit, 18), 10 99 status, 10 100 code); 10 101 if status ^= 0 then do; 10 102 call gtss_abort_subsystem_( 10 103 mcp, 10 104 me, 10 105 4, /* Bad derail argument */ 10 106 "At (^6o) Unable to write program to file ""^a"". gtss_ios_ status = ^i", 10 107 fixed (scu.ilc, 18), 10 108 to_from, 10 109 ascii_file_name); 10 110 go to ret; 10 111 end; 10 112 end write_data; 10 113 /* END INCLUDE FILE gtss_hstar.incl.pl1 */ 402 403 end /* gtss_drl_drlsav_ */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1043.1 gtss_drl_drlsav_.pl1 >spec>on>7105>gtss_drl_drlsav_.pl1 347 1 09/09/83 1713.5 gtss_checksum.incl.pl1 >ldd>include>gtss_checksum.incl.pl1 386 2 09/09/83 1713.8 gtss_ext_.incl.pl1 >ldd>include>gtss_ext_.incl.pl1 388 3 12/15/83 1100.4 mc.incl.pl1 >ldd>include>mc.incl.pl1 390 4 12/10/84 1029.8 gtss_pnterr.incl.pl1 >spec>on>7105>gtss_pnterr.incl.pl1 392 5 09/09/83 1714.3 gtss_ust_ext_.incl.pl1 >ldd>include>gtss_ust_ext_.incl.pl1 394 6 12/10/84 1029.7 gtss_entry_dcls.incl.pl1 >spec>on>7105>gtss_entry_dcls.incl.pl1 396 7 09/09/83 1714.2 gtss_save_restore_data_.incl.pl1 >ldd>include>gtss_save_restore_data_.incl.pl1 398 8 09/09/83 1713.7 gtss_device_cmds.incl.pl1 >ldd>include>gtss_device_cmds.incl.pl1 400 9 09/09/83 1713.2 gtss_dfd_ext_.incl.pl1 >ldd>include>gtss_dfd_ext_.incl.pl1 402 10 09/09/83 1713.3 gtss_hstar.incl.pl1 >ldd>include>gtss_hstar.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. DCW 11 000024 external static structure array level 2 dcl 7-10 set ref 10-65 Device_Command 2 000024 external static bit(6) level 4 packed unaligned dcl 7-10 set ref 10-55* 10-59* 10-81* 10-85* OP2 2 000024 external static structure level 3 dcl 7-10 Seek_Address 6 000024 external static fixed bin(35,0) level 2 dcl 7-10 set ref 10-93* a 000176 automatic fixed bin(71,0) dcl 1-24 in procedure "checksum" set ref 1-15* 1-17 1-17 1-18* 1-20 1-20 1-21* 1-22 a 24 based bit(36) level 3 in structure "mc" packed unaligned dcl 3-12 in procedure "gtss_drl_drlsav_" set ref 144* 209* a_overlay based structure level 1 dcl 1-28 action_code 11(21) 000024 external static bit(3) array level 3 in structure "gtss_save_restore_data_$IO" packed unaligned dcl 7-10 in procedure "gtss_drl_drlsav_" set ref 10-68* 10-76* 10-89* action_code 6(21) based bit(3) array level 3 in structure "data_control_block" packed unaligned dcl 10-27 in procedure "gtss_drl_drlsav_" set ref 296* 316* addrel builtin function dcl 351 ref 51 62 166 320 arg_list based structure level 1 dcl 369 arg_list_ptr 000100 automatic pointer initial dcl 352 set ref 51* 54 62 113 122 131 131 146 146 156 156 166 171 187 217 217 239 239 282 283 290 320 325 325 326 326 344 344 352* array based bit(36) array unaligned dcl 1-27 ref 1-17 ascii_file_name based char(8) level 2 dcl 380 set ref 66 68* 82* 93* 104* 228* 253* 10-102* available_space_block based structure level 1 dcl 10-20 set ref 336* b 000200 automatic fixed bin(71,0) dcl 1-25 set ref 1-17* 1-18 1-20* 1-21 bcd_name 2 based bit(36) array level 3 in structure "catalog_block" dcl 10-8 in procedure "gtss_drl_drlsav_" set ref 199* 248 bcd_name 3 based bit(36) level 2 in structure "data_control_block" dcl 10-27 in procedure "gtss_drl_drlsav_" set ref 284* bcd_program_name 2 based bit(36) level 2 dcl 380 ref 81 199 284 blk_num based fixed bin(17,0) level 2 packed unaligned dcl 10-8 set ref 178* 242 blocks_in_element 000102 automatic fixed bin(18,0) dcl 353 set ref 132* 202 206 281 blocks_remaining 1(18) based bit(18) level 2 packed unaligned dcl 10-20 set ref 340* 342 blocks_used 1 based bit(18) level 2 packed unaligned dcl 10-20 set ref 339* 342 blocks_used_in_file 000103 automatic fixed bin(18,0) dcl 354 set ref 212* 213 339 340 buffer_ptr 000126 automatic pointer initial dcl 10-42 set ref 166* 177 178 10-42* 199 202 203 216 216* 242 242 247 248 268 268 279 281 282 283 284 293 295 296 297 314 316 317 321 324 324* 336 339 340 342 342 342 bufloc 3(18) based bit(18) level 2 packed unaligned dcl 369 ref 156 156 166 217 217 239 239 325 325 344 344 carry 0(35) based bit(1) level 2 packed unaligned dcl 1-28 ref 1-17 1-20 cat 2 based structure array level 2 dcl 10-8 set ref 247 catalog_block based structure level 1 dcl 10-8 set ref 177* catalog_entry 000104 automatic fixed bin(18,0) dcl 355 set ref 179* 199 202 203 263* checksum 77 based bit(36) level 2 in structure "available_space_block" dcl 10-20 in procedure "gtss_drl_drlsav_" set ref 342* checksum 77 based bit(36) level 2 in structure "catalog_block" dcl 10-8 in procedure "gtss_drl_drlsav_" set ref 216* code 000105 automatic fixed bin(35,0) dcl 356 set ref 66* 67 10-94* control_block_checksum 2 based bit(36) level 2 dcl 10-27 set ref 324* data_checksum based bit(36) level 2 dcl 10-27 set ref 321* data_control_block based structure level 1 dcl 10-27 set ref 279* data_ptr 000106 automatic pointer initial dcl 357 set ref 320* 321* 357* dcws 6 based structure array level 2 dcl 10-27 set ref 293 element_name 000130 automatic bit(36) unaligned dcl 10-43 set ref 246* 248* 249 element_size 3 based bit(18) array level 3 packed unaligned dcl 10-8 set ref 202* 268 entry_address 2 based bit(18) level 2 in structure "arg_list" packed unaligned dcl 369 in procedure "gtss_drl_drlsav_" ref 282 entry_address 4 based bit(18) level 2 in structure "data_control_block" packed unaligned dcl 10-27 in procedure "gtss_drl_drlsav_" set ref 282* err25 454 000000 constant char(50) initial level 2 packed unaligned dcl 4-9 set ref 93* err4 45(18) 000000 constant char(50) initial level 2 packed unaligned dcl 4-9 set ref 148* 158* err42 1000(18) 000000 constant char(50) initial level 2 packed unaligned dcl 4-9 set ref 68* err48 1113(18) 000000 constant char(50) initial level 2 packed unaligned dcl 4-9 set ref 253* err50 1144(18) 000000 constant char(50) initial level 2 packed unaligned dcl 4-9 set ref 134* err51 1161 000000 constant char(50) initial level 2 packed unaligned dcl 4-9 set ref 228* err52 1175(18) 000000 constant char(50) initial level 2 packed unaligned dcl 4-9 set ref 104* err54 1226(18) 000000 constant char(50) initial level 2 packed unaligned dcl 4-9 set ref 82* file_size 76 000026 external static fixed bin(30,0) array level 3 dcl 9-6 ref 76 file_size_in_blocks 000131 automatic fixed bin(18,0) dcl 10-44 set ref 77* 79* 213 340 fill2 1 based bit(36) level 2 dcl 10-8 set ref 242 fixed builtin function dcl 358 ref 51 54 54 55 55 68 68 82 82 93 93 104 104 114 114 123 123 131 131 134 134 146 148 148 156 156 156 158 158 187 187 202 217 217 228 228 239 239 253 253 268 268 290 304 304 317 325 325 326 326 340 344 344 1-17 1-17 1-17 1-20 1-20 10-77 10-94 10-94 10-102 10-102 fn 000110 automatic fixed bin(24,0) dcl 359 set ref 66* 76 92 103 225 10-94* gseg 000112 automatic pointer initial dcl 360 set ref 50* 51 62 166 320 360* 10-94* gtss_abort_subsystem_ 000016 constant entry external dcl 6-15 ref 55 68 82 93 104 114 123 134 148 158 228 253 304 10-102 gtss_aft_$find 000020 constant entry external dcl 6-28 ref 66 gtss_dfd_ext_$disk_file_data 000026 external static structure array level 1 dcl 9-6 gtss_disk 000026 external static structure array level 2 dcl 9-6 gtss_ext_$gtss_slave_area_seg 000010 external static pointer array dcl 2-20 ref 50 gtss_ext_$stack_level_ 000012 external static fixed bin(17,0) dcl 2-31 ref 50 gtss_ios_io_ 000022 constant entry external dcl 6-134 ref 10-94 gtss_pnterr 000000 constant structure level 1 packed unaligned dcl 4-9 gtss_save_restore_data_$IO 000024 external static structure level 1 dcl 7-10 gtss_ust 000014 external static structure level 2 dcl 5-16 gtss_ust_ext_$ust 000014 external static structure level 1 dcl 5-16 i 000132 automatic fixed bin(24,0) dcl 10-45 in procedure "gtss_drl_drlsav_" set ref 247* 248* 263 266 267* 267 268 268 293* 295 296 297* 314 316 317 10-65* 10-67 10-68 10-69* 10-75 10-76 10-77 i 000202 automatic fixed bin(24,0) dcl 1-26 in procedure "checksum" set ref 1-16* 1-17* ilc 4 based bit(18) level 2 packed unaligned dcl 3-56 ref 51 55 55 68 68 82 82 93 93 104 104 114 114 123 123 134 134 148 148 158 158 187 228 228 253 253 304 304 10-102 10-102 increment parameter fixed bin(17,0) dcl 27 set ref 15 187* initial_block 3(18) based bit(18) array level 3 packed unaligned dcl 10-8 set ref 203* 268 initial_block_of_element 000114 automatic fixed bin(18,0) dcl 362 set ref 180* 203 206 268* 325* 326 limit 22(18) 000014 external static bit(18) level 4 packed unaligned dcl 5-16 ref 54 113 122 146 156 10-94 10-94 load_origin 2(18) based bit(18) level 2 in structure "arg_list" packed unaligned dcl 369 in procedure "gtss_drl_drlsav_" ref 283 290 load_origin 4(18) based bit(18) level 2 in structure "data_control_block" packed unaligned dcl 10-27 in procedure "gtss_drl_drlsav_" set ref 283* loc_1 1 based bit(18) level 2 packed unaligned dcl 369 ref 113 131 320 326 326 loc_2 1(18) based bit(18) level 2 packed unaligned dcl 369 ref 122 131 lsize 22 000014 external static structure level 3 dcl 5-16 max_for_18_bits constant fixed bin(18,0) initial dcl 10-46 ref 77 77 207 mc based structure level 1 dcl 3-12 mcp 000122 automatic pointer dcl 3-10 set ref 28* 49 55* 68* 82* 93* 104* 114* 123* 134* 144 148* 158* 209 228* 253* 304* 10-102* mcpp parameter pointer dcl 26 ref 15 28 me 001543 constant char(32) initial unaligned dcl 363 set ref 10-102* memory_loc 11 000024 external static bit(18) array level 3 in structure "gtss_save_restore_data_$IO" packed unaligned dcl 7-10 in procedure "gtss_drl_drlsav_" set ref 10-67* 10-75* 10-88* memory_loc 6 based bit(18) array level 3 in structure "data_control_block" packed unaligned dcl 10-27 in procedure "gtss_drl_drlsav_" set ref 295* 314* memory_loc 000133 automatic fixed bin(18,0) dcl 10-47 in procedure "gtss_drl_drlsav_" set ref 290* 295 298* 298 314 10-63* 10-67 10-70* 10-70 10-75 memory_location parameter fixed bin(18,0) dcl 10-53 ref 10-52 10-58 10-63 10-80 10-84 10-88 n parameter fixed bin(18,0) dcl 1-11 ref 1-3 1-16 name_list based structure level 1 dcl 380 name_list_ptr 000116 automatic pointer initial dcl 364 set ref 62* 66 68 81 82 93 104 199 228 253 284 364* 10-102 nameloc based bit(18) level 2 packed unaligned dcl 369 ref 54 62 not_first_name 0(18) based bit(18) level 2 packed unaligned dcl 369 ref 171 number_of_data_blocks 5(18) based bit(18) level 2 packed unaligned dcl 10-27 set ref 281* p parameter pointer dcl 1-10 ref 1-3 1-17 pat_body 102 000026 external static structure array level 3 dcl 9-6 permissions 71 000026 external static structure array level 3 dcl 9-6 random 104(08) 000026 external static bit(1) array level 5 packed unaligned dcl 9-6 ref 103 read_cmd constant bit(6) initial unaligned dcl 8-5 ref 10-59 10-85 regs 20 based structure level 2 packed unaligned dcl 3-12 scu 30 based bit(36) array level 2 in structure "mc" packed unaligned dcl 3-12 in procedure "gtss_drl_drlsav_" set ref 49 scu based structure level 1 dcl 3-56 in procedure "gtss_drl_drlsav_" scup 000124 automatic pointer dcl 3-54 set ref 49* 51 55 55 68 68 82 82 93 93 104 104 114 114 123 123 134 134 148 148 158 158 187 228 228 253 253 304 304 10-102 10-102 sector parameter fixed bin(18,0) dcl 10-54 ref 10-52 10-58 10-80 10-84 10-93 select_sequence 000024 external static structure level 2 dcl 7-10 set ref 10-94 10-94 status 000120 automatic fixed bin(24,0) dcl 365 set ref 10-94* 10-101 sum 1 based bit(36) level 2 dcl 1-28 ref 1-17 1-20 1-22 temp 000134 automatic fixed bin(24,0) dcl 10-48 set ref 76* 77 79 206* 207 212 to_from 001537 constant char(16) initial unaligned dcl 366 set ref 10-102* tra 3 based bit(18) level 2 packed unaligned dcl 369 ref 146 146 187 word_2 104 000026 external static structure array level 4 dcl 9-6 word_count 000121 automatic bit(18) unaligned dcl 367 in procedure "gtss_drl_drlsav_" set ref 292* 297 word_count 11(24) 000024 external static bit(12) array level 3 in structure "gtss_save_restore_data_$IO" packed unaligned dcl 7-10 in procedure "gtss_drl_drlsav_" set ref 10-69* 10-77* 10-90* word_count 6(24) based bit(12) array level 3 in structure "data_control_block" packed unaligned dcl 10-27 in procedure "gtss_drl_drlsav_" set ref 297* 317* words_in_element 000135 automatic fixed bin(18,0) dcl 10-49 set ref 131* 132 133 291 304* 321* 10-64 words_remaining 000136 automatic fixed bin(18,0) dcl 10-50 set ref 291* 294 299* 299 317 10-64* 10-66 10-71* 10-71 10-77 write 71(02) 000026 external static bit(1) array level 4 packed unaligned dcl 9-6 ref 92 write_cmd constant bit(6) initial unaligned dcl 8-7 ref 10-55 10-81 write_performed 104(15) 000026 external static bit(1) array level 5 packed unaligned dcl 9-6 ref 225 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. abx internal static fixed bin(17,0) initial dcl 3-42 apx internal static fixed bin(17,0) initial dcl 3-42 bbx internal static fixed bin(17,0) initial dcl 3-42 bpx internal static fixed bin(17,0) initial dcl 3-42 com_err_ 000000 constant entry external dcl 6-8 gtss_CFP_abort_ 000000 constant entry external dcl 6-9 gtss_CFP_break_ 000000 constant entry external dcl 6-10 gtss_CFP_input_ 000000 constant entry external dcl 6-11 gtss_CFP_output_ 000000 constant entry external dcl 6-12 gtss_abandon_CFP_ 000000 constant entry external dcl 6-13 gtss_abort_dump_ 000000 constant entry external dcl 6-14 gtss_abort_subsystem_$not_imp 000000 constant entry external dcl 6-16 gtss_abs_$abs_equiv 000000 constant entry external dcl 6-19 gtss_abs_$cpu_runout 000000 constant entry external dcl 6-20 gtss_abs_$create_absin 000000 constant entry external dcl 6-21 gtss_abs_$dabt_check 000000 constant entry external dcl 6-22 gtss_abs_$get_drm 000000 constant entry external dcl 6-24 gtss_abs_$get_id 000000 constant entry external dcl 6-23 gtss_abs_login_banner_ 000000 constant entry external dcl 6-17 gtss_abs_logout_banner_ 000000 constant entry external dcl 6-18 gtss_adjust_size_ 000000 constant entry external dcl 6-25 gtss_aft_$add 000000 constant entry external dcl 6-26 gtss_aft_$delete 000000 constant entry external dcl 6-27 gtss_aft_$initialize 000000 constant entry external dcl 6-29 gtss_ascii_bcd_ 000000 constant entry external dcl 6-30 gtss_attributes_mgr_$get 000000 constant entry external dcl 6-31 gtss_attributes_mgr_$set 000000 constant entry external dcl 6-32 gtss_bcd_ascii_ 000000 constant entry external dcl 6-33 gtss_bcd_ascii_$lc 000000 constant entry external dcl 6-34 gtss_break_vector_ 000000 constant entry external dcl 6-35 gtss_break_vector_$drl_in_progress 000000 constant entry external dcl 6-36 gtss_break_vector_$status 000000 constant entry external dcl 6-37 gtss_build_ 000000 constant entry external dcl 6-38 gtss_com_err_ 000000 constant entry external dcl 6-39 gtss_derail_processor_ 000000 constant entry external dcl 6-40 gtss_derail_processor_$set 000000 constant entry external dcl 6-41 gtss_dq_$catp 000000 constant entry external dcl 6-42 gtss_dq_$create 000000 constant entry external dcl 6-43 gtss_dq_$dibp 000000 constant entry external dcl 6-44 gtss_dq_$entries_info 000000 constant entry external dcl 6-45 gtss_dq_$hdrp 000000 constant entry external dcl 6-46 gtss_dq_$mod_js 000000 constant entry external dcl 6-47 gtss_dq_$open_exc 000000 constant entry external dcl 6-48 gtss_dq_$open_gen 000000 constant entry external dcl 6-49 gtss_drl_abort_ 000000 constant entry external dcl 6-50 gtss_drl_addmem_ 000000 constant entry external dcl 6-51 gtss_drl_callss_ 000000 constant entry external dcl 6-52 gtss_drl_corfil_ 000000 constant entry external dcl 6-53 gtss_drl_defil_ 000000 constant entry external dcl 6-54 gtss_drl_defil_$subr 000000 constant entry external dcl 6-55 gtss_drl_dio_ 000000 constant entry external dcl 6-56 gtss_drl_drlimt_ 000000 constant entry external dcl 6-57 gtss_drl_drlsav_ 000000 constant entry external dcl 6-58 gtss_drl_filact_ 000000 constant entry external dcl 6-59 gtss_drl_filsp_ 000000 constant entry external dcl 6-60 gtss_drl_grow_ 000000 constant entry external dcl 6-61 gtss_drl_gwake_ 000000 constant entry external dcl 6-62 gtss_drl_jsts_ 000000 constant entry external dcl 6-63 gtss_drl_kin_ 000000 constant entry external dcl 6-64 gtss_drl_kotnow_ 000000 constant entry external dcl 6-65 gtss_drl_kotnow_$gtss_drl_kout_ 000000 constant entry external dcl 6-66 gtss_drl_koutn_ 000000 constant entry external dcl 6-67 gtss_drl_morlnk_ 000000 constant entry external dcl 6-68 gtss_drl_msub_ 000000 constant entry external dcl 6-69 gtss_drl_objtim_ 000000 constant entry external dcl 6-70 gtss_drl_part_ 000000 constant entry external dcl 6-71 gtss_drl_pasaft_ 000000 constant entry external dcl 6-72 gtss_drl_pasdes_ 000000 constant entry external dcl 6-73 gtss_drl_pasust_ 000000 constant entry external dcl 6-74 gtss_drl_pdio_ 000000 constant entry external dcl 6-75 gtss_drl_prgdes_ 000000 constant entry external dcl 6-76 gtss_drl_pseudo_ 000000 constant entry external dcl 6-77 gtss_drl_relmem_ 000000 constant entry external dcl 6-78 gtss_drl_restor_ 000000 constant entry external dcl 6-79 gtss_drl_retfil_ 000000 constant entry external dcl 6-80 gtss_drl_return_ 000000 constant entry external dcl 6-81 gtss_drl_rew_ 000000 constant entry external dcl 6-82 gtss_drl_rstswh_ 000000 constant entry external dcl 6-83 gtss_drl_setlno_ 000000 constant entry external dcl 6-84 gtss_drl_setswh_ 000000 constant entry external dcl 6-85 gtss_drl_snumb_ 000000 constant entry external dcl 6-86 gtss_drl_spawn_ 000000 constant entry external dcl 6-87 gtss_drl_spawn_$gtss_drl_pasflr_ 000000 constant entry external dcl 6-88 gtss_drl_stoppt_ 000000 constant entry external dcl 6-89 gtss_drl_switch_ 000000 constant entry external dcl 6-90 gtss_drl_sysret_ 000000 constant entry external dcl 6-91 gtss_drl_t_cfio_ 000000 constant entry external dcl 6-92 gtss_drl_t_cmov_ 000000 constant entry external dcl 6-93 gtss_drl_t_err_ 000000 constant entry external dcl 6-94 gtss_drl_t_goto_ 000000 constant entry external dcl 6-95 gtss_drl_t_linl_ 000000 constant entry external dcl 6-96 gtss_drl_t_rscc_ 000000 constant entry external dcl 6-97 gtss_drl_tapein_ 000000 constant entry external dcl 6-98 gtss_drl_task_ 000000 constant entry external dcl 6-99 gtss_drl_termtp_ 000000 constant entry external dcl 6-100 gtss_drl_time_ 000000 constant entry external dcl 6-101 gtss_drun_ 000000 constant entry external dcl 6-102 gtss_dsd_lookup_ 000000 constant entry external dcl 6-103 gtss_dsd_process_ 000000 constant entry external dcl 6-104 gtss_edit_dsd_ 000000 constant entry external dcl 6-105 gtss_expand_pathname_ 000000 constant entry external dcl 6-107 gtss_expand_pathname_$verify_umc 000000 constant entry external dcl 6-108 gtss_ext_$CFP_bits external static structure level 1 dcl 2-37 gtss_ext_$SYstarstar_file_no external static fixed bin(24,0) dcl 2-33 gtss_ext_$aem external static fixed bin(17,0) dcl 2-8 gtss_ext_$aft external static structure level 1 dcl 2-78 gtss_ext_$bad_drl_rtrn external static label variable dcl 2-9 gtss_ext_$com_reg external static structure level 1 dcl 2-45 gtss_ext_$db external static bit(1) array unaligned dcl 2-10 gtss_ext_$deferred_catalogs_ptr external static pointer dcl 2-11 gtss_ext_$dispose_of_drl external static label variable dcl 2-12 gtss_ext_$drl_rtrn external static label variable array dcl 2-13 gtss_ext_$drm_path external static char(168) unaligned dcl 2-14 gtss_ext_$drun_jid external static char(5) unaligned dcl 2-15 gtss_ext_$event_channel external static fixed bin(71,0) dcl 2-16 gtss_ext_$fast_lib external static structure level 1 dcl 2-98 gtss_ext_$finished external static label variable dcl 2-17 gtss_ext_$flags external static structure level 1 dcl 2-60 gtss_ext_$gdb_name external static char(8) unaligned dcl 2-18 gtss_ext_$get_line external static entry variable dcl 2-19 gtss_ext_$hcs_work_area_ptr external static pointer dcl 2-21 gtss_ext_$homedir external static char(64) unaligned dcl 2-22 gtss_ext_$last_k_was_out external static bit(1) dcl 2-23 gtss_ext_$mcfc external static structure level 1 dcl 2-109 gtss_ext_$pdir external static varying char(168) dcl 2-24 gtss_ext_$popup_from_pi external static label variable dcl 2-25 gtss_ext_$ppt external static pointer dcl 2-94 gtss_ext_$process_type external static fixed bin(17,0) dcl 2-26 gtss_ext_$put_chars external static entry variable dcl 2-27 gtss_ext_$restart_from_pi external static label variable dcl 2-28 gtss_ext_$restart_seg_ptr external static pointer dcl 2-29 gtss_ext_$sig_ptr external static pointer dcl 2-30 gtss_ext_$statistics external static structure level 1 dcl 2-72 gtss_ext_$suspended_process external static bit(1) unaligned dcl 2-32 gtss_ext_$user_id external static varying char(26) dcl 2-34 gtss_ext_$work_area_ptr external static pointer dcl 2-35 gtss_fail 000000 stack reference condition dcl 361 gtss_fault_processor_ 000000 constant entry external dcl 6-109 gtss_fault_processor_$timer_runout 000000 constant entry external dcl 6-111 gtss_filact_error_status_ 000000 constant entry external dcl 6-112 gtss_filact_funct02_ 000000 constant entry external dcl 6-113 gtss_filact_funct03_ 000000 constant entry external dcl 6-114 gtss_filact_funct04_ 000000 constant entry external dcl 6-115 gtss_filact_funct05_ 000000 constant entry external dcl 6-116 gtss_filact_funct08_ 000000 constant entry external dcl 6-117 gtss_filact_funct10_ 000000 constant entry external dcl 6-118 gtss_filact_funct11_ 000000 constant entry external dcl 6-119 gtss_filact_funct14_ 000000 constant entry external dcl 6-120 gtss_filact_funct18_ 000000 constant entry external dcl 6-121 gtss_filact_funct19_ 000000 constant entry external dcl 6-122 gtss_filact_funct21_ 000000 constant entry external dcl 6-123 gtss_filact_funct22_ 000000 constant entry external dcl 6-124 gtss_find_cond_frame_ 000000 constant entry external dcl 6-110 gtss_interp_prim_ 000000 constant entry external dcl 6-126 gtss_interp_prim_$callss 000000 constant entry external dcl 6-127 gtss_interp_prim_$sysret 000000 constant entry external dcl 6-128 gtss_interp_prim_$t_goto 000000 constant entry external dcl 6-129 gtss_ios_change_size_ 000000 constant entry external dcl 6-130 gtss_ios_close_ 000000 constant entry external dcl 6-131 gtss_ios_exchange_names_ 000000 constant entry external dcl 6-132 gtss_ios_initialize_ 000000 constant entry external dcl 6-133 gtss_ios_open_ 000000 constant entry external dcl 6-135 gtss_ios_position_ 000000 constant entry external dcl 6-136 gtss_mcfc_$close 000000 constant entry external dcl 6-139 gtss_mcfc_$delete 000000 constant entry external dcl 6-137 gtss_mcfc_$open 000000 constant entry external dcl 6-138 gtss_mcfc_empty 000000 constant entry external dcl 6-106 gtss_mcfc_init_ 000000 constant entry external dcl 6-125 gtss_read_starCFP_ 000000 constant entry external dcl 6-140 gtss_read_starCFP_$last_os 000000 constant entry external dcl 6-141 gtss_run_subsystem_ 000000 constant entry external dcl 6-142 gtss_run_subsystem_$finish 000000 constant entry external dcl 6-143 gtss_run_subsystem_$restor 000000 constant entry external dcl 6-144 gtss_run_subsystem_$restor_perm 000000 constant entry external dcl 6-145 gtss_set_slave_ 000000 constant entry external dcl 6-146 gtss_set_slave_$load_bar 000000 constant entry external dcl 6-147 gtss_update_safe_store_ 000000 constant entry external dcl 6-148 gtss_verify_access_ 000000 constant entry external dcl 6-149 gtss_verify_access_$check_forced_access 000000 constant entry external dcl 6-150 gtss_write_starCFP_ 000000 constant entry external dcl 6-151 lbx internal static fixed bin(17,0) initial dcl 3-42 lpx internal static fixed bin(17,0) initial dcl 3-42 sbx internal static fixed bin(17,0) initial dcl 3-42 scux based structure level 1 dcl 3-207 seek_cmd internal static bit(6) initial unaligned dcl 8-6 spx internal static fixed bin(17,0) initial dcl 3-42 NAMES DECLARED BY EXPLICIT CONTEXT. add_element_to_catalog_block 003046 constant entry internal dcl 192 ref 182 buffer_dcw 004057 constant label dcl 10-87 ref 10-82 checksum 003662 constant entry internal dcl 1-3 ref 216 321 324 common 004072 constant label dcl 10-92 ref 10-78 data_dcws 003754 constant label dcl 10-62 ref 10-56 final_transfer 003030 constant label dcl 186 ref 210 found_slot 003332 constant label dcl 262 ref 249 gtss_drl_drlsav_ 001726 constant entry external dcl 15 last_dcw 004017 constant label dcl 10-74 in procedure "write_data" ref 10-66 last_dcw 003522 constant label dcl 313 in procedure "make_data_block" ref 294 locate_catalog_entry 003136 constant entry internal dcl 220 ref 172 make_data_block 003355 constant entry internal dcl 271 ref 184 not_initialized 003146 constant label dcl 227 set ref 242 266 program_too_large 003102 constant label dcl 208 set ref 213 read_buffer 004051 constant entry internal dcl 10-84 ref 239 read_data 003746 constant entry internal dcl 10-58 ret 003044 constant label dcl 188 ref 235 260 10-110 update_available_space_block 003620 constant entry internal dcl 329 ref 183 write_buffer 004042 constant entry internal dcl 10-80 ref 217 325 344 write_data 003737 constant entry internal dcl 10-52 ref 326 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 49 1-17 1-17 1-20 1-20 1-22 10-94 10-94 bit builtin function ref 202 203 281 295 314 317 339 340 10-67 10-75 10-77 10-88 divide builtin function ref 76 132 hbound builtin function ref 247 293 10-65 null builtin function ref 352 357 360 364 10-42 substr builtin function ref 297 unspec builtin function set ref 177 279* 336* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4402 4432 4244 4412 Length 5032 4244 30 364 135 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gtss_drl_drlsav_ 374 external procedure is an external procedure. add_element_to_catalog_block internal procedure shares stack frame of external procedure gtss_drl_drlsav_. locate_catalog_entry internal procedure shares stack frame of external procedure gtss_drl_drlsav_. make_data_block internal procedure shares stack frame of external procedure gtss_drl_drlsav_. update_available_space_block internal procedure shares stack frame of external procedure gtss_drl_drlsav_. checksum internal procedure shares stack frame of external procedure gtss_drl_drlsav_. write_data internal procedure shares stack frame of external procedure gtss_drl_drlsav_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gtss_drl_drlsav_ 000100 arg_list_ptr gtss_drl_drlsav_ 000102 blocks_in_element gtss_drl_drlsav_ 000103 blocks_used_in_file gtss_drl_drlsav_ 000104 catalog_entry gtss_drl_drlsav_ 000105 code gtss_drl_drlsav_ 000106 data_ptr gtss_drl_drlsav_ 000110 fn gtss_drl_drlsav_ 000112 gseg gtss_drl_drlsav_ 000114 initial_block_of_element gtss_drl_drlsav_ 000116 name_list_ptr gtss_drl_drlsav_ 000120 status gtss_drl_drlsav_ 000121 word_count gtss_drl_drlsav_ 000122 mcp gtss_drl_drlsav_ 000124 scup gtss_drl_drlsav_ 000126 buffer_ptr gtss_drl_drlsav_ 000130 element_name gtss_drl_drlsav_ 000131 file_size_in_blocks gtss_drl_drlsav_ 000132 i gtss_drl_drlsav_ 000133 memory_loc gtss_drl_drlsav_ 000134 temp gtss_drl_drlsav_ 000135 words_in_element gtss_drl_drlsav_ 000136 words_remaining gtss_drl_drlsav_ 000176 a checksum 000200 b checksum 000202 i checksum THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. gtss_abort_subsystem_ gtss_aft_$find gtss_ios_io_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gtss_dfd_ext_$disk_file_data gtss_ext_$gtss_slave_area_seg gtss_ext_$stack_level_ gtss_save_restore_data_$IO gtss_ust_ext_$ust LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 15 001722 352 001733 357 001735 360 001736 364 001737 10 42 001740 28 001741 49 001745 50 001747 51 001754 54 001764 55 002001 60 002047 62 002050 66 002054 67 002071 68 002074 74 002147 76 002150 77 002160 79 002165 81 002166 82 002171 89 002243 92 002244 93 002250 100 002320 103 002321 104 002324 111 002376 113 002377 114 002412 120 002461 122 002462 123 002467 129 002536 131 002537 132 002547 133 002552 134 002555 140 002623 144 002624 146 002626 148 002646 154 002714 156 002715 158 002734 164 003002 166 003003 171 003007 172 003012 173 003013 177 003014 178 003017 179 003021 180 003023 182 003025 183 003026 184 003027 186 003030 187 003031 188 003044 189 003045 192 003046 199 003047 202 003055 203 003066 206 003074 207 003100 208 003102 209 003103 210 003106 212 003107 213 003110 216 003112 217 003126 218 003135 220 003136 225 003137 227 003146 228 003147 235 003220 239 003221 242 003230 246 003237 247 003241 248 003247 249 003253 250 003254 253 003256 260 003331 262 003332 263 003333 266 003335 267 003337 268 003341 269 003354 271 003355 279 003356 281 003362 282 003367 283 003372 284 003374 290 003377 291 003403 292 003405 293 003407 294 003415 295 003420 296 003430 297 003434 298 003440 299 003442 300 003444 304 003446 311 003521 313 003522 314 003523 316 003533 317 003535 320 003543 321 003551 324 003563 325 003600 326 003606 327 003617 329 003620 336 003621 339 003625 340 003632 342 003642 344 003651 345 003661 1 3 003662 1 15 003664 1 16 003666 1 17 003675 1 18 003720 1 19 003721 1 20 003723 1 21 003732 1 22 003733 10 52 003737 10 55 003741 10 56 003745 10 58 003746 10 59 003750 10 62 003754 10 63 003755 10 64 003760 10 65 003762 10 66 003767 10 67 003772 10 68 004003 10 69 004007 10 70 004011 10 71 004013 10 72 004015 10 74 004017 10 75 004020 10 76 004031 10 77 004033 10 78 004041 10 80 004042 10 81 004044 10 82 004050 10 84 004051 10 85 004053 10 87 004057 10 88 004060 10 89 004066 10 90 004070 10 92 004072 10 93 004073 10 94 004076 10 101 004124 10 102 004126 10 110 004200 10 112 004201 ----------------------------------------------------------- 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