ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>ndisk.alm ASSEMBLED ON: 11/29/83 1526.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 " ndisk -- Disk I/O for SAVE/RESTOR.  7 " coded 3/5/75 by Noel I. Morris  8 " modified 11/75 for NSS by Noel I. Morris  9 " Modified November 1981 by C. Hornig to not use IOM rel mode.  10  11  000000 12 name ndisk 13  14 " ******************************************************  15 " * *  16 " * *  17 " * Copyright (c) 1972 by Massachusetts Institute of *  18 " * Technology and Honeywell Information Systems, Inc. *  19 " * *  20 " * *  21 " ******************************************************  22  23  24 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  25 include bos_toequ  2-1 "  2-2 " Begin include file ...... bos_toequ.incl.alm  2-3 " Converted for follow-on on 5/5/72 at 17:30 by D R Vinograd  2-4 " Modified on 5/3/77 by N. I. Morris  2-5 " Modified 8/79 by R.J.C. Kissel to expand parts of BOS.  2-6 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support  2-7 " Last modified by Keith Loepere to fix addresses to toehold and setup so  2-8 " that dcw list in setup will correctly save/restore Multics image  2-9 " The following is a map of BOS memory. 2-10 "  2-11 " Address Length  2-12 "  2-13 " 0 100 interrupt vector  2-14 " 100 100 fault vector  2-15 " 200 400 its pointers for fault and interrupt vectors  2-16 " 600 300 padding?  2-17 " 1100 100 bulk store mbx  2-18 " 1200 200 IOM imw area  2-19 " 1400 400 IOM A mbx 2-20 " 2000 400 IOM B mbx 2-21 " 2400 400 IOM C mbx 2-22 " 3000 400 IOM D mbx 2-23 " 3400 300 FNP A mbx 2-24 " 3700 300 FNP B mbx 2-25 " 4200 300 FNP C mbx 2-26 " 4500 300 FNP D mbx 2-27 " 5000 300 FNP E mbx 2-28 " 5300 300 FNP F mbx 2-29 " 5600 300 FNP G mbx 2-30 " 6100 300 FNP H mbx 2-31 " 6400 1340 padding  2-32 " 7740 40 ds (descriptor segment)  2-33 " 10000 1000 toehold  2-34 " 11000 7000 setup  2-35 " 20000 2000 bf (buffer)  2-36 " 22000 4000 com (common) 2-37 " 31000 12000 pgm (program area)  2-38 " 40000 20000 util (utilities) 2-39 " 60000 717777 rest of BOS memory, unused  2-40  2-41 " EQU's for BOS core image. 2-42  060000 2-43 bool coresaved,60000 amount of Multics core saved by BOS  2-44  777777 2-45 bool lnmem,777777 length of memory  000000 2-46 bool origmem,0 absolute origin of start of memory  2-47  010000 2-48 bool lnsetup,10000 length of BOS control program  010000 2-49 bool origsetup,10000 absolute origin of BOS control program  2-50  010020 2-51 equ origflagbox,origsetup+16 absolute origin of flagbox area  000100 2-52 equ lnflagbox,64 length of flagbox area  2-53  000040 2-54 bool lnds,40 length of BOS descriptor segment  007740 2-55 equ origds,origsetup-lnds absolute origin of BOS descriptor segment  2-56  002000 2-57 equ lnbf,1024 length of buffer segment  020000 2-58 equ origbf,origsetup+lnsetup absolute origin of 1024-word buffer  2-59  007000 2-60 bool lncom,7000 length of BOS common area 022000 2-61 equ origcom,origbf+lnbf absolute origin of BOS common area  2-62  031000 2-63 equ origpgm,origcom+lncom absolute origin of BOS command programs  031000 2-64 equ pgmorg,origpgm for compatibility  027000 2-65 equ lnpgm,coresaved-origpgm length of BOS command programs 2-66  001400 2-67 bool imbx,1400 absolute loc'n of actual IOM mailbox  2-68  000037 2-69 bool rewpu,37 REWP access, unpaged bit for SDW  2-70  2-71  010000 2-72 bool maxw,10000  2-73  2-74  000020 2-75 bool absi,000020  004000 2-76 bool ovflm,004000  2-77  2-78  2-79 " BOS pointer registers.  2-80  2-81 mod 16 000000 2-82 bos_pr: 000000 aa 000000 000043 2-83 its 0,0 pr0 -> seg 0 etc  000001 aa 000000 000000 000002 aa 000001 000043 2-84 its 1,0  000003 aa 000000 000000 000004 aa 000002 000043 2-85 its 2,0  000005 aa 000000 000000 000006 aa 000003 000043 2-86 its 3,0  000007 aa 000000 000000 000010 aa 000004 000043 2-87 its 4,0  000011 aa 000000 000000 000012 aa 000005 000043 2-88 its 5,0  000013 aa 000000 000000 000014 aa 000006 000043 2-89 its 6,0  000015 aa 000000 000000 000016 aa 000007 000043 2-90 its 7,0  000017 aa 000000 000000 2-91  2-92  2-93 " BOS descriptor segment template.  2-94  000020 2-95 bos_dbr:  000020 2-96 dseg:  000020 aa 000077 400004 2-97 seg0: vfd 24/origds,9/0,o3/4  000021 aa 000017 600000 2-98 vfd 1/0,14/(lnds/16-1),5/rewpu,15/0  2-99  000022 aa 000310 000004 2-100 seg1: vfd 24/origpgm,9/0,o3/4  000023 aa 013377 600000 2-101 vfd 1/0,14/(lnpgm/16-1),5/rewpu,15/0  2-102  000024 aa 000200 000004 2-103 seg2: vfd 24/origbf,9/0,o3/4  000025 aa 000777 600000 2-104 vfd 1/0,14/(lnbf/16-1),5/rewpu,15/0  2-105  000026 aa 000100 000004 2-106 seg3: vfd 24/origsetup,9/0,o3/4 000027 aa 003777 600000 2-107 vfd 1/0,14/(lnsetup/16-1),5/rewpu,15/0 2-108  000030 aa 000000 000000 2-109 seg4: zero  000031 aa 000000 000000 2-110 zero  2-111  000032 aa 000100 200004 2-112 seg5: vfd 24/origflagbox,9/0,o3/4  000033 aa 000037 600000 2-113 vfd 1/0,14/(lnflagbox/16-1),5/rewpu,15/0  2-114  000034 aa 000220 000004 2-115 seg6: vfd 24/origcom,9/0,o3/4  000035 aa 003377 600000 2-116 vfd 1/0,14/(lncom/16-1),5/rewpu,15/0  2-117  000036 aa 000000 000004 2-118 seg7: vfd 24/origmem,9/0,o3/4  000037 aa 377767 600000 2-119 vfd 1/0,14/(lnmem/16-1),5/rewpu,15/0  2-120  2-121  2-122 " EQU's for locations in the IOM mailbox used by BOS toehold.  2-123  000014 2-124 equ scwr,3*4 loc of refill for IOM scw  000002 2-125 equ statq,2 loc of status word  000000 2-126 equ pcw,0 loc of pcw  000001 2-127 equ cow,1 loc of cow  000011 2-128 equ lpwr,2*4+1 array of lpw refills  2-129  2-130  2-131 " EQU's for locations in setup used by BOS toehold. 2-132 " NOTE: toelen M_U_S_T_ be 0 mod 64 long because it must fit into  2-133 " an integral number of disk sectors.  2-134  001000 2-135 bool toelen,1000  031000 2-136 equ toesaved,origcom+lncom core saved by toehold  000200 2-137 equ swaplen,128 Size of the Bos toehold area which is  2-138 " swapped with the Multics toehold area.  000575 2-139 equ mbxloc,toelen-swaplen-3  000576 2-140 equ devid,toelen-swaplen-2 000577 2-141 equ ttychan,toelen-swaplen-1  001000 2-142 equ cowsav,toelen  001001 2-143 equ mbbasesav,toelen+1 001002 2-144 equ mxbasesav,toelen+2 001003 2-145 equ dirbase,toelen+3  2-146  2-147 " End of include file ...... bos_toequ.incl.alm 2-148  26  27 include fs_dev_types  3-1 " 3-2 " Begin include file ...... fs_dev_types.incl.alm  3-3 " Updated for NSS 4/75 by TVV  3-4 " Last modified 3/12/76 by Noel I. Morris  3-5 " Last modified 01/06/79 by Michael R. Jordan for MSS0500 support  3-6 " Last modified 4/79 by R.J.C. Kissel for MSU0501 support.  3-7  000001 3-8 equ bulkdevt,1 000002 3-9 equ msu0500devt,2  000003 3-10 equ msu0451devt,3  000003 3-11 equ msu0450devt,3  000004 3-12 equ msu0400devt,4  000004 3-13 equ dsu191devt,4  000005 3-14 equ dsu190devt,5  000006 3-15 equ dsu181devt,6  000007 3-16 equ msu0501devt,7  3-17  000040 3-18 fs_dev.models:  000040 aa 142 165 154 153 3-19 aci "bulk" Bulk  000041 aa 000000 000764 3-20 dec 500 MSU0500  000042 aa 000000 000703 3-21 dec 451 MSU0451  000043 aa 000000 000702 3-22 dec 450 MSU0450  000044 aa 000000 000620 3-23 dec 400 MSU0400  000045 aa 000000 000622 3-24 dec 402 MSU0402  000046 aa 000000 000277 3-25 dec 191 DSU191  000047 aa 000000 000276 3-26 dec 190 DSU190  000050 aa 000000 000265 3-27 dec 181 DSU181  000051 aa 000000 000765 3-28 dec 501 MSU0501  000012 3-29 equ fs_dev.n_models,*-fs_dev.models  3-30  000052 3-31 fs_dev.modelx:  000052 aa 000000 000001 3-32 bulk_dvt: dec 1 Bulk  000053 aa 000000 000002 3-33 dec 2 MSU0500 000054 aa 000000 000003 3-34 dec 3 MSU0451 000055 aa 000000 000003 3-35 dec 3 MSU0450 000056 aa 000000 000004 3-36 dec 4 MSU0400 000057 aa 000000 000004 3-37 dec 4 MSU0402 000060 aa 000000 000004 3-38 dec 4 DSU191  000061 aa 000000 000005 3-39 dec 5 DSU190  000062 aa 000000 000006 3-40 dec 6 DSU181  000063 aa 000000 000007 3-41 dec 7 MSU0501 3-42  000007 3-43 equ fs_dev.max_dev_type,7  3-44  000064 3-45 fs_dev.dev_type_names:  000064 aa 142 165 154 153 3-46 aci "bulk" 000065 aa 144 065 060 060 3-47 aci "d500" 000066 aa 144 064 065 061 3-48 aci "d451" 000067 aa 144 064 060 060 3-49 aci "d400" 000070 aa 144 061 071 060 3-50 aci "d190" 000071 aa 144 061 070 061 3-51 aci "d181" 000072 aa 144 065 060 061 3-52 aci "d501" 3-53  000073 3-54 fs_dev.media_removable: 000073 aa 000000 000000 3-55 oct 0 Bulk  000074 aa 000000 000000 3-56 oct 0 MSU0500 000075 aa 400000 000000 3-57 oct 400000000000 MSU0451  000076 aa 400000 000000 3-58 oct 400000000000 MSU0400  000077 aa 400000 000000 3-59 oct 400000000000 DSU190  000100 aa 400000 000000 3-60 oct 400000000000 DSU181  000101 aa 000000 000000 3-61 oct 0 MSU0501 3-62  3-63 " Following data items are hardware constants  3-64  000102 3-65 fs_dev.sect_per_dev:  000102 aa 000017 204400 3-66 vfd 36/4000000 Bulk  000103 aa 000002 270220 3-67 vfd 36/814*40*19 MSU0500  000104 aa 000002 270220 3-68 vfd 36/814*40*19 MSU0450  000105 aa 000001 140460 3-69 vfd 36/410*40*19 MSU0400  000106 aa 000000 727522 3-70 vfd 36/410*31*19 DSU190  000107 aa 000000 216020 3-71 vfd 36/202*18*20 DSU181  000110 aa 000004 064000 3-72 vfd 36/840*64*20 MSU0501  3-73  000111 3-74 fs_dev.track_per_cyl:  000111 aa 000000 000001 3-75 vfd 36/1 Bulk 000112 aa 000000 000023 3-76 vfd 36/19 MSU0500 000113 aa 000000 000023 3-77 vfd 36/19 MSU0450 000114 aa 000000 000023 3-78 vfd 36/19 MSU0400 000115 aa 000000 000023 3-79 vfd 36/19 DSU190  000116 aa 000000 000024 3-80 vfd 36/20 DSU181  000117 aa 000000 000024 3-81 vfd 36/20 MSU0501 3-82  000120 3-83 fs_dev.cyl_per_dev: 000120 aa 000000 000000 3-84 vfd 36/0 Bulk 000121 aa 000000 001456 3-85 vfd 36/814 MSU0500  000122 aa 000000 001456 3-86 vfd 36/814 MSU0450  000123 aa 000000 000632 3-87 vfd 36/410 MSU0400  000124 aa 000000 000632 3-88 vfd 36/410 DSU190 000125 aa 000000 000312 3-89 vfd 36/202 DSU181 000126 aa 000000 001510 3-90 vfd 36/840 MSU0501  3-91  000127 3-92 fs_dev.sect_per_cyl:  000127 aa 000017 204400 3-93 vfd 36/4000000 Bulk  000130 aa 000000 001370 3-94 vfd 36/40*19 MSU0500  000131 aa 000000 001370 3-95 vfd 36/40*19 MSU0450  000132 aa 000000 001370 3-96 vfd 36/40*19 MSU0400  000133 aa 000000 001115 3-97 vfd 36/31*19 DSU190  000134 aa 000000 000550 3-98 vfd 36/18*20 DSU181  000135 aa 000000 002400 3-99 vfd 36/64*20 MSU0501  3-100  000136 3-101 fs_dev.sect_per_track:  000136 aa 000000 000001 3-102 vfd 36/1 Bulk 000137 aa 000000 000050 3-103 vfd 36/40 MSU0500 000140 aa 000000 000050 3-104 vfd 36/40 MSU0450 000141 aa 000000 000050 3-105 vfd 36/40 MSU0400 000142 aa 000000 000037 3-106 vfd 36/31 DSU190  000143 aa 000000 000022 3-107 vfd 36/18 DSU181  000144 aa 000000 000100 3-108 vfd 36/64 MSU0501 3-109  3-110 " The following figures depend on the Multics conventional definition of "record"  3-111 " A record consists of sectors with consecutive addresses ON THE SAME CYLINDER. 3-112 " This means that there can be a "gap" at the end of each cylinder (i.e., sectors in no record).  3-113  000145 3-114 fs_dev.mult_sect_per_cyl:  000145 aa 000000 100000 3-115 vfd 36/2048*16 Bulk  000146 aa 000000 001360 3-116 vfd 36/40*19/16*16 MSU0500 000147 aa 000000 001360 3-117 vfd 36/40*19/16*16 MSU0450 000150 aa 000000 001360 3-118 vfd 36/40*19/16*16 MSU0400 000151 aa 000000 001100 3-119 vfd 36/31*19/16*16 DSU190  000152 aa 000000 000540 3-120 vfd 36/18*20/16*16 DSU181  000153 aa 000000 002400 3-121 vfd 36/64*20/16*16 MSU0501 3-122  000154 3-123 fs_dev.rem_per_cyl: " Size of gap  000154 aa 000000 000000 3-124 vfd 36/0 Bulk  000155 aa 000000 000010 3-125 vfd 36/(40*19)-(40*19/16*16) MSU0500  000156 aa 000000 000010 3-126 vfd 36/(40*19)-(40*19/16*16) MSU0450  000157 aa 000000 000010 3-127 vfd 36/(40*19)-(40*19/16*16) MSU0400  000160 aa 000000 000015 3-128 vfd 36/(31*19)-(31*19/16*16) DSU190  000161 aa 000000 000010 3-129 vfd 36/(18*20)-(18*20/16*16) DSU181  000162 aa 000000 000000 3-130 vfd 36/(64*20)-(64*20/16*16) MSU0501  3-131  000163 3-132 fs_dev.rec_per_dev: 000163 aa 000000 004000 3-133 vfd 36/2048 Bulk 2048.  000164 aa 000000 112562 3-134 vfd 36/(19*40/16)*814 MSU0500 38258.  000165 aa 000000 112562 3-135 vfd 36/(19*40/16)*814 MSU0450 38258.  000166 aa 000000 045506 3-136 vfd 36/(19*40/16)*410 MSU0400 19270.  000167 aa 000000 034650 3-137 vfd 36/(19*31/16)*410 DSU190 14760.  000170 aa 000000 010534 3-138 vfd 36/(18*20/16)*202 DSU181 4444.  000171 aa 000000 203200 3-139 vfd 36/(20*64/16)*840 MSU0501 67200.  3-140  000172 3-141 fs_dev.amaxio:  000172 aa 000000 004000 3-142 vfd 36/2048 For bulk store.  000173 aa 000000 000057 3-143 vfd 36/40*19/16 MSU0500  000174 aa 000000 000057 3-144 vfd 36/40*19/16 MSU0450  000175 aa 000000 000057 3-145 vfd 36/40*19/16 MSU0400  000176 aa 000000 000044 3-146 vfd 36/31*19/16 DSU190 000177 aa 000000 000026 3-147 vfd 36/18*20/16 DSU181 000200 aa 000000 000120 3-148 vfd 36/64*20/16 MSU0501  3-149  3-150 " End of include file ...... fs_dev_types.incl.alm  3-151  28 " 29  30 include ntape_equ  4-1  4-2 " Begin include file ...... ntape_equ.incl.alm  4-3 " Last modified 11/25/75 by Noel I. Morris  4-4 " Modified 8/79 by R.J.C. Kissel to use expanded BOS.  4-5 " Modified 2/80 by R.J.C. Kissel to handle 6250 bpi operation.  4-6  4-7 " Transfer Vector values:  4-8  006000 4-9 bool ntape_org,6000 start of tape package  4-10  006000 4-11 equ taperopen,ntape_org+0  006001 4-12 equ tapewopen,ntape_org+1  006002 4-13 equ taper,ntape_org+2  006003 4-14 equ tapew,ntape_org+3  006004 4-15 equ inittape,ntape_org+4  006005 4-16 equ opentaper,ntape_org+5  006006 4-17 equ opentapew,ntape_org+6  006007 4-18 equ runtape,ntape_org+7  006010 4-19 equ endtape,ntape_org+8  4-20  4-21 " Queue entry codes:  4-22  000010 4-23 bool tpeot,10 EOT flag  000004 4-24 bool tpskip,4 skip queue entry  000002 4-25 bool tpdone,2 queue entry done  000001 4-26 bool tpstat,1 error in entry  4-27  4-28 " format of queue:  4-29 " 0/ zero next_entry,flags  4-30 " 1/ vfd 36/id  4-31 " 2/ vfd 3/data_seg,15/data_offset,18/data_length  4-32  4-33 " End of include file ...... ntape_equ.incl.alm 4-34  31  32 include config_cards  5-1 " 5-2 " Begin include file ...... config_cards.incl.alm  5-3 " 3/75 THVV nss 5-4 " Last modified 3/12/76 by Noel I. Morris  5-5  000001 5-6 equ ROOT_cd.sub,1  000002 5-7 equ ROOT_cd.drive,2  5-8  000001 5-9 equ PART_cd.name,1 000002 5-10 equ PART_cd.sub,2  000003 5-11 equ PART_cd.drive,3  5-12  000001 5-13 equ PRPH_cd.sub,1  000002 5-14 equ PRPH_cd.iom,2  000003 5-15 equ PRPH_cd.chn,3  000004 5-16 equ PRPH_cd.model,4  5-17  000001 5-18 equ DISK_cd.sub,1  000002 5-19 equ DISK_cd.iom,2  000003 5-20 equ DISK_cd.chn,3  000004 5-21 equ DISK_cd.nchan,4  000005 5-22 equ DISK_cd.model,5  000006 5-23 equ DISK_cd.ndrives,6  5-24  000001 5-25 equ CHNL_cd.sub,1  000002 5-26 equ CHNL_cd.iom,2  000003 5-27 equ CHNL_cd.chn,3  000004 5-28 equ CHNL_cd.nchan,4  5-29  000001 5-30 equ BULK_cd.frec,1 000002 5-31 equ BULK_cd.nrec,2 5-32  5-33 " End of include file ...... config_cards.incl.alm  5-34  33  34  35 " events are:  36 " 0 = bad data xfer 37 " 1 = no tape  38 " 2 = good  39 "  40 " xrs are:  41 " 0 = buffer index  42 " 1 = log record index  43 " 3 = queue index  44 "  45 " disk format is:  46 " 0/ id of data 47 " 1/ offset of next log. header, offset in log record of following data  48 " ...  49 " logical header:  50 " id  51 " next log header, length of log record  52 " ...  53  54 " 55  006000 56 org ntape_org  57  006000 58 org taperopen  006000 0a 006000 7100 00 59 tra *  60  006001 61 org tapewopen  006001 0a 006001 7100 00 62 tra *  63  006002 64 org taper  006002 0a 006002 7100 00 65 tra *  66  006003 67 org tapew  006003 0a 006003 7100 00 68 tra *  69  006004 70 org inittape  006004 0a 006011 7100 00 71 tra inittape_  72  006005 73 org opentaper  006005 0a 006266 7100 00 74 tra opentaper_ 75  006006 76 org opentapew  006006 0a 006107 7100 00 77 tra opentapew_ 78  006007 79 org runtape  006007 0a 006412 7100 00 80 tra runtape_  81  006010 82 org endtape  006010 0a 006060 7100 00 83 tra endtape_  84  85 " equ's specific to ndisk, they do not appear in ntape or ncopy which do things 86 " differently.  87  002000 88 equ tpn,1024 length of the output disk buffer 89  90  91  92 " 93  94 " tsx2 inittape to initialize tape package 95 " zero tapeden ignored by ndisk  96 " zero fatal_error go here on fatal error in opentape(r w)_ 97  006011 98 inittape_:  006011 0a 006056 7420 00 99 stx2 intpx2 save X2  006012 aa 000002 2360 12 100 ldq 2,2 pick up error return  006013 0a 006752 7560 00 101 stq tperret and retain  102  006014 aa 012257 7020 00 103 tsx2 ljust left-justify subsys name  006015 aa 012253 7020 00 104 tsx2 geas and convert to ASCII  006016 0a 006772 7550 00 105 sta tpsubsys save subsystem name  006017 aa 000044 7730 00 106 lrl 36 move to Q  006020 0a 011334 2350 00 107 lda =achnl look for CHNL card 006021 aa 012264 7020 00 108 tsx2 getconf ..  006022 0a 006034 7100 00 109 tra tpnochnl ..  006023 aa 6 00001 1161 17 110 cmpq com|CHNL_cd.sub,7 with correct subsystem name 006024 aa 012265 6010 00 111 tnz getmore ..  112  006025 aa 000006 6270 17 113 eax7 3*2,7 step config index to third channel group  006026 aa 000003 6260 00 114 eax6 3 test for non-null channel group  006027 aa 6 00004 2341 17 115 tpsccd: szn com|CHNL_cd.nchan,7 ..  006030 0a 006044 6054 00 116 tpnz tpfch use last channel group 006031 aa 777775 6270 17 117 eax7 -3,7 try previous group  006032 aa 777777 6260 16 118 eax6 -1,6 ..  006033 0a 006027 6054 00 119 tpnz tpsccd until finished  120  006034 0a 006773 4500 00 121 tpnochnl: stz tpdevt clear devt word  006035 aa 000044 7370 00 122 lls 36 subsystem name in A  006036 aa 012305 7020 00 123 tsx2 find_disk look for subsystem 006037 0a 006773 0000 00 124 arg tpdevt 006040 0a 006715 7100 00 125 tra tpconferr  006041 0a 006773 7270 00 126 lxl7 tpdevt get config card index 006042 aa 777760 3670 03 127 anx7 =o777760,du and mask  006043 aa 000000 6270 17 128 eax7 DISK_cd.iom-CHNL_cd.iom,7 adjust for difference between cards  129  006044 aa 6 00002 2351 17 130 tpfch: lda com|CHNL_cd.iom,7 get IOM number 006045 aa 000001 1750 07 131 sba 1,dl minus 1  006046 aa 000006 7350 00 132 als 6 move over  006047 aa 6 00003 0751 17 133 ada com|CHNL_cd.chn,7 insert channel number  006050 aa 6 00004 0751 17 134 ada com|CHNL_cd.nchan,7 add number of channels 006051 aa 000001 1750 07 135 sba 1,dl minus 1 to get last channel  006052 aa 000022 7350 00 136 als 18 place in AU  006053 0a 006756 7550 00 137 sta tpchanno  006054 aa 000011 7350 00 138 als 9 Shift to PCW position  006055 0a 007023 7550 00 139 sta tppcw+1  140  006056 0a 006056 6220 00 141 intpx2: eax2 * restore X2  006057 aa 000003 7100 12 142 tra 3,2  143  144 " 145  146 " tsx2 endtape to close out tape  147  006060 0a 006106 7420 00 148 endtape_: stx2 tpet here to end a tape 006061 0a 006750 5540 00 149 stc1 tpfin 006062 aa 006007 7020 00 150 tsx2 runtape  006063 0a 006750 2340 00 151 szn tpfin wait until finished 006064 0a 006062 6010 00 152 tnz *-2  153  006065 aa 012241 7020 00 154 tsx2 erpt print total errors on tape  006066 aa 021 144 151 163 155 acc "disk errors = ^d."  006067 aa 153 040 145 162 006070 aa 162 157 162 163 006071 aa 040 075 040 136 006072 aa 144 056 000 000 006073 0a 006770 0000 00 156 arg tperrors  157  006074 0a 006774 2340 00 158 szn tprecno last disk?  006075 0a 006106 6000 00 159 tze tpet if not, just return  160  006076 aa 012241 7020 00 161 tsx2 erpt  006077 aa 027 144 151 163 162 acc "disk records left = ^d."  006100 aa 153 040 162 145 006101 aa 143 157 162 144 006102 aa 163 040 154 145 006103 aa 146 164 040 075 006104 aa 040 136 144 056 006105 0a 006774 0000 00 163 arg tprecno  164  006106 0a 006106 7100 00 165 tpet: tra * 166  167 " 168  169 " tsx2 opentape(r/w) to open tape  170 " zero queue  171 " zero tapeno  172  006107 173 opentapew_: 006107 0a 006623 7500 00 174 stc2 setrtn set return loc from setape  006110 0a 006554 7100 00 175 tra setape perform setup operations  176  006111 aa 310000 2350 03 177 lda =o310000,du get write command  006112 0a 007026 7510 40 178 stca tprwidcw,40 and set in IDCW  179  006113 aa 000000 6200 00 180 eax0 0 buffer index  181  006114 0a 007060 4500 00 182 stz tpbuf clear header  006115 0a 007061 4500 00 183 stz tpbuf+1  184  006116 0a 006121 6220 00 185 eax2 tpw0 simulate call  006117 0a 006644 7100 00 186 tra tpqtest enter subroutine to get next queue entry  187  188 "  189 " Finish with current queue entry and get next one. 190  006120 0a 006641 7020 00 191 tpwql: tsx2 tpnextq on to the next 006121 0a 006212 7100 00 192 tpw0: tra tpweot end of tape return  193  006122 0a 006751 2340 00 194 szn tpeotsw if end of tape  006123 0a 006212 6010 00 195 tnz tpweot 196  197 " Prime new buffer. 198  006124 aa 000000 1000 03 199 cmpx0 0,du if at start of buffer  006125 0a 006133 6010 00 200 tnz tpw1  006126 aa 000001 2350 13 201 lda 1,3 fill in header  006127 0a 007060 7550 00 202 sta tpbuf with id 006130 aa 000002 2350 03 203 lda 2,du  006131 0a 007061 7550 00 204 sta tpbuf+1  006132 aa 000002 6200 00 205 eax0 2 next header at word 2  206  207 " Strip trailing zeroes from the data.  208  006133 aa 000000 6360 17 209 tpw1: eaq 0,7 length in QU 006134 aa 000006 4020 07 210 mpy =6,dl compute 6-bit character length  006135 aa 0 00000 1655 40 211 tctr (pr,rl) search backward for non-zero word  006136 aa 400000 020002 212 desc6a xs1|0,qu ..  006137 0a 007001 0000 00 213 arg tctable ..  006140 0a 006767 0000 00 214 arg tptemp .. 215  006141 0a 006767 2360 00 216 ldq tptemp get tally to non-zero character  006142 0a 011335 3760 00 217 anq =o77777777 mask the tally  006143 0a 011336 5060 00 218 div =-6 get word tally and complement 006144 aa 000001 6270 06 219 eax7 1,ql place in X7 and round to nearest even  006145 0a 006755 0670 00 220 adx7 tplenq subtract from original length 006146 aa 777776 3670 03 221 anx7 =o777776,du round 006147 0a 006754 7470 00 222 stx7 tplen save length with stripped zeroes  223  224 " Set logical header and copy data. 225  006150 0a 007061 4470 10 226 sxl7 tpbuf+1,0 set data length in header  227  006151 aa 000001 2350 13 228 tpw3: lda 1,3 set id in log header 006152 0a 007060 7550 10 229 sta tpbuf,0  006153 0a 006767 7410 00 230 stx1 tptemp save current data offset  006154 aa 000002 6270 10 231 eax7 2,0 will rest of data fit in this phy rec?  006155 0a 006754 0670 00 232 adx7 tplen compute next buffer index  006156 0a 006767 1670 00 233 sbx7 tptemp sub off what is done  006157 aa 002000 1070 03 234 cmpx7 tpn,du is it larger than tape record?  006160 0a 006162 6040 00 235 tmi *+2 tra if no 006161 aa 002000 6270 00 236 eax7 tpn set index to fill rest of phy rec  006162 0a 007061 7470 10 237 stx7 tpbuf+1,0 store index to next header 238  006163 aa 000002 6200 10 239 eax0 2,0 skip over header info  006164 0a 006771 7400 00 240 stx0 tpcopyl store current index  006165 0a 006771 1470 00 241 ssx7 tpcopyl subtract from next index 006166 0a 006200 6000 00 242 tze tpwc0 if zero, avoid IPR fault  243  006167 0a 006771 2350 00 244 lda tpcopyl word count to copy in AU  006170 aa 000002 7350 00 245 als 2 get character count 006171 aa 000000 6270 01 246 eax7 0,au in X7  006172 aa 000000 6350 10 247 eaa 0,0 buffer offset in AU  006173 aa 000000 6360 11 248 eaq 0,1 data offset in QU 006174 aa 000002 7370 00 249 lls 2 compute character offsets  006175 aa 0 00041 1005 42 250 mlr (pr,rl,qu),(rl,au) copy the data into buffer  006176 aa 400000 000017 251 desc9a xs1|0,x7  006177 0a 007060 000017 252 desc9a tpbuf,x7  253  006200 0a 006771 0600 00 254 tpwc0: adx0 tpcopyl bump buffer index and  006201 0a 006771 0610 00 255 adx1 tpcopyl data index by amount copied  256  257 " If more data, then write out this record and proceed. 258 " Otherwise, go get next queue entry.  259  006202 aa 002000 1000 03 260 cmpx0 tpn,du if buffer not full  006203 0a 006120 6010 00 261 tnz tpwql go get more 262  006204 0a 006243 7020 00 263 tsx2 tpwrit write record  264  006205 aa 000000 6200 00 265 eax0 0 reset buffer pointer  006206 0a 006754 1010 00 266 cmpx1 tplen if all of log record  006207 0a 006120 6050 00 267 tpl tpwql go get more 268  006210 0a 007061 4410 00 269 sxl1 tpbuf+1 set current data offset in header  006211 0a 006151 7100 00 270 tra tpw3 and copy more data  271  272 " 273 " End of logical or physical tape.  274  006212 275 tpweot: 006212 aa 000000 6350 10 276 eaa 0,0 current buffer offset in AU  006213 aa 000000 5310 00 277 neg 0 subtract from buffer length 006214 aa 002000 6350 01 278 eaa tpn,au to get remaining length  006215 0a 006223 6000 00 279 tze tpwlast avoid IPR on zero length  006216 aa 000000 6360 10 280 eaq 0,0 buffer offset in QU  006217 aa 000002 7370 00 281 lls 2 get character count and offset  006220 aa 777042 1004 00 282 mlr (),(rl,qu),fill(777) pad rest of record with 1's  006221 0a 006221 000000 283 desc9a *,0 006222 0a 007060 000001 284 desc9a tpbuf,au  285  006223 0a 006243 7020 00 286 tpwlast: tsx2 tpwrit write out last record 287  288  006224 289 tpreot: " Done with tape, unload it unless it is the last.  290  006224 0a 006750 2340 00 291 szn tpfin Zero if tape full, not if closing out last tape.  006225 0a 006235 6010 00 292 tnz tpnorwun  293  006226 0a 006773 2350 00 294 lda tpdevt Check the device type to make sure we don't try to unload one we can't 006227 aa 000017 3750 07 295 ana =o17,dl  006230 0a 000072 2350 05 296 lda fs_dev.media_removable-1,al  006231 0a 006235 6000 00 297 tze tpnorwun  298  006232 0a 006677 7020 00 299 tsx2 dotape Rewind and unload the tape, expecting another.  006233 aa 000000 000072 300 oct 72 006234 0a 006235 7100 00 301 tra *+1  302  006235 aa 000010 2350 07 303 tpnorwun: lda tpeot,dl get EOT flag  006236 aa 000000 2550 13 304 orsa 0,3 set in queue entry  305  006237 0a 006747 4500 00 306 stz tprunning tape no longer connected  006240 0a 006476 7020 00 307 tsx2 tpret wait for new open call 308  006241 0a 006750 4500 00 309 stz tpfin let endtape return  006242 0a 006476 7100 00 310 tra tpret  311  312 "  006243 0a 006256 7420 00 313 tpwrit: stx2 tpwx2 here to write a record  314  006244 0a 006757 4500 00 315 tpwrag: stz tpct reset count of tries to write 316  006245 0a 006624 7020 00 317 tsx2 tpnextrec set sector address of next record  318  006246 aa 012272 7020 00 319 tprewt: tsx2 connect_iom start io  006247 00 007022 007024 320 zero tppcw,tpsidcw 321  006250 0a 006747 7500 00 322 stc2 tprunning set state  006251 0a 006476 7020 00 323 tsx2 tpret 324  006252 0a 006257 7100 00 325 tra tpwbad retry io errors  006253 0a 006246 7100 00 326 tra tprewt retry no tape  327  006254 0a 006751 2340 00 328 szn tpeotsw end of disk?  006255 0a 006224 6010 00 329 tnz tpreot if so, stop here  330  006256 0a 006256 7100 00 331 tpwx2: tra *  332  006257 0a 006757 0540 00 333 tpwbad: aos tpct count another try 006260 0a 006757 2350 00 334 lda tpct check for 5 tries  006261 aa 000005 1150 07 335 cmpa 5,dl ..  006262 0a 006246 6040 00 336 tmi tprewt keep trying  337  006263 0a 006751 2340 00 338 szn tpeotsw end of disk?  006264 0a 006224 6010 00 339 tnz tpreot if so, stop trying 006265 0a 006244 7100 00 340 tra tpwrag try to write next record  341  342 " 343  344 " tsx2 opentape(r/w) to open tape  345 " zero queue  346 " zero tapeno  347  006266 348 opentaper_: 006266 0a 006623 7500 00 349 stc2 setrtn set return from setape  006267 0a 006554 7100 00 350 tra setape setup for tape operation  351  006270 aa 250000 2350 03 352 lda =o250000,du get read command  006271 0a 007026 7510 40 353 stca tprwidcw,40 set IDCW  354  006272 aa 002000 6200 00 355 eax0 tpn initialize buffer index to force tape read  356  006273 0a 006276 6220 00 357 eax2 tpr0 set return loc for subroutine  006274 0a 006644 7100 00 358 tra tpqtest go get first queue entry  359  360 "  361 " Proceed to next queue entry.  362  006275 0a 006641 7020 00 363 tprql: tsx2 tpnextq get next queue entry  006276 0a 006224 7100 00 364 tpr0: tra tpreot end of tape return  365  366 " Search for correct logical record.  367  006277 aa 002000 1000 03 368 tprsl: cmpx0 tpn,du if through record, get another 006300 0a 006302 6040 00 369 tmi *+2 ..  006301 0a 006365 7020 00 370 tsx2 tprd ..  371  006302 0a 007060 2350 10 372 lda tpbuf,0 pick up ID  006303 0a 006224 6040 00 373 tmi tpreot test for end of tape  006304 aa 000001 1150 13 374 cmpa 1,3 is this correct ID?  006305 0a 006314 6040 00 375 tmi tpnid if not far enough, search more  006306 0a 006362 6054 00 376 tpnz tprfatal if too far, record is lost  377  006307 aa 000000 1000 03 378 cmpx0 0,du at beginning of physical record?  006310 0a 006316 6010 00 379 tnz tpr2 if not, go set length  006311 0a 007061 2270 00 380 ldx7 tpbuf+1 X7 = 2 => not a continuation record  006312 aa 000002 1070 03 381 cmpx7 2,du must not have a continuation record here  006313 0a 006362 6010 00 382 tnz tprfatal ..  383  006314 0a 007061 2200 10 384 tpnid: ldx0 tpbuf+1,0 go to next header  006315 0a 006277 7100 00 385 tra tprsl ..  386  387 " Set length of logical record. 388  006316 0a 007061 7270 10 389 tpr2: lxl7 tpbuf+1,0 set length  006317 0a 006754 7470 00 390 stx7 tplen 006320 aa 000000 6210 00 391 eax1 0 and index  392  393 " Copy data from tape record. When finished, pad copied data with zeroes.  394  006321 0a 007061 2270 10 395 tprcpy: ldx7 tpbuf+1,0 copy data from tpbuf  006322 aa 000002 6200 10 396 eax0 2,0 skip over header info  006323 0a 006771 7400 00 397 stx0 tpcopyl store current index  006324 0a 006771 1470 00 398 ssx7 tpcopyl subtract from next index 399  006325 0a 006755 2350 00 400 lda tplenq remaining data length in AU  006326 0a 006771 2360 00 401 ldq tpcopyl length to copy in QU  006327 aa 000002 7370 00 402 lls 2 compute character lengths  006330 aa 000000 6260 01 403 eax6 0,au target length in X6 006331 aa 000000 6270 02 404 eax7 0,qu source length in X7 405  006332 aa 000000 6350 10 406 eaa 0,0 get buffer offset 006333 aa 000000 6360 11 407 eaq 0,1 and data offset  006334 aa 000002 7370 00 408 lls 2 compute character offsets  409  006335 0a 006771 0600 00 410 adx0 tpcopyl bump buffer index  006336 0a 006771 0610 00 411 adx1 tpcopyl and data index  006337 0a 006754 1010 00 412 cmpx1 tplen is this the last copy?  006340 0a 006342 6050 00 413 tpl *+2 tra if so 006341 aa 000000 6260 17 414 eax6 0,7 if not, don't pad the data  006342 aa 000000 1060 03 415 cmpx6 0,du are we copying anything?  006343 0a 006351 6000 00 416 tze tprc0 if not, avoid IPR fault 417  006344 aa 000142 1004 41 418 mlr (rl,au),(pr,rl,qu),fill(0) copy and pad  006345 0a 007060 000017 419 desc9a tpbuf,x7  006346 aa 400000 000016 420 desc9a xs1|0,x6  421  006347 0a 006771 3350 00 422 lca tpcopyl get length copied 006350 0a 006755 0550 00 423 asa tplenq subtract from remaining data length  424  006351 0a 006754 1010 00 425 tprc0: cmpx1 tplen have we transferred all data?  006352 0a 006275 6050 00 426 tpl tprql yes. get next queue entry  427  428 " Read and check continuation record.  429  006353 0a 006365 7020 00 430 tsx2 tprd read the next physical record  431  006354 aa 000001 1150 13 432 cmpa 1,3 correct ID?  006355 0a 006362 6010 00 433 tnz tprfatal no, fatal error  434  006356 0a 007061 7270 00 435 lxl7 tpbuf+1 get offset of first word 006357 0a 006767 7470 00 436 stx7 tptemp ..  006360 0a 006767 1010 00 437 cmpx1 tptemp check against desired offset 006361 0a 006321 6000 00 438 tze tprcpy offset good. copy the data  439  440 " Fatal error. Mark failure in queue entry.  441  006362 aa 000001 2350 07 442 tprfatal: lda tpstat,dl get tape error flag  006363 aa 000000 2550 13 443 orsa 0,3 insert in queue entry flags  006364 0a 006275 7100 00 444 tra tprql and get next queue entry  445  446 " 447 " Read and Check Tape Record.  448  006365 0a 006403 7420 00 449 tprd: stx2 tprx2 save X2  450  006366 0a 006757 4500 00 451 tpag1: stz tpct clear count of tries  452  006367 0a 006751 2340 00 453 szn tpeotsw have we finished with last record?  006370 0a 006224 6010 00 454 tnz tpreot if so, quit  455  006371 0a 006624 7020 00 456 tsx2 tpnextrec set sector address for next record 457  006372 aa 012272 7020 00 458 tpcon: tsx2 connect_iom start read  006373 00 007022 007024 459 zero tppcw,tpsidcw 460  006374 0a 006747 7500 00 461 stc2 tprunning 006375 0a 006476 7020 00 462 tsx2 tpret set state to reading data  463  006376 0a 006405 7100 00 464 tra tpag2 try again on bad read  006377 0a 006372 7100 00 465 tra tpcon retry if not ready  466  006400 0a 007060 2350 00 467 lda tpbuf get first logical ID  006401 0a 006224 6040 00 468 tmi tpreot if negative, end of tape  006402 aa 000000 6200 00 469 eax0 0 reset index to first logical header  470  006403 0a 006403 6220 00 471 tprx2: eax2 * restore X2  006404 aa 000000 7100 12 472 tra 0,2 and return to caller  473  474  006405 0a 006757 0540 00 475 tpag2: aos tpct count another try  006406 0a 006757 2350 00 476 lda tpct count tries  006407 aa 000005 1150 07 477 cmpa 5,dl too many?  006410 0a 006372 6040 00 478 tmi tpcon if not, try again  006411 0a 006366 7100 00 479 tra tpag1 if so, go to next record  480  481 " 482 " tsx2 runtape to keep tape moving 483  006412 0a 006467 7420 00 484 runtape_: stx2 tprunx2 save callers regs  006413 0a 006747 2340 00 485 szn tprunning tape connected? 006414 0a 006421 6000 00 486 tze tpstatp if not, skip check_status call  487  006415 aa 012274 7020 00 488 tsx2 check_status  006416 0a 011337 0000 00 489 arg =0 006417 0a 006421 7100 00 490 tra *+2  006420 0a 006421 7100 00 491 tra *+1  492  006421 0a 006760 2350 00 493 tpstatp: lda tpstatus get saved status 006422 0a 006761 1150 00 494 cmpa tpoldstatus has it changed?  006423 0a 006467 6000 00 495 tze tprunx2 if not, don't print it  006424 0a 006761 7550 00 496 sta tpoldstatus save for comparison  497  006425 aa 012241 7020 00 498 tsx2 erpt print error status  006426 aa 030 156 144 151 499 acc 'ndisk: disk status = ^w.' 006427 aa 163 153 072 040 006430 aa 144 151 163 153 006431 aa 040 163 164 141 006432 aa 164 165 163 040 006433 aa 075 040 136 167 006434 aa 056 000 000 000 006435 0a 006760 0000 00 500 arg tpstatus  501  006436 0a 006762 2350 00 502 lda tpdetail convert detailed status to hex  006437 aa 012304 7020 00 503 tsx2 hexwd 006440 0a 006764 7550 00 504 sta tphex  006441 0a 006762 2370 00 505 ldaq tpdetail  006442 aa 000030 7370 00 506 lls 24 006443 aa 012304 7020 00 507 tsx2 hexwd 006444 0a 006765 7550 00 508 sta tphex+1  006445 0a 006763 2360 00 509 ldq tpdetail+1 006446 aa 000060 7370 00 510 lls 48 006447 aa 012304 7020 00 511 tsx2 hexwd 006450 0a 011340 2750 00 512 ora =h0000 "  006451 0a 006766 7550 00 513 sta tphex+2  514  006452 aa 012241 7020 00 515 tsx2 erpt print detailed status  006453 aa 040 156 144 151 516 acc 'ndisk: detailed status = ^g^g^g.' 006454 aa 163 153 072 040 006455 aa 144 145 164 141 006456 aa 151 154 145 144 006457 aa 040 163 164 141 006460 aa 164 165 163 040 006461 aa 075 040 136 147 006462 aa 136 147 136 147 006463 aa 056 000 000 000 006464 0a 006764 0000 00 517 arg tphex  006465 0a 006765 0000 00 518 arg tphex+1  006466 0a 006766 0000 00 519 arg tphex+2  520  006467 0a 006467 6220 00 521 tprunx2: eax2 * 006470 0a 006747 2340 00 522 szn tprunning tape running now?  006471 aa 000000 6010 12 523 tnz 0,2 if so, return to caller  524  006472 0a 007050 7530 00 525 sreg tphisreg  006473 0a 007040 0730 00 526 lreg tpmyreg load mine  006474 0a 006746 2220 00 527 ldx2 tpstate and tra to state prog  006475 aa 000000 7100 12 528 tra 0,2 at run entry  529  530  531  006476 0a 006746 7420 00 532 tpret: stx2 tpstate remember where we were 006477 0a 007040 7530 00 533 sreg tpmyreg here to return, save my regs 006500 0a 007050 0730 00 534 lreg tphisreg and load theirs 006501 aa 000000 7100 12 535 tra 0,2  536  537 " 538  539 " ldaq status  540 " tsx2 tpint to deliver status  541  006502 542 tpint:  006502 0a 006747 2140 00 543 sznc tprunning tape connected?  006503 aa 000000 6000 12 544 tze 0,2 if not, must be spurious call 545  006504 0a 007050 7530 00 546 sreg tphisreg save callers machine  006505 0a 007040 0730 00 547 lreg tpmyreg restore mine 006506 0a 006746 2220 00 548 ldx2 tpstate  006507 0a 007054 2350 00 549 lda tphisreg+4 get status  006510 0a 011341 3150 00 550 cana =o370000770000 Check for all bad status.  006511 0a 006515 6010 00 551 tnz tperr If bad, analyze error.  006512 0a 006760 4500 00 552 stz tpstatus Clear old status.  006513 0a 006761 4500 00 553 stz tpoldstatus .. 006514 aa 000002 7100 12 554 tra 2,2 Report normal termination.  555  006515 0a 006760 7550 00 556 tperr: sta tpstatus save  006516 aa 012277 7020 00 557 tsx2 xio_wait read detailed status  006517 0a 006762 000200 558 vfd 18/tpdetail,12/2  006520 0a 006756 000022 559 zero tpchanno,18  006521 0a 006522 7100 00 560 tra *+1  561  006522 0a 006746 2220 00 562 ldx2 tpstate state in X2 again  006523 0a 006760 2350 00 563 lda tpstatus status in A  006524 aa 000000 6360 01 564 eaq 0,au Major status in QU.  006525 aa 000014 7720 00 565 qrl 12 Right-justify in QU.  006526 aa 000037 3760 03 566 anq =o37,du Mask major status and power bit.  006527 0a 006530 7100 02 567 tra tpdisp,qu Dispatch on major status.  568  006530 0a 006551 7100 00 569 tpdisp: tra tpbio 0: IOM channel or central error 006531 0a 006553 7100 00 570 tra tpatt 1: device busy 006532 0a 006553 7100 00 571 tra tpatt 2: device attention  006533 0a 006551 7100 00 572 tra tpbio 3: device data alert  006534 0a 006551 7100 00 573 tra tpbio 4: end of file 006535 0a 006551 7100 00 574 tra tpbio 5: command reject  006536 0a 006551 7100 00 575 tra tpbio 6: 006537 0a 006551 7100 00 576 tra tpbio 7: 006540 0a 006551 7100 00 577 tra tpbio 10: 006541 0a 006551 7100 00 578 tra tpbio 11: 006542 0a 006551 7100 00 579 tra tpbio 12: MPC device attention  006543 0a 006551 7100 00 580 tra tpbio 13: MPC device data alert  006544 0a 006551 7100 00 581 tra tpbio 14: 006545 0a 006551 7100 00 582 tra tpbio 15: MPC command reject  006546 0a 006551 7100 00 583 tra tpbio 16: 006547 0a 006551 7100 00 584 tra tpbio 17: 006550 0a 006553 7100 00 585 tra tpatt 20: peripheral absent or power off  586  006551 0a 006770 0540 00 587 tpbio: aos tperrors count errors  006552 aa 000000 7100 12 588 tra 0,2 take error return 589  006553 aa 000001 7100 12 590 tpatt: tra 1,2 Retry operation.  591  592 " 593 " Utility subroutines.  594  595 " tsx2 setape to set up PCW and IDCW's.  596  006554 aa 000002 6220 12 597 setape: eax2 2,2 change return loc 006555 0a 007050 7530 00 598 sreg tphisreg save registers  599  006556 aa 777776 2230 12 600 ldx3 -2,2 get queue pointer in X3 601  006557 aa 777777 2350 32 602 lda -1,2* get tape # in A 006560 0a 006753 7550 00 603 sta tapeno fill tape number into pcw's  006561 aa 000022 7350 00 604 als 18 but first place in devt word  006562 0a 006773 7550 00 605 sta tpdevt .. 006563 aa 000006 7350 00 606 als 6  006564 0a 007022 7510 20 607 stca tppcw,20  006565 0a 007024 7510 20 608 stca tpsidcw,20  006566 0a 007026 7510 20 609 stca tprwidcw,20  006567 0a 007030 7510 20 610 stca tpdidcw,20  611  006570 0a 006750 4500 00 612 stz tpfin clear flags 006571 0a 006751 4500 00 613 stz tpeotsw  006572 0a 006770 4500 00 614 stz tperrors Clear error count.  615  006573 aa 012276 7020 00 616 tsx2 get_status_interrupt reset status handler routine  006574 0a 011337 0000 10 617 arg =0,0  618  006575 0a 006772 2350 00 619 lda tpsubsys get subsystem name  006576 aa 012305 7020 00 620 tsx2 find_disk get subsystem info 006577 0a 006773 0000 00 621 arg tpdevt 006600 0a 006752 7100 20 622 tra tperret,*  623  006601 aa 012236 2350 20 624 lda disk_brief,* get brief switch setting  006602 0a 006776 7550 00 625 sta tpsvbf and save it  006603 aa 012236 7500 20 626 stc2 disk_brief,* suppress disk error messages 006604 0a 006777 7500 00 627 stc2 tpqfirst set first query switch  628  006605 0a 011060 7020 00 629 tprdy: tsx2 query_disk see if disk is storage system volume 006606 0a 006773 0000 00 630 arg tpdevt 006607 0a 006731 7100 00 631 tra tpnotrdy  006610 0a 006612 7100 00 632 tra *+2 if not, proceed  006611 0a 006752 7100 20 633 tra tperret,* if so, take error return  634  006612 0a 006776 2350 00 635 lda tpsvbf restore brief switch setting  006613 aa 012236 7550 20 636 sta disk_brief,* ..  637  006614 0a 006773 7270 00 638 lxl7 tpdevt get device type in X7 006615 aa 000017 3670 03 639 anx7 =o17,du ..  006616 aa 012232 2350 77 640 lda rec_per_dev_list,*7 get number of records on device  006617 aa 000001 1750 07 641 sba 1,dl compute last record  006620 0a 006774 7550 00 642 sta tprecno start with last record on device  643  006621 aa 012276 7020 00 644 tsx2 get_status_interrupt Run "interrupt" driven for faster response. 006622 00 006756 006502 645 zero tpchanno,tpint  646  006623 0a 006623 7100 00 647 setrtn: tra * return to caller 648  649 " 650  651 " tsx2 tpnextrec to set next record number 652  006624 0a 006640 7420 00 653 tpnextrec:stx2 tpnxrx2 save X2 654  006625 0a 006774 2350 00 655 lda tprecno get next record number  006626 aa 012216 7020 00 656 tsx2 mulbos convert to sector address 006627 0a 006773 0000 00 657 arg tpdevt 006630 0a 006630 7100 00 658 tra * stop on error  006631 aa 000014 7710 00 659 arl 12 sector address in A(12-35) 006632 0a 007000 7510 17 660 stca tpsect,17 place in seek address word 661  006633 0a 006774 2350 00 662 lda tprecno decrement record number  006634 aa 000001 1750 07 663 sba 1,dl ..  006635 0a 006774 7550 00 664 sta tprecno ..  006636 0a 006640 6054 00 665 tpnz *+2 if at first record,  006637 0a 006751 5540 00 666 stc1 tpeotsw set EOT flag 667  006640 0a 006640 7100 00 668 tpnxrx2: tra * return to caller  669  670 " 671 " tsx2 tpnextq to discard current queue and get next entry 672  006641 aa 000002 2350 07 673 tpnextq: lda tpdone,dl finish with current queue entry 006642 aa 000000 2550 13 674 orsa 0,3 turn on done bit 675  006643 aa 000000 2230 13 676 ldx3 0,3 step to next queue entry 006644 aa 000000 2350 13 677 tpqtest: lda 0,3 get flags 006645 aa 000002 3150 07 678 cana tpdone,dl anything to do?  006646 0a 006656 6000 00 679 tze tpnd if so, go to it  680  006647 0a 006750 2340 00 681 szn tpfin finished with tape? 006650 aa 000000 6010 12 682 tnz 0,2 if so, take end of tape return  683  006651 0a 006654 7420 00 684 stx2 tpnqx2 save X2  006652 0a 006747 4500 00 685 stz tprunning set state to waiting  006653 0a 006476 7020 00 686 tsx2 tpret and wait for more work 687  006654 0a 006654 6220 00 688 tpnqx2: eax2 * run call, restore X2  006655 0a 006644 7100 00 689 tra tpqtest see if more work to do  690  006656 aa 000004 3150 07 691 tpnd: cana tpskip,dl skip this queue entry?  006657 0a 006641 6010 00 692 tnz tpnextq if so, go get another one 693  006660 aa 000001 2750 07 694 ora tpstat,dl turn off error bit  006661 aa 000001 6750 07 695 era tpstat,dl ..  006662 aa 000000 7550 13 696 sta 0,3 store flags back in queue entry  697  006663 aa 000002 2270 13 698 ldx7 2,3 get segment # and offset 006664 aa 000000 6350 17 699 eaa 0,7 segment # in A (0-2)  006665 aa 077777 3670 03 700 anx7 =o77777,du mask the offset  006666 aa 000017 7710 00 701 arl 15 right-justify segment # in AU  006667 aa 000000 3310 01 702 easp xs1,0,au pr 4 -> data segment  006670 aa 000000 3300 17 703 eawp xs1,0,7 ..  704  006671 aa 000002 7270 13 705 lxl7 2,3 get length from queue  006672 aa 000001 6270 17 706 eax7 1,7 round to next even  006673 aa 777776 3670 03 707 anx7 =o777776,du ..  006674 0a 006755 7470 00 708 stx7 tplenq save data length  709  006675 aa 000000 6210 00 710 eax1 0 reset data index  006676 aa 000001 7100 12 711 tra 1,2 return to caller  712  713  714 " 715 " tsx2 dotape to perform non-data transfer operation  716 " oct command  717 " tra error 718  006677 0a 006711 7420 00 719 dotape: stx2 dx 006700 aa 000000 2350 12 720 lda 0,2  006701 aa 000036 7350 00 721 als 30 fill in command  006702 0a 007030 7510 40 722 stca tpdidcw,40  006703 aa 012272 7020 00 723 domore: tsx2 connect_iom start oper 006704 00 007022 007030 724 zero tppcw,tpdidcw 725  006705 0a 006747 7500 00 726 stc2 tprunning 006706 0a 006476 7020 00 727 tsx2 tpret wait for status  728  006707 0a 006713 7100 00 729 tra dobad  006710 0a 006703 7100 00 730 tra domore 731  006711 0a 006711 6220 00 732 dx: eax2 *  006712 aa 000002 7100 12 733 tra 2,2  734  006713 0a 006711 2220 00 735 dobad: ldx2 dx  006714 aa 000001 7100 12 736 tra 1,2  737  738 " 739  006715 740 tpconferr:  006715 aa 012241 7020 00 741 tsx2 erpt  006716 aa 046 156 144 151 742 acc "ndisk: Cannot get disk channel number."  006717 aa 163 153 072 040 006720 aa 103 141 156 156 006721 aa 157 164 040 147 006722 aa 145 164 040 144 006723 aa 151 163 153 040 006724 aa 143 150 141 156 006725 aa 156 145 154 040 006726 aa 156 165 155 142 006727 aa 145 162 056 000 006730 0a 006752 7100 20 743 tra tperret,*  744  745  006731 746 tpnotrdy:  006731 0a 006777 2140 00 747 sznc tpqfirst first time? 006732 0a 006605 6000 00 748 tze tprdy if not, keep trying 749  006733 aa 012241 7020 00 750 tsx2 erpt ask operator to ready disk  006734 aa 032 156 144 151 751 acc "ndisk: please ready ^a ^d."  006735 aa 163 153 072 040 006736 aa 160 154 145 141 006737 aa 163 145 040 162 006740 aa 145 141 144 171 006741 aa 040 136 141 040 006742 aa 136 144 056 000 006743 0a 006772 0000 00 752 arg tpsubsys  006744 0a 006753 0000 00 753 arg tapeno 754  006745 0a 006605 7100 00 755 tra tprdy now, try again  756  757  758 " 759 " Storage and Constants.  760  006746 761 tpstate: bss ,1 last loc'n in ntape package  006747 762 tprunning:bss ,1 non-zero if tape connected  006750 763 tpfin: bss ,1 non-zero to finish up tape  006751 764 tpeotsw: bss ,1 non-zero when EOT reflector encountered  006752 765 tperret: bss ,1 error return  006753 766 tapeno: bss ,1 current tape handler #  006754 767 tplen: bss ,1 length of logical record on tape 006755 768 tplenq: bss ,1 length of logical record from queue 006756 769 tpchanno: bss ,1 tape channel #  006757 770 tpct: bss ,1 # of records skipped reading  006760 771 tpstatus: bss ,1  006761 772 tpoldstatus:  006761 773 bss ,1 774 even  006762 775 tpdetail: bss ,2  006764 776 tphex: bss ,3  006767 777 tptemp: bss ,1  006770 778 tperrors: bss ,1 count of errors on tape  006771 779 tpcopyl: bss ,1 # of words to copy 006772 780 tpsubsys: bss ,1 disk subsystem name  006773 781 tpdevt: bss ,1 devt word  006774 782 tprecno: bss ,1 current record number on disk  006775 783 tprtemp: bss ,1 temporary for record calculation  006776 784 tpsvbf: bss ,1 place to save brief switch  006777 785 tpqfirst: bss ,1 non-zero on first query  786  007000 aa 002000 000000 787 tpsect: vfd 12/tpn/64,24/0 sector address for seek  788  789  007001 aa 000001 001001 790 tctable: vfd 9/0,9/1,9/1,9/1 table to stop tct on non-zero character  007002 aa 001001 001001 791 vfd 9/1,9/1,9/1,9/1  007003 aa 001001 001001 792 vfd 9/1,9/1,9/1,9/1  007004 aa 001001 001001 793 vfd 9/1,9/1,9/1,9/1  007005 aa 001001 001001 794 vfd 9/1,9/1,9/1,9/1  007006 aa 001001 001001 795 vfd 9/1,9/1,9/1,9/1  007007 aa 001001 001001 796 vfd 9/1,9/1,9/1,9/1  007010 aa 001001 001001 797 vfd 9/1,9/1,9/1,9/1  007011 aa 001001 001001 798 vfd 9/1,9/1,9/1,9/1  007012 aa 001001 001001 799 vfd 9/1,9/1,9/1,9/1  007013 aa 001001 001001 800 vfd 9/1,9/1,9/1,9/1  007014 aa 001001 001001 801 vfd 9/1,9/1,9/1,9/1  007015 aa 001001 001001 802 vfd 9/1,9/1,9/1,9/1  007016 aa 001001 001001 803 vfd 9/1,9/1,9/1,9/1  007017 aa 001001 001001 804 vfd 9/1,9/1,9/1,9/1  007020 aa 001001 001001 805 vfd 9/1,9/1,9/1,9/1  806 " 807 " DCW Lists and Tape Buffers.  007021 aa 000000 0110 03 808 even  007022 aa 400000 720201 809 tppcw: vfd o6/40,6/0,6/0,3/7,3/2,6/2,6/1 reset status (PSIA compat.)  007023 aa 000000 000000 810 vfd 9/*-*  811  007024 aa 340000 720000 812 tpsidcw: vfd o6/34,6/0,6/0,3/7,3/2,6/0,6/0 Seek.  007025 0a 040000 000001 813 vfd 18/tpsect+pgmorg,6/0,12/1 IOTD tpsect,1  007026 aa 250000 700000 814 tprwidcw: vfd o6/25,6/0,6/0,3/7,3/0,6/0,6/0 Read/Write disk.  007027 0a 040060 002000 815 vfd 18/tpbuf+pgmorg,6/0,12/tpn IOTD tpbuf,tpn  816  007030 aa 000000 700201 817 tpdidcw: vfd o6/0,6/0,6/0,3/7,3/0,6/2,6/1 Non-data operation.  007031 aa 000000 700201 818 tpddcw: vfd 6/0,6/0,6/0,3/7,3/0,6/2,6/1 Request status (just in case). 819  007032 aa 000000 0110 03 820 eight  007033 aa 000000 0110 03 007034 aa 000000 0110 03 007035 aa 000000 0110 03 007036 aa 000000 0110 03 007037 aa 000000 0110 03 007040 821 bss tpmyreg,8  007050 822 bss tphisreg,8 823  824  007060 825 bss tpbuf,tpn  826  827  828 include qdisk  6-1 " 6-2 " Begin include file ..... qdisk.incl.alm  6-3 " Created 6/1/76 by Noel I. Morris  6-4 " Modified 10/31/77 by Greenberg for bulk check, time print.  6-5  6-6 " To test if disk is a Multics storage system volume:  6-7 "  6-8 " tsx2 query_disk  6-9 " arg devt  6-10 " tra error 6-11 " tra not_vol  6-12  6-13  011060 6-14 query_disk: 011060 0a 011160 7420 00 6-15 stx2 qdkx2 save X2  6-16  011061 aa 000000 2360 32 6-17 ldq 0,2* get devt 011062 0a 011213 7560 00 6-18 stq qdkdevt and save  011063 aa 000000 6350 06 6-19 eaa 0,ql test for bulk  011064 aa 000017 3750 03 6-20 ana =o17,du  011065 aa 000001 1150 03 6-21 cmpa =1,du 011066 0a 011162 6000 00 6-22 tze qdknv don't hassle it, it's bulk  6-23  011067 aa 000000 6270 06 6-24 eax7 0,ql config deck index in X7 011070 aa 777760 3670 03 6-25 anx7 =o777760,du mask it  011071 aa 6 00001 2351 17 6-26 lda com|DISK_cd.sub,7 get subsystem name  011072 0a 011214 7550 00 6-27 sta qdksubsys and save  6-28  011073 aa 000022 7720 00 6-29 qrl 18 save drive number  011074 aa 000777 3760 07 6-30 anq =o777,dl ..  011075 0a 011215 7560 00 6-31 stq qdkno ..  6-32  6-33  011076 aa 000000 2350 07 6-34 lda 0,dl label is record zero 011077 aa 012216 7020 00 6-35 tsx2 mulbos convert to BOS address  011100 0a 011213 0000 00 6-36 arg qdkdevt ..  011101 0a 011164 7100 00 6-37 tra qdkerr 6-38  011102 0a 011342 3750 00 6-39 ana =o777777770000 mask sector number  011103 0a 011216 7550 00 6-40 sta qdkadr save for next I/O  011104 0a 011343 0350 00 6-41 adla =v24/label.Multics/64,12/1 get sector with label 6-42  011105 aa 012211 7020 00 6-43 tsx2 rdev read the label  011106 0a 011213 0000 00 6-44 arg qdkdevt  011107 0a 011234 0110 00 6-45 nop qdkbuf 011110 0a 011164 7100 00 6-46 tra qdkerr 6-47  011111 aa 000000 1064 00 6-48 cmpc (),() see if Multics volume  011112 0a 011234 000040 6-49 desc9a qdkbuf+label.Multics-label.Multics/64*64,32 011113 0a 011223 000040 6-50 desc9a Multics_label,32  011114 0a 011162 6010 00 6-51 tnz qdknv if not, take not_vol return 6-52  011115 aa 012241 7020 00 6-53 tsx2 erpt print message  011116 aa 052 136 141 040 6-54 acc "^a ^d is Multics storage system volume ^A."  011117 aa 136 144 040 151 011120 aa 163 040 115 165 011121 aa 154 164 151 143 011122 aa 163 040 163 164 011123 aa 157 162 141 147 011124 aa 145 040 163 171 011125 aa 163 164 145 155 011126 aa 040 166 157 154 011127 aa 165 155 145 040 011130 aa 136 101 056 000 011131 0a 011214 0000 00 6-55 arg qdksubsys  011132 0a 011215 0000 00 6-56 arg qdkno  011133 0a 011222 0000 00 6-57 arg qdkdesc  6-58  011134 0a 011216 2350 00 6-59 lda qdkadr get last-use time  011135 0a 011344 0350 00 6-60 adla =v24/label.time_map_updated/64,12/1  6-61  011136 aa 012211 7020 00 6-62 tsx2 rdev  011137 0a 011213 0000 00 6-63 arg qdkdevt  011140 0a 011234 0110 00 6-64 nop qdkbuf 011141 0a 011164 7100 00 6-65 tra qdkerr 6-66  011142 0a 011236 2370 00 6-67 ldaq qdkbuf+label.time_map_updated-label.time_map_updated/64*64  011143 aa 012270 7020 00 6-68 tsx2 cvclock  011144 0a 011220 7570 00 6-69 staq qdktime convert the time 6-70  011145 aa 012241 7020 00 6-71 tsx2 erpt  011146 aa 034 114 141 142 6-72 acc "Label last written at ^g ^g." 011147 aa 145 154 040 154 011150 aa 141 163 164 040 011151 aa 167 162 151 164 011152 aa 164 145 156 040 011153 aa 141 164 040 136 011154 aa 147 040 136 147 011155 aa 056 000 000 000 011156 0a 011220 0000 00 6-73 arg qdktime+0  011157 0a 011221 0000 00 6-74 arg qdktime+1  6-75  6-76  011160 0a 011160 6220 00 6-77 qdkx2: eax2 * restore X2  011161 aa 000003 7100 12 6-78 tra 3,2 take is volume return 6-79  6-80  011162 0a 011160 2220 00 6-81 qdknv: ldx2 qdkx2 restore X2  011163 aa 000002 7100 12 6-82 tra 2,2 disk is not storage system volume 6-83  6-84  011164 0a 011160 2220 00 6-85 qdkerr: ldx2 qdkx2 restore X2  011165 aa 000001 7100 12 6-86 tra 1,2 take error return 6-87  6-88  6-89 " 6-90  6-91 " To ask if disk may be overwritten:  6-92 "  6-93 " tsx2 ask_disk 6-94 " tra no  6-95 "  6-96  011166 0a 011206 7420 00 6-97 ask_disk: stx2 adkx2 save X2  6-98  011167 aa 012241 7020 00 6-99 tsx2 erpt pop the question  011170 aa 037 104 157 040 6-100 acc "Do you wish to write on ^a ^d^g"  011171 aa 171 157 165 040 011172 aa 167 151 163 150 011173 aa 040 164 157 040 011174 aa 167 162 151 164 011175 aa 145 040 157 156 011176 aa 040 136 141 040 011177 aa 136 144 136 147 011200 0a 011214 0000 00 6-101 arg qdksubsys  011201 0a 011215 0000 00 6-102 arg qdkno  011202 0a 011345 0000 00 6-103 arg =h!!????  6-104  011203 aa 012247 7020 00 6-105 tsx2 readtty read the answer  011204 0a 011203 7100 00 6-106 tra *-1 ..  6-107  011205 aa 012200 7020 00 6-108 tsx2 scan scan input  6-109  011206 0a 011206 6220 00 6-110 adkx2: eax2 * restore X2  011207 aa 012040 2350 00 6-111 lda arg get answer  011210 0a 011346 1150 00 6-112 cmpa =h yes yes?  011211 aa 000001 6000 12 6-113 tze 1,2  011212 aa 000000 7100 12 6-114 tra 0,2  6-115  6-116  6-117 " 6-118  011213 6-119 qdkdevt: bss ,1 011214 6-120 qdksubsys:bss ,1  011215 6-121 qdkno: bss ,1  011216 6-122 qdkadr: bss ,1  011217 aa 000000 0110 03 6-123 even  011220 6-124 qdktime: bss ,2 6-125  011222 0a 011255 000040 6-126 qdkdesc: desc9a qdkbuf+label.pv_name-label.pv_name/64*64,32 6-127  011223 6-128 Multics_label:  011223 aa 115 165 154 164 6-129 aci "Multics Storage System Volume",32 011224 aa 151 143 163 040 011225 aa 123 164 157 162 011226 aa 141 147 145 040 011227 aa 123 171 163 164 011230 aa 145 155 040 126 011231 aa 157 154 165 155 011232 aa 145 040 040 040 6-130  011233 aa 000000 0110 03 6-131 even  011234 6-132 qdkbuf: bss ,64 6-133  6-134  6-135 " End of include file ...... qdisk.incl.alm 6-136  829  830 " 831 include fs_vol_label  7-1  7-2  7-3 "BEGIN INCLUDE FILE fs_vol_label.incl.alm  7-4  7-5  7-6 "Created 03/27/82 1422.1 est Sat by convert_include_file, 7-7 " Version of 12/01/81 1540.3 est Tue.  7-8  7-9 "Made from >udd>m>bongo>htd>nsd>include>fs_vol_label.incl.pl1, 7-10 " modified 03/27/82 1421.0 est Sat  7-11  7-12 "  7-13 " Structure label  7-14 "  002000 7-15 equ label_size,1024  7-16  7-17  000000 7-18 equ label.gcos,0  000500 7-19 equ label.Multics,320  000510 7-20 equ label.version,328  000511 7-21 equ label.mfg_serial,329  000521 7-22 equ label.pv_name,337  000531 7-23 equ label.lv_name,345  000541 7-24 equ label.pvid,353 000542 7-25 equ label.lvid,354 000543 7-26 equ label.root_pvid,355  000544 7-27 equ label.time_registered,356 " DOUBLE 000546 7-28 equ label.n_pv_in_lv,358  000547 7-29 equ label.vol_size,359 000550 7-30 equ label.vtoc_size,360  7-31  000551 7-32 equ label.not_used_word,361  400000 7-33 bool label.not_used,400000 " DU  000551 7-34 equ label.private_word,361 200000 7-35 bool label.private,200000 " DU 000551 7-36 equ label.flagpad_word,361 000000 7-37 equ label.flagpad_shift,0  7-38  000552 7-39 equ label.max_access_class,362 " DOUBLE  000554 7-40 equ label.min_access_class,364 " DOUBLE  000556 7-41 equ label.password,366 " DOUBLE  000600 7-42 equ label.time_mounted,384 " DOUBLE  000602 7-43 equ label.time_map_updated,386 " DOUBLE  000604 7-44 equ label.volmap_version,388  000606 7-45 equ label.time_salvaged,390 " DOUBLE  000610 7-46 equ label.time_of_boot,392 " DOUBLE  000612 7-47 equ label.time_unmounted,394 " DOUBLE  000614 7-48 equ label.last_pvtx,396  000617 7-49 equ label.err_hist_size,399  000620 7-50 equ label.time_last_dmp,400 " DOUBLE  000626 7-51 equ label.time_last_reloaded,406 " DOUBLE  000700 7-52 equ label.root,448 " LEVEL 2  7-53  400000 7-54 bool label.here,400000 " DU  7-55  000701 7-56 equ label.root_vtocx,449  000702 7-57 equ label.shutdown_state,450  000704 7-58 equ label.disk_table_vtocx,452 000705 7-59 equ label.disk_table_uid,453  000706 7-60 equ label.esd_state,454  000707 7-61 equ label.volmap_record,455  000710 7-62 equ label.size_of_volmap,456  000711 7-63 equ label.vtoc_map_record,457  000712 7-64 equ label.size_of_vtoc_map,458 000713 7-65 equ label.volmap_unit_size,459 000714 7-66 equ label.vtoc_origin_record,460  000715 7-67 equ label.dumper_bit_map_record,461  000716 7-68 equ label.vol_trouble_count,462  001003 7-69 equ label.nparts,515  001004 7-70 equ label.parts,516 " LEVEL 2 7-71  001004 7-72 equ label.part,516 001005 7-73 equ label.frec,517 001006 7-74 equ label.nrec,518 7-75  7-76 "END INCLUDE FILE fs_vol_label.incl.alm  832  833 include bos_tv 8-1 " 8-2 " Begin include file ...... bos_tv.incl.alm 8-3 " Created in November 1971 by N. I. Morris. 8-4 " Modified 9/9/76 by Noel I. Morris 8-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 8-6 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  8-7 " Modified January 1982 by J. Bongiovanni to add getport_info  8-8 " Modified May 1982 by Sherman D. Sprague to add getmpc.  8-9  8-10 " BOS Utility Package Transfer Vector.  8-11  012000 8-12 equ pagectl,utilorg  012001 8-13 equ line,pagectl+1 012040 8-14 equ arg,line+31  012060 8-15 equ darg,arg+arglen+1  012100 8-16 equ earg,darg+arglen+1 012120 8-17 equ fltscu,earg+arglen+1  8-18  012200 8-19 equ tv_org,utilorg+128 8-20  012200 8-21 equ scan,tv_org+0  012201 8-22 equ arg_count,tv_org+1 012202 8-23 equ nextline,tv_org+2  012203 8-24 equ nlraw,tv_org+3 012204 8-25 equ search,tv_org+4  012205 8-26 equ makefil,tv_org+5  012206 8-27 equ ldcom,tv_org+6 012207 8-28 equ getsec,tv_org+7  012210 8-29 equ cvinit,tv_org+8  012211 8-30 equ rdev,tv_org+9  012212 8-31 equ wdev,tv_org+10 012213 8-32 equ phybos,tv_org+11  012214 8-33 equ bosphy,tv_org+12  012215 8-34 equ phyadd,tv_org+13  012216 8-35 equ mulbos,tv_org+14  012217 8-36 equ bosmul,tv_org+15  012220 8-37 equ lookup_devmodel,tv_org+16  012221 8-38 equ makesdw,tv_org+17  012222 8-39 equ argbos,tv_org+18  012223 8-40 equ argmul,tv_org+19  012224 8-41 equ amdvt,tv_org+20  012225 8-42 equ amfirst,tv_org+21  012226 8-43 equ amlast,tv_org+22  012227 8-44 equ cvnamla,tv_org+23  012230 8-45 equ sect_per_cyl_list,tv_org+24  012231 8-46 equ sect_per_dev_list,tv_org+25  012232 8-47 equ rec_per_dev_list,tv_org+26 012233 8-48 equ amaxio,tv_org+27  012234 8-49 equ rdsec,tv_org+28  012235 8-50 equ wtsec,tv_org+29  012236 8-51 equ disk_brief,tv_org+30  012237 8-52 equ itaper,tv_org+31  012240 8-53 equ itapew,tv_org+32  012241 8-54 equ erpt,tv_org+33 012242 8-55 equ ercv,tv_org+34 012243 8-56 equ erbuf,tv_org+35  012244 8-57 equ type,tv_org+36 012245 8-58 equ ttyinit,tv_org+37  012246 8-59 equ readcd,tv_org+38  012247 8-60 equ readtty,tv_org+39  012250 8-61 equ getprt,tv_org+40  012251 8-62 equ punch,tv_org+41  012252 8-63 equ octwd,tv_org+42  012253 8-64 equ geas,tv_org+43 012254 8-65 equ geastab,tv_org+44  012255 8-66 equ asge,tv_org+45 012256 8-67 equ asgetab,tv_org+46  012257 8-68 equ ljust,tv_org+47  012260 8-69 equ rjust,tv_org+48  012261 8-70 equ bzel,tv_org+49 012262 8-71 equ stripa,tv_org+50  012263 8-72 equ stripg,tv_org+51  012264 8-73 equ getconf,tv_org+52  012265 8-74 equ getmore,tv_org+53  012266 8-75 equ getperiph,tv_org+54  012267 8-76 equ rdclock,tv_org+55  012270 8-77 equ cvclock,tv_org+56  012271 8-78 equ init_io,tv_org+57  012272 8-79 equ connect_iom,tv_org+58  012273 8-80 equ getmpc,tv_org+59  012274 8-81 equ check_status,tv_org+60 012275 8-82 equ get_special_interrupt,tv_org+61  012276 8-83 equ get_status_interrupt,tv_org+62 012277 8-84 equ xio_wait,tv_org+63 012300 8-85 equ initint,tv_org+64  012301 8-86 equ wantflt,tv_org+65  012302 8-87 equ intno,tv_org+66  012303 8-88 equ intrpts1,tv_org+67 012304 8-89 equ hexwd,tv_org+68  012305 8-90 equ find_disk,tv_org+69  012306 8-91 equ find_root,tv_org+70  012307 8-92 equ find_part,tv_org+71  012310 8-93 equ check_status_no_stat,tv_org+72 012311 8-94 equ check_special_status,tv_org+73 012312 8-95 equ check_cpu_type,tv_org+74  012313 8-96 equ getportinfo,tv_org+75  8-97  8-98 " End of include file ...... bos_tv.incl.alm  8-99  834  835 include bos_common 9-1 "  9-2 " Begin include file ...... bos_common.incl.alm 9-3 " Modified on 8/31/76 by N. I. Morris  9-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  9-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 9-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  9-7 " MACHINE CONDITIONS AREA  9-8 " Its length is "storlen". 9-9  000000 9-10 equ amptwregs,0 Ass. Mem PTW registers  000100 9-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 9-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 9-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 9-14 equ ouhist,320 operations hist regs  000700 9-15 equ cuhist,448 control unit hist regs  001100 9-16 equ eishist,576 eis hist regs  001300 9-17 equ aphist,704 appending unit hist regs  001500 9-18 equ prs,832 pointer regs  001520 9-19 equ regs,848 sreg 001530 9-20 equ low_order_port,856 port to read clock from 001532 9-21 equ mctime,858 bootload memory clock  001540 9-22 equ scu,864  001550 9-23 equ mcm,872 memory masks 8 ports 001570 9-24 equ dbr,888  001572 9-25 equ intrpts,890 waiting interrupts 001573 9-26 equ bar,891 bar  001574 9-27 equ modereg,892 processor & cache mode registers  001576 9-28 equ faultreg,894 processor fault register  001600 9-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 9-30 equ coreblocks,904 array of port information  9-31 " Bits 0-17 => num 1st 64-word block  9-32 " Bits 18-35 => num of 64-word blocks  9-33 " (-1) => no mem on this port  001620 9-34 equ lowport_cfg,912 Saved CFG from bootload SCU  9-35  002000 9-36 equ storlen,1024  9-37  9-38  9-39  9-40 " BOS COMMAND DIRECTORY 9-41 " Its length is "dirlen".  9-42  002000 9-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  9-44 " (24-35) => # of sectors in BOS common  002001 9-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 9-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 9-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  9-48 " (24-35) => # of sectors in Multics core image  002004 9-49 equ setuparea,dir+4 Sector and length of setup 002005 9-50 equ utilarea,dir+5 where utility package is kept  002010 9-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 9-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 9-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 9-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 9-55 equ diskchanno,dir+12 channel to be used for disk  002015 9-56 equ tapechanno,dir+13 channel # for tapes  002016 9-57 equ rdrchanno,dir+14 channel number for card reader  002017 9-58 equ ttychanno,dir+15 channel # for operator's tty  002020 9-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 9-60 equ inputsw,dir+17 read from tty, cards, macros  002022 9-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 9-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 9-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 9-64 equ skipsw,dir+21 if on, skip runcom lines 002026 9-65 equ ttypmtsw,dir+22 if on, prompt  002027 9-66 equ curtcmd,dir+23 current bos command 002030 9-67 equ readysw,dir+24 if on, print ready message  002032 9-68 equ cmdlst,dir+26 list of commands 9-69  000600 9-70 equ dirlen,384 9-71  9-72  9-73  9-74 " MACRO BUFFER AREA 9-75  002600 9-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 9-77 equ macroline,macrobuf+64 runcom command line 002716 9-78 equ macroargs,macroline+14 argument descriptors for runcom  9-79  9-80  9-81  9-82 " CONFIGURATION CARD AREA  9-83 " Its length is 2048 words.  9-84  003000 9-85 equ conf,macrobuf+128 start of configuration info  007000 9-86 equ econf,conf+2048 end of configuration info  000020 9-87 equ confl,16 length of each line  9-88  9-89  007000 9-90 equ seg6length,econf length of bos_common area segment 9-91  9-92 " End of include file ...... bos_common.incl.alm  9-93  836  837 end  LITERALS 011334 aa 143150 156154 011335 aa 000077 777777 011336 aa 777777 777772 011337 aa 000000 000000 011340 aa 000000 002020 011341 aa 370000 770000 011342 aa 777777 770000 011343 aa 000000 050001 011344 aa 000000 060001 011345 aa 777717 171717 011346 aa 202020 702562 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 011347 5a 000003 000000 011350 5a 000017 600000 011351 aa 000000 000000 011352 55 000010 000002 011353 5a 000002 400003 011354 55 000006 000010 011355 aa 005 156 144 151 011356 aa 163 153 000 000 011357 55 000002 000003 011360 6a 000000 400002 011361 55 000013 000003 011362 aa 014 163 171 155 symbol_table  011363 aa 142 157 154 137 011364 aa 164 141 142 154 011365 aa 145 000 000 000 DEFINITIONS HASH TABLE  011366 aa 000000 000015 011367 aa 000000 000000 011370 aa 000000 000000 011371 aa 000000 000000 011372 aa 000000 000000 011373 aa 000000 000000 011374 aa 000000 000000 011375 5a 000010 000000 011376 aa 000000 000000 011377 aa 000000 000000 011400 aa 000000 000000 011401 aa 000000 000000 011402 aa 000000 000000 011403 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  011404 aa 000001 000000 011405 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 011347 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 226560 005127 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 000765 000020 aa 000000 000262 000021 aa 000000 000746 000022 aa 000751 000262 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 000012 000066 aa 000136 000026 000067 aa 122721 273063 000070 aa 000000 112272 000071 aa 216066 600000 000072 aa 000144 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000154 000037 000077 aa 122721 272761 000100 aa 000000 112272 000101 aa 214176 200000 000102 aa 000164 000042 000103 aa 077023 320156 000104 aa 000000 107705 000105 aa 376652 600000 000106 aa 000175 000043 000107 aa 074654 553115 000110 aa 000000 107470 000111 aa 740072 400000 000112 aa 000206 000046 000113 aa 043243 125746 000114 aa 000000 103534 000115 aa 053307 400000 000116 aa 000220 000037 000117 aa 047371 352103 000120 aa 000000 104737 000121 aa 511571 200000 000122 aa 000230 000042 000123 aa 110044 377556 000124 aa 000000 111005 000125 aa 417043 600000 000126 aa 000241 000040 000127 aa 110235 072677 000130 aa 000000 111024 000131 aa 524460 600000 000132 aa 000251 000044 000133 aa 121622 277475 000134 aa 000000 112162 000135 aa 321563 400000 000136 aa 076163 160145 >spec>h>3.17>ndisk.alm  000137 aa 143076 150076 000140 aa 063056 061067 000141 aa 076156 144151 000142 aa 163153 056141 000143 aa 154155 040040 000144 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000145 aa 076142 157163 000146 aa 076151 156143 000147 aa 154165 144145 000150 aa 076142 157163 000151 aa 145161 165056 000152 aa 151156 143154 000153 aa 056141 154155 000154 aa 076163 160145 >spec>h>3.17>bos_toequ.incl.alm 000155 aa 143076 150076 000156 aa 063056 061067 000157 aa 076142 157163 000160 aa 137164 157145 000161 aa 161165 056151 000162 aa 156143 154056 000163 aa 141154 155040 000164 aa 076154 144144 >ldd>include>fs_dev_types.incl.alm  000165 aa 076151 156143 000166 aa 154165 144145 000167 aa 076146 163137 000170 aa 144145 166137 000171 aa 164171 160145 000172 aa 163056 151156 000173 aa 143154 056141 000174 aa 154155 040040 000175 aa 076154 144144 >ldd>bos>include>ntape_equ.incl.alm 000176 aa 076142 157163 000177 aa 076151 156143 000200 aa 154165 144145 000201 aa 076156 164141 000202 aa 160145 137145 000203 aa 161165 056151 000204 aa 156143 154056 000205 aa 141154 155040 000206 aa 076154 144144 >ldd>bos>include>config_cards.incl.alm  000207 aa 076142 157163 000210 aa 076151 156143 000211 aa 154165 144145 000212 aa 076143 157156 000213 aa 146151 147137 000214 aa 143141 162144 000215 aa 163056 151156 000216 aa 143154 056141 000217 aa 154155 040040 000220 aa 076154 144144 >ldd>bos>include>qdisk.incl.alm 000221 aa 076142 157163 000222 aa 076151 156143 000223 aa 154165 144145 000224 aa 076161 144151 000225 aa 163153 056151 000226 aa 156143 154056 000227 aa 141154 155040 000230 aa 076154 144144 >ldd>include>fs_vol_label.incl.alm  000231 aa 076151 156143 000232 aa 154165 144145 000233 aa 076146 163137 000234 aa 166157 154137 000235 aa 154141 142145 000236 aa 154056 151156 000237 aa 143154 056141 000240 aa 154155 040040 000241 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000242 aa 076142 157163 000243 aa 076151 156143 000244 aa 154165 144145 000245 aa 076142 157163 000246 aa 137164 166056 000247 aa 151156 143154 000250 aa 056141 154155 000251 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000252 aa 076142 157163 000253 aa 076151 156143 000254 aa 154165 144145 000255 aa 076142 157163 000256 aa 137143 157155 000257 aa 155157 156056 000260 aa 151156 143154 000261 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  20 absi bos_toequ: 75. 11206 adkx2 qdisk: 97, 110.  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. 12040 arg qdisk: 111, 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. 11166 ask_disk qdisk: 97. 1573 bar bos_common: 26. 2 bf bosequ: 9. 12217 bosmul bos_tv: 36. 12214 bosphy bos_tv: 33. 20 bos_dbr bos_toequ: 95. 2012 bos_dvt bos_common: 53. 0 bos_pr bos_toequ: 82. 1 bulkdevt fs_dev_types: 8.  1 BULK_cd.frec config_cards: 30.  2 BULK_cd.nrec config_cards: 31.  52 bulk_dvt fs_dev_types: 32.  12261 bzel bos_tv: 70. 12312 check_cpu_type bos_tv: 95. 12311 check_special_status bos_tv: 94. 12274 check_status ndisk: 488, bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 3 CHNL_cd.chn ndisk: 133, config_cards: 27.  2 CHNL_cd.iom ndisk: 128, 130,  config_cards: 26.  4 CHNL_cd.nchan ndisk: 115, 134,  config_cards: 28.  1 CHNL_cd.sub ndisk: 110, config_cards: 25.  2032 cmdlst bos_common: 68. 6 com ndisk: 110, 115, 130, 133, 134, bosequ: 14, qdisk: 26. 3000 conf bos_common: 85, 86.  20 confl bos_common: 87. 12272 connect_iom ndisk: 319, 458, 723, bos_tv: 79. 2003 corearea bos_common: 47. 1610 coreblocks bos_common: 30. 60000 coresaved bos_toequ: 43, 65.  1 cow bos_toequ: 127. 1000 cowsav bos_toequ: 142. 700 cuhist bos_common: 15. 2027 curtcmd bos_common: 66. 12270 cvclock qdisk: 68, bos_tv: 77. 12210 cvinit bos_tv: 29. 12227 cvnamla bos_tv: 44. 2024 d355_state bos_common: 63. 12060 darg bos_tv: 15, 16.  1570 dbr bos_common: 24. 576 devid bos_toequ: 140. 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. 1003 dirbase bos_toequ: 145. 600 dirlen bos_common: 70, 76.  2014 diskchanno bos_common: 55. 12236 disk_brief ndisk: 624, 626, 636, bos_tv: 51. 3 DISK_cd.chn config_cards: 20.  2 DISK_cd.iom ndisk: 128, config_cards: 19.  5 DISK_cd.model config_cards: 22.  4 DISK_cd.nchan config_cards: 21.  6 DISK_cd.ndrives config_cards: 23.  1 DISK_cd.sub config_cards: 18,  qdisk: 26. 6713 dobad ndisk: 729, 735.  6703 domore ndisk: 723, 730.  6677 dotape ndisk: 299, 719.  0 ds bosequ: 7. 20 dseg bos_toequ: 96. 6 dsu181devt fs_dev_types: 15.  5 dsu190devt fs_dev_types: 14.  4 dsu191devt fs_dev_types: 13.  6711 dx ndisk: 719, 732, 735. 12100 earg bos_tv: 16, 17.  7000 econf bos_common: 86, 90.  1100 eishist bos_common: 16. 6010 endtape ndisk: 82, ntape_equ: 19. 6060 endtape_ ndisk: 83, 148.  12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt ndisk: 154, 161, 498, 515, 741, 750,  qdisk: 53, 71, 99, bos_tv: 54. 1576 faultreg bos_common: 28. 2023 fdump_state bos_common: 62. 5 fgb bosequ: 13. 12305 find_disk ndisk: 123, 620,  bos_tv: 90. 12307 find_part bos_tv: 92. 12306 find_root bos_tv: 91. 2000 firmware_bit bosequ: 20. 12120 fltscu bos_tv: 17. 172 fs_dev.amaxio fs_dev_types: 141.  120 fs_dev.cyl_per_dev fs_dev_types: 83.  64 fs_dev.dev_type_names fs_dev_types: 45.  7 fs_dev.max_dev_type fs_dev_types: 43.  73 fs_dev.media_removable ndisk: 296, fs_dev_types: 54.  40 fs_dev.models fs_dev_types: 18, 29. 52 fs_dev.modelx fs_dev_types: 31.  145 fs_dev.mult_sect_per_cyl fs_dev_types: 114. 12 fs_dev.n_models fs_dev_types: 29.  163 fs_dev.rec_per_dev fs_dev_types: 132.  154 fs_dev.rem_per_cyl fs_dev_types: 123.  127 fs_dev.sect_per_cyl fs_dev_types: 92.  102 fs_dev.sect_per_dev fs_dev_types: 65.  136 fs_dev.sect_per_track fs_dev_types: 101.  111 fs_dev.track_per_cyl fs_dev_types: 74.  12253 geas ndisk: 104, bos_tv: 64. 12254 geastab bos_tv: 65. 12264 getconf ndisk: 108, bos_tv: 73. 12265 getmore ndisk: 111, bos_tv: 74. 12273 getmpc bos_tv: 80. 12266 getperiph bos_tv: 75. 12313 getportinfo bos_tv: 96. 12250 getprt bos_tv: 61. 12207 getsec bos_tv: 28. 12275 get_special_interrupt bos_tv: 82. 12276 get_status_interrupt ndisk: 616, 644,  bos_tv: 83. 12304 hexwd ndisk: 503, 507, 511, bos_tv: 89. 1400 imbx bos_toequ: 67. 12300 initint bos_tv: 85. 6004 inittape ndisk: 70, ntape_equ: 15. 6011 inittape_ ndisk: 71, 98.  12271 init_io bos_tv: 78. 2021 inputsw bos_common: 60. 12302 intno bos_tv: 87. 6056 intpx2 ndisk: 99, 141.  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. 705 label.disk_table_uid fs_vol_label: 59.  704 label.disk_table_vtocx fs_vol_label: 58.  715 label.dumper_bit_map_record fs_vol_label: 67. 617 label.err_hist_size fs_vol_label: 49.  706 label.esd_state fs_vol_label: 60.  0 label.flagpad_shift fs_vol_label: 37.  551 label.flagpad_word fs_vol_label: 36.  1005 label.frec fs_vol_label: 73.  0 label.gcos fs_vol_label: 18.  400000 label.here fs_vol_label: 54.  614 label.last_pvtx fs_vol_label: 48.  542 label.lvid fs_vol_label: 25.  531 label.lv_name fs_vol_label: 23.  552 label.max_access_class fs_vol_label: 39.  511 label.mfg_serial fs_vol_label: 21.  554 label.min_access_class fs_vol_label: 40.  500 label.Multics qdisk: 41, 49,  fs_vol_label: 19.  400000 label.not_used fs_vol_label: 33.  551 label.not_used_word fs_vol_label: 32.  1003 label.nparts fs_vol_label: 69.  1006 label.nrec fs_vol_label: 74.  546 label.n_pv_in_lv fs_vol_label: 28.  1004 label.part fs_vol_label: 72.  1004 label.parts fs_vol_label: 70.  556 label.password fs_vol_label: 41.  200000 label.private fs_vol_label: 35.  551 label.private_word fs_vol_label: 34.  541 label.pvid fs_vol_label: 24.  521 label.pv_name qdisk: 126, fs_vol_label: 22.  700 label.root fs_vol_label: 52.  543 label.root_pvid fs_vol_label: 26.  701 label.root_vtocx fs_vol_label: 56.  702 label.shutdown_state fs_vol_label: 57.  710 label.size_of_volmap fs_vol_label: 62.  712 label.size_of_vtoc_map fs_vol_label: 64.  620 label.time_last_dmp fs_vol_label: 50.  626 label.time_last_reloaded fs_vol_label: 51. 602 label.time_map_updated qdisk: 60, 67,  fs_vol_label: 43.  600 label.time_mounted fs_vol_label: 42.  610 label.time_of_boot fs_vol_label: 46.  544 label.time_registered fs_vol_label: 27.  606 label.time_salvaged fs_vol_label: 45.  612 label.time_unmounted fs_vol_label: 47.  510 label.version fs_vol_label: 20.  707 label.volmap_record fs_vol_label: 61.  713 label.volmap_unit_size fs_vol_label: 65.  604 label.volmap_version fs_vol_label: 44.  547 label.vol_size fs_vol_label: 29.  716 label.vol_trouble_count fs_vol_label: 68.  711 label.vtoc_map_record fs_vol_label: 63.  714 label.vtoc_origin_record fs_vol_label: 66. 550 label.vtoc_size fs_vol_label: 30.  2000 label_size fs_vol_label: 15.  12206 ldcom bos_tv: 27. 12001 line bos_tv: 13, 14.  12257 ljust ndisk: 103, bos_tv: 68. 2000 lnbf bos_toequ: 57, 61, 104. 7000 lncom bos_toequ: 60, 63, 116, 136.  40 lnds bos_toequ: 54, 55, 98. 100 lnflagbox bos_toequ: 52, 113.  777777 lnmem bos_toequ: 45, 119.  27000 lnpgm bos_toequ: 65, 101.  10000 lnsetup bos_toequ: 48, 58, 107. 12220 lookup_devmodel bos_tv: 37. 1620 lowport_cfg bos_common: 34. 1530 low_order_port bos_common: 20. 11 lpwr bos_toequ: 128. 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. 10000 maxw bos_toequ: 72. 1001 mbbasesav bos_toequ: 143. 575 mbxloc bos_toequ: 139. 1550 mcm bos_common: 23. 1532 mctime bos_common: 21. 7 mem bosequ: 15. 1574 modereg bos_common: 27. 4 msu0400devt fs_dev_types: 12.  3 msu0450devt fs_dev_types: 11.  3 msu0451devt fs_dev_types: 10.  2 msu0500devt fs_dev_types: 9.  7 msu0501devt fs_dev_types: 16.  12216 mulbos ndisk: 656, qdisk: 35, bos_tv: 35. 11223 Multics_label qdisk: 50, 128.  1002 mxbasesav bos_toequ: 144. 12202 nextline bos_tv: 23. 12203 nlraw bos_tv: 24. 6000 ntape_org ndisk: 56, ntape_equ: 9, 11, 12, 13, 14, 15, 16, 17, 18, 19.  12252 octwd bos_tv: 63. 6005 opentaper ndisk: 73, ntape_equ: 16. 6266 opentaper_ ndisk: 74, 348.  6006 opentapew ndisk: 76, ntape_equ: 17. 6107 opentapew_ ndisk: 77, 173.  20000 origbf bos_toequ: 58, 61, 103. 22000 origcom bos_toequ: 61, 63, 115, 136.  7740 origds bos_toequ: 55, 97.  10020 origflagbox bos_toequ: 51, 112.  0 origmem bos_toequ: 46, 118.  31000 origpgm bos_toequ: 63, 64, 65, 100.  10000 origsetup bos_toequ: 49, 51, 55, 58, 106. 500 ouhist bos_common: 14. 4000 ovflm bos_toequ: 76. 12000 pagectl bos_tv: 12, 13.  3 PART_cd.drive config_cards: 11.  1 PART_cd.name config_cards: 9.  2 PART_cd.sub config_cards: 10.  0 pcw bos_toequ: 126. 3 pgm bosequ: 10. 31000 pgmorg ndisk: 813, 815,  bos_toequ: 64. 12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 3 PRPH_cd.chn config_cards: 15.  2 PRPH_cd.iom config_cards: 14.  4 PRPH_cd.model config_cards: 16.  1 PRPH_cd.sub config_cards: 13.  1500 prs bos_common: 18. 1600 ptrlen bos_common: 29. 12251 punch bos_tv: 62. 11216 qdkadr qdisk: 40, 59, 122. 11234 qdkbuf qdisk: 45, 49, 64, 67, 126, 132.  11222 qdkdesc qdisk: 57, 126.  11213 qdkdevt qdisk: 18, 36, 44, 63, 119. 11164 qdkerr qdisk: 37, 46, 65, 85.  11215 qdkno qdisk: 31, 56, 102, 121.  11162 qdknv qdisk: 22, 51, 81. 11214 qdksubsys qdisk: 27, 55, 101, 120.  11220 qdktime qdisk: 69, 73, 74, 124.  11160 qdkx2 qdisk: 15, 77, 81, 85.  11060 query_disk ndisk: 629, qdisk: 14. 2020 quietsw bos_common: 59. 12267 rdclock bos_tv: 76. 12211 rdev qdisk: 43, 62,  bos_tv: 30. 2016 rdrchanno bos_common: 57. 12234 rdsec bos_tv: 49. 12246 readcd bos_tv: 59. 12247 readtty qdisk: 105, bos_tv: 60. 2030 readysw bos_common: 67. 12232 rec_per_dev_list ndisk: 640, bos_tv: 47. 1520 regs bos_common: 19. 37 rewpu bos_toequ: 69, 98, 101, 104, 107, 113, 116, 119.  12260 rjust bos_tv: 69. 2 ROOT_cd.drive config_cards: 7.  1 ROOT_cd.sub config_cards: 6.  4000 runcom_bit bosequ: 19. 6007 runtape ndisk: 79, 150,  ntape_equ: 18. 6412 runtape_ ndisk: 80, 484.  12200 scan qdisk: 108, bos_tv: 21. 1540 scu bos_common: 22. 14 scwr bos_toequ: 124. 12204 search bos_tv: 25. 12230 sect_per_cyl_list bos_tv: 45. 12231 sect_per_dev_list bos_tv: 46. 20 seg0 bos_toequ: 97. 22 seg1 bos_toequ: 100. 24 seg2 bos_toequ: 103. 26 seg3 bos_toequ: 106. 30 seg4 bos_toequ: 109. 32 seg5 bos_toequ: 112. 34 seg6 bos_toequ: 115. 7000 seg6length bos_common: 90. 36 seg7 bos_toequ: 118. 6554 setape ndisk: 175, 350, 597. 6623 setrtn ndisk: 174, 349, 647. 2004 setuparea bos_common: 49. 2025 skipsw bos_common: 64. 2 statq bos_toequ: 125. 2000 storlen bos_common: 36. 12262 stripa bos_tv: 71. 12263 stripg bos_tv: 72. 200 swaplen bos_toequ: 137, 139, 140, 141.  2015 tapechanno bos_common: 56. 6753 tapeno ndisk: 603, 753, 766. 6002 taper ndisk: 64, ntape_equ: 13. 6000 taperopen ndisk: 58, ntape_equ: 11. 6003 tapew ndisk: 67, ntape_equ: 14. 6001 tapewopen ndisk: 61, ntape_equ: 12. 7001 tctable ndisk: 213, 790.  1 tmp bosequ: 8. 1000 toelen bos_toequ: 135, 139, 140, 141, 142, 143, 144, 145.  31000 toesaved bos_toequ: 136. 6366 tpag1 ndisk: 451, 479.  6405 tpag2 ndisk: 464, 475.  6553 tpatt ndisk: 570, 571, 585, 590.  6551 tpbio ndisk: 569, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,  583, 584, 587. 7060 tpbuf ndisk: 182, 183, 202, 204, 226, 229, 237, 252, 269, 284, 372, 380,  384, 389, 395, 419, 435, 467, 815, 825.  6756 tpchanno ndisk: 137, 559, 645, 769.  6372 tpcon ndisk: 458, 465, 478. 6715 tpconferr ndisk: 125, 740.  6771 tpcopyl ndisk: 240, 241, 244, 254, 255, 397, 398, 401, 410, 411, 422, 779.  6757 tpct ndisk: 315, 333, 334, 451, 475, 476, 770. 7031 tpddcw ndisk: 818. 6762 tpdetail ndisk: 502, 505, 509, 558, 775. 6773 tpdevt ndisk: 121, 124, 126, 294, 605, 621, 630, 638, 657, 781.  7030 tpdidcw ndisk: 610, 722, 724, 817.  6530 tpdisp ndisk: 567, 569.  2 tpdone ndisk: 673, 678,  ntape_equ: 25. 10 tpeot ndisk: 303, ntape_equ: 23. 6751 tpeotsw ndisk: 194, 328, 338, 453, 613, 666, 764. 6515 tperr ndisk: 551, 556.  6752 tperret ndisk: 101, 622, 633, 743, 765. 6770 tperrors ndisk: 156, 587, 614, 778.  6106 tpet ndisk: 148, 159, 165. 6044 tpfch ndisk: 116, 130.  6750 tpfin ndisk: 149, 151, 291, 309, 612, 681, 763. 6764 tphex ndisk: 504, 508, 513, 517, 518, 519, 776. 7050 tphisreg ndisk: 525, 534, 546, 549, 598, 822.  6502 tpint ndisk: 542, 645.  6754 tplen ndisk: 222, 232, 266, 390, 412, 425, 767. 6755 tplenq ndisk: 220, 400, 423, 708, 768. 7040 tpmyreg ndisk: 526, 533, 547, 821.  2000 tpn ndisk: 88, 234, 236, 260, 278, 355, 368, 787, 815, 825.  6656 tpnd ndisk: 679, 691.  6641 tpnextq ndisk: 191, 363, 673, 692.  6624 tpnextrec ndisk: 317, 456, 653. 6314 tpnid ndisk: 375, 384.  6034 tpnochnl ndisk: 109, 121.  6235 tpnorwun ndisk: 292, 297, 303. 6731 tpnotrdy ndisk: 631, 746.  6654 tpnqx2 ndisk: 684, 688.  6640 tpnxrx2 ndisk: 653, 668.  6761 tpoldstatus ndisk: 494, 496, 553, 772.  7022 tppcw ndisk: 139, 320, 459, 607, 724, 809.  6777 tpqfirst ndisk: 627, 747, 785. 6644 tpqtest ndisk: 186, 358, 677, 689.  6276 tpr0 ndisk: 357, 364.  6316 tpr2 ndisk: 379, 389.  6351 tprc0 ndisk: 416, 425.  6321 tprcpy ndisk: 395, 438.  6365 tprd ndisk: 370, 430, 449. 6605 tprdy ndisk: 629, 748, 755. 6774 tprecno ndisk: 158, 163, 642, 655, 662, 664, 782. 6224 tpreot ndisk: 289, 329, 339, 364, 373, 454, 468. 6476 tpret ndisk: 307, 310, 323, 462, 532, 686, 727. 6246 tprewt ndisk: 319, 326, 336. 6362 tprfatal ndisk: 376, 382, 433, 442.  6275 tprql ndisk: 363, 426, 444. 6277 tprsl ndisk: 368, 385.  6775 tprtemp ndisk: 783. 6747 tprunning ndisk: 306, 322, 461, 485, 522, 543, 685, 726, 762. 6467 tprunx2 ndisk: 484, 495, 521. 7026 tprwidcw ndisk: 178, 353, 609, 814.  6403 tprx2 ndisk: 449, 471.  6027 tpsccd ndisk: 115, 119.  7000 tpsect ndisk: 660, 787, 813. 7024 tpsidcw ndisk: 320, 459, 608, 812.  4 tpskip ndisk: 691, ntape_equ: 24. 1 tpstat ndisk: 442, 694, 695, ntape_equ: 26. 6746 tpstate ndisk: 527, 532, 548, 562, 761. 6421 tpstatp ndisk: 486, 493.  6760 tpstatus ndisk: 493, 500, 552, 556, 563, 771.  6772 tpsubsys ndisk: 105, 619, 752, 780.  6776 tpsvbf ndisk: 625, 635, 784. 6767 tptemp ndisk: 214, 216, 230, 233, 436, 437, 777. 6121 tpw0 ndisk: 185, 192.  6133 tpw1 ndisk: 200, 209.  6151 tpw3 ndisk: 228, 270.  6257 tpwbad ndisk: 325, 333.  6200 tpwc0 ndisk: 242, 254.  6212 tpweot ndisk: 192, 195, 275. 6223 tpwlast ndisk: 279, 286.  6120 tpwql ndisk: 191, 261, 267. 6244 tpwrag ndisk: 315, 340.  6243 tpwrit ndisk: 263, 286, 313. 6256 tpwx2 ndisk: 313, 331.  577 ttychan bos_toequ: 141. 2017 ttychanno bos_common: 58. 12245 ttyinit 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. 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.  12301 wantflt bos_tv: 86. 12212 wdev bos_tv: 31. 12235 wtsec bos_tv: 50. 12277 xio_wait ndisk: 557, bos_tv: 84. 4 xs1 ndisk: 212, 251, 420, 702, 703, bosequ: 11. 5 xs2 bosequ: 12. 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