ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>ncopy.alm ASSEMBLED ON: 11/29/83 1525.7 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 " * Copyright (c) 1972 by Massachusetts Institute of *  6 " * Technology and Honeywell Information Systems, Inc. *  7 " * *  8 " ***********************************************************  9  10 " ncopy -- disk copy package for BOS SAVE mechanism.  11 " coded 2/21/75 by Noel I. Morris  12 " modified 11/75 for NSS by Noel I. Morris  13 " Modified November 1981 by C. Hornig to not use IOM rel mode.  14  15  000000 16 name ncopy 17  18 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  19 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  20  21 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  22 " 23  24 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  25  26 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  27  28  29 " events are:  30 " 0 = bad data xfer 31 " 1 = no disk  32 " 2 = good  33 " 3 = run call  34 "  35 " xrs are:  36 " 3 = queue index  37  38 " 39  006000 40 org ntape_org  41  006000 42 org taperopen  006000 0a 006000 7100 00 43 tra *  44  006001 45 org tapewopen  006001 0a 006001 7100 00 46 tra *  47  006002 48 org taper  006002 0a 006002 7100 00 49 tra *  50  006003 51 org tapew  006003 0a 006003 7100 00 52 tra *  53  006004 54 org inittape  006004 0a 006011 7100 00 55 tra inittape_  56  006005 57 org opentaper  006005 0a 006005 7100 00 58 tra *  59  006006 60 org opentapew  006006 0a 006075 7100 00 61 tra opentapew_ 62  006007 63 org runtape  006007 0a 006203 7100 00 64 tra runtape_  65  006010 66 org endtape  006010 0a 006060 7100 00 67 tra endtape_  68  69  70 " 71  72 " tsx2 inittape to initialize tape package 73 " zero tapeden ignored by ncopy  74 " zero fatal_error go here on fatal error in opentape(r w)_ 75  006011 76 inittape_:  006011 0a 006056 7420 00 77 stx2 intpx2 save X2  006012 aa 000002 2360 12 78 ldq 2,2 pick up error return  006013 0a 006476 7560 00 79 stq tperret and retain  80  006014 aa 012257 7020 00 81 tsx2 ljust left-justify subsys name  006015 aa 012253 7020 00 82 tsx2 geas and convert to ASCII  006016 0a 006515 7550 00 83 sta tpsubsys save subsystem name  006017 aa 000044 7730 00 84 lrl 36 move to Q  006020 0a 007034 2350 00 85 lda =achnl look for CHNL card 006021 aa 012264 7020 00 86 tsx2 getconf ..  006022 0a 006034 7100 00 87 tra tpnochnl ..  006023 aa 6 00001 1161 17 88 cmpq com|CHNL_cd.sub,7 with correct subsystem name 006024 aa 012265 6010 00 89 tnz getmore ..  90  006025 aa 000006 6270 17 91 eax7 3*2,7 step config index to third channel group  006026 aa 000003 6260 00 92 eax6 3 test for non-null channel group  006027 aa 6 00004 2341 17 93 tpsccd: szn com|CHNL_cd.nchan,7 ..  006030 0a 006044 6054 00 94 tpnz tpfch use last channel group 006031 aa 777775 6270 17 95 eax7 -3,7 try previous group  006032 aa 777777 6260 16 96 eax6 -1,6 ..  006033 0a 006027 6054 00 97 tpnz tpsccd until finished  98  006034 0a 006516 4500 00 99 tpnochnl: stz tpdevt clear devt word  006035 aa 000044 7370 00 100 lls 36 subsystem name in A  006036 aa 012305 7020 00 101 tsx2 find_disk look for subsystem 006037 0a 006516 0000 00 102 arg tpdevt 006040 0a 006456 7100 00 103 tra tpconferr  006041 0a 006516 7270 00 104 lxl7 tpdevt get config card index 006042 aa 777760 3670 03 105 anx7 =o777760,du and mask  006043 aa 000000 6270 17 106 eax7 DISK_cd.iom-CHNL_cd.iom,7 adjust for difference between cards  107  006044 aa 6 00002 2351 17 108 tpfch: lda com|CHNL_cd.iom,7 get IOM number 006045 aa 000001 1750 07 109 sba 1,dl minus 1  006046 aa 000006 7350 00 110 als 6 move over  006047 aa 6 00003 0751 17 111 ada com|CHNL_cd.chn,7 insert channel number  006050 aa 6 00004 0751 17 112 ada com|CHNL_cd.nchan,7 add number of channels 006051 aa 000001 1750 07 113 sba 1,dl minus 1 to get last channel  006052 aa 000022 7350 00 114 als 18 place in AU  006053 0a 006501 7550 00 115 sta tpchanno  006054 aa 000011 7350 00 116 als 9 Shift to PCW position  006055 0a 006525 7550 00 117 sta tppcw+1  118  006056 0a 006056 6220 00 119 intpx2: eax2 * restore X2  006057 aa 000003 7100 12 120 tra 3,2  121  122 " 123  124 " tsx2 endtape to close out tape  125  006060 0a 006074 7420 00 126 endtape_: stx2 tpet here to end a tape 006061 0a 006474 5540 00 127 stc1 tpfin 006062 aa 006007 7020 00 128 tsx2 runtape  006063 0a 006474 2340 00 129 szn tpfin wait until finished 006064 0a 006062 6010 00 130 tnz *-2  131  006065 aa 012241 7020 00 132 tsx2 erpt print total errors on tape  006066 aa 021 144 151 163 133 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 006514 0000 00 134 arg tperrors  006074 0a 006074 7100 00 135 tpet: tra * 136  137 " 138  139 " tsx2 opentape(r/w) to open tape  140 " zero queue  141 " zero tapeno  142  006075 143 opentapew_: 006075 0a 006402 7500 00 144 stc2 setrtn set return loc from setape  006076 0a 006345 7100 00 145 tra setape perform setup operations  146  006077 aa 310000 2350 03 147 lda =o310000,du get write command  006100 0a 006530 7510 40 148 stca tpwidcw,40 and set in IDCW  149  006101 0a 006104 6220 00 150 eax2 tpw0 simulate call  006102 0a 006406 7100 00 151 tra tpqtest enter subroutine to get next queue entry  152  153 "  154 " Finish with current queue entry and get next one. 155  006103 0a 006403 7020 00 156 tpwql: tsx2 tpnextq on to the next 006104 0a 006144 7100 00 157 tpw0: tra tpweot end of tape return  158  006105 0a 006475 2340 00 159 szn tpeotsw if end of tape  006106 0a 006144 6010 00 160 tnz tpweot 161  006107 aa 000001 2350 13 162 lda 1,3 get ID  006110 aa 000017 3150 03 163 cana =o17,du look at device type  006111 0a 006103 6000 00 164 tze tpwql ignore header and preamble records  165  006112 aa 000000 6360 01 166 eaq 0,au get device type in QU  006113 aa 000022 7720 00 167 qrl 18 move to QL 006114 aa 000017 3760 07 168 anq =o17,dl mask  006115 0a 006517 7560 00 169 stq tpdid and save  170  006116 0a 006520 7510 60 171 stca tparea,60 save volume index  172  006117 aa 777777 3750 07 173 ana =o777777,dl mask the Multics address  006120 aa 012216 7020 00 174 tsx2 mulbos convert device address to BOS 006121 0a 006517 0000 00 175 arg tpdid ..  006122 0a 006122 7100 00 176 tra * ..  177  006123 aa 000014 7710 00 178 arl 12 sector number right-justified in A 006124 0a 006522 7510 17 179 stca tpsect,17 save sector number 006125 0a 006520 2360 00 180 ldq tparea get area number  006126 0a 006521 2340 00 181 szn tplastarea have we set an area yet?  006127 0a 006132 6040 00 182 tmi *+3 if not, don't close tape  006130 0a 006521 1160 00 183 cmpq tplastarea still the same area?  006131 0a 006143 6010 00 184 tnz tpeot1 if not same, force an EOT condition  006132 0a 006521 7560 00 185 stq tplastarea save area number  186  006133 aa 4 00000 2121 00 187 absa xs1|0 get abs addr of data  006134 aa 000006 7350 00 188 als 6 in AU  006135 0a 006531 7510 70 189 stca tpwidcw+1,70 set address in DCW  190  006136 0a 006500 2350 00 191 lda tplenq get length of data 006137 aa 000022 7710 00 192 arl 18 in AL  006140 0a 006531 7510 03 193 stca tpwidcw+1,03 set tally in DCW 194  006141 0a 006163 7020 00 195 tsx2 tpwrit write record  196  006142 0a 006103 7100 00 197 tra tpwql go get more 198  199 " 200 " End of logical or physical tape.  201  006143 202 tpeot1: 006143 0a 006521 7560 00 203 stq tplastarea save new area number  204  205  006144 206 tpweot: 207  006144 208 tpreot: " Done with tape, unload it unless it is the last.  209  006144 0a 006474 2340 00 210 szn tpfin Zero if tape full, not if closing out last tape.  006145 0a 006155 6010 00 211 tnz tpnorwun  212  006146 0a 006516 2350 00 213 lda tpdevt Check the device id to make sure we can rewind,/unload it  006147 aa 000017 3750 07 214 ana =o17,dl  006150 0a 000072 2350 05 215 lda fs_dev.media_removable-1,al  006151 0a 006155 6000 00 216 tze tpnorwun Nope, can't do it  217  006152 0a 006440 7020 00 218 tsx2 dotape Rewind and unload tape, expecting another.  006153 aa 000000 000072 219 oct 72 006154 0a 006155 7100 00 220 tra *+1  221  006155 aa 000010 2350 07 222 tpnorwun: lda tpeot,dl get EOT flag  006156 aa 000000 2550 13 223 orsa 0,3 set in queue entry  224  006157 0a 006473 4500 00 225 stz tprunning tape no longer connected  006160 0a 006267 7020 00 226 tsx2 tpret wait for new open call 227  006161 0a 006474 4500 00 228 stz tpfin let endtape return  006162 0a 006267 7100 00 229 tra tpret  230  231 "  006163 0a 006173 7420 00 232 tpwrit: stx2 tpwx2 here to write a record  233  006164 0a 006502 4500 00 234 stz tptryct reset count of tries to write 235  006165 236 tprewt: 006165 aa 012272 7020 00 237 tsx2 connect_iom start io  006166 00 006524 006526 238 zero tppcw,tpsidcw 239  006167 0a 006473 7500 00 240 stc2 tprunning set state  006170 0a 006267 7020 00 241 tsx2 tpret 242  006171 0a 006174 7100 00 243 tra tpwbad retry io errors  006172 0a 006165 7100 00 244 tra tprewt retry no tape  245  006173 0a 006173 7100 00 246 tpwx2: tra *  247  006174 0a 006502 0540 00 248 tpwbad: aos tptryct count another try  006175 0a 006502 2350 00 249 lda tptryct check for 5 tries 006176 aa 000005 1150 07 250 cmpa 5,dl ..  006177 0a 006165 6040 00 251 tmi tprewt keep trying  252  006200 aa 000001 2350 07 253 lda tpstat,dl get error flag  006201 aa 000000 2550 13 254 orsa 0,3 and set in queue entry  006202 0a 006173 7100 00 255 tra tpwx2 return and continue 256  257  258 " 259 " tsx2 runtape to keep tape moving 260  006203 0a 006260 7420 00 261 runtape_: stx2 tprunx2 save callers regs  006204 0a 006473 2340 00 262 szn tprunning tape connected? 006205 0a 006212 6000 00 263 tze tpstatp if not, skip check_status call  264  006206 aa 012274 7020 00 265 tsx2 check_status  006207 0a 007035 0000 00 266 arg =0 006210 0a 006212 7100 00 267 tra *+2  006211 0a 006212 7100 00 268 tra *+1  269  006212 0a 006503 2350 00 270 tpstatp: lda tpstatus get saved status 006213 0a 006504 1150 00 271 cmpa tpoldstatus has it changed?  006214 0a 006260 6000 00 272 tze tprunx2 if not, don't print it  006215 0a 006504 7550 00 273 sta tpoldstatus save for comparison  274  006216 aa 012241 7020 00 275 tsx2 erpt print error status  006217 aa 030 156 143 157 276 acc 'ncopy: disk status = ^w.' 006220 aa 160 171 072 040 006221 aa 144 151 163 153 006222 aa 040 163 164 141 006223 aa 164 165 163 040 006224 aa 075 040 136 167 006225 aa 056 000 000 000 006226 0a 006503 0000 00 277 arg tpstatus  278  006227 0a 006506 2350 00 279 lda tpdetail convert detailed status to hex  006230 aa 012304 7020 00 280 tsx2 hexwd 006231 0a 006510 7550 00 281 sta tphex  006232 0a 006506 2370 00 282 ldaq tpdetail  006233 aa 000030 7370 00 283 lls 24 006234 aa 012304 7020 00 284 tsx2 hexwd 006235 0a 006511 7550 00 285 sta tphex+1  006236 0a 006507 2360 00 286 ldq tpdetail+1 006237 aa 000060 7370 00 287 lls 48 006240 aa 012304 7020 00 288 tsx2 hexwd 006241 0a 007036 2750 00 289 ora =h0000 "  006242 0a 006512 7550 00 290 sta tphex+2  291  006243 aa 012241 7020 00 292 tsx2 erpt print detailed status  006244 aa 040 156 143 157 293 acc 'ncopy: detailed status = ^g^g^g.' 006245 aa 160 171 072 040 006246 aa 144 145 164 141 006247 aa 151 154 145 144 006250 aa 040 163 164 141 006251 aa 164 165 163 040 006252 aa 075 040 136 147 006253 aa 136 147 136 147 006254 aa 056 000 000 000 006255 0a 006510 0000 00 294 arg tphex  006256 0a 006511 0000 00 295 arg tphex+1  006257 0a 006512 0000 00 296 arg tphex+2  297  006260 0a 006260 6220 00 298 tprunx2: eax2 * 006261 0a 006473 2340 00 299 szn tprunning tape running now?  006262 aa 000000 6010 12 300 tnz 0,2 if so, return to caller  301  006263 0a 006550 7530 00 302 sreg tphisreg  006264 0a 006540 0730 00 303 lreg tpmyreg load mine  006265 0a 006472 2220 00 304 ldx2 tpstate and tra to state prog  006266 aa 000000 7100 12 305 tra 0,2 at run entry  306  307  308  006267 0a 006472 7420 00 309 tpret: stx2 tpstate remember where we were 006270 0a 006540 7530 00 310 sreg tpmyreg here to return, save my regs 006271 0a 006550 0730 00 311 lreg tphisreg and load theirs 006272 aa 000000 7100 12 312 tra 0,2  313  314 " 315  316 " ldaq status  317 " tsx2 tpint to deliver status  318  006273 319 tpint:  006273 0a 006473 2140 00 320 sznc tprunning tape connected?  006274 aa 000000 6000 12 321 tze 0,2 if not, must be spurious call 322  006275 0a 006550 7530 00 323 sreg tphisreg save callers machine  006276 0a 006540 0730 00 324 lreg tpmyreg restore mine 006277 0a 006472 2220 00 325 ldx2 tpstate  006300 0a 006554 2350 00 326 lda tphisreg+4 get status  006301 0a 007037 3150 00 327 cana =o370000770000 Check for all bad status.  006302 0a 006306 6010 00 328 tnz tperr If bad, analyze error.  006303 0a 006503 4500 00 329 stz tpstatus Clear old status.  006304 0a 006504 4500 00 330 stz tpoldstatus .. 006305 aa 000002 7100 12 331 tra 2,2 Report normal termination.  332  006306 0a 006503 7550 00 333 tperr: sta tpstatus save  334  006307 aa 012277 7020 00 335 tsx2 xio_wait read detailed status  006310 0a 006506 000200 336 vfd 18/tpdetail,12/2  006311 0a 006501 000022 337 zero tpchanno,18  006312 0a 006313 7100 00 338 tra *+1  339  006313 0a 006472 2220 00 340 ldx2 tpstate state in X2 again  006314 0a 006503 2350 00 341 lda tpstatus status in A  006315 aa 000000 6360 01 342 eaq 0,au Major status in QU.  006316 aa 000014 7720 00 343 qrl 12 Right-justify in QU.  006317 aa 000037 3760 03 344 anq =o37,du Mask major status and power bit.  006320 0a 006321 7100 02 345 tra tpdisp,qu Dispatch on major status.  346  006321 0a 006342 7100 00 347 tpdisp: tra tpbio 0: IOM channel or central error 006322 0a 006344 7100 00 348 tra tpatt 1: device busy 006323 0a 006344 7100 00 349 tra tpatt 2: device attention  006324 0a 006342 7100 00 350 tra tpbio 3: device data alert  006325 0a 006342 7100 00 351 tra tpbio 4: end of file 006326 0a 006342 7100 00 352 tra tpbio 5: command reject  006327 0a 006342 7100 00 353 tra tpbio 6: 006330 0a 006342 7100 00 354 tra tpbio 7: 006331 0a 006342 7100 00 355 tra tpbio 10: 006332 0a 006342 7100 00 356 tra tpbio 11: 006333 0a 006342 7100 00 357 tra tpbio 12: MPC device attention  006334 0a 006342 7100 00 358 tra tpbio 13: MPC device data alert  006335 0a 006342 7100 00 359 tra tpbio 14: 006336 0a 006342 7100 00 360 tra tpbio 15: MPC command reject  006337 0a 006342 7100 00 361 tra tpbio 16: 006340 0a 006342 7100 00 362 tra tpbio 17: 006341 0a 006344 7100 00 363 tra tpatt 20: peripheral absent or power off  364  006342 0a 006514 0540 00 365 tpbio: aos tperrors count errors  006343 aa 000000 7100 12 366 tra 0,2 take error return 367  006344 aa 000001 7100 12 368 tpatt: tra 1,2 Retry operation.  369  370 " 371 " Utility subroutines.  372  373 " tsx2 setape to set up PCW and IDCW's.  374  006345 aa 000002 6220 12 375 setape: eax2 2,2 change return loc 006346 0a 006550 7530 00 376 sreg tphisreg save registers  377  006347 aa 777776 2230 12 378 ldx3 -2,2 get queue pointer in X3 379  006350 aa 777777 2350 32 380 lda -1,2* get tape # in A 006351 0a 006477 7550 00 381 sta tapeno fill tape number into pcw's  006352 aa 000022 7350 00 382 als 18 but first place in devt word  006353 0a 006516 7550 00 383 sta tpdevt .. 006354 aa 000006 7350 00 384 als 6  006355 0a 006524 7510 20 385 stca tppcw,20  006356 0a 006526 7510 20 386 stca tpsidcw,20  006357 0a 006530 7510 20 387 stca tpwidcw,20  006360 0a 006532 7510 20 388 stca tpdidcw,20  389  006361 0a 006474 4500 00 390 stz tpfin clear flags 006362 0a 006475 4500 00 391 stz tpeotsw  006363 0a 006514 4500 00 392 stz tperrors Clear error count.  393  006364 aa 012276 7020 00 394 tsx2 get_status_interrupt reset status handler routine  006365 0a 007035 0000 10 395 arg =0,0  396  006366 0a 006515 2350 00 397 lda tpsubsys subsystem name in A  006367 aa 012305 7020 00 398 tsx2 find_disk get subsystem info 006370 0a 006516 0000 00 399 arg tpdevt 006371 0a 006476 7100 20 400 tra tperret,*  401  006372 0a 006560 7020 00 402 tsx2 query_disk see if disk is storage system volume  006373 0a 006516 0000 00 403 arg tpdevt 006374 0a 006476 7100 20 404 tra tperret,*  006375 0a 006400 7100 00 405 tra set1  406  006376 0a 006666 7020 00 407 tsx2 ask_disk ask if disk can be overwritten  006377 0a 006476 7100 20 408 tra tperret,* if not, take error return  409  006400 aa 012276 7020 00 410 set1: tsx2 get_status_interrupt Run "interrupt" driven for faster response.  006401 00 006501 006273 411 zero tpchanno,tpint  412  006402 0a 006402 7100 00 413 setrtn: tra * return to caller 414  415  416 " 417 " tsx2 tpnextq to discard current queue and get next entry 418  006403 aa 000002 2350 07 419 tpnextq: lda tpdone,dl finish with current queue entry 006404 aa 000000 2550 13 420 orsa 0,3 turn on done bit 421  006405 aa 000000 2230 13 422 ldx3 0,3 step to next queue entry 006406 aa 000000 2350 13 423 tpqtest: lda 0,3 get flags 006407 aa 000002 3150 07 424 cana tpdone,dl anything to do?  006410 0a 006420 6000 00 425 tze tpnd if so, go to it  426  006411 0a 006474 2340 00 427 szn tpfin finished with tape? 006412 aa 000000 6010 12 428 tnz 0,2 if so, take end of tape return  429  006413 0a 006416 7420 00 430 stx2 tpnqx2 save X2  006414 0a 006473 4500 00 431 stz tprunning set state to waiting  006415 0a 006267 7020 00 432 tsx2 tpret and wait for more work 433  006416 0a 006416 6220 00 434 tpnqx2: eax2 * run call, restore X2  006417 0a 006406 7100 00 435 tra tpqtest see if more work to do  436  006420 aa 000004 3150 07 437 tpnd: cana tpskip,dl skip this queue entry?  006421 0a 006403 6010 00 438 tnz tpnextq if so, go get another one 439  006422 aa 000001 2750 07 440 ora tpstat,dl turn off error bit  006423 aa 000001 6750 07 441 era tpstat,dl ..  006424 aa 000000 7550 13 442 sta 0,3 store flags back in queue entry  443  006425 aa 000002 2270 13 444 ldx7 2,3 get segment # and offset 006426 aa 000000 6350 17 445 eaa 0,7 segment # in A (0-2)  006427 aa 077777 3670 03 446 anx7 =o77777,du mask the offset  006430 aa 000017 7710 00 447 arl 15 right-justify segment # in AU  006431 aa 000000 3310 01 448 easp xs1,0,au pr 4 -> data segment  006432 aa 000000 3300 17 449 eawp xs1,0,7 ..  450  006433 aa 000002 7270 13 451 lxl7 2,3 get length from queue  006434 aa 000001 6270 17 452 eax7 1,7 round to next even  006435 aa 777776 3670 03 453 anx7 =o777776,du ..  006436 0a 006500 7470 00 454 stx7 tplenq save data length  455  006437 aa 000001 7100 12 456 tra 1,2 return to caller  457  458  459 " 460 " tsx2 dotape to perform non-data transfer operation  461 " oct command  462 " tra error 463  006440 0a 006452 7420 00 464 dotape: stx2 dx 006441 aa 000000 2350 12 465 lda 0,2  006442 aa 000036 7350 00 466 als 30 fill in command  006443 0a 006532 7510 40 467 stca tpdidcw,40  006444 aa 012272 7020 00 468 domore: tsx2 connect_iom start oper 006445 00 006524 006532 469 zero tppcw,tpdidcw 470  006446 0a 006473 7500 00 471 stc2 tprunning 006447 0a 006267 7020 00 472 tsx2 tpret wait for status  473  006450 0a 006454 7100 00 474 tra dobad  006451 0a 006444 7100 00 475 tra domore 476  006452 0a 006452 6220 00 477 dx: eax2 *  006453 aa 000002 7100 12 478 tra 2,2  479  006454 0a 006452 2220 00 480 dobad: ldx2 dx  006455 aa 000001 7100 12 481 tra 1,2  482  483 " 484  006456 485 tpconferr:  006456 aa 012241 7020 00 486 tsx2 erpt  006457 aa 046 156 143 157 487 acc "ncopy: Cannot get disk channel number."  006460 aa 160 171 072 040 006461 aa 103 141 156 156 006462 aa 157 164 040 147 006463 aa 145 164 040 144 006464 aa 151 163 153 040 006465 aa 143 150 141 156 006466 aa 156 145 154 040 006467 aa 156 165 155 142 006470 aa 145 162 056 000 006471 0a 006476 7100 20 488 tra tperret,*  489  490  491 " 492 " Storage and Constants.  493  006472 494 tpstate: bss ,1 last loc'n in ntape package  006473 495 tprunning:bss ,1 non-zero if tape connected  006474 496 tpfin: bss ,1 non-zero to finish up tape  006475 497 tpeotsw: bss ,1 non-zero when EOT reflector encountered  006476 498 tperret: bss ,1 error return  006477 499 tapeno: bss ,1 current tape handler #  006500 500 tplenq: bss ,1 length of logical record from queue 006501 501 tpchanno: bss ,1 tape channel #  006502 502 tptryct: bss ,1 count of tries to write record 006503 503 tpstatus: bss ,1  006504 504 tpoldstatus:  006504 505 bss ,1 006505 aa 000000 0110 03 506 even  006506 507 tpdetail: bss ,2  006510 508 tphex: bss ,3  006513 509 tptemp: bss ,1  006514 510 tperrors: bss ,1 count of errors on tape  006515 511 tpsubsys: bss ,1 disk subsystem name  006516 512 tpdevt: bss ,1 devt word  513  006517 514 tpdid: bss ,1 device type of record type  006520 515 tparea: bss ,1 volume # of record ID  006521 516 tplastarea: 006521 aa 777777 777777 517 dec -1 previous volume #  518  006522 aa 000000 000000 519 tpsect: vfd 12/0,24/0 sector address for seek  520  521 " 522 " DCW Lists and Tape Buffers.  006523 aa 000000 0110 03 523 even  006524 aa 400000 720201 524 tppcw: vfd o6/40,6/0,6/0,3/7,3/2,6/2,6/1 reset status (PSIA compat.)  006525 aa 000000 000000 525 vfd 9/*-*  526  006526 aa 340000 720000 527 tpsidcw: vfd o6/34,6/0,6/0,3/7,3/2,6/0,6/0 Seek.  006527 0a 037522 000001 528 vfd 18/tpsect+pgmorg,6/0,12/1 IOTD tpsect,1  006530 aa 310000 700000 529 tpwidcw: vfd o6/31,6/0,6/0,3/7,3/0,6/0,6/0 Write disk. 006531 aa 000000 000000 530 vfd 18/0,6/0,12/0 IOTD  531  006532 aa 000000 700201 532 tpdidcw: vfd o6/0,6/0,6/0,3/7,3/0,6/2,6/1 Non-data operation.  006533 aa 000000 700201 533 tpddcw: vfd 6/0,6/0,6/0,3/7,3/0,6/2,6/1 Request status (just in case). 534  006534 aa 000000 0110 03 535 eight  006535 aa 000000 0110 03 006536 aa 000000 0110 03 006537 aa 000000 0110 03 006540 536 bss tpmyreg,8  006550 537 bss tphisreg,8 538  539  540 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  006560 6-14 query_disk: 006560 0a 006660 7420 00 6-15 stx2 qdkx2 save X2  6-16  006561 aa 000000 2360 32 6-17 ldq 0,2* get devt 006562 0a 006713 7560 00 6-18 stq qdkdevt and save  006563 aa 000000 6350 06 6-19 eaa 0,ql test for bulk  006564 aa 000017 3750 03 6-20 ana =o17,du  006565 aa 000001 1150 03 6-21 cmpa =1,du 006566 0a 006662 6000 00 6-22 tze qdknv don't hassle it, it's bulk  6-23  006567 aa 000000 6270 06 6-24 eax7 0,ql config deck index in X7 006570 aa 777760 3670 03 6-25 anx7 =o777760,du mask it  006571 aa 6 00001 2351 17 6-26 lda com|DISK_cd.sub,7 get subsystem name  006572 0a 006714 7550 00 6-27 sta qdksubsys and save  6-28  006573 aa 000022 7720 00 6-29 qrl 18 save drive number  006574 aa 000777 3760 07 6-30 anq =o777,dl ..  006575 0a 006715 7560 00 6-31 stq qdkno ..  6-32  6-33  006576 aa 000000 2350 07 6-34 lda 0,dl label is record zero 006577 aa 012216 7020 00 6-35 tsx2 mulbos convert to BOS address  006600 0a 006713 0000 00 6-36 arg qdkdevt ..  006601 0a 006664 7100 00 6-37 tra qdkerr 6-38  006602 0a 007040 3750 00 6-39 ana =o777777770000 mask sector number  006603 0a 006716 7550 00 6-40 sta qdkadr save for next I/O  006604 0a 007041 0350 00 6-41 adla =v24/label.Multics/64,12/1 get sector with label 6-42  006605 aa 012211 7020 00 6-43 tsx2 rdev read the label  006606 0a 006713 0000 00 6-44 arg qdkdevt  006607 0a 006734 0110 00 6-45 nop qdkbuf 006610 0a 006664 7100 00 6-46 tra qdkerr 6-47  006611 aa 000000 1064 00 6-48 cmpc (),() see if Multics volume  006612 0a 006734 000040 6-49 desc9a qdkbuf+label.Multics-label.Multics/64*64,32 006613 0a 006723 000040 6-50 desc9a Multics_label,32  006614 0a 006662 6010 00 6-51 tnz qdknv if not, take not_vol return 6-52  006615 aa 012241 7020 00 6-53 tsx2 erpt print message  006616 aa 052 136 141 040 6-54 acc "^a ^d is Multics storage system volume ^A."  006617 aa 136 144 040 151 006620 aa 163 040 115 165 006621 aa 154 164 151 143 006622 aa 163 040 163 164 006623 aa 157 162 141 147 006624 aa 145 040 163 171 006625 aa 163 164 145 155 006626 aa 040 166 157 154 006627 aa 165 155 145 040 006630 aa 136 101 056 000 006631 0a 006714 0000 00 6-55 arg qdksubsys  006632 0a 006715 0000 00 6-56 arg qdkno  006633 0a 006722 0000 00 6-57 arg qdkdesc  6-58  006634 0a 006716 2350 00 6-59 lda qdkadr get last-use time  006635 0a 007042 0350 00 6-60 adla =v24/label.time_map_updated/64,12/1  6-61  006636 aa 012211 7020 00 6-62 tsx2 rdev  006637 0a 006713 0000 00 6-63 arg qdkdevt  006640 0a 006734 0110 00 6-64 nop qdkbuf 006641 0a 006664 7100 00 6-65 tra qdkerr 6-66  006642 0a 006736 2370 00 6-67 ldaq qdkbuf+label.time_map_updated-label.time_map_updated/64*64  006643 aa 012270 7020 00 6-68 tsx2 cvclock  006644 0a 006720 7570 00 6-69 staq qdktime convert the time 6-70  006645 aa 012241 7020 00 6-71 tsx2 erpt  006646 aa 034 114 141 142 6-72 acc "Label last written at ^g ^g." 006647 aa 145 154 040 154 006650 aa 141 163 164 040 006651 aa 167 162 151 164 006652 aa 164 145 156 040 006653 aa 141 164 040 136 006654 aa 147 040 136 147 006655 aa 056 000 000 000 006656 0a 006720 0000 00 6-73 arg qdktime+0  006657 0a 006721 0000 00 6-74 arg qdktime+1  6-75  6-76  006660 0a 006660 6220 00 6-77 qdkx2: eax2 * restore X2  006661 aa 000003 7100 12 6-78 tra 3,2 take is volume return 6-79  6-80  006662 0a 006660 2220 00 6-81 qdknv: ldx2 qdkx2 restore X2  006663 aa 000002 7100 12 6-82 tra 2,2 disk is not storage system volume 6-83  6-84  006664 0a 006660 2220 00 6-85 qdkerr: ldx2 qdkx2 restore X2  006665 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  006666 0a 006706 7420 00 6-97 ask_disk: stx2 adkx2 save X2  6-98  006667 aa 012241 7020 00 6-99 tsx2 erpt pop the question  006670 aa 037 104 157 040 6-100 acc "Do you wish to write on ^a ^d^g"  006671 aa 171 157 165 040 006672 aa 167 151 163 150 006673 aa 040 164 157 040 006674 aa 167 162 151 164 006675 aa 145 040 157 156 006676 aa 040 136 141 040 006677 aa 136 144 136 147 006700 0a 006714 0000 00 6-101 arg qdksubsys  006701 0a 006715 0000 00 6-102 arg qdkno  006702 0a 007043 0000 00 6-103 arg =h!!????  6-104  006703 aa 012247 7020 00 6-105 tsx2 readtty read the answer  006704 0a 006703 7100 00 6-106 tra *-1 ..  6-107  006705 aa 012200 7020 00 6-108 tsx2 scan scan input  6-109  006706 0a 006706 6220 00 6-110 adkx2: eax2 * restore X2  006707 aa 012040 2350 00 6-111 lda arg get answer  006710 0a 007044 1150 00 6-112 cmpa =h yes yes?  006711 aa 000001 6000 12 6-113 tze 1,2  006712 aa 000000 7100 12 6-114 tra 0,2  6-115  6-116  6-117 " 6-118  006713 6-119 qdkdevt: bss ,1 006714 6-120 qdksubsys:bss ,1  006715 6-121 qdkno: bss ,1  006716 6-122 qdkadr: bss ,1  006717 aa 000000 0110 03 6-123 even  006720 6-124 qdktime: bss ,2 6-125  006722 0a 006755 000040 6-126 qdkdesc: desc9a qdkbuf+label.pv_name-label.pv_name/64*64,32 6-127  006723 6-128 Multics_label:  006723 aa 115 165 154 164 6-129 aci "Multics Storage System Volume",32 006724 aa 151 143 163 040 006725 aa 123 164 157 162 006726 aa 141 147 145 040 006727 aa 123 171 163 164 006730 aa 145 155 040 126 006731 aa 157 154 165 155 006732 aa 145 040 040 040 6-130  006733 aa 000000 0110 03 6-131 even  006734 6-132 qdkbuf: bss ,64 6-133  6-134  6-135 " End of include file ...... qdisk.incl.alm 6-136  541  542 " 543  544 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  545  546 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  547  548 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  549  550 end  LITERALS 007034 aa 143150 156154 007035 aa 000000 000000 007036 aa 000000 002020 007037 aa 370000 770000 007040 aa 777777 770000 007041 aa 000000 050001 007042 aa 000000 060001 007043 aa 777717 171717 007044 aa 202020 702562 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 007045 5a 000003 000000 007046 5a 000017 600000 007047 aa 000000 000000 007050 55 000010 000002 007051 5a 000002 400003 007052 55 000006 000010 007053 aa 005 156 143 157 007054 aa 160 171 000 000 007055 55 000002 000003 007056 6a 000000 400002 007057 55 000013 000003 007060 aa 014 163 171 155 symbol_table  007061 aa 142 157 154 137 007062 aa 164 141 142 154 007063 aa 145 000 000 000 DEFINITIONS HASH TABLE  007064 aa 000000 000015 007065 aa 000000 000000 007066 aa 000000 000000 007067 aa 000000 000000 007070 aa 000000 000000 007071 aa 000000 000000 007072 aa 000000 000000 007073 5a 000010 000000 007074 aa 000000 000000 007075 aa 000000 000000 007076 aa 000000 000000 007077 aa 000000 000000 007100 aa 000000 000000 007101 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  007102 aa 000001 000000 007103 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 007045 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 226326 103175 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 000646 000020 aa 000000 000262 000021 aa 000000 000627 000022 aa 000632 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 273034 000070 aa 000000 112272 000071 aa 215620 200000 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>ncopy.alm  000137 aa 143076 150076 000140 aa 063056 061067 000141 aa 076156 143157 000142 aa 160171 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. 6706 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. 6666 ask_disk ncopy: 407, 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 ncopy: 265, bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 3 CHNL_cd.chn ncopy: 111, config_cards: 27.  2 CHNL_cd.iom ncopy: 106, 108,  config_cards: 26.  4 CHNL_cd.nchan ncopy: 93, 112,  config_cards: 28.  1 CHNL_cd.sub ncopy: 88, config_cards: 25.  2032 cmdlst bos_common: 68. 6 com ncopy: 88, 93, 108, 111, 112, bosequ: 14, qdisk: 26. 3000 conf bos_common: 85, 86.  20 confl bos_common: 87. 12272 connect_iom ncopy: 237, 468,  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 bos_tv: 51. 3 DISK_cd.chn config_cards: 20.  2 DISK_cd.iom ncopy: 106, 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. 6454 dobad ncopy: 474, 480.  6444 domore ncopy: 468, 475.  6440 dotape ncopy: 218, 464.  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.  6452 dx ncopy: 464, 477, 480. 12100 earg bos_tv: 16, 17.  7000 econf bos_common: 86, 90.  1100 eishist bos_common: 16. 6010 endtape ncopy: 66, ntape_equ: 19. 6060 endtape_ ncopy: 67, 126.  12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt ncopy: 132, 275, 292, 486,  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 ncopy: 101, 398,  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 ncopy: 215, 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 ncopy: 82, bos_tv: 64. 12254 geastab bos_tv: 65. 12264 getconf ncopy: 86, bos_tv: 73. 12265 getmore ncopy: 89, 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 ncopy: 394, 410,  bos_tv: 83. 12304 hexwd ncopy: 280, 284, 288, bos_tv: 89. 1400 imbx bos_toequ: 67. 12300 initint bos_tv: 85. 6004 inittape ncopy: 54, ntape_equ: 15. 6011 inittape_ ncopy: 55, 76.  12271 init_io bos_tv: 78. 2021 inputsw bos_common: 60. 12302 intno bos_tv: 87. 6056 intpx2 ncopy: 77, 119.  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 ncopy: 81, 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 ncopy: 174, qdisk: 35, bos_tv: 35. 6723 Multics_label qdisk: 50, 128.  1002 mxbasesav bos_toequ: 144. 12202 nextline bos_tv: 23. 12203 nlraw bos_tv: 24. 6000 ntape_org ncopy: 40, ntape_equ: 9, 11, 12, 13, 14, 15, 16, 17, 18, 19.  12252 octwd bos_tv: 63. 6005 opentaper ncopy: 57, ntape_equ: 16. 6006 opentapew ncopy: 60, ntape_equ: 17. 6075 opentapew_ ncopy: 61, 143.  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 ncopy: 528, 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. 6716 qdkadr qdisk: 40, 59, 122. 6734 qdkbuf qdisk: 45, 49, 64, 67, 126, 132.  6722 qdkdesc qdisk: 57, 126.  6713 qdkdevt qdisk: 18, 36, 44, 63, 119. 6664 qdkerr qdisk: 37, 46, 65, 85.  6715 qdkno qdisk: 31, 56, 102, 121.  6662 qdknv qdisk: 22, 51, 81. 6714 qdksubsys qdisk: 27, 55, 101, 120.  6720 qdktime qdisk: 69, 73, 74, 124.  6660 qdkx2 qdisk: 15, 77, 81, 85.  6560 query_disk ncopy: 402, 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 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 ncopy: 63, 128,  ntape_equ: 18. 6203 runtape_ ncopy: 64, 261.  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. 6400 set1 ncopy: 405, 410.  6345 setape ncopy: 145, 375.  6402 setrtn ncopy: 144, 413.  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. 6477 tapeno ncopy: 381, 499.  6002 taper ncopy: 48, ntape_equ: 13. 6000 taperopen ncopy: 42, ntape_equ: 11. 6003 tapew ncopy: 51, ntape_equ: 14. 6001 tapewopen ncopy: 45, ntape_equ: 12. 1 tmp bosequ: 8. 1000 toelen bos_toequ: 135, 139, 140, 141, 142, 143, 144, 145.  31000 toesaved bos_toequ: 136. 6520 tparea ncopy: 171, 180, 515. 6344 tpatt ncopy: 348, 349, 363, 368.  6342 tpbio ncopy: 347, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,  361, 362, 365. 6501 tpchanno ncopy: 115, 337, 411, 501.  6456 tpconferr ncopy: 103, 485.  6533 tpddcw ncopy: 533. 6506 tpdetail ncopy: 279, 282, 286, 336, 507. 6516 tpdevt ncopy: 99, 102, 104, 213, 383, 399, 403, 512.  6517 tpdid ncopy: 169, 175, 514. 6532 tpdidcw ncopy: 388, 467, 469, 532.  6321 tpdisp ncopy: 345, 347.  2 tpdone ncopy: 419, 424,  ntape_equ: 25. 10 tpeot ncopy: 222, ntape_equ: 23. 6143 tpeot1 ncopy: 184, 202.  6475 tpeotsw ncopy: 159, 391, 497. 6306 tperr ncopy: 328, 333.  6476 tperret ncopy: 79, 400, 404, 408, 488, 498.  6514 tperrors ncopy: 134, 365, 392, 510.  6074 tpet ncopy: 126, 135.  6044 tpfch ncopy: 94, 108.  6474 tpfin ncopy: 127, 129, 210, 228, 390, 427, 496. 6510 tphex ncopy: 281, 285, 290, 294, 295, 296, 508. 6550 tphisreg ncopy: 302, 311, 323, 326, 376, 537.  6273 tpint ncopy: 319, 411.  6521 tplastarea ncopy: 181, 183, 185, 203, 516. 6500 tplenq ncopy: 191, 454, 500. 6540 tpmyreg ncopy: 303, 310, 324, 536.  6420 tpnd ncopy: 425, 437.  6403 tpnextq ncopy: 156, 419, 438. 6034 tpnochnl ncopy: 87, 99.  6155 tpnorwun ncopy: 211, 216, 222. 6416 tpnqx2 ncopy: 430, 434.  6504 tpoldstatus ncopy: 271, 273, 330, 504.  6524 tppcw ncopy: 117, 238, 385, 469, 524. 6406 tpqtest ncopy: 151, 423, 435. 6144 tpreot ncopy: 208. 6267 tpret ncopy: 226, 229, 241, 309, 432, 472.  6165 tprewt ncopy: 236, 244, 251. 6473 tprunning ncopy: 225, 240, 262, 299, 320, 431, 471, 495.  6260 tprunx2 ncopy: 261, 272, 298. 6027 tpsccd ncopy: 93, 97.  6522 tpsect ncopy: 179, 519, 528. 6526 tpsidcw ncopy: 238, 386, 527. 4 tpskip ncopy: 437, ntape_equ: 24. 1 tpstat ncopy: 253, 440, 441, ntape_equ: 26. 6472 tpstate ncopy: 304, 309, 325, 340, 494. 6212 tpstatp ncopy: 263, 270.  6503 tpstatus ncopy: 270, 277, 329, 333, 341, 503.  6515 tpsubsys ncopy: 83, 397, 511. 6513 tptemp ncopy: 509. 6502 tptryct ncopy: 234, 248, 249, 502.  6104 tpw0 ncopy: 150, 157.  6174 tpwbad ncopy: 243, 248.  6144 tpweot ncopy: 157, 160, 206. 6530 tpwidcw ncopy: 148, 189, 193, 387, 529. 6103 tpwql ncopy: 156, 164, 197. 6163 tpwrit ncopy: 195, 232.  6173 tpwx2 ncopy: 232, 246, 255. 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 ncopy: 335, bos_tv: 84. 4 xs1 ncopy: 187, 448, 449, 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