ASMB,L,R,C * NAME: PURGE * SOURCE: 92070-18051 * RELOC: 92070-16051 * PGMR: G.A.A. * MOD: M.L.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * * NAM PURGE,7 92070-1X051 REV.1941 790709 * HED PURGE ENT PURGE EXT OPEN,.ENTR,CLOSE,$SWLU * * SUP * * PURGE IS THE FILE DELETION ROUTINE FOR THE RTE * FILE MANAGEMENT PACKAGE * * THE FORTRAN CALLING SEQUENCE IS: * * CALL PURGE(IDCB,IERR,NAME,IS,ILU) * * W H E R E: * * IDCB IS A 144-WORD DATA CONTROL BLOCK * WHICH IS USED BY PURGE AS A * WORKING BUFFER. IDCB IS FREE * FOR OTHER USE AFTER A PURGE. * * IERR IS THE ERROR RETURN LOCATION. * * NAME IS THE NAME OF THE FILE TO BE PURGED. * * IS IS THE FILE'S SECURITY CODE. * * ILU IS THE DISC THAT THE FILE IS ON. * IF ILU >0 THEN ON DISC LABELED ILU * IF ILU <0 THEN ON DISC AT LOGICAL UNIT (-ILU) * * ERRORS RETURNED BY PURGE ARE: * * CODE REASON * 0 NO ERRORS * -1 DISC READ/WRITE ERROR * -6 FILE (OR DISC) NOT FOUND * -7 ILLEGAL SECURITY CODE * -8 FILE IS OPEN TO SOME OTHER PROGRAM * -10 NOT ENOUGH PARAMETERS * -13 DISC LOCKED * -16 ATTEMPT TO PURGE A TYPE 0 FILE * -37 ATTEMPT TO PURGE A TYPE 6 OR SWAP FILE * * SKP PURGE NOP LDA DZERO STA NAME STA SC STA LU LDA PURGE STA DURGE JMP DURGE+1 * * DCB NOP IERR NOP NAME DEF ZERO SC DEF ZERO LU DEF ZERO SPC 1 DURGE NOP ENTRY POINT JSB .ENTR DO ENTRY ROUTINE DEF DCB LDA N10 NOT ENOUGH PRAM LDB NAME ERROR CPB DZERO ? JMP EXIT YES-EXIT CLA CLEAR THE TRUNCATE WORD STA LNG AND SPC 1 JSB OPEN NO; GO DEF OPRTN OPEN DEF DCB,I EXCLUSIVELY DEF IERR,I TO DEF NAME,I CALLER DZERO DEF ZERO DEF SC,I PASS THE SECURITY CODE DEF LU,I AND THE DISC ID OPRTN SSA OPEN ERROR? JMP EXIT YES; EXIT SZA,RSS NO; TYPE ZERO JMP EX16 YES - ILLEGAL PURGE SPC 1 CPA .6 IS THIS A TYPE 6 FILE? JMP EX37 YES, ERROR, MAKE THEM USE THE PU CMND SPC 1 LDA DCB,I GET DIRECTORY ADDRESS AND B77 ISOLATE DISC LU CPA $SWLU SWAP FILE ON THIS DISC? RSS YES, CHECK IF ITS THIS FILE JMP SECCD NO, GO CHECK SECURITY CODE LDA DCB GET DCB ADDRESS ADA .3 POINT TO TRACK ADDRESS LDB A,I GET TRACK ADDRESS CPB ATRAK,I COMPARE TO SWAP FILE'S, SAME? RSS YES, BETTER CHECK SECTOR JMP SECCD NO, GO CHECK SECURITY CODE INA POINT TO SECTOR ADDRESS LDB A,I GET SECTOR ADDRESS CPB ASEC,I SAME AS SWAP FILE'S? JMP EX37 YES, ERROR, CAN'T PURGE * SECCD LDA DCB GET ADDRESS ADA .7 OF LDB A,I SECURITY SSB,RSS IF MISMATCH JMP EX7 GO SET ERROR EXIT SPC 1 ADA N2 ADDRESS OF FILE LENGTH LDA A,I GET FILE LENGTH ARS SET TO BLOCK LENGTH STA LNG SET FOR TRUNCATE CODE SPC 1 CLOS JSB CLOSE CLOSE THE FILE AND TRUNCATE TO ZERO DEF *+4 (I.E. PURGE IT) DEF DCB,I FILE DEF LU DUMMY ERROR RETURN DEF LNG TRUNCATE WORD ADDRESS LDB IERR,I GET CURRENT ERROR CODE SSB IF NONE SKIP LDA B ELSE USE IT EXIT STA IERR,I SET THE ERROR CODE JMP DURGE,I AND EXIT SPC 2 EX7 LDA .7 SET ERROR CMA,INA,RSS CODE AND SKIP EX16 LDA N16 STA IERR,I SET CODE IN USER AREA JMP CLOS GO CLOSE THE FILE EX37 LDA N37 STA IERR,I JMP CLOS SPC 3 N2 DEC -2 N10 DEC -10 .3 DEC 3 .6 DEC 6 .7 DEC 7 N16 DEC -16 N37 DEC -37 B77 OCT 77 ATRAK DEF $SWLU+1 ASEC DEF $SWLU+2 LNG NOP ZERO NOP A EQU 0 B EQU 1 SPC 2 END EQU * END