.TITLE SRDATA .IDENT -6.0- ; 28-NOV-80 .LIST MEB ;+ ; SRDATA---SORT DIRECTORY DATA MODULE ; ; THIS MODULE CONTAINS ALL IMPURE DATA FOR THE ; ...DIRECTORY SORT TASK ; ;- ; ; ; SYSTEM MACRO CALLS ; .MCALL FDBDF$,FSRSZ$,FDRC$A,FDOP$A,FDBF$A,GCMLB$,FDBK$A,CSI$ .MCALL FDAT$A,NMBLK$,FCSBT$,FDOF$L,QIOW$,SPWN$ .GLOBL Q.IOPL FCSBT$ FDOF$L CSI$ FSRSZ$ 1 ; ; LOCAL DEFINITIONS ; .IF DF MO$LUN ; GET TKB TO ALLOCATE A LUN FOR ERROR MESSAGES ; .MOLUN::.BLKW 1 ; .ENDC ; MO$LUN ; ; COMMAND BUFFER & CONTROL BLOCK ; CSIBLK::.BLKB C.SIZE ; CMDBLK::GCMLB$ 2,SRD,,CMDLUN ; CMDSIZ==CMDBLK+G.CMLD ; DEFINE COMMAND SIZE ADDRESS CMDADR==CMDSIZ+2 ; ...AND ADDRESS POINTER ; UFDFDB::FDBDF$ FDRC$A FD.RWM ; READ/WRITE MODE FDBK$A ,512.,,DSKEFN,IOSB$ FDOP$A UFDLUN,,,FO.RD,FA.DLK ; DUKE004 ; LSTFDB::FDBDF$ FDAT$A R.VAR,FD.CR FDRC$A FD.PLC,LINBUF,132. FDOP$A LSTLUN,,,FO.WRT IOSB$:: .BLKW 2 ; ; QIO DPB TO ATTACH/DETACH THE LISTING DEVICE ; LSTQIO::QIOW$ IO.ATT,LSTLUN,EFN1 LSTDFN::NMBLK$ DIRECTORY,LST,0,SY,0 ; ; SAVE AREA FOR STACK POINTER ; SAVSP:: .BLKW 1 $XX1:: .WORD $$$XX1 $XX2:: .WORD $$$XX2 $XX3:: .WORD $$$XX3 .LIMIT ; End of code LIMBF$==.-2 ; Cannot shrink below here (overlay problems) DIRBF$:: +0 ;SET POINTER TO START OF BUFFER DIRBE$::.BLKW 1 ; END OF DIRECTORY BUFFER HERE MINSZ$::.BLKW 1 ; Minimum Size for Buffer (LIMBF$-DIRBF$) DIRIC$::.BLKW 1 ; LAST DYNAMIC INCREMENT PARBF$::.BLKW 3 ; GET PAR PARMS HERE .IF DF R$$11D!I$$AS ; IF ON RSX11D OR IAS... .BLKW 15 ; ALLOW MORE SPACE (FOR GTSK$) .ENDC STACLR:: NUMFS:: .WORD 0 ; # OF FILES SELECTED NUMFT:: .WORD 0 ; # OF FILES TOTAL ; TBLKA:: +0,0 ; TOTAL BLOCKS ALLOCATED TBLKU:: +0,0 ; USED ; CLMFLD::.BLKW 2 ; SPACE FOR CONTIGUOUS, LOCKED, MULTI-HEADER ; ; FILE CHARACTERISTICS REPORT BUFFER SEBUF$::.BLKB 20. ; SELECT NAME BUFFER .BLKB 2 ; TWO-BYTE OVERFLOW FOR SEBUF$ MANIPULATION LINSZ$::.BLKW 1 ; LINE SIZE SWITCH VALUE VRSNS$::.BLKW 1 ; NUMBER OF VERSIONS OF FILE SEEN VRSCT$::.BLKW 1 ; COUNT OF NUMBER TO USE IN PURGE/SELECT VERSION .EVEN AFBUF$::.BLKB 16. ; /AF OR /DA DATE HERE .BYTE 0 ; SENTINEL .EVEN BEBUF$::.BLKB 16. ; /BE DATE HERE .BYTE 0 ; SENTINEL .EVEN FLAGS$::.BLKW 1 ; FLAGS BITS HERE LENCLR==.-STACLR SWMSK$::.BLKW 1 ; SWITCH BITS HERE SWMS2$::.BLKW 1 ; 2ND SWITCH WORD HERE LVNUM$::.BLKW 1 ; LOW VERSION NUMBER WHEN SELECTING HIGHER VERSIONS TDBUF$::.BLKB 16. ; KEEP DATE & TIME HERE TDTIM$::.BLKB 6 ; Keep Time here as well ; ; SAVE AREA FOR DIRECTORY AND DEVICE INFO FOR SELECTIVE DELETE ; SAVDID::.BLKW 2 ; DIRECTORY ID SAVED HERE SAVDVN::.BLKW 1 ; DEVICE NAME GOES HERE SAVUNM::.BLKW 1 ; UNIT NUMBER HERE ; ; Help Switch Handling ; HLSPWN:: SPWN$ MCR...,,,,,1,,,HELCMD,HELCML HELCMD:: .ASCII /HELP SRD/ HELCML==.-HELCMD .EVEN ; ; WILD CARD DIRECTORY FLAGS ; NXUIC$::.BLKW 1 ; NEXT UIC TO CHECK WCGRP$::.BLKW 1 ; GROUP CODE OR 0 FOR WILD CARD GRP WCUSR$::.BLKW 1 ; USER NUMBER OR ZERO FOR WILD .EVEN ; WORD ALIGNMENT NEEDED UICS$:: .ASCIZ /000/ ; PROTOTYPE UIC FIELD .EVEN ; ; READ FILE HEADER DPB ; READHD::QIOW$ IO.RAT,UFDLUN,EFN1,,IOSB$,,<0,ATTLST> ; ATTLST: .BYTE -10.,0 ; ATTRIBUTE LIST---READ ENTIRE HEADRE .WORD HDBUF$ ; THIS IS THE BUFFER POINTER .WORD 0 ; TO TERMINATE PARAMETER BLOCK HDBUF$::.BLKW 256. ; THIS IS THE BUFFER MFDBK$==HDBUF$ ; CURRENT MFD BLOCK HERE MFDBF$==HDBUF$+2 ; START OF MFD BUFFER ; .BYTE 040,040 ; 2 SPACES LINBUF::.BLKB 132. .BYTE 040,040 ; SPACES PRMPT:: .BLKB 132. ;++001 FILMSG:: .ASCII ' XXXXX. FILES SELECTED ' FTMSG:: .ASCII ' XXXXX. FILES TOTAL' FMLEN==.-FILMSG SBMSG:: .ASCII ' SELECTED BLOCKS USED/ALLOCATED : ' SBAREA::.BLKB 18.+3. .EVEN ; VERSION NUMBER MESSAGE ; SRDVER::.ASCII <12><15>"SRD -- VERSION 6.0, 28-NOV-80"<12><15> SRDVS == .-SRDVER ; .EVEN .END