COMPILATION LISTING OF SEGMENT gcos_mme_info_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1201.9 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gcos_mme_info_: proc (mcpp, increment); 7 8 /* 9* * MME GEINFO allows a slave program to access specific information outside the 10* * program's normal Base Address Register (BAR) limits. Either or both of the 11* * following functions may be requested: 12* * 13* * 14* * 1. Information from the upper slave service area (SSA) of the user 15* * program can be copied to a buffer provided by the user. 16* * ***NOTE: this function is _n_o_t supported*** 17* * 18* * 2. A List Pointer Word (LPW) can be supplied to allow one or more single 19* * units of information to be placed in the slave program's core memory. 20* * 21* * 22* * CALLING SEQUENCE 23* * 24* * MME GEINFO 25* * ZERO Buffer_end,Number_of_words 26* * ZERO LPW,Size_of_list 27* * 28* * 29* * WHERE: 30* * 31* * Buffer_end address+1 of the end of a buffer storage area 32* * Number_of_words size of the storage area 33* * LPW Address of first word of list of directives to be processed 34* * Size_of_list Number of words of list directives 35* * 36* * 37* * The format of the list of directives is as follows: 38* * 39* * 40* * ZERO Address,Option 41* * ZERO Address,Option 42* * . . . 43* * . . . 44* * ZERO Address,Option 45* * 46* * 47* * Address is the location at which the requested data word is to be stored. 48* * Option is the option number (See code below for values). 49* * 50* * 51* Author: ? 52* Change: M. R. Jordan, October 1977 53* Change: Dave Ward 07/28/81 Reorganized. 4S1 notice. Removed arg list restriction (By Dick Hemes) 54* Change: Ron Barstad 83-09-29 Changed software release "4S1" to "4S3". 55* Added options 16 and 17 for 4js3. 56* Change: Ron Barstad 84-02-21 Allow move from SSA if only 2 words since 57* is BCD userid 58**/ 59 dcl increment fixed bin(24)parm; 60 dcl mcpp ptr parm; 61 mcp = mcpp; 62 63 /* 64* Get set up for the MME processing. 65**/ 66 increment = 2; 67 scup = addr (mc.scu); 68 storage_limit = gcos_ext_stat_$storage_limit; 69 gseg_ptr = gcos_ext_stat_$gcos_slave_area_seg; 70 71 72 /* 73* Verify that the entire MME argument list is in addressable memory. 74**/ 75 76 mme_arg_list_loc = fixed (scu.ilc, 18)+1; 77 if mme_arg_list_loc+2 >= storage_limit then 78 call gcos_mme_bort_$system ( /* Bad mme address. */ 79 gcos_et_$bad_mme_addr 80 , "MME GEINFO argument list is not entirely in slave limits." 81 ); 82 mme_arg_list_ptr = addrel (gseg_ptr, mme_arg_list_loc); 83 84 /* 85* Is the user asking for any SSA words to be copied? If so we must complain 86* at this point since we cannot satisfy such a request. 87**/ 88 if mme_arg_list.number_of_words ^= (18)"0"b /* User has given an SSA Copy request */ 89 then if /* See if we can bypass because it's redundant */ 90 mme_arg_list.buffer_end ^= mme_arg_list.lpw | /* If SSA copy word just dup's the option word, we can */ 91 mme_arg_list.number_of_words ^= mme_arg_list.lpw_size then /* If any of these checks fail, we can't bypass */ 92 if fixed(mme_arg_list.number_of_words, 18) ^= 2 then /* there is ONE exception */ 93 do; 94 call gcos_mme_bort_$system ( /* Unimplemented MME. */ 95 gcos_et_$unimp_mme 96 , "MME GEINFO cannot copy SSA words to user buffer." 97 ); 98 end; 99 else do; 100 /* 101* Move the 2 word BCD userid (.SUID) to user buffer 102**/ 103 data_word_loc = fixed (mme_arg_list.buffer_end, 18); 104 if data_word_loc > storage_limit then 105 call gcos_mme_bort_$system ( /* Bad mme address. */ 106 gcos_et_$bad_mme_addr 107 , "MME GEINFO buffer end is not within slave limits." 108 ); 109 data_word_ptr = addrel (gseg_ptr, data_word_loc-2); 110 call gcos_cv_ascii_gebcd_ (addr(gcos_ext_stat_$userid),12, 111 data_word_ptr, i); 112 return; 113 end; 114 115 /* 116* Now that we seem to have a valid request for a list of directives to 117* be processed, let's see if the list is any good. 118**/ 119 arg_list_loc = fixed (mme_arg_list.lpw, 18); 120 size_of_list = fixed (mme_arg_list.lpw_size, 18); 121 if arg_list_loc+size_of_list > storage_limit then 122 call gcos_mme_bort_$system ( /* Bad mme address. */ 123 gcos_et_$bad_mme_addr 124 , "MME GEINFO directive list is not entirely within slave limits." 125 ); 126 if size_of_list = 0 then return; 127 arg_list_ptr = addrel (gseg_ptr, arg_list_loc); 128 129 130 /* 131* Now process the entire list of directives. 132**/ 133 do arg_list_index = 1 to size_of_list; 134 135 136 /* 137* Verify the validity of the data word location specified by the user in the directive list. 138* This address must be within the slave limits or we must inform the user that he has sinned. 139**/ 140 141 data_word_loc = fixed (arg_list.address (arg_list_index), 18); 142 if data_word_loc >= storage_limit then 143 call gcos_mme_bort_$system ( /* Bad mme address. */ 144 gcos_et_$bad_mme_addr 145 , "MME GEINFO directive word data location is outside slave limits." 146 ); 147 data_word_ptr = addrel (gseg_ptr, data_word_loc); 148 149 150 /* 151* Now extract the option number specified, verify it and prepare to process it. 152**/ 153 option_number = fixed (arg_list.option (arg_list_index), 18); 154 if option_number > hbound (opt, 1) then 155 call gcos_mme_bort_$system ( /* Bad mme address (option number). */ 156 gcos_et_$bad_mme_addr 157 , "MME GEINFO directive word option number is bad." 158 ); 159 goto opt (option_number); 160 161 /* 162* Processor time remaining (copy of .SALT) 163**/ 164 opt (1): 165 fixed_data_word = 166 Convert_Time (gcos_ext_stat_$time_limit-virtual_cpu_time_ ()+gcos_ext_stat_$initial_cpu_time); 167 goto option_loop; 168 169 /* 170* SYSOUT lines remaining (calculated from .SSYOT 0-17 - .SSYOT 18-35) 171**/ 172 opt (2): 173 fixed_data_word = gcos_ext_stat_$sysout_limit-gcos_ext_stat_$sysout_lines; 174 goto option_loop; 175 176 /* 177* Channel time remaining (copy of .SACHT) 178**/ 179 opt (3): 180 fixed_data_word = 0; 181 go to option_loop; 182 183 /* 184* Processor time used (copy of .SPRT) 185**/ 186 opt (4): 187 fixed_data_word = Convert_Time (virtual_cpu_time_ ()-gcos_ext_stat_$initial_cpu_time); 188 goto option_loop; 189 190 /* 191* SYSOUT lines used (from .SSYOT 18-35) 192**/ 193 opt (5): 194 fixed_data_word = gcos_ext_stat_$sysout_lines; 195 goto option_loop; 196 197 /* 198* Channel time used (copy of .STCHT) 199**/ 200 opt (6): 201 fixed_data_word = 0; 202 goto option_loop; 203 204 /* 205* Time-of-day start of activity (copy of .START) 206**/ 207 opt (7): 208 fixed_data_word = Convert_Time (gcos_ext_stat_$activity_start_time); 209 goto option_loop; 210 211 /* 212* Program state word (copy of .STATE) 213**/ 214 opt (8): 215 data_word = "400000000000"b3; 216 goto option_loop; 217 218 /* 219* Job urgency (from .SURG 18-23 aligned to bits 30-35) 220**/ 221 opt (9): 222 fixed_data_word = 10; 223 go to option_loop; 224 225 /* 226* Configuration data (copy of .CRFIG) 227* 228* This word says: Series 60 or 6000; IOM; IOM #0 configured; CPU #0 configured; 229* CPU #0 has EIS; and Datanet 355/6600 on system. 230**/ 231 opt (10): 232 data_word = "100010001000100000001000000000000001"b; 233 goto option_loop; 234 235 /* 236* BCD time in hours-minutes-seconds (formatted as hhmmss) 237**/ 238 opt (11): 239 call date_time_ (clock (), date_string); 240 date_string = substr (date_string, 1, 2) || substr (date_string, 4, 2) || substr (date_string, 7, 2); 241 call gcos_cv_ascii_gebcd_ (addr (date_string), 6, addr (data_word), i); 242 goto option_loop; 243 244 /* 245* Program number from SNUMB 246**/ 247 opt (12): 248 if substr (data_word, 1, 30) = gcos_ext_stat_$snumb then substr (data_word, 31, 6) = "12"b3; 249 else substr (data_word, 31, 6) = "00"b3; 250 goto option_loop; 251 252 /* 253* Software release number (copy of .CRSR) 254**/ 255 opt (13): 256 data_word = "046203202020"b3; /* "4S3" in BCD */ 257 goto option_loop; 258 259 /* 260* System default number of lines per printed page (copy of .CRPSZ) 261**/ 262 opt (14): 263 upper_half_data_word = 55; 264 goto option_loop; 265 266 /* 267* Julian date (copy of .CRJCD) 268**/ 269 opt (15): 270 fixed_data_word = Julian_Date (); 271 goto option_loop; 272 273 /* 274* Shared system number (.CRSSN) 275**/ 276 opt (16): 277 fixed_data_word = 0; 278 goto option_loop; 279 280 /* 281* Startup option word (copy of .CROPT) 282* 283* This word says: ASCII printer available, FORTX, 800 & 1600 bpi, 284* 800 bpi low-den and 1600 high-den. 285**/ 286 opt (17): 287 data_word = "010100000000000000100000001001000100"b; 288 option_loop: ; 289 end; 290 291 /* 292* Now that we have finished with the list of directives, return to the caller. 293**/ 294 return; 295 296 Convert_Time: proc (multime) returns (fixed bin (35)); 297 298 299 dcl multime fixed bin(71)parm; 300 gcostime = divide (multime, 1000, 29)*64; 301 return (gcostime); 302 303 dcl gcostime fixed bin(35); 304 end Convert_Time; 305 306 Julian_Date: proc () returns (fixed bin (24)); 307 308 309 310 call date_time_ (clock (), date_string); 311 call convert_date_to_binary_ (date_string||" midnight", midnight, code); 312 substr (date_string, 1, 5) = "01/01"; 313 call convert_date_to_binary_ (date_string||" midnight", start_year, code); 314 call convert_date_to_binary_$relative ("1day", tomorrow, midnight, code); 315 daysworth = tomorrow-midnight; 316 julian_date = divide ((midnight-start_year), daysworth, 34)+1; 317 return (julian_date); 318 319 dcl code fixed bin(35); 320 dcl convert_date_to_binary_ entry (char (*), fixed bin(71), fixed bin(35)); 321 dcl convert_date_to_binary_$relative entry (char (*), fixed bin(71), fixed bin(71), fixed bin(35)); 322 dcl daysworth fixed bin(71); 323 dcl julian_date fixed bin(24); 324 dcl midnight fixed bin(71); 325 dcl start_year fixed bin(71); 326 dcl tomorrow fixed bin(71); 327 end Julian_Date; 328 329 /* Variables for gcos_mme_info_: */ 330 /* IDENTIFIER ATTRIBUTES */ 331 dcl addr builtin; 332 dcl addrel builtin; 333 dcl arg_list_index fixed bin(24); 334 dcl arg_list_loc fixed bin(24); 335 dcl arg_list_ptr ptr; 336 dcl clock builtin; 337 dcl data_word bit (36) aligned based (data_word_ptr); 338 dcl data_word_loc fixed bin(24); 339 dcl data_word_ptr ptr; 340 dcl date_string char (8); 341 dcl date_time_ entry (fixed bin(71), char (*)); 342 dcl divide builtin; 343 dcl fixed builtin; 344 dcl fixed_data_word fixed bin(35) aligned based (data_word_ptr); 345 dcl gcos_cv_ascii_gebcd_ entry (ptr, fixed bin(24), ptr, fixed bin(24)); 346 dcl gcos_et_$bad_mme_addr fixed bin(35) ext; 347 dcl gcos_et_$unimp_mme fixed bin(35) ext; 348 dcl gcos_mme_bort_$system entry options (variable); 349 dcl gseg_ptr ptr; 350 dcl hbound builtin; 351 dcl i fixed bin(24); 352 dcl mme_arg_list_loc fixed bin(24); 353 dcl mme_arg_list_ptr ptr; 354 dcl option_number fixed bin(24); 355 dcl size_of_list fixed bin(24); 356 dcl storage_limit fixed bin(18); 357 dcl substr builtin; 358 dcl upper_half_data_word fixed bin(17) unal based (data_word_ptr); 359 dcl virtual_cpu_time_ entry () returns (fixed bin(71)); 360 361 dcl 1 arg_list (size_of_list) aligned based (arg_list_ptr), 362 2 address bit (18) unal, 363 2 option bit (18) unal; 364 365 366 dcl 1 mme_arg_list aligned based (mme_arg_list_ptr), 367 2 buffer_end bit (18) unal, 368 2 number_of_words bit (18) unal, 369 2 lpw bit (18) unal, 370 2 lpw_size bit (18) unal; 371 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 hex bit (1), /* hexadecimal exponent mode */ 7 169 3 pad bit (3), 7 170 7 171 7 172 /* WORD (5) */ 7 173 7 174 2 ca bit (18), /* COMPUTED ADDRESS */ 7 175 7 176 2 cu, /* CONTROL UNIT STATUS */ 7 177 3 rf bit (1), /* on first cycle of repeat instr */ 7 178 3 rpt bit (1), /* repeat instruction */ 7 179 3 rd bit (1), /* repeat double instruction */ 7 180 3 rl bit (1), /* repeat link instruciton */ 7 181 3 pot bit (1), /* IT modification */ 7 182 3 pon bit (1), /* return type instruction */ 7 183 3 xde bit (1), /* XDE from Even location */ 7 184 3 xdo bit (1), /* XDE from Odd location */ 7 185 3 poa bit (1), /* operation preparation */ 7 186 3 rfi bit (1), /* tells CPU to refetch instruction */ 7 187 3 its bit (1), /* ITS modification */ 7 188 3 if bit (1), /* fault occured during instruction fetch */ 7 189 7 190 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 7 191 7 192 7 193 /* WORDS (6,7) */ 7 194 7 195 2 even_inst bit (36), /* even instruction of faulting pair */ 7 196 7 197 2 odd_inst bit (36); /* odd instruction of faulting pair */ 7 198 7 199 7 200 7 201 7 202 7 203 7 204 /* ALTERNATE SCU DECLARATION */ 7 205 7 206 7 207 dcl 1 scux based (scup) aligned, 7 208 7 209 (2 pad0 bit (36), 7 210 7 211 2 fd, /* GROUP II FAULT DATA */ 7 212 3 isn bit (1), /* illegal segment number */ 7 213 3 ioc bit (1), /* illegal op code */ 7 214 3 ia_am bit (1), /* illegal address - modifier */ 7 215 3 isp bit (1), /* illegal slave procedure */ 7 216 3 ipr bit (1), /* illegal procedure */ 7 217 3 nea bit (1), /* non existent address */ 7 218 3 oobb bit (1), /* out of bounds */ 7 219 3 pad bit (29), 7 220 7 221 2 pad2 bit (36), 7 222 7 223 2 pad3a bit (18), 7 224 7 225 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 7 226 3 prn bit (3), /* PR number */ 7 227 3 prv bit (1), /* PR valid bit */ 7 228 7 229 2 pad3b bit (6)) unaligned, 7 230 7 231 2 pad45 (0:1) bit (36), 7 232 7 233 2 instr (0:1) bit (36); /* Instruction ARRAY */ 7 234 7 235 7 236 7 237 /* 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 */ 372 373 end gcos_mme_info_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1036.5 gcos_mme_info_.pl1 >spec>on>7105>gcos_mme_info_.pl1 372 1 09/09/83 1714.4 gcos_ext_stat_.incl.pl1 >ldd>include>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/09/83 1714.4 gcos_flags.incl.pl1 >ldd>include>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 12/15/83 1100.4 mc.incl.pl1 >ldd>include>mc.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. addr builtin function dcl 331 ref 67 110 110 241 241 241 241 addrel builtin function dcl 332 ref 82 109 127 147 address based bit(18) array level 2 packed unaligned dcl 361 ref 141 arg_list based structure array level 1 dcl 361 arg_list_index 000100 automatic fixed bin(24,0) dcl 333 set ref 133* 141 153* arg_list_loc 000101 automatic fixed bin(24,0) dcl 334 set ref 119* 121 127 arg_list_ptr 000102 automatic pointer dcl 335 set ref 127* 141 153 buffer_end based bit(18) level 2 packed unaligned dcl 366 ref 88 103 clock builtin function dcl 336 ref 238 238 310 310 code 000150 automatic fixed bin(35,0) dcl 319 set ref 311* 313* 314* convert_date_to_binary_ 000046 constant entry external dcl 320 ref 311 313 convert_date_to_binary_$relative 000050 constant entry external dcl 321 ref 314 data_word based bit(36) dcl 337 set ref 214* 231* 241 241 247 247* 249* 255* 286* data_word_loc 000104 automatic fixed bin(24,0) dcl 338 set ref 103* 104 109 141* 142 147 data_word_ptr 000106 automatic pointer dcl 339 set ref 109* 110* 147* 164 172 179 186 193 200 207 214 221 231 241 241 247 247 249 255 262 269 276 286 date_string 000110 automatic char(8) unaligned dcl 340 set ref 238* 240* 240 240 240 241 241 310* 311 312* 313 date_time_ 000010 constant entry external dcl 341 ref 238 310 daysworth 000152 automatic fixed bin(71,0) dcl 322 set ref 315* 316 divide builtin function dcl 342 ref 300 316 fct_entry based structure level 1 dcl 3-3 fib based structure level 1 dcl 6-10 fixed builtin function dcl 343 ref 76 88 103 119 120 141 153 fixed_data_word based fixed bin(35,0) dcl 344 set ref 164* 172* 179* 186* 193* 200* 207* 221* 269* 276* flags based structure level 1 dcl 5-8 gcos_cv_ascii_gebcd_ 000012 constant entry external dcl 345 ref 110 241 gcos_et_$bad_mme_addr 000014 external static fixed bin(35,0) dcl 346 set ref 77* 104* 121* 142* 154* gcos_et_$unimp_mme 000016 external static fixed bin(35,0) dcl 347 set ref 94* gcos_ext_stat_$activity_start_time 000024 external static fixed bin(71,0) dcl 1-17 set ref 207* gcos_ext_stat_$gcos_slave_area_seg 000026 external static pointer dcl 1-27 ref 69 gcos_ext_stat_$initial_cpu_time 000030 external static fixed bin(71,0) dcl 1-31 ref 164 186 gcos_ext_stat_$snumb 000032 external static bit(30) dcl 1-56 ref 247 gcos_ext_stat_$storage_limit 000034 external static fixed bin(19,0) dcl 1-60 ref 68 gcos_ext_stat_$sysout_limit 000036 external static fixed bin(35,0) dcl 1-61 ref 172 gcos_ext_stat_$sysout_lines 000040 external static fixed bin(35,0) dcl 1-62 ref 172 193 gcos_ext_stat_$time_limit 000042 external static fixed bin(71,0) dcl 1-68 ref 164 gcos_ext_stat_$userid 000044 external static char(12) unaligned dcl 1-69 set ref 110 110 gcos_mme_bort_$system 000020 constant entry external dcl 348 ref 77 94 104 121 142 154 gcostime 000140 automatic fixed bin(35,0) dcl 303 set ref 300* 301 gseg_ptr 000112 automatic pointer dcl 349 set ref 69* 82 109 127 147 hbound builtin function dcl 350 ref 154 i 000114 automatic fixed bin(24,0) dcl 351 set ref 110* 241* ilc 4 based bit(18) level 2 packed unaligned dcl 7-56 ref 76 increment parameter fixed bin(24,0) dcl 59 set ref 6 66* julian_date 000154 automatic fixed bin(24,0) dcl 323 set ref 316* 317 lpw 1 based bit(18) level 2 packed unaligned dcl 366 ref 88 119 lpw_size 1(18) based bit(18) level 2 packed unaligned dcl 366 ref 88 120 mc based structure level 1 dcl 7-12 mcp 000124 automatic pointer dcl 7-10 set ref 61* 67 mcpp parameter pointer dcl 60 ref 6 61 midnight 000156 automatic fixed bin(71,0) dcl 324 set ref 311* 314* 315 316 mme_arg_list based structure level 1 dcl 366 mme_arg_list_loc 000115 automatic fixed bin(24,0) dcl 352 set ref 76* 77 82 mme_arg_list_ptr 000116 automatic pointer dcl 353 set ref 82* 88 88 88 88 88 88 103 119 120 multime parameter fixed bin(71,0) dcl 299 ref 296 300 number_of_words 0(18) based bit(18) level 2 packed unaligned dcl 366 ref 88 88 88 option 0(18) based bit(18) array level 2 packed unaligned dcl 361 ref 153 option_number 000120 automatic fixed bin(24,0) dcl 354 set ref 153* 154 159 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_info_" set ref 67 scu based structure level 1 dcl 7-56 in procedure "gcos_mme_info_" scup 000126 automatic pointer dcl 7-54 set ref 67* 76 size_of_list 000121 automatic fixed bin(24,0) dcl 355 set ref 120* 121 126 133 start_year 000160 automatic fixed bin(71,0) dcl 325 set ref 313* 316 storage_limit 000122 automatic fixed bin(18,0) dcl 356 set ref 68* 77 104 121 142 substr builtin function dcl 357 set ref 240 240 240 247 247* 249* 312* tomorrow 000162 automatic fixed bin(71,0) dcl 326 set ref 314* 315 upper_half_data_word based fixed bin(17,0) unaligned dcl 358 set ref 262* virtual_cpu_time_ 000022 constant entry external dcl 359 ref 164 186 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_$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_$fct external static structure level 1 dcl 1-102 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_$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_$pch external static pointer dcl 1-47 gcos_ext_stat_$pdir external static varying char(168) dcl 1-48 gcos_ext_stat_$prt external static pointer dcl 1-49 gcos_ext_stat_$rs external static pointer dcl 1-50 gcos_ext_stat_$save_data external static structure level 1 dcl 1-106 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_$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_$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-207 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. Convert_Time 000765 constant entry internal dcl 296 ref 164 186 207 Julian_Date 001000 constant entry internal dcl 306 ref 269 gcos_mme_info_ 000177 constant entry external dcl 6 opt 000000 constant label array(17) dcl 164 set ref 154 159 option_loop 000761 constant label dcl 288 ref 167 174 181 188 195 202 209 216 223 233 242 250 257 264 271 278 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1404 1456 1157 1414 Length 2014 1157 52 321 225 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_mme_info_ 210 external procedure is an external procedure. Convert_Time internal procedure shares stack frame of external procedure gcos_mme_info_. Julian_Date internal procedure shares stack frame of external procedure gcos_mme_info_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_mme_info_ 000100 arg_list_index gcos_mme_info_ 000101 arg_list_loc gcos_mme_info_ 000102 arg_list_ptr gcos_mme_info_ 000104 data_word_loc gcos_mme_info_ 000106 data_word_ptr gcos_mme_info_ 000110 date_string gcos_mme_info_ 000112 gseg_ptr gcos_mme_info_ 000114 i gcos_mme_info_ 000115 mme_arg_list_loc gcos_mme_info_ 000116 mme_arg_list_ptr gcos_mme_info_ 000120 option_number gcos_mme_info_ 000121 size_of_list gcos_mme_info_ 000122 storage_limit gcos_mme_info_ 000124 mcp gcos_mme_info_ 000126 scup gcos_mme_info_ 000140 gcostime Convert_Time 000150 code Julian_Date 000152 daysworth Julian_Date 000154 julian_date Julian_Date 000156 midnight Julian_Date 000160 start_year Julian_Date 000162 tomorrow Julian_Date THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry divide_fx3 divide_fx4 clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_date_to_binary_ convert_date_to_binary_$relative date_time_ gcos_cv_ascii_gebcd_ gcos_mme_bort_$system virtual_cpu_time_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gcos_et_$bad_mme_addr gcos_et_$unimp_mme gcos_ext_stat_$activity_start_time gcos_ext_stat_$gcos_slave_area_seg gcos_ext_stat_$initial_cpu_time gcos_ext_stat_$snumb gcos_ext_stat_$storage_limit gcos_ext_stat_$sysout_limit gcos_ext_stat_$sysout_lines gcos_ext_stat_$time_limit gcos_ext_stat_$userid LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000173 61 000204 66 000210 67 000212 68 000214 69 000216 76 000221 77 000225 82 000247 88 000253 94 000276 98 000316 103 000317 104 000322 109 000344 110 000351 112 000372 119 000373 120 000377 121 000402 126 000425 127 000427 133 000433 141 000443 142 000447 147 000471 153 000475 154 000502 159 000524 164 000526 167 000552 172 000553 174 000562 179 000563 181 000564 186 000565 188 000610 193 000611 195 000614 200 000615 202 000616 207 000617 209 000630 214 000631 216 000633 221 000634 223 000636 231 000637 233 000641 238 000642 240 000661 241 000700 242 000723 247 000724 249 000735 250 000737 255 000740 257 000742 262 000743 264 000747 269 000750 271 000754 276 000755 278 000756 286 000757 288 000761 289 000762 294 000764 296 000765 300 000767 301 000775 306 001000 310 001002 311 001021 312 001050 313 001053 314 001102 315 001130 316 001133 317 001142 ----------------------------------------------------------- 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