.SBTTL DIRPRE---PREFIX FILE ;**NEW** ; ;**NEW** ; EDIT # 0013 1 NOV 1979 10:43:14 DR1:[300,3]SRDPRE.MAC;17 ;**NEW** ; PREVIOUS EDIT 31 OCT 1979 13:38:34 DR1:[300,3]SRDPRE.MAC;16 ;**NEW** ; ; UPDATE 8/80, SRDPRE.MAC RENAMED TO DIRPRE.MAC -- NOW PREFIX FILE ; FOR THE "DIR" TASK ; ; PAUL SORENSON ; PULMONARY RESEARCH ; S3, MAYO CLINIC ; ROCHESTER, MN 55904 ; ;***** ; UPDATE 3/82 -- PRS; ADD SUPPORT TO SELECT NULL LENGTH FILES, ; EXPIRED FILES. ; ; UPDATE 4/82 -- PRS; CHANGE SWITCH MASK WORD LAYOUTS TO BE MORE ; LOGICALLY GROUPED ACCORDING TO FUNCTION. ADD SUPPORT ; TO SET FILE DATES, REVISION/CREATION/EXPIRATION. ; E$$EIS=0 ;EXTENDED INSTRUCTION SET AVAILABLE .GLOBL Q.IOPL ;**-5 ; ; SUPPORT OF SETTING FILE DATES WILL BE ENABLED BY DEFINING THE ; SYMBOL: ST$DAT=0 ; ; SUPPORT FOR SELECTING FILES BASED ON EXPIRATION DATE IS ENABLED ; BY DEFINING THE SYMBOL: ; EX$DAT=0 ; ;ERROR REQUEST CODES ; GCME = 1 ;ERROR READING COMMAND ;**NEW** CS1E = 2 ;COMMAND SYNTAX ERROR ;**NEW** CS2I = 3 ;INPUT FILE COMMANDD SYNTAX ERROR ;**NEW** CS2O = 4 ;OUTPUT FILE SYNTAX ERROR ;**NEW** DPRIV = 5 ; DIRECTORY PRIVILEGE VIOLATION ;**NEW** DOERR = 6 ; OTHER DIRECTORY OPEN ERROR ;**NEW** MFDE = 7 ;MFD OPEN ERROR ;**-4 PRSE = 10 ;PARSE FILE ERROR OPNE = 11 ;OPEN FAILURE OPNI = 12 ;OPEN FAILURE ON INPUT FILE OPNO = 13 ;OPEN FAILURE ON OUTPUT FILE DIRF = 14 ;DIRECTORY FIND ERR NOFL = 15 ;NO SUCH FILES ;**NEW** BADD = 16 ;BAD DATE FORMAT ;**-1 HDRE = 17 ;HEADER READ ERR PUTE = 20 ;FAILED TO WRITE RECORD GETE = 21 ;FAILED TO READ RECORD WRTE = 22 ;FAILED TO WRITE BOLCK REDE = 23 ;FAILED TO GET BLOCK FDEL = 24 ;FAILED TO DELETE FILE WBERR = 25 ; DIRECTORY WRITE-BACK ERROR ;**NEW** SQCHK = 26 ; FILE ID/SEQ # MISMATCH ;**NEW** WBCAN = 27 ; WRITE-BACK CANCELLED ;**NEW** HDPRV = 30 ; PRIV VIOLATION ;**NEW** PURGER = 31 ;NEW FOR DIR--PURGE MAY FAIL IF DIRECTORY READ ;IN SECTIONS NOVER = 32 ;REQUESTED DELETE WITHOUT EXPLICIT VERSION # NOPRNT = 33 ;PRINT REQUEST FAILED IN SPAWNING TO PIP NODELT = 34 ;DELETE FOLLOWING PRINT SPAWN TO PIP FAILED NOFILE = 35 ;DELETE OR PURGE REQUEST WITHOUT FILENAME MLTFIL = 36 ;MULTIPLE FILE SPECS IN COMMAND EXTNDT = 37 ;EXTENDING TASK TO READ IN DIRECTORY CNFLSW = 40 ;CONFLICTING SWITCHES SPECIFIED HDWR = 41 ;HEADER WRITE ERROR BIGDIR = 42 ;DIRECTORY TOO BIG FOR AVAILABLE MEMORY ; ;MACRO TO GENERATE AN ERROR MESSAGE REQUEST ; FOR A FATAL ERROR ; .MACRO FERR NUM TRAP NUM .ENDM .MACRO DIAG NUM TRAP 200!NUM .ENDM ; SOME LOCAL DEFINITIONS ; ; SWITCH MASK DEFINITIONS ; ; SWMSK$ - CONTAINS MAJORITY OF GENERAL OPTIONS, E.G. LIST FORMAT, ETC. ; SWMS1$ - CONTAINS ONLY SWITCHES RELATED TO FILE SELECTION, E.G. ; MATCH VERSION, DATES, ETC. ; SWMS2$ - CONTAINS SWITCH DEFINITIONS FOR SELECTING FILE DATE TO ; USE IN DATE SELECTION AND SETTING FILE DATES ;*** ; IN SWMSK$ ; NESW = 100000 ;NEGATE SELECTION OPTIONS ; HDSW = 40000 ;SET WHEN LISTING HEADER PRINTED FLSW = 20000 ;SET WHEN ANY FILE GETS LISTED SYSW = 10000 ;INCLUDE SYSTEM UFD'S IN WILD UFD LISTING ; SDSW = 4000 ;SELECTIVE DELETE SUBSWITCH, PROMPT USER PUSW = 2000 ;PURGE SWITCH DESW = 1000 ;DELETE SWITCH (PUSW+DESW ILLEGAL) ; WBSW = 400 ;WRITE BACK SWITCH SPSW = 200 ;SPOOL/PRINT DIRECTORY LISTING OUTFSW = 100 ;OUTPUT FILESPEC GIVEN ; TYSW = 40 ;SORT BY FILE TYPE SUBSWITCH NASW = 20 ;SORT BY NAME SUBSWITCH (TYSW+NASW ILLEGAL) SRSW = 10 ;SORT DIRECTORY ; FUSW = 4 ;GIVE FULL DIRECTORY LISTING SUBSWTICH MISW = 2 ;GIVE MIDDLE SIZE LISTING SUBSWITCH LISW = 1 ;GIVE DIRECTORY LISTING ; ;*** ; IN SWMS1$ ; COSW = 400 ;SELECT CONTIGUOUS FILES NLSW = 200 ;SELECT NULL LENGTH FILES LKSW = 100 ;SELECT LOCKED FILES ; SVSW = 20 ;SELECT SPECIFIC FILE VERSION SESW = 10 ;SELECT SPECIFIC FILE NAMES/TYPES ; ; AFSW = 4 ;SELECT FILES CR/RV/EX AFTER SPECIFIED DATE BESW = 2 ;SELECT FILES CR/RV/EX BEFORE SPECIFIED DATE DASW = 1 ;SELECT FILES CR/RV/EX ON SPECIFIED DATE ; ;*** ; IN SWMS2$ ; .IFDF ST$DAT ;DEFINE ONLY IF SUPPORTING DATE SETTING ; SEDSW = 40 ;SET SELECTED FILES EXPIRATION DATE SRDSW = 20 ;SET SELECTED FILES REVISION DATE SCDSW = 10 ;SET SELECTED FILES CREATION DATE ; SEDSW, SRDSW, AND SCDSW ARE MUTUALLY ; EXCLUSIVE .ENDC EDSW = 4 ;SELECT BASED ON EXPIRATION DATE RDSW = 2 ;SELECT BASED ON REVISION DATE CDSW = 1 ;SELECT BASED ON CREATION DATE ; EDSW, RDSW, AND CDSW ARE MUTUALLY EXCLUSIVE ; DIRECTORY OFFSETS ;**NEW** ; ;**NEW** ;MAGIC CONSTANTS TO OPEN MFD ;**NEW** ; ;**-3 MFDNUM = 4 ;FILE ID NUMBER FOR FILE 000000.DIR MFDSEQ = 4 ;FILE SEQ NUMBER FOR MFD D.SIZ=20 ;SIZE OF DIR. ENTRY D.FNAM=6 ;OFFSET TO NAME D.TYP=14 ;OFFSET TO FILE TYPE D.VER=16 ;...AND VERSION ;**NEW** WBTRY=3 ; MAX # OF DIRECTORY WRITE-BACK RETRIES ;**NEW** .IF NDF E$$EIS .MACRO SOB RG,PLC DEC RG BNE PLC .ENDM .ENDC ;**NEW** ;**NEW** ; MACRO TO EXTEND TASK--COPIED FROM RSX-11M ;**NEW** .MACRO EXTK$S SIZE ;**NEW** .MCALL DIR$ ;**NEW** CLR -(SP) ;**NEW** MOV SIZE,-(SP) ;**NEW** MOV #<3*400!89.>,-(SP) ;**NEW** DIR$ ;**NEW** .ENDM EXTK$S ;**NEW** ;**NEW** .SBTTL ;**NEW**