X7$ ?BOOT-U-No boot on volume ߋtv  hƎ%kQO$PxkQO$SRT11A DECRT11A  000000.DIR BACKUP.SYS BADBLK.SYS BADLOG.SYS  BITMAP.SYS CONTIN.SYS CORIMG.SYS INDEXF.SYS= MICROVMS. >VMS044.A  VOLSET.SYS  P~oWt: s's:t:s't:&[s':dwt:s'Iqvs'ăƒs't:s'9g&S'tT:kQ.O$rrXkQO$rZkQGO$\}kQO$kQO$tT:kQ O$۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m۶m   hƎMICROVMS MICROVMS SYSTEM DECFILE11B .; DOWN.IND, IND control file..;7.; Assigns default (or user-specified) logical name to .; specified logical disk file.;.; The control file will search a predetermined sequence of:.; devices looking for the file if the device name is not .; specified in the filespec.?.; You can also have the DOWN find the first available LD unit >.; for the mount. If you do not give a value to parameter P3,@.; DOWN will look for the first free LD unit (starting with unit;.; LDSTART). If you specify P3, that LD unit will be used..;;.; This command file can support several levels of nesting,;.; starting with the LD unit defined by 'LDSTRT' and going >.; down to LD7. (Nested subdevices should have increasing LD >.; unit numbers). The file is set up for one level of nesting=.; (i.e., one subdevice inside another.) You can readily get=.; two levels of nesting by uncommenting two lines below. To2.; get more levels you will need to add some code.?.; The file SY:CURDK.TMP holds the current default information..;?.; NOTE... You must assign the logical name WF: to some device..; VM: is a good choice..;*.; The parameters of the control file are:(.; P1 File name (XXXXXX.DSK is default).#.; P2 Logical name (DK is default).:.; P3 LD unit to use (Default is automatic determination)..;4.; When used in conjunction with a UCL, you can type7.; DO[WN] FILNAM and have that file become the default..; The UCL entry is ?.; DOWN == R IND\SY:DOWN ^1 ^2 ^3 (assuming you are using UCL+,%.; Version 7.49 or later)..;.; Written by:.; R. W. Barnard.; BIO/Comp Applications.; Albuquerque, NM 87185.;.; Version 3.8, 6-May-87..; .enable global .enable quiet .disable lowercase .disable prefix,suffix .disable octal2 .sets LDN "" .;Extra level of nesting available..;$.; Specify starting LD unit number. .setn LDSTRT 6.;A.; Specify search order and number of disks to be searched here.?.; If LD unit specified by 'LDSTRT' is first, you will search .; for nested files properly.*.; If you want another level of nesting, -.; .setn LDNEST 'LDSTRT'+1 .;uncomment these$.; .sets LDN "LD'LDNEST':" .;lines.7.; Must use three characters plus : for every device!!".; Be sure to modify NUMDSK also.C .sets DISKS "LD'LDSTRT':'LDN'DU3:FW4:FW6:FW5:DU0:DL0:DU1:DU2:FW0:"-.; .sets DISKS "LD'LDSTRT':'LDN'DU3:DU0:DU1:"< .setn NUMDSK 10 .;Change this to match # of devices above..; .setn NUMDSK 4 .setn NDSK NUMDSK*4.; .; Specify default device here.@ .sets $DEFDV "" .;Use a null device because we want to search.- .sets $DEFXT "DSK" .;Default extension name.F.; ***************** End of User-Changeable Parameters ***************.;.start: .if P1 ne "" .goto 10 .asks P1 Down to which file .parse P1 " " P1 P2 P3 .goto start.;.10:@SY:PARSE 'P1'.;8 .if $DEV eq "" .goto 20 .;Device name wasn't supplied. .testfile '$FILSP'! .if eq 230 .goto badnm2" .goto 70 .;Go straght to mount..;3.20: .setn COUNT 1 .;Try to find file on devices.. .setn UNMNT 1 .;Index of unmounted devices..dsklp: .sets DEV DISKS[COUNT:COUNT+3]#.; Look for the file on each disk. .testdevice 'DEV'/ .parse "," DEVNAM A A A A A ONL MOU A".; Don't check a file if no disk.2 .if ONL eq "OFL" .or .if DEVNAM eq "NSD" .goto 50@ .sets $FILSP "'DEV''$FILNM'" .;We also need complete file spec. .testfile '$FILSP'< .if eq 230 .setn ERRSAV 230 .;Remember if no file.. .if eq .goto 70 .;Found it. .goto 60.50: .enable lowercase+ .sets NOMT'UNMNT' " 'DEV' is not mounted." .inc UNMNT .disable lowercase'.60: .setn COUNT COUNT+4 .;Try again.3 .if COUNT gt NDSK .goto badnam .;Ran out of disks. .goto dsklp.;8.70: .sets LOGICL "DK" .;Now do the logical assignment.! .if P2 ne "" .sets LOGICL "'P2'".; .test P3 F .if ge 3 .sets CURLD "LD"+P3[3:3]+":" .;See if LD specified.* .if eq 1 .sets CURLD "LD"+P3+":"% .ifdf CURLD .goto mount .;It was. RU WF:READLD .if ne .exit .openr WF:LDLGCL.TMP.again: .read LINE) .parse LINE " : ," LD DEV FILNAM A A A A- .if LD eq "" .or .if LD eq "No" .goto notmtd) .if $FILSP eq DEV+":"+FILNAM .goto found .goto again.;.found: .sets CURLD LD+":" .goto mount.;:.notmtd: .setn COUNT LDSTRT .;We need to find the first.ldloop:* .sets CURLD "LD'COUNT':" .;free LD unit. .testdevice 'CURLD'/ .parse "," DEVNAM A A A A A ONL MOU A .inc COUNT .if MOU ne "MTD" .goto mount .if COUNT lt 8 .goto ldloop; No Available LD units!  .exit.;.mount: .closeMOUNT 'CURLD' '$FILSP' 'LOGICL' .if ne .exit.;.; Show where we are. .open SY:CURDK.TMP? .data E '$FILSP' is 'LOGICL', mounted on 'CURLD' .close@.; Message is printed bold, and is positioned better on screen.TYPE SY:CURDK.TMP.; .exit.;.badnam: .;See what's wrong.A .if ERRSAV eq 230 ;E No such file '$FILNM' on any device.5 .sets NOMT'UNMNT' "" .;Report on disks not mounted. .setn UNMNT 1 .enable lowercase-.badlp: .;Keep reporting disks not mounted .if NOMT'UNMNT' eq "" .exit. .sets A NOMT'UNMNT' .;until reaching a blank.;'A' .inc UNMNT .goto badlp.;.badnm2: ;E No such file '$FILNM'. .exit!.; INCBUP.IND, IND control file..;?.; Performs an INCremental BackUP, according to the date of the.; previous last backup..;8.; Refer to INDFIL.DOC for instructions and definitions..;#.; First parameter is SOURCE VOLUMEB.; (If SOURCE is a file name, the LD unit is requested - if it is0.; already mounted, that unit is the default).$.; Second parameter is BACKUP VOLUME8.; (If BACKUP is a LD, a physical device is requested).%.; Third parameter is DATE OF BACKUP..;;.; Version 2 gives unique file names to subdevices used for:.; backups, so several can be put on one physical device.<.; Version 3 now checks disk size to be sure files will fit.B.; Version 4 includes cataloging by DSKLIB, and better MULTIVOLUME.; verification.B.; Version 5 allows easy backup of logical devices by allowing youC.; to specify them by file name. Date of last backup is reported,;.; and multiple backups can be done at one INCBUP session.A.; Version 6 changed to allow file or device names to be entered.B.; Also doesn't ask the same questions on multiple backups in one .; session..; .sets IBVER "6.2".; Version of 6-May-87..;.; Written by: R. W. Barnard.; BIO/Comp Applications.; P. O. Box 5342.; Albuquerque, NM 87185.; .enable global .enable quiet.;:.; ****** Start of User-Changeable Setup Parameters ******).; Change the default BACKUP VOLUME here. .sets BKV "LD4:"E.; Change the default BACKUP DEVICE here (used if BKV is an LD unit). .sets BKD "DL0:".; .sets BKD "DU1:"I.; Change the default device for logical disk files being backed up here.. .sets $DEFDV "DU3:" .;Needs the final ":"!!!.; .sets $DEFDV "DU0:"4.; Change the volume initialization owner name here. .sets OWNAME "R W Barnard".;.; Set up the printer here.+ .sets EPOFF "1" .;Turn off 's between .sets EPON "1" .;directories.$ .sets FFEND "1" .;Do a final .).; Change the default SOURCE VOLUME here. .sets SRV "SY:"2.; Change the assignment of your work device here..;ASSIGN VM WF.;G.; Change the name of the file to remember DSKLIB catalog numbers here. .sets DLBFIL "SY:INCBUP.DAT"<.; Change the default extension for logical disk files here. .sets $DEFXT "DSK"8.; ****** End of User-Changeable Setup Parameters ****** .; .disable lowercase,octal .disable prefix, suffix .enable escape SET TT QUIET.;.; Clear the screen.;;9; INCBUP - RT-11 Incremental file backup, Version 'IBVER'.;$.; Exiting instructions to the user.;3; You may stop the command file by typing ; in answer to any question.; .ifdf EPOFF SET SP0 ENDPAG=0.;.start:G .asks [0:14.:"'SRV'"] SOURCE Enter the volume to be backed up ['SRV']: .ift .goto quit@SY:PARSE 'SOURCE'- .if $DEV eq "NSD" .goto start .;Bad device.= .if $FILNM eq "" .goto disk .;Must have given a real device..; .testfile '$FILSP'5 .if eq .goto 10 .;The file exists.;";The file '$FILSP' was not found. .goto start.;.10: RU WF:READLD .openr WF:LDLGCL.TMP.ldloop: .read LINE .parse LINE " " LDINUS A1 A2 .if A1 eq $FILSP .goto 301 .if LDINUS eq "" .or .if LDINUS eq "No" .goto 20 .goto ldloop.;8.20: .setn L1 0 .;Find the first unused LD unit number..ldlp: .testdevice LD'L1'/ .parse "," A2 A1 A1 A1 A1 A1 A1 A3 A1 .inc L1 .if L1 eq 8 .goto nolds .if A3 eq "MTD" .goto ldlp) .erase local LDINUS .;No LD unit in use. .goto 40.;@.30: .sets A2 LDINUS .;Use the LD unit number already assigned. .40: .closeY .asks [0:4:"'A2'"] CURLD What LD unit do you want to use for backing up '$FILNM' ['A2']? .ift .goto quit2 .if ge 3 .sets CURLD "LD"+CURLD[3:3]+":"- .if eq 1 .sets CURLD "LD"+CURLD+":".;A .sets LDLOG $FILNM[1:3] .;Try to use 1st 3 chars as logical name-; The backup set identifier will be "'LDLOG'" .ask [] QQ Is this OK [Y] .ift .goto quit5 .iff QQ .asks [1:3] LDLOG Then enter the identifier: .ift .goto quit.;MOUNT 'CURLD' '$FILSP' 'LDLOG' .sets SRCVOL LDLOGASSIGN 'CURLD' INP .goto 50.;".disk: .parse SOURCE ":" SOURCE A2 .sets SRCVOL SOURCE. .sets LDINUS "1" .;Need to define it anyway.ASSIGN 'SOURCE' INP..50: .sets BVOL SRCVOL .;Save the exact name. .test SRCVOL: .if eq 3 .goto 60 .;Must make sure it is exactly# .sets BLANKS " " .;3 characters.) .sets SRCVOL SRCVOL+BLANKS['':2].;.60: .ifdf REPEAT .goto r10 .ifdf LASBAK .goto 70 .testfile 'DLBFIL'' .if ne .gosub dsknum .openr 'DLBFIL' .read LASBAK 1 .read LASBAK .;Get the date of the last backup. .close.70: ;&; The last backup was done on 'LASBAK'7 .ifdf STRTDT .goto 80 .;We already have a start date." .parse LASBAK "-- " DAY MON YR A1K.;The following is an attempt at automatically picking the date for LASDAT. .setn L1 'DAY'+1. .sets STRTDT "'L1'-'MON'-'YR'"W.80: .asks [0:9.:"'STRTDT'"] LASDAT Enter the starting date for this backup ['STRTDT']: .ift .goto quit5 .test LASDAT "-" .;Find out if - was typed in date+ .if eq 0 .goto 90 .;instead of :. .parse LASDAT "-" A1 A2 A3$ .if A2 ne "" .sets LASDAT A1+":"+A2( .if A3 ne "" .sets LASDAT LASDAT+":"+A3@.90: .sets STRTDT LASDAT .;Use the date just entered next time..; .parse "-" DAY MON YR.r10: .gosub trnmon@DIR/BRI/OUT:WF:INCBUP/SINCE:'LASDAT'/EXCLUDE INP:*.(BAK,DSK,TMP) .openr WF:INCBUP.DIR" .read LINE .;Read the date line..loop:2 .read LINE .;Read the remainder of the directory. .parse LINE "," FILES BLOCKS .if BLOCKS eq "" .goto 100 .parse FILES " " A1 NUMFIL A2 .parse BLOCKS " " A1 BLKSIZ A2 .goto 110.;.100: .iff .goto loop .110: .close .if BLKSIZ eq "0" .goto nuttin.;;;; You have 'BLKSIZ' blocks, 'NUMFIL' files to be backed up.; .setn SEGSIZ 'NUMFIL'/70+1 .ifdf REPEAT .goto r20B .asks [0:4:"'BKV'"] BKVOL Enter the backup target volume ['BKV']: .ift .goto quit-.; Get rid of any : that may have been typed. .parse BKVOL ":" BKVOL A2.;ASSIGN 'BKVOL' OUP3.; Create the file to initialize the output volume..r20: .openr #2 'DLBFIL' .read #2 DSKNUM .close #2 .enable lowercase .open WF:INITD.COM .enable dataR DUP OUP:/Z/V/Y/N:'SEGSIZ''DSKNUM'Bak'SRCVOL''MO''DAY''OWNAME'^C .disable data .close .disable lowercase .sets MULCOP "".;> .sets DEVNAM BKVOL[1:2] .;Get the 1st 2 chars of device name. .if DEVNAM ne "LD" .goto 150.;".; ***Backup to Logical Devices***.; .ifdf REPEAT .goto r30Q .asks [0:4:"'BKD'"] BKPDEV Enter the backup device for the logical disk ['BKD']: .ift .goto quit .parse BKPDEV ":" BKPDEV A3@ .sets BKD BKPDEV .;Might as well change the default to current.+.r30: .setn BKPSIZ 'BLKSIZ'.+6+(2*'SEGSIZ').;.dsksiz: .gosub dskchk .if MAXSIZ ge BKPSIZ .goto 120;I .ask QQ Your files won''t fit on this disk. Put in another and type  .ift .goto quit .goto dsksiz.;1.120: .sets BKUFIL "'BKPDEV':BAK'BVOL'.'MO''DAY'" .testfile 'BKUFIL'# .if ne .goto 140;9 .ask [] QQ File 'BKUFIL' exists... Delete it [N]? .iff QQ .goto 130UNPROT 'BKUFIL'DELETE/NOQUERY 'BKUFIL' .goto 140.;/.130: .ask QQ Put in another disk and type  .ift .goto quit .goto dsksiz.;.140:CREATE 'BKUFIL'/ALL:'BKPSIZ'MOUNT 'BKVOL' 'BKUFIL'.;-.; Make the file to run the DSKLIB cataloger. .open WF:DSKLIB.COM .data R DLBCOM .data OSY:INCBUP UF'BKUFIL' Q .close;/; Initializing the backup volume ('BKVOL') now.$@WF:INITD.COM .goto 180.;%.; ***Backup to a Physical device***.;.150: .sets BKPDEV BKVOL;B .ask [] QQ Do you want to initialize the backup device [Y]? .ift .goto quit .iff QQ .goto 160$@WF:INITD.COM.160: .gosub dskchk .setn BLKN 'BLKSIZ' .if MAXSIZ ge BLKN .goto 170 .sets MULCOP "/MULTIVOL""; Need to do a multivolume backup..;..; Make the file to run the DSKLIB cataloguer..170: .open WF:DSKLIB.COM .data R DLBCOM .data OSY:INCBUP UF'BKVOL': Q .close.;.180:$DELETE/NOQ WF:(INCBUP.DIR,INITD.COM);-; Copying the files to the backup volume now.MCOPY/SINCE:'LASDAT'/INFORM/EXCLUDE/NOLOG'MULCOP'/SYS INP:*.(BAK,DSK,TMP) OUP: .setf SLON .ifloa SL .sett SLON SET SL OFF.;+.; Do different things depending on MULCOP. .if MULCOP ne "" .goto 190;/; Verifying the files on the backup volume now.COPY/SYSTEM/NOLOG OUP:*.* NL:;%; Cataloging the backed-up files now. $@WF:DSKLIBDIRECTORY/PRINTER/VOLUME OUP:$ .if DEVNAM eq "LD" DISMOUNT 'BKVOL' .ifdf LDINUS .goto 210DISMOUNT 'CURLD' .goto 210.;.190: ;*; Verifying the backup output volumes now.,; Start with the first disk in the sequence.@; Type with no disk in 'BKVOL' when all have been verified. .setn L1 1.vfylp:;5 .ask QQ Put disk 'L1' in drive 'BKVOL' and type  .testdevice OUP0 .parse "," A2 A2 A2 A2 A2 A2 ONLINE A2 .if ONLINE ne "ONL" .goto 210COPY/SYSTEM/NOLOG OUP:*.* NL: .if L1 eq 1 .goto 200.;< .setn DN 'DSKNUM' .;Need to give vol ID to second and later .inc DN .;disks. .sets DSKN "'DN'" .gosub longnm .open WF:DSKLIB.COM .enable dataR DLBCOMIOSY:INCBUPVF'BKVOL':'DSKNUM'Bk'DSKN''SRCVOL'.'MO''DAY'/OWUF'BKVOL':Q .disable data .close.200: ;%; Cataloging the backed-up files now. $@WF:DSKLIBDIRECTORY/PRINTER/VOLUME OUP: .inc L1 .goto vfylp.;.210: .ift SLON SET SL ON#.; Increment the number for DSLKIB. .setn DN 'DSKNUM' .inc DN .sets DSKN "'DN'" .gosub longnmC.; Write the latest DSKLIB disk number in a file for use next time. .open #2 'DLBFIL' .data #2 'DSKNUM' .data #2 '' at '