; -*- MIDAS -*- TITLE DMPCPY - COPY DUMPS FROM SWAP AREA TO FILE AREA A=1 B=2 C=3 D=4 E=5 T=6 TT=7 P=17 CHDIRI=10 CHDSKI=11 CHDSKO=12 .INSRT SYSENG;FSDEFS > PDL: -20,,. BLOCK 20 ;DIRECTORIES WHERE STUFF MIGHT GET DUMPED OUT OF TIMESHARING DIRLST: SIXBIT/./ SIXBIT/CRASH/ SIXBIT/CRASH2/ NDIRS==.-DIRLST DIR: BLOCK 2000 BUF: BLOCK 2000 GO: .CLOSE 1, ;RUNS AS DAEMON MOVE P,PDL CHKTIM: .CALL [ SETZ ? SIXBIT /RQDATE/ ; don't frob with files SETZM A ] ; if system doesn't know the time .LOSE %LSSYS AOJN A,KNOTIM MOVEI A,30.*15. ; 15 seconds .SLEEP A, JRST CHKTIM KNOTIM: MOVSI E,-NDIRS CHKDIR: .CALL [ SETZ ? SIXBIT/OPEN/ [.BII,,CHDIRI] [SIXBIT/DSK/] [SIXBIT/.FILE./] [SIXBIT/(DIR)/] SETZ DIRLST(E)] JRST NXTDIR ; Hey, there might not -be- such a directory! MOVE TT,[-2000,,DIR] .IOT CHDIRI,TT .CLOSE CHDIRI, MOVE D,UDNAMP+DIR CHKFIL: CAIL D,2000 JRST NXTDIR MOVE TT,UNRNDM+DIR(D) SKIPGE UNDATE+DIR(D) TLNE TT,UNDUMP\UNIGFL\UNREAP\UNLINK ; Don't screw with files JRST NXTFIL ; you don't understand. ;HERE WE HAVE FOUND A FILE WRITTEN OUT OF TIMESHARING ;COPY IT SO AS TO (1) SET THE FILE DATE AND (2) GET IT OUT ; OF THE SWAPPING AREA. NTS FILES ARE WRITTEN IN THE SWAPPING ; AREA TO DECREASE THE PROBABILITY OF CLOBBERING SOME OTHER FILE. .CALL [ SETZ ? SIXBIT/OPEN/ MOVES TT [.BII,,CHDSKI] [SIXBIT/DSK/] UNFN1+DIR(D) UNFN2+DIR(D) SETZ DIRLST(E) ] JSP T,[ CAIN TT,%ENAPK JRST NXTFIL JRST LOSE ] .CALL [ SETZ ? SIXBIT/OPEN/ [.BIO,,CHDSKO] [SIXBIT/DSK/] [SIXBIT/_DMPCP/] [SIXBIT/OUTPUT/] SETZ DIRLST(E) ] .LOSE %LSFIL CPYFIL: MOVE TT,[-2000,,BUF] .IOT CHDSKI,TT MOVEI T,-BUF(TT) JUMPE T,ENDFIL MOVNS T MOVSS T HRRI T,BUF .IOT CHDSKO,T JRST CPYFIL ENDFIL: .CLOSE CHDSKI, .CALL [ SETZ ? 'RENMWO MOVEI CHDSKO UNFN1+DIR(D) SETZ UNFN2+DIR(D) ] .LOSE %LSSYS .CLOSE CHDSKO, NXTFIL: ADDI D,LUNBLK JRST CHKFIL NXTDIR: AOBJN E,CHKDIR .LOGOUT 1, .VALUE ; JSP T,LOSE is like .LOSE %LSFIL(TT) LOSE: .CALL [ SETZ ? SIXBIT /LOSE/ MOVEI %LSFIL(TT) SETZI -2(T) ] .LOSE %LSSYS END GO