;*************************************************************************** ; ; HASH - hash any number of files; returns unique hash based on data only ; ;*************************************************************************** ;1.0 08-Sep-84 DFP written by D. Pallmann ; ; File uses universal (.UNV) files other ; than SYS, SYSSYM, and TRM. ; These are on the AMUS network ; ; File makes external references to WLDSCN.OBJ[P,PN]. After ; assembly, enter this command: .LNKLIT file,WLDSCN[P,PN] ; ASMMSG /LMS Disk File Hash Utility/ ASMMSG /Link with WLDSCN/ SEARCH SYS SEARCH SYSSYM SEARCH TRM SEARCH CRT SEARCH WLDSCN .OFINI .OFDEF FILE,D.DDB .OFSIZ MEMSIZ START: PHDR -1,0,PH$REE!PH$REU ;program header GETIMP MEMSIZ,A5 ;allocate local memory WINIT ;initialize WLDSCN HEADER: HIGH CRLF TYPECR LMS Disk File Hash Utility TYPESP Version VCVT START+2,OT$TRM LOW CRLF CRLF GETFIL: TYPESP HIGH KBD EXIT LOW BYP LIN BNE 10$ LEA A2,DEFALT 10$: WSPEC BNE GETFIL CRLF SETUP: CLR D4 CLR D5 DOFILE: WSCAN JNE REPORT INC D4 TYPE . MOVW D.DEV(A4),FILE+D.DEV(A5) MOVW D.DRV(A4),FILE+D.DRV(A5) MOV D.FIL(A4),FILE+D.FIL(A5) MOVW D.EXT(A4),FILE+D.EXT(A5) MOVW D.PPN(A4),FILE+D.PPN(A5) INIT FILE(A5) LOOKUP FILE(A5) TST FILE+116(A5) BMI DOFILE ;bypass random file CMMW FILE+D.FIL(A5),#[BAD] BNE PROCES CMMW FILE+D.FIL+2(A5),#[BLK] BNE PROCES CMMW FILE+D.EXT(A5),#[SYS] BEQ DOFILE ;bypass BADBLK.SYS PROCES: OPENI FILE(A5) 10$: CTRLC EXIT FILINB FILE(A5) TST FILE+D.SIZ(A5) BEQ 20$ ADD D1,D5 BR 10$ 20$: CLOSE FILE(A5) JMP DOFILE REPORT: LOW CRLF CRLF TYPESP HIGH MOV D4,D1 DCVT 0,OT$TRM!OT$TSP LOW TYPECR files were processed. TYPESP Hash total is: HIGH MOV D5,D1 OCVT 10.,OT$TRM CRLF EXIT: HIGH CRLF EXIT DEFALT: ASCIZ /ALL:*.*[*,*]/ EVEN END .