COMPILATION LISTING OF SEGMENT gcos_mme_more_ Compiled by: Multics PL/I Compiler, Release 28b, of April 11, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 09/09/83 1153.5 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gcos_mme_more_: proc (mcp, increment); 7 8 /* 9* * MME GEMORE is used to obtain an additional tape handler, additional 10* * links (3840 word blocks), more memory, or to allow allocation of 11* * new files. The user must be prepared to accept a denial return 12* * if the request cannot be satisified. 13* * 14* * 15* * CALLING SEQUENCE 16* * 17* * MME GEMORE 18* * ZERO A,B 19* * denial return 20* * success return 21* * 22* * C(Q) 0-17 ptr. to cfdesc (A=4-6) or random indicator (A=2) 23* * C(Q) 18-23 requested permissions (A=4-6) 24* * C(Q) 24-35 file code (A=1-6) 25* * 26* * A = 0 for more memory B = no of 1K blocks wanted 27* * A = 1 for 7 track tape B = tape status 28* * A = 2 for new links or file B = no of links desired 29* * A = 3 for 9 track tape B = tape status 30* * A = 4 for cataloged files B = ptr. to 355 wd. buffer 31* * accessed in created 32* * mode. 33* * A = 5 for cataloged files B = ptr. to 355 wd. buffer 34* * accessed as random. 35* * A = 6 for cataloged files B = ptr. to 355 wd. buffer 36* * accessed as sequential. 37* * 38* * 39* Author: DICK SNYDER JUNE 8, 1971 40* Change: T. CASEY OCTOBER 1973 41* Change: D. KAYDEN APRIL 1974, JULY 1974, JANUARY 1975 42* Change: M. R. Jordan, January 1977 43* Change: Dave Ward 07/28/81 A=7 case (By Dick Hemes) 44**/ 45 46 /* 47* Initialize all needed values and verify the action code (A) 48* to ensure that this is a good call. 49**/ 50 gseg_ptr = gcos_ext_stat_$gcos_slave_area_seg; 51 increment = 2; 52 storage_limit = gcos_ext_stat_$storage_limit; 53 scup = addr (mc.scu); 54 55 if fixed (scu.ilc, 18)+1 >= storage_limit then 56 call gcos_mme_bort_$system (gcos_et_$bad_mme_param, "MME GEMORE parameter word is outside slave limits."); 57 param_ptr = addrel (gseg_ptr, fixed (scu.ilc, 18)+1); 58 A = param.a; 59 B = param.b; 60 61 if A > 7 then do; 62 ecode = gcos_et_$bad_more_param; 63 abort: call gcos_mme_bort_$system (ecode); 64 end; 65 66 /* 67* Now that we are sure this is a somewhat valid request (i.e. 0<=A<=7), 68* let's see if its for memory. If so, then process the request. 69* 70* At this point: 71* 72* A =0 73* B number of 1K (1024 word) blocks of memory requested (max is 64K) 74**/ 75 if A = 0 then do; 76 77 if B = 0 then return ; 78 if B > 64 then goto failure ; 79 80 if gcos_ext_stat_$storage_limit+B*1024 > gcos_ext_stat_$max_mem then go to failure; 81 82 gcos_ext_stat_$storage_limit = gcos_ext_stat_$storage_limit+B*1024; 83 call gcos_set_slave_$load_bar (divide (gcos_ext_stat_$storage_limit, 512, 17, 0)); 84 call hcs_$set_max_length (string (gcos_ext_stat_$pdir), "gcos_slave_area_seg", gcos_ext_stat_$storage_limit, code); 85 if code ^= 0 then call gcos_error_ (code); 86 87 return; 88 end; 89 90 /* 91* This request is for some file (i.e. not memory). Lets get the file code 92* and see if the file exists already. When we know this we can decide what 93* to do to process the request. 94**/ 95 if substr (mc.regs.q, 25, 12) = (12)"0"b then do ; 96 ecode = gcos_et_$zero_fc_to_more; 97 goto abort; 98 end ; 99 100 if A = 7 then goto failure; /* => file catenation. Treat as EOF. */ 101 102 substr (fc, 1, 1) = xlate (fixed (substr (mc.regs.q, 25, 6), 6)); 103 substr (fc, 2, 1) = xlate (fixed (substr (mc.regs.q, 31, 6), 6)); 104 105 do fct_index = 1 to hbound (save_data.fibs, 1); 106 if fct.filecode (fct_index) = fc then go to hit; 107 end; 108 109 goto action (A); 110 111 /* 112* Process a request for accessing an existing permanent file. 113* 114* At this point: 115* 116* A =4 - access the file in whichever mode it was created 117* A =5 - access the file as a random file 118* A =6 - access the file as a sequentail file 119* B location of a 355 word buffer for FMS 120* C(Q) 0-17 location of catalog/filename block 121* C(Q) 18-23 requested permisssions 122* C(Q) 24-35 file code (guaranteed unused at this point) 123**/ 124 action (4): 125 action (5): 126 action (6): 127 128 /* 129* ?? 130**/ 131 cfdesc_loc = fixed (substr (mc.regs.q, 1, 18), 18); 132 if cfdesc_loc >= storage_limit then 133 call gcos_mme_bort_$system (gcos_et_$bad_mme_param, "Catalog/filename description is outside slave limits."); 134 do word_index = cfdesc_loc+4 to min (cfdesc_loc+38, storage_limit-1) by 4; 135 if addrel (gseg_ptr, word_index) -> bit36 = (36)"1"b then goto fence_hit; 136 end; 137 call gcos_mme_bort_$system (gcos_et_$bad_mme_param, "Catalog/filename description fence not found."); 138 139 fence_hit: ; 140 if B < 64 | B +354 >= storage_limit then 141 call gcos_mme_bort_$system (gcos_et_$bad_mme_param, "FMS buffer location < 64 or outside slave limits."); 142 143 /* 144* ?? 145**/ 146 call gcos_build_pathname_ (addrel (gseg_ptr, cfdesc_loc), addrel (gseg_ptr, B), dir_name, entry_name, st); 147 if substr (st, 2, 11) ^= (11)"0"b then do; 148 149 fms_failure: ; 150 mc.regs.q = substr (st, 1, 36); 151 goto failure; 152 end; 153 call gcos_verify_access_ (dir_name, entry_name, substr (mc.regs.q, 19, 6), addrel (gseg_ptr, B), st); 154 if substr (st, 2, 11) ^= (11)"0"b then goto fms_failure; 155 156 /* 157* Open the file with no LUD and fill in the appropriate fib entries. 158**/ 159 call gcos_open_file_ (fc, "", fibptr, ""b) ; 160 if rtrim (dir_name) = ">" then fib.pathnm = ">" || entry_name; 161 else fib.pathnm = rtrim (dir_name) || ">" || entry_name; 162 fib.read = substr (mcp -> mc.regs.q, 19, 1); 163 fib.write = substr (mcp -> mc.regs.q, 20, 1); 164 fib.perm = "1"b; 165 if A = 5 then fib.type = "1"b ; 166 167 goto attach; 168 169 /* 170* Process a request for an additional tape drive. 171* 172* At this point: 173* 174* A =1 for 7 track; =3 for 9 track 175* B if non-zero then a tape must be mounted (=0 use any scratch) 176* C(Q) 0-17 location of reel # word (only if non-zero) 177* C(Q) 20-23 density specification (see fib declaration for possible values) 178* C(Q) 24-35 file code (guaranteed unused at this point) 179**/ 180 action (1): 181 action (3): 182 183 /* 184* Open the file with no LUD. 185**/ 186 187 /* should make sure a handler is available first */ 188 call gcos_open_file_ (fc, "", fibptr, "0"b) ; 189 190 /* 191* Now that we have a drive, set up the fib. 192**/ 193 fib.tape = "1"b; 194 195 if A = 1 then fib.tracks = "01"b; 196 else fib.tracks = "10"b; 197 198 reel_no_loc = fixed (substr (mc.regs.q, 1, 18), 18); 199 B = fixed (substr (addr (B) -> bit36, 36, 1), 1); 200 if B ^= 0 & reel_no_loc ^= 0 then 201 fib.serial_no = addrel (gseg_ptr, reel_no_loc) -> bit30; 202 else fib.serial_no = (5)"001001"b; 203 204 fib.tape_name = (12)"010000"b; 205 206 fib.density = substr (mc.regs.q, 21, 4); 207 if fib.density = "0111"b then fib.density = "0000"b; 208 209 goto attach ; 210 211 /* 212* Process a request for a _n_e_w temporary mass storage file. 213* Set access for both read and write and get the size from the 214* mme calling sequence. 215* 216* 217* At this point: 218* 219* A =2 220* B size of requested file in links (if 0 then request is for a null file) 221* C(Q) 17 random file indicator (actually if C(Q)0-17 ^= 0 then random) 222* C(Q) 24-35 file code (guaranteed unused at this point) 223**/ 224 action (2): 225 226 /* 227* Open the file with no LUD and fill in the fib. 228**/ 229 call gcos_open_file_ (fc, "", fibptr, "0"b) ; 230 fib.read, fib.write = "1"b; 231 fib.type = (substr (mc.regs.q, 1, 18) ^= (18)"0"b); 232 fib.size = B*3840; 233 if fib.size = 0 then fib.null = "1"b ; 234 235 /* 236* We now have the file ready and the fib filled in so lets attach it. 237**/ 238 attach: ; 239 call gcos_attach_file_ (fibptr); 240 return; 241 242 /* 243* At this point we have failed to satisfy the users _v_a_l_i_d request. 244* We will now return to the denial return point. 245**/ 246 failure: ; 247 increment = 1 ; 248 return ; 249 250 /* 251* Process a request for more space on an _e_x_i_s_t_i_n_g mass storage file. 252* Make sure that this is a request for a mass storage file. 253* If it is, then get the specified number of links. If the 254* number specified is 0 and the file is a permanent file 255* then we will choose the growth rate. 256* 257* 258* At this point: 259* 260* A any value 1-6 (only 2 is valid) 261* B # of links to be added (if 0 & file is permanent then use 1 llink) 262* C(Q) 24-35 file code (guaranteed to be in use at this point) 263**/ 264 265 hit: ; 266 267 /* 268* If this is not a mass storage request (A=2) then complain. 269**/ 270 271 if A ^= 2 then do ; 272 ecode = gcos_et_$duplicate_file_more; 273 goto abort ; 274 end; 275 276 /* 277* We cannot grow a SYSOUT file. 278**/ 279 280 if fct.sysout (fct_index) then do; 281 ecode = gcos_et_$duplicate_file_more; 282 goto abort; 283 end ; 284 285 /* 286* Nor can we grow files assigned to printer, tape or the operators console. 287**/ 288 289 fibptr = fct.fibptr (fct_index); 290 if fib.print | fib.console | fib.tape then do; 291 ecode = gcos_et_$not_mass_store_more; 292 go to abort; 293 end; 294 295 /* 296* A growth request for a null file is always successful. 297**/ 298 299 if fib.null then return ; 300 301 /* 302* Calculate the new file size. 303**/ 304 305 num_words = B*3840; 306 if num_words = 0 then if fib.perm then num_words = 320; 307 fib.size = fib.size+num_words; 308 309 return; 310 311 /* Variables for gcos_mme_more_: */ 312 /* IDENTIFIER ATTRIBUTES */ 313 dcl A fixed bin(18) /* A field from MME sequence */; 314 dcl addr builtin; 315 dcl addrel builtin; 316 dcl B fixed bin(18) /* B field from MME sequence */; 317 dcl bit30 bit(30)based; 318 dcl bit36 bit(36) aligned based /* General purpose bit string. */; 319 dcl cfdesc_loc fixed bin(18); 320 dcl code fixed bin(35) based (addr (st)); 321 dcl dir_name char(168) /* the directory name for a prmfl request */; 322 dcl divide builtin; 323 dcl ecode fixed bin(35); 324 dcl entry_name char(32) /* the entry name for a prmfl request */; 325 dcl fc char(2) /* the file code if this is a file request */; 326 dcl fct_index fixed bin(24) /* index used in searching the file code table */; 327 dcl fixed builtin; 328 dcl gcos_attach_file_ entry (ptr); 329 dcl gcos_build_pathname_ entry (ptr, ptr, char(*), char(*), bit(72) aligned); 330 dcl gcos_error_ entry options (variable); 331 dcl gcos_et_$bad_mme_param fixed bin(35) ext; 332 dcl gcos_et_$bad_more_param fixed bin(35) ext; 333 dcl gcos_et_$duplicate_file_more fixed bin(35) ext; 334 dcl gcos_et_$not_mass_store_more fixed bin(35) ext; 335 dcl gcos_et_$zero_fc_to_more fixed bin(35) ext; 336 dcl gcos_mme_bort_$system entry options (variable); 337 dcl gcos_open_file_ entry (char(*), char(*), ptr, bit(1)); 338 dcl gcos_set_slave_$load_bar entry (fixed bin(17)); 339 dcl gcos_verify_access_ entry (char(*), char(*), bit(6), ptr, bit(72) aligned); 340 dcl gseg_ptr ptr; 341 dcl hcs_$set_max_length entry (char(*), char(*), fixed bin(19), fixed bin(35)); 342 dcl increment fixed bin(18) /* IC increment for return to slave activity */; 343 dcl index builtin; 344 dcl num_words fixed bin(35); 345 dcl param_ptr ptr /* ptr to word after MME (for A B fields) */; 346 dcl reel_no_loc fixed bin(18) /* location of the reel # word in the gcos_slave_area_seg */; 347 dcl rtrim builtin; 348 dcl st bit(72) aligned /* status return string */; 349 dcl storage_limit fixed bin(18); 350 dcl string builtin; 351 dcl substr builtin; 352 dcl word_index fixed bin(18); 353 354 dcl 1 param aligned based (param_ptr), /* structure for accessing the A B fields */ 355 2 a fixed bin(18)unsigned unal, 356 2 b fixed bin(18)unsigned unal; 357 1 1 /* BEGIN INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 1 2 /* 1 3* Changes to gcos_ext_stat_ must be made here AND gcos_ext_stat_.cds 1 4**/ 1 5 /* July 77 (MRJ) Mike Jordan. */ 1 6 /* Change: Mel Wilson Oct 1979 for gtss compatibility (Bell Canada). */ 1 7 /* Change: A. N. Kepner, March, 1978 to allow courtesy call i/o within cc routines. */ 1 8 /* Change: Dave Ward 06/01/81 Reorganized to eliminate alm object (using cds). Use of like structures. */ 1 9 /* Change: Scott C. Akers 01/26/82 Add tape_buffer_size for GEINOS processing. */ 1 10 /* Change: Ron Barstad 83-08-02 Added activity_card_num for execution report */ 1 11 /* Increased size of statistics for 4js3 MMEs */ 1 12 1 13 dcl gcos_ext_stat_$abort_reason char(128) varying /* abort reason from gcos pgm */ ext; 1 14 dcl gcos_ext_stat_$abort_return label /* abort return point */ ext; 1 15 dcl gcos_ext_stat_$activity_card_num pic "9999" ext; /* card number defining current activity */ 1 16 dcl gcos_ext_stat_$activity_name char(8) /* name of activity to be run */ ext; 1 17 dcl gcos_ext_stat_$activity_start_time fixed bin(71) /* TOD start of activity */ ext; 1 18 dcl gcos_ext_stat_$card_num pic "9999" /* ordinal number of card in input stream */ ext; 1 19 dcl gcos_ext_stat_$dbs (36)bit(1) /* Debugging switch. */ ext; 1 20 dcl gcos_ext_stat_$default_nondollar char(2) /* filecode where nondollar cards go by default */ ext; 1 21 dcl gcos_ext_stat_$dir_rings (3) fixed bin(3) /* ring brackets for created catalogs */ ext; 1 22 dcl gcos_ext_stat_$dpno char(100) varying /* arguments for call to dpunch */ ext; 1 23 dcl gcos_ext_stat_$dpo char(100) varying /* arguments for call to dprint */ ext; 1 24 dcl gcos_ext_stat_$endfc char(2) /* endfc value for endcopy processing */ ext; 1 25 dcl gcos_ext_stat_$er ptr /* fib pointer for *er */ ext; 1 26 dcl gcos_ext_stat_$etc_filecode char(2) /* filecode where $ ETC cards should be written */ ext; 1 27 dcl gcos_ext_stat_$gcos_slave_area_seg ptr /* pointer to gcos slave area segment */ ext; 1 28 dcl gcos_ext_stat_$gf fixed bin(24)/* sw used by getfield rtn */ ext; 1 29 dcl gcos_ext_stat_$incode fixed bin(24) /* switches to control incode processing */ ext; 1 30 dcl gcos_ext_stat_$increment_hold fixed bin(24) /* Holds increment for courtesy call returns. */ ext; 1 31 dcl gcos_ext_stat_$initial_cpu_time fixed bin(71) /* vcu time at activity start */ ext; 1 32 dcl gcos_ext_stat_$input_segment_path char(168) varying /* pathname of input segment */ ext; 1 33 dcl gcos_ext_stat_$jcl_warnings fixed bin(24) /* number warnings issued processing control cards */ ext; 1 34 dcl gcos_ext_stat_$job_cpu_time fixed bin(71) /* cpu usage at job start */ ext; 1 35 dcl gcos_ext_stat_$job_id char(18) varying /* unique job id for file naming */ ext; 1 36 dcl gcos_ext_stat_$job_real_time fixed bin(71) /* job start time in microseconds */ ext; 1 37 dcl gcos_ext_stat_$last_mme fixed bin(24)/* number of last mme executed */ ext; 1 38 dcl gcos_ext_stat_$ldrss fixed bin(24) /* loader shared stg. */ ext; 1 39 dcl gcos_ext_stat_$max_activities fixed bin(24)/* max activities in a job */ ext; 1 40 dcl gcos_ext_stat_$max_mem fixed bin(19) /* maximum memory available to an activity */ ext; 1 41 dcl gcos_ext_stat_$mme_rtrn label /* where to return at activity end */ ext; 1 42 dcl gcos_ext_stat_$nondollar char(2) /* non-dollar card file code */ ext; 1 43 dcl gcos_ext_stat_$nongcos char(2) /* filecode where nongcos dollar cards go */ ext; 1 44 dcl gcos_ext_stat_$normal_return label /* nonlocal goto for normal termination */ ext; 1 45 dcl gcos_ext_stat_$patchfile_ptr ptr /* pointer to patchfile */ ext; 1 46 dcl gcos_ext_stat_$pathname_prefix char(168)var ext; 1 47 dcl gcos_ext_stat_$pch ptr /* pointer to fib for syspunch collector file */ ext; 1 48 dcl gcos_ext_stat_$pdir char(168) varying /* pathname of process directory */ ext; 1 49 dcl gcos_ext_stat_$prt ptr /* pointer to fib for sysprint collector file */ ext; 1 50 dcl gcos_ext_stat_$rs ptr /* pointer to fib for geload r* collector file */ ext; 1 51 dcl gcos_ext_stat_$saveseg_ptr ptr /* pointer to save segment used by save/restart */ ext; 1 52 dcl gcos_ext_stat_$save_dir char(168) varying /* pathname of temp save directory */ ext; 1 53 dcl gcos_ext_stat_$seg_rings (3) fixed bin(3) /* ring brackets for created files */ ext; 1 54 dcl gcos_ext_stat_$sig_ptr ptr /* saved pointer to signal_ */ ext; 1 55 dcl gcos_ext_stat_$skip_umc bit(1) ext; 1 56 dcl gcos_ext_stat_$snumb bit (30) aligned /* snumb of the current job */ ext; 1 57 dcl gcos_ext_stat_$sought_label char(8) /* Label from GOTO, IF, or WHEN card */ ext; 1 58 dcl gcos_ext_stat_$statistics (3*44) fixed bin(24) /* mme usage statistics- 3 per mme */ ext; 1 59 dcl gcos_ext_stat_$stop_code fixed bin(24) /* debugging, print results and stop. */ ext; 1 60 dcl gcos_ext_stat_$storage_limit fixed bin(19) /* activity storage limit */ ext; 1 61 dcl gcos_ext_stat_$sysout_limit fixed bin(35) /* sysout line limit */ ext; 1 62 dcl gcos_ext_stat_$sysout_lines fixed bin(35) /* sysout lines used */ ext; 1 63 dcl gcos_ext_stat_$system_free_pointer ptr /* pointer to area for allocating in ext; set by gcos */ ext; 1 64 dcl gcos_ext_stat_$tape_buffer_size fixed bin(35) external static; /* tape buffer size for GEINOS. */ 1 65 dcl gcos_ext_stat_$temp_dir char(168) varying /* pathname of directory to hold temp files */ ext; 1 66 dcl gcos_ext_stat_$temp_seg_ptr ptr ext; 1 67 dcl gcos_ext_stat_$termination_code bit (18) /* termination code from gcos_mme_bort_ */ ext; 1 68 dcl gcos_ext_stat_$time_limit fixed bin(71) /* activity time limit */ ext; 1 69 dcl gcos_ext_stat_$userid char(12) /* the USERID */ ext; 1 70 dcl gcos_ext_stat_$validation_level fixed bin(3) /* current ring of execution */ ext; 1 71 1 72 /* Courtesy Call Queue 1 73* A queue for courtesy call addresses which must be saved during 1 74* execution of courtesy call routines. A courtesy call address is 1 75* saved each time a MME GEROUT or MME GEINOS, which specifies a 1 76* courtesy call, is executed within a courtesy call routine. Each 1 77* time a MME GEENDC is executed a courtesy call address will be 1 78* removed from this FIFO queue and the corresponding courtesy call 1 79* routine executed until the queue is empty. The FIFO "queue" is 1 80* implemented in a circular fashion. "next_avail" points to the 1 81* next empty location in the queue. "next_out" points to the 1 82* entry in the queue which has been in the queue longest. When 1 83* entering or removing entries from the queue the appropriate index 1 84* is incremented modulo the length of the queue. By convention the 1 85* queue is empty when "next_avail" equals "next_out". A 1 86* second convention is that the queue is considered to overflow 1 87* during an attempt to add an entry to the queue which would force 1 88* "next_avail" to "catch up" with "next_out". This means that 1 89* the last empty position in the queue will never be used. 1 90**/ 1 91 1 92 dcl 1 gcos_ext_stat_$courtesy_call_control aligned ext 1 93 , 3 courtesy_call 1 94 , 4 hold like save_machine_conditions /* Mach. conds. restored on courtesy call returns. */ 1 95 , 4 next_avail fixed bin(24) /* next available empty location in cc_queue. */ 1 96 , 4 next_out fixed bin(24) /* next entry to remove from cc_queue. */ 1 97 , 4 queue (6) fixed bin(24) 1 98 ; 1 99 2 1 /* BEGIN INCLUDE FILE gcos_save_mc.incl.pl1 (Wardd Multics) 09/12/81 0905.9 mst Sat */ 2 2 2 3 /* Structure to isolate the definition of the size of the 2 4*space needed to store he machine conditions structure (mc). 2 5**/ 2 6 dcl 1 save_machine_conditions based 2 7 , 3 save_space bit(1728) 2 8 ; 2 9 2 10 /* END INCLUDE FILE gcos_save_mc.incl.pl1 */ 1 100 1 101 1 102 dcl 1 gcos_ext_stat_$fct aligned ext, 1 103 3 fct (40) like fct_entry; 3 1 /* BEGIN INCLUDE FILE gcos_fct_entry.incl.pl1 (Wardd Multics) 05/30/81 1758.6 mst Sat */ 3 2 3 3 dcl 1 fct_entry aligned based, 3 4 2 filecode char(2) aligned, /* file code (or blank) */ 3 5 /* flags */ 3 6 2 sysout bit(1) unaligned, /* 1=file is sysout or dac */ 3 7 2 dac bit(1) unaligned, /* 1=file is dac,0=file is sysout */ 3 8 2 pad bit(34) unaligned, /* unused */ 3 9 2 fibptr ptr aligned /* ptr to fib for this file */ 3 10 ; 3 11 3 12 /* END INCLUDE FILE gcos_fct_entry.incl.pl1 */ 1 104 1 105 1 106 dcl 1 gcos_ext_stat_$save_data aligned ext, 1 107 3 save_data like save_data_entry; 4 1 /* BEGIN INCLUDE FILE gcos_save_data_entry.incl.pl1 (Wardd Multics) 07/01/81 1339.9 mst Wed */ 4 2 /* Change: Dave Ward 07/01/81 include gcos_flags_. */ 4 3 /* Change: Dave Ward 09/10/81 fib changed to fibs & likened to fib. */ 4 4 4 5 dcl 1 save_data_entry aligned based 4 6 ,3 flgs like flags /* system wide flgs */ 4 7 ,3 actid char(8) /* activity no. and accnt i.d. */ 4 8 ,3 short_actid bit(36) aligned /* short form of activity id */ 4 9 ,3 ident char(60) /* holds ident info from snumb card */ 4 10 ,3 psw bit(36) aligned /* program switch word */ 4 11 ,3 last_execute_act_no fixed bin(24)/* activity number of last $ EXECUTE card in job */ 4 12 ,3 activity_no fixed bin(24)/* activity number */ 4 13 ,3 job_time_limit fixed bin(71) /* job time limit */ 4 14 ,3 job_sysout_limit fixed bin(24)/* job sysout line limit */ 4 15 ,3 sysout_queue (10) char(32) /* sysout queue */ 4 16 ,3 sysout_queue_media (10) fixed bin(24)/* medium (print,punch) of each file on queue */ 4 17 ,3 sqindex fixed bin(24)/* curr offset in sysout queue */ 4 18 ,3 pathname_prefix char(168)varying /* prefix for gcos cfdescs */ 4 19 ,3 skip_umc aligned bit(1) /* flag to tell if we should skip umc names */ 4 20 ,3 job_deck pointer /* pointer to seg holding canonicalized job deck */ 4 21 ,3 jd_size fixed bin(24)/* size in words of job deck */ 4 22 ,3 jd_position fixed bin(24) /* position of current block of job deck */ 4 23 ,3 jd_rem_block_len fixed bin(24)/* words remaining in current block of job deck */ 4 24 ,3 syot_dir char(168)varying /* pathname of directory to hold sysout files */ 4 25 ,3 fibs (40) like fib 4 26 ,3 param (32) char(57)varying /* parameters */ 4 27 ; 4 28 5 1 /* BEGIN INCLUDE FILE gcos_flags.incl.pl1 (Wardd Multics) 07/01/81 1344.7 mst Wed */ 5 2 /* Change: Mel Wilson 03/01/79 to add gtssflag & identflag */ 5 3 /* Change: Dave Ward 07/01/81 revised, mad apart of gcos_ext_stat_. */ 5 4 5 5 5 6 /* Declaration of Simulator Wide Flags */ 5 7 5 8 dcl 1 flags aligned based, 5 9 2 ( 5 10 pad1, /* no longer used */ 5 11 copy, /* 1=copy option on|0=off */ 5 12 snumb, /* 1=snumb card read|0=not */ 5 13 ident, /* 1=ident card read|0=not */ 5 14 activ, /* 1=activity being defined|0=not */ 5 15 cc, /* 1=courtesy call active|0=not */ 5 16 pad2, /* no longer used */ 5 17 cksum, /* 1=don't check checksums|0=do */ 5 18 pad3, /* no longer used */ 5 19 wrapup, /* 1=processing wrapup after abort */ 5 20 5 21 /* FOLLOWING ADDED AFTER MARCH 73 */ 5 22 5 23 nosave, /* 1=disable save/restart function,0=not */ 5 24 pad4, /* no longer used */ 5 25 gcos, /* 1=job deck segment in gcos file format */ 5 26 raw, /* 1=sysout punch files to be converted to raw bit strings */ 5 27 list, /* 1=sysout print files to be converted to ascii */ 5 28 brief, /* 1=print nothing but fatal error messages on terminal */ 5 29 debug, /* 1=give option to call debug before aborting */ 5 30 no_canonicalize, /* 1=do NOT canonicalize job deck */ 5 31 5 32 /* 18 bits into first word */ 5 33 5 34 pad5, /* no longer used */ 5 35 dpunch, /* 1=dpunch sysout punch files;0=don't */ 5 36 dprint, /* 1=dprint sysout print files,0=don't */ 5 37 userid, /* 1=userid card read,0=not */ 5 38 userlib, /* 1= -userlib ctl arg given, see gcos_gein_ */ 5 39 dstar, /* 1=current activity card written on d* */ 5 40 write_etc, /* 1 tells get_cc_field to write $ ETC cards on etc_filecode */ 5 41 prev_act_abort, /* turned on by abort and off by $ BREAK */ 5 42 this_act_abort, /* turned on by abort to select abort disp codes */ 5 43 abort_subact, /* 1=processing abort subactivity */ 5 44 dump, /* 1=dump option given on activity card */ 5 45 nondollar, /* 1=reading nondollar card deck in gein */ 5 46 endjob, /* 1=cc_endjob already called once in this job */ 5 47 abort_card, /* 1=the terminator for this activity was a $ ABORT card */ 5 48 truncate, /* 1=truncate option given:truncate long ascii input lines */ 5 49 continue, /* 1=continue option given:continue after nonfatal errors */ 5 50 rout, /* 1=gcos_mme_rout_ was called in this activity */ 5 51 seeking, /* 1=gein is looking for a label and/or terminator */ 5 52 5 53 /* end of first word */ 5 54 5 55 seeking_terminator, /* 1=gein is looking for a terminator */ 5 56 lower_case, /* 1=lower case print conversion wanted */ 5 57 no_bar, /* 1=do not run slave program in BAR mode */ 5 58 long, /* 1=print some lines from execution reort on terminal */ 5 59 endfc, /* 1=process endfc option on endcopy card */ 5 60 gtssflag, /* 1=update gtss_user_state_ during execution */ 5 61 identflag, /* 1= use $ident banner info for print & punch */ 5 62 spawnflag, /* 1= entry due to tss spawn */ 5 63 taskflag /* 1= entry due to tss drl task */ 5 64 ) bit(1) unal, 5 65 2 pad6 bit(27)unal 5 66 ; 5 67 5 68 /* END INCLUDE FILE gcos_flags.incl.pl1 */ 4 29 4 30 4 31 /* END INCLUDE FILE gcos_save_data_entry.incl.pl1 */ 1 108 1 109 6 1 /* BEGIN INCLUDE FILE gcos_file_info_block_.incl.pl1 DAK - APRIL 74 */ 6 2 6 3 /* Declaration of File Information Block (fib) 6 4* 6 5* Change: Mel Wilson 11/01/79 for gtss compatibility 6 6* Change: Dave Ward 05/20/81 *_file constants. 6 7* Change: Dave Ward 05/29/81 separated fct structures. 6 8* Change: Dave Ward 09/02/81 provision for tape density 6250, dens_hist 2 bits (not 3). 6 9**/ 6 10 dcl 1 fib aligned based (fibptr) /* fib structure */ 6 11 6 12 , 2 buffer ptr aligned /* pointer to current buffer (gcos_write_) */ 6 13 , 2 buffer_indx fixed bin /* Index to buffer in use. */ 6 14 , 2 stream char(8)unal /* stream name for attaching this file */ 6 15 , 2 pathnm char(168)unal /* pathname (for disk, print or punch files) */ 6 16 , 2 unique_file_id bit(36) /* multics unique segment id for file */ 6 17 , 2 indicators /* five words of flags */ 6 18 6 19 , 3 indicators_word_1 6 20 , 4 used bit(1) unal /* 1=fib used, 0=fib used */ 6 21 , 4 attached bit(1) unal /* 1=stream is attached */ 6 22 , 4 type bit(1) unal /* 1=random, 0=linked */ 6 23 , 4 perm bit(1) unal /* 1=permanent file, 0=not */ 6 24 , 4 print bit(1) unal /* 1=file type is printer */ 6 25 , 4 punch bit(1) unal /* 1=file type is punch */ 6 26 , 4 reader bit(1) unal /* 1=file type is card reader */ 6 27 , 4 tape bit(1) unal /* 1=file type is tape */ 6 28 , 4 console bit(1) unal /* 1=file type is console typewriter */ 6 29 , 4 read bit(1) unal /* 1=read access permitted */ 6 30 , 4 write bit(1) unal /* 1=write access permitted */ 6 31 , 4 null bit(1) unal /* 1=file is null */ 6 32 , 4 purge bit(1) unal /* 1=purge file at time on release */ 6 33 , 4 gein bit(1) unal /* 1 = this file contains data cards from the job deck */ 6 34 , 4 disp bit(2) unal /* disposition code: 6 35* 00 = dismount 6 36* 01 = release 6 37* 10 = save 6 38* 11 = continue */ 6 39 , 4 adisp bit(2) unal /* abort disp - same codes as disp */ 6 40 , 4 order bit(1) unal /* 1 = write, 0 = read or other */ 6 41 , 4 mode bit(2) unal /* tape i/o mode 6 42* 00 = binary 6 43* 01 = decimal 6 44* 10 = nine */ 6 45 , 4 tracks bit(2) unal /* tape request code: 6 46* 00 = installation default 6 47* 01 = 7 track 6 48* 10 = 9 track */ 6 49 , 4 density bit(4) unal /* tape density from $ TAPE card 6 50* 0000 = site standard high 6 51* 0001 = 200 bpi 6 52* 0010 = 556 bpi 6 53* 0100 = 800 bpi 6 54* 1001 = 1600 bpi 6 55* 1100 = 6250 bpi 6 56* 1111 = handler capable of any appropriate denisty */ 6 57 , 4 dens_hist bit(2) unal /* density history for MME GEFADD */ 6 58 , 4 forced_acl_flag bit(1) unal /* 1 => acl forced for gtss file (2.4) */ 6 59 , 4 fill bit(6) unal /* reserved for future use */ 6 60 , 3 indicators_word_2 6 61 , 4 plud bit(18) unal /* primary log unit designator */ 6 62 /* bcd channel and channel number */ 6 63 6 64 , 4 slud bit(18) unal /* secondary log. unit designator */ 6 65 /* bcd channel and channel number */ 6 66 , 3 indicators_word_3 6 67 , 4 serial_no bit(30) unal /* tape serial number */ 6 68 , 4 pad bit( 6) unal /* unused */ 6 69 , 3 indicators_word_4 6 70 , 4 tape_name bit(72) unal /* tape name */ 6 71 6 72 , 2 current fixed bin(21) /* current file position */ 6 73 , 2 last fixed bin(21) /* eof for sequential disk files */ 6 74 , 2 size fixed bin(24) /* offset of end of file in words */ 6 75 , 2 init_size fixed bin(24) /* file size at start of activity */ 6 76 , 2 init_posit fixed bin(24) /* file position at start of activity */ 6 77 , 2 iocount fixed bin(35) /* total no. of i/o operations */ 6 78 , 2 rec_len fixed bin(24) /* length of current record (gcos_write_) */ 6 79 , 2 command_count fixed bin(17) unal /* size of command table for device (gcos_mme_inos_) */ 6 80 , 2 command_index fixed bin(17) unal /* pointer to command table entry (gcos_mme_inos_) */ 6 81 , 2 error_retry fixed bin(17) unal /* error retry counter */ 6 82 , 2 seq_no fixed bin(17) unal /* tape reel sequence no */ 6 83 ; 6 84 dcl fibptr ptr /* pointer to current fib in gcos_ext_stat_ */; 6 85 6 86 /* File usage classification constants: */ 6 87 dcl linked_file bit(1)static int options(constant)init("0"b); 6 88 dcl random_file bit(1)static int options(constant)init("1"b); 6 89 dcl read_file bit(1)static int options(constant)init("0"b); 6 90 dcl write_file bit(1)static int options(constant)init("1"b); 6 91 6 92 /* END INCLUDE FILE gcos_file_info_block_.incl.pl1 */ 1 110 1 111 1 112 dcl 1 gcos_ext_stat_$mc like mc /* machine condition from abort or fault */ ext; 7 1 /* */ 7 2 /* BEGIN INCLUDE FILE mc.incl.pl1 Created Dec 72 for 6180 - WSS. */ 7 3 /* Modified 06/07/76 by Greenberg for mc.resignal */ 7 4 /* Modified 07/07/76 by Morris for fault register data */ 7 5 /* Modified 08/28/80 by J. A. Bush for the DPS8/70M CVPU */ 7 6 /* Modified '82 to make values constant */ 7 7 7 8 /* words 0-15 pointer registers */ 7 9 7 10 dcl mcp ptr; 7 11 7 12 dcl 1 mc based (mcp) aligned, 7 13 2 prs (0:7) ptr, /* POINTER REGISTERS */ 7 14 (2 regs, /* registers */ 7 15 3 x (0:7) bit (18), /* index registers */ 7 16 3 a bit (36), /* accumulator */ 7 17 3 q bit (36), /* q-register */ 7 18 3 e bit (8), /* exponent */ 7 19 3 pad1 bit (28), 7 20 3 t bit (27), /* timer register */ 7 21 3 pad2 bit (6), 7 22 3 ralr bit (3), /* ring alarm register */ 7 23 7 24 2 scu (0:7) bit (36), 7 25 7 26 2 mask bit (72), /* mem controller mask at time of fault */ 7 27 2 ips_temp bit (36), /* Temporary storage for IPS info */ 7 28 2 errcode fixed bin (35), /* fault handler's error code */ 7 29 2 fim_temp, 7 30 3 unique_index bit (18) unal, /* unique index for restarting faults */ 7 31 3 resignal bit (1) unal, /* recompute signal name with fcode below */ 7 32 3 fcode bit (17) unal, /* fault code used as index to FIM table and SCT */ 7 33 2 fault_reg bit (36), /* fault register */ 7 34 2 pad2 bit (1), 7 35 2 cpu_type fixed bin (2) unsigned, /* L68 = 0, DPS8/70M = 1 */ 7 36 2 ext_fault_reg bit (15), /* extended fault reg for DPS8/70M CPU */ 7 37 2 fault_time bit (54), /* time of fault */ 7 38 7 39 2 eis_info (0:7) bit (36)) unaligned; 7 40 7 41 7 42 dcl (apx fixed bin init (0), 7 43 abx fixed bin init (1), 7 44 bpx fixed bin init (2), 7 45 bbx fixed bin init (3), 7 46 lpx fixed bin init (4), 7 47 lbx fixed bin init (5), 7 48 spx fixed bin init (6), 7 49 sbx fixed bin init (7)) internal static options (constant); 7 50 7 51 7 52 7 53 7 54 dcl scup ptr; 7 55 7 56 dcl 1 scu based (scup) aligned, /* SCU DATA */ 7 57 7 58 7 59 /* WORD (0) */ 7 60 7 61 (2 ppr, /* PROCEDURE POINTER REGISTER */ 7 62 3 prr bit (3), /* procedure ring register */ 7 63 3 psr bit (15), /* procedure segment register */ 7 64 3 p bit (1), /* procedure privileged bit */ 7 65 7 66 2 apu, /* APPENDING UNIT STATUS */ 7 67 3 xsf bit (1), /* ext seg flag - IT modification */ 7 68 3 sdwm bit (1), /* match in SDW Ass. Mem. */ 7 69 3 sd_on bit (1), /* SDW Ass. Mem. ON */ 7 70 3 ptwm bit (1), /* match in PTW Ass. Mem. */ 7 71 3 pt_on bit (1), /* PTW Ass. Mem. ON */ 7 72 3 pi_ap bit (1), /* Instr Fetch or Append cycle */ 7 73 3 dsptw bit (1), /* Fetch of DSPTW */ 7 74 3 sdwnp bit (1), /* Fetch of SDW non paged */ 7 75 3 sdwp bit (1), /* Fetch of SDW paged */ 7 76 3 ptw bit (1), /* Fetch of PTW */ 7 77 3 ptw2 bit (1), /* Fetch of pre-paged PTW */ 7 78 3 fap bit (1), /* Fetch of final address paged */ 7 79 3 fanp bit (1), /* Fetch of final address non-paged */ 7 80 3 fabs bit (1), /* Fetch of final address absolute */ 7 81 7 82 2 fault_cntr bit (3), /* number of retrys of EIS instructions */ 7 83 7 84 7 85 /* WORD (1) */ 7 86 7 87 2 fd, /* FAULT DATA */ 7 88 3 iro bit (1), /* illegal ring order */ 7 89 3 oeb bit (1), /* out of execute bracket */ 7 90 3 e_off bit (1), /* no execute */ 7 91 3 orb bit (1), /* out of read bracket */ 7 92 3 r_off bit (1), /* no read */ 7 93 3 owb bit (1), /* out of write bracket */ 7 94 3 w_off bit (1), /* no write */ 7 95 3 no_ga bit (1), /* not a gate */ 7 96 3 ocb bit (1), /* out of call bracket */ 7 97 3 ocall bit (1), /* outward call */ 7 98 3 boc bit (1), /* bad outward call */ 7 99 3 inret bit (1), /* inward return */ 7 100 3 crt bit (1), /* cross ring transfer */ 7 101 3 ralr bit (1), /* ring alarm register */ 7 102 3 am_er bit (1), /* associative memory fault */ 7 103 3 oosb bit (1), /* out of segment bounds */ 7 104 3 paru bit (1), /* processor parity upper */ 7 105 3 parl bit (1), /* processor parity lower */ 7 106 3 onc_1 bit (1), /* op not complete type 1 */ 7 107 3 onc_2 bit (1), /* op not complete type 2 */ 7 108 7 109 2 port_stat, /* PORT STATUS */ 7 110 3 ial bit (4), /* illegal action lines */ 7 111 3 iac bit (3), /* illegal action channel */ 7 112 3 con_chan bit (3), /* connect channel */ 7 113 7 114 2 fi_num bit (5), /* (fault/interrupt) number */ 7 115 2 fi_flag bit (1), /* 1 => fault, 0 => interrupt */ 7 116 7 117 7 118 /* WORD (2) */ 7 119 7 120 2 tpr, /* TEMPORARY POINTER REGISTER */ 7 121 3 trr bit (3), /* temporary ring register */ 7 122 3 tsr bit (15), /* temporary segment register */ 7 123 7 124 2 pad2 bit (9), 7 125 7 126 2 cpu_no bit (3), /* CPU number */ 7 127 7 128 2 delta bit (6), /* tally modification DELTA */ 7 129 7 130 7 131 /* WORD (3) */ 7 132 7 133 2 word3 bit (18), 7 134 7 135 2 tsr_stat, /* TSR STATUS for 1,2,&3 word instructions */ 7 136 3 tsna, /* Word 1 status */ 7 137 4 prn bit (3), /* Word 1 PR number */ 7 138 4 prv bit (1), /* Word 1 PR valid bit */ 7 139 3 tsnb, /* Word 2 status */ 7 140 4 prn bit (3), /* Word 2 PR number */ 7 141 4 prv bit (1), /* Word 2 PR valid bit */ 7 142 3 tsnc, /* Word 3 status */ 7 143 4 prn bit (3), /* Word 3 PR number */ 7 144 4 prv bit (1), /* Word 3 PR valid bit */ 7 145 7 146 2 tpr_tbr bit (6), /* TPR.TBR field */ 7 147 7 148 7 149 /* WORD (4) */ 7 150 7 151 2 ilc bit (18), /* INSTRUCTION COUNTER */ 7 152 7 153 2 ir, /* INDICATOR REGISTERS */ 7 154 3 zero bit (1), /* zero indicator */ 7 155 3 neg bit (1), /* negative indicator */ 7 156 3 carry bit (1), /* carryry indicator */ 7 157 3 ovfl bit (1), /* overflow indicator */ 7 158 3 eovf bit (1), /* eponent overflow */ 7 159 3 eufl bit (1), /* exponent underflow */ 7 160 3 oflm bit (1), /* overflow mask */ 7 161 3 tro bit (1), /* tally runout */ 7 162 3 par bit (1), /* parity error */ 7 163 3 parm bit (1), /* parity mask */ 7 164 3 bm bit (1), /* ^bar mode */ 7 165 3 tru bit (1), /* truncation mode */ 7 166 3 mif bit (1), /* multi-word instruction mode */ 7 167 3 abs bit (1), /* absolute mode */ 7 168 3 pad bit (4), 7 169 7 170 7 171 /* WORD (5) */ 7 172 7 173 2 ca bit (18), /* COMPUTED ADDRESS */ 7 174 7 175 2 cu, /* CONTROL UNIT STATUS */ 7 176 3 rf bit (1), /* on first cycle of repeat instr */ 7 177 3 rpt bit (1), /* repeat instruction */ 7 178 3 rd bit (1), /* repeat double instruction */ 7 179 3 rl bit (1), /* repeat link instruciton */ 7 180 3 pot bit (1), /* IT modification */ 7 181 3 pon bit (1), /* return type instruction */ 7 182 3 xde bit (1), /* XDE from Even location */ 7 183 3 xdo bit (1), /* XDE from Odd location */ 7 184 3 poa bit (1), /* operation preparation */ 7 185 3 rfi bit (1), /* tells CPU to refetch instruction */ 7 186 3 its bit (1), /* ITS modification */ 7 187 3 if bit (1), /* fault occured during instruction fetch */ 7 188 7 189 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 7 190 7 191 7 192 /* WORDS (6,7) */ 7 193 7 194 2 even_inst bit (36), /* even instruction of faulting pair */ 7 195 7 196 2 odd_inst bit (36); /* odd instruction of faulting pair */ 7 197 7 198 7 199 7 200 7 201 7 202 7 203 /* ALTERNATE SCU DECLARATION */ 7 204 7 205 7 206 dcl 1 scux based (scup) aligned, 7 207 7 208 (2 pad0 bit (36), 7 209 7 210 2 fd, /* GROUP II FAULT DATA */ 7 211 3 isn bit (1), /* illegal segment number */ 7 212 3 ioc bit (1), /* illegal op code */ 7 213 3 ia_am bit (1), /* illegal address - modifier */ 7 214 3 isp bit (1), /* illegal slave procedure */ 7 215 3 ipr bit (1), /* illegal procedure */ 7 216 3 nea bit (1), /* non existent address */ 7 217 3 oobb bit (1), /* out of bounds */ 7 218 3 pad bit (29), 7 219 7 220 2 pad2 bit (36), 7 221 7 222 2 pad3a bit (18), 7 223 7 224 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 7 225 3 prn bit (3), /* PR number */ 7 226 3 prv bit (1), /* PR valid bit */ 7 227 7 228 2 pad3b bit (6)) unaligned, 7 229 7 230 2 pad45 (0:1) bit (36), 7 231 7 232 2 instr (0:1) bit (36); /* Instruction ARRAY */ 7 233 7 234 7 235 7 236 /* END INCLUDE FILE mc.incl.pl1 */ 1 113 1 114 1 115 dcl 1 gcos_ext_stat_$gcos_gtss ext 1 116 , 3 gcos_gtss_ext 1 117 , 4 u_state_ptr ptr 1 118 , 4 snumb_index fixed bin(24) 1 119 , 4 home_path char(168) 1 120 ; 1 121 1 122 /* END INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 358 359 8 1 /* BEGIN INCLUDE FILE gcos_xlate_bcd_ascii_.incl.pl1 5/19/76/ RHM */ 8 2 8 3 /* Change: Dave Ward 05/20/81 options constant. 8 4**/ 8 5 8 6 dcl xlate (0: 63) char(1) int static options(constant) init( /* bcd to ascii xlation table */ 8 7 8 8 "0","1","2","3","4","5","6","7","8","9","[","#","@",":",">","?", 8 9 8 10 " ","a","b","c","d","e","f","g","h","i","&",".","]","(","<","\", 8 11 8 12 "^","j","k","l","m","n","o","p","q","r","-","$","*",")",";","'", 8 13 8 14 "+","/","s","t","u","v","w","x","y","z","_",",","%","=","""","!" ); 8 15 8 16 /* END INCLUDE FILE gcos_xlate_bcd_ascii_.incl.pl1 */ 360 361 end gcos_mme_more_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/09/83 1007.6 gcos_mme_more_.pl1 >spec>on>09/07/83-gcos>gcos_mme_more_.pl1 358 1 09/08/83 1229.3 gcos_ext_stat_.incl.pl1 >spec>on>09/07/83-gcos>gcos_ext_stat_.incl.pl1 1-100 2 03/27/82 0424.8 gcos_save_mc.incl.pl1 >ldd>include>gcos_save_mc.incl.pl1 1-104 3 03/27/82 0424.8 gcos_fct_entry.incl.pl1 >ldd>include>gcos_fct_entry.incl.pl1 1-108 4 03/27/82 0424.8 gcos_save_data_entry.incl.pl1 >ldd>include>gcos_save_data_entry.incl.pl1 4-29 5 09/08/83 1230.3 gcos_flags.incl.pl1 >spec>on>09/07/83-gcos>gcos_flags.incl.pl1 1-110 6 03/27/82 0424.8 gcos_file_info_block_.incl.pl1 >ldd>include>gcos_file_info_block_.incl.pl1 1-113 7 08/17/83 1135.7 mc.incl.pl1 >ldd>include>mc.incl.pl1 360 8 03/27/82 0424.8 gcos_xlate_bcd_ascii_.incl.pl1 >ldd>include>gcos_xlate_bcd_ascii_.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. A 000100 automatic fixed bin(18,0) dcl 313 set ref 58* 61 75 100 109 165 195 271 B 000101 automatic fixed bin(18,0) dcl 316 set ref 59* 77 78 80 82 140 140 146 146 153 153 199* 199 200 232 305 a based fixed bin(18,0) level 2 packed unsigned unaligned dcl 354 ref 58 addr builtin function dcl 314 ref 53 84 85 85 199 addrel builtin function dcl 315 ref 57 135 146 146 146 146 153 153 200 b 0(18) based fixed bin(18,0) level 2 packed unsigned unaligned dcl 354 ref 59 bit30 based bit(30) unaligned dcl 317 ref 200 bit36 based bit(36) dcl 318 ref 135 199 cfdesc_loc 000102 automatic fixed bin(18,0) dcl 319 set ref 124* 132 134 134 146 146 code based fixed bin(35,0) dcl 320 set ref 84* 85 85* console 60(08) based bit(1) level 4 packed unaligned dcl 6-10 ref 290 density 60(23) based bit(4) level 4 packed unaligned dcl 6-10 set ref 206* 207 207* dir_name 000103 automatic char(168) unaligned dcl 321 set ref 146* 153* 160 161 divide builtin function dcl 322 ref 83 83 ecode 000155 automatic fixed bin(35,0) dcl 323 set ref 62* 63* 96* 272* 281* 291* entry_name 000156 automatic char(32) unaligned dcl 324 set ref 146* 153* 160 161 fc 000166 automatic char(2) unaligned dcl 325 set ref 102* 103* 106 159* 180* 224* fct 000052 external static structure array level 2 dcl 1-102 fct_entry based structure level 1 dcl 3-3 fct_index 000167 automatic fixed bin(24,0) dcl 326 set ref 105* 106* 280 289 fib based structure level 1 dcl 6-10 fibptr 2 000052 external static pointer array level 3 in structure "gcos_ext_stat_$fct" dcl 1-102 in procedure "gcos_mme_more_" ref 289 fibptr 000204 automatic pointer dcl 6-84 in procedure "gcos_mme_more_" set ref 159* 160 161 162 163 164 165 180* 193 195 196 200 202 204 206 207 207 224* 230 230 231 232 233 233 239* 289* 290 290 290 299 306 307 307 fibs 322 000054 external static structure array level 3 dcl 1-106 ref 105 filecode 000052 external static char(2) array level 3 dcl 1-102 ref 106 fixed builtin function dcl 327 ref 55 57 102 103 124 198 199 flags based structure level 1 dcl 5-8 gcos_attach_file_ 000010 constant entry external dcl 328 ref 239 gcos_build_pathname_ 000012 constant entry external dcl 329 ref 146 gcos_error_ 000014 constant entry external dcl 330 ref 85 gcos_et_$bad_mme_param 000016 external static fixed bin(35,0) dcl 331 set ref 55* 132* 137* 140* gcos_et_$bad_more_param 000020 external static fixed bin(35,0) dcl 332 ref 62 gcos_et_$duplicate_file_more 000022 external static fixed bin(35,0) dcl 333 ref 272 281 gcos_et_$not_mass_store_more 000024 external static fixed bin(35,0) dcl 334 ref 291 gcos_et_$zero_fc_to_more 000026 external static fixed bin(35,0) dcl 335 ref 96 gcos_ext_stat_$fct 000052 external static structure level 1 dcl 1-102 gcos_ext_stat_$gcos_slave_area_seg 000042 external static pointer dcl 1-27 ref 50 gcos_ext_stat_$max_mem 000044 external static fixed bin(19,0) dcl 1-40 ref 80 gcos_ext_stat_$pdir 000046 external static varying char(168) dcl 1-48 ref 84 84 gcos_ext_stat_$save_data 000054 external static structure level 1 dcl 1-106 gcos_ext_stat_$storage_limit 000050 external static fixed bin(19,0) dcl 1-60 set ref 52 80 82* 82 83 83 84* gcos_mme_bort_$system 000030 constant entry external dcl 336 ref 55 63 132 137 140 gcos_open_file_ 000032 constant entry external dcl 337 ref 159 180 224 gcos_set_slave_$load_bar 000034 constant entry external dcl 338 ref 83 gcos_verify_access_ 000036 constant entry external dcl 339 ref 153 gseg_ptr 000170 automatic pointer dcl 340 set ref 50* 57 135 146 146 146 146 153 153 200 hcs_$set_max_length 000040 constant entry external dcl 341 ref 84 ilc 4 based bit(18) level 2 packed unaligned dcl 7-56 ref 55 57 increment parameter fixed bin(18,0) dcl 342 set ref 6 51* 247* indicators 60 based structure level 2 dcl 6-10 indicators_word_1 60 based structure level 3 dcl 6-10 indicators_word_3 62 based structure level 3 dcl 6-10 indicators_word_4 63 based structure level 3 dcl 6-10 mc based structure level 1 dcl 7-12 mcp parameter pointer dcl 7-10 ref 6 53 95 102 103 124 150 153 153 162 163 198 206 231 null 60(11) based bit(1) level 4 packed unaligned dcl 6-10 set ref 233* 299 num_words 000172 automatic fixed bin(35,0) dcl 344 set ref 305* 306 306* 307 param based structure level 1 dcl 354 param_ptr 000174 automatic pointer dcl 345 set ref 57* 58 59 pathnm 5 based char(168) level 2 packed unaligned dcl 6-10 set ref 160* 161* perm 60(03) based bit(1) level 4 packed unaligned dcl 6-10 set ref 164* 306 print 60(04) based bit(1) level 4 packed unaligned dcl 6-10 ref 290 q 25 based bit(36) level 3 packed unaligned dcl 7-12 set ref 95 102 103 124 150* 153 153 162 163 198 206 231 read 60(09) based bit(1) level 4 packed unaligned dcl 6-10 set ref 162* 230* reel_no_loc 000176 automatic fixed bin(18,0) dcl 346 set ref 198* 200 200 regs 20 based structure level 2 packed unaligned dcl 7-12 rtrim builtin function dcl 347 ref 160 161 save_data 000054 external static structure level 2 dcl 1-106 save_data_entry based structure level 1 dcl 4-5 save_machine_conditions based structure level 1 packed unaligned dcl 2-6 scu 30 based bit(36) array level 2 in structure "mc" packed unaligned dcl 7-12 in procedure "gcos_mme_more_" set ref 53 scu based structure level 1 dcl 7-56 in procedure "gcos_mme_more_" scup 000206 automatic pointer dcl 7-54 set ref 53* 55 57 serial_no 62 based bit(30) level 4 packed unaligned dcl 6-10 set ref 200* 202* size 67 based fixed bin(24,0) level 2 dcl 6-10 set ref 232* 233 307* 307 st 000200 automatic bit(72) dcl 348 set ref 84 85 85 146* 147 150 153* 154 storage_limit 000202 automatic fixed bin(18,0) dcl 349 set ref 52* 55 132 134 140 string builtin function dcl 350 ref 84 84 substr builtin function dcl 351 set ref 95 102* 102 103* 103 124 147 150 153 153 154 162 163 198 199 206 231 sysout 1 000052 external static bit(1) array level 3 packed unaligned dcl 1-102 ref 280 tape 60(07) based bit(1) level 4 packed unaligned dcl 6-10 set ref 193* 290 tape_name 63 based bit(72) level 4 packed unaligned dcl 6-10 set ref 204* tracks 60(21) based bit(2) level 4 packed unaligned dcl 6-10 set ref 195* 196* type 60(02) based bit(1) level 4 packed unaligned dcl 6-10 set ref 165* 231* word_index 000203 automatic fixed bin(18,0) dcl 352 set ref 134* 135* write 60(10) based bit(1) level 4 packed unaligned dcl 6-10 set ref 163* 230* xlate 000006 constant char(1) initial array unaligned dcl 8-6 ref 102 103 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. abx internal static fixed bin(17,0) initial dcl 7-42 apx internal static fixed bin(17,0) initial dcl 7-42 bbx internal static fixed bin(17,0) initial dcl 7-42 bpx internal static fixed bin(17,0) initial dcl 7-42 gcos_ext_stat_$abort_reason external static varying char(128) dcl 1-13 gcos_ext_stat_$abort_return external static label variable dcl 1-14 gcos_ext_stat_$activity_card_num external static picture(4) unaligned dcl 1-15 gcos_ext_stat_$activity_name external static char(8) unaligned dcl 1-16 gcos_ext_stat_$activity_start_time external static fixed bin(71,0) dcl 1-17 gcos_ext_stat_$card_num external static picture(4) unaligned dcl 1-18 gcos_ext_stat_$courtesy_call_control external static structure level 1 dcl 1-92 gcos_ext_stat_$dbs external static bit(1) array unaligned dcl 1-19 gcos_ext_stat_$default_nondollar external static char(2) unaligned dcl 1-20 gcos_ext_stat_$dir_rings external static fixed bin(3,0) array dcl 1-21 gcos_ext_stat_$dpno external static varying char(100) dcl 1-22 gcos_ext_stat_$dpo external static varying char(100) dcl 1-23 gcos_ext_stat_$endfc external static char(2) unaligned dcl 1-24 gcos_ext_stat_$er external static pointer dcl 1-25 gcos_ext_stat_$etc_filecode external static char(2) unaligned dcl 1-26 gcos_ext_stat_$gcos_gtss external static structure level 1 unaligned dcl 1-115 gcos_ext_stat_$gf external static fixed bin(24,0) dcl 1-28 gcos_ext_stat_$incode external static fixed bin(24,0) dcl 1-29 gcos_ext_stat_$increment_hold external static fixed bin(24,0) dcl 1-30 gcos_ext_stat_$initial_cpu_time external static fixed bin(71,0) dcl 1-31 gcos_ext_stat_$input_segment_path external static varying char(168) dcl 1-32 gcos_ext_stat_$jcl_warnings external static fixed bin(24,0) dcl 1-33 gcos_ext_stat_$job_cpu_time external static fixed bin(71,0) dcl 1-34 gcos_ext_stat_$job_id external static varying char(18) dcl 1-35 gcos_ext_stat_$job_real_time external static fixed bin(71,0) dcl 1-36 gcos_ext_stat_$last_mme external static fixed bin(24,0) dcl 1-37 gcos_ext_stat_$ldrss external static fixed bin(24,0) dcl 1-38 gcos_ext_stat_$max_activities external static fixed bin(24,0) dcl 1-39 gcos_ext_stat_$mc external static structure level 1 unaligned dcl 1-112 gcos_ext_stat_$mme_rtrn external static label variable dcl 1-41 gcos_ext_stat_$nondollar external static char(2) unaligned dcl 1-42 gcos_ext_stat_$nongcos external static char(2) unaligned dcl 1-43 gcos_ext_stat_$normal_return external static label variable dcl 1-44 gcos_ext_stat_$patchfile_ptr external static pointer dcl 1-45 gcos_ext_stat_$pathname_prefix external static varying char(168) dcl 1-46 gcos_ext_stat_$pch external static pointer dcl 1-47 gcos_ext_stat_$prt external static pointer dcl 1-49 gcos_ext_stat_$rs external static pointer dcl 1-50 gcos_ext_stat_$save_dir external static varying char(168) dcl 1-52 gcos_ext_stat_$saveseg_ptr external static pointer dcl 1-51 gcos_ext_stat_$seg_rings external static fixed bin(3,0) array dcl 1-53 gcos_ext_stat_$sig_ptr external static pointer dcl 1-54 gcos_ext_stat_$skip_umc external static bit(1) unaligned dcl 1-55 gcos_ext_stat_$snumb external static bit(30) dcl 1-56 gcos_ext_stat_$sought_label external static char(8) unaligned dcl 1-57 gcos_ext_stat_$statistics external static fixed bin(24,0) array dcl 1-58 gcos_ext_stat_$stop_code external static fixed bin(24,0) dcl 1-59 gcos_ext_stat_$sysout_limit external static fixed bin(35,0) dcl 1-61 gcos_ext_stat_$sysout_lines external static fixed bin(35,0) dcl 1-62 gcos_ext_stat_$system_free_pointer external static pointer dcl 1-63 gcos_ext_stat_$tape_buffer_size external static fixed bin(35,0) dcl 1-64 gcos_ext_stat_$temp_dir external static varying char(168) dcl 1-65 gcos_ext_stat_$temp_seg_ptr external static pointer dcl 1-66 gcos_ext_stat_$termination_code external static bit(18) unaligned dcl 1-67 gcos_ext_stat_$time_limit external static fixed bin(71,0) dcl 1-68 gcos_ext_stat_$userid external static char(12) unaligned dcl 1-69 gcos_ext_stat_$validation_level external static fixed bin(3,0) dcl 1-70 index builtin function dcl 343 lbx internal static fixed bin(17,0) initial dcl 7-42 linked_file internal static bit(1) initial unaligned dcl 6-87 lpx internal static fixed bin(17,0) initial dcl 7-42 random_file internal static bit(1) initial unaligned dcl 6-88 read_file internal static bit(1) initial unaligned dcl 6-89 sbx internal static fixed bin(17,0) initial dcl 7-42 scux based structure level 1 dcl 7-206 spx internal static fixed bin(17,0) initial dcl 7-42 write_file internal static bit(1) initial unaligned dcl 6-90 NAMES DECLARED BY EXPLICIT CONTEXT. abort 000237 constant label dcl 63 ref 97 273 282 292 action 000000 constant label array(6) dcl 124 set ref 109 attach 001227 constant label dcl 238 ref 167 209 failure 001240 constant label dcl 246 ref 78 80 100 151 fence_hit 000531 constant label dcl 139 set ref 135 fms_failure 000623 constant label dcl 149 ref 154 gcos_mme_more_ 000147 constant entry external dcl 6 hit 001245 constant label dcl 265 ref 106 NAMES DECLARED BY CONTEXT OR IMPLICATION. hbound builtin function ref 105 min builtin function ref 134 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1566 1644 1317 1576 Length 2236 1317 56 355 246 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_mme_more_ 207 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_mme_more_ 000100 A gcos_mme_more_ 000101 B gcos_mme_more_ 000102 cfdesc_loc gcos_mme_more_ 000103 dir_name gcos_mme_more_ 000155 ecode gcos_mme_more_ 000156 entry_name gcos_mme_more_ 000166 fc gcos_mme_more_ 000167 fct_index gcos_mme_more_ 000170 gseg_ptr gcos_mme_more_ 000172 num_words gcos_mme_more_ 000174 param_ptr gcos_mme_more_ 000176 reel_no_loc gcos_mme_more_ 000200 st gcos_mme_more_ 000202 storage_limit gcos_mme_more_ 000203 word_index gcos_mme_more_ 000204 fibptr gcos_mme_more_ 000206 scup gcos_mme_more_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. gcos_attach_file_ gcos_build_pathname_ gcos_error_ gcos_mme_bort_$system gcos_open_file_ gcos_set_slave_$load_bar gcos_verify_access_ hcs_$set_max_length THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gcos_et_$bad_mme_param gcos_et_$bad_more_param gcos_et_$duplicate_file_more gcos_et_$not_mass_store_more gcos_et_$zero_fc_to_more gcos_ext_stat_$fct gcos_ext_stat_$gcos_slave_area_seg gcos_ext_stat_$max_mem gcos_ext_stat_$pdir gcos_ext_stat_$save_data gcos_ext_stat_$storage_limit LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000143 50 000154 51 000157 52 000162 53 000164 55 000170 57 000214 58 000223 59 000226 61 000231 62 000234 63 000237 75 000250 77 000252 78 000254 80 000256 82 000264 83 000266 84 000277 85 000343 87 000357 95 000360 96 000366 97 000371 100 000372 102 000374 103 000402 105 000407 106 000415 107 000426 109 000430 124 000432 132 000440 134 000462 135 000501 136 000506 137 000511 139 000531 140 000532 146 000560 147 000620 149 000623 150 000624 151 000631 153 000632 154 000676 159 000701 160 000730 161 000763 162 001012 163 001023 164 001030 165 001032 167 001037 180 001040 193 001067 195 001072 196 001102 198 001106 199 001114 200 001117 202 001131 204 001133 206 001136 207 001143 209 001152 224 001153 230 001202 231 001207 232 001221 233 001224 238 001227 239 001230 240 001237 246 001240 247 001241 248 001244 265 001245 271 001246 272 001251 273 001253 280 001254 281 001257 282 001261 289 001262 290 001264 291 001267 292 001271 299 001272 305 001275 306 001300 307 001306 309 001312 ----------------------------------------------------------- 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