.; Format is BKUP SOURCE OUTPUT DATE .; .DISABLE LOWERCASE,OCTAL ; Incremental file backup routine ; Version 1.2, 21-Oct-84 ; R. W. Barnard ; .IF P1 NE "" .GOTO 10 .; .; Change your default SOURCE device here. .ASKS [0:4:"WA"] A1 Enter the device to be backed up: .SETS P1 A1 .10: .PARSE P1 ":" P1 A2 ASSIGN 'P1' INP .; .SETS LASDAT P3 .IF P3 NE "" .GOTO 20 .ASKS LASDAT Enter the date (plus 1 day!) of the last backup: .; .20: .PARSE "-" DAY MON YR DIR/OUT:SY:BKUP/SINCE:'LASDAT'/EXCLUDE INP:*.(BAK,DSK) .OPENR SY:BKUP.DIR .LOOP: .READ DIRREC .PARSE DIRREC "," FILES DIRBLK A2 .PARSE DIRBLK " " A3 A4 A5 .IF A4 EQ "" .GOTO 30 .SETS BLKSIZ A4 .PARSE FILES " " A2 NUMFIL A1 .30: .IFF .GOTO LOOP .CLOSE .IF BLKSIZ EQ "0" .GOTO NUTTIN .; ; ;You have 'BLKSIZ' blocks, 'NUMFIL' files to be backed up. ; .SETN SEGSIZ 'NUMFIL'/70+1 .IF P2 NE "" .GOTO 40 .; .; Change the default OUTPUT device here. .ASKS [0:4:"LD4"] BKPDEV Enter the output device: .SETS P2 BKPDEV .40: .PARSE P2 ":" P2 A2 .SETS BKPDEV P2 ASSIGN 'BKPDEV' OUP .SETS DEVNAM P2[1:2] .;Get the 1st 2 chars of device name .IF DEVNAM EQ "LD" .GOTO 50 .IF DEVNAM NE "SD" .GOTO 80 LOAD SD .IFLOA OUP .GOTO 60 LOAD OUP .; .50: DISMOUNT 'P2' .; .; Change the OUTPUT physical disk here (used for backing up to LD's). .60: .ASKS [0:4:"FW0"] BKPDSK What device do you want the logical disk on? .PARSE BKPDSK ":" BKPDEV A3 .TESTDEVICE 'BKPDEV' .PARSE "," A1 A2 A3 A4 A5 A6 DISKQ A7 .IF DISKQ NE "ONL" .ASKS A1 Put a disk in drive 'BKPDEV', stupid! .SETN BKPSIZ 'BLKSIZ'.+6+2*'SEGSIZ' .SETS BKUFIL "'BKPDEV':BAK'P1'.DSK" .TESTFILE 'BKUFIL' .IF NE .GOTO 70 .SETF N .ASK [N] DELQ File 'BKUFIL' exists... Delete it? .IFF DELQ .GOTO QUIT UNPROT 'BKUFIL' DELETE/NOQUERY 'BKUFIL' .70: CREATE 'BKUFIL'/ALL:'BKPSIZ' .IF DEVNAM EQ "LD" MOUNT 'P2' 'BKUFIL' .IF DEVNAM EQ "SD" SDATCH 'BKUFIL'='P2': .GOTO 90 .; .80: .TESTDEVICE OUP: .PARSE "," A1 A2 A3 A4 A5 A6 DISKQ A7 .IF DISKQ NE "ONL" .ASKS A1 Put a disk in drive 'P2', stupid! .; .90: .ENABLE LOWERCASE .OPEN SY:BACKUP.COM .ENABLE DATA DUP OUP:/Z/V/Y/N:'SEGSIZ' 'DAY''MON' Bak'P1' R W B ^C DELETE/NOQ SY:BKUP.DIR .DISABLE DATA .CLOSE $@SY:BACKUP.COM DELETE/NOQ SY:BACKUP.COM COPY/SINCE:'LASDAT'/INFORM/EXCLUDE/NOLOG INP:*.(BAK,DSK) OUP: DIRECTORY/PRINTER/VOLUME OUP: .IF DEVNAM EQ "LD" DISMOUNT 'P2' .IF DEVNAM EQ "SD" UNLOAD SD DEASS INP DEASS OUP ; ; Backup of 'P1' completed. ; .EXIT .; .QUIT: ; ;Stopping to allow disk change... ;Rerun this command file when you have the right disk! ; .EXIT .; .NUTTIN: ; ;Stoping because you have no new files... ;Rerun this command file when you have done some work! ; .EXIT