/ PS/8 DELETE ROUTINE (DMK) /0 ZZZ=0 FROM=16 TO=17 CDP=20 IOROUT=21 DCB=7760 USR=200 FIELD 1 *2000 DELETE, JMS 7700 /LOCK USR IN CORE 10 DELET1, JMS USR /CALL CD 5 0 /NO ASSUMED EXTENSION TAD (7617 DCA CDP /START OF CD INPUT LIST JMS CRLF DELET2, TAD I CDP ISZ CDP SNA /DONE? JMP DELET4 /YES. TRY AGAIN AND (17 /GET DEVICE # DCA TEMP TAD TEMP TAD (DCB-1 DCA TEMP1 /POINT TO DCB ENTRY TAD I TEMP1 SMA!CLA /FILE STRUCTURED? JMP UNFSER /NO. ERROR TAD I CDP SNA!CLA /WHOLE DEVICE TYPE FILE JMP NOFNER /YES. ERROR - NO FILE NAME TAD (IOHNDL /YES DCA TEMP1 /ADDRESS FOR HANDLER TAD TEMP /GET DEVICE NUMBER JMS USR 1 TEMP1, ZZZ HLT /FATAL ERROR TAD TEMP1 DCA IOROUT /SAVE HANDLER ENTRY IAC /DIRECTORY IN BLOCK 1 DELET3, DCA INBLK TAD INBLK DCA OUTBLK /FOR LATER CIF 0 JMS I IOROUT 210 /READ 2 PAGE DIRECTORY, FIELD 1 BUF INBLK, ZZZ JMP IOERR /READ ERROR TAD (BUF-1 DCA FROM TAD I FROM DCA NTRCNT /WORD 0 IS ENTRY COUNT TAD I FROM CIA DCA BLKNUM /WORD 1 IS FIRST BLOCK REFERENCED /BY THIS DIRECTORY ISZ FROM ISZ FROM TAD I FROM /WORD 4 IS 'EXTRA LENGTH' TAD (-4 DCA LEN /ENTRY LENGTH -1 DCA FREEP DCA FOUND TAD FROM DCA TO JMP DNSR1 /START SEARCH IOERR, CLA!IAC /HANDLER LEAVES STUFF IN AC UNFSER, IAC NOFNER, TAD (ERRTBL DCA TEMP1 TAD I TEMP1 DCA .+2 JMS MESAGE ZZZ TAD CDP TAD (-7617+2-1 /CORRECT FOR AUTO-XR, /FIRST ENTRY AT 7617 CLL!RAR TAD (4360 /#DIGIT DCA ERR5+6 TAD CDP RAR STL!RAL /POINT TO NEXT ENTRY (ODD LOC.) DCA CDP JMS MESAGE ERR5 JMS CRLF JMP DELET2 ERRTBL, ERR4;ERR3;ERR1 DELET4, TAD 7642 /CD TERMINATOR IND. SMA!CLA /ALT MODE? JMP DELET1 /NO CDF!CIF 0 /YES JMP 7600 /0 /1 PAGE DNSR1, TAD I FROM /FIRST WORD SZA /EMPTY ENTRY? JMP DNSR4 /NO DNSR2, TAD I FROM DCA TEMP /SAVE FREE BLOCK COUNT TAD FREEP SZA!CLA /CONSOLIDATING FREE BLOCKS? JMP .+6 /YES DCA I TO /NOT YET DCA I TO /MAKE EMPTY ENTRY TAD TO DCA FREEP /POINT TO CONSOLIDATION COUNT SKP ISZ BUF /ONE LESS FILE TAD TEMP TAD BLKNUM DCA BLKNUM /UPDATE BLOCK NUMBER TAD TEMP TAD I FREEP DCA I FREEP /UPDATE FREE BLOCK COUNT DNSR3, ISZ NTRCNT /DONE THIS SEGMENT? JMP DNSR1 /NO. ONWARD... CIF 0 JMS I IOROUT /YES. REWRITE BUFFER 4210 /WRITE, 2 PAGE, FIELD 1 BUFFER BUF OUTBLK, ZZZ JMP IOERR /WRITE ERROR TAD FOUND SZA!CLA /FIND FILE YET? JMP DELET2 /YES. NEXT FILE TAD BUF+2 /NO. END OF CHAIN? SZA JMP DELET3 /NO. TRY NEXT BLOCK HLT /YES. HMMM... JMP .-1 DNSR4, DCA TEMP /SAVE FIRST WORD TAD LEN CIA TAD FROM DCA COUNTP /POINT TO COUNT IN FILE ENTRY TAD I CDP TAD BLKNUM SZA!CLA /FIND FILE TO DELETE? JMP DNSR5 /NO ISZ FOUND /YES. MARK FOUND ISZ CDP /POINT TO NEXT FILE CMA /-1 FOR AUTO-XR TAD COUNTP DCA FROM JMP DNSR2 DNSR5, TAD I COUNTP SZA!CLA /ZERO COUNT? JMP .+5 TAD COUNTP /YES. TENTATIVE FILE DCA FROM ISZ BUF /BEST NOT SKIP (ALWAYS 1 MT ENTRY) JMP DNSR3 TAD LEN DCA COUNT TAD TEMP /SAVE FIRST WORD FIRST DCA I TO TAD I FROM DCA I TO ISZ COUNT JMP .-3 DCA FREEP /CLEAR FREE POINTER TAD I COUNTP TAD BLKNUM DCA BLKNUM /UPDATE BLOCK NUMBER JMP DNSR3 COUNT, 0 COUNTP, 0 LEN, 0 BLKNUM, 0 TEMP, 0 NTRCNT, 0 FREEP, 0 FOUND, 0 MESAGE, .-. TAD I MESAGE ISZ MESAGE DCA MESP MES1, TAD I MESP CLL!RTR RTR RTR JMS MESSUB TAD I MESP JMS MESSUB ISZ MESP JMP MES1 MESP, 0 MESSUB, .-. AND (77 SNA JMP I MESAGE TAD (240 AND (77 TAD (240 JMS TYO JMP I MESSUB /1 /2 PAGE TYO, .-. TLS TSF JMP .-1 CLA JMP I TYO CRLF, .-. TAD (215 JMS TYO TAD (212 JMS TYO JMP I CRLF ERR1, TEXT 'I/O ERROR ' ERR3, TEXT 'NON FILE-STRUCTURED DEVICE ' ERR4, TEXT 'NO FILE NAME SPECIFIED ' ERR5, TEXT 'FOR REQUEST # . CONTINUING' PAGE IOHNDL, ZBLOCK 200 BUF, ZBLOCK 400 $