.TITLE SRDATA ;**V5.0 .IDENT /V5.0/ ; UPDATE AUDIT CONTROL-13 NOV 1979 12:07:42 ;**V5.0 ; EDIT # 0023 5 Dec 1979 9:33:00 DR1:[300,3]SRDATA.MAC;34 ; PREVIOUS EDIT 13 NOV 1979 11:59:06 DR1:[300,3]SRDATA.MAC;32 ;**V5.0 ;+ ;**V5.0 ; SRDATA---SORT DIRECTORY DATA MODULE ;**V5.0 ; ;**V5.0 ; THIS MODULE CONTAINS ALL IMPURE DATA FOR THE ;**V5.0 ; ...DIRECTORY SORT TASK ;**V5.0 ;- ;**V5.0 ;******************************************* ;**V5.0 ; THIS VERSION MODIFIED DEC 1978 BY RAY VAN TASSLE---MOTOROLA ;**V5.0 ; 1) FIXED ERROR IN DIRECTORY WRITE-BACK THAT WOULD LOSE FILES. ;**V5.0 ; 2) FIXED ERROR (11D) IN FIGURING WORK BUFFER SIZE ;**V5.0 ; 3) REPLACED TO: DEVICE WITH TI: ;**V5.0 ; 4) FIXED A COUPLE OF INITIALIZATION BUGS THAT WOULD SOMETIMES ;**V5.0 ; CAUSE SORT & LIST TO RUN WILD ;**V5.0 ; 5) FIXED A TOO-SMALL BUFFER IN TRAP ROUTINE (ERROR PRINT) ;**V5.0 ; ;**V5.0 ; 6) CHANGES TO ALLOW A VERY LARGE DIRECTORY BE DONE IN PIECES ;**V5.0 ; (WITHOUT WRITE-BACK, THOUGH) ;**V5.0 ; 7) REMOVED THE UN-USED "/HV" SWITCH ;**V5.0 ; 8) ADDED "/MI" SWITCH (MIDDLE-SIZE LISTING---WITH DATE & TIME) ;**V5.0 ; 9) CHANGED DEFAULTS TO /LI/NA ;**V5.0 ; 10) PRINT # OF FILES SELECTED & TOTAL ;**V5.0 ; 11) CHECK FILE ID/SEQ # IF /MI OR /DA OR /FU, ETC. ;**V5.0 ; 12) CHANGED SO /-LI DOES EVERYTHING EXCEPT ACTUAL LIST ;**V5.0 ; 13) PUT "TAB" AS 1ST CHAR ON LISTING LINE ;**V5.0 ; 14) EXCLUDE [0,0] FROM WILD-CARD UIC (ALSO [0,*] AND [*,0]) ;**V5.0 ; 15) IN /SE TEMPLATE, BOTH "%" AND "?" MATCH ANY ONE CHAR. ;**V5.0 ; 16) ADDED ERROR MESSAGE AND RE-TRY ON ERROR DURING DIRECTORY WRITE-BACK ;**V5.0 ; ;**V5.0 ;********* TKB FILE FOR NON-OVERLAID VERSION **** ;**V5.0 ;SRD/MU/-FP,SRD/-SP/CR=SRDROT ;**V5.0 ;SRDATA ;**V5.0 ;SRDINI,SRDLST,SRDNUD,SRDOPR,SRDSRT,SRDSUB,SRDTRP,SRDTST ;**V5.0 ;/ ;**V5.0 ;EXTTSK=10000 ;**V5.0 ;TASK=...SRD ;**V5.0 ;STACK=128 ;**V5.0 ;TSKV=SSTVC$:7 ;**V5.0 ;ASG=TI:1 ;**V5.0 ;ASG=SY:2:3 ;**V5.0 ;UNITS=4 ;**V5.0 ;// ;**V5.0 ; ;**V5.0 ; ;**V5.0 ; SYSTEM MACRO CALLS ;**V5.0 ; ;**V5.0 .MCALL FDBDF$,FSRSZ$,FDRC$A,FDOP$A,FDBF$A,GCMLB$,FDBK$A,CSI$ ;**V5.0 .MCALL FDAT$A,NMBLK$,FCSBT$,FDOF$L,QIO$,QIOW$ ;**V5.0 FCSBT$ ;**V5.0 FDOF$L ;**V5.0 CSI$ ;**V5.0 FSRSZ$ 1 ;**V5.0 ; ;**V5.0 ; LOCAL DEFINITIONS ;**V5.0 CMDLUN ==1 ;LUN FOR CMD INPUT ;**V5.0 UFDLUN ==2 ;LUN TO READ USER-FILE-DIECTORY ;**V5.0 LSTLUN ==3 ;LUN TO LIST SORTED DIRECTORY ;**V5.0 HDRLUN==4 ; LUN TO READ FILE HEADER ;**V5.0 DSKEFN =1 ;EFN FOR UFD READ SYNC. ;**V5.0 ; ;**V5.0 ; ;**V5.0 ; COMMAND BUFFER & CONTROL BLOCK ;**V5.0 ; ;**V5.0 CSIBLK::.BLKB C.SIZE ;**V5.0 ; ;**V5.0 CMDBLK::GCMLB$ 2,SRD,,CMDLUN ;**V5.0 ; ;**V5.0 CMDSIZ==CMDBLK+G.CMLD ;DEFINE COMMAND SIZE ADDRESS ;**V5.0 CMDADR==CMDSIZ+2 ;...AND ADDRESS POINTER ;**V5.0 ; ;**V5.0 UFDFDB::FDBDF$ ;**V5.0 FDRC$A FD.RWM ;READ/WRITE MODE ;**V5.0 FDBK$A ,512.,,DSKEFN,IOSB$ ;**V5.0 FDOP$A UFDLUN,,,FO.RD ;**V5.0 ; ;**V5.0 LSTFDB::FDBDF$ ;**V5.0 FDAT$A R.VAR,FD.CR ;**V5.0 FDRC$A FD.PLC,LINBUF,132. ;**V5.0 FDOP$A LSTLUN,,,FO.WRT ;**V5.0 IOSB$:: .BLKW 2 ;**V5.0 ; ;**V5.0 ;QIO DPB TO ATTACH/DETACH THE LISTING DEVICE ;**V5.0 ; ;**V5.0 LSTQIO::QIOW$ IO.ATT,LSTLUN ;**V5.0 LSTDFN::NMBLK$ DIRECTORY,LST,0,SY,0 ;**V5.0 ; ;**V5.0 ; SAVE AREA FOR STACK POINTER ;**V5.0 ; ;**V5.0 SAVSP:: .BLKW 1 ;**V5.0 $XX1:: .WORD $$$XX1 ;**V5.0 $XX2:: .WORD $$$XX2 ;**V5.0 $XX3:: .WORD $$$XX3 ;**V5.0 ;**V5.0 DIRBF$:: +0 ;SET POINTER TO START OF BUFFER ;**V5.0 DIRBE$::.BLKW 1 ;END OF DIRECTORY BUFFER HERE ;**V5.0 SEBUF$::.BLKB 20. ; NAME BUFFER ;**V5.0 LINSZ$::.BLKW 1 ;LINE SIZE SWITCH VALUE ;**V5.0 DABUF$::.BLKB 9. ;DATE HERE ;**V5.0 .BYTE 0 ;**V5.0 BEBUF$::.BLKB 11. ;DATE HERE ;**V5.0 .BYTE 0 ;**V5.0 AFBUF$::.BLKB 11. ;DATE HERE ;**V5.0 .BYTE 0 ;SENTENAL ;**V5.0 .EVEN ;**V5.0 SWMSK$::.BLKW 1 ;**V5.0 SWMS1$::.BLKW 1 ;**V5.0 PRCCNT::.BLKW 1 ;NUM OF CHAR IN PROCESSOR NAME XXXSAV::.BLKW 3 ;PROCESSOR NAME PRNUM$::.BLKW 1 ;PROCESSOR CODE VALUE KEYTB:: .BLKB 6 STRCMD::.BLKB 80. BEVAL$:: -1 ; BEFORE DATE VALUE ;**V5.0 AFVAL$:: +0 ; AFTER DATE VALUE ;**V5.0 SVNUM$::.BLKW 1 ;VERSION NUMBER TO SEARCH FOR ;**V5.0 DATIM$::.BLKB 20. ;KEEP DATE & TIME HERE ;**V5.0 ; ;**V5.0 ;SAVE AREA FOR DIRECTORY AND DEVICE INFO FOR SELECTIVE DELETE ;**V5.0 ; ;**V5.0 SAVDID::.BLKW 2 ;DIRECTORY ID SAVED HERE ;**V5.0 SAVDVN::.BLKW 1 ;DEVICE NAME GOES HERE ;**V5.0 SAVUNM::.BLKW 1 ;UNIT NUMBER HERE ;**V5.0 ; ;**V5.0 ;WILD CARD DIRECTORY FLAGS ;**V5.0 ; ;**V5.0 NXUIC$::.BLKW 1 ;NEXT UIC TO CHECK ;**V5.0 WCGRP$::.BLKW 1 ;GROUP CODE OR 0 FOR WILD CARD GRP ;**V5.0 WCUSR$::.BLKW 1 ;USER NUMBER OR ZERO FOR WILD ;**V5.0 .EVEN ;WORD ALIGNMENT NEEDED ;**V5.0 UICS$:: .ASCIZ /000/ ;PROTOTYPE UIC FIELD ;**V5.0 .EVEN ;**V5.0 ; ;**V5.0 ;READ FILE HEADER DPB ;**V5.0 ; ;**V5.0 READHD::QIO$ IO.RAT,HDRLUN,DSKEFN,,IOSB$,,<0,ATTLST> ;**V5.0 ; ;**V5.0 ATTLST: .BYTE -10.,0 ;ATTRIBUTE LIST---READ ENTIRE HEADER ;**V5.0 .WORD HDBUF$ ;THIS IS THE BUFFER POINTER ;**V5.0 .WORD 0 ; LIST TERMINATOR ;**V5.0 ;**V5.0 ;**V5.0 HDBUF$::.BLKW 256. ;THIS IS THE BUFFER ;**V5.0 ; ;**V5.0 .BYTE 040,040 ; 2 SPACES ;**V5.0 LINBUF::.BLKB 132. ;**V5.0 .BYTE 040,040 ; SPACES ;**V5.0 PRMPT:: .BLKB 132. ;++001 ;**V5.0 SRDVER::.ASCII <12><15>"SRD -- VERSION 6.0, 15-APR-80"<12><15> SRDVS == .-SRDVER FILMSG:: .ASCII ' XXXXX. FILES SELECTED ' ;**V5.0 FTMSG:: .ASCII ' XXXXX. FILES TOTAL' ;**V5.0 FMLEN==.-FILMSG ;**V5.0 ;**V5.0 SBMSG:: .ASCII ' SELECTED BLOCKS USED/ALLOCATED : ' ;**V5.0 SBAREA::.BLKB 18.+3. ;**V5.0 .EVEN ;**V5.0 NUMFS:: .WORD 0 ; # OF FILES SELECTED ;**V5.0 NUMFT:: .WORD 0 ; # OF FILES TOTAL ;**V5.0 ; ;**V5.0 TBLKA:: +0,0 ; TOTAL BLOCKS ALLOCATED ;**V5.0 TBLKU:: +0,0 ; USED ;**V5.0 ;**V5.0 ;**V5.0 .END ;**V5.0