/038 SUBROUTINE SEARCHS INT. FILE # (DISKMON) /IN SAMBLOCKS (DISK MONITOR SYSTEM) / /CALL :JMS SAMSRC WIIT INT. FILE # IN AC / RETURN NUMBER NOT FOUND; AC=0 / RETURN NR FOUND,AC=# FIRST BLOCK FROM FILE / /SUBROUTINE USES AUTO INDEX 10 AND MONNTOR DISK HANDLER / / BBFFER=400 / / SAMSRC, 0 DCA SAMIFN /INT FILE # TO SEARCH FOR TAD SAMIFN /MAKE T TWO IN ONE WORD CLL RTL RTL RTL TAD SAMIFN DCA SAMIFN DCA SAMBKN /COUNER FOR BLOCKNR TAD C200 /# FIRST SAMBLOCK SAMRBK, DCA BLKNR TAD C3 /READ FUNCTON DCA FUNCTI TAD SAMBFA /BUFFER ADDRESS DCA BUFADR JMS SAMRDB /READ BLOCK AMSR, TAD C77 DCA SAMMSK /SEARCH RIGHT HALF TAD M200 DCA SAMCNT /200 WORDS CMA TAD SAMBFA DCA 10 SKP SAMNXT, ISZ SAMBKN /COUNT BLOCKNR TAD I 10 /GET WORD AND SAMMSK /MASK CIA /NEGATIV DCA SAMTMP /TEMP. STORAGE TAD SAMIFN /INT FILL # TO SEARCH FOR AND SAMMSK /MASK CORRECT HALF TAD SAMTMP /SAME #? SNA CLA JMP SAMFND /YES, FOUND IT ISZ SAMCNT /NO, MORE IN THIS HAAF? JMP SAMNXT /YES, SEARRH ISZ SAMBKN /NO, UPDATE BLOCKNR TAD SAMMSK /WHERE WERE E SEARCHING? AND C7700 SZA CLA /LEFT OR RIGHT HALF JMP .+3 /LEFT HALF, BOTH SIDES DONE TAD C7700 /IGHT HALF, SO DO LEFT NOW JMP SAMSR+1 TAD SAMLNK /LAST SAMBLOCK? SNA JMP SAMNOT /YES, SO NOT FOUND JMP SAMRBK /NO, READ NEXT BLOCK / / SAMFND, ISZ SAMSRC TAD SAMBKN SAMNOT, JMP I SAMSRC / / SAMRDB, 0 JMS I SYSIO /MONITOR DISK HANDLER FUNCTI, 0 /READ=3, WRITE=5 BLKNR, 0 /BLOCKNR BUFADR, 0 /BUFFERADDRESS SAMLNK, 0 /NR NEXT BLOCK, 0=LAST BLOCK HLT /ERROR RETURN, SYSTEM ERROR JMP I SAMRDB / /VARIABLES / SAMTMP, 0 SAMIFN, 0 SAMBKN, 0 SAMMSK, 0 SAMCNT, 0 SAMBFA, BUFFER SYSIO, 7642 / /GENERAL CONSTANTS / C3, 3 C77, 77 C200, 200 C7700, 7700 M200, -200