ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>fdump.alm ASSEMBLED ON: 11/29/83 1522.4 mst Tue OPTIONS USED: list ASSEMBLED BY: ALM Version 6.6 November 1982 ASSEMBLER CREATED: 09/21/83 1227.3 mst Wed  1 " ***********************************************************  2 " * *  3 " * Copyright, (C) Honeywell Information Systems Inc., 1982 *  4 " * *  5 " ***********************************************************  6 " FDUMP  7 "  8 " FDUMP is called to make a fast dump into a special dump partition in  9 " secondary storage. This dump will later be formated and printed on-line.  10  11 " If FDUMP is called with an argument ( n ) n will become the next  12 " erfnum - error report form number. No dump will be taken.  13 "  14 " Rewritten on 10/27/72 for the 6180 by Bill Silver.  15 " Last modified 5/19/75 by N. I. Morris.  16  17  000000 18 name fdump 19  000000 0a 002322 7100 00 20 tra start Jump to the start of program.  21  22  23 include bosequ 1-1 " Begin include file ...... bosequ.incl.alm 1-2 " Modified 8/25/76 by N. I. Morris  1-3 " Modified 8/79 by R.J.C. Kissel to expand BOS. 1-4 " Modified November 1981 by C. Hornig to add pgmorg.  1-5 " Modified October 1982 by J. Bongiovanni to take it out  1-6  000000 1-7 bool ds,0 descriptor segment  000001 1-8 bool tmp,1 temp seg  000002 1-9 bool bf,2 buffer segment for save/restor  000003 1-10 bool pgm,3 program in control 000004 1-11 bool xs1,4 spare segment  000005 1-12 bool xs2,5 spare segment  000005 1-13 bool fgb,5 flagbox segment  000006 1-14 bool com,6 common 000007 1-15 bool mem,7 all memory 1-16  000017 1-17 equ arglen,15 max number of args from scan  1-18  004000 1-19 bool runcom_bit,4000 runcom bit in dir entry  002000 1-20 bool firmware_bit,2000 firmware bit in dir entry  1-21  012000 1-22 bool utilorg,12000 origin of utility package  1-23  1-24 " End of include file ...... bosequ.incl.alm  24  25 include apnd_equ  2-1 " 2-2 " Begin include file ...... apnd_equ.incl.alm  2-3 " Created 11/19/72 by N. I. Morris  2-4 " modified 5/19/75 by Noel I. Morris  2-5 " Modified 8/79 by R.J.C. Kissel to use expanded BOS.  2-6 " Modidied 7/82 by Sherman D. Sprague to add cmpsdw.  2-7  007000 2-8 bool apnd_org,7000 2-9  007000 2-10 equ cmdbr,apnd_org+0 DBR of process being examined  007002 2-11 equ hcdbr,apnd_org+2 hardcore DBR value  007004 2-12 equ fetchout,apnd_org+4 used to reference block fetched by fetch  007006 2-13 equ read_args,apnd_org+6 last block fetched by fetch  007010 2-14 equ fetchin,apnd_org+8 absadr of word to be fetched  007011 2-15 equ sltseg,apnd_org+9 SLT segment number  007012 2-16 equ bosdmp,apnd_org+10 non-zero if BOS itself is to be fetched  007013 2-17 equ pagesw,apnd_org+11 non-zero if paging to be simulated 007014 2-18 equ pmlsw,apnd_org+12 non-zero if PML to be simulated 007016 2-19 equ sstsdw,apnd_org+14 SDW of SST segment 007020 2-20 equ cmpsdw,apnd_org+16 SDW of CMP segment 007022 2-21 equ castap,apnd_org+18 offset of first ASTE in SST segment  2-22  007026 2-23 equ getinit,apnd_org+22 initialize appending package  007027 2-24 equ getsdw,apnd_org+23 fetch an SDW  007030 2-25 equ getwd,apnd_org+24 fetch a word  007031 2-26 equ grab,apnd_org+25 fetch from a list  007032 2-27 equ apnd,apnd_org+26 appending simulation 007033 2-28 equ unapnd,apnd_org+27 to modify a segment  007034 2-29 equ get,apnd_org+28 get a block of data  007035 2-30 equ put,apnd_org+29 write a block of data 007036 2-31 equ comp,apnd_org+30 compare a block of data  007037 2-32 equ fetch,apnd_org+31 to fetch core  007040 2-33 equ unfetch,apnd_org+32 to rewrite fetched buffer 007041 2-34 equ fetch_use_buffer,apnd_org+33 to set SDW to appending buffer  007042 2-35 equ sltsearch,apnd_org+34 get segment # given name 007043 2-36 equ getsltname,apnd_org+35 get name of segment 007044 2-37 equ pd_check,apnd_org+36 check for page on paging device  007045 2-38 equ pd_modify,apnd_org+37 turn on modified bit in pdmap  007046 2-39 equ pd_getptr,apnd_org+38 get pointer to pdmap entry  007047 2-40 equ pvt_to_devt,apnd_org+39 convert pvtx to device type wd 2-41  2-42 " End of include file ...... apnd_equ.incl.alm  2-43  26  27 include sstn_equ  3-1  3-2 " Begin include file ...... sstn_equ.incl.alm  3-3 " Created 5/11/75 by Noel I. Morris 3-4 " Modified 8/79 by R.J.C. Kissel to use expanded BOS.  3-5  006000 3-6 bool sstn_org,6000 3-7  3-8  3-9 " End of include file ...... sstn_equ.incl.alm  3-10  28  29 include bos_common 4-1 "  4-2 " Begin include file ...... bos_common.incl.alm 4-3 " Modified on 8/31/76 by N. I. Morris  4-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  4-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 4-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  4-7 " MACHINE CONDITIONS AREA  4-8 " Its length is "storlen". 4-9  000000 4-10 equ amptwregs,0 Ass. Mem PTW registers  000100 4-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 4-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 4-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 4-14 equ ouhist,320 operations hist regs  000700 4-15 equ cuhist,448 control unit hist regs  001100 4-16 equ eishist,576 eis hist regs  001300 4-17 equ aphist,704 appending unit hist regs  001500 4-18 equ prs,832 pointer regs  001520 4-19 equ regs,848 sreg 001530 4-20 equ low_order_port,856 port to read clock from 001532 4-21 equ mctime,858 bootload memory clock  001540 4-22 equ scu,864  001550 4-23 equ mcm,872 memory masks 8 ports 001570 4-24 equ dbr,888  001572 4-25 equ intrpts,890 waiting interrupts 001573 4-26 equ bar,891 bar  001574 4-27 equ modereg,892 processor & cache mode registers  001576 4-28 equ faultreg,894 processor fault register  001600 4-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 4-30 equ coreblocks,904 array of port information  4-31 " Bits 0-17 => num 1st 64-word block  4-32 " Bits 18-35 => num of 64-word blocks  4-33 " (-1) => no mem on this port  001620 4-34 equ lowport_cfg,912 Saved CFG from bootload SCU  4-35  002000 4-36 equ storlen,1024  4-37  4-38  4-39  4-40 " BOS COMMAND DIRECTORY 4-41 " Its length is "dirlen".  4-42  002000 4-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  4-44 " (24-35) => # of sectors in BOS common  002001 4-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 4-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 4-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  4-48 " (24-35) => # of sectors in Multics core image  002004 4-49 equ setuparea,dir+4 Sector and length of setup 002005 4-50 equ utilarea,dir+5 where utility package is kept  002010 4-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 4-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 4-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 4-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 4-55 equ diskchanno,dir+12 channel to be used for disk  002015 4-56 equ tapechanno,dir+13 channel # for tapes  002016 4-57 equ rdrchanno,dir+14 channel number for card reader  002017 4-58 equ ttychanno,dir+15 channel # for operator's tty  002020 4-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 4-60 equ inputsw,dir+17 read from tty, cards, macros  002022 4-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 4-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 4-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 4-64 equ skipsw,dir+21 if on, skip runcom lines 002026 4-65 equ ttypmtsw,dir+22 if on, prompt  002027 4-66 equ curtcmd,dir+23 current bos command 002030 4-67 equ readysw,dir+24 if on, print ready message  002032 4-68 equ cmdlst,dir+26 list of commands 4-69  000600 4-70 equ dirlen,384 4-71  4-72  4-73  4-74 " MACRO BUFFER AREA 4-75  002600 4-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 4-77 equ macroline,macrobuf+64 runcom command line 002716 4-78 equ macroargs,macroline+14 argument descriptors for runcom  4-79  4-80  4-81  4-82 " CONFIGURATION CARD AREA  4-83 " Its length is 2048 words.  4-84  003000 4-85 equ conf,macrobuf+128 start of configuration info  007000 4-86 equ econf,conf+2048 end of configuration info  000020 4-87 equ confl,16 length of each line  4-88  4-89  007000 4-90 equ seg6length,econf length of bos_common area segment 4-91  4-92 " End of include file ...... bos_common.incl.alm  4-93  30  31 include fdmp  5-1 " 5-2 " Begin include file ...... fdmp.incl.alm  5-3 " Modified on 5/19/75 by Noel I. Morris 5-4 " Modified 11/75 by NIM for NSS 5-5 " Last modified by Sherman D. Sprague 02/11/81 for DPS8 support.  5-6 " These are the DUMP partition management routines. 5-7  5-8  5-9 " The format of the dump partition is given below. The header is one page  5-10 " long. The DataNet 355 dump is 16K long. The segment dumps  5-11 " may begin or end in the middle of a Multics page. They will always  5-12 " be dumped in muliples of sector-sized blocks. 5-13 "  5-14 " _____________________________________________________________ 5-15 " | |  5-16 " | HEADER |  5-17 " | |  5-18 " _|____________________________________________________________| 5-19 " | |  5-20 " | DataNet 355 CORE IMAGE | 5-21 " | |  5-22 " _|____________________________________________________________| 5-23 " | |  5-24 " | SEGMENT DUMP |  5-25 " | |  5-26 " . . .  5-27 " . . .  5-28 " . . .  5-29 " | |  5-30 " | SEGMENT DUMP |  5-31 " | |  5-32 " _|____________________________________________________________| 5-33  5-34  5-35 " The format of the header is:  5-36 "  5-37 " _____________________________________________________________ 5-38 " | |  5-39 " | HEADER INFO |  5-40 " | |  5-41 " _|____________________________________________________________| 5-42 " | |  5-43 " | SEGMENT ARRAY | 5-44 " | |  5-45 " _|____________________________________________________________| 5-46 " | |  5-47 " | FIRST PAGE OF BOS COMMON |  5-48 " | |  5-49 " _|____________________________________________________________| 5-50  5-51  5-52  5-53 " The segment array contains an entry for each segment dumped. Each entry is  5-54 " one word.  5-55  5-56 " Format of segment array entry:  5-57  5-58 " _____________________________________________________________ 5-59 " | 0 | 18 |  5-60 " | SEGMENT NUMBER | NUM SECTORS DUMPED |  5-61 " | | | 5-62 " _|______________________________|______________________________|  5-63  5-64  5-65  5-66  002000 5-67 equ page_size,1024 Number of words in a page. 000012 5-68 equ page_power,10 Page size as a power of 2. 5-69  000100 5-70 equ sector_size,64 Size of a secondary storage sector.  000006 5-71 equ sector_power,6 This size as a power of 2. 5-72  5-73 " Number of sector size blocks in a page.  000020 5-74 equ num_sectors_page,page_size/sector_size 5-75  002000 5-76 equ dmpbufl,page_size Size of the apnd buffer.  5-77  5-78 " 5-79 " The FDUMP header follows. It contains three parts. The first contains  5-80 " header information. The second is the segment array which contains  5-81 " an entry for each segment dumped. The third is the machine condition 5-82 " which is a copy of the first part of BOS common. The header is written  5-83 " into the first record of the DUMP partition.  5-84  004000 5-85 equ hdr_lth,2048 length of entire header  000020 5-86 equ hdr_sects,(hdr_lth-storlen)/sector_size # of sectors in first two parts of header  200000 5-87 equ d355_lth,16384*4 length of four DataNet 355 core images  5-88  000001 aa 000000 0110 03 5-89 mod 16 000002 aa 000000 0110 03 000003 aa 000000 0110 03 000004 aa 000000 0110 03 000005 aa 000000 0110 03 000006 aa 000000 0110 03 000007 aa 000000 0110 03 000010 aa 000000 0110 03 000011 aa 000000 0110 03 000012 aa 000000 0110 03 000013 aa 000000 0110 03 000014 aa 000000 0110 03 000015 aa 000000 0110 03 000016 aa 000000 0110 03 000017 aa 000000 0110 03 5-90  5-91 " This is part one of the header. It is the information section. It must not be longer  5-92 " than 16 words.  5-93  000020 5-94 header: 5-95  000020 5-96 hdr.words_dumped:  000020 aa 000000 000000 5-97 oct 0 number of words in dump image  5-98  000021 5-99 hdr.valid:  000021 aa 000000 000000 5-100 oct 0 Flag denoting whether or not the dump has been processed.  5-101 " 0 => that it has.  5-102 even  000022 5-103 hdr.time:  000022 aa 000000 000000 5-104 oct 0,0 Time of the dump.  000023 aa 000000 000000 5-105  000024 5-106 hdr.erfnum: 000024 aa 000000 000000 5-107 oct 0 Error Report Form Number.  5-108  000025 5-109 hdr.num_segs:  000025 aa 000000 000000 5-110 oct 0 Number of segments dumped.  5-111  000026 5-112 hdr.d355_valid: 000026 aa 000000 000000 5-113 oct 0 Flag denoting whether or not 355 dump has been processed.  5-114  000027 5-115 hdr.which_355:  000027 aa 000000 000000 5-116 oct 0 4 bit flag indicating which 355s were dumped.  5-117  5-118 even  000030 5-119 hdr.d355_time:  000030 aa 000000 000000 5-120 oct 0,0 Time DataNet 355 dump was taken.  000031 aa 000000 000000 5-121  000032 5-122 hdr.version:  000032 aa 000000 000002 5-123 dec 2 FDUMP version #  5-124  5-125  5-126 " Next is part two of the header - the segment array. It must begin at word 16 of 5-127 " the header.  5-128  000033 aa 000000 0110 03 5-129 mod 16 000034 aa 000000 0110 03 000035 aa 000000 0110 03 000036 aa 000000 0110 03 000037 aa 000000 0110 03 5-130  001760 5-131 equ seg_array_size,header+hdr_lth-*-storlen size of segment array  000040 5-132 hdr.seg_array:  000040 5-133 bss seg_array,seg_array_size  5-134  5-135 " 5-136  5-137 " FDMP_READ_HEADER - Initialize variables and read the dump header. 5-138 "  5-139 " tsx2 fdmp_read_header 5-140 " arg q = 0 => fdump  5-141 " = 1 => fd355  5-142 " tra error 5-143  002020 5-144 fdmp_read_header:  002020 aa 000000 2350 32 5-145 lda 0,2* grab argument  002021 0a 002321 7550 00 5-146 sta fdmp_switch save for later checks  002022 aa 000001 6220 12 5-147 eax2 1,2 step over argument  002023 0a 002156 7420 00 5-148 stx2 fdx2 save return 5-149  5-150 " Get limits of dump partition from PART DUMP card. 5-151  002024 0a 003460 2350 00 5-152 lda =adump Find dump partition.  002025 aa 012307 7020 00 5-153 tsx2 find_part .. 002026 0a 002307 0000 00 5-154 arg devt Fill in device type. 002027 0a 002276 7100 00 5-155 tra fdmp_erret 002030 0a 002304 7550 00 5-156 sta first_rnum Save first record number.  002031 0a 002304 0760 00 5-157 adq first_rnum Compute last record number. 002032 0a 002306 7560 00 5-158 stq last_rnum And save.  5-159  5-160 " Now read in the first sector of the current dump header. We must check to  5-161 " see if there is still a valid dump out there. 5-162  002033 0a 002304 2350 00 5-163 lda first_rnum Get num of first record in partition.  002034 aa 012216 7020 00 5-164 tsx2 mulbos Convert Multics device address to BOS address.  002035 0a 002307 0000 00 5-165 arg devt Device ID.  002036 0a 002255 7100 00 5-166 tra error_config_card Error implies config card contained error.  5-167  002037 0a 002314 7550 00 5-168 sta head_sectn_nsect Save sector number of first page of partition.  002040 0a 003461 3750 00 5-169 ana =o777777770000 Zero out sector count field.  002041 aa 000020 2750 07 5-170 ora hdr_sects,dl Insert number of sectors to read. 5-171  002042 aa 012211 7020 00 5-172 tsx2 rdev Read in the header. 002043 0a 002307 0000 00 5-173 arg devt  002044 aa 3 00020 0111 00 5-174 nop pgm|header 002045 0a 002266 7100 00 5-175 tra error_io  5-176  5-177 " 5-178  5-179 " The header is now in core. Test the flags which indicate whether or not  5-180 " the dump has been processed. Compute new ERF number. 5-181  002046 0a 002156 2220 00 5-182 ldx2 fdx2 restore X2  002047 0a 002321 2340 00 5-183 szn fdmp_switch fdmp or fd355? 002050 0a 002053 6010 00 5-184 tnz *+3 TRA if fd355  002051 0a 000021 2340 00 5-185 szn hdr.valid Has previous fdump been picked up?  002052 0a 002054 7100 00 5-186 tra *+2  002053 0a 000026 2340 00 5-187 szn hdr.d355_valid Has previous fd355 been picked up?  002054 0a 002111 6000 00 5-188 tze steperf If so, go to step ERF #  5-189  002055 aa 012241 7020 00 5-190 tsx2 erpt Tell operator about situation.  002056 aa 057 160 162 145 5-191 acc 'previous dump (erf # ^d) has not been picked up'  002057 aa 166 151 157 165 002060 aa 163 040 144 165 002061 aa 155 160 040 050 002062 aa 145 162 146 040 002063 aa 043 040 136 144 002064 aa 051 040 150 141 002065 aa 163 040 156 157 002066 aa 164 040 142 145 002067 aa 145 156 040 160 002070 aa 151 143 153 145 002071 aa 144 040 165 160 002072 0a 000024 0000 00 5-192 arg hdr.erfnum 5-193  002073 aa 012241 7020 00 5-194 tsx2 erpt Ask him what to do. 002074 aa 030 163 150 157 5-195 acc 'should it be overwritten' 002075 aa 165 154 144 040 002076 aa 151 164 040 142 002077 aa 145 040 157 166 002100 aa 145 162 167 162 002101 aa 151 164 164 145 002102 aa 156 000 000 000 5-196  002103 aa 012247 7020 00 5-197 tsx2 readtty Read answer: either "yes or "no".  002104 0a 002103 7100 00 5-198 tra *-1 Keep reading until we get answer. 5-199  002105 aa 012200 7020 00 5-200 tsx2 scan scan the input line 002106 aa 012040 2350 00 5-201 lda arg and grab first argument  002107 0a 003462 1150 00 5-202 cmpa =h yes Is it "yes"?  002110 0a 002276 6010 00 5-203 tnz fdmp_erret No, it is "no". Just return 5-204  002111 0a 000021 2350 00 5-205 steperf: lda hdr.valid Has ERF # been incremented? 002112 0a 000026 2750 00 5-206 ora hdr.d355_valid ..  002113 0a 002115 6010 00 5-207 tnz *+2 If not,  002114 0a 000024 0540 00 5-208 aos hdr.erfnum increment it now.  5-209  002115 0a 002156 2220 00 5-210 fdrhrtn: ldx2 fdx2 restore X2  002116 aa 000001 7100 12 5-211 tra 1,2 and return  5-212  5-213 " 5-214  5-215 " FDMP_WRITE_DATA - Write blocks of data into the dump parition.  5-216 "  5-217 " eax7 no_sectors number of sectors to be written  5-218 " tsx2 fdmp_write_data  5-219 " tra error 5-220 " stx7 no_sectors_written  5-221 "  5-222  002117 5-223 fdmp_write_data:  002117 0a 002156 7420 00 5-224 stx2 fdx2 Save return address.  002120 0a 002157 7400 00 5-225 stx0 fdx0 Save X0.  002121 aa 005000 6200 00 5-226 eax0 fdmp_buff X0 points to beginning of buffer.  002122 0a 002317 4500 00 5-227 stz num_sectors_written clear number of sectors written this call  5-228  002123 aa 000000 6350 17 5-229 eaa 0,7 sector count in AU  002124 aa 000022 7710 00 5-230 arl 18 shift to AL  5-231  002125 5-232 write_next: 002125 0a 002316 4500 00 5-233 stz num_ovfl_sects Initialize sector overflow count.  002126 0a 002310 7510 03 5-234 stca sectn_nsect,03 Initially assume that this is the number of  5-235 " sectors that will be written.  5-236  002127 0a 002315 0350 00 5-237 adla num_sectors Add to number of sectors from start of record.  002130 aa 000020 1350 07 5-238 sbla num_sectors_page,dl Are we crossing a Multics record boundary?  002131 0a 002140 6044 00 5-239 tmoz write Tra if NO. Info will fit into this record.  5-240  5-241  5-242 " We have encountered a Multics record boundary. Not all of the data we must write 5-243 " can be written with one call to "wdev". We will fill out this Multics record and 5-244 " then compute the physical location of the next Multics record. We will iterate  5-245 " to write out the remaining data.  5-246  002132 0a 002316 7550 00 5-247 sta num_ovfl_sects Save number of sectors which overflow record boundary.  5-248  002133 0a 002310 2350 00 5-249 lda sectn_nsect Get total number of sectors to write.  002134 aa 007777 3750 07 5-250 ana =o7777,dl ..  002135 0a 002316 1350 00 5-251 sbla num_ovfl_sects Get number that can be written into current record.  002136 0a 002310 7510 03 5-252 stca sectn_nsect,03 Set number to be written in this call in device  5-253 " data word. 002137 0a 002162 6000 00 5-254 tze set_next_write If none, skip this write.  5-255  5-256  5-257 " We can now write into the current record without fear of crossing a  5-258 " cylinder boundary.  5-259  002140 0a 002313 7400 00 5-260 write: stx0 buff_ptr+1 Set offset of data in ITS pointer.  002141 0a 002310 2350 00 5-261 lda sectn_nsect Get num of 1st sector and num of sectors.  002142 aa 012212 7020 00 5-262 tsx2 wdev  002143 0a 002307 0000 00 5-263 arg devt  002144 aa 3 02312 0111 20 5-264 nop pgm|buff_ptr,* 002145 0a 002266 7100 00 5-265 tra error_io  5-266  5-267  5-268 " Now that we have written the data we must update the first sector number in the device data  5-269 " word (sectn_nsect) and we must increment the number of sectors dumped for this segment. 5-270  002146 0a 002310 2350 00 5-271 lda sectn_nsect Get number of sectors written. 002147 aa 007777 3750 07 5-272 ana =o7777,dl mask  002150 0a 002317 0550 00 5-273 asa num_sectors_written Add to number of sectors written for this segment. 002151 0a 002315 0550 00 5-274 asa num_sectors Add to sector within page. 002152 aa 000014 7350 00 5-275 als 12 shift to sector address position  002153 0a 002310 0550 00 5-276 asa sectn_nsect Add to number of first sector to write.  5-277  002154 0a 002316 2340 00 5-278 szn num_ovfl_sects Are there any overflow sectors? 002155 0a 002162 6010 00 5-279 tnz set_next_write If so, compute next device address. 5-280  5-281  5-282 " No overflow sectors so return.  5-283  002156 0a 002156 6220 00 5-284 fdx2: eax2 * Restore return address.  002157 0a 002157 6200 00 5-285 fdx0: eax0 * Restore X0.  002160 0a 002317 7270 00 5-286 lxl7 num_sectors_written Return the number of sectors written this call.  002161 aa 000001 7100 12 5-287 tra 1,2 Return.  5-288  5-289  5-290  5-291 " We come here when we hit a Multics record boundary. We recompute the physical address  5-292 " for the next Multics record in case we are crossing a disk cylinder boundary. 5-293  002162 5-294 set_next_write: 002162 0a 002305 2350 00 5-295 lda next_rnum Get number of the 1st record of the new area.  002163 0a 002306 1150 00 5-296 cmpa last_rnum Are we at the end of the dump partition?  002164 0a 002242 6050 00 5-297 tpl error_out_of_part Tra if YES. 5-298  002165 aa 012216 7020 00 5-299 tsx2 mulbos NO, get 1st sector number and device number  002166 0a 002307 0000 00 5-300 arg devt for this area.  002167 0a 002255 7100 00 5-301 tra error_config_card  002170 0a 002310 7510 74 5-302 stca sectn_nsect,74 Save first sector number.  5-303  002171 0a 002315 4500 00 5-304 stz num_sectors Set sector number within record back to zero.  002172 0a 002305 0540 00 5-305 aos next_rnum Step next record number.  5-306  002173 0a 002310 2360 00 5-307 ldq sectn_nsect Get number of sectors written previously.  002174 aa 007777 3760 07 5-308 anq =o7777,dl Mask out the sector number. 002175 aa 000030 7360 00 5-309 qls sector_power+18 Compute number of words written  002176 0a 002320 7560 00 5-310 stq fdtemp Store number of words written  002177 0a 002320 0600 00 5-311 adx0 fdtemp Bump the offset.  5-312  002200 0a 002316 2350 00 5-313 lda num_ovfl_sects Number of sectors remaining to be written in X7.  002201 0a 002125 7100 00 5-314 tra write_next Write out remaining information.  5-315  5-316  5-317 "  5-318  5-319 " FDMP_WRITE_HEADER - Write out the header. If fdump, write out machine conditions, too.  5-320 "  5-321 " tsx2 fdmp_write_header  5-322 " tra error 5-323 "  5-324  002202 5-325 fdmp_write_header:  002202 0a 002156 7420 00 5-326 stx2 fdx2 save X2 5-327  002203 aa 000002 2350 07 5-328 lda 2,dl set FDUMP version number 002204 0a 000032 7550 00 5-329 sta hdr.version .. 5-330  5-331  5-332 " Write the first part of header. Device addresses were saved from when first sector of  5-333 " the header was read.  5-334  002205 0a 002314 2350 00 5-335 lda head_sectn_nsect Get header device data word.  002206 0a 003461 3750 00 5-336 ana =o777777770000 Mask out the length.  002207 aa 000020 2750 07 5-337 ora hdr_sects,dl Insert number of sectors to write.  002210 aa 012212 7020 00 5-338 tsx2 wdev Write first page of header. 002211 0a 002307 0000 00 5-339 arg devt  002212 aa 3 00020 0111 00 5-340 nop pgm|header 002213 0a 002266 7100 00 5-341 tra error_io  5-342  5-343  5-344 " Now we will write the rest of of the header directly from BOS common.  5-345  002214 0a 002321 2340 00 5-346 szn fdmp_switch is this fdump? 002215 0a 002226 6010 00 5-347 tnz fdwhrtn if not, just return  5-348  002216 0a 002314 2350 00 5-349 lda head_sectn_nsect Get disk address of header again  002217 0a 003463 0350 00 5-350 adla =v24/hdr_sects Increment address by length of header  002220 0a 003461 3750 00 5-351 ana =o777777770000 Mask out the sector count.  002221 aa 000000 2750 07 5-352 ora num_sectors_page-hdr_sects,dl Fill out the rest of a page. 002222 aa 012212 7020 00 5-353 tsx2 wdev Write BOS common.  002223 0a 002307 0000 00 5-354 arg devt  002224 aa 6 00000 0111 00 5-355 nop com|0  002225 0a 002266 7100 00 5-356 tra error_io  5-357  002226 0a 002156 2220 00 5-358 fdwhrtn: ldx2 fdx2 restore X2  002227 aa 000001 7100 12 5-359 tra 1,2 and return  5-360  5-361  5-362 " 5-363  002230 5-364 err_no_records: 002230 aa 012241 7020 00 5-365 tsx2 erpt  002231 aa 034 156 157 040 5-366 acc 'no records in dump partition' 002232 aa 162 145 143 157 002233 aa 162 144 163 040 002234 aa 151 156 040 144 002235 aa 165 155 160 040 002236 aa 160 141 162 164 002237 aa 151 164 151 157 002240 aa 156 000 000 000 002241 0a 002276 7100 00 5-367 tra fdmp_erret 5-368  5-369  002242 5-370 error_out_of_part:  002242 aa 012241 7020 00 5-371 tsx2 erpt  002243 aa 042 144 165 155 5-372 acc 'dump is larger than dump partition'  002244 aa 160 040 151 163 002245 aa 040 154 141 162 002246 aa 147 145 162 040 002247 aa 164 150 141 156 002250 aa 040 144 165 155 002251 aa 160 040 160 141 002252 aa 162 164 151 164 002253 aa 151 157 156 000 002254 0a 002276 7100 00 5-373 tra fdmp_erret 5-374  5-375  002255 5-376 error_config_card:  002255 aa 012241 7020 00 5-377 tsx2 erpt  002256 aa 033 142 141 144 5-378 acc 'bad dump configuration card'  002257 aa 040 144 165 155 002260 aa 160 040 143 157 002261 aa 156 146 151 147 002262 aa 165 162 141 164 002263 aa 151 157 156 040 002264 aa 143 141 162 144 002265 0a 002276 7100 00 5-379 tra fdmp_erret 5-380  5-381  002266 5-382 error_io:  002266 aa 012241 7020 00 5-383 tsx2 erpt  002267 aa 030 146 141 164 5-384 acc 'fatal i/o error in fdump' 002270 aa 141 154 040 151 002271 aa 057 157 040 145 002272 aa 162 162 157 162 002273 aa 040 151 156 040 002274 aa 146 144 165 155 002275 aa 160 000 000 000 002276 5-385 fdmp_erret: 002276 aa 6 02021 2351 00 5-386 lda com|inputsw Cause next input to come from tty. 002277 aa 000006 7710 00 5-387 arl 6 ..  002300 aa 6 02021 7551 00 5-388 sta com|inputsw .. 002301 0a 002156 2220 00 5-389 ldx2 fdx2 Restore X2. 002302 0a 002317 7270 00 5-390 lxl7 num_sectors_written Return number written successfully.  002303 aa 000000 7100 12 5-391 tra 0,2 Take error return.  5-392  5-393  5-394 " 5-395  5-396 " The following three words are used to keep track of record numbers in the 5-397 " dump partition.  5-398  002304 5-399 first_rnum: 002304 5-400 bss ,1 Num of the first record in the dump partition. 002305 5-401 next_rnum:  002305 5-402 bss ,1 Num of the next record in the dump partition. 002306 5-403 last_rnum:  002306 5-404 bss ,1 Num of the last record in the dump partition. 5-405  5-406  5-407  5-408 " The following words are used when reading or writing the FDUMP header  5-409 " or when writing a page of a segment dump.  5-410  002307 5-411 devt: bss ,1 Device ID.  5-412  002310 5-413 sectn_nsect:  002310 5-414 bss ,1 Device data word. (0-23) = num of 1st sector. 5-415 " (24-35) = number of sectors.  5-416  002311 aa 000000 0110 03 5-417 even  002312 aa 000003 000043 5-418 buff_ptr: its pgm,0 Pointer to data to be written. 002313 aa 000000 000000 5-419  002314 5-420 head_sectn_nsect:  002314 5-421 bss ,1 Device data word for first page of header. 5-422  002315 5-423 num_sectors:  002315 aa 000000 000020 5-424 zero 0,num_sectors_page  5-425  002316 5-426 num_ovfl_sects: 002316 5-427 bss ,1 Number of sectors that overflow the write area.  5-428  002317 5-429 num_sectors_written:  002317 5-430 bss ,1 # of sectors written in this call  5-431 " to fdmp_write_data 5-432  002320 5-433 fdtemp: bss ,1  5-434  002321 5-435 fdmp_switch:  002321 5-436 bss ,1 = 0 => fdump  5-437 " = 1 => fd355  5-438  5-439  5-440  5-441 " End of include file ...... fdmp.incl.alm  5-442  32  005000 33 equ fdmp_buff,apnd_org-dmpbufl 34  35  36 "  37 " This is the start of the FDUMP program itself.  38  002322 39 start:  002322 0a 002440 7420 00 40 stx2 X2_fdump Save return address.  41  002323 aa 012300 7020 00 42 tsx2 initint Initialize interrupts and faults.  002324 0a 002440 0000 00 43 arg return FDUMP does not handle execute interrupts.  44 " If one is encountered we will just return. 45  002325 aa 012271 7020 00 46 tsx2 init_io Initialize the IOM routines.  47  002326 aa 012245 7020 00 48 tsx2 ttyinit Initialize the tty routines. FDUMP does not  002327 0a 002440 0000 00 49 arg return expect any tty request interrupts. If one  50 " is encountered we will just return.  51  002330 aa 012210 7020 00 52 tsx2 cvinit Initialize secondary storage conversion  53 " package.  54  002331 aa 000001 2350 07 55 lda 1,dl Set the FDUMP switch in BOS common to  002332 aa 6 02023 7551 00 56 sta com|fdump_state indicate that FDUMP has been entered.  57  58  59 " Initialize the fdump package and read in the header.  60  002333 0a 002020 7020 00 61 tsx2 fdmp_read_header  002334 0a 003464 0000 00 62 arg =0 002335 0a 002440 7100 00 63 tra return 64  65  66 " We now know that we can write into the dump partition. However, before we start  67 " to set up the header and dump segments we must check to see if all we have to 68 " do is set up a new Error Report Form Number. If the argument passed to FDUMP 69 " was not null and was numeric, it will be used to set a new ERF #. 70  002336 0a 002440 2220 00 71 ldx2 X2_fdump restore X2  002337 aa 7 00000 7271 12 72 lxl7 mem|0,2 Address of command input line in X7  002340 aa 000000 6260 00 73 eax6 0 initialize copy index  002341 aa 7 00000 2351 17 74 ccline: lda mem|0,7 Copy words of input line.  002342 aa 012001 7550 16 75 sta line,6 .. 002343 aa 000001 6270 17 76 eax7 1,7 ..  002344 aa 000001 6260 16 77 eax6 1,6 ..  002345 aa 000016 1060 03 78 cmpx6 14,du Copy 14 words.  002346 0a 002341 6040 00 79 tmi ccline .. 80  002347 aa 012200 7020 00 81 tsx2 scan now, rescan the input line for arguments  82  002350 aa 012041 2350 00 83 lda arg+1 Is argument = ( -1 ) ? 002351 0a 002365 6040 00 84 tmi begin_dumping Yes, there is no new erfnum.  002352 0a 002355 6000 00 85 tze set_new_erfnum If zero, use it to set new erfnum.  86  002353 aa 012061 2350 00 87 lda darg+1 Non-zero. Get decimal conversion of number.  002354 0a 002365 6000 00 88 tze begin_dumping If zero, then argument was not numeric.  89  002355 90 set_new_erfnum: 002355 aa 000001 1750 07 91 sba 1,dl Decrement the new erfnum.  002356 0a 000024 7550 00 92 sta hdr.erfnum Put new erfnum into the header. 002357 0a 000021 4500 00 93 stz hdr.valid Set flag to indicate no dump to be picked up.  94  95 " We can new write out the header with the new ERF number and exit. 96  002360 0a 002202 7020 00 97 tsx2 fdmp_write_header Write out the header with the new erfnum.  002361 0a 002440 7100 00 98 tra return 99  002362 aa 000000 2350 07 100 lda =0,dl Indicate no fdump has been taken.  002363 aa 6 02023 7551 00 101 sta com|fdump_state  002364 0a 002440 7100 00 102 tra return 103  104  105 " 106  107 " Now we can begin the dump. First we will setup the header. Then we will call  108 " proc so it can dump all the segments with W access in all of the processes.  109 " When proc has finished or when an error causes proc to stop the header  110 " will be written in the beginning of the dump partition and we will return.  111  112  002365 113 begin_dumping:  002365 0a 003465 2350 00 114 lda =h apnd " apnd" in A  002366 aa 007000 6360 00 115 eaq apnd_org origin of appending package in QU  002367 aa 012206 7020 00 116 tsx2 ldcom load the appending package 002370 0a 002440 7100 00 117 tra return .. 118  002371 aa 6 01570 2371 00 119 ldaq com|dbr Set DBR for dumping.  002372 aa 007000 7570 00 120 staq cmdbr 121  002373 aa 002000 6350 00 122 eaa dmpbufl size of apnd buffer in AU 002374 aa 007026 7020 00 123 tsx2 getinit Initialize the apending package.  124  002375 0a 003466 2350 00 125 lda =h sstn Load SST name table filler.  002376 aa 006000 6360 00 126 eaq sstn_org  002377 aa 012206 7020 00 127 tsx2 ldcom 002400 0a 002402 7100 00 128 tra *+2 If not found, don't execute it.  002401 aa 006000 7020 00 129 tsx2 sstn_org Fill the SST name table.  130  002402 aa 000002 2350 07 131 lda 2,dl Set FDUMP switch in BOS common to 002403 aa 6 02023 7551 00 132 sta com|fdump_state indicate that FDUMP has begun the dump.  133  002404 aa 000001 3350 07 134 lca 1,dl Set valid flag to indicate that dump 002405 0a 000021 7550 00 135 sta hdr.valid not processed.  136  002406 aa 6 01532 2371 00 137 ldaq com|mctime Set time of machine conditions.  002407 0a 000022 7570 00 138 staq hdr.time  139  002410 0a 000025 4500 00 140 stz hdr.num_segs No segments dumped yet.  002411 0a 000020 4500 00 141 stz hdr.words_dumped No words dumped yet.  142  002412 aa 007700 6350 00 143 eaa seg_array_size*4 Clear the seg array  002413 aa 000040 1004 00 144 mlr (),(rl),fill(0) .. 002414 0a 002414 000000 145 desc9a *,0 002415 0a 000040 000001 146 desc9a hdr.seg_array,au  147  002416 0a 002304 2350 00 148 lda first_rnum get first record of dump partition  002417 aa 000102 0350 07 149 adla (hdr_lth+d355_lth+page_size-1)/page_size,dl add # of records in header  002420 0a 002305 7550 00 150 sta next_rnum set next record for dumping 151  152  153 " Now print a message telling operator the erfnum of this dump.  154  002421 aa 012241 7020 00 155 tsx2 erpt Print erfnum  002422 aa 036 145 162 162 156 acc 'error report form number: # ^d'  002423 aa 157 162 040 162 002424 aa 145 160 157 162 002425 aa 164 040 146 157 002426 aa 162 155 040 156 002427 aa 165 155 142 145 002430 aa 162 072 040 043 002431 aa 040 136 144 000 002432 0a 000024 0000 00 157 arg hdr.erfnum 158  159  160 " Now call proc to dump the segments. The subroutines called by proc that are not  161 " in the utility package must be supplied by FDUMP. Some of these just do an 162 " immediate return. The subroutine segprint, however, does the actual dumping 163 " of a segment. 164  002433 0a 002620 7020 00 165 tsx2 proc Dump all of the W access segments of  166 " all the processes. 167  002434 168 finish_up:  002434 0a 002202 7020 00 169 tsx2 fdmp_write_header Write out the header now.  002435 0a 002440 7100 00 170 tra return 171  002436 aa 000003 2350 07 172 lda 3,dl Indicate normal completion of FDUMP. 002437 aa 6 02023 7551 00 173 sta com|fdump_state  174  002440 175 return: 002440 0a 002440 6220 00 176 X2_fdump: eax2 * Restore return address to SETUP.  002441 aa 000001 3350 07 177 lca 1,dl No next command to chain to. 002442 aa 7 00001 7101 12 178 tra mem|1,2 Return to SETUP.  179  180 "  181 " These subroutines are called by proc. However, they are not used by FDUMP.  182 " Thus they will simply return to proc.  183  184  002443 185 printreg:  002443 186 descrseg:  002443 aa 000000 7100 12 187 tra 0,2 Return to proc.  188  189  190  191  192 " This subroutine is called by proc to print out a segment. It will  193 " write the segment into the dump partition. The segment number being dumped 194 " and the SDW for this segment are in segno and pcsdw. They were set up  195 " by "proc".  196  002444 197 segprint:  002444 0a 002571 7420 00 198 stx2 X2_segprint Save return address in proc. 199  002445 0a 003314 2370 00 200 ldaq pcsdw Get SDW for this segment  002446 0a 002606 7570 00 201 staq sdw and save it. 202  203  204 " Check to see if SDW.ADDR = -1. If so we will ignore this segment.  205 " Check high order bit to left of bound field, and ignore segment if ON.  206  002447 aa 000014 7310 00 207 ars sdw.add_shift Right justify ADDR in A. If ADDR is neg 002450 0a 003467 1150 00 208 cmpa =-1 it will fill with 1 bits. Is it -1? 002451 0a 002563 6000 00 209 tze end_segment Yes, don't dump this segment.  210  002452 0a 002607 2340 00 211 szn sdw+1 Is high order bit ON?  002453 0a 002563 6040 00 212 tmi end_segment If so, ignore this segment.  213  214  215 " Make sure we have enough room in the seg_array in the header.  216 " Also get the address of the next entry.  217  002454 0a 000025 2350 00 218 lda hdr.num_segs Get the number of the next entry. 002455 aa 001757 1150 07 219 cmpa seg_array_size-1,dl Have we used all of the entries?  002456 0a 002576 6050 00 220 tpl error_full_array Tra if YES.  221  002457 aa 000000 6270 05 222 eax7 0,al Index to seg array entry in X7  002460 0a 002614 7470 00 223 stx7 entry_addr Save it. We need it later.  224  225  226 " Increment the number of segments dumped field in the header. Also store the number  227 " of this segment in its seg_array entry. The number of blocks dumped for this 228 " segment will be initialized to zero.  229  002461 0a 000025 0540 00 230 aos hdr.num_segs Up count of segments dumped.  231  002462 0a 002610 2260 00 232 ldx6 segno Get segment number.  002463 0a 000040 7460 17 233 stx6 hdr.seg_array,7 Store in seg_array entry. 234  002464 0a 002615 4500 00 235 stz num_sectors_dumped No sectors dumped for this segment yet. 002465 0a 002611 4500 00 236 stz offset Initialize word offset in segment. 002466 0a 002617 4500 00 237 stz zero_sectors_tot  238  239  240 " Get the number of pages in the segment and the number of sectors in the last page of  241 " the segment. Note, both of these values will be one less than the actual value.  242  243  002467 0a 002607 2360 00 244 ldq sdw+1 Get word 2 of SDW.  002470 aa 377770 3760 03 245 anq sdw.bound,du Isolate BOUND field.  002471 aa 000021 7720 00 246 qrl 3+18-4 Right justify BOUND field in A (3+18) and multiply by  247 " 16 (-4) to get number of words (-16) in segment.  002472 aa 002000 5060 07 248 div dmpbufl,dl divide by the block size  002473 0a 002612 7560 00 249 stq num_blocks_seg quotient is number of blocks  002474 aa 000020 0350 07 250 adla 16,dl remainder+16 is number of words in last block  002475 0a 002613 7550 00 251 sta num_words_lblock ..  252  253  254  255 " 256 " Now we will process the segment block by block. We will search down from the end of each 257 " block skipping all zero sectors. We will write the block from the beginning to the  258 " end of the first (from the end) non-zero sector. The number of zero sectors  259 " skipped will be remembered. If there is another non-zero block in the segment then the  260 " zero sectors that were skipped will be written out.  261  002476 262 block_loop: 002476 0a 002616 4500 00 263 stz zero_sectors_block Start out with no zero sectors at the end of the block. 264  002477 aa 002000 2350 07 265 lda dmpbufl,dl Block size in AL.  002500 0a 002612 2340 00 266 szn num_blocks_seg Is this the last block in the segment?  002501 0a 002503 6010 00 267 tnz *+2 Tra if NO.  002502 0a 002613 2350 00 268 lda num_words_lblock Get number of words in the last block.  002503 0a 002507 7510 07 269 stca getl,07 Save for call to get.  270  002504 0a 002611 2360 00 271 ldq offset Offset in QU.  002505 aa 007034 7020 00 272 tsx2 get Fetch the block of words.  002506 0a 002606 0000 00 273 arg sdw  002507 aa 005000 000000 274 getl: zero fdmp_buff,*-*  002510 0a 002563 7100 00 275 tra end_segment  276  002511 0a 002507 2350 00 277 lda getl Get length of this block.  002512 aa 777777 3750 07 278 ana -1,dl Remove extraneous information.  002513 aa 000000 6260 05 279 eax6 0,al X6 is word index into block.  002514 aa 000077 0350 07 280 adla sector_size-1,dl round up size to nearest sector  002515 aa 000006 7710 00 281 arl sector_power compute number of sectors in the block.  002516 aa 000000 6270 05 282 eax7 0,al X7 countains count of sectors in this block.  283  284  285 " Now start testing one sector at a time. We want to know if the sector is all zeros.  286 " We will start testing at the end of the sector.  287  002517 288 test_zero_loop: 002517 aa 004776 2370 16 289 ldaq fdmp_buff-2,6 Test two words at a time.  002520 0a 002532 6010 00 290 tnz non_zero_block We are done testing this block as soon as we find one  291 " non zero word. 002521 aa 777776 6260 16 292 eax6 -2,6 Set index for next word pair.  002522 aa 000077 3060 03 293 canx6 sector_size-1,du Have we finished with sector?  002523 0a 002517 6010 00 294 tnz test_zero_loop Has whole sector been tested? Tra if NO.  295  296 " We have found a zero sector.  297  002524 0a 002616 0540 00 298 aos zero_sectors_block Up count of zero sectors at the end of this block.  002525 aa 777777 6270 17 299 eax7 -1,7 Decrement count of sectors in the block.  002526 0a 002517 6010 00 300 tnz test_zero_loop Tra if there are still zeros we haven't tested. 301  302  303 " This whole block is zero. We must add the number of sectors in the block to the total number 304 " of sectors that we have already skipped.  305  002527 0a 002616 2350 00 306 lda zero_sectors_block 002530 0a 002617 0550 00 307 asa zero_sectors_tot  308  002531 0a 002554 7100 00 309 tra end_block  310  311  312 " We come here when we find a non-zero block. If any zero sectors have been skipped before 313 " this block they must be written out first. Note, zero sectors at the front of the block  314 " will be written out with the rest of the block. Any zero sectors at the end of the block  315 " will not be written out now.  316  002532 317 non_zero_block: 002532 0a 002617 7260 00 318 lxl6 zero_sectors_tot Were any sectors skipped before this block?  002533 0a 002547 6000 00 319 tze write_block Tra if NO. 320  321  322 " We must write out the zero sectors.  323  002534 aa 000000 1004 00 324 mlr (),(),fill(0) Zero out one sector's worth of buffer.  002535 0a 002535 000000 325 desc9a *,0 002536 aa 005000 000400 326 desc9a fdmp_buff,sector_size*4 327  002537 328 write_zero_loop:  002537 aa 000001 6270 00 329 eax7 1 Write 1 sector block at a time.  002540 0a 002117 7020 00 330 tsx2 fdmp_write_data  002541 0a 002572 7100 00 331 tra cleanup  002542 0a 002615 0470 00 332 asx7 num_sectors_dumped  002543 aa 000001 3350 07 333 lca 1,dl Count one sector written.  002544 0a 002617 0550 00 334 asa zero_sectors_tot Have we written all the zero sectors? 002545 0a 002537 6010 00 335 tnz write_zero_loop Tra if NO. 336  002546 0a 002476 7100 00 337 tra block_loop Now process the non-zero block again.  338  339  340 " Now write out the current block.  341  002547 342 write_block:  002547 0a 002117 7020 00 343 tsx2 fdmp_write_data  002550 0a 002572 7100 00 344 tra cleanup  002551 0a 002615 0470 00 345 asx7 num_sectors_dumped  346  002552 0a 002616 2350 00 347 lda zero_sectors_block Set up the total number of zero sectors skipped to be  002553 0a 002617 7550 00 348 sta zero_sectors_tot the number that were skipped at the end of this block.  349  350  351 " We have come to the end of a block. We have  352 " to diddle the block count and the segment word offset.  353  002554 354 end_block:  002554 aa 000001 3350 07 355 lca 1,dl Decrement number of blocks left in segment.  002555 0a 002612 0550 00 356 asa num_blocks_seg ..  002556 0a 002563 6040 00 357 tmi end_segment No more blocks? Tra if YES. Segment finished.  358  002557 0a 002611 2270 00 359 ldx7 offset Increment segment word offset by block size.  002560 aa 002000 6270 17 360 eax7 dmpbufl,7 002561 0a 002611 7470 00 361 stx7 offset  002562 0a 002476 7100 00 362 tra block_loop Go process next block.  363  364  365 " This is the end of the dump of this segment. We will set the number of blocks that were  366 " dumped in the entry for this segment in the segment array table.  367  002563 368 end_segment:  002563 0a 002614 2270 00 369 ldx7 entry_addr Get address of this entry. 002564 0a 002615 2260 00 370 ldx6 num_sectors_dumped Get number of sectors actually dumped for this segment.  002565 0a 000040 4460 17 371 sxl6 hdr.seg_array,7 Save in table entry.  002566 aa 000000 6350 16 372 eaa 0,6 Sectors dumped in AU. 002567 aa 000014 7710 00 373 arl 18-sector_power Words dumped in AL.  002570 0a 000020 0550 00 374 asa hdr.words_dumped Add to total number of words in dump image.  375  002571 376 X2_segprint:  002571 0a 002571 7100 00 377 tra * Return to caller.  378  002572 0a 002615 0470 00 379 cleanup: asx7 num_sectors_dumped Update number of sector successfully dumped.  002573 0a 002434 6220 00 380 eax2 finish_up Fudge the return address from segprint.  002574 0a 002571 7420 00 381 stx2 X2_segprint ..  002575 0a 002563 7100 00 382 tra end_segment Fill in the segment array and then quit.  383 "  384  385 " Error routines called by FDUMP.  386  387  388  002576 389 error_full_array:  002576 aa 012241 7020 00 390 tsx2 erpt  002577 aa 022 163 145 147 391 acc 'segment array full'  002600 aa 155 145 156 164 002601 aa 040 141 162 162 002602 aa 141 171 040 146 002603 aa 165 154 154 000 002604 aa 6 02021 4501 00 392 stz com|inputsw  002605 0a 002434 7100 00 393 tra finish_up  394  395  396 " The following are the FDUMP data areas.  397  398 even  002606 399 sdw: bss ,2 SDW of the segment to be dumped.  400  401  002610 402 segno: bss ,1 The number of the segment being dumped. (Left half)  403  002611 404 offset: bss ,1 Word offset within the segment. (Left half)  405  406  407 " The following words are used to temporarily hold data while dumping a segment.  408  002612 409 num_blocks_seg: 002612 410 bss ,1 Number of blocks in a segment. 411  002613 412 num_words_lblock:  002613 413 bss ,1 Number of sectors in the last page of a segment.  414  002614 415 entry_addr: 002614 416 bss ,1 Saves the address of the seg_array entry. (Left half)  417  002615 418 num_sectors_dumped: 002615 419 bss ,1 Number of sectors of the segment  420 " that have actually been dumped.  421  002616 422 zero_sectors_block: 002616 423 bss ,1 Number of zero sectors found at the end  424 " of a block.  425  002617 426 zero_sectors_tot:  002617 427 bss ,1 Number of zero sectors skipped before  428 " the current block. 429  430  431  432 include proc  6-1 "  6-2 " Begin include file ...... proc.incl.alm  6-3 " Modified 6/30/77 by Noel I. Morris  6-4 " Dump option feature by bsg 12/11/78  6-5 " Modified 4/30/80 by J. A. Bush to add ELIG, PP, and DIRS keywords 6-6 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 6-7 " Modified April 1981 by J. Bongiovanni for picking up apte size from tc_data  6-8  000000 6-9 equ dir_modify,0 directory header modify word  6-10 " ****** THE FOLLOWING EQU'S MAY HAVE TO BE CHANGED IF TC_DATA IS REASSEMBLED. ******  000400 6-11 bool default_aptorg,400 origin of array of APT entries in tc_data  000253 6-12 bool aptoff,253 word containing offset of origin of APT entries  000313 6-13 bool aptsize,313 loc'n containing # of APT entries 000327 6-14 bool aptentsize,327 location containing size of an APTE  6-15  002620 0a 003264 7420 00 6-16 proc: stx2 pcx2 here to dumpprocesses  002621 0a 003265 7410 00 6-17 stx1 pcx2+1  002622 0a 003266 7400 00 6-18 stx0 pcx2+2  002623 0a 003267 7430 00 6-19 stx3 pcx2+3  002624 aa 007000 2370 00 6-20 ldaq cmdbr save current dbr  002625 0a 003316 7570 00 6-21 staq pcdbr 002626 0a 002443 7020 00 6-22 tsx2 printreg print regs once 002627 aa 005500 6270 00 6-23 eax7 nsegbitab say no segments dumped 002630 aa 000040 0604 00 6-24 csl (),(rl),bool(00)  002631 0a 002631 000000 6-25 descb *,0  002632 0a 003340 000017 6-26 descb segbitab,x7  002633 0a 003273 5540 00 6-27 stc1 pcfirst first proc, dump unpaged segs  002634 0a 003337 4500 00 6-28 stz pcddbr We havent dumped the cmdbr yet 002635 aa 007042 7020 00 6-29 tsx2 sltsearch search the SLT to find tc_data 002636 0a 003277 0000 00 6-30 arg tcd_name  002637 0a 003256 7100 00 6-31 tra pcer  002640 aa 000043 7730 00 6-32 lrl 36-1 move to QU and multiply by 2 002641 aa 007032 7020 00 6-33 tsx2 apnd fetch the SDW for tc_data  002642 aa 007002 0000 00 6-34 arg hcdbr  002643 0a 003256 0000 00 6-35 arg pcer  002644 aa 007004 2370 20 6-36 ldaq fetchout,*  002645 0a 003312 7570 00 6-37 staq aptsdw  002646 aa 007031 7020 00 6-38 tsx2 grab get information from tc_data  002647 0a 003302 000000 6-39 zero pclist using list  002650 0a 003256 7100 00 6-40 tra pcer  6-41  002651 aa 000400 6350 00 6-42 eaa default_aptorg default origin in AU  002652 0a 003303 3540 00 6-43 stac aptorg if cell was zero, use default 002653 aa 000100 2350 07 6-44 lda size_of_apt_entry,dl default size of APTE  002654 0a 003307 3540 00 6-45 stac pcaptsize if cell was zero, use default  6-46  002655 aa 007042 7020 00 6-47 tsx2 sltsearch search for dseg  002656 0a 003326 0000 00 6-48 arg dseg_name  002657 0a 003256 7100 00 6-49 tra pcer  002660 0a 003321 7550 00 6-50 sta dseg_no  6-51  002661 aa 007042 7020 00 6-52 tsx2 sltsearch search for pds 002662 0a 003330 0000 00 6-53 arg pds_name  002663 0a 003256 7100 00 6-54 tra pcer  002664 0a 003322 7550 00 6-55 sta pds_no 6-56  002665 aa 007042 7020 00 6-57 tsx2 sltsearch search for prds  002666 0a 003332 0000 00 6-58 arg prds_name  002667 0a 003256 7100 00 6-59 tra pcer  002670 0a 003323 7550 00 6-60 sta prds_no  6-61  002671 aa 007042 7020 00 6-62 tsx2 sltsearch search for kst_seg 002672 0a 003334 0000 00 6-63 arg kst_name  002673 0a 003256 7100 00 6-64 tra pcer  002674 0a 003324 7550 00 6-65 sta kst_no 6-66 "  6-67 " Select the segment dumping options.  6-68  002675 0a 003023 4500 00 6-69 stz pcallopt Init the option collectors.  002676 0a 003021 4500 00 6-70 stz pcelgopt  002677 0a 003022 4500 00 6-71 stz pcinzopt  002700 0a 003020 4500 00 6-72 stz pcrunopt  002701 aa 012041 2350 00 6-73 lda arg+1 Check for default and old compatibility 002702 aa 000000 6220 00 6-74 eax2 0 002703 aa 006300 5202 04 6-75 rpt pcnmacroopts,4,tze checking for fdump with no args, fdump short  002704 0a 002760 1150 12 6-76 cmpa pcmacroopttbl,2 or fdump long 002705 0a 002715 6064 00 6-77 ttn pcnmacop xfer if not macro-op 002706 aa 777775 2350 12 6-78 lda -3,2 Load running process options 002707 0a 003020 7550 00 6-79 sta pcrunopt and save 002710 aa 777776 2350 12 6-80 lda -2,2 Load eligible process options  002711 0a 003021 7550 00 6-81 sta pcelgopt and save 002712 aa 777777 2350 12 6-82 lda -1,2 Load all process options 002713 0a 003023 7550 00 6-83 sta pcallopt and save 002714 0a 002725 7100 00 6-84 tra pcmrgop  6-85  002715 aa 000001 6230 00 6-86 pcnmacop: eax3 1 Parse RUN, ELIG and ALL ctlargs.  002716 aa 012040 2350 13 6-87 lda arg,3 Start at arg+1 and check major word.  002717 aa 000000 6220 00 6-88 pcselmaj: eax2 0 Scan for major keywords  002720 aa 012300 5202 02 6-89 rpt pcnmajoropts,2,tze 002721 0a 002774 1150 12 6-90 cmpa pcmajoropttbl,2  002722 0a 002743 6064 00 6-91 ttn pcseler must be error if no compare  002723 aa 777777 2210 12 6-92 ldx1 -1,2 Get or-ing word address 002724 0a 002732 6010 00 6-93 tnz pcselmin Wasn't fence.  002725 0a 003023 2350 00 6-94 pcmrgop: lda pcallopt Merge all and eligible options down  002726 0a 003021 2550 00 6-95 orsa pcelgopt i.e. all processes includes eligible  002727 0a 003021 2350 00 6-96 lda pcelgopt and running processes  002730 0a 003020 2550 00 6-97 orsa pcrunopt  002731 0a 003025 7100 00 6-98 tra pc_begin_dumping  6-99  002732 aa 000001 6230 13 6-100 pcselmin: eax3 1,3 get next arg  002733 aa 012040 2350 13 6-101 lda arg,3  002734 aa 000000 6220 00 6-102 eax2 0 002735 aa 012300 5202 02 6-103 rpt pcnminorkeys,2,tze 002736 0a 003006 1150 12 6-104 cmpa pcminorkeys,2 002737 0a 002717 6064 00 6-105 ttn pcselmaj not minor keyword, go look for major 002740 aa 777777 2360 12 6-106 ldq -1,2  002741 aa 000000 2560 11 6-107 orsq 0,1 Or into control opt word.  002742 0a 002732 7100 00 6-108 tra pcselmin  6-109  002743 aa 012241 7020 00 6-110 pcseler: tsx2 erpt  002744 aa 053 123 171 156 6-111 acc "Syntax error in segment selecting keywords."  002745 aa 164 141 170 040 002746 aa 145 162 162 157 002747 aa 162 040 151 156 002750 aa 040 163 145 147 002751 aa 155 145 156 164 002752 aa 040 163 145 154 002753 aa 145 143 164 151 002754 aa 156 147 040 153 002755 aa 145 171 167 157 002756 aa 162 144 163 056 002757 0a 003256 7100 00 6-112 tra pcer  6-113 "  6-114 "  6-115 " Dumping option tables 6-116 "  6-117  6-118 even  000001 6-119 bool dopt.hc,000001  000002 6-120 bool dopt.pp,000002  000004 6-121 bool dopt.dirs,000004  000010 6-122 bool dopt.stk,000010  000020 6-123 bool dopt.write,000020 6-124  002760 6-125 pcmacroopttbl:  002760 aa 206 230 465 163 6-126 bci " short"  002761 aa 000007 000000 6-127 zero dopt.hc+dopt.pp+dopt.dirs,0 RUN HC PP DIRS  002762 aa 000001 000000 6-128 zero dopt.hc,0 ELIG HC  002763 aa 000000 000000 6-129 zero 0,0 No All options  002764 aa 202 043 464 527 6-130 bci " long"  002765 aa 000000 000000 6-131 zero 0,0 Running process options 002766 aa 000000 000000 6-132 zero 0,0 Eligible process options  002767 aa 000020 000000 6-133 zero dopt.write,0 ALL WRIT  002770 aa 777777 777777 6-134 oct 777777777777 fdump with no args (fence)  002771 aa 000007 000000 6-135 zero dopt.hc+dopt.pp+dopt.dirs,0 RUN HC PP DIRS  002772 aa 000000 000000 6-136 zero 0,0 No eligible options 002773 aa 000000 000000 6-137 zero 0,0 no all options  000003 6-138 equ pcnmacroopts,(*-pcmacroopttbl)/4  6-139  002774 6-140 pcmajoropttbl:  002774 aa 202 020 516 445 6-141 bci " run"  002775 0a 003020 000000 6-142 zero pcrunopt  002776 aa 202 025 433 127 6-143 bci " elig"  002777 0a 003021 000000 6-144 zero pcelgopt  003000 aa 202 031 457 151 6-145 bci " inzr"  003001 0a 003022 000000 6-146 zero pcinzopt  003002 aa 202 020 214 343 6-147 bci " all"  003003 0a 003023 000000 6-148 zero pcallopt  003004 aa 777777 777777 6-149 oct 777777777777 argument fence  003005 aa 000000 000000 6-150 zero 0 000005 6-151 equ pcnmajoropts,(*-pcmajoropttbl)/2  6-152  003006 6-153 pcminorkeys:  003006 aa 202 020 203 023 6-154 bci " hc"  003007 aa 000001 000000 6-155 zero dopt.hc,0 003010 aa 202 020 204 747 6-156 bci " pp"  003011 aa 000002 000000 6-157 zero dopt.pp,0 003012 aa 202 024 315 162 6-158 bci " dirs"  003013 aa 000004 000000 6-159 zero dopt.dirs,0  003014 aa 626 321 234 262 6-160 bci "stacks"  003015 aa 000010 000000 6-161 zero dopt.stk,0  003016 aa 202 066 513 163 6-162 bci " writ"  003017 aa 000020 000000 6-163 zero dopt.write,0  000005 6-164 equ pcnminorkeys,(*-pcminorkeys)/2 6-165  003020 aa 000000 000000 6-166 pcrunopt: oct 0 Opts for running procs 003021 aa 000000 000000 6-167 pcelgopt: oct 0 opts for eligible procs  003022 aa 000000 000000 6-168 pcinzopt: oct 0 Opts for initializer process  003023 aa 000000 000000 6-169 pcallopt: oct 0 Opts for all procs 6-170  003024 aa 000000 000000 6-171 pcopt: oct 0 Selected options, for current process 6-172 " 003025 6-173 pc_begin_dumping:  003025 aa 000001 2350 07 6-174 lda 1,dl start at proc 1  003026 0a 003305 1150 00 6-175 pclp: cmpa pcnapt any more APT entries?  003027 0a 003256 6054 00 6-176 tpnz pcer exit loop if not  003030 0a 003274 7550 00 6-177 sta pcno store process number 003031 aa 777777 6360 05 6-178 eaq -1,al  003032 0a 003307 4020 00 6-179 mpy pcaptsize compute index to this APT entry 003033 0a 003303 0360 00 6-180 adlq aptorg add offset of origin  003034 0a 003275 7560 00 6-181 stq pcapte save this pointer  003035 aa 000044 6360 02 6-182 eaq apte.dbr,qu  003036 aa 007032 7020 00 6-183 tsx2 apnd Then get DBR from APT. 003037 0a 003312 0000 00 6-184 arg aptsdw 003040 0a 003256 7100 00 6-185 tra pcer  003041 aa 007004 2370 20 6-186 ldaq fetchout,*  003042 aa 007000 7570 00 6-187 staq cmdbr 003043 aa 000026 7360 00 6-188 qls 36-14 get the stack base  003044 aa 000001 7720 00 6-189 qrl 1  003045 0a 003325 7560 00 6-190 stq pcstklim  003046 0a 003316 6750 00 6-191 era pcdbr If old dbr, print it.  003047 0a 003461 3750 00 6-192 ana =o777777770000 003050 0a 003053 6010 00 6-193 tnz pcproc 003051 0a 003337 5540 00 6-194 stc1 pcddbr Mark dumped so we won't do it at end  003052 0a 003100 7100 00 6-195 tra pcsetrun this is a running process, go pick up option word  6-196  003053 0a 003275 6360 20 6-197 pcproc: eaq pcapte,* QU -> APT entry  003054 aa 000001 6360 02 6-198 eaq apte.state,qu Get state of process and switches.  003055 aa 007032 7020 00 6-199 tsx2 apnd  003056 0a 003312 0000 00 6-200 arg aptsdw 003057 0a 003256 7100 00 6-201 tra pcer  003060 aa 007004 2350 20 6-202 lda fetchout,* get flags and state 003061 aa 777777 2360 03 6-203 ldq -1,du set mask to look at lower half of word only 003062 aa 000000 2110 07 6-204 cmk empty,dl ignore if zero state 003063 0a 003253 6000 00 6-205 tze pcle  003064 0a 003020 2340 00 6-206 szn pcrunopt Do we want to dump running procs?  003065 0a 003072 6000 00 6-207 tze pcckelg xfer if no  003066 aa 000020 3150 03 6-208 cana apte.dbr_loaded,du dbr loaded?  003067 0a 003100 6010 00 6-209 tnz pcsetrun This is running proc 003070 aa 000005 2110 07 6-210 cmk stopped,dl Stopped proc?  003071 0a 003100 6000 00 6-211 tze pcsetrun yes, treat like running proc 003072 aa 004000 3150 03 6-212 pcckelg: cana apte.eligible,du is this an eligible process? 003073 0a 003076 6000 00 6-213 tze pcsetall no, go get all option word  003074 0a 003021 2350 00 6-214 lda pcelgopt get eligible options 003075 0a 003101 7100 00 6-215 tra pcsavopt  6-216  003076 0a 003023 2350 00 6-217 pcsetall: lda pcallopt no, must be all option word  003077 0a 003101 7100 00 6-218 tra pcsavopt  6-219  003100 0a 003020 2350 00 6-220 pcsetrun: lda pcrunopt  003101 0a 003274 2360 00 6-221 pcsavopt: ldq pcno check to see if initializer proc  003102 aa 000001 1160 07 6-222 cmpq 1,dl if first proc, its the initializer  003103 0a 003105 6010 00 6-223 tnz pcnoinzr no, some other proc  003104 0a 003022 2750 00 6-224 ora pcinzopt yes, or in inzr option word  003105 aa 000000 0750 07 6-225 pcnoinzr: ada 0,dl add zero to set (or reset) zero ind.  003106 0a 003253 6000 00 6-226 tze pcle no dumpage for this option set  003107 0a 003024 7550 00 6-227 sta pcopt save option word  6-228 " 003110 aa 012241 7020 00 6-229 pcnoc: tsx2 erpt print out what we are doing  003111 aa 025 160 162 157 6-230 acc 'proc ^o, dbr = ^w, ^w'  003112 aa 143 040 136 157 003113 aa 054 040 144 142 003114 aa 162 040 075 040 003115 aa 136 167 054 040 003116 aa 136 167 000 000 003117 0a 003274 0000 00 6-231 arg pcno  003120 aa 007000 0000 00 6-232 arg cmdbr  003121 aa 007001 0000 00 6-233 arg cmdbr+1  6-234  003122 aa 007026 7020 00 6-235 tsx2 getinit  6-236  003123 0a 002443 7020 00 6-237 tsx2 descrseg  6-238  003124 aa 000000 6210 00 6-239 eax1 0 x1 is segno  003125 0a 002610 7410 00 6-240 psegl: stx1 segno  6-241  003126 0a 002610 2350 00 6-242 lda segno segment # in AU 003127 aa 007027 7020 00 6-243 tsx2 getsdw get SDW  003130 0a 003250 7100 00 6-244 tra pcosdone error  003131 0a 003252 7100 00 6-245 tra pcled end of descseg  003132 0a 003314 7570 00 6-246 staq pcsdw save SDW of segment  6-247  003133 0a 003024 2230 00 6-248 ldx3 pcopt load current process dumping options  003134 aa 000001 3030 03 6-249 canx3 dopt.hc,du HC option in effect?  003135 0a 003143 6000 00 6-250 tze pcnohcop no don't bother  003136 aa 000000 6220 00 6-251 eax2 0 see if this seg gets dumped  003137 0a 002610 2360 00 6-252 ldq segno ..  003140 aa 012300 5202 01 6-253 rpt pcshnon,1,tze ..  003141 0a 003321 1160 12 6-254 cmpq pcshno,2 if in list  003142 0a 003246 6070 00 6-255 ttf pcosegp then dump it  003143 0a 003315 2360 00 6-256 pcnohcop: ldq pcsdw+1 get second word of SDW  003144 aa 000001 3160 03 6-257 canq sdw.write,du Check for write permit  003145 0a 003250 6000 00 6-258 tze pcosdone if not, don't dump  003146 0a 003325 2340 00 6-259 szn pcstklim no stack base? (idle process)  003147 0a 003152 6000 00 6-260 tze pckfproc yes, check if first proc dump`ed 003150 0a 003325 1010 00 6-261 cmpx1 pcstklim is current seg hc? 003151 0a 003155 6050 00 6-262 tpl pckstkop no not hc seg go check stack option  003152 0a 003273 2340 00 6-263 pckfproc: szn pcfirst is this first process dumped?  003153 0a 003246 6010 00 6-264 tnz pcosegp yes, go dump hc segs  003154 0a 003250 7100 00 6-265 tra pcosdone no, don't dump this seg  6-266  003155 aa 000010 3030 03 6-267 pckstkop: canx3 dopt.stk,du is STK option in force? 003156 0a 003163 6000 00 6-268 tze pcdmpunique no, go check other options 003157 aa 000000 6350 11 6-269 eaa 0,1 yes, copy segno into a reg  003160 0a 003325 1750 00 6-270 sba pcstklim is this a stack seg?  003161 aa 000010 1150 03 6-271 cmpa 8,du if range is 0 to 7 yes it is  003162 0a 003246 6040 00 6-272 tmi pcosegp xfer if yes, dump seg 6-273  003163 6-274 pcdmpunique: "dump if not already dumped. 003163 aa 200000 3160 07 6-275 canq sdw.unpaged,dl If not paged  003164 0a 003246 6010 00 6-276 tnz pcosegp dump unpaged segs 003165 0a 003314 2350 00 6-277 lda pcsdw reload sements sdw address  003166 aa 007016 1350 00 6-278 sbla sstsdw get ast index 003167 aa 000006 7350 00 6-279 als 6 in AU  003170 aa 777777 3750 03 6-280 ana -1,du ..  003171 0a 003276 7550 00 6-281 sta rel_pt_add save page table address 003172 aa 000020 3030 03 6-282 canx3 dopt.write,du if write option on byspass PP & DIRS check 003173 0a 003230 6010 00 6-283 tnz pcnockdirs 003174 aa 000002 3030 03 6-284 canx3 dopt.pp,du is PP option set? 003175 0a 003207 6000 00 6-285 tze pcckdirs no, go check DIRS options  003176 aa 000000 6360 01 6-286 eaq 0,au copy rel page table address to qu  003177 aa 000014 1360 03 6-287 sblq aste_size,du get aste address 003200 aa 000012 6360 02 6-288 eaq aste.per_process_word,qu get pp flag from aste 003201 aa 007032 7020 00 6-289 tsx2 apnd  003202 aa 007016 0000 00 6-290 arg sstsdw 003203 0a 003256 7100 00 6-291 tra pcer  003204 aa 007004 2370 20 6-292 ldaq fetchout,* get the per-process flag  003205 aa 000010 3150 03 6-293 cana aste.per_process,du is this a per-process seg?  003206 0a 003230 6010 00 6-294 tnz pcnockdirs yes, go make further checks 003207 aa 000004 3030 03 6-295 pcckdirs: canx3 dopt.dirs,du is DIRS option set?  003210 0a 003250 6000 00 6-296 tze pcosdone xfer if no. This seg will not be dumped. 003211 0a 003276 2360 00 6-297 ldq rel_pt_add reload segs page table base 003212 aa 000014 1360 03 6-298 sblq aste_size,du get aste address 003213 aa 000005 6360 02 6-299 eaq aste.dirsw_word,qu get dirsw flag from aste  003214 aa 007032 7020 00 6-300 tsx2 apnd  003215 aa 007016 0000 00 6-301 arg sstsdw 003216 0a 003256 7100 00 6-302 tra pcer  003217 aa 007004 2350 20 6-303 lda fetchout,* get dirsw word  003220 aa 040000 3150 07 6-304 cana aste.dirsw,dl is this a directory seg?  003221 0a 003250 6000 00 6-305 tze pcosdone xfer if no. don't dump this seg  003222 aa 000000 6360 00 6-306 eaq dir_modify get dir modified word  003223 aa 007032 7020 00 6-307 tsx2 apnd  003224 0a 003314 0000 00 6-308 arg pcsdw  003225 0a 003256 7100 00 6-309 tra pcer  003226 aa 007004 2340 20 6-310 szn fetchout,* has the dir been modified?  003227 0a 003250 6000 00 6-311 tze pcosdone xfer if no. don't dump this seg  003230 6-312 pcnockdirs: 003230 0a 003276 2350 00 6-313 lda rel_pt_add reload segs page table base 003231 aa 007022 1350 20 6-314 sbla castap,*  003232 aa 000003 3150 03 6-315 cana =o3,du all page tables start at 0 mod 4  003233 0a 003246 6010 00 6-316 tnz pcosegp  6-317  003234 aa 000026 7710 00 6-318 arl 18+4 divide by 16 to get bit table index  003235 aa 005500 1150 07 6-319 cmpa nsegbitab,dl this code assumes that min size of ASTE + PT = 16  003236 0a 003246 6050 00 6-320 tpl pcosegp  003237 aa 005005 0644 00 6-321 sztl (),(al),bool(05) test bit 003240 0a 003240 000000 6-322 descb *,0  003241 0a 003340 000001 6-323 descb segbitab,1  003242 0a 003250 6010 00 6-324 tnz pcosdone if on, skip the segment  003243 aa 017005 0604 00 6-325 csl (),(al),bool(17) turn the bit on  003244 0a 003244 000000 6-326 descb *,0  003245 0a 003340 000001 6-327 descb segbitab,1  6-328  003246 0a 002444 7020 00 6-329 pcosegp: tsx2 segprint print seg  003247 0a 003250 7100 00 6-330 tra *+1 ignore errors 6-331  003250 6-332 pcosdone:  003250 aa 000001 6210 11 6-333 eax1 1,1 go to next seg  003251 0a 003125 7100 00 6-334 tra psegl  6-335  003252 0a 003273 4500 00 6-336 pcled: stz pcfirst  003253 0a 003274 2350 00 6-337 pcle: lda pcno get process number  003254 aa 000001 0750 07 6-338 ada 1,dl increment  003255 0a 003026 7100 00 6-339 tra pclp and loop 6-340  003256 0a 003337 2340 00 6-341 pcer: szn pcddbr if process in machine conditions  003257 0a 003264 6010 00 6-342 tnz pcx2 hasn't been dumped, then do it  003260 0a 003337 5540 00 6-343 stc1 pcddbr only once.  003261 0a 003274 4500 00 6-344 stz pcno  003262 0a 003305 4500 00 6-345 stz pcnapt 003263 0a 003110 7100 00 6-346 tra pcnoc  6-347  003264 0a 003264 6220 00 6-348 pcx2: eax2 * restore and return  003265 0a 003265 6210 00 6-349 eax1 * 003266 0a 003266 6200 00 6-350 eax0 * 003267 0a 003267 6230 00 6-351 eax3 * 003270 0a 003316 2370 00 6-352 ldaq pcdbr restor dbr 003271 aa 007000 7570 00 6-353 staq cmdbr 003272 aa 000000 7100 12 6-354 tra 0,2  6-355  6-356 " 6-357  003273 0a 003273 0000 00 6-358 pcfirst: arg * if on, dumping first proc  003274 aa 000000 000000 6-359 pcno: oct 0 003275 aa 000000 000000 6-360 pcapte: oct 0 rel. pointer to APT entry  003276 6-361 rel_pt_add: 003276 aa 000000 000000 6-362 oct 0 rel address of segments page table in sst seg  6-363  003277 aa 000000 000007 6-364 tcd_name: dec 7 003300 aa 164 143 137 144 6-365 aci "tc_data " 003301 aa 141 164 141 040 6-366  003302 aa 000253 0000 00 6-367 pclist: arg aptoff  003303 6-368 aptorg: bss ,1 offset of origin of APTE array  003304 aa 000313 0000 00 6-369 arg aptsize  003305 6-370 pcnapt: bss ,1 number of entries in array  003306 aa 000327 0000 00 6-371 arg aptentsize 003307 6-372 pcaptsize:  003307 6-373 bss ,1 size of an APTE  003310 aa 777777 777777 6-374 dec -1 6-375  003311 aa 000000 0110 03 6-376 even  003312 aa 000000 000000 6-377 aptsdw: oct 0,0 003313 aa 000000 000000 003314 aa 000000 000000 6-378 pcsdw: oct 0,0  003315 aa 000000 000000 003316 aa 000000 000000 6-379 pcdbr: oct 0,0  003317 aa 000000 000000 003320 aa 000000 000000 6-380 pcrptadd: oct 0 temp storage for segments rel page table address  6-381  003321 6-382 pcshno: 003321 6-383 dseg_no: bss ,1 003322 6-384 pds_no: bss ,1  003323 6-385 prds_no: bss ,1 003324 6-386 kst_no: bss ,1  003325 aa 000000 000000 6-387 pcstklim: zero 0,0 upper is stack segno.  000005 6-388 equ pcshnon,*-pcshno  6-389  003326 aa 000000 000004 6-390 dseg_name:dec 4 003327 aa 144 163 145 147 6-391 aci 'dseg' 6-392  003330 aa 000000 000003 6-393 pds_name: dec 3 003331 aa 160 144 163 040 6-394 aci 'pds ' 6-395  003332 aa 000000 000004 6-396 prds_name:dec 4 003333 aa 160 162 144 163 6-397 aci 'prds' 6-398  003334 aa 000000 000007 6-399 kst_name: dec 7 003335 aa 153 163 164 137 6-400 aci 'kst_seg ' 003336 aa 163 145 147 040 003337 aa 000000 000000 6-401 pcddbr: oct 0 non-zero if cmdbr has been dumped  6-402  005500 6-403 equ nsegbitab,2880 max length of ast/16  003340 6-404 segbitab: bss ,(nsegbitab+35)/36  6-405  6-406 " End of include file ...... proc.incl.alm  6-407  433  434 include apte  7-1 "  7-2 " BEGIN INCLUDE FILE apte.incl.alm  7-3 "  7-4 "  000000 7-5 equ apte.thread,0  000000 7-6 equ apte.fp,0 "UPPER 000000 7-7 equ apte.bp,0 "LOWER 7-8  000001 7-9 equ apte.flags,1  000001 7-10 equ apte.sentinel,1  400000 7-11 bool apte.mbz,400000 "DU  200000 7-12 bool apte.wakeup_waiting,200000 "DU  100000 7-13 bool apte.stop_pending,100000 "DU  040000 7-14 bool apte.pre_empted,040000 "DU  020000 7-15 bool apte.hproc,020000 "DU  010000 7-16 bool apte.loaded,010000 "DU  004000 7-17 bool apte.eligible,004000 "DU  002000 7-18 bool apte.idle,002000 "DU 001000 7-19 bool apte.interaction,001000 "DU  000400 7-20 bool apte.pre_empt_pending,000400 "DU  000200 7-21 bool apte.default_procs_required,000200 "DU  000100 7-22 bool apte.realtime_burst,000100 "DU  000040 7-23 bool apte.always_loaded,000040 "DU 000020 7-24 bool apte.dbr_loaded,000020 "DU  000010 7-25 bool apte.being_loaded,000010 "DU  000004 7-26 bool apte.shared_stack_0,000004 "DU  000002 7-27 bool apte.page_wait_flag,000002 "DU  000001 7-28 bool apte.firstsw,000001 "DU  000001 7-29 equ apte.state,1 "LOWER  7-30  000002 7-31 equ apte.page_faults,2 7-32  000003 7-33 equ apte.processid,3  7-34  000004 7-35 equ apte.te,4  7-36  000005 7-37 equ apte.ts,5  7-38  000006 7-39 equ apte.ti,6  7-40  000007 7-41 equ apte.timax,7  7-42  000010 7-43 equ apte.ipc_pointers,8  000010 7-44 equ apte.event_thread,8 "UPPER  7-45  000011 7-46 equ apte.ips_message,9 7-47  000012 7-48 equ apte.asteps,10 000012 7-49 equ apte.pds,10 "UPPER  000012 7-50 equ apte.dseg,10 "LOWER  7-51  000013 7-52 equ apte.prds,11 "UPPER  000013 7-53 equ apte.savex7,11 "LOWER 7-54  000014 7-55 equ apte.term_processid,12 7-56  000015 7-57 equ apte.lock_id,13  000016 7-58 equ apte.time_used_clock,14  7-59  000020 7-60 equ apte.wait_event,16 7-61  000021 7-62 equ apte.wct_index,17 "UPPER  000021 7-63 equ apte.flags2,17 "LOWER 400000 7-64 bool apte.prior_sched,400000 "DL  000023 7-65 equ apte.chans_offset,19  374000 7-66 bool apte.special_chans,374000 "DL 000021 7-67 equ apte.batch_word,17 000010 7-68 bool apte.batch,000010 "DL  000007 7-69 bool apte.pr_tag_mask,000007  7-70  000022 7-71 equ apte.state_change_time,18  7-72  000024 7-73 equ apte.alarm_event,20  7-74  000026 7-75 equ apte.alarm_time_thread,22 "UPPER  000026 7-76 equ apte.alarm_time,22 7-77  000030 7-78 equ apte.term_channel,24  7-79  000032 7-80 equ apte.ws_size,26  7-81  000033 7-82 equ apte.temax,27  7-83  000034 7-84 equ apte.deadline,28  7-85  000036 7-86 equ apte.lock,30  7-87  000037 7-88 equ apte.cpu_monitor,31 units = 1/1024 sec  7-89  000040 7-90 equ apte.paging_measure,32 7-91  000042 7-92 equ apte.access_authorization,34 "DOUBLE WORD 400000 7-93 bool apte.no_ipc_check,400000 "DL  7-94  000044 7-95 equ apte.dbr,36  7-96  000046 7-97 equ apte.virtual_cpu_time,38  7-98  000050 7-99 equ apte.ittes_sent,40 000051 7-100 equ apte.ittes_got,41  7-101  000052 7-102 equ apte.current_response_state,42 " DU  000053 7-103 equ apte.number_processing,43  000054 7-104 equ apte.last_response_state_time,44  000056 7-105 equ apte.total_processing_time,46  000060 7-106 equ apte.begin_interaction_vcpu,48 7-107  000062 7-108 equ apte.saved_temax,50  000063 7-109 equ apte.procs_required,51 776000 7-110 bool apte.procs_required_mask,776000 " DU  7-111  000100 7-112 equ size_of_apt_entry,64  7-113  7-114 " MISC OLD DCLS.  7-115  000013 7-116 equ apte.le_shift,11  000175 7-117 bool apte.timer_factor,175 7-118  7-119  7-120 "  7-121 " END INCLUDE FILE apte.incl.alm  7-122 "  435  436 include state_equs 8-1 " BEGIN INCLUDE FILE state_equs.incl.alm  8-2  000000 8-3 equ empty,0  000001 8-4 equ running,1  000002 8-5 equ ready,2  000003 8-6 equ waiting,3  000004 8-7 equ blocked,4  000005 8-8 equ stopped,5  000006 8-9 equ ptlocking,6  8-10  8-11 " END INCLUDE FILE state_equs.incl.alm  437  438 include bos_sdw  9-1 "  9-2 " BEGIN INCLUDE FILE sdw.incl.alm 02/12/74  9-3 "  000014 9-4 equ sdw.add_shift,12  007000 9-5 bool sdw.r1,007000 Ringbrack 1 (DL)  000700 9-6 bool sdw.r2,000700 Ringbrack 2 (DL)  000070 9-7 bool sdw.r3,000070 Ringbrack 3 (DL)  9-8  000004 9-9 bool sdw.df,000004 Directed fault bit (0 -> fault)  000003 9-10 bool sdw.fault_code,000003 Number of directed fault  9-11  377770 9-12 bool sdw.bound,377770 Bound field (DU)  000004 9-13 bool sdw.read,000004 Read permission bit (DU) 000002 9-14 bool sdw.execute,000002 Execute permission bit (DU)  000001 9-15 bool sdw.write,000001 Write permission bit (DU)  9-16  400000 9-17 bool sdw.privileged,400000 Privileged bit (DL) 200000 9-18 bool sdw.unpaged,200000 Unpaged bit (DL)  100000 9-19 bool sdw.entry_bound_sw,100000 Entry bound switch (DL) 040000 9-20 bool sdw.cache,040000 Cache enabled bit (DL)  037777 9-21 bool sdw.entry_bound,037777 Entry bound (DL)  9-22  9-23 "  9-24 " END INCLUDE FILE sdw.incl.alm  9-25 "  439  440 include aste  10-1  10-2  10-3 "BEGIN INCLUDE FILE aste.incl.alm  10-4  10-5  10-6 "Created 10/26/82 2145.6 edt Tue by convert_include_file, 10-7 " Version of 07/15/82 2204.3 edt Thu.  10-8  10-9 "Made from >udd>Multics>Bongiovanni>htd>cksum>aste.incl.pl1,  10-10 " modified 10/26/82 2145.5 edt Tue  10-11  10-12 "  10-13 " Structure aste  10-14 "  000014 10-15 equ aste_size,12  10-16  000000 10-17 equ aste.fp,0 " UPPER  000000 10-18 equ aste.bp,0 " LOWER  10-19  000001 10-20 equ aste.infl,1 " UPPER  000001 10-21 equ aste.infp,1 " LOWER  10-22  000002 10-23 equ aste.strp,2 " UPPER  000002 10-24 equ aste.par_astep,2 " LOWER  10-25  000003 10-26 equ aste.uid,3 10-27  000004 10-28 equ aste.msl_word,4  000033 10-29 equ aste.msl_shift,27  000777 10-30 bool aste.msl_mask,000777  000004 10-31 equ aste.pvtx_word,4  000022 10-32 equ aste.pvtx_shift,18 000777 10-33 bool aste.pvtx_mask,000777 000004 10-34 equ aste.vtocx,4 " LOWER  10-35  000005 10-36 equ aste.usedf_word,5  400000 10-37 bool aste.usedf,400000 " DU  000005 10-38 equ aste.init_word,5  200000 10-39 bool aste.init,200000 " DU  000005 10-40 equ aste.gtus_word,5  100000 10-41 bool aste.gtus,100000 " DU  000005 10-42 equ aste.gtms_word,5  040000 10-43 bool aste.gtms,040000 " DU  000005 10-44 equ aste.hc_word,5 020000 10-45 bool aste.hc,020000 " DU  000005 10-46 equ aste.hc_sdw_word,5 010000 10-47 bool aste.hc_sdw,010000 " DU  000005 10-48 equ aste.any_access_on_word,5  004000 10-49 bool aste.any_access_on,004000 " DU  000005 10-50 equ aste.write_access_on_word,5  002000 10-51 bool aste.write_access_on,002000 " DU  000005 10-52 equ aste.inhibit_cache_word,5  001000 10-53 bool aste.inhibit_cache,001000 " DU  000005 10-54 equ aste.explicit_deact_ok_word,5  000400 10-55 bool aste.explicit_deact_ok,000400 " DU  000005 10-56 equ aste.deact_error_word,5  000200 10-57 bool aste.deact_error,000200 " DU  000005 10-58 equ aste.hc_part_word,5  000100 10-59 bool aste.hc_part,000100 " DU 000005 10-60 equ aste.fm_damaged_word,5 000040 10-61 bool aste.fm_damaged,000040 " DU  000005 10-62 equ aste.dius_word,5  000002 10-63 bool aste.dius,000002 " DU  000005 10-64 equ aste.nid_word,5  000001 10-65 bool aste.nid,000001 " DU 000005 10-66 equ aste.dmpr_pad_word,5  400000 10-67 bool aste.dmpr_pad,400000 " DL 000005 10-68 equ aste.ehs_word,5  200000 10-69 bool aste.ehs,200000 " DL 000005 10-70 equ aste.nqsw_word,5  100000 10-71 bool aste.nqsw,100000 " DL  000005 10-72 equ aste.dirsw_word,5  040000 10-73 bool aste.dirsw,040000 " DL  000005 10-74 equ aste.master_dir_word,5 020000 10-75 bool aste.master_dir,020000 " DL  000005 10-76 equ aste.volmap_seg_word,5 010000 10-77 bool aste.volmap_seg,010000 " DL  000005 10-78 equ aste.tqsw_word,5  004000 10-79 bool aste.tqsw,004000 " DL  10-80  000006 10-81 equ aste.dtu,6 000007 10-82 equ aste.dtm,7 10-83  000010 10-84 equ aste.quota,8 " UPPER  10-85  000011 10-86 equ aste.used,9 " UPPER  10-87  000012 10-88 equ aste.csl_word,10  000033 10-89 equ aste.csl_shift,27  000777 10-90 bool aste.csl_mask,000777  000012 10-91 equ aste.fmchanged_word,10 000400 10-92 bool aste.fmchanged,000400 " DU  000012 10-93 equ aste.fms_word,10  000200 10-94 bool aste.fms,000200 " DU 000012 10-95 equ aste.npfs_word,10  000100 10-96 bool aste.npfs,000100 " DU  000012 10-97 equ aste.gtpd_word,10  000040 10-98 bool aste.gtpd,000040 " DU  000012 10-99 equ aste.dnzp_word,10  000020 10-100 bool aste.dnzp,000020 " DU  000012 10-101 equ aste.per_process_word,10  000010 10-102 bool aste.per_process,000010 " DU  000012 10-103 equ aste.ddnp_word,10  000004 10-104 bool aste.ddnp,000004 " DU  000012 10-105 equ aste.records_word,10  000011 10-106 equ aste.records_shift,9  000777 10-107 bool aste.records_mask,000777  000012 10-108 equ aste.np_word,10  000000 10-109 equ aste.np_shift,0  000777 10-110 bool aste.np_mask,000777  10-111  000013 10-112 equ aste.ht_fp,11 " UPPER 000013 10-113 equ aste.fmchanged1_word,11  400000 10-114 bool aste.fmchanged1,400000 " DL  000013 10-115 equ aste.damaged_word,11  200000 10-116 bool aste.damaged,200000 " DL 000013 10-117 equ aste.pack_ovfl_word,11 100000 10-118 bool aste.pack_ovfl,100000 " DL  000013 10-119 equ aste.synchronized_word,11  040000 10-120 bool aste.synchronized,040000 " DL 000013 10-121 equ aste.ptsi_word,11  000006 10-122 equ aste.ptsi_shift,6  000003 10-123 bool aste.ptsi_mask,000003 000013 10-124 equ aste.marker_word,11  000000 10-125 equ aste.marker_shift,0  000077 10-126 bool aste.marker_mask,000077  10-127  10-128 "  10-129 " Structure aste_part  10-130 "  000014 10-131 equ aste_part_size,12  10-132  10-133  000000 10-134 equ aste_part.one,0  000001 10-135 equ aste_part.two,1 " DOUBLE  10-136  000013 10-137 equ aste_part.three_word,11  000000 10-138 equ aste_part.three_shift,0  000377 10-139 bool aste_part.three_mask,000377  10-140  10-141 "  10-142 " Structure seg_aste  10-143 "  000014 10-144 equ seg_aste_size,12  10-145  10-146  000010 10-147 equ seg_aste.usage,8  10-148  10-149 "END INCLUDE FILE aste.incl.alm  441  442 include bos_tv 11-1 " 11-2 " Begin include file ...... bos_tv.incl.alm 11-3 " Created in November 1971 by N. I. Morris. 11-4 " Modified 9/9/76 by Noel I. Morris 11-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 11-6 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  11-7 " Modified January 1982 by J. Bongiovanni to add getport_info  11-8 " Modified May 1982 by Sherman D. Sprague to add getmpc.  11-9  11-10 " BOS Utility Package Transfer Vector.  11-11  012000 11-12 equ pagectl,utilorg  012001 11-13 equ line,pagectl+1 012040 11-14 equ arg,line+31  012060 11-15 equ darg,arg+arglen+1  012100 11-16 equ earg,darg+arglen+1 012120 11-17 equ fltscu,earg+arglen+1  11-18  012200 11-19 equ tv_org,utilorg+128 11-20  012200 11-21 equ scan,tv_org+0  012201 11-22 equ arg_count,tv_org+1 012202 11-23 equ nextline,tv_org+2  012203 11-24 equ nlraw,tv_org+3 012204 11-25 equ search,tv_org+4  012205 11-26 equ makefil,tv_org+5  012206 11-27 equ ldcom,tv_org+6 012207 11-28 equ getsec,tv_org+7  012210 11-29 equ cvinit,tv_org+8  012211 11-30 equ rdev,tv_org+9  012212 11-31 equ wdev,tv_org+10 012213 11-32 equ phybos,tv_org+11  012214 11-33 equ bosphy,tv_org+12  012215 11-34 equ phyadd,tv_org+13  012216 11-35 equ mulbos,tv_org+14  012217 11-36 equ bosmul,tv_org+15  012220 11-37 equ lookup_devmodel,tv_org+16  012221 11-38 equ makesdw,tv_org+17  012222 11-39 equ argbos,tv_org+18  012223 11-40 equ argmul,tv_org+19  012224 11-41 equ amdvt,tv_org+20  012225 11-42 equ amfirst,tv_org+21  012226 11-43 equ amlast,tv_org+22  012227 11-44 equ cvnamla,tv_org+23  012230 11-45 equ sect_per_cyl_list,tv_org+24  012231 11-46 equ sect_per_dev_list,tv_org+25  012232 11-47 equ rec_per_dev_list,tv_org+26 012233 11-48 equ amaxio,tv_org+27  012234 11-49 equ rdsec,tv_org+28  012235 11-50 equ wtsec,tv_org+29  012236 11-51 equ disk_brief,tv_org+30  012237 11-52 equ itaper,tv_org+31  012240 11-53 equ itapew,tv_org+32  012241 11-54 equ erpt,tv_org+33 012242 11-55 equ ercv,tv_org+34 012243 11-56 equ erbuf,tv_org+35  012244 11-57 equ type,tv_org+36 012245 11-58 equ ttyinit,tv_org+37  012246 11-59 equ readcd,tv_org+38  012247 11-60 equ readtty,tv_org+39  012250 11-61 equ getprt,tv_org+40  012251 11-62 equ punch,tv_org+41  012252 11-63 equ octwd,tv_org+42  012253 11-64 equ geas,tv_org+43 012254 11-65 equ geastab,tv_org+44  012255 11-66 equ asge,tv_org+45 012256 11-67 equ asgetab,tv_org+46  012257 11-68 equ ljust,tv_org+47  012260 11-69 equ rjust,tv_org+48  012261 11-70 equ bzel,tv_org+49 012262 11-71 equ stripa,tv_org+50  012263 11-72 equ stripg,tv_org+51  012264 11-73 equ getconf,tv_org+52  012265 11-74 equ getmore,tv_org+53  012266 11-75 equ getperiph,tv_org+54  012267 11-76 equ rdclock,tv_org+55  012270 11-77 equ cvclock,tv_org+56  012271 11-78 equ init_io,tv_org+57  012272 11-79 equ connect_iom,tv_org+58  012273 11-80 equ getmpc,tv_org+59  012274 11-81 equ check_status,tv_org+60 012275 11-82 equ get_special_interrupt,tv_org+61  012276 11-83 equ get_status_interrupt,tv_org+62 012277 11-84 equ xio_wait,tv_org+63 012300 11-85 equ initint,tv_org+64  012301 11-86 equ wantflt,tv_org+65  012302 11-87 equ intno,tv_org+66  012303 11-88 equ intrpts1,tv_org+67 012304 11-89 equ hexwd,tv_org+68  012305 11-90 equ find_disk,tv_org+69  012306 11-91 equ find_root,tv_org+70  012307 11-92 equ find_part,tv_org+71  012310 11-93 equ check_status_no_stat,tv_org+72 012311 11-94 equ check_special_status,tv_org+73 012312 11-95 equ check_cpu_type,tv_org+74  012313 11-96 equ getportinfo,tv_org+75  11-97  11-98 " End of include file ...... bos_tv.incl.alm  11-99  443  444  445 end  LITERALS 003460 aa 144165 155160 003461 aa 777777 770000 003462 aa 202020 702562 003463 aa 000000 200000 003464 aa 000000 000000 003465 aa 202021 474524 003466 aa 202062 626345 003467 aa 777777 777777 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 003470 5a 000003 000000 003471 5a 000017 600000 003472 aa 000000 000000 003473 55 000010 000002 003474 5a 000002 400003 003475 55 000006 000010 003476 aa 005 146 144 165 003477 aa 155 160 000 000 003500 55 000002 000003 003501 6a 000000 400002 003502 55 000013 000003 003503 aa 014 163 171 155 symbol_table  003504 aa 142 157 154 137 003505 aa 164 141 142 154 003506 aa 145 000 000 000 DEFINITIONS HASH TABLE  003507 aa 000000 000015 003510 aa 000000 000000 003511 aa 000000 000000 003512 aa 000000 000000 003513 aa 000000 000000 003514 aa 000000 000000 003515 aa 000000 000000 003516 5a 000010 000000 003517 aa 000000 000000 003520 aa 000000 000000 003521 aa 000000 000000 003522 aa 000000 000000 003523 aa 000000 000000 003524 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  003525 aa 000001 000000 003526 aa 000000 000000 INTERNAL EXPRESSION WORDS 003527 aa 000000 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 003470 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000010 000007 a2 000000 000000 SYMBOL INFORMATION SYMBOL TABLE HEADER  000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000004 000004 aa 000000 112143 000005 aa 305203 523135 000006 aa 000000 112272 000007 aa 224741 270427 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000020 000002 000016 aa 000064 000000 000017 aa 000000 000545 000020 aa 000000 000306 000021 aa 000000 000525 000022 aa 000530 000306 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 040066 056066 000030 aa 040040 116157 000031 aa 166145 155142 000032 aa 145162 040061 000033 aa 071070 062040 000034 aa 110157 154155 000035 aa 163164 145144 000036 aa 164056 123171 000037 aa 163115 141151 000040 aa 156164 056141 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 154151 163164 000045 aa 040040 040040 000046 aa 040040 040040 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 040040 040040 000057 aa 040040 040040 000060 aa 040040 040040 000061 aa 040040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000014 000066 aa 000146 000026 000067 aa 122721 273014 000070 aa 000000 112272 000071 aa 215474 200000 000072 aa 000154 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000164 000042 000077 aa 112204 105031 000100 aa 000000 111221 000101 aa 055103 400000 000102 aa 000175 000042 000103 aa 066146 212610 000104 aa 000000 106615 000105 aa 362652 200000 000106 aa 000206 000044 000107 aa 121622 277475 000110 aa 000000 112162 000111 aa 321563 400000 000112 aa 000217 000036 000113 aa 077322 074060 000114 aa 000000 107733 000115 aa 111401 400000 000116 aa 000227 000036 000117 aa 101406 675745 000120 aa 000000 110143 000121 aa 775312 200000 000122 aa 000237 000032 000123 aa 113750 372730 000124 aa 000000 111375 000125 aa 120334 000000 000126 aa 000246 000040 000127 aa 046742 631025 000130 aa 000000 104674 000131 aa 403663 000000 000132 aa 000256 000041 000133 aa 105543 476637 000134 aa 000000 110555 000135 aa 260135 200000 000136 aa 000267 000032 000137 aa 113434 042223 000140 aa 000000 111346 000141 aa 227161 400000 000142 aa 000276 000040 000143 aa 110235 072677 000144 aa 000000 111024 000145 aa 524460 600000 000146 aa 076163 160145 >spec>h>3.17>fdump.alm  000147 aa 143076 150076 000150 aa 063056 061067 000151 aa 076146 144165 000152 aa 155160 056141 000153 aa 154155 040040 000154 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000155 aa 076142 157163 000156 aa 076151 156143 000157 aa 154165 144145 000160 aa 076142 157163 000161 aa 145161 165056 000162 aa 151156 143154 000163 aa 056141 154155 000164 aa 076154 144144 >ldd>bos>include>apnd_equ.incl.alm  000165 aa 076142 157163 000166 aa 076151 156143 000167 aa 154165 144145 000170 aa 076141 160156 000171 aa 144137 145161 000172 aa 165056 151156 000173 aa 143154 056141 000174 aa 154155 040040 000175 aa 076154 144144 >ldd>bos>include>sstn_equ.incl.alm  000176 aa 076142 157163 000177 aa 076151 156143 000200 aa 154165 144145 000201 aa 076163 163164 000202 aa 156137 145161 000203 aa 165056 151156 000204 aa 143154 056141 000205 aa 154155 040040 000206 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000207 aa 076142 157163 000210 aa 076151 156143 000211 aa 154165 144145 000212 aa 076142 157163 000213 aa 137143 157155 000214 aa 155157 156056 000215 aa 151156 143154 000216 aa 056141 154155 000217 aa 076154 144144 >ldd>bos>include>fdmp.incl.alm  000220 aa 076142 157163 000221 aa 076151 156143 000222 aa 154165 144145 000223 aa 076146 144155 000224 aa 160056 151156 000225 aa 143154 056141 000226 aa 154155 040040 000227 aa 076154 144144 >ldd>bos>include>proc.incl.alm  000230 aa 076142 157163 000231 aa 076151 156143 000232 aa 154165 144145 000233 aa 076160 162157 000234 aa 143056 151156 000235 aa 143154 056141 000236 aa 154155 040040 000237 aa 076154 144144 >ldd>include>apte.incl.alm  000240 aa 076151 156143 000241 aa 154165 144145 000242 aa 076141 160164 000243 aa 145056 151156 000244 aa 143154 056141 000245 aa 154155 040040 000246 aa 076154 144144 >ldd>include>state_equs.incl.alm  000247 aa 076151 156143 000250 aa 154165 144145 000251 aa 076163 164141 000252 aa 164145 137145 000253 aa 161165 163056 000254 aa 151156 143154 000255 aa 056141 154155 000256 aa 076154 144144 >ldd>bos>include>bos_sdw.incl.alm  000257 aa 076142 157163 000260 aa 076151 156143 000261 aa 154165 144145 000262 aa 076142 157163 000263 aa 137163 144167 000264 aa 056151 156143 000265 aa 154056 141154 000266 aa 155040 040040 000267 aa 076154 144144 >ldd>include>aste.incl.alm  000270 aa 076151 156143 000271 aa 154165 144145 000272 aa 076141 163164 000273 aa 145056 151156 000274 aa 143154 056141 000275 aa 154155 040040 000276 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000277 aa 076142 157163 000300 aa 076151 156143 000301 aa 154165 144145 000302 aa 076142 157163 000303 aa 137164 166056 000304 aa 151156 143154 000305 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  12233 amaxio bos_tv: 48. 12224 amdvt bos_tv: 41. 12225 amfirst bos_tv: 42. 12226 amlast bos_tv: 43. 100 amptwptr bos_common: 11. 0 amptwregs bos_common: 10. 400 amsdwptr bos_common: 13. 200 amsdwregs bos_common: 12. 1300 aphist bos_common: 17. 7032 apnd apnd_equ: 27, proc: 33, 183, 199, 289, 300, 307.  7000 apnd_org fdump: 33, 115,  apnd_equ: 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,  21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,  34, 35, 36, 37, 38, 39, 40. 42 apte.access_authorization apte: 92.  24 apte.alarm_event apte: 73. 26 apte.alarm_time apte: 76. 26 apte.alarm_time_thread apte: 75. 40 apte.always_loaded apte: 23. 12 apte.asteps apte: 48. 10 apte.batch apte: 68. 21 apte.batch_word apte: 67. 60 apte.begin_interaction_vcpu apte: 106.  10 apte.being_loaded apte: 25. 0 apte.bp apte: 7. 23 apte.chans_offset apte: 65. 37 apte.cpu_monitor apte: 88. 52 apte.current_response_state apte: 102.  44 apte.dbr proc: 182, apte: 95. 20 apte.dbr_loaded proc: 208, apte: 24. 34 apte.deadline apte: 84. 200 apte.default_procs_required apte: 21.  12 apte.dseg apte: 50. 4000 apte.eligible proc: 212, apte: 17. 10 apte.event_thread apte: 44. 1 apte.firstsw apte: 28. 1 apte.flags apte: 9. 21 apte.flags2 apte: 63. 0 apte.fp apte: 6. 20000 apte.hproc apte: 15. 2000 apte.idle apte: 18. 1000 apte.interaction apte: 19. 10 apte.ipc_pointers apte: 43. 11 apte.ips_message apte: 46. 51 apte.ittes_got apte: 100. 50 apte.ittes_sent apte: 99. 54 apte.last_response_state_time apte: 104.  13 apte.le_shift apte: 116. 10000 apte.loaded apte: 16. 36 apte.lock apte: 86. 15 apte.lock_id apte: 57. 400000 apte.mbz apte: 11. 400000 apte.no_ipc_check apte: 93. 53 apte.number_processing apte: 103. 2 apte.page_faults apte: 31. 2 apte.page_wait_flag apte: 27. 40 apte.paging_measure apte: 90. 12 apte.pds apte: 49. 13 apte.prds apte: 52. 40000 apte.pre_empted apte: 14. 400 apte.pre_empt_pending apte: 20. 400000 apte.prior_sched apte: 64. 3 apte.processid apte: 33. 63 apte.procs_required apte: 109. 776000 apte.procs_required_mask apte: 110.  7 apte.pr_tag_mask apte: 69. 100 apte.realtime_burst apte: 22. 62 apte.saved_temax apte: 108. 13 apte.savex7 apte: 53. 1 apte.sentinel apte: 10. 4 apte.shared_stack_0 apte: 26. 374000 apte.special_chans apte: 66. 1 apte.state proc: 198, apte: 29. 22 apte.state_change_time apte: 71. 100000 apte.stop_pending apte: 13. 4 apte.te apte: 35. 33 apte.temax apte: 82. 30 apte.term_channel apte: 78. 14 apte.term_processid apte: 55. 0 apte.thread apte: 5. 6 apte.ti apte: 39. 7 apte.timax apte: 41. 175 apte.timer_factor apte: 117. 16 apte.time_used_clock apte: 58. 56 apte.total_processing_time apte: 105.  5 apte.ts apte: 37. 46 apte.virtual_cpu_time apte: 97. 20 apte.wait_event apte: 60. 200000 apte.wakeup_waiting apte: 12. 21 apte.wct_index apte: 62. 32 apte.ws_size apte: 80. 327 aptentsize proc: 14, 371.  253 aptoff proc: 12, 367.  3303 aptorg proc: 43, 180, 368. 3312 aptsdw proc: 37, 184, 200, 377.  313 aptsize proc: 13, 369.  12040 arg fdump: 83, fdmp: 201, proc: 73, 87, 101, bos_tv: 14, 15.  12222 argbos bos_tv: 39. 17 arglen bosequ: 17, bos_tv: 15, 16, 17. 12223 argmul bos_tv: 40. 12201 arg_count bos_tv: 22. 12255 asge bos_tv: 66. 12256 asgetab bos_tv: 67. 4000 aste.any_access_on aste: 49. 5 aste.any_access_on_word aste: 48. 0 aste.bp aste: 18. 777 aste.csl_mask aste: 90. 33 aste.csl_shift aste: 89. 12 aste.csl_word aste: 88. 200000 aste.damaged aste: 116. 13 aste.damaged_word aste: 115. 4 aste.ddnp aste: 104. 12 aste.ddnp_word aste: 103. 200 aste.deact_error aste: 57. 5 aste.deact_error_word aste: 56. 40000 aste.dirsw proc: 304, aste: 73. 5 aste.dirsw_word proc: 299, aste: 72. 2 aste.dius aste: 63. 5 aste.dius_word aste: 62. 400000 aste.dmpr_pad aste: 67. 5 aste.dmpr_pad_word aste: 66. 20 aste.dnzp aste: 100. 12 aste.dnzp_word aste: 99. 7 aste.dtm aste: 82. 6 aste.dtu aste: 81. 200000 aste.ehs aste: 69. 5 aste.ehs_word aste: 68. 400 aste.explicit_deact_ok aste: 55. 5 aste.explicit_deact_ok_word aste: 54.  400 aste.fmchanged aste: 92. 400000 aste.fmchanged1 aste: 114. 13 aste.fmchanged1_word aste: 113. 12 aste.fmchanged_word aste: 91. 200 aste.fms aste: 94. 12 aste.fms_word aste: 93. 40 aste.fm_damaged aste: 61. 5 aste.fm_damaged_word aste: 60. 0 aste.fp aste: 17. 40000 aste.gtms aste: 43. 5 aste.gtms_word aste: 42. 40 aste.gtpd aste: 98. 12 aste.gtpd_word aste: 97. 100000 aste.gtus aste: 41. 5 aste.gtus_word aste: 40. 20000 aste.hc aste: 45. 100 aste.hc_part aste: 59. 5 aste.hc_part_word aste: 58. 10000 aste.hc_sdw aste: 47. 5 aste.hc_sdw_word aste: 46. 5 aste.hc_word aste: 44. 13 aste.ht_fp aste: 112. 1 aste.infl aste: 20. 1 aste.infp aste: 21. 1000 aste.inhibit_cache aste: 53. 5 aste.inhibit_cache_word aste: 52. 200000 aste.init aste: 39. 5 aste.init_word aste: 38. 77 aste.marker_mask aste: 126. 0 aste.marker_shift aste: 125. 13 aste.marker_word aste: 124. 20000 aste.master_dir aste: 75. 5 aste.master_dir_word aste: 74. 777 aste.msl_mask aste: 30. 33 aste.msl_shift aste: 29. 4 aste.msl_word aste: 28. 1 aste.nid aste: 65. 5 aste.nid_word aste: 64. 100 aste.npfs aste: 96. 12 aste.npfs_word aste: 95. 777 aste.np_mask aste: 110. 0 aste.np_shift aste: 109. 12 aste.np_word aste: 108. 100000 aste.nqsw aste: 71. 5 aste.nqsw_word aste: 70. 100000 aste.pack_ovfl aste: 118. 13 aste.pack_ovfl_word aste: 117. 2 aste.par_astep aste: 24. 10 aste.per_process proc: 293, aste: 102. 12 aste.per_process_word proc: 288, aste: 101. 3 aste.ptsi_mask aste: 123. 6 aste.ptsi_shift aste: 122. 13 aste.ptsi_word aste: 121. 777 aste.pvtx_mask aste: 33. 22 aste.pvtx_shift aste: 32. 4 aste.pvtx_word aste: 31. 10 aste.quota aste: 84. 777 aste.records_mask aste: 107. 11 aste.records_shift aste: 106. 12 aste.records_word aste: 105. 2 aste.strp aste: 23. 40000 aste.synchronized aste: 120. 13 aste.synchronized_word aste: 119. 4000 aste.tqsw aste: 79. 5 aste.tqsw_word aste: 78. 3 aste.uid aste: 26. 11 aste.used aste: 86. 400000 aste.usedf aste: 37. 5 aste.usedf_word aste: 36. 10000 aste.volmap_seg aste: 77. 5 aste.volmap_seg_word aste: 76. 4 aste.vtocx aste: 34. 2000 aste.write_access_on aste: 51. 5 aste.write_access_on_word aste: 50.  0 aste_part.one aste: 134. 377 aste_part.three_mask aste: 139. 0 aste_part.three_shift aste: 138. 13 aste_part.three_word aste: 137. 1 aste_part.two aste: 135. 14 aste_part_size aste: 131. 14 aste_size proc: 287, 298,  aste: 15. 1573 bar bos_common: 26. 2365 begin_dumping fdump: 84, 88, 113. 2 bf bosequ: 9. 4 blocked state_equs: 7. 2476 block_loop fdump: 262, 337, 362. 7012 bosdmp apnd_equ: 16. 12217 bosmul bos_tv: 36. 12214 bosphy bos_tv: 33. 2012 bos_dvt bos_common: 53. 2312 buff_ptr fdmp: 260, 264, 418. 12261 bzel bos_tv: 70. 7022 castap apnd_equ: 21, proc: 314. 2341 ccline fdump: 74, 79.  12312 check_cpu_type bos_tv: 95. 12311 check_special_status bos_tv: 94. 12274 check_status bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 2572 cleanup fdump: 331, 344, 379. 7000 cmdbr fdump: 120, apnd_equ: 10, proc: 20, 187, 232, 233, 353. 2032 cmdlst bos_common: 68. 7020 cmpsdw apnd_equ: 20. 6 com fdump: 56, 101, 119, 132, 137, 173, 392, bosequ: 14, fdmp: 355, 386, 388. 7036 comp apnd_equ: 31. 3000 conf bos_common: 85, 86.  20 confl bos_common: 87. 12272 connect_iom bos_tv: 79. 2003 corearea bos_common: 47. 1610 coreblocks bos_common: 30. 700 cuhist bos_common: 15. 2027 curtcmd bos_common: 66. 12270 cvclock bos_tv: 77. 12210 cvinit fdump: 52, bos_tv: 29. 12227 cvnamla bos_tv: 44. 200000 d355_lth fdump: 149, fdmp: 87. 2024 d355_state bos_common: 63. 12060 darg fdump: 87, bos_tv: 15, 16.  1570 dbr fdump: 119, bos_common: 24. 400 default_aptorg proc: 11, 42.  2443 descrseg fdump: 186, proc: 237. 2307 devt fdmp: 154, 165, 173, 263, 300, 339, 354, 411.  2000 dir bos_common: 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56,  57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 76. 600 dirlen bos_common: 70, 76.  0 dir_modify proc: 9, 306.  2014 diskchanno bos_common: 55. 12236 disk_brief bos_tv: 51. 2000 dmpbufl fdump: 33, 122, 248, 265, 360, fdmp: 76. 4 dopt.dirs proc: 121, 127, 135, 159, 295. 1 dopt.hc proc: 119, 127, 128, 135, 155, 249.  2 dopt.pp proc: 120, 127, 135, 157, 284. 10 dopt.stk proc: 122, 161, 267. 20 dopt.write proc: 123, 133, 163, 282.  0 ds bosequ: 7. 3326 dseg_name proc: 48, 390.  3321 dseg_no proc: 50, 383.  12100 earg bos_tv: 16, 17.  7000 econf bos_common: 86, 90.  1100 eishist bos_common: 16. 0 empty proc: 204, state_equs: 3. 2554 end_block fdump: 309, 354.  2563 end_segment fdump: 209, 212, 275, 357, 368, 382.  2614 entry_addr fdump: 223, 369, 415. 12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt fdump: 155, 390,  fdmp: 190, 194, 365, 371, 377, 383,  proc: 110, 229,  bos_tv: 54. 2255 error_config_card fdmp: 166, 301, 376. 2576 error_full_array fdump: 220, 389.  2266 error_io fdmp: 175, 265, 341, 356, 382. 2242 error_out_of_part fdmp: 297, 370.  2230 err_no_records fdmp: 364. 1576 faultreg bos_common: 28. 5000 fdmp_buff fdump: 33, 274, 289, 326,  fdmp: 226. 2276 fdmp_erret fdmp: 155, 203, 367, 373, 379, 385.  2020 fdmp_read_header fdump: 61, fdmp: 144. 2321 fdmp_switch fdmp: 146, 183, 346, 435.  2117 fdmp_write_data fdump: 330, 343,  fdmp: 223. 2202 fdmp_write_header fdump: 97, 169,  fdmp: 325. 2115 fdrhrtn fdmp: 210. 2320 fdtemp fdmp: 310, 311, 433. 2023 fdump_state fdump: 56, 101, 132, 173,  bos_common: 62. 2226 fdwhrtn fdmp: 347, 358.  2157 fdx0 fdmp: 225, 285.  2156 fdx2 fdmp: 148, 182, 210, 224, 284, 326, 358, 389.  7037 fetch apnd_equ: 32. 7010 fetchin apnd_equ: 14. 7004 fetchout apnd_equ: 12, proc: 36, 186, 202, 292, 303, 310.  7041 fetch_use_buffer apnd_equ: 34. 5 fgb bosequ: 13. 12305 find_disk bos_tv: 90. 12307 find_part fdmp: 153, bos_tv: 92. 12306 find_root bos_tv: 91. 2434 finish_up fdump: 168, 380, 393. 2000 firmware_bit bosequ: 20. 2304 first_rnum fdump: 148, fdmp: 156, 157, 163, 399.  12120 fltscu bos_tv: 17. 12253 geas bos_tv: 64. 12254 geastab bos_tv: 65. 7034 get fdump: 272, apnd_equ: 29. 12264 getconf bos_tv: 73. 7026 getinit fdump: 123, apnd_equ: 23, proc: 235. 2507 getl fdump: 269, 274, 277. 12265 getmore bos_tv: 74. 12273 getmpc bos_tv: 80. 12266 getperiph bos_tv: 75. 12313 getportinfo bos_tv: 96. 12250 getprt bos_tv: 61. 7027 getsdw apnd_equ: 24, proc: 243. 12207 getsec bos_tv: 28. 7043 getsltname apnd_equ: 36. 7030 getwd apnd_equ: 25. 12275 get_special_interrupt bos_tv: 82. 12276 get_status_interrupt bos_tv: 83. 7031 grab apnd_equ: 26, proc: 38. 7002 hcdbr apnd_equ: 11, proc: 34. 30 hdr.d355_time fdmp: 119. 26 hdr.d355_valid fdmp: 112, 187, 206. 24 hdr.erfnum fdump: 92, 157,  fdmp: 106, 192, 208. 25 hdr.num_segs fdump: 140, 218, 230, fdmp: 109. 40 hdr.seg_array fdump: 146, 233, 371, fdmp: 132. 22 hdr.time fdump: 138, fdmp: 103. 21 hdr.valid fdump: 93, 135,  fdmp: 99, 185, 205. 32 hdr.version fdmp: 122, 329.  27 hdr.which_355 fdmp: 115. 20 hdr.words_dumped fdump: 141, 374,  fdmp: 96. 4000 hdr_lth fdump: 149, fdmp: 85, 86, 131. 20 hdr_sects fdmp: 86, 170, 337, 350, 352. 20 header fdmp: 94, 131, 174, 340.  2314 head_sectn_nsect fdmp: 168, 335, 349, 420.  12304 hexwd bos_tv: 89. 12300 initint fdump: 42, bos_tv: 85. 12271 init_io fdump: 46, bos_tv: 78. 2021 inputsw fdump: 392, bos_common: 60, fdmp: 386, 388.  12302 intno bos_tv: 87. 1572 intrpts bos_common: 25. 12303 intrpts1 bos_tv: 88. 2011 iom_mbbase bos_common: 52. 2010 iom_mxbase bos_common: 51. 12237 itaper bos_tv: 52. 12240 itapew bos_tv: 53. 3334 kst_name proc: 63, 399.  3324 kst_no proc: 65, 386.  2306 last_rnum fdmp: 158, 296, 403. 12206 ldcom fdump: 116, 127,  bos_tv: 27. 12001 line fdump: 75, bos_tv: 13, 14.  12257 ljust bos_tv: 68. 12220 lookup_devmodel bos_tv: 37. 1620 lowport_cfg bos_common: 34. 1530 low_order_port bos_common: 20. 2716 macroargs bos_common: 78. 2600 macrobuf bos_common: 76, 77, 85. 2700 macroline bos_common: 77, 78.  2022 macroloc bos_common: 61. 12205 makefil bos_tv: 26. 12221 makesdw bos_tv: 38. 1550 mcm bos_common: 23. 1532 mctime fdump: 137, bos_common: 21. 7 mem fdump: 72, 74, 178, bosequ: 15. 1574 modereg bos_common: 27. 12216 mulbos fdmp: 164, 299,  bos_tv: 35. 12202 nextline bos_tv: 23. 2305 next_rnum fdump: 150, fdmp: 295, 305, 401. 12203 nlraw bos_tv: 24. 2532 non_zero_block fdump: 290, 317.  5500 nsegbitab proc: 23, 319, 403, 404.  2612 num_blocks_seg fdump: 249, 266, 356, 409.  2316 num_ovfl_sects fdmp: 233, 247, 251, 278, 313, 426.  2315 num_sectors fdmp: 237, 274, 304, 423.  2615 num_sectors_dumped fdump: 235, 332, 345, 370, 379, 418.  20 num_sectors_page fdmp: 74, 238, 352, 424.  2317 num_sectors_written fdmp: 227, 273, 286, 390, 429. 2613 num_words_lblock fdump: 251, 268, 412. 12252 octwd bos_tv: 63. 2611 offset fdump: 236, 271, 359, 361, 404. 500 ouhist bos_common: 14. 12000 pagectl bos_tv: 12, 13.  7013 pagesw apnd_equ: 17. 12 page_power fdmp: 68. 2000 page_size fdump: 149, fdmp: 67, 74, 76. 3023 pcallopt proc: 69, 83, 94, 148, 169, 217.  3275 pcapte proc: 181, 197, 360. 3307 pcaptsize proc: 45, 179, 372. 3207 pcckdirs proc: 285, 295.  3072 pcckelg proc: 207, 212.  3316 pcdbr proc: 21, 191, 352, 379.  3337 pcddbr proc: 28, 194, 341, 343, 401. 3163 pcdmpunique proc: 268, 274.  3021 pcelgopt proc: 70, 81, 95, 96, 144, 167, 214. 3256 pcer proc: 31, 35, 40, 49, 54, 59, 64, 112, 176, 185, 201, 291,  302, 309, 341. 3273 pcfirst proc: 27, 263, 336, 358.  3022 pcinzopt proc: 71, 146, 168, 224.  3152 pckfproc proc: 260, 263.  3155 pckstkop proc: 262, 267.  3253 pcle proc: 205, 226, 337. 3252 pcled proc: 245, 336.  3302 pclist proc: 39, 367.  3026 pclp proc: 175, 339.  2760 pcmacroopttbl proc: 76, 125, 138. 2774 pcmajoropttbl proc: 90, 140, 151. 3006 pcminorkeys proc: 104, 153, 164. 2725 pcmrgop proc: 84, 94.  3305 pcnapt proc: 175, 345, 370. 2715 pcnmacop proc: 77, 86.  3 pcnmacroopts proc: 75, 138.  5 pcnmajoropts proc: 89, 151.  5 pcnminorkeys proc: 103, 164.  3274 pcno proc: 177, 221, 231, 337, 344, 359.  3110 pcnoc proc: 229, 346.  3230 pcnockdirs proc: 283, 294, 312. 3143 pcnohcop proc: 250, 256.  3105 pcnoinzr proc: 223, 225.  3024 pcopt proc: 171, 227, 248. 3250 pcosdone proc: 244, 258, 265, 296, 305, 311, 324, 332.  3246 pcosegp proc: 255, 264, 272, 276, 316, 320, 329. 3053 pcproc proc: 193, 197.  3320 pcrptadd proc: 380. 3020 pcrunopt proc: 72, 79, 97, 142, 166, 206, 220. 3101 pcsavopt proc: 215, 218, 221. 3314 pcsdw fdump: 200, proc: 246, 256, 277, 308, 378. 2743 pcseler proc: 91, 110.  2717 pcselmaj proc: 88, 105.  2732 pcselmin proc: 93, 100, 108. 3076 pcsetall proc: 213, 217.  3100 pcsetrun proc: 195, 209, 211, 220.  3321 pcshno proc: 254, 382, 388. 5 pcshnon proc: 253, 388.  3325 pcstklim proc: 190, 259, 261, 270, 387. 3264 pcx2 proc: 16, 17, 18, 19, 342, 348.  3025 pc_begin_dumping proc: 98, 173.  3330 pds_name proc: 53, 393.  3322 pds_no proc: 55, 384.  7044 pd_check apnd_equ: 37. 7046 pd_getptr apnd_equ: 39. 7045 pd_modify apnd_equ: 38. 3 pgm bosequ: 10, fdmp: 174, 264, 340, 418.  12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 7014 pmlsw apnd_equ: 18. 3332 prds_name proc: 58, 396.  3323 prds_no proc: 60, 385.  2443 printreg fdump: 185, proc: 22. 2620 proc fdump: 165, proc: 16. 1500 prs bos_common: 18. 3125 psegl proc: 240, 334.  6 ptlocking state_equs: 9. 1600 ptrlen bos_common: 29. 12251 punch bos_tv: 62. 7035 put apnd_equ: 30. 7047 pvt_to_devt apnd_equ: 40. 2020 quietsw bos_common: 59. 12267 rdclock bos_tv: 76. 12211 rdev fdmp: 172, bos_tv: 30. 2016 rdrchanno bos_common: 57. 12234 rdsec bos_tv: 49. 12246 readcd bos_tv: 59. 12247 readtty fdmp: 197, bos_tv: 60. 2 ready state_equs: 5. 2030 readysw bos_common: 67. 7006 read_args apnd_equ: 13. 12232 rec_per_dev_list bos_tv: 47. 1520 regs bos_common: 19. 3276 rel_pt_add proc: 281, 297, 313, 361.  2440 return fdump: 43, 49, 63, 98, 102, 117, 170, 175.  12260 rjust bos_tv: 69. 4000 runcom_bit bosequ: 19. 1 running state_equs: 4. 12200 scan fdump: 81, fdmp: 200, bos_tv: 21. 1540 scu bos_common: 22. 2606 sdw fdump: 201, 211, 244, 273, 399. 14 sdw.add_shift fdump: 207, bos_sdw: 4. 377770 sdw.bound fdump: 245, bos_sdw: 12. 40000 sdw.cache bos_sdw: 20. 4 sdw.df bos_sdw: 9. 37777 sdw.entry_bound bos_sdw: 21. 100000 sdw.entry_bound_sw bos_sdw: 19. 2 sdw.execute bos_sdw: 14. 3 sdw.fault_code bos_sdw: 10. 400000 sdw.privileged bos_sdw: 17. 7000 sdw.r1 bos_sdw: 5. 700 sdw.r2 bos_sdw: 6. 70 sdw.r3 bos_sdw: 7. 4 sdw.read bos_sdw: 13. 200000 sdw.unpaged proc: 275, bos_sdw: 18. 1 sdw.write proc: 257, bos_sdw: 15. 12204 search bos_tv: 25. 2310 sectn_nsect fdmp: 234, 249, 252, 261, 271, 276, 302, 307, 413. 6 sector_power fdump: 281, 373,  fdmp: 71, 309.  100 sector_size fdump: 280, 293, 326, fdmp: 70, 74, 86. 12230 sect_per_cyl_list bos_tv: 45. 12231 sect_per_dev_list bos_tv: 46. 7000 seg6length bos_common: 90. 3340 segbitab proc: 26, 323, 327, 404.  2610 segno fdump: 232, 402,  proc: 240, 242, 252. 2444 segprint fdump: 197, proc: 329. 40 seg_array fdmp: 133. 1760 seg_array_size fdump: 143, 219,  fdmp: 131, 133.  10 seg_aste.usage aste: 147. 14 seg_aste_size aste: 144. 2004 setuparea bos_common: 49. 2355 set_new_erfnum fdump: 85, 90.  2162 set_next_write fdmp: 254, 279, 294. 100 size_of_apt_entry proc: 44, apte: 112. 2025 skipsw bos_common: 64. 7042 sltsearch apnd_equ: 35, proc: 29, 47, 52, 57, 62. 7011 sltseg apnd_equ: 15. 6000 sstn_org fdump: 126, 129,  sstn_equ: 6. 7016 sstsdw apnd_equ: 19, proc: 278, 290, 301. 2322 start fdump: 20, 39.  2111 steperf fdmp: 188, 205.  5 stopped proc: 210, state_equs: 8. 2000 storlen bos_common: 36, fdmp: 86, 131.  12262 stripa bos_tv: 71. 12263 stripg bos_tv: 72. 2015 tapechanno bos_common: 56. 3277 tcd_name proc: 30, 364.  2517 test_zero_loop fdump: 288, 294, 300. 1 tmp bosequ: 8. 2017 ttychanno bos_common: 58. 12245 ttyinit fdump: 48, bos_tv: 58. 2026 ttypmtsw bos_common: 65. 12200 tv_org bos_tv: 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,  44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,  56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,  68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,  80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,  92, 93, 94, 95, 96. 12244 type bos_tv: 57. 7033 unapnd apnd_equ: 28. 7040 unfetch apnd_equ: 33. 2013 unitgroup bos_common: 54. 2002 useable bos_common: 46. 2001 used bos_common: 45. 2005 utilarea bos_common: 50. 12000 utilorg bosequ: 22, bos_tv: 12, 19.  3 waiting state_equs: 6. 12301 wantflt bos_tv: 86. 12212 wdev fdmp: 262, 338, 353, bos_tv: 31. 2140 write fdmp: 239, 260.  2547 write_block fdump: 319, 342.  2125 write_next fdmp: 232, 314.  2537 write_zero_loop fdump: 328, 335.  12235 wtsec bos_tv: 50. 2440 X2_fdump fdump: 40, 71, 176. 2571 X2_segprint fdump: 198, 376, 381. 12277 xio_wait bos_tv: 84. 4 xs1 bosequ: 11. 5 xs2 bosequ: 12. 2616 zero_sectors_block fdump: 263, 298, 306, 347, 422. 2617 zero_sectors_tot fdump: 237, 307, 318, 334, 348, 426.  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