ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>save.alm ASSEMBLED ON: 11/29/83 1539.5 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 " SAVE - Program to Write Secondary Storage onto Tape.  7 " Modified 2/80 by R.J.C. Kissel for 6250 bpi operation.  8 "  9 " args are: 10 " device address range  11 " ALL to ignore fsdct  12 " TAPE n1 ... nx to set tape numbers  13  14  000000 15 name save  16  17  18 " ******************************************************  19 " * *  20 " * *  21 " * Copyright (c) 1972 by Massachusetts Institute of *  22 " * Technology and Honeywell Information Systems, Inc. *  23 " * *  24 " * *  25 " ******************************************************  26  27  28  29 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  30  31  32 " 33  34 include ntape_equ  2-1  2-2 " Begin include file ...... ntape_equ.incl.alm  2-3 " Last modified 11/25/75 by Noel I. Morris  2-4 " Modified 8/79 by R.J.C. Kissel to use expanded BOS.  2-5 " Modified 2/80 by R.J.C. Kissel to handle 6250 bpi operation.  2-6  2-7 " Transfer Vector values:  2-8  006000 2-9 bool ntape_org,6000 start of tape package  2-10  006000 2-11 equ taperopen,ntape_org+0  006001 2-12 equ tapewopen,ntape_org+1  006002 2-13 equ taper,ntape_org+2  006003 2-14 equ tapew,ntape_org+3  006004 2-15 equ inittape,ntape_org+4  006005 2-16 equ opentaper,ntape_org+5  006006 2-17 equ opentapew,ntape_org+6  006007 2-18 equ runtape,ntape_org+7  006010 2-19 equ endtape,ntape_org+8  2-20  2-21 " Queue entry codes:  2-22  000010 2-23 bool tpeot,10 EOT flag  000004 2-24 bool tpskip,4 skip queue entry  000002 2-25 bool tpdone,2 queue entry done  000001 2-26 bool tpstat,1 error in entry  2-27  2-28 " format of queue:  2-29 " 0/ zero next_entry,flags  2-30 " 1/ vfd 36/id  2-31 " 2/ vfd 3/data_seg,15/data_offset,18/data_length  2-32  2-33 " End of include file ...... ntape_equ.incl.alm 2-34  35  36 include sav_util  3-1 " 3-2 " Begin include file ...... sav_util.incl.alm  3-3 " This is the initialization code for the SAVE and RESTOR commands. 3-4 " Modified for NSS 11/75 by Noel I. Morris  3-5 " Last modified 9/9/76 by Noel I. Morris  3-6 " Modified 2/80 by R.J.C. Kissel to support 6250 bpi operation. 3-7 " Modified 3/82 by J. Bongiovanni for new pack layout  3-8 " Modified 5/82 by Sherm D. Sprague to print target pack info.  3-9 " Modified 83-10-10 by E. N. Kittlitz for disks up to 63.  3-10  3-11 include sav_io_buf_seg 4-1 " Begin include file ...... sav_io_buf_seg.incl.alm 4-2 " Overlay for segments which are used for disk and tape IO buffers  4-3 " by SAVE and RESTOR.  4-4 "  4-5 " Written 2/80 by R.J.C. Kissel.  4-6  044000 4-7 equ label_buff_len,18*1024 length of label buffer in bf  100000 4-8 equ disk_buff_len,32*1024 length of disk buffer in tmp 002000 4-9 equ small_tp_buff,1024 length of short tape buffer  002000 4-10 equ big_tp_buff,1024 length of big tape buffer  4-11  000000 4-12 equ dskbuf,0 start of disk buffers  000000 4-13 equ lbbuf,0 start of label buffer  4-14 " tape buffer is in ntape  4-15  4-16 " End include file ...... sav_io_buf_seg.incl.alm  4-12  4-13 include disk_pack  5-1  5-2  5-3 "BEGIN INCLUDE FILE disk_pack.incl.alm 5-4  5-5  5-6 "Created 04/02/82 1735.7 est Fri by convert_include_file, 5-7 " Version of 12/01/81 1540.3 est Tue.  5-8  5-9 "Made from >cdd>include>x>disk_pack.incl.pl1,  5-10 " modified 04/02/82 1145.0 est Fri  5-11  5-12  000000 5-13 equ LABEL_ADDR,0 " MANIFEST  000001 5-14 equ VOLMAP_ADDR,1 " MANIFEST  000004 5-15 equ DUMPER_BIT_MAP_ADDR,4 " MANIFEST  000006 5-16 equ VTOC_MAP_ADDR,6 " MANIFEST  000010 5-17 equ VTOC_ORIGIN,8 " MANIFEST  000003 5-18 equ SECTORS_PER_VTOCE,3 " MANIFEST  000005 5-19 equ VTOCES_PER_RECORD,5 " MANIFEST  001750 5-20 equ DEFAULT_HCPART_SIZE,1000 " MANIFEST  076036 5-21 equ MAX_VTOCE_PER_PACK,31774 " MANIFEST  5-22  5-23 "END INCLUDE FILE disk_pack.incl.alm  5-14  5-15 include vol_map  6-1  6-2  6-3 " BEGIN INCLUDE FILE vol_map.incl.alm  6-4  6-5  6-6 "Created 08/13/75 1411.7 edt Wed by convert_include_file, 6-7 " Version of 08/13/75 1339.8 edt Wed.  6-8  6-9 "Made from >udd>m>nss>include>vol_map.incl.pl1,  6-10 " modified 02/20/75 1020.2 edt Thu  6-11  6-12  000000 6-13 equ vol_map.n_rec,0  000001 6-14 equ vol_map.base_add,1 000002 6-15 equ vol_map.n_free_rec,2  000003 6-16 equ vol_map.bit_map_n_words,3  000100 6-17 equ vol_map.bit_map,64 6-18  6-19 "END INCLUDE FILE vol_map.incl.alm 6-16  6-17 " 6-18  6-19 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  7-20  7-21 include old_fs_vol_label  8-1  8-2  8-3 "BEGIN INCLUDE FILE old_fs_vol_label.incl.alm  8-4  8-5  8-6 "Created 03/27/82 1424.5 est Sat by convert_include_file, 8-7 " Version of 12/01/81 1540.3 est Tue.  8-8  8-9 "Made from >udd>m>bongo>htd>nsd>include>old_fs_vol_label.incl.pl1, 8-10 " modified 03/27/82 1424.5 est Sat  8-11  8-12 "  8-13 " Structure old_label  8-14 "  002000 8-15 equ old_label_size,1024  8-16  8-17  000000 8-18 equ old_label.gcos,0  000500 8-19 equ old_label.Multics,320  000510 8-20 equ old_label.version,328  000511 8-21 equ old_label.mfg_serial,329  000521 8-22 equ old_label.pv_name,337  000531 8-23 equ old_label.lv_name,345  000541 8-24 equ old_label.pvid,353 000542 8-25 equ old_label.lvid,354 000543 8-26 equ old_label.root_pvid,355  000544 8-27 equ old_label.time_registered,356 " DOUBLE 000546 8-28 equ old_label.n_pv_in_lv,358  000547 8-29 equ old_label.vol_size,359 000550 8-30 equ old_label.vtoc_size,360  8-31  000551 8-32 equ old_label.not_used_word,361  400000 8-33 bool old_label.not_used,400000 " DU  000551 8-34 equ old_label.private_word,361 200000 8-35 bool old_label.private,200000 " DU 000551 8-36 equ old_label.flagpad_word,361 000000 8-37 equ old_label.flagpad_shift,0  8-38  000552 8-39 equ old_label.max_access_class,362 " DOUBLE  000554 8-40 equ old_label.min_access_class,364 " DOUBLE  000556 8-41 equ old_label.password,366 " DOUBLE  000600 8-42 equ old_label.time_mounted,384 " DOUBLE  000602 8-43 equ old_label.time_map_updated,386 " DOUBLE  000604 8-44 equ old_label.time_unmounted,388 " DOUBLE  000606 8-45 equ old_label.time_salvaged,390 " DOUBLE  000610 8-46 equ old_label.time_of_boot,392 " DOUBLE  000612 8-47 equ old_label.pd_time,394 " DOUBLE 000614 8-48 equ old_label.last_pvtx,396  000617 8-49 equ old_label.err_hist_size,399  000620 8-50 equ old_label.time_last_dmp,400 " DOUBLE  000626 8-51 equ old_label.time_last_reloaded,406 " DOUBLE  000700 8-52 equ old_label.root,448 " LEVEL 2  8-53  400000 8-54 bool old_label.here,400000 " DU  8-55  000701 8-56 equ old_label.root_vtocx,449  000702 8-57 equ old_label.shutdown_state,450  8-58  000703 8-59 equ old_label.pd_active_word,451  400000 8-60 bool old_label.pd_active,400000 " DU  8-61  000704 8-62 equ old_label.disk_table_vtocx,452 000705 8-63 equ old_label.disk_table_uid,453  000706 8-64 equ old_label.esd_state,454  001003 8-65 equ old_label.nparts,515  001004 8-66 equ old_label.parts,516 " LEVEL 2 8-67  001004 8-68 equ old_label.part,516 001005 8-69 equ old_label.frec,517 001006 8-70 equ old_label.nrec,518 8-71  8-72 "END INCLUDE FILE old_fs_vol_label.incl.alm  8-22  8-23 include config_cards  9-1 " 9-2 " Begin include file ...... config_cards.incl.alm  9-3 " 3/75 THVV nss 9-4 " Last modified 3/12/76 by Noel I. Morris  9-5  000001 9-6 equ ROOT_cd.sub,1  000002 9-7 equ ROOT_cd.drive,2  9-8  000001 9-9 equ PART_cd.name,1 000002 9-10 equ PART_cd.sub,2  000003 9-11 equ PART_cd.drive,3  9-12  000001 9-13 equ PRPH_cd.sub,1  000002 9-14 equ PRPH_cd.iom,2  000003 9-15 equ PRPH_cd.chn,3  000004 9-16 equ PRPH_cd.model,4  9-17  000001 9-18 equ DISK_cd.sub,1  000002 9-19 equ DISK_cd.iom,2  000003 9-20 equ DISK_cd.chn,3  000004 9-21 equ DISK_cd.nchan,4  000005 9-22 equ DISK_cd.model,5  000006 9-23 equ DISK_cd.ndrives,6  9-24  000001 9-25 equ CHNL_cd.sub,1  000002 9-26 equ CHNL_cd.iom,2  000003 9-27 equ CHNL_cd.chn,3  000004 9-28 equ CHNL_cd.nchan,4  9-29  000001 9-30 equ BULK_cd.frec,1 000002 9-31 equ BULK_cd.nrec,2 9-32  9-33 " End of include file ...... config_cards.incl.alm  9-34  9-24  9-25  9-26  9-27 " Label buffer segment equivalences.  9-28  9-29 " SAVE Header.  9-30  000000 9-31 equ svh,0  000001 9-32 equ svh.version,svh+1 version #  000000 9-33 equ svh.allsw,svh+0 nonzero if saving everything  000002 9-34 equ svh.nvol,svh+2 number of volumes saved 000003 9-35 equ svh.curvol,svh+3 current volume being processed  000020 9-36 equ svh.sva,16 array of volume info  9-37  004000 9-38 equ svh_length,2048  9-39  9-40  9-41 " Volume Preamble.  9-42  004000 9-43 equ svp,svh+svh_length 004000 9-44 equ svp.version,svp+0 version #  004001 9-45 equ svp.recs,svp+1 # of records on this volume 004020 9-46 equ svp.sva,svp+16 volume info 004040 9-47 equ svp.bits,svp+32 bit map  9-48  006000 9-49 equ svp_length,3072  9-50  9-51  9-52 " Volume Label. 9-53  012000 9-54 equ svl,svp+svp_length 012000 9-55 equ LABEL,svl+LABEL_ADDR*1024  014000 9-56 equ MAP,svl+VOLMAP_ADDR*1024  9-57  010000 9-58 equ svl_length,DUMPER_BIT_MAP_ADDR*1024  9-59  9-60  9-61 " SAVE Header Copy. 9-62  022000 9-63 equ svhc,svl+svl_length  9-64  9-65  9-66 " Volume Info.  9-67  000000 9-68 equ sva.pvname,0 physical volume name  000010 9-69 equ sva.pvid,8 physical volume ID  000011 9-70 equ sva.first,9 first record saved 000012 9-71 equ sva.last,10 last record saved  000013 9-72 equ sva.done,11 current record saved  000014 9-73 equ sva.devt,12 device type word  000015 9-74 equ sva.vtoc_size,13 size of VTOC area on volume  000016 9-75 equ sva.skip,14 nonzero to skip this volume  9-76  000020 9-77 equ sva_size,16  9-78  9-79 " 9-80  000000 0a 000436 7420 00 9-81 stx2 x2  000001 aa 012271 7020 00 9-82 tsx2 init_io  9-83  000002 aa 012245 7020 00 9-84 tsx2 ttyinit get tty requests 000003 0a 000436 0000 00 9-85 arg ttyrequest 9-86  000004 aa 012254 2350 00 9-87 lda geastab set for MVT instruction  000005 0a 000211 7550 00 9-88 sta gvmvt ..  9-89  000006 aa 044000 6350 00 9-90 eaa label_buff_len length of label buffer in AU  000007 aa 012221 7020 00 9-91 tsx2 makesdw make a segment  000010 0a 000436 7100 00 9-92 tra x2 Don't clobber core.  000011 aa 0 00004 7571 00 9-93 staq ds|bf*2 store SDW  9-94  000012 aa 100000 6350 00 9-95 eaa disk_buff_len length of disk buffer segment in AU  000013 aa 012221 7020 00 9-96 tsx2 makesdw make another segment 000014 0a 000436 7100 00 9-97 tra x2  000015 aa 0 00002 7571 00 9-98 staq ds|tmp*2 set SDW for temporary segment  000016 aa 000000 5320 00 9-99 cams  9-100  000017 0a 001752 2360 00 9-101 ldq =v12/,24/label_buff_len*4 length of seg 2 in QL  000020 aa 000140 1004 00 9-102 mlr (),(pr,rl),fill(0) zero seg 2  000021 0a 000021 000000 9-103 desc9a *,0 000022 aa 200000 000006 9-104 desc9a bf|0,ql 9-105  9-106 " 9-107  000023 aa 2 00000 4501 00 9-108 stz bf|svh.allsw clear all switch  9-109  000024 aa 000002 2350 07 9-110 lda 2,dl set version number  000025 aa 2 00001 7551 00 9-111 sta bf|svh.version ..  9-112  000026 0a 000436 2220 00 9-113 ldx2 x2 get command line and scan it ourselvs 9-114  000027 aa 7 00000 2351 12 9-115 lda mem|0,2 get address of command line  000030 aa 777777 3750 07 9-116 ana =-1,dl .. 000031 aa 000002 7350 00 9-117 als 2 get character offset  000032 aa 0 00000 1005 05 9-118 mlr (pr,al),() copy command line  000033 aa 700000 000124 9-119 desc9a mem|0,84  000034 aa 012001 000124 9-120 desc9a line,84 9-121  000035 aa 012200 7020 00 9-122 tsx2 scan now scan to get dec numbers too 9-123  000036 aa 012040 2350 00 9-124 lda arg get name of command  000037 0a 001753 6750 00 9-125 era =h save if SAVE, 000040 0a 000634 7550 00 9-126 sta savesw make switch zero  000041 aa 000065 2350 07 9-127 lda =o65,dl set the default tape density  000042 0a 000643 7550 00 9-128 sta tapeden save it for later use 9-129  000043 aa 000001 6210 00 9-130 eax1 1 use X1 for argument index  000044 aa 012040 2350 11 9-131 arglp: lda arg,1 get next argument 000045 aa 000000 6270 00 9-132 eax7 0 search list of args  000046 aa 022300 5202 02 9-133 rpt nargs,2,tze .. 000047 0a 000054 1150 17 9-134 cmpa args,7 ..  000050 0a 000160 6064 00 9-135 ttn badarg if not found, complain 000051 aa 777777 7160 17 9-136 xec -1,7 perform appropriate action  000052 aa 000001 6210 11 9-137 eax1 1,1 step to next arg 000053 0a 000044 7100 00 9-138 tra arglp and process next arg  9-139  000054 9-140 args:  000054 aa 202 251 312 526 9-141 bci " brief"  000055 aa 012236 5540 20 9-142 stc1 disk_brief,*  000056 aa 202 020 214 343 9-143 bci " all"  000057 aa 2 00000 5541 00 9-144 stc1 bf|svh.allsw  000060 aa 202 063 214 725 9-145 bci " tape"  000061 0a 000112 7100 00 9-146 tra argtape  000062 aa 202 024 316 242 9-147 bci " disk"  000063 0a 000121 7100 00 9-148 tra argdisk  000064 aa 202 023 464 770 9-149 bci " copy"  000065 0a 000131 7100 00 9-150 tra argcopy  000066 aa 202 475 100 000 9-151 bci " d=800"  000067 0a 000076 7100 00 9-152 tra arg800 000070 aa 247 501 060 000 9-153 bci "d=1600"  000071 0a 000102 7100 00 9-154 tra arg1600  000072 aa 247 506 020 500 9-155 bci "d=6250"  000073 0a 000106 7100 00 9-156 tra arg6250  000074 aa 777777 777777 9-157 dec -1 000075 0a 000166 7100 00 9-158 tra argend 9-159  000011 9-160 equ nargs,(*-args)/2  9-161  9-162 " 9-163  000076 9-164 arg800: 000076 aa 000060 2350 07 9-165 lda =o60,dl  000077 0a 000643 7550 00 9-166 sta tapeden  000100 aa 000001 6210 11 9-167 eax1 1,1  000101 0a 000044 7100 00 9-168 tra arglp  000102 9-169 arg1600:  000102 aa 000065 2350 07 9-170 lda =o65,dl  000103 0a 000643 7550 00 9-171 sta tapeden  000104 aa 000001 6210 11 9-172 eax1 1,1  000105 0a 000044 7100 00 9-173 tra arglp  000106 9-174 arg6250:  000106 aa 000041 2350 07 9-175 lda =o41,dl  000107 0a 000643 7550 00 9-176 sta tapeden  000110 aa 000001 6210 11 9-177 eax1 1,1  000111 0a 000044 7100 00 9-178 tra arglp  9-179  000112 0a 001754 2350 00 9-180 argtape: lda =h ntape set name of module  000113 0a 000640 7550 00 9-181 sta modulename ..  000114 0a 001755 2350 00 9-182 lda =h tape and name of subsystem  000115 0a 000641 7550 00 9-183 sta subsysname ..  000116 0a 000635 5540 00 9-184 stc1 tapesw set switch to indicate tape usage 000117 0a 000636 4500 00 9-185 stz copysw clear switch indicating disk copy  000120 0a 000141 7100 00 9-186 tra setdrives now try to get drive numbers  9-187  000121 0a 001756 2350 00 9-188 argdisk: lda =h ndisk set name of module  000122 0a 000640 7550 00 9-189 sta modulename ..  000123 aa 000001 6210 11 9-190 eax1 1,1 step to next arg 000124 aa 012040 2350 11 9-191 lda arg,1 get name of disk subsystem  000125 0a 000641 7550 00 9-192 sta subsysname and save  000126 0a 000635 4500 00 9-193 stz tapesw clear tape usage flag  000127 0a 000636 4500 00 9-194 stz copysw clear disk copy flag  000130 0a 000141 7100 00 9-195 tra setdrives try to get drive numbers  9-196  000131 0a 001757 2350 00 9-197 argcopy: lda =h ncopy set module name  000132 0a 000640 7550 00 9-198 sta modulename ..  000133 aa 000001 6210 11 9-199 eax1 1,1 step to next arg 000134 aa 012040 2350 11 9-200 lda arg,1 get name of disk subsystem  000135 0a 000641 7550 00 9-201 sta subsysname and save  000136 0a 000635 4500 00 9-202 stz tapesw clear tape usage flag  000137 0a 000636 5540 00 9-203 stc1 copysw set disk copy flag  000140 0a 000141 7100 00 9-204 tra setdrives get drive numbers  9-205  000141 aa 000000 6270 00 9-206 setdrives:eax7 0 initialize tape index 000142 aa 000001 6210 11 9-207 drivlp: eax1 1,1 step argument index  000143 aa 012060 2350 11 9-208 lda darg,1 get tape number  000144 0a 000152 6044 00 9-209 tmoz drivend end of list  000145 aa 000077 1150 07 9-210 cmpa 63,dl don't allow numbers > idcw device field  000146 0a 000152 6054 00 9-211 tpnz drivend ..  000147 0a 000645 7550 17 9-212 sta taplst,7 set tape number in list  000150 aa 000001 6270 17 9-213 eax7 1,7 step to next slot in list  000151 0a 000142 7100 00 9-214 tra drivlp .. 9-215  000152 aa 000000 1070 03 9-216 drivend: cmpx7 0,du were any numbers supplied? 000153 0a 000044 6000 00 9-217 tze arglp if not, use default setting 000154 0a 000644 7470 00 9-218 stx7 ntapes set number of tapes  9-219  000155 0a 000645 2350 00 9-220 lda taplst get first tape number  000156 0a 000642 7550 00 9-221 sta tapen and set it for ntape package  000157 0a 000044 7100 00 9-222 tra arglp process rest of arguments  9-223  000160 aa 012241 7020 00 9-224 badarg: tsx2 erpt else, print error  000161 aa 012 136 147 040 9-225 acc '^g unknown' arg unknown  000162 aa 165 156 153 156 000163 aa 157 167 156 000 000164 aa 012040 0000 11 9-226 arg arg,1  000165 0a 000436 7100 00 9-227 tra x2 9-228  9-229 " 9-230  000166 aa 2 00002 4501 00 9-231 argend: stz bf|svh.nvol initialize number of volumes  9-232  000167 aa 012202 7020 00 9-233 gvloop: tsx2 nextline read an input line  9-234  000170 aa 012040 2350 00 9-235 lda arg get argument  000171 0a 001760 1150 00 9-236 cmpa =h end "end"?  000172 0a 000351 6000 00 9-237 tze setup if so, start processing 000173 0a 001761 1150 00 9-238 cmpa =h quit "quit"? 000174 0a 000436 6000 00 9-239 tze x2 if so, exit command  9-240  000175 aa 000000 6200 00 9-241 eax0 0 start with first arg  000176 aa 012223 7020 00 9-242 tsx2 argmul and get device address extent 000177 0a 000167 7100 00 9-243 tra gvloop .. 9-244  000200 aa 012040 2350 10 9-245 lda arg,0 look at last arg  000201 0a 001762 1150 00 9-246 cmpa =-1 was it supplied? 000202 0a 000473 6000 00 9-247 tze nolblerr if not, error  9-248  000203 aa 2 00002 2361 00 9-249 ldq bf|svh.nvol get current volume number  000204 aa 000020 4020 07 9-250 mpy sva_size,dl compute array index  000205 aa 2 00020 3701 06 9-251 epp xs1,bf|svh.sva,ql get pointer in xs1  9-252  000206 aa 020100 1604 20 9-253 mvt (id),(pr),fill(20) copy pvname and translate to ASCII  000207 aa 012100 0000 10 9-254 arg earg,0 000210 aa 400000 000040 9-255 desc9a xs1|sva.pvname,32  000211 0a 000211 0000 00 9-256 gvmvt: arg *  9-257  000212 0a 000234 7020 00 9-258 tsx2 cklabel read and check volume label  9-259  000213 aa 4 00016 4501 00 9-260 stz xs1|sva.skip clear skip indicator  9-261  000214 aa 012224 2350 20 9-262 lda amdvt,* get devt word 000215 aa 4 00014 7551 00 9-263 sta xs1|sva.devt save  9-264  000216 0a 000636 2340 00 9-265 szn copysw is this a SAVE COPY?  000217 0a 000225 6000 00 9-266 tze gvfirst nope, we don't want to make the following check  9-267  000220 aa 2 00002 2361 00 9-268 ldq bf|svh.nvol get the volume number  000221 0a 000225 6000 00 9-269 tze gvfirst first time, we cannot check with the last entry  9-270  000222 aa 000020 3360 07 9-271 lcq =o20,dl load mask 000223 aa 4 77774 2111 00 9-272 cmk xs1|sva.devt-sva_size check the device type with the last volume entry 000224 0a 000565 6010 00 9-273 tnz devterr not the same, this is not allowed for SAVE COPY  9-274  000225 aa 012225 2350 20 9-275 gvfirst: lda amfirst,* get first record to process 000226 aa 4 00011 7551 00 9-276 sta xs1|sva.first save 000227 aa 4 00013 7551 00 9-277 sta xs1|sva.done ..  9-278  000230 aa 012226 2350 20 9-279 lda amlast,* get last record to process  000231 aa 4 00012 7551 00 9-280 sta xs1|sva.last save  9-281  000232 aa 2 00002 0541 00 9-282 aos bf|svh.nvol step volume index  000233 0a 000167 7100 00 9-283 tra gvloop and continue to next one  9-284  9-285 " 9-286  000234 0a 000347 7420 00 9-287 cklabel: stx2 cklbx2 save X2  9-288  000235 aa 012224 2350 20 9-289 lda amdvt,* for bulk, any is ok.  000236 aa 000017 3750 07 9-290 ana =o17,dl  000237 aa 000001 1150 07 9-291 cmpa 1,dl bulk?  000240 0a 000347 6000 00 9-292 tze cklbx2 yeh, ok.  9-293  000241 aa 000000 2350 07 9-294 lda LABEL_ADDR,dl get record number of disk label  000242 aa 012216 7020 00 9-295 tsx2 mulbos convert to BOS sector address 000243 aa 012224 0000 20 9-296 arg amdvt,*  000244 0a 000436 7100 00 9-297 tra x2 9-298  000245 aa 012211 7020 00 9-299 tsx2 rdev read it in  000246 aa 012224 0000 20 9-300 arg amdvt,*  000247 aa 2 12000 0001 00 9-301 arg bf|LABEL  000250 0a 000441 7100 00 9-302 tra lblioerr  9-303  000251 aa 0 40000 1065 00 9-304 cmpc (pr),(),fill(040) check the label 000252 aa 212500 000040 9-305 desc9a bf|LABEL+label.Multics,32  000253 0a 000670 000040 9-306 desc9a Multics_label,32  000254 0a 000260 6000 00 9-307 tze mulabel tra if Multics storage system disk  9-308  000255 0a 000634 2340 00 9-309 szn savesw SAVE or RESTOR?  000256 0a 000454 6000 00 9-310 tze lblerr if SAVE, complain about bad label  000257 0a 000347 7100 00 9-311 tra cklbx2 if RESTOR, write on unlabelled disk  9-312  000260 aa 0 00100 1065 00 9-313 mulabel: cmpc (pr),(pr) test the physical volume name  000261 aa 212521 000040 9-314 hisldesc: desc9a bf|LABEL+label.pv_name,32  000262 aa 400000 000040 9-315 myldesc: desc9a xs1|sva.pvname,32  000263 0a 000505 6010 00 9-316 tnz pvnamerr if not equal, complain  000264 aa 012241 7020 00 9-317 tsx2 erpt print the volume name  000265 aa 053 040 040 040 9-318 acc " Multics storage system volume ^A."  000266 aa 040 040 040 040 000267 aa 040 040 040 115 000270 aa 165 154 164 151 000271 aa 143 163 040 163 000272 aa 164 157 162 141 000273 aa 147 145 040 163 000274 aa 171 163 164 145 000275 aa 155 040 166 157 000276 aa 154 165 155 145 000277 aa 040 136 101 056 000300 0a 000261 0000 00 9-319 arg hisldesc  9-320  000301 aa 2 12602 2371 00 9-321 ldaq bf|LABEL+label.time_map_updated  000302 aa 012270 7020 00 9-322 tsx2 cvclock  000303 0a 000666 7570 00 9-323 staq time_map_updated  9-324  000304 aa 012241 7020 00 9-325 tsx2 erpt  000305 aa 041 040 040 040 9-326 acc " Time last updated ^g ^g"  000306 aa 040 040 040 040 000307 aa 040 040 040 124 000310 aa 151 155 145 040 000311 aa 154 141 163 164 000312 aa 040 165 160 144 000313 aa 141 164 145 144 000314 aa 040 136 147 040 000315 aa 136 147 000 000 000316 0a 000666 0000 00 9-327 arg time_map_updated  000317 0a 000667 0000 00 9-328 arg time_map_updated+1 9-329  000320 aa 2 12541 2351 00 9-330 lda bf|LABEL+label.pvid  000321 aa 4 00010 7551 00 9-331 sta xs1|sva.pvid copy the volume ID  9-332  000322 aa 2 12550 2351 00 9-333 lda bf|LABEL+label.vtoc_size  000323 aa 4 00015 7551 00 9-334 sta xs1|sva.vtoc_size copy the VTOC size  9-335  000324 0a 000634 2340 00 9-336 szn savesw doing save?  000325 0a 000347 6010 00 9-337 tnz cklbx2 if not, skip following 9-338  000326 aa 2 00000 2341 00 9-339 szn bf|svh.allsw doing SAVE ALL?  000327 0a 000347 6010 00 9-340 tnz cklbx2 if so, don't check for consistent volumes  9-341  000330 aa 2 12604 2351 00 9-342 lda bf|LABEL+label.volmap_version Check label format  000331 0a 000336 6044 00 9-343 tmoz pre_MR10_label Old  000332 aa 000002 1150 07 9-344 cmpa 2,dl MR 10.x  000333 0a 000336 6054 00 9-345 tpnz pre_MR10_label No  000334 aa 2 12612 2371 00 9-346 ldaq bf|LABEL+label.time_unmounted 000335 0a 000337 7100 00 9-347 tra common_label  000336 9-348 pre_MR10_label: 000336 aa 2 12604 2371 00 9-349 ldaq bf|LABEL+old_label.time_unmounted 000337 9-350 common_label:  000337 0a 000700 7570 00 9-351 staq time_unmounted  9-352  000340 aa 2 12602 2371 00 9-353 ldaq bf|LABEL+label.time_map_updated Get time of map update.  000341 0a 000700 1170 00 9-354 cmpaq time_unmounted Same as time of unmount?  000342 0a 000347 6000 00 9-355 tze cklbx2 If so, volume is OK.  000343 aa 2 12606 1171 00 9-356 cmpaq bf|LABEL+label.time_salvaged Same as time salvaged? 000344 0a 000542 6010 00 9-357 tnz allerr If not, must do SAVE ALL.  000345 0a 000700 1170 00 9-358 cmpaq time_unmounted If so, must be later than unmount.  000346 0a 000542 6044 00 9-359 tmoz allerr Otherwise, must do SAVE ALL.  9-360  000347 0a 000347 6220 00 9-361 cklbx2: eax2 * restore X2  000350 aa 000000 7100 12 9-362 tra 0,2 and return  9-363  9-364 " 9-365  000351 0a 000633 2340 00 9-366 setup: szn nogo did errors occur?  000352 0a 000616 6010 00 9-367 tnz stopit if so, stop dead in our tracks 9-368  000353 aa 006000 6360 00 9-369 eaq ntape_org origin of tape package in QU  000354 0a 000640 2350 00 9-370 lda modulename 000355 aa 012206 7020 00 9-371 tsx2 ldcom load in the tape package  000356 0a 000436 7100 00 9-372 tra x2 9-373  000357 0a 000641 2350 00 9-374 lda subsysname get name of subsystem  000360 aa 006004 7020 00 9-375 tsx2 inittape init tape package  000361 0a 000643 000000 9-376 zero tapeden send the density argument  000362 0a 000436 000000 9-377 zero x2 fatal error return point for opens  000363 0a 000436 7100 00 9-378 tra x2 error return  9-379  000364 aa 000004 2350 03 9-380 lda 4,du thread queue forwards  000365 0a 000636 2340 00 9-381 szn copysw unless copying disk  000366 0a 000370 6000 00 9-382 tze *+2 ..  000367 aa 000000 5310 00 9-383 neg 0 in which case, thread it backwards  000370 0a 000637 7550 00 9-384 sta qdelta .. 9-385  000371 0a 001340 6230 00 9-386 eax3 ql thread tape queue 000372 0a 001763 2350 00 9-387 lda =v3/tmp,15/,18/1024 fill in segment and length 000373 aa 000002 7550 13 9-388 thq: sta 2,3  000374 aa 000000 6220 13 9-389 eax2 0,3 queue index in X2  000375 0a 000637 0220 00 9-390 adlx2 qdelta X2 points to next entry  000376 aa 000000 7420 13 9-391 stx2 0,3 set pointer to next entry  000377 aa 000004 6230 13 9-392 eax3 4,3  000400 aa 002000 0750 03 9-393 ada =1024,du  000401 0a 001540 1030 03 9-394 cmpx3 ql+128,du  000402 0a 000373 6040 00 9-395 tmi thq  9-396  000403 0a 000636 2340 00 9-397 szn copysw copying disk?  000404 0a 000410 6010 00 9-398 tnz thq1 if so, must take special action  9-399  000405 0a 001334 6230 00 9-400 eax3 qp  000406 0a 001534 7430 00 9-401 stx3 ql+128-4 make queue wrap 000407 0a 000420 7100 00 9-402 tra qth  9-403  000410 0a 001374 6230 00 9-404 thq1: eax3 ql+32-4 X3 points to start of first group of 8  000411 0a 001334 7430 00 9-405 stx3 qp set pointer in preamble record  000412 aa 000040 6230 13 9-406 thq2: eax3 32,3 thread blocks together 000413 aa 777704 7430 13 9-407 stx3 -64+4,3 ..  000414 0a 001534 1030 03 9-408 cmpx3 ql+128-4,du  000415 0a 000412 6040 00 9-409 tmi thq2  000416 0a 001334 6230 00 9-410 eax3 qp get address of preamble record  000417 0a 001500 7430 00 9-411 stx3 ql+96 set pointer at end of last block of 8  9-412  000420 0a 001343 5540 00 9-413 qth: stc1 ql+3 put in stoppers 000421 0a 001443 5540 00 9-414 stc1 ql+64+3 and half way points to make 2 buffers  9-415  000422 aa 000001 2350 07 9-416 lda 1,dl set initial volume index 000423 aa 2 00003 7551 00 9-417 sta bf|svh.curvol ..  000424 0a 001540 7100 00 9-418 tra go go to beginning of SAVE/RESTOR program 9-419  9-420 " 9-421  000425 9-422 done:  000425 aa 012241 7020 00 9-423 tsx2 erpt  000426 aa 025 136 144 040 9-424 acc "^d records processed."  000427 aa 162 145 143 157 000430 aa 162 144 163 040 000431 aa 160 162 157 143 000432 aa 145 163 163 145 000433 aa 144 056 000 000 000434 0a 001315 0000 00 9-425 arg recs  000435 aa 006010 7020 00 9-426 tsx2 endtape close out the tape  9-427  000436 9-428 ttyrequest: 000436 0a 000436 6220 00 9-429 x2: eax2 * restore X2  000437 aa 000001 3350 07 9-430 lca 1,dl don't chain to another command  000440 aa 7 00001 7101 12 9-431 tra mem|1,2 and return to BOS main control  9-432  9-433 " 9-434  000441 aa 012241 7020 00 9-435 lblioerr: tsx2 erpt 000442 aa 041 106 141 164 9-436 acc "Fatal error reading volume label."  000443 aa 141 154 040 145 000444 aa 162 162 157 162 000445 aa 040 162 145 141 000446 aa 144 151 156 147 000447 aa 040 166 157 154 000450 aa 165 155 145 040 000451 aa 154 141 142 145 000452 aa 154 056 000 000 000453 0a 000436 7100 00 9-437 tra x2 9-438  000454 aa 012241 7020 00 9-439 lblerr: tsx2 erpt  000455 aa 056 126 157 154 9-440 acc "Volume is not a Multics storage system volume."  000456 aa 165 155 145 040 000457 aa 151 163 040 156 000460 aa 157 164 040 141 000461 aa 040 115 165 154 000462 aa 164 151 143 163 000463 aa 040 163 164 157 000464 aa 162 141 147 145 000465 aa 040 163 171 163 000466 aa 164 145 155 040 000467 aa 166 157 154 165 000470 aa 155 145 056 000 000471 0a 000633 7500 00 9-441 stc2 nogo  000472 0a 000167 7100 00 9-442 tra gvloop 9-443  000473 aa 012241 7020 00 9-444 nolblerr: tsx2 erpt 000474 aa 031 116 157 040 9-445 acc "No volume label supplied."  000475 aa 166 157 154 165 000476 aa 155 145 040 154 000477 aa 141 142 145 154 000500 aa 040 163 165 160 000501 aa 160 154 151 145 000502 aa 144 056 000 000 000503 0a 000633 7500 00 9-446 stc2 nogo  000504 0a 000167 7100 00 9-447 tra gvloop 9-448  000505 aa 012241 7020 00 9-449 pvnamerr: tsx2 erpt 000506 aa 054 120 150 171 9-450 acc "Physical volume name does not match request." 000507 aa 163 151 143 141 000510 aa 154 040 166 157 000511 aa 154 165 155 145 000512 aa 040 156 141 155 000513 aa 145 040 144 157 000514 aa 145 163 040 156 000515 aa 157 164 040 155 000516 aa 141 164 143 150 000517 aa 040 162 145 161 000520 aa 165 145 163 164 000521 aa 056 000 000 000 000522 aa 012241 7020 00 9-451 tsx2 erpt  000523 aa 051 122 145 161 9-452 acc "Request is for ^A, but volume name is ^A."  000524 aa 165 145 163 164 000525 aa 040 151 163 040 000526 aa 146 157 162 040 000527 aa 136 101 054 040 000530 aa 142 165 164 040 000531 aa 166 157 154 165 000532 aa 155 145 040 156 000533 aa 141 155 145 040 000534 aa 151 163 040 136 000535 aa 101 056 000 000 000536 0a 000262 0000 00 9-453 arg myldesc  000537 0a 000261 0000 00 9-454 arg hisldesc  000540 0a 000633 7500 00 9-455 stc2 nogo  000541 0a 000167 7100 00 9-456 tra gvloop 9-457  000542 aa 012241 7020 00 9-458 allerr: tsx2 erpt  000543 aa 032 126 157 154 9-459 acc "Volume requires salvaging."  000544 aa 165 155 145 040 000545 aa 162 145 161 165 000546 aa 151 162 145 163 000547 aa 040 163 141 154 000550 aa 166 141 147 151 000551 aa 156 147 056 000 000552 aa 012241 7020 00 9-460 tsx2 erpt  000553 aa 036 125 163 145 9-461 acc "Use ALL option to save volume."  000554 aa 040 101 114 114 000555 aa 040 157 160 164 000556 aa 151 157 156 040 000557 aa 164 157 040 163 000560 aa 141 166 145 040 000561 aa 166 157 154 165 000562 aa 155 145 056 000 000563 0a 000633 7500 00 9-462 stc2 nogo  000564 0a 000167 7100 00 9-463 tra gvloop 9-464  000565 aa 012241 7020 00 9-465 devterr: tsx2 erpt  000566 aa 127 115 165 154 9-466 acc "Multiple device types cannot be processed by SAVE COPY, process each type individually."  000567 aa 164 151 160 154 000570 aa 145 040 144 145 000571 aa 166 151 143 145 000572 aa 040 164 171 160 000573 aa 145 163 040 143 000574 aa 141 156 156 157 000575 aa 164 040 142 145 000576 aa 040 160 162 157 000577 aa 143 145 163 163 000600 aa 145 144 040 142 000601 aa 171 040 123 101 000602 aa 126 105 040 103 000603 aa 117 120 131 054 000604 aa 040 160 162 157 000605 aa 143 145 163 163 000606 aa 040 145 141 143 000607 aa 150 040 164 171 000610 aa 160 145 040 151 000611 aa 156 144 151 166 000612 aa 151 144 165 141 000613 aa 154 154 171 056 000614 0a 000633 7500 00 9-467 stc2 nogo  000615 0a 000167 7100 00 9-468 tra gvloop 9-469  000616 aa 012241 7020 00 9-470 stopit: tsx2 erpt  000617 aa 053 105 162 162 9-471 acc "Errors found in arguments. Cannot proceed."  000620 aa 157 162 163 040 000621 aa 146 157 165 156 000622 aa 144 040 151 156 000623 aa 040 141 162 147 000624 aa 165 155 145 156 000625 aa 164 163 056 040 000626 aa 040 103 141 156 000627 aa 156 157 164 040 000630 aa 160 162 157 143 000631 aa 145 145 144 056 000632 0a 000436 7100 00 9-472 tra x2 9-473  9-474 " 9-475  000633 9-476 nogo: bss ,1 non-zero if error(s) in args  000634 9-477 savesw: bss ,1 zero if performing SAVE 000635 0a 000635 0000 00 9-478 tapesw: arg * non-zero if using tape  000636 aa 000000 0000 00 9-479 copysw: arg 0 non-zero if copying disk 000637 9-480 qdelta: bss ,1 used for threading queue  000640 9-481 modulename: 000640 aa 204 563 214 725 9-482 bci " ntape" name of SAVE/RESTOR I/O Module  000641 aa 202 063 214 725 9-483 subsysname:bci " tape" name of subsystem used for SAVE/RESTOR 000642 aa 000000 000001 9-484 tapen: oct 1 current tape number  000643 9-485 tapeden: bss ,1 tape density setting command  000644 aa 000002 000000 9-486 ntapes: zero 2,0 numbers of tapes and current index  000645 aa 000000 000001 9-487 taplst: oct 1 list of tapes to use 000646 aa 000000 000002 9-488 oct 2 default is tapes 1 & 2  000647 9-489 bss ,8 9-490  000657 9-491 pvbcname: bss ,6 BCD volume name  000665 aa 000000 0110 03 9-492 even  000666 9-493 time_map_updated:  000666 9-494 bss ,2 000670 9-495 Multics_label:  000670 aa 115 165 154 164 9-496 aci "Multics Storage System Volume",32 000671 aa 151 143 163 040 000672 aa 123 164 157 162 000673 aa 141 147 145 040 000674 aa 123 171 163 164 000675 aa 145 155 040 126 000676 aa 157 154 165 155 000677 aa 145 040 040 040 9-497 even  000700 9-498 time_unmounted: 000700 9-499 bss ,2 9-500 " 9-501  9-502 " This is the main loop subroutine for processing a volume. 9-503  9-504 " tsx2 savloop  9-505 " arg subr called for each 32K block  9-506  9-507  000702 0a 000736 7420 00 9-508 savloop: stx2 svlx2 save return  000703 0a 001340 6230 00 9-509 eax3 ql start at beginning of queue  9-510  000704 aa 2 04033 2351 00 9-511 lda bf|svp.sva+sva.done start ID  000705 aa 777740 3750 07 9-512 ana =o777740,dl  000706 0a 001314 7550 00 9-513 sta id 000707 aa 2 04034 2351 00 9-514 lda bf|svp.sva+sva.devt get device type word  000710 aa 000017 3750 07 9-515 ana =o17,dl mask device type  000711 aa 000022 7350 00 9-516 als 18 move to AU 000712 0a 001314 2550 00 9-517 orsa id insert in ID  000713 aa 2 00003 2351 00 9-518 lda bf|svh.curvol get volume index 000714 aa 000030 7350 00 9-519 als 24 as part of ID  000715 0a 001314 2550 00 9-520 orsa id ..  9-521  000716 0a 001252 7020 00 9-522 didl: tsx2 ckmore see if any more to do on device  000717 0a 000734 7100 00 9-523 tra didend if not, finish with volume 9-524  000720 aa 000004 7270 07 9-525 lxl7 tpskip,dl set preamble entry to be skipped  000721 0a 001334 4470 00 9-526 sxl7 qp ..  9-527  000722 0a 000772 7020 00 9-528 tsx2 getbits pick up free storage bits  000723 0a 000726 7100 00 9-529 tra nextaddr skip call if 32K block is all free  9-530  000724 0a 000736 2220 00 9-531 ldx2 svlx2 restore X2 000725 aa 000000 7020 32 9-532 tsx2 0,2* make subroutine call  9-533  000726 aa 2 04033 2351 00 9-534 nextaddr: lda bf|svp.sva+sva.done get first record not done 000727 aa 000037 2750 07 9-535 ora =o37,dl bump to next 0 mod 32 000730 aa 000001 0750 07 9-536 ada 1,dl ..  000731 aa 2 04033 7551 00 9-537 sta bf|svp.sva+sva.done .. 000732 0a 001314 7510 07 9-538 stca id,07 set next ID  000733 0a 000716 7100 00 9-539 tra didl and loop 9-540  000734 aa 000002 7270 07 9-541 didend: lxl7 tpdone,dl set stop at preamble queue entry  000735 0a 001334 4470 00 9-542 sxl7 qp ..  9-543  000736 0a 000736 6220 00 9-544 svlx2: eax2 * restore X2  000737 aa 000001 7100 12 9-545 tra 1,2 return to caller  9-546  9-547 " 9-548  9-549 " This is the tape I/O waiting and checking subroutine. 9-550  9-551 " eax3 queue_entry queue entry to be checked  9-552 " tsx2 savwait  9-553 " arg errsub subroutine called if tape error  9-554 " tra eot end of tape handler  9-555  9-556  000740 0a 000755 7420 00 9-557 savwait: stx2 svwx2 save X2  9-558  000741 aa 000000 7270 13 9-559 waitl: lxl7 0,3 get flags from queue entry 000742 aa 000010 3070 03 9-560 canx7 tpeot,du end of tape?  000743 0a 000757 6010 00 9-561 tnz saveot if so, switch to next reel 9-562  000744 aa 000002 3070 03 9-563 canx7 tpdone,du tape I/O finished?  000745 0a 000750 6010 00 9-564 tnz endwait if not, wait for completion  9-565  000746 aa 006007 7020 00 9-566 tsx2 runtape let tape run some more  000747 0a 000741 7100 00 9-567 tra waitl and test again  9-568  000750 0a 001315 0540 00 9-569 endwait: aos recs count records outputted  000751 aa 000001 3070 03 9-570 canx7 tpstat,du tape error?  000752 0a 000755 6000 00 9-571 tze svwx2 if not, skip error call 9-572  000753 0a 000755 2220 00 9-573 ldx2 svwx2 restore X2 000754 aa 000000 7020 32 9-574 tsx2 0,2* make error subroutine call  9-575  000755 0a 000755 6220 00 9-576 svwx2: eax2 * restore X2  000756 aa 000002 7100 12 9-577 tra 2,2 return to caller  9-578  9-579  000757 aa 006010 7020 00 9-580 saveot: tsx2 endtape finished with this tape  9-581  000760 0a 000644 7270 00 9-582 lxl7 ntapes get current tape index  000761 aa 000001 6270 17 9-583 eax7 1,7 bump by one  000762 0a 000644 1070 00 9-584 cmpx7 ntapes compare against total number 000763 0a 000765 6040 00 9-585 tmi *+2 ..  000764 aa 000000 6270 00 9-586 eax7 0 reset to first tape, if necessary  000765 0a 000645 2350 17 9-587 lda taplst,7 get next tape number 000766 0a 000642 7550 00 9-588 sta tapen and set it for ntape package  000767 0a 000644 4470 00 9-589 sxl7 ntapes remember current tape index  9-590  000770 0a 000755 2220 00 9-591 ldx2 svwx2 restore X2 000771 aa 000001 7100 12 9-592 tra 1,2 take EOT return  9-593  9-594 " 9-595  9-596 " This is the utility subroutine package for SAVE and RESTOR.  9-597  9-598 " tsx2 getbits get free storage for current 32K block  9-599 " tra nobits if all addresses are free 9-600  000772 0a 001025 4500 00 9-601 getbits: stz bits clear result 9-602  000773 aa 2 04033 2351 00 9-603 lda bf|svp.sva+sva.done  000774 aa 000005 7730 00 9-604 lrl 5  000775 aa 2 00000 2341 00 9-605 szn bf|svh.allsw if allsw, dont get bits from fsdct  000776 0a 001003 6010 00 9-606 tnz doall dump all sectors  9-607  000777 aa 000005 7350 00 9-608 als 5 now have 0 mod 32 address  001000 aa 0 03000 0605 05 9-609 csl (pr,al),(),bool(03) get 32 bits from map  001001 aa 204040 000040 9-610 descb bf|svp.bits,32  001002 0a 001025 010040 9-611 descb bits(1),32  9-612  001003 aa 000015 7720 00 9-613 doall: qrl 18-5 if we should start 001004 aa 400000 2350 03 9-614 lda =o400000,du in middle of string  001005 aa 000000 7310 02 9-615 ars 0,qu make n bits  001006 0a 001025 2550 00 9-616 orsa bits  9-617  001007 aa 2 04033 2351 00 9-618 lda bf|svp.sva+sva.done check if tail of bits should be done  001010 aa 000037 2750 07 9-619 ora =o37,dl  001011 aa 2 04032 1751 00 9-620 sba bf|svp.sva+sva.last  001012 0a 001020 6044 00 9-621 tmoz notail  001013 aa 000000 6270 05 9-622 eax7 0,al no, or in some tail bits  001014 aa 000000 2350 07 9-623 lda =0,dl  001015 aa 000001 3360 07 9-624 lcq =1,dl  001016 aa 000003 7370 17 9-625 lls 3,7  001017 0a 001025 2550 00 9-626 orsa bits  9-627  001020 0a 001764 2350 00 9-628 notail: lda =o377777777770 check if nothing to do  001021 0a 001025 3550 00 9-629 ansa bits  001022 0a 001025 1150 00 9-630 cmpa bits  001023 aa 000000 6000 12 9-631 tze 0,2  001024 aa 000001 7100 12 9-632 tra 1,2 normal return 9-633  9-634  001025 9-635 bits: bss ,1 free storage bits 9-636  9-637 " 9-638  9-639 " tsx2 disk_io to write or read block on disk  9-640 " arg io_proc either rdev or wdev  9-641  001026 0a 001075 7420 00 9-642 disk_io: stx2 diox2 save X2  001027 0a 001076 7400 00 9-643 stx0 diox2+1 and X0  001030 aa 2 04034 7201 00 9-644 lxl0 bf|svp.sva+sva.devt device ID in X0  001031 aa 000017 3600 03 9-645 anx0 =o17,du ..  9-646  001032 0a 001317 2350 00 9-647 again: lda top compute length of xfer  001033 0a 001316 1750 00 9-648 sba base  001034 aa 000004 7350 00 9-649 als 4 in 64 words 001035 0a 001166 7550 00 9-650 sta iolen  9-651  001036 0a 001316 2360 00 9-652 ldq base  001037 0a 001075 6000 00 9-653 tze diox2 all bits on 001040 aa 777777 3760 07 9-654 anq =-1,dl get addr only  001041 aa 012233 5060 70 9-655 div amaxio,*0 compute number of sectors left in unit  001042 aa 000000 5310 00 9-656 neg  001043 aa 012233 0750 70 9-657 ada amaxio,*0  001044 aa 000004 7350 00 9-658 als 4  001045 0a 001166 1150 00 9-659 cmpa iolen don't read past end of unit  001046 0a 001050 6050 00 9-660 tpl *+2  001047 0a 001166 7550 00 9-661 sta iolen  9-662  001050 aa 000050 7730 00 9-663 lrl 36+4  001051 0a 001316 2350 00 9-664 lda base set starting address 001052 aa 000037 3750 07 9-665 ana =o37,dl  001053 aa 000034 7350 00 9-666 als 10+18  001054 0a 001165 7550 00 9-667 sta iooff+1  9-668  001055 0a 001316 2350 00 9-669 lda base get multics address  001056 aa 777777 3750 07 9-670 ana =-1,dl 001057 0a 001316 0560 00 9-671 asq base  001060 aa 012216 7020 00 9-672 tsx2 mulbos  001061 0a 001766 0000 20 9-673 arg =itp(bf,svp.sva+sva.devt),*  001062 0a 000436 7100 00 9-674 tra x2 001063 0a 001166 7510 74 9-675 stca iolen,74  9-676  001064 0a 001166 2350 00 9-677 lda iolen  001065 0a 001075 2220 00 9-678 ldx2 diox2 restore X2 001066 aa 000000 7020 32 9-679 tsx2 0,2* do disk I/O 001067 0a 001766 0000 20 9-680 arg =itp(bf,svp.sva+sva.devt),*  001070 0a 001164 0000 20 9-681 arg iooff,*  001071 0a 001100 7100 00 9-682 tra ioerr tra if error  9-683  001072 0a 001316 2350 00 9-684 iod: lda base is more to be done?  001073 0a 001317 1150 00 9-685 cmpa top  001074 0a 001032 6040 00 9-686 tmi again  9-687  001075 0a 001075 6220 00 9-688 diox2: eax2 * restore X2  001076 0a 001076 6200 00 9-689 eax0 * and X0 001077 aa 000001 7100 12 9-690 tra 1,2 and return  9-691  9-692 " 9-693  001100 9-694 ioerr:  001100 aa 012236 2340 20 9-695 szn disk_brief,* brief mode?  001101 0a 001111 6010 00 9-696 tnz ioer1 if so, skip message 001102 aa 012241 7020 00 9-697 tsx2 erpt  001103 aa 026 163 164 141 9-698 acc 'start of 64 word reads'  001104 aa 162 164 040 157 001105 aa 146 040 066 064 001106 aa 040 167 157 162 001107 aa 144 040 162 145 001110 aa 141 144 163 000 9-699  001111 0a 001166 7210 00 9-700 ioer1: lxl1 iolen if error, read each 64 words 001112 aa 007777 3610 03 9-701 anx1 =o7777,du so pages after error will be read  9-702 "and so error will be isolated  9-703  001113 0a 001166 2350 00 9-704 sloop: lda iolen  001114 0a 001770 3750 00 9-705 ana =o777777770000 001115 aa 000001 2750 07 9-706 ora =1,dl  001116 0a 001075 2220 00 9-707 ldx2 diox2 restore X2 001117 aa 000000 7020 32 9-708 tsx2 0,2*  001120 0a 001766 0000 20 9-709 arg =itp(bf,svp.sva+sva.devt),*  001121 0a 001164 0000 20 9-710 arg iooff,*  001122 0a 001143 7100 00 9-711 tra iofatal if error  9-712  001123 aa 000100 2350 03 9-713 sner: lda 64,du bump addr  001124 0a 001165 0550 00 9-714 asa iooff+1  001125 aa 000014 7710 00 9-715 arl 12 001126 0a 001166 0550 00 9-716 asa iolen  001127 aa 777777 6210 11 9-717 eax1 -1,1  001130 0a 001113 6054 00 9-718 tpnz sloop 9-719  001131 aa 012236 2340 20 9-720 szn disk_brief,*  001132 0a 001142 6010 00 9-721 tnz ioer2  001133 aa 012241 7020 00 9-722 tsx2 erpt  001134 aa 024 145 156 144 9-723 acc 'end of 64 word reads' 001135 aa 040 157 146 040 001136 aa 066 064 040 167 001137 aa 157 162 144 040 001140 aa 162 145 141 144 001141 aa 163 000 000 000 001142 0a 001072 7100 00 9-724 ioer2: tra iod  9-725  9-726 " 9-727  001143 9-728 iofatal:  001143 0a 001166 2350 00 9-729 lda iolen print error with multics addr  001144 aa 012217 7020 00 9-730 tsx2 bosmul  001145 0a 001766 0000 20 9-731 arg =itp(bf,svp.sva+sva.devt),*  001146 0a 000436 7100 00 9-732 tra x2 001147 0a 001167 7550 00 9-733 sta error_sector  001150 aa 012241 7020 00 9-734 tsx2 erpt  001151 aa 037 165 156 162 9-735 acc 'unrecoverable error, record ^d.'  001152 aa 145 143 157 166 001153 aa 145 162 141 142 001154 aa 154 145 040 145 001155 aa 162 162 157 162 001156 aa 054 040 162 145 001157 aa 143 157 162 144 001160 aa 040 136 144 056 001161 0a 001167 0000 00 9-736 arg error_sector  9-737  001162 0a 001322 7500 00 9-738 stc2 fatalsw  001163 0a 001123 7100 00 9-739 tra sner  9-740  9-741  9-742 even  001164 aa 000001 000043 9-743 iooff: its tmp,* location for disk I/O 001165 0a 001164 000000 001166 9-744 iolen: bss ,1 vfd 24/sector_address,12/sector_count  001167 9-745 error_sector:  001167 9-746 bss ,1 for printing message  9-747  9-748 " 9-749  9-750 " tsx2 copy_to_preamble to copy cur vol info into preamble  9-751 "  9-752 " tsx2 copy_from_preamble to retrieve cur vol info from preamble  9-753 "  9-754  001170 9-755 copy_to_preamble:  001170 aa 2 00003 2361 00 9-756 ldq bf|svh.curvol get current volume number  001171 aa 000001 1760 07 9-757 sbq 1,dl minus 1  001172 aa 000020 4020 07 9-758 mpy sva_size,dl multiply by size of array element  001173 aa 000002 7360 00 9-759 qls 2 multiply by 4  9-760  001174 aa 0 00100 1005 06 9-761 mlr (pr,ql),(pr) copy array element into preamble  001175 aa 200020 000100 9-762 desc9a bf|svh.sva,sva_size*4  001176 aa 204020 000100 9-763 desc9a bf|svp.sva,sva_size*4  9-764  001177 aa 000000 7100 12 9-765 tra 0,2 return to caller  9-766  9-767  9-768  001200 9-769 copy_from_preamble: 001200 aa 2 00003 2361 00 9-770 ldq bf|svh.curvol get current volume number  001201 aa 000001 1760 07 9-771 sbq 1,dl minus 1  001202 aa 000020 4020 07 9-772 mpy sva_size,dl compute array element offset  001203 aa 000002 7360 00 9-773 qls 2 as character offset 9-774  001204 aa 0 00106 1005 00 9-775 mlr (pr),(pr,ql) copy array element back from preamble 001205 aa 204020 000100 9-776 desc9a bf|svp.sva,sva_size*4  001206 aa 200020 000100 9-777 desc9a bf|svh.sva,sva_size*4  9-778  001207 aa 000000 7100 12 9-779 tra 0,2 return to caller  9-780  9-781 " 9-782  9-783 " Queue Manipulation Routines.  9-784 "  9-785 " ldx7 flags,du flags for queue entry  9-786 " tsx2 setq to set ID and flags in queue entry 9-787 "  9-788 " tsx2 comp_base to compute base and top for disk I/O  9-789 "  9-790 " tsx2 nextq to chain to next queue entry  9-791 " return with indicators set from stopper  9-792  001210 0a 001314 2350 00 9-793 setq: lda id get ID  001211 aa 000001 7550 13 9-794 sta 1,3 and place in queue entry  9-795  001212 0a 001025 2360 00 9-796 ldq bits get free storage bits  001213 aa 000001 7360 00 9-797 qls 1 shift out previous bit  001214 0a 001025 7560 00 9-798 stq bits and save 001215 0a 001217 6050 00 9-799 tpl *+2 if unused record, 001216 aa 000004 2670 03 9-800 orx7 tpskip,du set skip flag  001217 aa 000000 4470 13 9-801 sxl7 0,3 set flags in queue entry 9-802  001220 0a 001314 0540 00 9-803 aos id bump ID to next devadd 001221 aa 000000 7100 12 9-804 tra 0,2 and return to caller  9-805  9-806  001222 aa 000000 7270 13 9-807 comp_base:lxl7 0,3 get flags from queue entry  001223 aa 000004 3070 03 9-808 canx7 tpskip,du skip this?  001224 aa 000000 6010 12 9-809 tnz 0,2 if so avoid setting base  9-810  001225 aa 000001 2350 13 9-811 lda 1,3 get ID  001226 0a 001316 3540 00 9-812 stac base set base if first time  001227 aa 000001 0750 07 9-813 ada 1,dl bump by 1  001230 0a 001317 7550 00 9-814 sta top and set top  9-815  001231 aa 000000 7100 12 9-816 tra 0,2 return to caller  9-817  9-818  001232 aa 000004 6230 13 9-819 nextq: eax3 4,3 step to next queue entry  001233 0a 001540 1030 03 9-820 cmpx3 ql+128,du and loop if at end  001234 0a 001236 6040 00 9-821 tmi *+2 ..  001235 0a 001340 6230 00 9-822 eax3 ql ..  9-823  001236 aa 000003 2340 13 9-824 szn 3,3 set indicators from queue stopper 001237 aa 000000 7100 12 9-825 tra 0,2 and return to caller  9-826  9-827 " 9-828  9-829 " tsx2 resetq to read/write header and turn off queue  9-830 "  9-831 " tsx2 ckmore to see if anything more to do  9-832 " tra nothing return here if all done  9-833 "  9-834  001240 9-835 resetq: 001240 aa 000000 6270 00 9-836 eax7 0 reset done bit for header  001241 0a 001330 4470 00 9-837 sxl7 qh  001242 aa 000002 6270 00 9-838 eax7 tpdone and turn on for remainder of list 001243 0a 001334 4470 00 9-839 sxl7 qp including preamble record 001244 0a 001340 6230 00 9-840 eax3 ql  001245 aa 000000 4470 13 9-841 rsql: sxl7 0,3  001246 aa 000004 6230 13 9-842 eax3 4,3 step to next queue entry 001247 0a 001540 1030 03 9-843 cmpx3 ql+128,du test for completion  001250 0a 001245 6040 00 9-844 tmi rsql ..  001251 aa 000000 7100 12 9-845 tra 0,2 return when finished  9-846  9-847  001252 9-848 ckmore: 001252 aa 2 04036 2341 00 9-849 szn bf|svp.sva+sva.skip skip bit ON?  001253 aa 000000 6010 12 9-850 tnz 0,2 if so, take end return  9-851  001254 aa 2 04033 2351 00 9-852 lda bf|svp.sva+sva.done make sure something is left to do  001255 aa 2 04032 1151 00 9-853 cmpa bf|svp.sva+sva.last  001256 aa 000000 6054 12 9-854 tpnz 0,2  001257 aa 000001 7100 12 9-855 tra 1,2  9-856  9-857 " 9-858  9-859 " Routine to Print Tape Starting Point. 9-860 "  9-861 " tsx2 pprint  9-862 "  9-863  001260 0a 001307 7420 00 9-864 pprint: stx2 pprx2 save X2 9-865  001261 aa 2 04034 7271 00 9-866 lxl7 bf|svp.sva+sva.devt get devt word 001262 aa 777760 3670 03 9-867 anx7 =o777760,du mask to get config card pointer  001263 aa 6 00001 2351 17 9-868 lda com|DISK_cd.sub,7 get subsystem name  001264 0a 001311 7550 00 9-869 sta ppname and save  001265 aa 2 04034 2351 00 9-870 lda bf|svp.sva+sva.devt get devt word again  001266 aa 000022 7710 00 9-871 arl 18 right-justify device number  001267 aa 000777 3750 07 9-872 ana =o777,dl mask it  001270 0a 001312 7550 00 9-873 sta ppdev and save  9-874  001271 aa 012241 7020 00 9-875 tsx2 erpt print out info  001272 aa 030 136 101 040 9-876 acc "^A (^a ^d) ^d. ON ^g ^d." 001273 aa 050 136 141 040 001274 aa 136 144 051 040 001275 aa 136 144 056 040 001276 aa 117 116 040 136 001277 aa 147 040 136 144 001300 aa 056 000 000 000 001301 0a 001313 0000 00 9-877 arg ppdesc 001302 0a 001311 0000 00 9-878 arg ppname 001303 0a 001312 0000 00 9-879 arg ppdev  001304 aa 2 04033 0001 00 9-880 arg bf|svp.sva+sva.done  001305 0a 000641 0000 00 9-881 arg subsysname 001306 0a 000642 0000 00 9-882 arg tapen  9-883  001307 0a 001307 6220 00 9-884 pprx2: eax2 * restore X2  001310 aa 000000 7100 12 9-885 tra 0,2 return to caller  9-886  001311 9-887 ppname: bss ,1  001312 9-888 ppdev: bss ,1  001313 aa 204020 000040 9-889 ppdesc: desc9a bf|svp.sva+sva.pvname,32 9-890  9-891 " 9-892  001314 aa 000000 000000 9-893 id: oct 0 current ID for queue entry  001315 aa 000000 000000 9-894 recs: oct 0 count records saved/restored  001316 9-895 base: bss ,1 start of block for disk I/O  001317 9-896 top: bss ,1 end of block for disk I/O  001320 9-897 qtemp: bss ,1 place keeper in queue  001321 9-898 rtemp: bss ,1 temporary  001322 9-899 fatalsw: bss ,1 9-900  9-901  001323 aa 000000 0110 03 9-902 eight  001324 aa 000000 0110 03 001325 aa 000000 0110 03 001326 aa 000000 0110 03 001327 aa 000000 0110 03 001330 0a 001334 000000 9-903 qh: zero qp to write out header  001331 aa 000000 000000 9-904 zero  001332 aa 222000 004000 9-905 vfd 3/bf,15/svhc,18/svh_length 001333 aa 000000 000000 9-906 zero  9-907  001334 0a 001340 000000 9-908 qp: zero ql 001335 aa 000000 000000 9-909 zero  001336 aa 204000 016000 9-910 vfd 3/bf,15/svp,18/svp_length+svl_length  001337 aa 000000 000000 9-911 zero  9-912  9-913 eight  001340 9-914 ql: bss ,128  9-915  9-916  9-917 " End of include file ...... sav_util.incl.alm  9-918  37  38 " 39  001540 0a 001637 7020 00 40 go: tsx2 set_vol_info copy volume information  41  001541 0a 001240 7020 00 42 startape: tsx2 resetq reset all entries except header  43  001542 aa 004000 2350 07 44 lda svh_length,dl copy the header  001543 aa 0 00140 1005 40 45 mlr (pr,rl),(pr,rl) so that it can be written out  001544 aa 200000 000005 46 desc9a bf|svh,al  001545 aa 222000 000005 47 desc9a bf|svhc,al  48  001546 aa 006006 7020 00 49 tsx2 opentapew open for writing  001547 0a 001330 000000 50 zero qh  001550 0a 000642 000000 51 zero tapen 52  001551 0a 001553 7100 00 53 tra wpre now write out preamble  54  55  001552 0a 001637 7020 00 56 setpre: tsx2 set_vol_info set info for next volume  57  001553 aa 2 00003 2351 00 58 wpre: lda bf|svh.curvol get current volume number  001554 aa 000030 7350 00 59 als 24 place in position for ID  001555 0a 001335 7550 00 60 sta qp+1 set in ID for preamble record  61  001556 0a 001260 7020 00 62 tsx2 pprint print tape contents  63  001557 aa 000000 7270 07 64 lxl7 0,dl set preamble queue entry to go  001560 0a 001334 4470 00 65 sxl7 qp ..  66  001561 0a 001334 6230 00 67 eax3 qp wait until preamble written  001562 0a 000740 7020 00 68 tsx2 savwait and check for EOT and errors 001563 0a 001730 0000 00 69 arg saverr 001564 0a 001632 7100 00 70 tra eot  71  72  001565 0a 000702 7020 00 73 tsx2 savloop loop through volume  001566 0a 001603 0000 00 74 arg dosave .. 75  001567 0a 000740 7020 00 76 drain: tsx2 savwait wait for I/O to quiesce  001570 0a 001730 0000 00 77 arg saverr 001571 0a 001632 7100 00 78 tra eot  79  001572 0a 001232 7020 00 80 tsx2 nextq step to next queue entry  001573 0a 001340 1030 03 81 cmpx3 ql,du until we lap queue  001574 0a 001567 6010 00 82 tnz drain ..  83  001575 aa 2 00003 2351 00 84 lda bf|svh.curvol get current volume index 001576 aa 2 00002 1151 00 85 cmpa bf|svh.nvol any more volumes? 001577 0a 000425 6050 00 86 tpl done if not, all finished 87  001600 0a 001200 7020 00 88 tsx2 copy_from_preamble place preamble info back in header 89  001601 aa 2 00003 0541 00 90 aos bf|svh.curvol bump volume index  001602 0a 001552 7100 00 91 tra setpre and write preamble for next  92  93 " 94  95 " The following subroutine is called to process each 32K block  96 " of secondary storage on a volume. 97  001603 0a 001630 7420 00 98 dosave: stx2 dosvx2 save X2  99  001604 0a 001316 4500 00 100 more: stz base clear base of block 001605 0a 001320 7430 00 101 stx3 qtemp save current queue pointer 102  001606 0a 000740 7020 00 103 wait: tsx2 savwait wait for tape I/O  001607 0a 001730 0000 00 104 arg saverr .. 001610 0a 001632 7100 00 105 tra eot  106  001611 aa 000002 6270 00 107 eax7 tpdone get done flag 001612 0a 001210 7020 00 108 tsx2 setq and set queue entry with done flag ON  001613 0a 001222 7020 00 109 tsx2 comp_base compute base and top  001614 0a 001232 7020 00 110 tsx2 nextq step to next queue entry  001615 0a 001606 6000 00 111 tze wait and loop until queue stopper 112  001616 0a 001026 7020 00 113 tsx2 disk_io read in block from disk  001617 aa 012211 0000 00 114 arg rdev ..  115  001620 0a 001320 2230 00 116 ldx3 qtemp restore queue pointer  001621 aa 000003 3350 07 117 lca tpdone+1,dl all bits ON except tpdone  001622 aa 000000 3550 13 118 undone: ansa 0,3 turn off done bit in queue entry  001623 0a 001232 7020 00 119 tsx2 nextq step to next entry 001624 0a 001622 6000 00 120 tze undone and loop until stopper 121  001625 aa 006007 7020 00 122 tsx2 runtape now, allow tape to run  123  001626 0a 001340 1030 03 124 cmpx3 ql,du have we lapped the queue? 001627 0a 001604 6010 00 125 tnz more if not, continue through 32K block  126  001630 0a 001630 6220 00 127 dosvx2: eax2 * restore X2  001631 aa 000000 7100 12 128 tra 0,2 return to caller  129  130 " 131  001632 aa 000001 2350 13 132 eot: lda 1,3 get last ID  001633 aa 777777 3750 07 133 ana -1,dl mask it 001634 aa 2 04033 7551 00 134 sta bf|svp.sva+sva.done remember where we left off 135  001635 0a 001200 7020 00 136 tsx2 copy_from_preamble copy preamble info back into header  137  001636 0a 001541 7100 00 138 tra startape now start new tape  139  140 " 141  001637 142 set_vol_info:  001637 0a 001720 7420 00 143 stx2 svix2 save X2  144  001640 0a 001170 7020 00 145 tsx2 copy_to_preamble copy volume info into preamble  146  001641 aa 000000 6200 00 147 eax0 0 prepare to read volume label  001642 aa 012000 6210 00 148 eax1 svl into label area  149  001643 0a 001723 7410 00 150 rdlbl: stx1 lblp+1 set ITS pointer offset  001644 0a 001724 2350 10 151 lda lbltbl,0 get record number in A  001645 aa 012216 7020 00 152 tsx2 mulbos convert to BOS address  001646 0a 001766 0000 20 153 arg =itp(bf,svp.sva+sva.devt),*  001647 0a 000441 7100 00 154 tra lblioerr  155  001650 aa 012211 7020 00 156 tsx2 rdev read one record from label  001651 0a 001766 0000 20 157 arg =itp(bf,svp.sva+sva.devt),*  001652 0a 001722 0000 20 158 arg lblp,* 001653 0a 000441 7100 00 159 tra lblioerr  160  001654 aa 002000 6210 11 161 eax1 1024,1 step to next record  001655 aa 000001 6200 10 162 eax0 1,0 ..  001656 aa 000004 1000 03 163 cmpx0 lbltblen,du check for completion 001657 0a 001643 6040 00 164 tmi rdlbl ..  165  001660 aa 000001 2350 07 166 lda 1,dl set preamble version number  001661 aa 2 04000 7551 00 167 sta bf|svp.version 168  001662 aa 2 04034 7271 00 169 lxl7 bf|svp.sva+sva.devt get device type word  001663 aa 000017 3670 03 170 anx7 =o17,du mask to get device type  001664 aa 012232 2350 77 171 lda rec_per_dev_list,*7 get number of records on this device  001665 aa 2 04001 7551 00 172 sta bf|svp.recs and save in preamble info  173  001666 aa 017140 0604 00 174 csl (),(pr,rl),bool(17) mark all bits in bit map  001667 0a 001667 000000 175 descb *,0  001670 aa 204040 000005 176 descb bf|svp.bits,al  177  001671 aa 2 14003 2351 00 178 lda bf|MAP+vol_map.bit_map_n_words get number of words in volume map  001672 aa 000005 7350 00 179 als 5 multiply by 32  001673 aa 2 14000 1751 00 180 sba bf|MAP+vol_map.n_rec subtract number of records in map  001674 aa 000000 5310 00 181 neg 0 -number of unused bits in last word of map  001675 aa 000040 6250 05 182 eax5 32,al number of bits in last word in X5  183  001676 aa 2 14003 7271 00 184 lxl7 bf|MAP+vol_map.bit_map_n_words get number of words in volume map 001677 aa 2 14001 2351 00 185 lda bf|MAP+vol_map.base_add get first record in volume map  001700 aa 000000 2360 07 186 ldq 0,dl keep offset in Q 001701 aa 000040 2260 03 187 ldx6 32,du copy 32 bits until last word  188  001702 aa 000001 1070 03 189 mapl: cmpx7 1,du last word of map? 001703 0a 001705 6054 00 190 tpnz *+2 tra if not  001704 aa 000000 6260 15 191 eax6 0,5 use bit count for last word  192  001705 aa 0 03145 0605 06 193 csl (ql,pr),(al,pr,rl),bool(03) copy 32 bits at a time  001706 aa 214100 010040 194 descb bf|MAP+vol_map.bit_map(1),32 001707 aa 204040 000016 195 descb bf|svp.bits,x6  196  001710 aa 000044 0760 07 197 adq 36,dl step to next word of volume map 001711 aa 000040 0750 07 198 ada 32,dl step to next 32 bits of preamble map  001712 aa 777777 6270 17 199 eax7 -1,7 count another map word  001713 0a 001702 6054 00 200 tpnz mapl and loop until finished 201  001714 aa 2 04035 2351 00 202 lda bf|svp.sva+sva.vtoc_size get records in VTOC  001715 aa 000140 0604 00 203 csl (),(pr,rl),bool(00) clear bits for label, volume map, and VTOC 001716 0a 001716 000000 204 descb *,0  001717 aa 204040 000005 205 descb bf|svp.bits,al  206  001720 0a 001720 6220 00 207 svix2: eax2 * restore X2  001721 aa 000000 7100 12 208 tra 0,2 return to caller  209  210  211 even  001722 aa 000002 000043 212 lblp: its bf,svl pointer for reading volume label  001723 aa 012000 000000 213  001724 aa 000000 000000 214 lbltbl: vfd 36/LABEL_ADDR table of label record numbers 001725 aa 000000 000001 215 vfd 36/VOLMAP_ADDR+0  001726 aa 000000 000002 216 vfd 36/VOLMAP_ADDR+1  001727 aa 000000 000003 217 vfd 36/VOLMAP_ADDR+2  218  000004 219 equ lbltblen,*-lbltbl  220  221  222 " 223  001730 0a 001750 7420 00 224 saverr: stx2 sverx2 save X2  225  001731 aa 000001 2350 13 226 lda 1,3 get ID  001732 aa 777777 3750 07 227 ana =o777777,dl mask record address  001733 0a 001321 7550 00 228 sta rtemp and save  229  001734 aa 012241 7020 00 230 tsx2 erpt print error message 001735 aa 046 165 156 162 231 acc 'unrecoverable error writing record ^d.'  001736 aa 145 143 157 166 001737 aa 145 162 141 142 001740 aa 154 145 040 145 001741 aa 162 162 157 162 001742 aa 040 167 162 151 001743 aa 164 151 156 147 001744 aa 040 162 145 143 001745 aa 157 162 144 040 001746 aa 136 144 056 000 001747 0a 001321 0000 00 232 arg rtemp  233  001750 0a 001750 6220 00 234 sverx2: eax2 * restore X2  001751 aa 000000 7100 12 235 tra 0,2 return to caller  236  237 " 238  239 include bos_sdw  10-1 "  10-2 " BEGIN INCLUDE FILE sdw.incl.alm 02/12/74  10-3 "  000014 10-4 equ sdw.add_shift,12  007000 10-5 bool sdw.r1,007000 Ringbrack 1 (DL)  000700 10-6 bool sdw.r2,000700 Ringbrack 2 (DL)  000070 10-7 bool sdw.r3,000070 Ringbrack 3 (DL)  10-8  000004 10-9 bool sdw.df,000004 Directed fault bit (0 -> fault)  000003 10-10 bool sdw.fault_code,000003 Number of directed fault  10-11  377770 10-12 bool sdw.bound,377770 Bound field (DU)  000004 10-13 bool sdw.read,000004 Read permission bit (DU) 000002 10-14 bool sdw.execute,000002 Execute permission bit (DU)  000001 10-15 bool sdw.write,000001 Write permission bit (DU)  10-16  400000 10-17 bool sdw.privileged,400000 Privileged bit (DL) 200000 10-18 bool sdw.unpaged,200000 Unpaged bit (DL)  100000 10-19 bool sdw.entry_bound_sw,100000 Entry bound switch (DL) 040000 10-20 bool sdw.cache,040000 Cache enabled bit (DL)  037777 10-21 bool sdw.entry_bound,037777 Entry bound (DL)  10-22  10-23 "  10-24 " END INCLUDE FILE sdw.incl.alm  10-25 "  240 include bos_tv 11-1 " 11-2 " Begin include file ...... bos_tv.incl.alm 11-3 " Created in November 1971 by N. I. Morris. 11-4 " Modified 9/9/76 by Noel I. Morris 11-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 11-6 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  11-7 " Modified January 1982 by J. Bongiovanni to add getport_info  11-8 " Modified May 1982 by Sherman D. Sprague to add getmpc.  11-9  11-10 " BOS Utility Package Transfer Vector.  11-11  012000 11-12 equ pagectl,utilorg  012001 11-13 equ line,pagectl+1 012040 11-14 equ arg,line+31  012060 11-15 equ darg,arg+arglen+1  012100 11-16 equ earg,darg+arglen+1 012120 11-17 equ fltscu,earg+arglen+1  11-18  012200 11-19 equ tv_org,utilorg+128 11-20  012200 11-21 equ scan,tv_org+0  012201 11-22 equ arg_count,tv_org+1 012202 11-23 equ nextline,tv_org+2  012203 11-24 equ nlraw,tv_org+3 012204 11-25 equ search,tv_org+4  012205 11-26 equ makefil,tv_org+5  012206 11-27 equ ldcom,tv_org+6 012207 11-28 equ getsec,tv_org+7  012210 11-29 equ cvinit,tv_org+8  012211 11-30 equ rdev,tv_org+9  012212 11-31 equ wdev,tv_org+10 012213 11-32 equ phybos,tv_org+11  012214 11-33 equ bosphy,tv_org+12  012215 11-34 equ phyadd,tv_org+13  012216 11-35 equ mulbos,tv_org+14  012217 11-36 equ bosmul,tv_org+15  012220 11-37 equ lookup_devmodel,tv_org+16  012221 11-38 equ makesdw,tv_org+17  012222 11-39 equ argbos,tv_org+18  012223 11-40 equ argmul,tv_org+19  012224 11-41 equ amdvt,tv_org+20  012225 11-42 equ amfirst,tv_org+21  012226 11-43 equ amlast,tv_org+22  012227 11-44 equ cvnamla,tv_org+23  012230 11-45 equ sect_per_cyl_list,tv_org+24  012231 11-46 equ sect_per_dev_list,tv_org+25  012232 11-47 equ rec_per_dev_list,tv_org+26 012233 11-48 equ amaxio,tv_org+27  012234 11-49 equ rdsec,tv_org+28  012235 11-50 equ wtsec,tv_org+29  012236 11-51 equ disk_brief,tv_org+30  012237 11-52 equ itaper,tv_org+31  012240 11-53 equ itapew,tv_org+32  012241 11-54 equ erpt,tv_org+33 012242 11-55 equ ercv,tv_org+34 012243 11-56 equ erbuf,tv_org+35  012244 11-57 equ type,tv_org+36 012245 11-58 equ ttyinit,tv_org+37  012246 11-59 equ readcd,tv_org+38  012247 11-60 equ readtty,tv_org+39  012250 11-61 equ getprt,tv_org+40  012251 11-62 equ punch,tv_org+41  012252 11-63 equ octwd,tv_org+42  012253 11-64 equ geas,tv_org+43 012254 11-65 equ geastab,tv_org+44  012255 11-66 equ asge,tv_org+45 012256 11-67 equ asgetab,tv_org+46  012257 11-68 equ ljust,tv_org+47  012260 11-69 equ rjust,tv_org+48  012261 11-70 equ bzel,tv_org+49 012262 11-71 equ stripa,tv_org+50  012263 11-72 equ stripg,tv_org+51  012264 11-73 equ getconf,tv_org+52  012265 11-74 equ getmore,tv_org+53  012266 11-75 equ getperiph,tv_org+54  012267 11-76 equ rdclock,tv_org+55  012270 11-77 equ cvclock,tv_org+56  012271 11-78 equ init_io,tv_org+57  012272 11-79 equ connect_iom,tv_org+58  012273 11-80 equ getmpc,tv_org+59  012274 11-81 equ check_status,tv_org+60 012275 11-82 equ get_special_interrupt,tv_org+61  012276 11-83 equ get_status_interrupt,tv_org+62 012277 11-84 equ xio_wait,tv_org+63 012300 11-85 equ initint,tv_org+64  012301 11-86 equ wantflt,tv_org+65  012302 11-87 equ intno,tv_org+66  012303 11-88 equ intrpts1,tv_org+67 012304 11-89 equ hexwd,tv_org+68  012305 11-90 equ find_disk,tv_org+69  012306 11-91 equ find_root,tv_org+70  012307 11-92 equ find_part,tv_org+71  012310 11-93 equ check_status_no_stat,tv_org+72 012311 11-94 equ check_special_status,tv_org+73 012312 11-95 equ check_cpu_type,tv_org+74  012313 11-96 equ getportinfo,tv_org+75  11-97  11-98 " End of include file ...... bos_tv.incl.alm  11-99  241 include bos_common 12-1 "  12-2 " Begin include file ...... bos_common.incl.alm 12-3 " Modified on 8/31/76 by N. I. Morris  12-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  12-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 12-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  12-7 " MACHINE CONDITIONS AREA  12-8 " Its length is "storlen". 12-9  000000 12-10 equ amptwregs,0 Ass. Mem PTW registers  000100 12-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 12-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 12-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 12-14 equ ouhist,320 operations hist regs  000700 12-15 equ cuhist,448 control unit hist regs  001100 12-16 equ eishist,576 eis hist regs  001300 12-17 equ aphist,704 appending unit hist regs  001500 12-18 equ prs,832 pointer regs  001520 12-19 equ regs,848 sreg 001530 12-20 equ low_order_port,856 port to read clock from 001532 12-21 equ mctime,858 bootload memory clock  001540 12-22 equ scu,864  001550 12-23 equ mcm,872 memory masks 8 ports 001570 12-24 equ dbr,888  001572 12-25 equ intrpts,890 waiting interrupts 001573 12-26 equ bar,891 bar  001574 12-27 equ modereg,892 processor & cache mode registers  001576 12-28 equ faultreg,894 processor fault register  001600 12-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 12-30 equ coreblocks,904 array of port information  12-31 " Bits 0-17 => num 1st 64-word block  12-32 " Bits 18-35 => num of 64-word blocks  12-33 " (-1) => no mem on this port  001620 12-34 equ lowport_cfg,912 Saved CFG from bootload SCU  12-35  002000 12-36 equ storlen,1024  12-37  12-38  12-39  12-40 " BOS COMMAND DIRECTORY 12-41 " Its length is "dirlen".  12-42  002000 12-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  12-44 " (24-35) => # of sectors in BOS common  002001 12-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 12-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 12-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  12-48 " (24-35) => # of sectors in Multics core image  002004 12-49 equ setuparea,dir+4 Sector and length of setup 002005 12-50 equ utilarea,dir+5 where utility package is kept  002010 12-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 12-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 12-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 12-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 12-55 equ diskchanno,dir+12 channel to be used for disk  002015 12-56 equ tapechanno,dir+13 channel # for tapes  002016 12-57 equ rdrchanno,dir+14 channel number for card reader  002017 12-58 equ ttychanno,dir+15 channel # for operator's tty  002020 12-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 12-60 equ inputsw,dir+17 read from tty, cards, macros  002022 12-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 12-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 12-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 12-64 equ skipsw,dir+21 if on, skip runcom lines 002026 12-65 equ ttypmtsw,dir+22 if on, prompt  002027 12-66 equ curtcmd,dir+23 current bos command 002030 12-67 equ readysw,dir+24 if on, print ready message  002032 12-68 equ cmdlst,dir+26 list of commands 12-69  000600 12-70 equ dirlen,384 12-71  12-72  12-73  12-74 " MACRO BUFFER AREA 12-75  002600 12-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 12-77 equ macroline,macrobuf+64 runcom command line 002716 12-78 equ macroargs,macroline+14 argument descriptors for runcom  12-79  12-80  12-81  12-82 " CONFIGURATION CARD AREA  12-83 " Its length is 2048 words.  12-84  003000 12-85 equ conf,macrobuf+128 start of configuration info  007000 12-86 equ econf,conf+2048 end of configuration info  000020 12-87 equ confl,16 length of each line  12-88  12-89  007000 12-90 equ seg6length,econf length of bos_common area segment 12-91  12-92 " End of include file ...... bos_common.incl.alm  12-93  242  243 end  LITERALS 001752 aa 000000 220000 001753 aa 202062 216525 001754 aa 204563 214725 001755 aa 202063 214725 001756 aa 204524 316242 001757 aa 204523 464770 001760 aa 202020 254524 001761 aa 202050 643163 001762 aa 777777 777777 001763 aa 100000 002000 001764 aa 377777 777770 001766 aa 200000 000041 001767 aa 004034 000000 001770 aa 777777 770000 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 001771 5a 000003 000000 001772 5a 000017 600000 001773 aa 000000 000000 001774 55 000010 000002 001775 5a 000002 400003 001776 55 000006 000010 001777 aa 004 163 141 166 002000 aa 145 000 000 000 002001 55 000002 000003 002002 6a 000000 400002 002003 55 000013 000003 002004 aa 014 163 171 155 symbol_table  002005 aa 142 157 154 137 002006 aa 164 141 142 154 002007 aa 145 000 000 000 DEFINITIONS HASH TABLE  002010 aa 000000 000015 002011 aa 000000 000000 002012 aa 000000 000000 002013 aa 000000 000000 002014 aa 000000 000000 002015 aa 000000 000000 002016 aa 000000 000000 002017 5a 000010 000000 002020 aa 000000 000000 002021 aa 000000 000000 002022 aa 000000 000000 002023 aa 000000 000000 002024 aa 000000 000000 002025 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  002026 aa 000001 000000 002027 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 001771 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 234437 662144 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000010 000002 000016 aa 000064 000000 000017 aa 000000 000513 000020 aa 000000 000333 000021 aa 000000 000471 000022 aa 000474 000333 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 000015 000066 aa 000152 000025 000067 aa 122721 273225 000070 aa 000000 112272 000071 aa 216413 400000 000072 aa 000160 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000170 000043 000077 aa 074654 553115 000100 aa 000000 107470 000101 aa 740072 400000 000102 aa 000201 000042 000103 aa 122106 030401 000104 aa 000000 112211 000105 aa 234031 200000 000106 aa 000212 000050 000107 aa 074654 553123 000110 aa 000000 107470 000111 aa 740142 400000 000112 aa 000224 000037 000113 aa 110044 377547 000114 aa 000000 111005 000115 aa 417017 600000 000116 aa 000234 000035 000117 aa 043243 130732 000120 aa 000000 103437 000121 aa 276653 200000 000122 aa 000244 000042 000123 aa 110044 377556 000124 aa 000000 111005 000125 aa 417043 600000 000126 aa 000255 000046 000127 aa 110044 377561 000130 aa 000000 111005 000131 aa 417071 200000 000132 aa 000267 000046 000133 aa 043243 125746 000134 aa 000000 103534 000135 aa 053307 400000 000136 aa 000301 000041 000137 aa 105543 476637 000140 aa 000000 110555 000141 aa 260135 200000 000142 aa 000312 000040 000143 aa 110235 072677 000144 aa 000000 111024 000145 aa 524460 600000 000146 aa 000322 000044 000147 aa 121622 277475 000150 aa 000000 112162 000151 aa 321563 400000 000152 aa 076163 160145 >spec>h>3.17>save.alm  000153 aa 143076 150076 000154 aa 063056 061067 000155 aa 076163 141166 000156 aa 145056 141154 000157 aa 155040 040040 000160 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000161 aa 076142 157163 000162 aa 076151 156143 000163 aa 154165 144145 000164 aa 076142 157163 000165 aa 145161 165056 000166 aa 151156 143154 000167 aa 056141 154155 000170 aa 076154 144144 >ldd>bos>include>ntape_equ.incl.alm 000171 aa 076142 157163 000172 aa 076151 156143 000173 aa 154165 144145 000174 aa 076156 164141 000175 aa 160145 137145 000176 aa 161165 056151 000177 aa 156143 154056 000200 aa 141154 155040 000201 aa 076154 144144 >ldd>bos>include>sav_util.incl.alm  000202 aa 076142 157163 000203 aa 076151 156143 000204 aa 154165 144145 000205 aa 076163 141166 000206 aa 137165 164151 000207 aa 154056 151156 000210 aa 143154 056141 000211 aa 154155 040040 000212 aa 076154 144144 >ldd>bos>include>sav_io_buf_seg.incl.alm  000213 aa 076142 157163 000214 aa 076151 156143 000215 aa 154165 144145 000216 aa 076163 141166 000217 aa 137151 157137 000220 aa 142165 146137 000221 aa 163145 147056 000222 aa 151156 143154 000223 aa 056141 154155 000224 aa 076154 144144 >ldd>include>disk_pack.incl.alm 000225 aa 076151 156143 000226 aa 154165 144145 000227 aa 076144 151163 000230 aa 153137 160141 000231 aa 143153 056151 000232 aa 156143 154056 000233 aa 141154 155040 000234 aa 076154 144144 >ldd>include>vol_map.incl.alm  000235 aa 076151 156143 000236 aa 154165 144145 000237 aa 076166 157154 000240 aa 137155 141160 000241 aa 056151 156143 000242 aa 154056 141154 000243 aa 155040 040040 000244 aa 076154 144144 >ldd>include>fs_vol_label.incl.alm  000245 aa 076151 156143 000246 aa 154165 144145 000247 aa 076146 163137 000250 aa 166157 154137 000251 aa 154141 142145 000252 aa 154056 151156 000253 aa 143154 056141 000254 aa 154155 040040 000255 aa 076154 144144 >ldd>include>old_fs_vol_label.incl.alm  000256 aa 076151 156143 000257 aa 154165 144145 000260 aa 076157 154144 000261 aa 137146 163137 000262 aa 166157 154137 000263 aa 154141 142145 000264 aa 154056 151156 000265 aa 143154 056141 000266 aa 154155 040040 000267 aa 076154 144144 >ldd>bos>include>config_cards.incl.alm  000270 aa 076142 157163 000271 aa 076151 156143 000272 aa 154165 144145 000273 aa 076143 157156 000274 aa 146151 147137 000275 aa 143141 162144 000276 aa 163056 151156 000277 aa 143154 056141 000300 aa 154155 040040 000301 aa 076154 144144 >ldd>bos>include>bos_sdw.incl.alm  000302 aa 076142 157163 000303 aa 076151 156143 000304 aa 154165 144145 000305 aa 076142 157163 000306 aa 137163 144167 000307 aa 056151 156143 000310 aa 154056 141154 000311 aa 155040 040040 000312 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000313 aa 076142 157163 000314 aa 076151 156143 000315 aa 154165 144145 000316 aa 076142 157163 000317 aa 137164 166056 000320 aa 151156 143154 000321 aa 056141 154155 000322 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000323 aa 076142 157163 000324 aa 076151 156143 000325 aa 154165 144145 000326 aa 076142 157163 000327 aa 137143 157155 000330 aa 155157 156056 000331 aa 151156 143154 000332 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  1032 again sav_util: 647, 686.  542 allerr sav_util: 357, 359, 458. 12233 amaxio sav_util: 655, 657,  bos_tv: 48. 12224 amdvt sav_util: 262, 289, 296, 300,  bos_tv: 41. 12225 amfirst sav_util: 275, bos_tv: 42. 12226 amlast sav_util: 279, 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 sav_util: 124, 131, 191, 200, 226, 235, 245, bos_tv: 14, 15.  102 arg1600 sav_util: 154, 169.  106 arg6250 sav_util: 156, 174.  76 arg800 sav_util: 152, 164.  12222 argbos bos_tv: 39. 131 argcopy sav_util: 150, 197.  121 argdisk sav_util: 148, 188.  166 argend sav_util: 158, 231.  17 arglen bosequ: 17, bos_tv: 15, 16, 17. 44 arglp sav_util: 131, 138, 168, 173, 178, 217, 222. 12223 argmul sav_util: 242, bos_tv: 40. 54 args sav_util: 134, 140, 160. 112 argtape sav_util: 146, 180.  12201 arg_count bos_tv: 22. 12255 asge bos_tv: 66. 12256 asgetab bos_tv: 67. 160 badarg sav_util: 135, 224.  1573 bar bos_common: 26. 1316 base save: 100, sav_util: 648, 652, 664, 669, 671, 684, 812, 895.  2 bf save: 46, 47, 58, 84, 85, 90, 134, 153, 157, 167, 169, 172,  176, 178, 180, 184, 185, 194, 195, 202, 205, 212,  bosequ: 9, sav_util: 93, 104, 108, 111, 144, 231, 249, 251, 268, 282, 301, 305,  314, 321, 330, 333, 339, 342, 346, 349, 353, 356, 417, 511,  514, 518, 534, 537, 603, 605, 610, 618, 620, 644, 673, 680,  709, 731, 756, 762, 763, 770, 776, 777, 849, 852, 853, 866,  870, 880, 889, 905, 910. 2000 big_tp_buff sav_io_buf_seg: 10.  1025 bits sav_util: 601, 611, 616, 626, 629, 630, 635, 796, 798. 12217 bosmul sav_util: 730, bos_tv: 36. 12214 bosphy bos_tv: 33. 2012 bos_dvt bos_common: 53. 1 BULK_cd.frec config_cards: 30.  2 BULK_cd.nrec config_cards: 31.  12261 bzel bos_tv: 70. 12312 check_cpu_type bos_tv: 95. 12311 check_special_status bos_tv: 94. 12274 check_status bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 3 CHNL_cd.chn config_cards: 27.  2 CHNL_cd.iom config_cards: 26.  4 CHNL_cd.nchan config_cards: 28.  1 CHNL_cd.sub config_cards: 25.  234 cklabel sav_util: 258, 287.  347 cklbx2 sav_util: 287, 292, 311, 337, 340, 355, 361. 1252 ckmore sav_util: 522, 848.  2032 cmdlst bos_common: 68. 6 com bosequ: 14, sav_util: 868. 337 common_label sav_util: 347, 350.  1222 comp_base save: 109, sav_util: 807. 3000 conf bos_common: 85, 86.  20 confl bos_common: 87. 12272 connect_iom bos_tv: 79. 636 copysw sav_util: 185, 194, 203, 265, 381, 397, 479. 1200 copy_from_preamble save: 88, 136,  sav_util: 769. 1170 copy_to_preamble save: 145, sav_util: 755. 2003 corearea bos_common: 47. 1610 coreblocks bos_common: 30. 700 cuhist bos_common: 15. 2027 curtcmd bos_common: 66. 12270 cvclock sav_util: 322, bos_tv: 77. 12210 cvinit bos_tv: 29. 12227 cvnamla bos_tv: 44. 2024 d355_state bos_common: 63. 12060 darg sav_util: 208, bos_tv: 15, 16.  1570 dbr bos_common: 24. 1750 DEFAULT_HCPART_SIZE disk_pack: 20. 565 devterr sav_util: 273, 465.  734 didend sav_util: 523, 541.  716 didl sav_util: 522, 539.  1075 diox2 sav_util: 642, 643, 653, 678, 688, 707.  2000 dir bos_common: 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56,  57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 76. 600 dirlen bos_common: 70, 76.  2014 diskchanno bos_common: 55. 12236 disk_brief sav_util: 142, 695, 720, bos_tv: 51. 100000 disk_buff_len sav_util: 95, sav_io_buf_seg: 8.  3 DISK_cd.chn config_cards: 20.  2 DISK_cd.iom 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 sav_util: 868, config_cards: 18.  1026 disk_io save: 113, sav_util: 642. 1003 doall sav_util: 606, 613.  425 done save: 86, sav_util: 422. 1603 dosave save: 74, 98.  1630 dosvx2 save: 98, 127.  1567 drain save: 76, 82.  152 drivend sav_util: 209, 211, 216. 142 drivlp sav_util: 207, 214.  0 ds bosequ: 7, sav_util: 93, 98.  0 dskbuf sav_io_buf_seg: 12.  4 DUMPER_BIT_MAP_ADDR sav_util: 58, disk_pack: 15. 12100 earg sav_util: 254, bos_tv: 16, 17.  7000 econf bos_common: 86, 90.  1100 eishist bos_common: 16. 6010 endtape ntape_equ: 19, sav_util: 426, 580.  750 endwait sav_util: 564, 569.  1632 eot save: 70, 78, 105, 132.  12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt save: 230, sav_util: 224, 317, 325, 423, 435, 439, 444, 449, 451, 458, 460, 465,  470, 697, 722, 734, 875, bos_tv: 54. 1167 error_sector sav_util: 733, 736, 745. 1322 fatalsw sav_util: 738, 899.  1576 faultreg bos_common: 28. 2023 fdump_state bos_common: 62. 5 fgb bosequ: 13. 12305 find_disk 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. 12253 geas bos_tv: 64. 12254 geastab sav_util: 87, bos_tv: 65. 772 getbits sav_util: 528, 601.  12264 getconf bos_tv: 73. 12265 getmore bos_tv: 74. 12273 getmpc bos_tv: 80. 12266 getperiph bos_tv: 75. 12313 getportinfo bos_tv: 96. 12250 getprt bos_tv: 61. 12207 getsec bos_tv: 28. 12275 get_special_interrupt bos_tv: 82. 12276 get_status_interrupt bos_tv: 83. 1540 go save: 40, sav_util: 418. 225 gvfirst sav_util: 266, 269, 275. 167 gvloop sav_util: 233, 243, 283, 442, 447, 456, 463, 468.  211 gvmvt sav_util: 88, 256.  12304 hexwd bos_tv: 89. 261 hisldesc sav_util: 314, 319, 454. 1314 id sav_util: 513, 517, 520, 538, 793, 803, 893. 12300 initint bos_tv: 85. 6004 inittape ntape_equ: 15, sav_util: 375. 12271 init_io sav_util: 82, bos_tv: 78. 2021 inputsw bos_common: 60. 12302 intno bos_tv: 87. 1572 intrpts bos_common: 25. 12303 intrpts1 bos_tv: 88. 1072 iod sav_util: 684, 724.  1111 ioer1 sav_util: 696, 700.  1142 ioer2 sav_util: 721, 724.  1100 ioerr sav_util: 682, 694.  1143 iofatal sav_util: 711, 728.  1166 iolen sav_util: 650, 659, 661, 675, 677, 700, 704, 716, 729, 744.  2011 iom_mbbase bos_common: 52. 2010 iom_mxbase bos_common: 51. 1164 iooff sav_util: 667, 681, 710, 714, 743. 12237 itaper bos_tv: 52. 12240 itapew bos_tv: 53. 12000 LABEL sav_util: 55, 301, 305, 314, 321, 330, 333, 342, 346, 349, 353, 356.  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 sav_util: 305, 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 sav_util: 330, fs_vol_label: 24.  521 label.pv_name sav_util: 314, 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 sav_util: 321, 353,  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 sav_util: 356, fs_vol_label: 45.  612 label.time_unmounted sav_util: 346, 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 sav_util: 342, 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 sav_util: 333, fs_vol_label: 30.  0 LABEL_ADDR save: 214, sav_util: 55, 294,  disk_pack: 13. 44000 label_buff_len sav_util: 90, 101,  sav_io_buf_seg: 7.  2000 label_size fs_vol_label: 15.  0 lbbuf sav_io_buf_seg: 13.  454 lblerr sav_util: 310, 439.  441 lblioerr save: 154, 159,  sav_util: 302, 435.  1722 lblp save: 150, 158, 212. 1724 lbltbl save: 151, 214, 219. 4 lbltblen save: 163, 219.  12206 ldcom sav_util: 371, bos_tv: 27. 12001 line sav_util: 120, bos_tv: 13, 14.  12257 ljust bos_tv: 68. 12220 lookup_devmodel bos_tv: 37. 1620 lowport_cfg bos_common: 34. 1530 low_order_port bos_common: 20. 2716 macroargs bos_common: 78. 2600 macrobuf bos_common: 76, 77, 85. 2700 macroline bos_common: 77, 78.  2022 macroloc bos_common: 61. 12205 makefil bos_tv: 26. 12221 makesdw sav_util: 91, 96,  bos_tv: 38. 14000 MAP save: 178, 180, 184, 185, 194, sav_util: 56. 1702 mapl save: 189, 200.  76036 MAX_VTOCE_PER_PACK disk_pack: 21. 1550 mcm bos_common: 23. 1532 mctime bos_common: 21. 7 mem bosequ: 15, sav_util: 115, 119, 431. 1574 modereg bos_common: 27. 640 modulename sav_util: 181, 189, 198, 370, 481. 1604 more save: 100, 125.  260 mulabel sav_util: 307, 313.  12216 mulbos save: 152, sav_util: 295, 672,  bos_tv: 35. 670 Multics_label sav_util: 306, 495.  262 myldesc sav_util: 315, 453.  11 nargs sav_util: 133, 160.  726 nextaddr sav_util: 529, 534.  12202 nextline sav_util: 233, bos_tv: 23. 1232 nextq save: 80, 110, 119, sav_util: 819. 12203 nlraw bos_tv: 24. 633 nogo sav_util: 366, 441, 446, 455, 462, 467, 476. 473 nolblerr sav_util: 247, 444.  1020 notail sav_util: 621, 628.  644 ntapes sav_util: 218, 486, 582, 584, 589. 6000 ntape_org ntape_equ: 9, 11, 12, 13, 14, 15, 16, 17, 18, 19,  sav_util: 369. 12252 octwd bos_tv: 63. 705 old_label.disk_table_uid old_fs_vol_label: 63. 704 old_label.disk_table_vtocx old_fs_vol_label: 62. 617 old_label.err_hist_size old_fs_vol_label: 49.  706 old_label.esd_state old_fs_vol_label: 64.  0 old_label.flagpad_shift old_fs_vol_label: 37.  551 old_label.flagpad_word old_fs_vol_label: 36.  1005 old_label.frec old_fs_vol_label: 69.  0 old_label.gcos old_fs_vol_label: 18.  400000 old_label.here old_fs_vol_label: 54.  614 old_label.last_pvtx old_fs_vol_label: 48.  542 old_label.lvid old_fs_vol_label: 25.  531 old_label.lv_name old_fs_vol_label: 23.  552 old_label.max_access_class old_fs_vol_label: 39. 511 old_label.mfg_serial old_fs_vol_label: 21.  554 old_label.min_access_class old_fs_vol_label: 40. 500 old_label.Multics old_fs_vol_label: 19.  400000 old_label.not_used old_fs_vol_label: 33.  551 old_label.not_used_word old_fs_vol_label: 32.  1003 old_label.nparts old_fs_vol_label: 65.  1006 old_label.nrec old_fs_vol_label: 70.  546 old_label.n_pv_in_lv old_fs_vol_label: 28.  1004 old_label.part old_fs_vol_label: 68.  1004 old_label.parts old_fs_vol_label: 66.  556 old_label.password old_fs_vol_label: 41.  400000 old_label.pd_active old_fs_vol_label: 60.  703 old_label.pd_active_word old_fs_vol_label: 59. 612 old_label.pd_time old_fs_vol_label: 47.  200000 old_label.private old_fs_vol_label: 35.  551 old_label.private_word old_fs_vol_label: 34.  541 old_label.pvid old_fs_vol_label: 24.  521 old_label.pv_name old_fs_vol_label: 22.  700 old_label.root old_fs_vol_label: 52.  543 old_label.root_pvid old_fs_vol_label: 26.  701 old_label.root_vtocx old_fs_vol_label: 56.  702 old_label.shutdown_state old_fs_vol_label: 57. 620 old_label.time_last_dmp old_fs_vol_label: 50.  626 old_label.time_last_reloaded old_fs_vol_label: 51. 602 old_label.time_map_updated old_fs_vol_label: 43. 600 old_label.time_mounted old_fs_vol_label: 42.  610 old_label.time_of_boot old_fs_vol_label: 46.  544 old_label.time_registered old_fs_vol_label: 27. 606 old_label.time_salvaged old_fs_vol_label: 45.  604 old_label.time_unmounted sav_util: 349,  old_fs_vol_label: 44. 510 old_label.version old_fs_vol_label: 20.  547 old_label.vol_size old_fs_vol_label: 29.  550 old_label.vtoc_size old_fs_vol_label: 30.  2000 old_label_size old_fs_vol_label: 15.  6005 opentaper ntape_equ: 16. 6006 opentapew save: 49, ntape_equ: 17. 500 ouhist bos_common: 14. 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.  3 pgm bosequ: 10. 12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 1313 ppdesc sav_util: 877, 889.  1312 ppdev sav_util: 873, 879, 888. 1311 ppname sav_util: 869, 878, 887. 1260 pprint save: 62, sav_util: 864. 1307 pprx2 sav_util: 864, 884.  336 pre_MR10_label sav_util: 343, 345, 348. 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. 657 pvbcname sav_util: 491. 505 pvnamerr sav_util: 316, 449.  637 qdelta sav_util: 384, 390, 480. 1330 qh save: 50, sav_util: 837, 903.  1340 ql save: 81, 124,  sav_util: 386, 394, 401, 404, 408, 411, 413, 414, 509, 820, 822, 840,  843, 908, 914. 1334 qp save: 60, 65, 67, sav_util: 400, 405, 410, 526, 542, 839, 903, 908.  1320 qtemp save: 101, 116,  sav_util: 897. 420 qth sav_util: 402, 413.  2020 quietsw bos_common: 59. 12267 rdclock bos_tv: 76. 12211 rdev save: 114, 156,  sav_util: 299, bos_tv: 30. 1643 rdlbl save: 150, 164.  2016 rdrchanno bos_common: 57. 12234 rdsec bos_tv: 49. 12246 readcd bos_tv: 59. 12247 readtty bos_tv: 60. 2030 readysw bos_common: 67. 1315 recs sav_util: 425, 569, 894. 12232 rec_per_dev_list save: 171, bos_tv: 47. 1520 regs bos_common: 19. 1240 resetq save: 42, sav_util: 835. 12260 rjust bos_tv: 69. 2 ROOT_cd.drive config_cards: 7.  1 ROOT_cd.sub config_cards: 6.  1245 rsql sav_util: 841, 844.  1321 rtemp save: 228, 232,  sav_util: 898. 4000 runcom_bit bosequ: 19. 6007 runtape save: 122, ntape_equ: 18, sav_util: 566. 757 saveot sav_util: 561, 580.  1730 saverr save: 69, 77, 104, 224.  634 savesw sav_util: 126, 309, 336, 477.  702 savloop save: 73, sav_util: 508. 740 savwait save: 68, 76, 103, sav_util: 557. 12200 scan sav_util: 122, bos_tv: 21. 1540 scu bos_common: 22. 14 sdw.add_shift bos_sdw: 4. 377770 sdw.bound bos_sdw: 12. 40000 sdw.cache bos_sdw: 20. 4 sdw.df bos_sdw: 9. 37777 sdw.entry_bound bos_sdw: 21. 100000 sdw.entry_bound_sw bos_sdw: 19. 2 sdw.execute bos_sdw: 14. 3 sdw.fault_code bos_sdw: 10. 400000 sdw.privileged bos_sdw: 17. 7000 sdw.r1 bos_sdw: 5. 700 sdw.r2 bos_sdw: 6. 70 sdw.r3 bos_sdw: 7. 4 sdw.read bos_sdw: 13. 200000 sdw.unpaged bos_sdw: 18. 1 sdw.write bos_sdw: 15. 12204 search bos_tv: 25. 3 SECTORS_PER_VTOCE disk_pack: 18. 12230 sect_per_cyl_list bos_tv: 45. 12231 sect_per_dev_list bos_tv: 46. 7000 seg6length bos_common: 90. 141 setdrives sav_util: 186, 195, 204, 206.  1552 setpre save: 56, 91.  1210 setq save: 108, sav_util: 793. 351 setup sav_util: 237, 366.  2004 setuparea bos_common: 49. 1637 set_vol_info save: 40, 56, 142. 2025 skipsw bos_common: 64. 1113 sloop sav_util: 704, 718.  2000 small_tp_buff sav_io_buf_seg: 9.  1123 sner sav_util: 713, 739.  1541 startape save: 42, 138.  616 stopit sav_util: 367, 470.  2000 storlen bos_common: 36. 12262 stripa bos_tv: 71. 12263 stripg bos_tv: 72. 641 subsysname sav_util: 183, 192, 201, 374, 483, 881.  14 sva.devt save: 153, 157, 169, sav_util: 73, 263, 272, 514, 644, 673, 680, 709, 731, 866, 870. 13 sva.done save: 134, sav_util: 72, 277, 511, 534, 537, 603, 618, 852, 880. 11 sva.first sav_util: 70, 276.  12 sva.last sav_util: 71, 280, 620, 853.  10 sva.pvid sav_util: 69, 331.  0 sva.pvname sav_util: 68, 255, 315, 889.  16 sva.skip sav_util: 75, 260, 849. 15 sva.vtoc_size save: 202, sav_util: 74, 334.  20 sva_size sav_util: 77, 250, 272, 758, 762, 763, 772, 776, 777. 1750 sverx2 save: 224, 234.  0 svh save: 46, sav_util: 31, 32, 33, 34, 35, 43.  0 svh.allsw sav_util: 33, 108, 144, 339, 605. 3 svh.curvol save: 58, 84, 90, sav_util: 35, 417, 518, 756, 770. 2 svh.nvol save: 85, sav_util: 34, 231, 249, 268, 282. 20 svh.sva sav_util: 36, 251, 762, 777.  1 svh.version sav_util: 32, 111.  22000 svhc save: 47, sav_util: 63, 905.  4000 svh_length save: 44, sav_util: 38, 43, 905. 1720 svix2 save: 143, 207.  12000 svl save: 148, 212,  sav_util: 54, 55, 56, 63.  736 svlx2 sav_util: 508, 531, 544. 10000 svl_length sav_util: 58, 63, 910. 4000 svp sav_util: 43, 44, 45, 46, 47, 54, 910. 4040 svp.bits save: 176, 195, 205, sav_util: 47, 610.  4001 svp.recs save: 172, sav_util: 45. 4020 svp.sva save: 134, 153, 157, 169, 202, sav_util: 46, 511, 514, 534, 537, 603, 618, 620, 644, 673, 680, 709,  731, 763, 776, 849, 852, 853, 866, 870, 880, 889.  4000 svp.version save: 167, sav_util: 44. 6000 svp_length sav_util: 49, 54, 910. 755 svwx2 sav_util: 557, 571, 573, 576, 591. 2015 tapechanno bos_common: 56. 643 tapeden sav_util: 128, 166, 171, 176, 376, 485.  642 tapen save: 51, sav_util: 221, 484, 588, 882.  6002 taper ntape_equ: 13. 6000 taperopen ntape_equ: 11. 635 tapesw sav_util: 184, 193, 202, 478.  6003 tapew ntape_equ: 14. 6001 tapewopen ntape_equ: 12. 645 taplst sav_util: 212, 220, 487, 587.  373 thq sav_util: 388, 395.  410 thq1 sav_util: 398, 404.  412 thq2 sav_util: 406, 409.  666 time_map_updated sav_util: 323, 327, 328, 493.  700 time_unmounted sav_util: 351, 354, 358, 498.  1 tmp bosequ: 8, sav_util: 98, 387, 743. 1317 top sav_util: 647, 685, 814, 896.  2 tpdone save: 107, 117,  ntape_equ: 25, sav_util: 541, 563, 838. 10 tpeot ntape_equ: 23, sav_util: 560. 4 tpskip ntape_equ: 24, sav_util: 525, 800, 808. 1 tpstat ntape_equ: 26, sav_util: 570. 2017 ttychanno bos_common: 58. 12245 ttyinit sav_util: 84, bos_tv: 58. 2026 ttypmtsw bos_common: 65. 436 ttyrequest sav_util: 85, 428.  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. 1622 undone save: 118, 120.  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.  1 VOLMAP_ADDR save: 215, 216, 217, sav_util: 56, disk_pack: 14. 1 vol_map.base_add save: 185, vol_map: 14. 100 vol_map.bit_map save: 194, vol_map: 17. 3 vol_map.bit_map_n_words save: 178, 184,  vol_map: 16. 2 vol_map.n_free_rec vol_map: 15. 0 vol_map.n_rec save: 180, vol_map: 13. 5 VTOCES_PER_RECORD disk_pack: 19. 6 VTOC_MAP_ADDR disk_pack: 16. 10 VTOC_ORIGIN disk_pack: 17. 1606 wait save: 103, 111.  741 waitl sav_util: 559, 567.  12301 wantflt bos_tv: 86. 12212 wdev bos_tv: 31. 1553 wpre save: 53, 58.  12235 wtsec bos_tv: 50. 436 x2 sav_util: 81, 92, 97, 113, 227, 239, 297, 372, 377, 378, 429, 437,  472, 674, 732. 12277 xio_wait bos_tv: 84. 4 xs1 bosequ: 11, sav_util: 251, 255, 260, 263, 272, 276, 277, 280, 315, 331, 334. 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