.title INCSETUP READ INDEX FILE AND SET UP LIST OF FILES INITIALLY; ; ; this program creates an initial dump index file for a disc. ; ; It writes all the files existant as being dumped on increment 1 ; ; a file offline.sys is created also ; ; the program should be run under the UIC which is to be used for the ; incremental dump system. I do not beleive there is any reason for it ; to be a privileged uic. ; .MCALL OPEN$R,OPEN$W,GET$R,PUT$R .MCALL OPEN$U,CLOSE$,PUT$,ALUN$C,GCML$,GCMLB$,RQST$C .MCALL FSRSZ$,FDBDF$,FDRC$A,FDOP$A,EXIT$S,FDBK$A .MCALL READ$,WAIT$ .MCALL QIOW$S .MCALL FHDOF$ FHDOF$ FSRSZ$ 4 ; 4 CHANNELS ; 1 - TTY ; 2 - INCDMPSTS ; 3 - OFFLINE ; 4 - INDEXF.SYS ; FDB: INXFDB: FDBDF$ FDRC$A FD.RWM FDBK$A INXBF,512.,,5,INXSTS FDOP$A 4,INXDST,,FO.RD!FA.SHR OFFFDB: FDBDF$ FDRC$A ,CNTBUF,16. FDOP$A 3,OFFDST,,FO.WRT CNTDST: .WORD 3,SYDEV,0,0,13.,CNTNAM INXDST: .WORD 3,SYDEV,5,SYSUIC,10.,INXNAM OFFDST: .WORD 3,SYDEV,0,0,11.,OFFNAM SYDEV: .ASCII /SY:/ SYSUIC: .ASCII /[0,0]/ CNTNAM: .ASCII /INCDMPSTS.SYS/ INXNAM: .ASCII /INDEXF.SYS/ OFFNAM: .ASCII /OFFLINE.SYS/ .EVEN INCRNO: .WORD 0 .BLKW 7 STATS: .BLKW 5 INXBF: .BLKW 256. CNTFDB: FDBDF$ FDRC$A FD.RAN,CNTBUF,16. FDOP$A 2,CNTDST,,FO.UPD CNTBUF: .BLKW 8. INXBUF: .BLKW 8. RCCNT: .WORD 0 INXSTS: .WORD 0,0 ERR: .WORD 0 VBN: .WORD 0,22 ; this is just a number to get past the bitmap START: ALUN$C 1,TI,0 ;GRAB TTY MOV #STATS,#INXFDB+F.STBK OPEN$R #INXFDB ;OPEN INDEX FILE OPEN$W #OFFFDB CLOSE$ ;just create offline, it cant have anything yet OPEN$W #CNTFDB MOV #1,CNTBUF PUT$R #CNTFDB,#CNTBUF,#16.,#1 ; record 1 of dump index contains # of last dump mainlp: MOV #1,INCRNO QIOW$S #IO.RVB,#4,#6,,#INXSTS,,<#INXBF,#512.,,#0,VBN+2> INC VBN+2 CMPB INXSTS,#IS.SUC ;OK BNE FIN$ ;NO FINISH NOW MOV #INXBF,R0 MOV #INXBUF,R1 MOV INCRNO,(R1)+ MOV H.FNUM(R0),RCCNT ;GET FILE ID FOR INDEX INTO CNTRL FIL MOV H.FSEQ(R0),(R1)+ ;STORE SEQ MOV H.FOWN(R0),(R1)+ ;STORE UIC MOVB H.IDOF(R0),R3 BIC #177400,R3 ;MAK SUR INDEX IS + ADD R3,R3 ;MAK BYTES NOT WORDS ADD R3,R0 MOV #5,R2 1$: MOV (R0)+,(R1)+ SOB R2,1$ ; COPY FILE NAME tst rccnt beq mainlp ; NOW HAVE SET UP NEW RECORD TO WRITE OUT ; IF NOT WRITE RECORD TO INC DMP STS ; NO WRITE TO OFFLINE ; PUT$R #CNTFDB,#INXBUF,#16.,RCCNT ;NO SAY TO BE DUMPED BR MAINLP ;HERE TO WIND UP FIN$: CLOSE$ #CNTFDB CLOSE$ #INXFDB EXIT$S .END START