ASSEMBLY LISTING OF SEGMENT >spec>install>1110>fim_util.alm ASSEMBLED ON: 11/11/89 0952.2 mst Sat OPTIONS USED: -target l68 list symbols ASSEMBLED BY: ALM Version 8.14 March 1989 ASSEMBLER CREATED: 06/09/89 1002.3 mst Fri 1 " *********************************************************** 2 " * * 3 " * Copyright, (C) Honeywell Bull Inc., 1987 * 4 " * * 5 " * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6 " * * 7 " *********************************************************** 8 9 10 " FIM_UTIL - Utility subroutines for the fim, wired_fim, and ii. 11 " consolidated 10/18/76 by Noel I. Morris 12 " Modified 1 Feb 79 by D. Spector for new scs format for 8-cpu cioc 13 " Modified 8/27/79 by J. A. Bush to reorganize the check_fault subroutine 14 " Modified 8/25/80 by J. A. Bush for the DPS8/70M CPU 15 " Modified 2/23/81 by J. Bongiovanni for fast connect code 16 " Modified 3/5/81 by J. Bongiovanni for OOSB on prds 17 " Modified 3/23/81 by J. A. Bush to dump extended APU history reg. for DPS8/70M. 18 " Modified 9/23/81 by J. A. Bush to not use QU mode when saving AMs 19 " Modified 10/28/81 by J. Bongiovanni for bug in check_fault 20 " Modified 2/8/82 by J. Bongiovanni to trap on masked in user ring (conditionally) 21 " Modified 02/16/82 by J. A. Bush to not trash mc.fault_reg for sys_trouble crash 22 " Modified 07/30/82 by J. Bongiovanni for scs$trouble_processid 23 " Modified 10/13/82 by E. N. Kittlitz to clear indicators in v_time_init. 24 " Modified sometime by B. I. Margulies for bootload multics. 25 " Modified 4/7/83 by E. N. Kittlitz for drl_fault_trouble. 26 " Modified 10/8/83 by J. A. Bush to dump extended fault register 27 " Modified 10/18/83 by R. Coppola to meter per-processor cache errors 28 " Modified 11/27/83 by E. N. Kittlitz for ext vcpu entries 29 " Modified 83-12-05 by BIM for checking fault-masked always. 30 31 32 " HISTORY COMMENTS: 33 " 1) change(88-05-24,Farley), approve(88-06-30,MCR7927), 34 " audit(88-07-12,Fawcett), install(88-08-02,MR12.2-1076): 35 " Added checking in force_hist_regs for the new prds$hregs_last_saved time 36 " and in save_fault_reg for prds$fault_reg_last_saved. This is to prevent 37 " multiple attempts to save the data, resulting in the data becoming zero. 38 " END HISTORY COMMENTS 39 40 000000 41 name fim_util 42 43 000000 44 segdef check_fault validate a fault 000010 45 segdef check_interrupt validate an interrupt 000054 46 segdef fault_trouble illegal fault condition 000056 47 segdef drl_fault_trouble illegal fault, you say what it is 000073 48 segdef copy_mc copy machine conditions 000100 49 segdef push_stack push stack frame 000110 50 segdef push_stack_32 push stack frame with grace area 000113 51 segdef set_mask set controller mask to sys level 000124 52 segdef restore_mask restore previous controller mask 000136 53 segdef hist_regs save history regs and AMs 000144 54 segdef force_hist_regs force save history regs and AMs 000316 55 segdef check_mct check and trace machine conditions and hregs 000364 56 segdef reset_mode_reg turn on hist reg and cache 000374 57 segdef v_time_init start virtual time meter 000403 58 segdef fim_v_time_init save virtual time for FIM 000430 59 segdef v_time_calc stop virtual time meter 000446 60 segdef fim_v_time_calc compute virtual time for FIM 61 000455 62 entry fim_v_time_calc_ext externally callable fim_v_time_calc 000413 63 entry fim_v_time_init_ext externally callable fim_v_time_init 64 000010 65 link prds_link,prds$+0 66 67 000000 68 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+> 69 70 " 71 72 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 73 " 74 " Procedure to check validity of faults and interrupts 75 " 76 " 77 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 78 000000 79 check_fault: 000000 4a 4 00012 2373 20 80 ldaq pds$apt_ptr get pointer to our APT entry 000001 4a 4 00014 1173 20 81 cmpaq prds$idle_ptr are we in idle process? 000002 0a 000046 6002 00 82 tze idle_trouble if so, stop the entire system at once 83 000003 4a 4 00016 7213 20 84 lxl1 prds$processor_tag 000004 4a 4 00020 7613 20 85 lprpab scs$mask_ptr,1 000005 4a 4 00022 7163 20 86 xec scs$read_mask,1 000006 4a 4 00024 1173 20 87 cmpaq scs$sys_level masked to system level 000007 0a 000050 6002 00 88 tze fault_masked_trouble 89 000010 90 check_interrupt: 000010 aa 2 00030 2353 00 91 lda bp|mc.scu.ppr.prr_word check whether running in ring-0 000011 aa 700000 3152 03 92 cana scu.ppr.prr_mask,du ring number in ppr 000012 0a 000043 6012 00 93 tnz not_invalid not ring-0 94 000013 aa 000000 6272 00 95 eax7 0 nothing invalid yet 000014 aa 2 00014 2353 00 96 lda bp|mc.prs+6*2 1st word of stack pointer 000015 aa 077777 2362 07 97 ldq =o77777,dl mask to check seg-no and val. ring 000016 4a 4 00010 2113 00 98 cmk lp|prds_link is stack=prds and ring-0 000017 0a 000033 6012 00 99 tnz not_on_prds no 000020 aa 777776 2272 03 100 ldx7 -trbl_prds_fi,du fault on prds 101 000021 aa 2 00032 2353 00 102 lda bp|mc.scu.tpr.tsr_word now check for stack overflow 000022 aa 777777 2362 07 103 ldq =o777777,dl ring number, segment number in TSR 000023 4a 4 00010 2113 00 104 cmk lp|prds_link was target prds 000024 0a 000033 6012 00 105 tnz not_on_prds no 000025 aa 2 00031 2353 00 106 lda bp|mc.scu.fault_data_word stack overflow is OOSB 000026 aa 000004 3152 03 107 cana scu.fd.oosb,du is it possibly OOSB (must also be acv) 000027 0a 000033 6002 00 108 tze not_on_prds not at all 000030 aa 000077 3752 07 109 ana scu.fi_num_mask+scu.fi_flag_mask,dl check fault type 000031 aa 000051 1152 07 110 cmpa 2*FAULT_NO_ACV+1,dl fault/access violation 000032 0a 000052 6002 00 111 tze oosb_prds_trouble on the prds! 112 000033 113 not_on_prds: 000033 4a 4 00026 2353 20 114 lda pds$processid do we have ptr locked 000034 4a 4 00030 1153 20 115 cmpa sst$ptl 000035 0a 000037 6012 00 116 tnz not_ptl_locked no 000036 aa 777774 2272 03 117 ldx7 -trbl_ptl_fi,du f/i with ptl locked 118 000037 119 not_ptl_locked: 000037 aa 000000 6352 17 120 eaa 0,7 any invalid condition found 000040 0a 000043 6002 00 121 tze not_invalid no 000041 aa 000022 7312 00 122 ars 18 set up sys_trouble_pending 000042 0a 000060 7102 00 123 tra check_fault_trouble .. 124 000043 125 not_invalid: 000043 aa 000401 3352 07 126 lca scu.ir.parm+1,dl turn OFF parity mask 000044 aa 2 00034 3553 00 127 ansa bp|mc.scu.indicators_word 128 000045 aa 000000 7102 10 129 tra 0,0 return to caller 130 000046 131 idle_trouble: 000046 aa 000003 3352 07 132 lca trbl_idle_flt,dl fault while in idle process 000047 0a 000060 7102 00 133 tra check_fault_trouble .. 134 000050 135 fault_masked_trouble: 000050 aa 000011 3352 07 136 lca trbl_fault_masked,dl fault while masked to system level 000051 0a 000060 7102 00 137 tra check_fault_trouble 138 000052 139 oosb_prds_trouble: 000052 aa 000010 3352 07 140 lca trbl_oosb_prds,dl yes--oosb on prds (stack overflow) 000053 0a 000060 7102 00 141 tra check_fault_trouble .. 142 000054 143 fault_trouble: 000054 aa 000005 3352 07 144 lca trbl_illeg_flt,dl unrecognized fault 000055 0a 000060 7102 00 145 tra check_fault_trouble 146 000056 147 drl_fault_trouble: 000056 aa 000013 3352 07 148 lca trbl_r0_drl_flt,dl ring 0 derail 000057 0a 000060 7102 00 149 tra check_fault_trouble 150 000060 151 check_fault_trouble: 000060 4a 4 00032 7553 20 152 sta scs$sys_trouble_pending set trouble flags 153 000061 4a 4 00026 2353 20 154 lda pds$processid save our process ID 000062 4a 4 00034 3543 20 155 stac scs$trouble_processid if we're the first 156 000063 0a 000213 7012 00 157 tsx1 save_fault_reg save fault reg and cpu type 158 000064 4a 4 00036 2353 20 159 lda sys_info$initialization_state Too early for connect? 000065 aa 000002 1152 07 160 cmpa =2,dl Multiprocessing? 000066 4a 4 00040 6047 20 161 tmoz sys_trouble$sys_trouble Go directly to jail ... 162 000067 4a 4 00016 7213 20 163 lxl1 prds$processor_tag prepare to send connect 000070 4a 4 00042 0153 20 164 cioc scs$cow_ptrs,1* ZAP 165 000071 0a 000071 6162 00 166 dis * cannot inhibit connects at a DIS 000072 aa 777777 7102 04 167 tra -1,ic STOP 168 " 169 170 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 171 " 172 " COPY_MC - Procedure to copy machine conditions 173 " 174 " 175 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 176 000073 177 copy_mc: 000073 aa 0 00100 1007 00 178 mlr (pr),(pr) copy machine conditions 000074 aa 200000 000300 179 desc9a bp|0,48*4 000075 aa 000000 000300 180 desc9a ap|0,48*4 000076 aa 0 00000 3523 00 181 eppbp ap|0 make bp -> copied conditions 182 000077 aa 000000 7102 10 183 tra 0,0 return to caller 184 185 186 187 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 188 " 189 " PUSH_STACK - Procedure to create a stack frame 190 " 191 " 192 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 193 000100 194 push_stack: 000100 aa 7 00024 3503 20 195 eppap sb|stack_header.stack_end_ptr,* ap -> place for frame 000101 196 push_join: 000101 aa 0 00020 6523 00 197 sprisp ap|stack_frame.prev_sp save current sp 000102 aa 0 00000 3723 00 198 eppsp ap|0 set sp to new frame 000103 aa 6 00000 3503 17 199 eppap sp|0,7 ap -> end of frame 000104 aa 6 00022 2503 00 200 spriap sp|stack_frame.next_sp save next sp 000105 aa 7 00024 2503 00 201 spriap sb|stack_header.stack_end_ptr save end pointer 000106 aa 6 00030 6503 00 202 sprilp sp|stack_frame.lp_ptr save our linkage ptr 203 000107 aa 000000 7102 10 204 tra 0,0 return to caller 205 206 000110 207 push_stack_32: 000110 aa 7 00024 3503 20 208 eppap sb|stack_header.stack_end_ptr,* ap -> place for frame 000111 aa 0 00040 3503 00 209 eppap ap|32 leave room for push in progress 000112 0a 000101 7102 00 210 tra push_join join common code 211 212 " 213 214 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 215 " 216 " Procedures to save and restore controller masks 217 " 218 " 219 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 220 000113 221 set_mask: 000113 4a 4 00016 7213 20 222 lxl1 prds$processor_tag processor tag in X1 000114 4a 4 00020 7613 20 223 lprpab scs$mask_ptr,1 get pointer for masking 000115 4a 4 00022 7163 20 224 xec scs$read_mask,1 read mask, if assigned 000116 aa 2 00040 7573 00 225 staq bp|mc.mask save it 226 000117 4a 4 00016 7213 20 227 lxl1 prds$processor_tag CPU tag in X1 000120 4a 4 00020 7613 20 228 lprpab scs$mask_ptr,1 get pointer for masking 000121 4a 4 00024 2373 20 229 ldaq scs$sys_level going to mask all interrupts 000122 4a 4 00044 7163 20 230 xec scs$set_mask,1 only if mask is assigned 231 000123 aa 000000 7102 10 232 tra 0,0 233 234 235 000124 236 restore_mask: 000124 4a 4 00016 7213 20 237 lxl1 prds$processor_tag CPU tag in X1 000125 4a 4 00020 7613 20 238 lprpab scs$mask_ptr,1 get pointer for masking 000126 aa 2 00040 2373 00 239 ldaq bp|mc.mask get original mask 000127 0a 000134 2772 00 240 oraq channel_mask_set make sure channel mask is correct 000130 4a 4 00046 3773 20 241 anaq scs$open_level .. 000131 4a 4 00044 7163 20 242 xec scs$set_mask,1 restore the mask 243 000132 aa 000000 7102 10 244 tra 0,0 return to caller 245 246 000133 aa 000000 0112 03 247 even 000134 248 channel_mask_set: 000134 aa 000000 000017 249 oct 17,17 000135 aa 000000 000017 250 251 " 252 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 253 " 254 " Procedures to save history regs. Enter with bb -> place to store history regs. 255 " hist_regs - save history regs only if per-system 256 " (wired_hardcore_data$global_hregs) or per-process 257 " (pds$save_history_regs) flags are set. 258 " force_hist_regs - save history regs unconditionaly 259 " 260 " X4 is set with the cpu type (0 = L68/DPS, 1 = DPS8) by the 261 " save_fault_reg subroutine which is called by the check_mct subroutine 262 " which is called by all callers of this subroutine. 263 " 264 " 265 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 266 000136 267 hist_regs: 000136 4a 4 00050 2343 20 268 szn wired_hardcore_data$global_hregs is global history reg save flag on? 000137 0a 000144 6042 00 269 tmi force_hist_regs xfer if yes 000140 4a 4 00052 2343 20 270 szn pds$save_history_regs no, is per_process hregs switch on? 000141 0a 000144 6042 00 271 tmi force_hist_regs xfer if yes 000142 4a 4 00054 4503 20 272 stz pds$hregs_saved no, zero switch for signaller 000143 aa 000000 7102 10 273 tra 0,0 and return to caller 274 000144 275 force_hist_regs: 000144 aa 2 00046 2373 00 276 ldaq bp|mc.fault_time check fault time 000145 aa 777777 3752 07 277 ana =o777777,dl only lower 54 bits 000146 4a 4 00056 1173 20 278 cmpaq prds$hregs_last_saved against last time saved 000147 aa 000000 6046 10 279 tmoz 0,0 return if already saved 000150 4a 4 00056 7573 20 280 staq prds$hregs_last_saved set to fault time if not 000151 aa 400000 2352 03 281 lda =o400000,du set hreg saved switch 000152 4a 4 00054 7553 20 282 sta pds$hregs_saved for signaller 000153 0a 000261 7012 00 283 tsx1 save_am go save associative memory 000154 aa 000002 2362 03 284 ldq 2,du get a 2 for stepping address 000155 aa 000004 6262 00 285 eax6 4 4 blocks of 000156 aa 000020 6272 00 286 scpr1: eax7 16 16 history registers 000157 aa 000000 6232 00 287 eax3 0 set up for L68 CPU type initally 000160 aa 000001 1042 03 288 cmpx4 1,du is this a DPS8/70M CPU? 000161 0a 000163 6012 00 289 tnz scpr2 xfer if no, it is L68 000162 aa 000060 6232 00 290 eax3 48 yes, set up to skip first 48 hregs 000163 0a 000206 2352 16 291 scpr2: lda scpr-1,6 get correct instruction 000164 aa 2 00044 7553 00 292 sta bp|mc.fim_temp save in stack 000165 aa 2 00044 7163 00 293 scpr3: xec bp|mc.fim_temp execute the instruction 000166 aa 000000 1032 03 294 cmpx3 0,du are we through skipping hregs? 000167 0a 000172 6002 00 295 tze scpr4 yes, go increment address 000170 aa 777777 6232 13 296 eax3 -1,3 no, skip another 000171 0a 000165 7102 00 297 tra scpr3 and go execute scpr again 298 000172 aa 2 00044 0563 00 299 scpr4: asq bp|mc.fim_temp increment address of instruction 000173 aa 777777 6272 17 300 eax7 -1,7 count down 000174 0a 000165 6012 00 301 tnz scpr3 more of this 16 double word block 000175 aa 777777 6262 16 302 eax6 -1,6 count down 000176 0a 000156 6012 00 303 tnz scpr1 another kind of hreg 304 000177 aa 000100 6272 00 305 eax7 64 initially set clear count to 64 000200 aa 000001 1042 03 306 cmpx4 1,du is this a DPS8/70M CPU? 000201 0a 000203 6002 00 307 tze *+2 yes, clear all 64 hregs 000202 aa 000020 6272 00 308 eax7 16 no, clear only 16 hregs 000203 aa 000000 6742 03 309 lcpr 0,03 set all history regs to zero 000204 aa 777777 6272 17 310 eax7 -1,7 count down 000205 0a 000203 6056 00 311 tpnz *-2 xfer if more to do 000206 aa 000000 7102 10 312 tra 0,0 return to caller 313 000207 aa 3 00000 4523 40 314 scpr: scpr bb|0,40 OU History Regs for L68, OU/DU for DPS8 000210 aa 3 00040 4523 20 315 scpr bb|32,20 CU History Regs 000211 aa 3 00100 4523 10 316 scpr bb|64,10 DU History Regs for L68, extended APU for DPS8 000212 aa 3 00140 4523 00 317 scpr bb|96,00 APU History Regs 318 319 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 320 " 321 " Internal subroutine for saving fault register, extended fault 322 " register and CPU type (from RSW (2)), int the machine condition area. 323 " entry via tsx1 save_fault_reg. Exit with x4 containing the CPU type 324 " 325 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 326 000213 327 save_fault_reg: 000213 aa 2 00046 2373 00 328 ldaq bp|mc.fault_time check fault time 000214 aa 777777 3752 07 329 ana =o777777,dl only lower 54 bits 000215 4a 4 00060 1173 20 330 cmpaq prds$fault_reg_last_saved against last time saved 000216 aa 000000 6046 11 331 tmoz 0,1 return if already saved 000217 4a 4 00060 7573 20 332 staq prds$fault_reg_last_saved set to fault time if not 000220 aa 2 00044 4523 01 333 scpr bp|mc.fim_temp,01 store the fault register 000221 aa 2 00044 2373 00 334 ldaq bp|mc.fim_temp 000222 aa 2 00045 7553 00 335 sta bp|mc.fault_reg save M.S. 36 bits 000223 aa 000002 2312 00 336 rsw 2 get cpu type in a 000224 aa 000036 7712 00 337 arl 30 position in al 000225 aa 000003 3752 07 338 ana 3,dl 000226 aa 000000 6242 05 339 eax4 0,al save cpu type in x4 000227 aa 000003 7732 00 340 lrl mc.cpu_type_shift merge with ext. fault reg 000230 aa 2 00046 7523 70 341 stcq bp|mc.cpu_type_word,70 and save in M.C. 000231 4a 4 00016 2353 20 342 lda prds$processor_tag get cpu num 000232 0a 000251 7162 05 343 xec cache_ctr_tab,al lb=> per-cpu cache err ctrs 000233 aa 2 00045 2353 00 344 lda bp|mc.fault_reg reload PFR 000234 aa 000010 3752 07 345 ana =o10,dl cache dir parity (bit 32)? 000235 0a 000237 6002 00 346 tze check_efr no, go check EFR 000236 aa 5 00001 0543 00 347 aos lb|1 yes, increment the per-cpu ctr 000237 348 check_efr: 000237 aa 077774 3762 03 349 anq mc.ext_fault_reg_mask,du mask unwanted bits OFF 000240 aa 000000 6002 11 350 tze 0,1 no bits on, return 000241 aa 000002 7362 00 351 qls 2 get EFR bits in Q 1-17 000242 aa 000000 6352 00 352 eaa 0 set up A as incrementer 000243 353 efr_loop: 000243 aa 000001 0752 07 354 ada 1,dl increment EFR slot number 000244 aa 000001 7362 00 355 qls 1 is this bit on? 000245 0a 000243 6056 00 356 tpnz efr_loop no, but some other bit on 000246 aa 000000 6002 11 357 tze 0,1 no more EFR bits, return 000247 aa 5 00001 0543 05 358 aos lb|1,al increment EFR counter 000250 0a 000243 7102 00 359 tra efr_loop look for nxt EFR bit 360 000251 361 cache_ctr_tab: 000251 4a 4 00062 3717 20 362 epplb wired_hardcore_data$cpu_a_cache_err_ctr_array 000252 4a 4 00064 3717 20 363 epplb wired_hardcore_data$cpu_b_cache_err_ctr_array 000253 4a 4 00066 3717 20 364 epplb wired_hardcore_data$cpu_c_cache_err_ctr_array 000254 4a 4 00070 3717 20 365 epplb wired_hardcore_data$cpu_d_cache_err_ctr_array 000255 4a 4 00072 3717 20 366 epplb wired_hardcore_data$cpu_e_cache_err_ctr_array 000256 4a 4 00074 3717 20 367 epplb wired_hardcore_data$cpu_f_cache_err_ctr_array 000257 4a 4 00076 3717 20 368 epplb wired_hardcore_data$cpu_g_cache_err_ctr_array 000260 4a 4 00100 3717 20 369 epplb wired_hardcore_data$cpu_h_cache_err_ctr_array 370 " 371 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 372 " 373 " Internal subroutine for saving associative memory in the prds 374 " 375 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 376 000261 377 save_am: 000261 aa 000004 6232 00 378 eax3 4 4 instructions to execute 000262 aa 000003 6262 00 379 eax6 3 initialy set for DPS8 (4 sets of 16) 000263 aa 000001 1042 03 380 cmpx4 1,du is it a DPS8 CPU? 000264 0a 000266 6002 00 381 tze sam1 yes, go execute code 000265 aa 000000 6262 00 382 eax6 0 no, only 1 set for each type on L68 383 000266 0a 000305 7162 13 384 sam1: xec samt1-1,3 load LB with proper AM type 000267 0a 000311 2352 13 385 lda samt2-1,3 load instruction to execute in A 000270 aa 2 00044 7553 00 386 sta bp|mc.fim_temp and save 000271 aa 000000 6272 16 387 eax7 0,6 initialize counter 000272 aa 000000 6362 17 388 sam2: eaq 0,7 copy to qu 000273 aa 000004 7362 00 389 qls 4 multiply by 16 000274 aa 000002 1032 03 390 cmpx3 2,du is it for sdw_am_regs? 000275 0a 000277 6012 00 391 tnz *+2 xfwr if no 000276 aa 000001 7362 00 392 qls 1 yes, make it times 32 000277 aa 2 00044 7523 30 393 stcq bp|mc.fim_temp,30 set quad offset 000300 aa 2 00044 7163 00 394 xec bp|mc.fim_temp execute instruction 000301 aa 777777 6272 17 395 eax7 -1,7 count down 000302 0a 000272 6052 00 396 tpl sam2 do next set 000303 aa 777777 6232 13 397 eax3 -1,3 count down instructions to exucute 000304 0a 000266 6012 00 398 tnz sam1 go do next instuction set 000305 aa 000000 7102 11 399 tra 0,1 return to caller 400 000306 4a 4 00102 3717 20 401 samt1: epplb prds$sdw_am_ptrs 000307 4a 4 00104 3717 20 402 epplb prds$sdw_am_regs 000310 4a 4 00106 3717 20 403 epplb prds$ptw_am_ptrs 000311 4a 4 00110 3717 20 404 epplb prds$ptw_am_regs 405 000312 aa 5 00000 5573 00 406 samt2: ssdp lb|0 000313 aa 5 00000 2547 00 407 ssdr lb|0 000314 aa 5 00000 5577 00 408 sptp lb|0 000315 aa 5 00000 1547 00 409 sptr lb|0 410 411 " 412 413 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 414 " 415 " Procedure to check if conditions are met for machine condition tracing 416 " if conditions are not true for machine condition tracing, return is ic +1 (tra 0,0) 417 " if conditions are met for machine condition tracing, then 418 " return is ic +2 (tra 1,0), bb -> place to pick up history regs and 419 " lb -> place to pick up machine conditions directly from machine condition trace buffer 420 " 421 " 422 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 423 000316 424 check_mct: 000316 0a 000213 7012 00 425 tsx1 save_fault_reg save fault reg and get CPU type in x4 000317 4a 4 00112 2343 20 426 szn pds$mc_trace_sw is this process tracing machine conditions? 000320 aa 000000 6052 10 427 tpl 0,0 return to caller if no 000321 4a 4 00114 2343 20 428 szn pds$mc_trace_seg Does user want to trace all M. Cs? 000322 0a 000333 6002 00 429 tze cp_hregs xfer if seg number zero 000323 aa 2 00030 2353 00 430 lda bp|mc.scu.ppr.psr_word look at the psr 000324 aa 077777 3752 03 431 ana scu.ppr.psr_mask,du and out everything except psr 000325 4a 4 00114 1153 20 432 cmpa pds$mc_trace_seg compare psr to object we are tracing 000326 0a 000333 6002 00 433 tze cp_hregs xfer if psr = object we are tracing 000327 aa 2 00032 2353 00 434 lda bp|mc.scu.tpr.tsr_word look at tsr 000330 aa 077777 3752 03 435 ana scu.tpr.tsr_mask,du and out everthing except tsr 000331 4a 4 00114 1153 20 436 cmpa pds$mc_trace_seg compare tsr to object we are tracing 000332 aa 000000 6012 10 437 tnz 0,0 return to caller if psr or tsr don't have seg 000333 438 cp_hregs: 000333 4a 4 00116 7653 20 439 lprplb pds$mc_trace_buf get packed ptr to wired trace buffer 000334 aa 5 00004 7403 00 440 stx0 lb|mctseg.x0save safe store return address 000335 aa 5 00002 7253 00 441 lxl5 lb|mctseg.hr_nxtad x5 = rel ptr to next H. R. storage location 000336 aa 5 00002 1053 00 442 cmpx5 lb|mctseg.hr_lim do we have to roll over the trace? 000337 0a 000342 6042 00 443 tmi hr_roll xfer if no 000340 aa 5 00003 2253 00 444 ldx5 lb|mctseg.hr_strt yes, pick up initial storage location 000341 aa 5 00002 4453 00 445 sxl5 lb|mctseg.hr_nxtad store new location 000342 446 hr_roll: 000342 aa 000200 6252 15 447 eax5 mctseg.hr_size,5 increment storage location 000343 aa 5 00002 4453 00 448 sxl5 lb|mctseg.hr_nxtad set rel ptr to next H. R. storage location 000344 aa 5 77600 3537 15 449 eppbb lb|-mctseg.hr_size,5 bb -> current HR storage location 000345 0a 000144 7002 00 450 tsx0 force_hist_regs go save history regs in mc_trace buf 000346 4a 4 00116 7653 20 451 lprplb pds$mc_trace_buf get packed ptr to wired trace buffer 000347 aa 5 00004 2203 00 452 ldx0 lb|mctseg.x0save restore return address 000350 aa 5 00000 7253 00 453 lxl5 lb|mctseg.mc_nxtad x5 = rel ptr to next M. C. storage location 000351 aa 5 00000 1053 00 454 cmpx5 lb|mctseg.mc_lim do we have to roll over the trace? 000352 0a 000355 6042 00 455 tmi mc_roll xfer if no 000353 aa 5 00001 2253 00 456 ldx5 lb|mctseg.mc_strt yes, pick up initial storage location 000354 aa 5 00000 4453 00 457 sxl5 lb|mctseg.mc_nxtad store new location 000355 458 mc_roll: 000355 aa 000060 6252 15 459 eax5 mctseg.mc_size,5 increment storage location 000356 aa 5 00000 4453 00 460 sxl5 lb|mctseg.mc_nxtad set rel ptr to next M. C. storage location 000357 aa 5 77720 3717 15 461 epplb lb|-mctseg.mc_size,5 lp -> current MC storage location 000360 aa 0 00100 1007 00 462 mlr (pr),(pr) move the data to wired buffer 000361 aa 200000 000300 463 desc9a bp|0,mctseg.mc_size*4 000362 aa 500000 000300 464 desc9a lb|0,mctseg.mc_size*4 000363 aa 000001 7102 10 465 tra 1,0 return to caller at ic +2 466 467 468 " 469 470 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 471 " 472 " Procedure to reset mode registers to continue strobing 473 " data into the history registers. 474 " 475 " 476 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 477 000364 478 reset_mode_reg: 000364 4a 4 00120 3717 20 479 epplb prds$cache_luf_reg point to cache/luf reg setting 000365 aa 5 00000 6743 02 480 lcpr lb|0,02 set cache enable and full luf time 481 000366 4a 4 00122 2353 20 482 lda prds$mode_reg retrieve template mode reg 000367 aa 000061 2752 07 483 ora mr.enable_mr+mr.enable_hist,dl enable mode reg and enable hist regs 000370 4a 4 00124 7553 20 484 sta prds$mode_reg_enabled save this mode reg value 000371 4a 4 00124 3717 20 485 epplb prds$mode_reg_enabled get pointer to temp mode reg value 000372 aa 5 00000 6743 04 486 lcpr lb|0,04 reload the mode register 000373 aa 000000 7102 10 487 tra 0,0 return to caller 488 489 " 490 491 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 492 " 493 " Procedures to suspend virtual time metering 494 " 495 " 496 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 497 498 even anyone know why we do this? 000374 499 v_time_init: 000374 0a 000424 7072 00 500 tsx7 get_times get fault time and virtual time 501 000375 aa 000000 6342 07 502 ldi 0,dl clear indicators as a service to our caller 000376 4a 4 00126 0543 20 503 aos pds$vtime_count step virtual time count 000377 aa 000000 6056 10 504 tpnz 0,0 if already set, don't meter 505 000400 4a 4 00130 7573 20 506 staq pds$time_v_temp save for later 000401 aa 000000 7102 10 507 tra 0,0 508 509 510 000402 aa 000000 0112 03 511 odd or this? actually, just why are they different? 000403 512 fim_v_time_init: 000403 0a 000424 7072 00 513 tsx7 get_times get times 514 000404 aa 000000 6342 07 515 ldi 0,dl clear indicators as a service to our caller 000405 4a 4 00126 2343 20 516 szn pds$vtime_count metering already? 000406 aa 000000 6052 10 517 tpl 0,0 if so, return 518 000407 4a 4 00132 7573 20 519 staq pds$fim_v_temp save current virtual time 000410 4a 4 00134 2373 20 520 ldaq pds$virtual_delta save current delta 000411 4a 4 00136 7573 20 521 staq pds$fim_v_delta .. 000412 aa 000000 7102 10 522 tra 0,0 and return to caller 523 524 000413 525 fim_v_time_init_ext: 000413 aa 0 00002 3523 20 526 eppbp ap|2,* let get_times clobber first arg 000414 aa 2 77732 3523 00 527 eppbp bp|-mc.fault_time ... 000415 0a 000403 7002 00 528 tsx0 fim_v_time_init 000416 4a 4 00132 2373 20 529 ldaq pds$fim_v_temp now, just like pds copies pds cells to stack... 000417 aa 0 00002 7573 20 530 staq ap|2,* we drop them as output arguments 000420 4a 4 00136 2373 20 531 ldaq pds$fim_v_delta 000421 aa 0 00004 7573 20 532 staq ap|4,* 000422 aa 7 00044 7103 20 533 short_return 534 535 000423 aa 000000 0112 03 536 even 000424 537 get_times: 000424 4a 4 00140 6333 20 538 rccl sys_info$clock_,* read the clock 000425 aa 2 00046 7573 00 539 staq bp|mc.fault_time save time of fault/interrupt 000426 4a 4 00142 1773 20 540 sbaq pds$cpu_time compute virtual time 000427 aa 000000 7102 17 541 tra 0,7 return to caller 542 543 " 544 545 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 546 " 547 " Procedures to reinstate virtual time metering 548 " 549 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 550 551 even 000430 552 v_time_calc: 000430 aa 000001 3352 07 553 lca 1,dl decrement virtual time count 000431 4a 4 00126 0553 20 554 asa pds$vtime_count .. 000432 aa 000000 6052 10 555 tpl 0,0 if others, don't meter 556 000433 557 v_calc_join: 000433 4a 4 00140 6333 20 558 rccl sys_info$clock_,* read the clock 000434 aa 000140 0332 07 559 adl 96,dl add in correction delta 000435 4a 4 00142 1773 20 560 sbaq pds$cpu_time get current value of CPU time 000436 4a 4 00130 1773 20 561 sbaq pds$time_v_temp get time we used 000437 4a 4 00130 7573 20 562 staq pds$time_v_temp save temporarily 563 000440 4a 4 00134 0773 20 564 adaq pds$virtual_delta compute virtual time increment 000441 4a 4 00134 7573 20 565 staq pds$virtual_delta and save 566 000442 4a 4 00130 2373 20 567 ldaq pds$time_v_temp time used in AQ again 000443 4a 4 00144 0773 20 568 adaq tc_data$delta_vcpu compute total vcpu time 000444 4a 4 00144 7573 20 569 staq tc_data$delta_vcpu .. 570 000445 aa 000000 7102 10 571 tra 0,0 572 573 574 575 even 000446 576 fim_v_time_calc: 000446 4a 4 00126 2343 20 577 szn pds$vtime_count metering virtual time? 000447 aa 000000 6052 10 578 tpl 0,0 if not, just return 579 000450 4a 4 00134 2373 20 580 ldaq pds$virtual_delta get current virtual delta 000451 4a 4 00136 1773 20 581 sbaq pds$fim_v_delta subtract original delta 000452 4a 4 00132 0773 20 582 adaq pds$fim_v_temp correct FIM time 000453 4a 4 00130 7573 20 583 staq pds$time_v_temp store corrected time 000454 0a 000433 7102 00 584 tra v_calc_join join common code 585 586 000455 587 fim_v_time_calc_ext: 000455 aa 0 00002 2373 20 588 ldaq ap|2,* copy automatic values back to pds just like fim 000456 4a 4 00132 7573 20 589 staq pds$fim_v_temp 000457 aa 0 00004 2373 20 590 ldaq ap|4,* 000460 4a 4 00136 7573 20 591 staq pds$fim_v_delta 000461 0a 000446 7002 00 592 tsx0 fim_v_time_calc 000462 aa 7 00044 7103 20 593 short_return 594 " 595 596 include stack_frame 1-1 " 1-2 " BEGIN INCLUDE FILE ... stack_frame.incl.alm 6/72 RBS 1-3 " 1-4 " Modified: 16 Dec 1977, D. Levin - to add fio_ps_ptr 1-5 " Modified: 3 Feb 1978, P. Krupp - to add run_unit_manager_bit & main_proc_bit 1-6 " Modified: 21 March 1978, D. Levin - change fio_ps_ptr to support_ptr 1-7 " 000020 1-8 equ stack_frame.prev_sp,16 000020 1-9 equ stack_frame.condition_word,16 000022 1-10 equ stack_frame.next_sp,18 000022 1-11 equ stack_frame.signaller_word,18 000024 1-12 equ stack_frame.return_ptr,20 000026 1-13 equ stack_frame.entry_ptr,22 000030 1-14 equ stack_frame.operator_ptr,24 000030 1-15 equ stack_frame.lp_ptr,24 000032 1-16 equ stack_frame.arg_ptr,26 000034 1-17 equ stack_frame.static_ptr,28 000035 1-18 equ stack_frame.support_ptr,29 " only used by fortran I/O 000036 1-19 equ stack_frame.on_unit_rel_ptrs,30 000037 1-20 equ stack_frame.operator_ret_ptr,31 000037 1-21 equ stack_frame.translator_id,31 000040 1-22 equ stack_frame.regs,32 000060 1-23 equ stack_frame.min_length,48 000020 1-24 equ stack_frame.flag_word,16 020000 1-25 bool stack_frame.main_proc_bit,020000 (DL) 010000 1-26 bool stack_frame.run_unit_manager,010000 (DL) 004000 1-27 bool stack_frame.signal_bit,004000 (DL) 002000 1-28 bool stack_frame.crawl_out_bit,002000 (DL) 001000 1-29 bool stack_frame.signaller_bit,001000 (DL) 000400 1-30 bool stack_frame.link_trap_bit,000400 (DL) 000200 1-31 bool stack_frame.support_bit,000200 (DL) 000100 1-32 bool stack_frame.condition_bit,000100 (DL) 1-33 1-34 " 1-35 " END INCLUDE FILE ... stack_frame.incl.alm 1-36 " 597 598 " 599 600 include stack_header 2-1 " BEGIN INCLUDE FILE ... stack_header.incl.alm 3/72 Bill Silver 2-2 " 2-3 " modified 7/76 by M. Weaver for *system links and more system use of areas 2-4 " modified 3/77 by M. Weaver to add rnt_ptr 2-5 " modified 7/77 by S. Webber to add run_unit_depth and assign_linkage_ptr 2-6 " modified 6/83 by J. Ives to add trace_frames and in_trace. 2-7 2-8 " HISTORY COMMENTS: 2-9 " 1) change(86-06-24,DGHowe), approve(86-06-24,MCR7396), 2-10 " audit(86-08-05,Schroth), install(86-11-03,MR12.0-1206): 2-11 " added the heap_header_ptr definition 2-12 " 2) change(86-08-12,Kissel), approve(86-08-12,MCR7473), 2-13 " audit(86-10-10,Fawcett), install(86-11-03,MR12.0-1206): 2-14 " Modified to support control point management. These changes were 2-15 " actually made in February 1985 by G. Palter. 2-16 " 3) change(86-10-22,Fawcett), approve(86-10-22,MCR7473), 2-17 " audit(86-10-22,Farley), install(86-11-03,MR12.0-1206): 2-18 " Remove the old_lot pointer and replace it with cpm_data_ptr. Use the 18 2-19 " bit pad after cur_lot_size for the cpm_enabled. This was done to save 2-20 " some space int the stack header and change the cpd_ptr unal to 2-21 " cpm_data_ptr (ITS pair). 2-22 " END HISTORY COMMENTS 2-23 000004 2-24 equ stack_header.cpm_data_ptr,4 ptr to control point for this stack 000006 2-25 equ stack_header.combined_stat_ptr,6 ptr to separate static area 2-26 000010 2-27 equ stack_header.clr_ptr,8 ptr to area containing linkage sections 000012 2-28 equ stack_header.max_lot_size,10 number of words allowed in lot (DU) 000012 2-29 equ stack_header.main_proc_invoked,10 nonzero if main proc was invoked in run unit (DL) 000012 2-30 equ stack_header.run_unit_depth,10 number of active run units stacked (DL) 000013 2-31 equ stack_header.cur_lot_size,11 DU number of words (entries) in lot 000013 2-32 equ stack_header.cpm_enabled,11 DL non-zero if control point management is enabled 000014 2-33 equ stack_header.system_free_ptr,12 ptr to system storage area 000016 2-34 equ stack_header.user_free_ptr,14 ptr to user storage area 2-35 000020 2-36 equ stack_header.parent_ptr,16 ptr to parent stack or null 000022 2-37 equ stack_header.stack_begin_ptr,18 ptr to first stack frame 000024 2-38 equ stack_header.stack_end_ptr,20 ptr to next useable stack frame 000026 2-39 equ stack_header.lot_ptr,22 ptr to the lot for the current ring 2-40 000030 2-41 equ stack_header.signal_ptr,24 ptr to signal proc for current ring 000032 2-42 equ stack_header.bar_mode_sp,26 value of sp before entering bar mode 000034 2-43 equ stack_header.pl1_operators_ptr,28 ptr: pl1_operators_$operator_table 000036 2-44 equ stack_header.call_op_ptr,30 ptr to standard call operator 2-45 000040 2-46 equ stack_header.push_op_ptr,32 ptr to standard push operator 000042 2-47 equ stack_header.return_op_ptr,34 ptr to standard return operator 000044 2-48 equ stack_header.ret_no_pop_op_ptr,36 ptr: stand. return/ no pop operator 000046 2-49 equ stack_header.entry_op_ptr,38 ptr to standard entry operator 2-50 000050 2-51 equ stack_header.trans_op_tv_ptr,40 ptr to table of translator operator ptrs 000052 2-52 equ stack_header.isot_ptr,42 pointer to ISOT 000054 2-53 equ stack_header.sct_ptr,44 pointer to System Condition Table 000056 2-54 equ stack_header.unwinder_ptr,46 pointer to unwinder for current ring 2-55 000060 2-56 equ stack_header.sys_link_info_ptr,48 ptr to *system link name table 000062 2-57 equ stack_header.rnt_ptr,50 ptr to reference name table 000064 2-58 equ stack_header.ect_ptr,52 ptr to event channel table 000066 2-59 equ stack_header.assign_linkage_ptr,54 ptr to area for hcs_$assign_linkage calls 000070 2-60 equ stack_header.heap_header_ptr,56 ptr to heap header. 000072 2-61 equ stack_header.trace_frames,58 stack of trace_catch_ frames 000073 2-62 equ stach_header.trace_top_ptr,59 trace pointer 000074 2-63 equ stack_header.in_trace,60 trace antirecurse bit 000100 2-64 equ stack_header_end,64 length of stack header 2-65 2-66 2-67 2-68 000000 2-69 equ trace_frames.count,0 number of trace frames on stack 000001 2-70 equ trace_frames.top_ptr,1 packed pointer to top one 2-71 2-72 " The following constant is an offset within the pl1 operators table. 2-73 " It references a transfer vector table. 2-74 000551 2-75 bool tv_offset,551 2-76 2-77 2-78 " The following constants are offsets within this transfer vector table. 2-79 001170 2-80 equ call_offset,tv_offset+271 001171 2-81 equ push_offset,tv_offset+272 001172 2-82 equ return_offset,tv_offset+273 001173 2-83 equ return_no_pop_offset,tv_offset+274 001174 2-84 equ entry_offset,tv_offset+275 2-85 2-86 2-87 " END INCLUDE FILE stack_header.incl.alm 601 include mctseg 3-1 " 3-2 " BEGIN INCLUDE FILE mctseg.incl.alm 3-3 " 3-4 " defines the wired segment layout for machine condition trace 3-5 " created 3/3/77 by James A. Bush 3-6 " 000000 3-7 equ mctseg.mc_lim,0 du - the end of the wired trace buffer 000000 3-8 equ mctseg.mc_nxtad,0 dl - address of next storage area for M. C. 000001 3-9 equ mctseg.mc_strt,1 du - beginning of M. C. storage mc_strt 000001 3-10 equ mctseg.mc_cnt,1 dl - number of M. C.s that can be stored 000002 3-11 equ mctseg.hr_lim,2 du - the end of history register storage area 000002 3-12 equ mctseg.hr_nxtad,2 dl - address of nxt storage area for history regs 000003 3-13 equ mctseg.hr_strt,3 du - beginning of history register storage 000003 3-14 equ mctseg.hr_cnt,3 dl - number of history regs that can be stored 000004 3-15 equ mctseg.x0save,4 du - safe storage for x0 000060 3-16 equ mctseg.mc_size,48 size of machine condition block - 48 words 000200 3-17 equ mctseg.hr_size,128 size of history register block - 128 words 3-18 " 3-19 " END INCLUDE FILE mctseg.incl.alm 3-20 " 602 603 " 604 605 include sys_trouble_codes 4-1 " Begin include file ...... sys_trouble_codes.incl.alm ...... Feb. 24, 1982 4-2 000001 4-3 equ trbl_prds_pf,1 page fault while on prds 000002 4-4 equ trbl_prds_fi,2 fault/interrupt while on prds 000003 4-5 equ trbl_idle_flt,3 fault in idle process 000004 4-6 equ trbl_ptl_fi,4 fault/interrupt with ptl set 000005 4-7 equ trbl_illeg_flt,5 unrecognized fault 000006 4-8 equ trbl_unexp_flt,6 unexpected fault 000007 4-9 equ trbl_exec_flt,7 operator caused execute fault 000010 4-10 equ trbl_oosb_prds,8 OOSB on prds with target prds 000011 4-11 equ trbl_fault_masked,9 interrupts masked in user-ring 000012 4-12 equ trbl_fim_flt,10 Fault while in bound_interceptors 000013 4-13 equ trbl_r0_drl_flt,11 derail in ring 0 4-14 4-15 " End of include file ...... sys_trouble_codes.incl.alm 606 607 include mode_reg 5-1 " BEGIN INCLUDE FILE mode_reg.incl.alm 5-2 " 777770 5-3 bool mr.floating_fv_mask,777770 floating fault vector address (DU) 000001 5-4 bool mr.trap_address_match,000001 trap on address match flag 777400 5-5 bool mr.opcode_field,777400 opcode field of mode reg (DL) 000200 5-6 bool mr.trap_opcode_match,000200 trap on opcode match flag 000060 5-7 bool mr.enable_hist,000060 enable strobe of history reg for most faults 000004 5-8 bool mr.enable_hfp,000004 enable hex floating point (DL) 000001 5-9 bool mr.enable_mr,000001 enable the mode register (DL) 5-10 5-11 " 5-12 " END INCLUDE FILE mode_reg.incl.alm 608 609 include mc 6-1 " 6-2 " BEGIN INCLUDE FILE mc.incl.alm 6/72 SHW 6-3 " Modified 8/80 by J. A. Bush for dps8/70M CPU 6-4 " 6-5 6-6 " General layout of data items. 6-7 000000 6-8 equ mc.prs,0 pointer registers 000020 6-9 equ mc.regs,16 registers 000030 6-10 equ mc.scu,24 SCU data 000050 6-11 equ mc.eis_info,40 pointers and lengths for EIS 6-12 6-13 " Temporary storage for software 6-14 000040 6-15 equ mc.mask,32 system controller mask at time of fault 000042 6-16 equ mc.ips_temp,34 temporary storage for IPS info 000043 6-17 equ mc.errcode,35 error code 000044 6-18 equ mc.fim_temp,36 temporary to hold fault index and unique index 000045 6-19 equ mc.fault_reg,37 fault register 000046 6-20 equ mc.fault_time,38 time of fault 000046 6-21 equ mc.cpu_type_word,38 CPU type from rsw (2). overlays part of time word 300000 6-22 bool mc.cpu_type_mask,300000 DU 000046 6-23 equ mc.ext_fault_reg,38 ext fault reg for dps8. overlays part of time word 077774 6-24 bool mc.ext_fault_reg_mask,77774 DU 000003 6-25 equ mc.cpu_type_shift,3 positions to shift right or left 6-26 6-27 6-28 6-29 " SCU DATA 6-30 6-31 " WORD (0) PROCEDURE POINTER REGISTER 6-32 000030 6-33 equ mc.scu.ppr.prr_word,24 Procedure Ring Register 000000 6-34 equ scu.ppr.prr_word,0 700000 6-35 bool scu.ppr.prr_mask,700000 DU 000041 6-36 equ scu.ppr.prr_shift,33 6-37 000030 6-38 equ mc.scu.ppr.psr_word,24 Procedure Segment Register 000000 6-39 equ scu.ppr.psr_word,0 077777 6-40 bool scu.ppr.psr_mask,077777 DU 000022 6-41 equ scu.ppr.psr_shift,18 6-42 000030 6-43 equ mc.scu.ppr.p_word,24 Procedure Privileged Bit 000000 6-44 equ scu.ppr.p_word,0 400000 6-45 bool scu.ppr.p,400000 DL 6-46 6-47 " APPENDING UNIT STATUS 000030 6-48 equ mc.scu.apu_stat_word,24 APPENDING UNIT STATUS 000000 6-49 equ scu.apu_stat_word,0 6-50 200000 6-51 bool scu.apu.xsf,200000 DL - Ext Seg Flag - IT mod. 100000 6-52 bool scu.apu.sdwm,100000 DL - Match in SDW Ass. Mem. 040000 6-53 bool scu.apu.sd_on,040000 DL - SDW Ass. Mem. ON 020000 6-54 bool scu.apu.ptwm,020000 DL - Match in PTW Ass. Mem. 010000 6-55 bool scu.apu.pt_on,010000 DL - PTW Ass. Mem. ON 004000 6-56 bool scu.apu.pi_ap,004000 DL - Instr fetch or Append cycle 002000 6-57 bool scu.apu.dsptw,002000 DL - Fetch of DSPTW 001000 6-58 bool scu.apu.sdwnp,001000 DL - Fetch of SDW non-paged 000400 6-59 bool scu.apu.sdwp,000400 DL - Fetch of SDW paged 000200 6-60 bool scu.apu.ptw,000200 DL - Fetch of PTW 000100 6-61 bool scu.apu.ptw2,000100 DL - Fetch of pre-paged PTW 000040 6-62 bool scu.apu.fap,000040 DL - Fetch of final address paged 000020 6-63 bool scu.apu.fanp,000020 DL - Fetch final address non-paged 000010 6-64 bool scu.apu.fabs,000010 DL - Fetch of final address absolute 6-65 000030 6-66 equ mc.scu.fault_cntr_word,24 Num of retrys of EIS instructions. 000000 6-67 equ scu.fault_cntr_word,0 6-68 000007 6-69 bool scu.fault_cntr_mask,000007 6-70 6-71 6-72 " WORD (1) FAULT DATA 6-73 000031 6-74 equ mc.scu.fault_data_word,25 FAULT DATA 000001 6-75 equ scu.fault_data_word,1 6-76 400000 6-77 bool scu.fd.iro,400000 DU - Illegal Ring Order 200000 6-78 bool scu.fd.oeb,200000 DU - Not In Execute Bracket 100000 6-79 bool scu.fd.e_off,100000 DU - No Execute 040000 6-80 bool scu.fd.orb,040000 DU - Not In Read Bracket 020000 6-81 bool scu.fd.r_off,020000 DU - No Read 010000 6-82 bool scu.fd.owb,010000 DU - Not In Write Bracket 004000 6-83 bool scu.fd.w_off,004000 DU - No Write 002000 6-84 bool scu.fd.no_ga,002000 DU - Not A Gate 001000 6-85 bool scu.fd.ocb,001000 DU - Not in Call Bracket 000400 6-86 bool scu.fd.ocall,000400 DU - Outward Call 000200 6-87 bool scu.fd.boc,000200 DU - Bad Outward Call 000100 6-88 bool scu.fd.inret,000100 DU - Inward Return 000040 6-89 bool scu.fd.crt,000040 DU - Cross Ring Transfer 000020 6-90 bool scu.fd.ralr,000020 DU - Ring Alarm 000010 6-91 bool scu.fd.am_er,000010 DU - Assoc. Mem. Fault 000004 6-92 bool scu.fd.oosb,000004 DU - Out Of Bounds 000002 6-93 bool scu.fd.paru,000002 DU - Parity Upper 000001 6-94 bool scu.fd.parl,000001 DU - Parity Lower 6-95 400000 6-96 bool scu.fd.onc_1,400000 DL - Op Not Complete 200000 6-97 bool scu.fd.onc_2,200000 DL - Op Not Complete 6-98 6-99 " GROUP II FAULT DATA 400000 6-100 bool scu.fd.isn,400000 DU - Illegal Segment Number 200000 6-101 bool scu.fd.ioc,200000 DU - Illegal Op Code 100000 6-102 bool scu.fd.ia_im,100000 DU - Illegal Addr - Modifier 040000 6-103 bool scu.fd.isp,040000 DU - Illegal Slave Procedure 020000 6-104 bool scu.fd.ipr,020000 DU - Illegal Procedure 010000 6-105 bool scu.fd.nea,010000 DU - Non Existent Address 004000 6-106 bool scu.fd.oobb,004000 DU - Out Of Bounds 6-107 000031 6-108 equ mc.scu.port_stat_word,25 PORT STATUS 000001 6-109 equ scu.port_stat_word,1 6-110 170000 6-111 bool scu.ial_mask,170000 DL - Illegal Action Lines 000014 6-112 equ scu.ial_shift,12 6-113 007000 6-114 bool scu.iac_mask,007000 DL - Illegal Action Channel 000011 6-115 equ scu.iac_shift,9 6-116 000700 6-117 bool scu.con_chan_mask,000700 DL - Connect Channel 000006 6-118 equ scu.con_chan_shift,6 6-119 000076 6-120 bool scu.fi_num_mask,000076 DL - Fault / Interrupt Number 000001 6-121 equ scu.fi_num_shift,1 6-122 000001 6-123 bool scu.fi_flag_mask,000001 DL - Fault / Interrupt Flag 6-124 6-125 6-126 " WORD (2) TEMPORARY POINTER REGISTER 6-127 000032 6-128 equ mc.scu.tpr.trr_word,26 Temporary Ring Register 000002 6-129 equ scu.tpr.trr_word,2 700000 6-130 bool scu.tpr.trr_mask,700000 DU 000041 6-131 equ scu.tpr.trr_shift,33 6-132 000032 6-133 equ mc.scu.tpr.tsr_word,26 Temporary Segment Register 000002 6-134 equ scu.tpr.tsr_word,2 077777 6-135 bool scu.tpr.tsr_mask,077777 DU 000022 6-136 equ scu.tpr.tsr_shift,18 6-137 000032 6-138 equ mc.scu.cpu_no_word,26 CPU Number 000002 6-139 equ scu.cpu_no_word,2 6-140 000700 6-141 bool scu.cpu_no_mask,000700 DL 000006 6-142 equ scu.cpu_shift,6 6-143 000032 6-144 equ mc.scu.delta_word,26 Tally Modification DELTA 000002 6-145 equ scu.delta_word,2 6-146 000077 6-147 bool scu.delta_mask,000077 DL 6-148 6-149 6-150 " WORD (3) TSR STATUS 6-151 000033 6-152 equ mc.scu.tsr_stat_word,27 TSR STATUS for 1,2, and 3 000003 6-153 equ scu.tsr_stat_word,3 Word Instructions 6-154 777700 6-155 bool scu.tsr_stat_mask,777700 DL - All of Status 000006 6-156 equ scu.tsr_stat_shift,6 6-157 740000 6-158 bool scu.tsna_mask,740000 DL - Word 1 Status 700000 6-159 bool scu.tsna.prn_mask,700000 DL - Word 1 PR num 000017 6-160 equ scu.tsna.prn_shift,15 040000 6-161 bool scu.tsna.prv,040000 DL - Word 1 PR valid bit 6-162 036000 6-163 bool scu.tsnb_mask,036000 DL - Word 2 Status 034000 6-164 bool scu.tsnb.prn_mask,034000 DL - Word 2 PR num 000013 6-165 equ scu.tsnb.prn_shift,11 002000 6-166 bool scu.tsnb.prv,002000 DL - Word 2 PR valid bit 6-167 000013 6-168 bool scu.tsnc_mask,0013 DL - Word 3 Status 001600 6-169 bool scu.tsnc.prn_mask,001600 DL - Word 3 PR num 000007 6-170 equ scu.tsnc.prn_shift,7 000100 6-171 bool scu.tsnc.prv,000100 DL - Word 3 PR valid bit 6-172 6-173 000033 6-174 equ mc.scu.tpr.tbr_word,27 TPR.TBR Field 000003 6-175 equ scu.tpr.tbr_word,3 6-176 000077 6-177 bool scu.tpr.tbr_mask,000077 DL 6-178 6-179 6-180 " WORD (4) INSTRUCTION COUNTER 6-181 000034 6-182 equ mc.scu.ilc_word,28 INSTRUCTION COUNTER 000004 6-183 equ scu.ilc_word,4 000022 6-184 equ scu.ilc_shift,18 6-185 000034 6-186 equ mc.scu.indicators_word,28 INDICATOR REGISTERS 000004 6-187 equ scu.indicators_word,4 6-188 400000 6-189 bool scu.ir.zero,400000 DL - Zero Indicator 200000 6-190 bool scu.ir.neg,200000 DL - Negative Indicator 100000 6-191 bool scu.ir.carry,100000 DL - Carry Indicator 040000 6-192 bool scu.ir.ovfl,040000 DL - Overflow Indicator 020000 6-193 bool scu.ir.eovf,020000 DL - Exponent Overflow Ind 010000 6-194 bool scu.ir.eufl,010000 DL - Exponent Underflow Ind 004000 6-195 bool scu.ir.oflm,004000 DL - Overflow Mask Indicator 002000 6-196 bool scu.ir.tro,002000 DL - Tally Runout Indicator 001000 6-197 bool scu.ir.par,001000 DL - Parity Indicator 000400 6-198 bool scu.ir.parm,000400 DL - Parity Mask Indicator 000200 6-199 bool scu.ir.bm,000200 DL - Bar Mode Indicator 000100 6-200 bool scu.ir.tru,000100 DL - Truncation Indicator 000040 6-201 bool scu.ir.mif,000040 DL - Multiword Indicator 000020 6-202 bool scu.ir.abs,000020 DL - Absolute Indicator 000010 6-203 bool scu.ir.hex,000010 DL - Hexadecimal Indicator 6-204 6-205 " WORD (5) COMPUTED ADDRESS 6-206 000035 6-207 equ mc.scu.ca_word,29 COMPUTED ADDRESS 000005 6-208 equ scu.ca_word,5 000022 6-209 equ scu.ca_shift,18 6-210 000035 6-211 equ mc.scu.cu_stat_word,29 CONTROL UNIT STATUS 000005 6-212 equ scu.cu_stat_word,5 6-213 400000 6-214 bool scu.cu.rf,400000 DL - Repeat First 6-215 " On First Cycle of Repeat Inst. 200000 6-216 bool scu.cu.rpt,200000 DL - Repeat Instruction 100000 6-217 bool scu.cu.rd,100000 DL - Repeat Double Instr. 040000 6-218 bool scu.cu.rl,040000 DL - Repeat Link Instr. 6-219 020000 6-220 bool scu.cu.pot,020000 DL - IT Modification 010000 6-221 bool scu.cu.pon,010000 DL - Return Type Instruction 6-222 004000 6-223 bool scu.cu.xde,004000 DL - XDE from Even Location 002000 6-224 bool scu.cu.xdo,002000 DL - XDE from Odd Location 6-225 001000 6-226 bool scu.cu.poa,001000 DL - Operand Preparation 000400 6-227 bool scu.cu.rfi,000400 DL - Tells CPU to refetch instruction 6-228 " This Bit Not Used (000200) 000100 6-229 bool scu.cu.if,000100 DL - Fault occurred during instruction fetch 6-230 000035 6-231 equ mc.scu.cpu_tag_word,29 Computed Tag Field 000005 6-232 equ scu.cpu_tag_word,5 6-233 000007 6-234 bool scu.cpu_tag_mask,000007 DL 6-235 6-236 6-237 " WORDS (6,7) INSTRUCTIONS 6-238 000036 6-239 equ scu.even_inst_word,30 Even Instruction 6-240 000037 6-241 equ scu.odd_inst_word,31 Odd Instruction 6-242 6-243 6-244 " END INCLUDE FILE incl.alm 610 611 " 612 613 include fault_vector 7-1 7-2 7-3 "BEGIN INCLUDE FILE fault_vector.incl.alm 7-4 7-5 " Modified February 1981 by J. Bongiovanni to add fault types 7-6 7-7 " 7-8 " Structure fv 7-9 " 000600 7-10 equ fv_size,384 7-11 7-12 000000 7-13 equ fv.ipair,0 "LEVEL 2 7-14 000000 7-15 equ fv.ipair.scu,0 000001 7-16 equ fv.ipair.tra,1 000100 7-17 equ fv.fpair,64 "LEVEL 2 7-18 000100 7-19 equ fv.fpair.scu,64 000101 7-20 equ fv.fpair.tra,65 000200 7-21 equ fv.i_tra_ptr,128 000300 7-22 equ fv.i_scu_ptr,192 000400 7-23 equ fv.f_tra_ptr,256 000500 7-24 equ fv.f_scu_ptr,320 7-25 000000 7-26 equ FAULT_NO_SDF,0 " Shutdown 000001 7-27 equ FAULT_NO_STR,1 " Store 000002 7-28 equ FAULT_NO_MME,2 " Master Mode Entry 1 000003 7-29 equ FAULT_NO_F1,3 " Fault Tag 1 000004 7-30 equ FAULT_NO_TRO,4 " Timer Runout 000005 7-31 equ FAULT_NO_CMD,5 " Command 000006 7-32 equ FAULT_NO_DRL,6 " Derail 000007 7-33 equ FAULT_NO_LUF,7 " Lockup 000010 7-34 equ FAULT_NO_CON,8 " Connect 000011 7-35 equ FAULT_NO_PAR,9 " Parity 000012 7-36 equ FAULT_NO_IPR,10 " Illegal Procedure 000013 7-37 equ FAULT_NO_ONC,11 " Operation Not Complete 000014 7-38 equ FAULT_NO_SUF,12 " Startup 000015 7-39 equ FAULT_NO_OFL,13 " Overflow 000016 7-40 equ FAULT_NO_DIV,14 " Divide Check 000017 7-41 equ FAULT_NO_EXF,15 " Execute 000020 7-42 equ FAULT_NO_DF0,16 " Directed Fault 0 (Segment Fault) 000021 7-43 equ FAULT_NO_DF1,17 " Directed FAult 1 (Page Fault) 000022 7-44 equ FAULT_NO_DF2,18 " Directed Fault 2 000023 7-45 equ FAULT_NO_DF3,19 " Directed Fault 3 000024 7-46 equ FAULT_NO_ACV,20 " Access Violation 000025 7-47 equ FAULT_NO_MME2,21 " Master Mode Entry 2 000026 7-48 equ FAULT_NO_MME3,22 " Master Mode Entry 3 000027 7-49 equ FAULT_NO_MME4,23 " Master Mode Entry 4 000030 7-50 equ FAULT_NO_F2,24 " Fault Tag 2 (Linkage Fault) 000031 7-51 equ FAULT_NO_F3,25 " Fault Tag 3 7-52 " Fault No. 26-30 are Undefined 000037 7-53 equ FAULT_NO_TRB,31 " Trouble 7-54 7-55 "END INCLUDE FILE fault_vector.incl.alm 614 615 616 617 end ENTRY SEQUENCES 000463 5a 000021 0000 00 000464 aa 7 00046 2721 20 000465 0a 000455 7100 00 000466 5a 000011 0000 00 000467 aa 7 00046 2721 20 000470 0a 000413 7100 00 NO LITERALS NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000472 5a 000003 000000 000473 5a 000217 600000 000474 aa 000000 000000 000475 55 000011 000002 000476 5a 000002 400003 000477 55 000006 000011 000500 aa 010 146 151 155 000501 aa 137 165 164 151 000502 aa 154 000 000 000 000503 55 000021 000003 000504 0a 000467 500000 000505 55 000014 000003 000506 aa 023 146 151 155 fim_v_time_init_ext 000507 aa 137 166 137 164 000510 aa 151 155 145 137 000511 aa 151 156 151 164 000512 aa 137 145 170 164 000513 55 000031 000011 000514 0a 000464 500000 000515 55 000024 000003 000516 aa 023 146 151 155 fim_v_time_calc_ext 000517 aa 137 166 137 164 000520 aa 151 155 145 137 000521 aa 143 141 154 143 000522 aa 137 145 170 164 000523 55 000040 000021 000524 0a 000446 400000 000525 55 000034 000003 000526 aa 017 146 151 155 fim_v_time_calc 000527 aa 137 166 137 164 000530 aa 151 155 145 137 000531 aa 143 141 154 143 000532 55 000046 000031 000533 0a 000430 400000 000534 55 000043 000003 000535 aa 013 166 137 164 v_time_calc 000536 aa 151 155 145 137 000537 aa 143 141 154 143 000540 55 000055 000040 000541 0a 000403 400000 000542 55 000051 000003 000543 aa 017 146 151 155 fim_v_time_init 000544 aa 137 166 137 164 000545 aa 151 155 145 137 000546 aa 151 156 151 164 000547 55 000063 000046 000550 0a 000374 400000 000551 55 000060 000003 000552 aa 013 166 137 164 v_time_init 000553 aa 151 155 145 137 000554 aa 151 156 151 164 000555 55 000072 000055 000556 0a 000364 400000 000557 55 000066 000003 000560 aa 016 162 145 163 reset_mode_reg 000561 aa 145 164 137 155 000562 aa 157 144 145 137 000563 aa 162 145 147 000 000564 55 000100 000063 000565 0a 000316 400000 000566 55 000075 000003 000567 aa 011 143 150 145 check_mct 000570 aa 143 153 137 155 000571 aa 143 164 000 000 000572 55 000107 000072 000573 0a 000144 400000 000574 55 000103 000003 000575 aa 017 146 157 162 force_hist_regs 000576 aa 143 145 137 150 000577 aa 151 163 164 137 000600 aa 162 145 147 163 000601 55 000115 000100 000602 0a 000136 400000 000603 55 000112 000003 000604 aa 011 150 151 163 hist_regs 000605 aa 164 137 162 145 000606 aa 147 163 000 000 000607 55 000124 000107 000610 0a 000124 400000 000611 55 000120 000003 000612 aa 014 162 145 163 restore_mask 000613 aa 164 157 162 145 000614 aa 137 155 141 163 000615 aa 153 000 000 000 000616 55 000132 000115 000617 0a 000113 400000 000620 55 000127 000003 000621 aa 010 163 145 164 set_mask 000622 aa 137 155 141 163 000623 aa 153 000 000 000 000624 55 000141 000124 000625 0a 000110 400000 000626 55 000135 000003 000627 aa 015 160 165 163 push_stack_32 000630 aa 150 137 163 164 000631 aa 141 143 153 137 000632 aa 063 062 000 000 000633 55 000147 000132 000634 0a 000100 400000 000635 55 000144 000003 000636 aa 012 160 165 163 push_stack 000637 aa 150 137 163 164 000640 aa 141 143 153 000 000641 55 000154 000141 000642 0a 000073 400000 000643 55 000152 000003 000644 aa 007 143 157 160 copy_mc 000645 aa 171 137 155 143 000646 55 000164 000147 000647 0a 000056 400000 000650 55 000157 000003 000651 aa 021 144 162 154 drl_fault_trouble 000652 aa 137 146 141 165 000653 aa 154 164 137 164 000654 aa 162 157 165 142 000655 aa 154 145 000 000 000656 55 000173 000154 000657 0a 000054 400000 000660 55 000167 000003 000661 aa 015 146 141 165 fault_trouble 000662 aa 154 164 137 164 000663 aa 162 157 165 142 000664 aa 154 145 000 000 000665 55 000202 000164 000666 0a 000010 400000 000667 55 000176 000003 000670 aa 017 143 150 145 check_interrupt 000671 aa 143 153 137 151 000672 aa 156 164 145 162 000673 aa 162 165 160 164 000674 55 000210 000173 000675 0a 000000 400000 000676 55 000205 000003 000677 aa 013 143 150 145 check_fault 000700 aa 143 153 137 146 000701 aa 141 165 154 164 000702 55 000002 000202 000703 6a 000000 400002 000704 55 000213 000003 000705 aa 014 163 171 155 symbol_table 000706 aa 142 157 154 137 000707 aa 164 141 142 154 000710 aa 145 000 000 000 DEFINITIONS HASH TABLE 000711 aa 000000 000033 000712 5a 000173 000000 000713 5a 000164 000000 000714 aa 000000 000000 000715 aa 000000 000000 000716 5a 000202 000000 000717 aa 000000 000000 000720 5a 000011 000000 000721 5a 000021 000000 000722 5a 000063 000000 000723 5a 000072 000000 000724 5a 000031 000000 000725 5a 000046 000000 000726 5a 000100 000000 000727 5a 000115 000000 000730 5a 000124 000000 000731 5a 000147 000000 000732 5a 000132 000000 000733 5a 000210 000000 000734 aa 000000 000000 000735 5a 000141 000000 000736 5a 000040 000000 000737 5a 000055 000000 000740 aa 000000 000000 000741 5a 000154 000000 000742 5a 000107 000000 000743 aa 000000 000000 000744 aa 000000 000000 EXTERNAL NAMES 000745 aa 012 144 145 154 delta_vcpu 000746 aa 164 141 137 166 000747 aa 143 160 165 000 000750 aa 007 164 143 137 tc_data 000751 aa 144 141 164 141 000752 aa 010 143 160 165 cpu_time 000753 aa 137 164 151 155 000754 aa 145 000 000 000 000755 aa 006 143 154 157 clock_ 000756 aa 143 153 137 000 000757 aa 013 146 151 155 fim_v_delta 000760 aa 137 166 137 144 000761 aa 145 154 164 141 000762 aa 015 166 151 162 virtual_delta 000763 aa 164 165 141 154 000764 aa 137 144 145 154 000765 aa 164 141 000 000 000766 aa 012 146 151 155 fim_v_temp 000767 aa 137 166 137 164 000770 aa 145 155 160 000 000771 aa 013 164 151 155 time_v_temp 000772 aa 145 137 166 137 000773 aa 164 145 155 160 000774 aa 013 166 164 151 vtime_count 000775 aa 155 145 137 143 000776 aa 157 165 156 164 000777 aa 020 155 157 144 mode_reg_enabled 001000 aa 145 137 162 145 001001 aa 147 137 145 156 001002 aa 141 142 154 145 001003 aa 144 000 000 000 001004 aa 010 155 157 144 mode_reg 001005 aa 145 137 162 145 001006 aa 147 000 000 000 001007 aa 015 143 141 143 cache_luf_reg 001010 aa 150 145 137 154 001011 aa 165 146 137 162 001012 aa 145 147 000 000 001013 aa 014 155 143 137 mc_trace_buf 001014 aa 164 162 141 143 001015 aa 145 137 142 165 001016 aa 146 000 000 000 001017 aa 014 155 143 137 mc_trace_seg 001020 aa 164 162 141 143 001021 aa 145 137 163 145 001022 aa 147 000 000 000 001023 aa 013 155 143 137 mc_trace_sw 001024 aa 164 162 141 143 001025 aa 145 137 163 167 001026 aa 013 160 164 167 ptw_am_regs 001027 aa 137 141 155 137 001030 aa 162 145 147 163 001031 aa 013 160 164 167 ptw_am_ptrs 001032 aa 137 141 155 137 001033 aa 160 164 162 163 001034 aa 013 163 144 167 sdw_am_regs 001035 aa 137 141 155 137 001036 aa 162 145 147 163 001037 aa 013 163 144 167 sdw_am_ptrs 001040 aa 137 141 155 137 001041 aa 160 164 162 163 001042 aa 031 143 160 165 cpu_h_cache_err_ctr_array 001043 aa 137 150 137 143 001044 aa 141 143 150 145 001045 aa 137 145 162 162 001046 aa 137 143 164 162 001047 aa 137 141 162 162 001050 aa 141 171 000 000 001051 aa 031 143 160 165 cpu_g_cache_err_ctr_array 001052 aa 137 147 137 143 001053 aa 141 143 150 145 001054 aa 137 145 162 162 001055 aa 137 143 164 162 001056 aa 137 141 162 162 001057 aa 141 171 000 000 001060 aa 031 143 160 165 cpu_f_cache_err_ctr_array 001061 aa 137 146 137 143 001062 aa 141 143 150 145 001063 aa 137 145 162 162 001064 aa 137 143 164 162 001065 aa 137 141 162 162 001066 aa 141 171 000 000 001067 aa 031 143 160 165 cpu_e_cache_err_ctr_array 001070 aa 137 145 137 143 001071 aa 141 143 150 145 001072 aa 137 145 162 162 001073 aa 137 143 164 162 001074 aa 137 141 162 162 001075 aa 141 171 000 000 001076 aa 031 143 160 165 cpu_d_cache_err_ctr_array 001077 aa 137 144 137 143 001100 aa 141 143 150 145 001101 aa 137 145 162 162 001102 aa 137 143 164 162 001103 aa 137 141 162 162 001104 aa 141 171 000 000 001105 aa 031 143 160 165 cpu_c_cache_err_ctr_array 001106 aa 137 143 137 143 001107 aa 141 143 150 145 001110 aa 137 145 162 162 001111 aa 137 143 164 162 001112 aa 137 141 162 162 001113 aa 141 171 000 000 001114 aa 031 143 160 165 cpu_b_cache_err_ctr_array 001115 aa 137 142 137 143 001116 aa 141 143 150 145 001117 aa 137 145 162 162 001120 aa 137 143 164 162 001121 aa 137 141 162 162 001122 aa 141 171 000 000 001123 aa 031 143 160 165 cpu_a_cache_err_ctr_array 001124 aa 137 141 137 143 001125 aa 141 143 150 145 001126 aa 137 145 162 162 001127 aa 137 143 164 162 001130 aa 137 141 162 162 001131 aa 141 171 000 000 001132 aa 024 146 141 165 fault_reg_last_saved 001133 aa 154 164 137 162 001134 aa 145 147 137 154 001135 aa 141 163 164 137 001136 aa 163 141 166 145 001137 aa 144 000 000 000 001140 aa 020 150 162 145 hregs_last_saved 001141 aa 147 163 137 154 001142 aa 141 163 164 137 001143 aa 163 141 166 145 001144 aa 144 000 000 000 001145 aa 013 150 162 145 hregs_saved 001146 aa 147 163 137 163 001147 aa 141 166 145 144 001150 aa 021 163 141 166 save_history_regs 001151 aa 145 137 150 151 001152 aa 163 164 157 162 001153 aa 171 137 162 145 001154 aa 147 163 000 000 001155 aa 014 147 154 157 global_hregs 001156 aa 142 141 154 137 001157 aa 150 162 145 147 001160 aa 163 000 000 000 001161 aa 023 167 151 162 wired_hardcore_data 001162 aa 145 144 137 150 001163 aa 141 162 144 143 001164 aa 157 162 145 137 001165 aa 144 141 164 141 001166 aa 012 157 160 145 open_level 001167 aa 156 137 154 145 001170 aa 166 145 154 000 001171 aa 010 143 157 167 cow_ptrs 001172 aa 137 160 164 162 001173 aa 163 000 000 000 001174 aa 013 163 171 163 sys_trouble 001175 aa 137 164 162 157 001176 aa 165 142 154 145 001177 aa 024 151 156 151 initialization_state 001200 aa 164 151 141 154 001201 aa 151 172 141 164 001202 aa 151 157 156 137 001203 aa 163 164 141 164 001204 aa 145 000 000 000 001205 aa 010 163 171 163 sys_info 001206 aa 137 151 156 146 001207 aa 157 000 000 000 001210 aa 021 164 162 157 trouble_processid 001211 aa 165 142 154 145 001212 aa 137 160 162 157 001213 aa 143 145 163 163 001214 aa 151 144 000 000 001215 aa 023 163 171 163 sys_trouble_pending 001216 aa 137 164 162 157 001217 aa 165 142 154 145 001220 aa 137 160 145 156 001221 aa 144 151 156 147 001222 aa 003 160 164 154 ptl 001223 aa 003 163 163 164 sst 001224 aa 011 160 162 157 processid 001225 aa 143 145 163 163 001226 aa 151 144 000 000 001227 aa 011 163 171 163 sys_level 001230 aa 137 154 145 166 001231 aa 145 154 000 000 001232 aa 011 162 145 141 read_mask 001233 aa 144 137 155 141 001234 aa 163 153 000 000 001235 aa 010 155 141 163 mask_ptr 001236 aa 153 137 160 164 001237 aa 162 000 000 000 001240 aa 003 163 143 163 scs 001241 aa 015 160 162 157 processor_tag 001242 aa 143 145 163 163 001243 aa 157 162 137 164 001244 aa 141 147 000 000 001245 aa 010 151 144 154 idle_ptr 001246 aa 145 137 160 164 001247 aa 162 000 000 000 001250 aa 007 141 160 164 apt_ptr 001251 aa 137 160 164 162 001252 aa 003 160 144 163 pds 001253 aa 004 160 162 144 prds 001254 aa 163 000 000 000 NO TRAP POINTER WORDS TYPE PAIR BLOCKS 001255 aa 000004 000000 001256 55 000256 000253 001257 aa 000004 000000 001260 55 000560 000260 001261 aa 000004 000000 001262 55 000513 000263 001263 aa 000004 000000 001264 55 000560 000265 001265 aa 000004 000000 001266 55 000560 000270 001267 aa 000004 000000 001270 55 000560 000274 001271 aa 000004 000000 001272 55 000560 000277 001273 aa 000004 000000 001274 55 000560 000302 001275 aa 000004 000000 001276 55 000561 000305 001277 aa 000004 000000 001300 55 000561 000312 001301 aa 000004 000000 001302 55 000561 000315 001303 aa 000004 000000 001304 55 000560 000321 001305 aa 000004 000000 001306 55 000560 000325 001307 aa 000004 000000 001310 55 000560 000331 001311 aa 000004 000000 001312 55 000561 000334 001313 aa 000004 000000 001314 55 000561 000337 001315 aa 000004 000000 001316 55 000561 000342 001317 aa 000004 000000 001320 55 000561 000345 001321 aa 000004 000000 001322 55 000467 000350 001323 aa 000004 000000 001324 55 000467 000357 001325 aa 000004 000000 001326 55 000467 000366 001327 aa 000004 000000 001330 55 000467 000375 001331 aa 000004 000000 001332 55 000467 000404 001333 aa 000004 000000 001334 55 000467 000413 001335 aa 000004 000000 001336 55 000467 000422 001337 aa 000004 000000 001340 55 000467 000431 001341 aa 000004 000000 001342 55 000561 000440 001343 aa 000004 000000 001344 55 000561 000446 001345 aa 000004 000000 001346 55 000560 000453 001347 aa 000004 000000 001350 55 000560 000456 001351 aa 000004 000000 001352 55 000467 000463 001353 aa 000004 000000 001354 55 000546 000474 001355 aa 000004 000000 001356 55 000546 000127 001357 aa 000004 000000 001360 55 000546 000477 001361 aa 000004 000000 001362 55 000502 000502 001363 aa 000004 000000 001364 55 000513 000505 001365 aa 000004 000000 001366 55 000546 000516 001367 aa 000004 000000 001370 55 000546 000523 001371 aa 000004 000000 001372 55 000531 000530 001373 aa 000004 000000 001374 55 000560 000532 001375 aa 000004 000000 001376 55 000546 000535 001377 aa 000004 000000 001400 55 000546 000540 001401 aa 000004 000000 001402 55 000546 000543 001403 aa 000004 000000 001404 55 000561 000547 001405 aa 000004 000000 001406 55 000561 000553 001407 aa 000004 000000 001410 55 000560 000556 001411 aa 000003 000000 001412 5a 000561 000000 001413 aa 000001 000000 001414 aa 000000 000000 INTERNAL EXPRESSION WORDS 001415 5a 000563 000000 001416 5a 000565 000000 001417 5a 000567 000000 001420 5a 000571 000000 001421 5a 000573 000000 001422 5a 000575 000000 001423 5a 000577 000000 001424 5a 000601 000000 001425 5a 000603 000000 001426 5a 000605 000000 001427 5a 000607 000000 001430 5a 000611 000000 001431 5a 000613 000000 001432 5a 000615 000000 001433 5a 000617 000000 001434 5a 000621 000000 001435 5a 000623 000000 001436 5a 000625 000000 001437 5a 000627 000000 001440 5a 000631 000000 001441 5a 000633 000000 001442 5a 000635 000000 001443 5a 000637 000000 001444 5a 000641 000000 001445 5a 000643 000000 001446 5a 000645 000000 001447 5a 000647 000000 001450 5a 000651 000000 001451 5a 000653 000000 001452 5a 000655 000000 001453 5a 000657 000000 001454 5a 000661 000000 001455 5a 000663 000000 001456 5a 000665 000000 001457 5a 000667 000000 001460 5a 000671 000000 001461 5a 000673 000000 001462 5a 000675 000000 001463 5a 000677 000000 001464 5a 000701 000000 001465 5a 000703 000000 001466 5a 000705 000000 001467 5a 000707 000000 001470 5a 000711 000000 001471 5a 000713 000000 001472 5a 000715 000000 001473 5a 000717 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000472 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000146 000007 a2 000000 000000 000010 9a 777770 0000 46 prds| 000011 5a 001001 0000 00 000012 9a 777766 0000 46 pds|apt_ptr 000013 5a 001000 0000 00 000014 9a 777764 0000 46 prds|idle_ptr 000015 5a 000777 0000 00 000016 9a 777762 0000 46 prds|processor_tag 000017 5a 000776 0000 00 000020 9a 777760 0000 46 scs|mask_ptr 000021 5a 000775 0000 11 000022 9a 777756 0000 46 scs|read_mask 000023 5a 000774 0000 11 000024 9a 777754 0000 46 scs|sys_level 000025 5a 000773 0000 00 000026 9a 777752 0000 46 pds|processid 000027 5a 000772 0000 00 000030 9a 777750 0000 46 sst|ptl 000031 5a 000771 0000 00 000032 9a 777746 0000 46 scs|sys_trouble_pending 000033 5a 000770 0000 00 000034 9a 777744 0000 46 scs|trouble_processid 000035 5a 000767 0000 00 000036 9a 777742 0000 46 sys_info|initialization_state 000037 5a 000766 0000 00 000040 9a 777740 0000 46 sys_trouble|sys_trouble 000041 5a 000765 0000 00 000042 9a 777736 0000 46 scs|cow_ptrs 000043 5a 000764 0000 31 000044 9a 777734 0000 46 scs|set_mask 000045 5a 000763 0000 11 000046 9a 777732 0000 46 scs|open_level 000047 5a 000762 0000 00 000050 9a 777730 0000 46 wired_hardcore_data|global_hregs 000051 5a 000761 0000 00 000052 9a 777726 0000 46 pds|save_history_regs 000053 5a 000760 0000 00 000054 9a 777724 0000 46 pds|hregs_saved 000055 5a 000757 0000 00 000056 9a 777722 0000 46 prds|hregs_last_saved 000057 5a 000756 0000 00 000060 9a 777720 0000 46 prds|fault_reg_last_saved 000061 5a 000755 0000 00 000062 9a 777716 0000 46 wired_hardcore_data|cpu_a_cache_err_ctr_array 000063 5a 000754 0000 00 000064 9a 777714 0000 46 wired_hardcore_data|cpu_b_cache_err_ctr_array 000065 5a 000753 0000 00 000066 9a 777712 0000 46 wired_hardcore_data|cpu_c_cache_err_ctr_array 000067 5a 000752 0000 00 000070 9a 777710 0000 46 wired_hardcore_data|cpu_d_cache_err_ctr_array 000071 5a 000751 0000 00 000072 9a 777706 0000 46 wired_hardcore_data|cpu_e_cache_err_ctr_array 000073 5a 000750 0000 00 000074 9a 777704 0000 46 wired_hardcore_data|cpu_f_cache_err_ctr_array 000075 5a 000747 0000 00 000076 9a 777702 0000 46 wired_hardcore_data|cpu_g_cache_err_ctr_array 000077 5a 000746 0000 00 000100 9a 777700 0000 46 wired_hardcore_data|cpu_h_cache_err_ctr_array 000101 5a 000745 0000 00 000102 9a 777676 0000 46 prds|sdw_am_ptrs 000103 5a 000744 0000 00 000104 9a 777674 0000 46 prds|sdw_am_regs 000105 5a 000743 0000 00 000106 9a 777672 0000 46 prds|ptw_am_ptrs 000107 5a 000742 0000 00 000110 9a 777670 0000 46 prds|ptw_am_regs 000111 5a 000741 0000 00 000112 9a 777666 0000 46 pds|mc_trace_sw 000113 5a 000740 0000 00 000114 9a 777664 0000 46 pds|mc_trace_seg 000115 5a 000737 0000 00 000116 9a 777662 0000 46 pds|mc_trace_buf 000117 5a 000736 0000 00 000120 9a 777660 0000 46 prds|cache_luf_reg 000121 5a 000735 0000 00 000122 9a 777656 0000 46 prds|mode_reg 000123 5a 000734 0000 00 000124 9a 777654 0000 46 prds|mode_reg_enabled 000125 5a 000733 0000 00 000126 9a 777652 0000 46 pds|vtime_count 000127 5a 000732 0000 00 000130 9a 777650 0000 46 pds|time_v_temp 000131 5a 000731 0000 00 000132 9a 777646 0000 46 pds|fim_v_temp 000133 5a 000730 0000 00 000134 9a 777644 0000 46 pds|virtual_delta 000135 5a 000727 0000 00 000136 9a 777642 0000 46 pds|fim_v_delta 000137 5a 000726 0000 00 000140 9a 777640 0000 46 sys_info|clock_ 000141 5a 000725 0000 20 000142 9a 777636 0000 46 pds|cpu_time 000143 5a 000724 0000 00 000144 9a 777634 0000 46 tc_data|delta_vcpu 000145 5a 000723 0000 00 SYMBOL INFORMATION SYMBOL TABLE HEADER 000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000010 000004 aa 000000 117244 000005 aa 361023 525721 000006 aa 000000 117547 000007 aa 256560 677205 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000002 000002 000016 aa 000064 000000 000017 aa 000000 000427 000020 aa 000000 000230 000021 aa 000317 000274 000022 aa 000414 000230 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 070056 061064 000030 aa 040115 141162 000031 aa 143150 040061 000032 aa 071070 071040 000033 aa 040040 040040 000034 aa 110151 162156 000035 aa 145151 163145 000036 aa 156056 123171 000037 aa 163115 141151 000040 aa 156164 056141 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 055164 141162 000045 aa 147145 164040 000046 aa 154066 070040 000047 aa 040040 040040 000050 aa 040040 040040 000051 aa 040040 040040 000052 aa 040040 040040 000053 aa 040040 040040 000054 aa 040040 040040 000055 aa 040040 040040 000056 aa 040154 151163 000057 aa 164040 163171 000060 aa 155142 157154 000061 aa 163040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000010 000066 aa 000126 000037 000067 aa 175453 017321 000070 aa 000000 117547 000071 aa 174416 000000 000072 aa 000136 000041 000073 aa 052721 247134 000074 aa 000000 105272 000075 aa 317215 400000 000076 aa 000147 000042 000077 aa 147777 464111 000100 aa 000000 115000 000101 aa 507463 000000 000102 aa 000160 000034 000103 aa 056613 671157 000104 aa 000000 105661 000105 aa 560762 200000 000106 aa 000167 000047 000107 aa 123154 505732 000110 aa 000000 112316 000111 aa 133413 400000 000112 aa 000201 000036 000113 aa 116261 736456 000114 aa 000000 111626 000115 aa 317120 400000 000116 aa 000211 000030 000117 aa 123154 505731 000120 aa 000000 112316 000121 aa 133412 600000 000122 aa 000217 000042 000123 aa 101301 045475 000124 aa 000000 110133 000125 aa 352304 600000 000126 aa 076163 160145 >spec>install>1110>fim_util.alm 000127 aa 143076 151156 000130 aa 163164 141154 000131 aa 154076 061061 000132 aa 061060 076146 000133 aa 151155 137165 000134 aa 164151 154056 000135 aa 141154 155040 000136 aa 076154 144144 >ldd>include>stack_frame.incl.alm 000137 aa 076151 156143 000140 aa 154165 144145 000141 aa 076163 164141 000142 aa 143153 137146 000143 aa 162141 155145 000144 aa 056151 156143 000145 aa 154056 141154 000146 aa 155040 040040 000147 aa 076154 144144 >ldd>include>stack_header.incl.alm 000150 aa 076151 156143 000151 aa 154165 144145 000152 aa 076163 164141 000153 aa 143153 137150 000154 aa 145141 144145 000155 aa 162056 151156 000156 aa 143154 056141 000157 aa 154155 040040 000160 aa 076154 144144 >ldd>include>mctseg.incl.alm 000161 aa 076151 156143 000162 aa 154165 144145 000163 aa 076155 143164 000164 aa 163145 147056 000165 aa 151156 143154 000166 aa 056141 154155 000167 aa 076154 144144 >ldd>include>sys_trouble_codes.incl.alm 000170 aa 076151 156143 000171 aa 154165 144145 000172 aa 076163 171163 000173 aa 137164 162157 000174 aa 165142 154145 000175 aa 137143 157144 000176 aa 145163 056151 000177 aa 156143 154056 000200 aa 141154 155040 000201 aa 076154 144144 >ldd>include>mode_reg.incl.alm 000202 aa 076151 156143 000203 aa 154165 144145 000204 aa 076155 157144 000205 aa 145137 162145 000206 aa 147056 151156 000207 aa 143154 056141 000210 aa 154155 040040 000211 aa 076154 144144 >ldd>include>mc.incl.alm 000212 aa 076151 156143 000213 aa 154165 144145 000214 aa 076155 143056 000215 aa 151156 143154 000216 aa 056141 154155 000217 aa 076154 144144 >ldd>include>fault_vector.incl.alm 000220 aa 076151 156143 000221 aa 154165 144145 000222 aa 076146 141165 000223 aa 154164 137166 000224 aa 145143 164157 000225 aa 162056 151156 000226 aa 143154 056141 000227 aa 154155 040040 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number apt_ptr fim_util: 80. 251 cache_ctr_tab fim_util: 343, 361. cache_luf_reg fim_util: 479. 1170 call_offset stack_header: 80. 134 channel_mask_set fim_util: 240, 248. 237 check_efr fim_util: 346, 348. 0 check_fault fim_util: 44, 79. 60 check_fault_trouble fim_util: 123, 133, 137, 141, 145, 149, 151. 10 check_interrupt fim_util: 45, 90. 316 check_mct fim_util: 55, 424. clock_ fim_util: 538, 558. 73 copy_mc fim_util: 48, 177. cow_ptrs fim_util: 164. cpu_a_cache_err_ctr_array fim_util: 362. cpu_b_cache_err_ctr_array fim_util: 363. cpu_c_cache_err_ctr_array fim_util: 364. cpu_d_cache_err_ctr_array fim_util: 365. cpu_e_cache_err_ctr_array fim_util: 366. cpu_f_cache_err_ctr_array fim_util: 367. cpu_g_cache_err_ctr_array fim_util: 368. cpu_h_cache_err_ctr_array fim_util: 369. cpu_time fim_util: 540, 560. 333 cp_hregs fim_util: 429, 433, 438. delta_vcpu fim_util: 568, 569. 56 drl_fault_trouble fim_util: 47, 147. 243 efr_loop fim_util: 353, 356, 359. 1174 entry_offset stack_header: 84. 50 fault_masked_trouble fim_util: 88, 135. 24 FAULT_NO_ACV fim_util: 110, fault_vector: 46. 5 FAULT_NO_CMD fault_vector: 31. 10 FAULT_NO_CON fault_vector: 34. 20 FAULT_NO_DF0 fault_vector: 42. 21 FAULT_NO_DF1 fault_vector: 43. 22 FAULT_NO_DF2 fault_vector: 44. 23 FAULT_NO_DF3 fault_vector: 45. 16 FAULT_NO_DIV fault_vector: 40. 6 FAULT_NO_DRL fault_vector: 32. 17 FAULT_NO_EXF fault_vector: 41. 3 FAULT_NO_F1 fault_vector: 29. 30 FAULT_NO_F2 fault_vector: 50. 31 FAULT_NO_F3 fault_vector: 51. 12 FAULT_NO_IPR fault_vector: 36. 7 FAULT_NO_LUF fault_vector: 33. 2 FAULT_NO_MME fault_vector: 28. 25 FAULT_NO_MME2 fault_vector: 47. 26 FAULT_NO_MME3 fault_vector: 48. 27 FAULT_NO_MME4 fault_vector: 49. 15 FAULT_NO_OFL fault_vector: 39. 13 FAULT_NO_ONC fault_vector: 37. 11 FAULT_NO_PAR fault_vector: 35. 0 FAULT_NO_SDF fault_vector: 26. 1 FAULT_NO_STR fault_vector: 27. 14 FAULT_NO_SUF fault_vector: 38. 37 FAULT_NO_TRB fault_vector: 53. 4 FAULT_NO_TRO fault_vector: 30. fault_reg_last_saved fim_util: 330, 332. 54 fault_trouble fim_util: 46, 143. fim_v_delta fim_util: 521, 531, 581, 591. fim_v_temp fim_util: 519, 529, 582, 589. 446 fim_v_time_calc fim_util: 60, 576, 592. 455 fim_v_time_calc_ext fim_util: 62, 587. 403 fim_v_time_init fim_util: 58, 512, 528. 413 fim_v_time_init_ext fim_util: 63, 525. 144 force_hist_regs fim_util: 54, 269, 271, 275, 450. 100 fv.fpair fault_vector: 17. 100 fv.fpair.scu fault_vector: 19. 101 fv.fpair.tra fault_vector: 20. 500 fv.f_scu_ptr fault_vector: 24. 400 fv.f_tra_ptr fault_vector: 23. 0 fv.ipair fault_vector: 13. 0 fv.ipair.scu fault_vector: 15. 1 fv.ipair.tra fault_vector: 16. 300 fv.i_scu_ptr fault_vector: 22. 200 fv.i_tra_ptr fault_vector: 21. 600 fv_size fault_vector: 10. 424 get_times fim_util: 500, 513, 537. global_hregs fim_util: 268. 136 hist_regs fim_util: 53, 267. hregs_last_saved fim_util: 278, 280. hregs_saved fim_util: 272, 282. 342 hr_roll fim_util: 443, 446. idle_ptr fim_util: 81. 46 idle_trouble fim_util: 82, 131. initialization_state fim_util: 159. mask_ptr fim_util: 85, 223, 228, 238. 300000 mc.cpu_type_mask mc: 22. 3 mc.cpu_type_shift fim_util: 340, mc: 25. 46 mc.cpu_type_word fim_util: 341, mc: 21. 50 mc.eis_info mc: 11. 43 mc.errcode mc: 17. 46 mc.ext_fault_reg mc: 23. 77774 mc.ext_fault_reg_mask fim_util: 349, mc: 24. 45 mc.fault_reg fim_util: 335, 344, mc: 19. 46 mc.fault_time fim_util: 276, 328, 527, 539, mc: 20. 44 mc.fim_temp fim_util: 292, 293, 299, 333, 334, 386, 393, 394, mc: 18. 42 mc.ips_temp mc: 16. 40 mc.mask fim_util: 225, 239, mc: 15. 0 mc.prs fim_util: 96, mc: 8. 20 mc.regs mc: 9. 30 mc.scu mc: 10. 30 mc.scu.apu_stat_word mc: 48. 35 mc.scu.ca_word mc: 207. 32 mc.scu.cpu_no_word mc: 138. 35 mc.scu.cpu_tag_word mc: 231. 35 mc.scu.cu_stat_word mc: 211. 32 mc.scu.delta_word mc: 144. 30 mc.scu.fault_cntr_word mc: 66. 31 mc.scu.fault_data_word fim_util: 106, mc: 74. 34 mc.scu.ilc_word mc: 182. 34 mc.scu.indicators_word fim_util: 127, mc: 186. 31 mc.scu.port_stat_word mc: 108. 30 mc.scu.ppr.prr_word fim_util: 91, mc: 33. 30 mc.scu.ppr.psr_word fim_util: 430, mc: 38. 30 mc.scu.ppr.p_word mc: 43. 33 mc.scu.tpr.tbr_word mc: 174. 32 mc.scu.tpr.trr_word mc: 128. 32 mc.scu.tpr.tsr_word fim_util: 102, 434, mc: 133. 33 mc.scu.tsr_stat_word mc: 152. 3 mctseg.hr_cnt mctseg: 14. 2 mctseg.hr_lim fim_util: 442, mctseg: 11. 2 mctseg.hr_nxtad fim_util: 441, 445, 448, mctseg: 12. 200 mctseg.hr_size fim_util: 447, 449, mctseg: 17. 3 mctseg.hr_strt fim_util: 444, mctseg: 13. 1 mctseg.mc_cnt mctseg: 10. 0 mctseg.mc_lim fim_util: 454, mctseg: 7. 0 mctseg.mc_nxtad fim_util: 453, 457, 460, mctseg: 8. 60 mctseg.mc_size fim_util: 459, 461, 463, 464, mctseg: 16. 1 mctseg.mc_strt fim_util: 456, mctseg: 9. 4 mctseg.x0save fim_util: 440, 452, mctseg: 15. 355 mc_roll fim_util: 455, 458. mc_trace_buf fim_util: 439, 451. mc_trace_seg fim_util: 428, 432, 436. mc_trace_sw fim_util: 426. mode_reg fim_util: 482. mode_reg_enabled fim_util: 484, 485. 4 mr.enable_hfp mode_reg: 8. 60 mr.enable_hist fim_util: 483, mode_reg: 7. 1 mr.enable_mr fim_util: 483, mode_reg: 9. 777770 mr.floating_fv_mask mode_reg: 3. 777400 mr.opcode_field mode_reg: 5. 1 mr.trap_address_match mode_reg: 4. 200 mr.trap_opcode_match mode_reg: 6. 43 not_invalid fim_util: 93, 121, 125. 33 not_on_prds fim_util: 99, 105, 108, 113. 37 not_ptl_locked fim_util: 116, 119. 52 oosb_prds_trouble fim_util: 111, 139. open_level fim_util: 241. pds fim_util: 80, 114, 154, 270, 272, 282, 426, 428, 432, 436, 439, 451, 503, 506, 516, 519, 520, 521, 529, 531, 540, 554, 560, 561, 562, 564, 565, 567, 577, 580, 581, 582, 583, 589, 591. prds fim_util: 65, 81, 84, 163, 222, 227, 237, 278, 280, 330, 332, 342, 401, 402, 403, 404, 479, 482, 484, 485. 10 prds_link fim_util: 65, 98, 104. processid fim_util: 114, 154. processor_tag fim_util: 84, 163, 222, 227, 237, 342. ptl fim_util: 115. ptw_am_ptrs fim_util: 403. ptw_am_regs fim_util: 404. 101 push_join fim_util: 196, 210. 1171 push_offset stack_header: 81. 100 push_stack fim_util: 49, 194. 110 push_stack_32 fim_util: 50, 207. read_mask fim_util: 86, 224. 364 reset_mode_reg fim_util: 56, 478. 124 restore_mask fim_util: 52, 236. 1173 return_no_pop_offset stack_header: 83. 1172 return_offset stack_header: 82. 266 sam1 fim_util: 381, 384, 398. 272 sam2 fim_util: 388, 396. 306 samt1 fim_util: 384, 401. 312 samt2 fim_util: 385, 406. 261 save_am fim_util: 283, 377. 213 save_fault_reg fim_util: 157, 327, 425. save_history_regs fim_util: 270. 207 scpr fim_util: 291, 314. 156 scpr1 fim_util: 286, 303. 163 scpr2 fim_util: 289, 291. 165 scpr3 fim_util: 293, 297, 301. 172 scpr4 fim_util: 295, 299. scs fim_util: 85, 86, 87, 152, 155, 164, 223, 224, 228, 229, 230, 238, 241, 242. 2000 scu.apu.dsptw mc: 57. 10 scu.apu.fabs mc: 64. 20 scu.apu.fanp mc: 63. 40 scu.apu.fap mc: 62. 4000 scu.apu.pi_ap mc: 56. 200 scu.apu.ptw mc: 60. 100 scu.apu.ptw2 mc: 61. 20000 scu.apu.ptwm mc: 54. 10000 scu.apu.pt_on mc: 55. 100000 scu.apu.sdwm mc: 52. 1000 scu.apu.sdwnp mc: 58. 400 scu.apu.sdwp mc: 59. 40000 scu.apu.sd_on mc: 53. 200000 scu.apu.xsf mc: 51. 0 scu.apu_stat_word mc: 49. 22 scu.ca_shift mc: 209. 5 scu.ca_word mc: 208. 700 scu.con_chan_mask mc: 117. 6 scu.con_chan_shift mc: 118. 700 scu.cpu_no_mask mc: 141. 2 scu.cpu_no_word mc: 139. 6 scu.cpu_shift mc: 142. 7 scu.cpu_tag_mask mc: 234. 5 scu.cpu_tag_word mc: 232. 100 scu.cu.if mc: 229. 1000 scu.cu.poa mc: 226. 10000 scu.cu.pon mc: 221. 20000 scu.cu.pot mc: 220. 100000 scu.cu.rd mc: 217. 400000 scu.cu.rf mc: 214. 400 scu.cu.rfi mc: 227. 40000 scu.cu.rl mc: 218. 200000 scu.cu.rpt mc: 216. 4000 scu.cu.xde mc: 223. 2000 scu.cu.xdo mc: 224. 5 scu.cu_stat_word mc: 212. 77 scu.delta_mask mc: 147. 2 scu.delta_word mc: 145. 36 scu.even_inst_word mc: 239. 7 scu.fault_cntr_mask mc: 69. 0 scu.fault_cntr_word mc: 67. 1 scu.fault_data_word mc: 75. 10 scu.fd.am_er mc: 91. 200 scu.fd.boc mc: 87. 40 scu.fd.crt mc: 89. 100000 scu.fd.e_off mc: 79. 100000 scu.fd.ia_im mc: 102. 100 scu.fd.inret mc: 88. 200000 scu.fd.ioc mc: 101. 20000 scu.fd.ipr mc: 104. 400000 scu.fd.iro mc: 77. 400000 scu.fd.isn mc: 100. 40000 scu.fd.isp mc: 103. 10000 scu.fd.nea mc: 105. 2000 scu.fd.no_ga mc: 84. 400 scu.fd.ocall mc: 86. 1000 scu.fd.ocb mc: 85. 200000 scu.fd.oeb mc: 78. 400000 scu.fd.onc_1 mc: 96. 200000 scu.fd.onc_2 mc: 97. 4000 scu.fd.oobb mc: 106. 4 scu.fd.oosb fim_util: 107, mc: 92. 40000 scu.fd.orb mc: 80. 10000 scu.fd.owb mc: 82. 1 scu.fd.parl mc: 94. 2 scu.fd.paru mc: 93. 20 scu.fd.ralr mc: 90. 20000 scu.fd.r_off mc: 81. 4000 scu.fd.w_off mc: 83. 1 scu.fi_flag_mask fim_util: 109, mc: 123. 76 scu.fi_num_mask fim_util: 109, mc: 120. 1 scu.fi_num_shift mc: 121. 7000 scu.iac_mask mc: 114. 11 scu.iac_shift mc: 115. 170000 scu.ial_mask mc: 111. 14 scu.ial_shift mc: 112. 22 scu.ilc_shift mc: 184. 4 scu.ilc_word mc: 183. 4 scu.indicators_word mc: 187. 20 scu.ir.abs mc: 202. 200 scu.ir.bm mc: 199. 100000 scu.ir.carry mc: 191. 20000 scu.ir.eovf mc: 193. 10000 scu.ir.eufl mc: 194. 10 scu.ir.hex mc: 203. 40 scu.ir.mif mc: 201. 200000 scu.ir.neg mc: 190. 4000 scu.ir.oflm mc: 195. 40000 scu.ir.ovfl mc: 192. 1000 scu.ir.par mc: 197. 400 scu.ir.parm fim_util: 126, mc: 198. 2000 scu.ir.tro mc: 196. 100 scu.ir.tru mc: 200. 400000 scu.ir.zero mc: 189. 37 scu.odd_inst_word mc: 241. 1 scu.port_stat_word mc: 109. 400000 scu.ppr.p mc: 45. 700000 scu.ppr.prr_mask fim_util: 92, mc: 35. 41 scu.ppr.prr_shift mc: 36. 0 scu.ppr.prr_word mc: 34. 77777 scu.ppr.psr_mask fim_util: 431, mc: 40. 22 scu.ppr.psr_shift mc: 41. 0 scu.ppr.psr_word mc: 39. 0 scu.ppr.p_word mc: 44. 77 scu.tpr.tbr_mask mc: 177. 3 scu.tpr.tbr_word mc: 175. 700000 scu.tpr.trr_mask mc: 130. 41 scu.tpr.trr_shift mc: 131. 2 scu.tpr.trr_word mc: 129. 77777 scu.tpr.tsr_mask fim_util: 435, mc: 135. 22 scu.tpr.tsr_shift mc: 136. 2 scu.tpr.tsr_word mc: 134. 700000 scu.tsna.prn_mask mc: 159. 17 scu.tsna.prn_shift mc: 160. 40000 scu.tsna.prv mc: 161. 740000 scu.tsna_mask mc: 158. 34000 scu.tsnb.prn_mask mc: 164. 13 scu.tsnb.prn_shift mc: 165. 2000 scu.tsnb.prv mc: 166. 36000 scu.tsnb_mask mc: 163. 1600 scu.tsnc.prn_mask mc: 169. 7 scu.tsnc.prn_shift mc: 170. 100 scu.tsnc.prv mc: 171. 13 scu.tsnc_mask mc: 168. 777700 scu.tsr_stat_mask mc: 155. 6 scu.tsr_stat_shift mc: 156. 3 scu.tsr_stat_word mc: 153. sdw_am_ptrs fim_util: 401. sdw_am_regs fim_util: 402. 113 set_mask fim_util: 51, 221, 230, 242. sst fim_util: 115. 73 stach_header.trace_top_ptr stack_header: 62. 32 stack_frame.arg_ptr stack_frame: 16. 100 stack_frame.condition_bit stack_frame: 32. 20 stack_frame.condition_word stack_frame: 9. 2000 stack_frame.crawl_out_bit stack_frame: 28. 26 stack_frame.entry_ptr stack_frame: 13. 20 stack_frame.flag_word stack_frame: 24. 400 stack_frame.link_trap_bit stack_frame: 30. 30 stack_frame.lp_ptr fim_util: 202, stack_frame: 15. 20000 stack_frame.main_proc_bit stack_frame: 25. 60 stack_frame.min_length stack_frame: 23. 22 stack_frame.next_sp fim_util: 200, stack_frame: 10. 36 stack_frame.on_unit_rel_ptrs stack_frame: 19. 30 stack_frame.operator_ptr stack_frame: 14. 37 stack_frame.operator_ret_ptr stack_frame: 20. 20 stack_frame.prev_sp fim_util: 197, stack_frame: 8. 40 stack_frame.regs stack_frame: 22. 24 stack_frame.return_ptr stack_frame: 12. 10000 stack_frame.run_unit_manager stack_frame: 26. 1000 stack_frame.signaller_bit stack_frame: 29. 22 stack_frame.signaller_word stack_frame: 11. 4000 stack_frame.signal_bit stack_frame: 27. 34 stack_frame.static_ptr stack_frame: 17. 200 stack_frame.support_bit stack_frame: 31. 35 stack_frame.support_ptr stack_frame: 18. 37 stack_frame.translator_id stack_frame: 21. 66 stack_header.assign_linkage_ptr stack_header: 59. 32 stack_header.bar_mode_sp stack_header: 42. 36 stack_header.call_op_ptr stack_header: 44. 10 stack_header.clr_ptr stack_header: 27. 6 stack_header.combined_stat_ptr stack_header: 25. 4 stack_header.cpm_data_ptr stack_header: 24. 13 stack_header.cpm_enabled stack_header: 32. 13 stack_header.cur_lot_size stack_header: 31. 64 stack_header.ect_ptr stack_header: 58. 46 stack_header.entry_op_ptr stack_header: 49. 70 stack_header.heap_header_ptr stack_header: 60. 74 stack_header.in_trace stack_header: 63. 52 stack_header.isot_ptr stack_header: 52. 26 stack_header.lot_ptr stack_header: 39. 12 stack_header.main_proc_invoked stack_header: 29. 12 stack_header.max_lot_size stack_header: 28. 20 stack_header.parent_ptr stack_header: 36. 34 stack_header.pl1_operators_ptr stack_header: 43. 40 stack_header.push_op_ptr stack_header: 46. 42 stack_header.return_op_ptr stack_header: 47. 44 stack_header.ret_no_pop_op_ptr stack_header: 48. 62 stack_header.rnt_ptr stack_header: 57. 12 stack_header.run_unit_depth stack_header: 30. 54 stack_header.sct_ptr stack_header: 53. 30 stack_header.signal_ptr stack_header: 41. 22 stack_header.stack_begin_ptr stack_header: 37. 24 stack_header.stack_end_ptr fim_util: 195, 201, 208, stack_header: 38. 14 stack_header.system_free_ptr stack_header: 33. 60 stack_header.sys_link_info_ptr stack_header: 56. 72 stack_header.trace_frames stack_header: 61. 50 stack_header.trans_op_tv_ptr stack_header: 51. 56 stack_header.unwinder_ptr stack_header: 54. 16 stack_header.user_free_ptr stack_header: 34. 100 stack_header_end stack_header: 64. sys_info fim_util: 159, 538, 558. sys_level fim_util: 87, 229. sys_trouble fim_util: 161. sys_trouble_pending fim_util: 152. tc_data fim_util: 568, 569. time_v_temp fim_util: 506, 561, 562, 567, 583. 0 trace_frames.count stack_header: 69. 1 trace_frames.top_ptr stack_header: 70. 7 trbl_exec_flt sys_trouble_codes: 9. 11 trbl_fault_masked fim_util: 136, sys_trouble_codes: 11. 12 trbl_fim_flt sys_trouble_codes: 12. 3 trbl_idle_flt fim_util: 132, sys_trouble_codes: 5. 5 trbl_illeg_flt fim_util: 144, sys_trouble_codes: 7. 10 trbl_oosb_prds fim_util: 140, sys_trouble_codes: 10. 2 trbl_prds_fi fim_util: 100, sys_trouble_codes: 4. 1 trbl_prds_pf sys_trouble_codes: 3. 4 trbl_ptl_fi fim_util: 117, sys_trouble_codes: 6. 13 trbl_r0_drl_flt fim_util: 148, sys_trouble_codes: 13. 6 trbl_unexp_flt sys_trouble_codes: 8. trouble_processid fim_util: 155. 551 tv_offset stack_header: 75, 80, 81, 82, 83, 84. virtual_delta fim_util: 520, 564, 565, 580. vtime_count fim_util: 503, 516, 554, 577. 433 v_calc_join fim_util: 557, 584. 430 v_time_calc fim_util: 59, 552. 374 v_time_init fim_util: 57, 499. wired_hardcore_data fim_util: 268, 362, 363, 364, 365, 366, 367, 368, 369. NO FATAL ERRORS ----------------------------------------------------------- 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