SEARCH SYS SEARCH SYSSYM CR=15 LIMIT=D5 .OFINI .OFDEF DISK,D.DDB .OFSIZ MEMSIZ START: PHDR -1,0,PH$REE!PH$REU GETIMP MEMSIZ,A5 HEADER: CRLF TYPECR This program searches every block on a disk for a text pattern. CRLF GETDSK: TYPESP What disk do you want to examine? KBD EXIT FSPEC DISK(A5) INIT DISK(A5) ORB #D$ERC,DISK+D.FLG(A5) CRLF GETTXT: TYPESP What text pattern are you looking for? KBD EXIT CRLF GO: CLR DISK+D.REC(A5) MOV DISK+D.DVR(A5),A0 MOV 24(A0),LIMIT TYPESP Searching MOV LIMIT,D1 DCVT 0,OT$TRM!OT$TSP TYPECR blocks CRLF BLOCK: CTRLC EXIT READ DISK(A5) SEARCH: MOV #511.,D0 MOV DISK+D.BUF(A5),A3 MOV A2,A4 10$: CALL MATCH BEQ LIST INC A3 SOB D0,10$ BR NEXT LIST: MOV DISK+D.REC(A5),D1 OCVT 7,OT$TRM!OT$TSP!OT$ZER NEXT: INC DISK+D.REC(A5) CMM DISK+D.REC(A5),LIMIT JLO BLOCK EXIT: CRLF EXIT MATCH: MOV A3,A0 ;A0 points to section of data buffer MOV A4,A1 ;A1 points to search text 10$: MOVB (A1)+,D1 CMPB D1,#CR BNE 20$ LCC #4 RTN 20$: CMMB D1,(A0)+ BEQ 10$ LCC #0 RTN END .