COMPILATION LISTING OF SEGMENT gcos_mme_syot_ Compiled by: Multics PL/I Compiler, Release 28b, of April 11, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 09/09/83 1156.2 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* 12* ******************************************************************************************** 13* ******************************************************************************************** 14* * 15* * 16* * M M E G E S Y O T 17* * 18* * 19* * MME GESYOT is used to transmit output records to the SYSOUT collector media 20* * for subsequent printing or punching. SYSOUT collects these records, which may 21* * constitute several different reports for each concurrent activity. 22* * 23* * 24* * CALLING SEQUENCE 25* * 26* * MME GESYOT 27* * ZERO FCB,0 28* * return 29* * 30* * where FCB is the location (word 0) of the file control block for the file 31* * containing to records to be transmitted. FCB+2 contains the DCW location. 32* * The DCW contains the buffer location and length. 33* * 34* * 35* * or to request backdoor file processing: 36* * 37* * MME GESYOT 38* * BCI 1,000FC 39* * BCI 1,AAAAAB 40* * denial return 41* * normal return 42* * 43* * where FC is the file code of the users mass storage file; 44* * AAAAA is the banner string used to identify the output; 45* * and B is the type of output (1=punch,2=bcd print,3=ascii print). 46* * 47* * 48* * WRITTEN BY DICK SNYDER NOVEMBER 30, 1970 49* * RETYPED BY T.CASEY DECEMBER 1972 50* * MODIFIED BY T.CASEY DECEMBER 1972, MAY 1974 51* * MODIFIED BY D. KAYDEN MARCH 1974, APRIL 1974, AUGUST 1974 52* * Modified by M. R. Jordan, April 1977 53* * Modified by S. C. Akers December 1981 Change \014 to %page 54* * 55* ******************************************************************************************** 56* ******************************************************************************************** 57**/ 58 59 60 gcos_mme_syot_: proc (mcp, increment); 61 62 dcl addr builtin; 63 dcl addrel builtin; 64 dcl bit36 bit (36) aligned based; 65 dcl block_end fixed bin(24); 66 dcl buffer_size fixed bin(24); 67 dcl dcw_loc fixed bin(24); 68 dcl dcw_ptr ptr; 69 dcl execution_report_flag bit (1) aligned init ("0"b); 70 dcl fc char (2); 71 dcl fcb_loc fixed bin(24); 72 dcl fcword_ptr ptr; 73 dcl file_ptr ptr; 74 dcl fixed builtin; 75 dcl gcos_et_$bad_syot_buffer_ptr fixed bin(35) ext; 76 dcl gcos_et_$bad_syot_media_code fixed bin(35) ext; 77 dcl gcos_et_$bad_syot_status_ptr fixed bin(35) ext; 78 dcl gcos_et_$no_reason fixed bin(35) ext; 79 dcl gcos_et_$output_limit_exceeded fixed bin(35) ext; 80 dcl gcos_et_$syot_alloc_err fixed bin(35) ext; 81 dcl gcos_et_$syot_buffer_too_high fixed bin(35) ext; 82 dcl gcos_et_$syot_rec_size_err fixed bin(35) ext; 83 dcl gcos_mme_bort_$system entry options (variable); 84 dcl gcos_write_$record_ptr ext entry (ptr, char (*), bit (8)); 85 dcl gseg_ptr ptr; 86 dcl i fixed bin(24); 87 dcl increment fixed bin(24); 88 dcl last_file_ptr ptr; 89 dcl null builtin; 90 dcl rcw_loc fixed bin(24); 91 dcl rcw_ptr ptr; 92 dcl rec_len fixed bin(24); 93 dcl record_string char (record_string_len) based (record_string_ptr); 94 dcl record_string_len fixed bin(20); 95 dcl record_string_ptr ptr; 96 dcl storage_limit fixed bin(24); 97 dcl substr builtin; 98 dcl total_rec_len fixed bin(24); 99 100 dcl 1 dcw aligned based (dcw_ptr), 101 2 address bit (18) unaligned, 102 2 fill bit (6) unaligned, 103 2 count bit (12) unaligned; 104 105 106 dcl 1 fcword aligned based (fcword_ptr), 107 2 pad bit (24) unaligned, 108 2 fc1 bit (6) unaligned, 109 2 fc2 bit (6) unaligned; 110 111 112 dcl 1 rcw aligned based (rcw_ptr), 113 2 record_len fixed bin(17) unaligned, 114 2 processed bit (1) unaligned, 115 2 control bit (5) unaligned, 116 2 media_code bit (6) unaligned, 117 2 report_code bit (6) unaligned; 118 119 120 dcl 1 word aligned based, 121 2 upper bit (18) unaligned, 122 2 lower bit (18) unaligned; 123 124 /* 125* 126* Make sure we have SYSOUT limits left. 127* 128**/ 129 130 131 if gcos_ext_stat_$sysout_lines > gcos_ext_stat_$sysout_limit then do; 132 call gcos_mme_bort_$system (gcos_et_$output_limit_exceeded); 133 gcos_ext_stat_$sysout_limit = gcos_ext_stat_$sysout_limit+10000; 134 end; 135 136 137 /* 138* 139* Now that we know we have the SYSOUT limits to proceed, 140* initialize some needed data items and continue. 141* 142**/ 143 144 145 increment = 1; 146 gseg_ptr = gcos_ext_stat_$gcos_slave_area_seg; 147 storage_limit = gcos_ext_stat_$storage_limit; 148 scup = addr (mc.scu); 149 150 151 /* 152* 153* Get the FCB location from the first word after the MME. If the FCB location is 154* zero, this is a request for a "backdoor" file print. We do not support this, so 155* return the status to say no backdoor file allocated. 156* 157**/ 158 159 160 fcb_loc = fixed (addrel (gseg_ptr, fixed (scu.ilc, 18)+1) -> word.upper, 18); 161 if fcb_loc = 0 then do; 162 mc.a = (33)"0"b || "101"b; 163 increment = 2; 164 return; 165 end; 166 167 168 /* 169* 170* Validate the location of word -3 of the FCB. If good then zero the 171* word, as it is used later for a status return; 172* 173* 174**/ 175 176 177 if fcb_loc - 3 >= storage_limit then 178 call gcos_mme_bort_$system (gcos_et_$bad_syot_status_ptr, 179 "MME GESYOT status return word is outside slave limits."); 180 addrel (gseg_ptr, fcb_loc-3) -> bit36 = (36)"0"b; 181 182 183 /* 184* 185* Now we must get the file code from the FCB and look it up in the file code 186* table. If the file code is "00" or " ", however, we know it is to go on the 187* execution report. Also, if the file code is not found in the file code table 188* the output is to be put on the execution report. 189* 190**/ 191 192 193 if fcb_loc-4 >= storage_limit then 194 call gcos_mme_bort_$system (gcos_et_$no_reason, "MME GESYOT file code word is outside slave limits."); 195 fcword_ptr = addrel (gseg_ptr, fcb_loc-4); 196 substr (fc, 1, 1) = xlate (fixed (fc1, 6)); 197 substr (fc, 2, 1) = xlate (fixed (fc2, 6)); 198 199 200 if fc ^= "00" & fc ^= " " then do; 201 202 do i = 1 to hbound (save_data.fibs, 1); 203 if fct.filecode (i) = fc then do; 204 if fct.sysout (i) & ^fct.dac (i) then go to hit; 205 call gcos_mme_bort_$system (gcos_et_$syot_alloc_err, 206 "MME GESYOT file ^a is not assigned to SYSOUT.", fc); 207 end; 208 end; 209 210 end; 211 212 213 execution_report_flag = "1"b; 214 215 216 /* 217* 218* Verify the locations of the DCW word, and buffer. Also check the buffer size. 219* If the buffer is empty (size = 0) then don't waste any time on this request. 220* 221**/ 222 223 224 hit: ; 225 226 dcw_loc = fixed (addrel (gseg_ptr, fcb_loc+2) -> word.lower, 18); 227 if dcw_loc >= storage_limit then 228 call gcos_mme_bort_$system (gcos_et_$bad_syot_buffer_ptr, "MME GESYOT buffer is outside slave limits."); 229 dcw_ptr = addrel (gseg_ptr, dcw_loc); 230 231 232 buffer_size = fixed (dcw.count, 12); 233 if buffer_size > 320 then 234 call gcos_mme_bort_$system (gcos_et_$syot_rec_size_err, 235 "MME GESYOT buffer length is greater than 320 words."); 236 if buffer_size = 0 then go to return_stat; 237 238 239 block_end = fixed (dcw.address, 18) + buffer_size; 240 if block_end >= storage_limit then 241 call gcos_mme_bort_$system (gcos_et_$syot_buffer_too_high, 242 "MME GESYOT buffer not entirely within slave limits."); 243 244 245 /* 246* 247* Now we can process the data buffer passed by the slave job. But first 248* let's initialize some data items. 249* 250**/ 251 252 last_file_ptr = null; 253 254 255 /* 256* 257* NOTE: The GCOS SYSOUT module assumes that the buffer is located 258* two words beyond the DCW word. This assumption is duplicated in 259* the following statement. 260* 261**/ 262 263 264 rcw_loc = dcw_loc + 2 + 2; 265 266 267 /* 268* 269* Position to the next record in the buffer and verify it's length. 270* 271**/ 272 273 274 next: ; 275 276 rcw_ptr = addrel (gseg_ptr, rcw_loc); /* move pointer to rcw of next record */ 277 rec_len = rcw.record_len; 278 if rec_len > 320 then 279 call gcos_mme_bort_$system (gcos_et_$syot_rec_size_err, 280 "MME GESYOT Record Control Word (RCW) specifies record length greater than 320 words."); 281 282 283 /* 284* 285* Now see if the record is to be processed. Check the bit that tells us 286* it has already been processed and check for zero media code or record 287* length. 288* 289**/ 290 291 292 if rcw.processed | rcw.media_code = "00"b3 | rec_len = 0 then do; 293 call write; 294 last_file_ptr = null; 295 go to bump; 296 end; 297 298 299 /* 300* 301* Process the special media codes for COBOL-74. These records have some information in the 302* first two characters that must be done away with. These are media codes 9 and 13. 303* 304**/ 305 306 307 if rcw.media_code = "11"b3 then do; 308 substr (addrel (rcw_ptr, 1) -> bit36, 1, 12) = "1717"b3; 309 rcw.media_code = "03"b3; 310 end; 311 else if rcw.media_code = "15"b3 then do; 312 substr (addrel (rcw_ptr, 1) -> bit36, 1, 18) = "177177"b3; 313 rcw.media_code = "07"b3; 314 end; 315 316 317 /* 318* 319* If this data is to be put on the execution report, then do so. Only one record will 320* be processed from the buffer. 321* 322**/ 323 324 325 if execution_report_flag then do; 326 last_file_ptr = gcos_ext_stat_$er; 327 record_string_ptr = rcw_ptr; 328 total_rec_len = rec_len + 1; 329 call write; 330 go to return_stat; 331 end; 332 333 334 /* 335* 336* Verify the media code of the record. It must be print or punch. 337* If a bad media code is encountered, abort the slave job. Print 338* media codes are 3 and 7, punch media codes are 1, 2, and 10. 339* 340**/ 341 342 343 if fixed (rcw.media_code, 6, 0) < 11 then goto media (fixed (rcw.media_code, 6, 0)); 344 else goto bad_media; 345 346 347 media (1): ; 348 media (2): ; 349 media (10): ; 350 351 file_ptr = gcos_ext_stat_$pch; 352 goto media_ok; 353 354 355 media (3): ; 356 media (7): ; 357 358 file_ptr = gcos_ext_stat_$prt; 359 goto media_ok; 360 361 362 media (0): ; 363 media (4): ; 364 media (5): ; 365 media (6): ; 366 media (8): ; 367 media (9): ; 368 bad_media: ; 369 370 call gcos_mme_bort_$system (gcos_et_$bad_syot_media_code, "MME GESYOT media code not print or punch."); 371 372 373 media_ok: ; 374 375 /* 376* 377* If this record has the same destination as the last record, then simply 378* add it to the accumulated length. If not, write it and start a new 379* accumulation. Make sure we count the lines/cards produced to enforce 380* SYSOUT limits. 381* 382**/ 383 384 385 if last_file_ptr = file_ptr then total_rec_len = total_rec_len+rec_len+1; 386 else do; 387 call write; 388 last_file_ptr = file_ptr; 389 record_string_ptr = rcw_ptr; 390 total_rec_len = rec_len + 1; 391 end; 392 gcos_ext_stat_$sysout_lines = gcos_ext_stat_$sysout_lines + 1; 393 394 395 /* 396* 397* After marking the record as processed, calculate the new RCW location and see 398* if we are, finished with the current buffer. If we are, make sure all records 399* have been written to the collection file. 400* 401**/ 402 403 404 bump: ; 405 406 rcw.processed = "1"b; 407 rcw_loc = rcw_loc + rec_len + 1; 408 if rcw_loc < block_end then go to next; 409 call write; 410 411 412 /* 413* 414* At this point we are ready to return to the slave job. Make sure we mark 415* the status work to show a termination status with no errors. 416* 417**/ 418 419 420 return_stat: ; 421 422 addrel (gseg_ptr, fcb_loc-3) -> bit36 = "400000000000"b3; 423 424 return; 425 426 /* 427* 428* The write procedure acctually writes the accumulated records to the proper collection 429* file for later processing by gcos_sysprint or gcos_syspunch. 430* 431**/ 432 433 434 write: proc; 435 436 437 /* 438* 439* Check first to see if we have anything to write... 440* If not, then simply exit. 441* 442**/ 443 444 445 if last_file_ptr ^= null 446 then do; 447 448 record_string_len = total_rec_len * 4; 449 call gcos_write_$record_ptr (last_file_ptr, record_string, "0"b); 450 end; 451 452 return; 453 454 455 end write; 456 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 */ 457 458 459 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 */ 460 461 462 463 end gcos_mme_syot_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/09/83 1007.7 gcos_mme_syot_.pl1 >spec>on>09/07/83-gcos>gcos_mme_syot_.pl1 457 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 460 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 24 based bit(36) level 3 packed unaligned dcl 7-12 set ref 162* addr builtin function dcl 62 ref 148 addrel builtin function dcl 63 ref 160 180 195 226 229 276 308 312 422 address based bit(18) level 2 packed unaligned dcl 100 ref 239 bit36 based bit(36) dcl 64 set ref 180* 308* 312* 422* block_end 000100 automatic fixed bin(24,0) dcl 65 set ref 239* 240 408 buffer_size 000101 automatic fixed bin(24,0) dcl 66 set ref 232* 233 236 239 count 0(24) based bit(12) level 2 packed unaligned dcl 100 ref 232 dac 1(01) 000052 external static bit(1) array level 3 packed unaligned dcl 1-102 ref 204 dcw based structure level 1 dcl 100 dcw_loc 000102 automatic fixed bin(24,0) dcl 67 set ref 226* 227 229 264 dcw_ptr 000104 automatic pointer dcl 68 set ref 229* 232 239 execution_report_flag 000106 automatic bit(1) initial dcl 69 set ref 69* 213* 325 fc 000107 automatic char(2) unaligned dcl 70 set ref 196* 197* 200 200 203 205* fc1 0(24) based bit(6) level 2 packed unaligned dcl 106 ref 196 fc2 0(30) based bit(6) level 2 packed unaligned dcl 106 ref 197 fcb_loc 000110 automatic fixed bin(24,0) dcl 71 set ref 160* 161 177 180 193 195 226 422 fct 000052 external static structure array level 2 dcl 1-102 fct_entry based structure level 1 dcl 3-3 fcword based structure level 1 dcl 106 fcword_ptr 000112 automatic pointer dcl 72 set ref 195* 196 197 fib based structure level 1 dcl 6-10 fibs 322 000054 external static structure array level 3 dcl 1-106 ref 202 file_ptr 000114 automatic pointer dcl 73 set ref 351* 358* 385 388 filecode 000052 external static char(2) array level 3 dcl 1-102 ref 203 fixed builtin function dcl 74 ref 160 160 196 197 226 232 239 343 343 flags based structure level 1 dcl 5-8 gcos_et_$bad_syot_buffer_ptr 000010 external static fixed bin(35,0) dcl 75 set ref 227* gcos_et_$bad_syot_media_code 000012 external static fixed bin(35,0) dcl 76 set ref 370* gcos_et_$bad_syot_status_ptr 000014 external static fixed bin(35,0) dcl 77 set ref 177* gcos_et_$no_reason 000016 external static fixed bin(35,0) dcl 78 set ref 193* gcos_et_$output_limit_exceeded 000020 external static fixed bin(35,0) dcl 79 set ref 132* gcos_et_$syot_alloc_err 000022 external static fixed bin(35,0) dcl 80 set ref 205* gcos_et_$syot_buffer_too_high 000024 external static fixed bin(35,0) dcl 81 set ref 240* gcos_et_$syot_rec_size_err 000026 external static fixed bin(35,0) dcl 82 set ref 233* 278* gcos_ext_stat_$er 000034 external static pointer dcl 1-25 ref 326 gcos_ext_stat_$fct 000052 external static structure level 1 dcl 1-102 gcos_ext_stat_$gcos_slave_area_seg 000036 external static pointer dcl 1-27 ref 146 gcos_ext_stat_$pch 000040 external static pointer dcl 1-47 ref 351 gcos_ext_stat_$prt 000042 external static pointer dcl 1-49 ref 358 gcos_ext_stat_$save_data 000054 external static structure level 1 dcl 1-106 gcos_ext_stat_$storage_limit 000044 external static fixed bin(19,0) dcl 1-60 ref 147 gcos_ext_stat_$sysout_limit 000046 external static fixed bin(35,0) dcl 1-61 set ref 131 133* 133 gcos_ext_stat_$sysout_lines 000050 external static fixed bin(35,0) dcl 1-62 set ref 131 392* 392 gcos_mme_bort_$system 000030 constant entry external dcl 83 ref 132 177 193 205 227 233 240 278 370 gcos_write_$record_ptr 000032 constant entry external dcl 84 ref 449 gseg_ptr 000116 automatic pointer dcl 85 set ref 146* 160 180 195 226 229 276 422 i 000120 automatic fixed bin(24,0) dcl 86 set ref 202* 203 204 204* ilc 4 based bit(18) level 2 packed unaligned dcl 7-56 ref 160 increment parameter fixed bin(24,0) dcl 87 set ref 60 145* 163* last_file_ptr 000122 automatic pointer dcl 88 set ref 252* 294* 326* 385 388* 445 449* lower 0(18) based bit(18) level 2 packed unaligned dcl 120 ref 226 mc based structure level 1 dcl 7-12 mcp parameter pointer dcl 7-10 ref 60 148 162 media_code 0(24) based bit(6) level 2 packed unaligned dcl 112 set ref 292 307 309* 311 313* 343 343 null builtin function dcl 89 ref 252 294 445 processed 0(18) based bit(1) level 2 packed unaligned dcl 112 set ref 292 406* rcw based structure level 1 dcl 112 rcw_loc 000124 automatic fixed bin(24,0) dcl 90 set ref 264* 276 407* 407 408 rcw_ptr 000126 automatic pointer dcl 91 set ref 276* 277 292 292 307 308 309 311 312 313 327 343 343 389 406 rec_len 000130 automatic fixed bin(24,0) dcl 92 set ref 277* 278 292 328 385 390 407 record_len based fixed bin(17,0) level 2 packed unaligned dcl 112 ref 277 record_string based char unaligned dcl 93 set ref 449* record_string_len 000131 automatic fixed bin(20,0) dcl 94 set ref 448* 449 449 record_string_ptr 000132 automatic pointer dcl 95 set ref 327* 389* 449 regs 20 based structure level 2 packed unaligned dcl 7-12 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 based structure level 1 dcl 7-56 in procedure "gcos_mme_syot_" scu 30 based bit(36) array level 2 in structure "mc" packed unaligned dcl 7-12 in procedure "gcos_mme_syot_" set ref 148 scup 000136 automatic pointer dcl 7-54 set ref 148* 160 storage_limit 000134 automatic fixed bin(24,0) dcl 96 set ref 147* 177 193 227 240 substr builtin function dcl 97 set ref 196* 197* 308* 312* sysout 1 000052 external static bit(1) array level 3 packed unaligned dcl 1-102 ref 204 total_rec_len 000135 automatic fixed bin(24,0) dcl 98 set ref 328* 385* 385 390* 448 upper based bit(18) level 2 packed unaligned dcl 120 ref 160 word based structure level 1 dcl 120 xlate 000013 constant char(1) initial array unaligned dcl 8-6 ref 196 197 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 fibptr automatic pointer dcl 6-84 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_$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_$max_mem external static fixed bin(19,0) dcl 1-40 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_$pdir external static varying char(168) dcl 1-48 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_$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 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. bad_media 000756 constant label dcl 368 ref 344 bump 001026 constant label dcl 404 ref 295 gcos_mme_syot_ 000232 constant entry external dcl 60 hit 000471 constant label dcl 224 ref 204 media 000000 constant label array(0:10) dcl 347 ref 343 media_ok 000777 constant label dcl 373 ref 352 359 next 000611 constant label dcl 274 set ref 408 return_stat 001040 constant label dcl 420 ref 236 330 write 001050 constant entry internal dcl 434 ref 293 329 387 409 NAME DECLARED BY CONTEXT OR IMPLICATION. hbound builtin function ref 202 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1346 1424 1106 1356 Length 2012 1106 56 352 240 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_mme_syot_ 186 external procedure is an external procedure. write internal procedure shares stack frame of external procedure gcos_mme_syot_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_mme_syot_ 000100 block_end gcos_mme_syot_ 000101 buffer_size gcos_mme_syot_ 000102 dcw_loc gcos_mme_syot_ 000104 dcw_ptr gcos_mme_syot_ 000106 execution_report_flag gcos_mme_syot_ 000107 fc gcos_mme_syot_ 000110 fcb_loc gcos_mme_syot_ 000112 fcword_ptr gcos_mme_syot_ 000114 file_ptr gcos_mme_syot_ 000116 gseg_ptr gcos_mme_syot_ 000120 i gcos_mme_syot_ 000122 last_file_ptr gcos_mme_syot_ 000124 rcw_loc gcos_mme_syot_ 000126 rcw_ptr gcos_mme_syot_ 000130 rec_len gcos_mme_syot_ 000131 record_string_len gcos_mme_syot_ 000132 record_string_ptr gcos_mme_syot_ 000134 storage_limit gcos_mme_syot_ 000135 total_rec_len gcos_mme_syot_ 000136 scup gcos_mme_syot_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. gcos_mme_bort_$system gcos_write_$record_ptr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gcos_et_$bad_syot_buffer_ptr gcos_et_$bad_syot_media_code gcos_et_$bad_syot_status_ptr gcos_et_$no_reason gcos_et_$output_limit_exceeded gcos_et_$syot_alloc_err gcos_et_$syot_buffer_too_high gcos_et_$syot_rec_size_err gcos_ext_stat_$er gcos_ext_stat_$fct gcos_ext_stat_$gcos_slave_area_seg gcos_ext_stat_$pch gcos_ext_stat_$prt gcos_ext_stat_$save_data gcos_ext_stat_$storage_limit gcos_ext_stat_$sysout_limit gcos_ext_stat_$sysout_lines LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 60 000226 69 000237 131 000240 132 000243 133 000253 145 000260 146 000263 147 000266 148 000270 160 000274 161 000304 162 000306 163 000310 164 000312 177 000313 180 000336 193 000342 195 000367 196 000373 197 000401 200 000406 202 000414 203 000421 204 000432 205 000442 208 000465 213 000467 224 000471 226 000472 227 000501 229 000523 232 000527 233 000532 236 000554 239 000556 240 000562 252 000604 264 000606 274 000611 276 000612 277 000616 278 000621 292 000643 293 000656 294 000657 295 000661 307 000662 308 000664 309 000670 310 000673 311 000674 312 000676 313 000702 325 000705 326 000707 327 000713 328 000715 329 000717 330 000720 343 000721 344 000730 347 000731 348 000732 349 000733 351 000734 352 000740 355 000741 356 000742 358 000743 359 000747 362 000750 363 000751 364 000752 365 000753 366 000754 367 000755 368 000756 370 000757 373 000777 385 001000 387 001011 388 001012 389 001014 390 001016 392 001021 404 001026 406 001027 407 001031 408 001035 409 001037 420 001040 422 001041 424 001047 434 001050 445 001051 448 001055 449 001060 452 001105 ----------------------------------------------------------- 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