F11PRE.MAC;25/au/-bf=[13,10]F11PRE.MAC;1 -65,,/;DLE001/ N$$LRU=1 ; Enable new LRU algorithm -72,,/;DLE001/ .MACRO HMBOF$ GLOBAL .MCALL HMBO1$ ...GBL=0 .IF B,GLOBAL HMBO1$ DEF$L .IFF .IF IDN,, ...GBL=1 .ENDC HMBO1$ GLOBAL .ENDC .IF DIF,, .MACRO HMBOF$ ARG1 .ENDM HMBOF$ .ENDC .ENDM HMBOF$ .MACRO HMBO1$ OFFSET .MCALL DEF$I,OFFSET,DEFIN$ DEF$I 0 OFFSET ,4 ; Home block lbn OFFSET ,4 ; Alternate home block lbn OFFSET ,4 ; Alternate index block lbn OFFSET H.VLEV,2 ; structure level (ods-1, ods-2) OFFSET H.SBCL,2 ; Bitmap cluster factor offset ,2 ; Home block vbn offset ,2 ; Alternate home block vbn offset ,2 ; Alternate index block vbn offset h.ibvb,2 ; Bitmap vbn OFFSET H.IBLB,4 ; Bitmap lbn offset h.fmax,4 ; Maximum number of files OFFSET H.IBSZ,2 ; Bitmap size offset ,2 ; resfiles OFFSET H.DVTY,2 ; Device type offset ,2 ; Revision number offset ,2 ; Set count OFFSET H.VCHA,2 ; volume characteristics DEFIN$ CH.rdc,1 ; Read check DEFIN$ CH.wrc,2 ; Write check DEFIN$ CH.era,4 ; Erase DEFIN$ CH.nhi,10 ; No high water DEFIN$ CH.clp,20 ; Class protection DEFIN$ CH.SDI,400 ; Single directory offset h.vown ; Volume owner offset h.vopr,2 ; Volume owner programmer number offset h.vogr,2 ; Volume owner group number offset ,4 ; sec_mask OFFSET H.VPRO,2 ; Volume protection code OFFSET H.DFPR,2 ; Default file protection offset ,2 ; Volume record protection OFFSET H.CHK1,2 ; Check sum 1 OFFSET H.VDAT,8. ; Creation date of the volume (clunks) OFFSET H.WISZ,1 ; Default window size OFFSET H.LRUC,1 ; Directory pre-access limit offset h.fiex,2 ; Default file extend size offset ,8. ; Retain date, min offset ,8. ; retain date, max offset revd,8. ; Revision date (clunks) offset ,20. ; Minimum class offset ,20. ; Maximum class OFFSET ,320. ; filler OFFSET H.PKSR,4 ; Pack serial number OFFSET ,12. ; Structure name OFFSET H.VNAM,12. ; Volume name OFFSET H.INDO,12. ; Owner name OFFSET H.INDF,12. ; Format type OFFSET ,2 ; filler OFFSET H.CHK2,2 ; Check sum 2 .IF DIF,, .MACRO HMBO1$ ARG1 .ENDM HMBO1$ .ENDC .ENDM HMBO1$ .MACRO F11DF$,L,B,SYSDEF .ASECT ; This is the volume control block .=0 V.TRCT:'L'.BLKW 1 V.TYPE:'L'.BLKB 1 VT.FOR='B' 0 VT.SL1='B' 1 VT.SL2='B' 2 VT.ANS='B' 10 VT.UNL='B' 11 V.VCHA:'L'.BLKB 1 VC.SLK='B' 1 VC.HLK='B' 2 VC.DEA='B' 4 VC.PUB='B' 10 VC.DUP='B' 20 ; Duplicate volume name VC.SIL='B' 40 ; Silent mode V.LABL:'L'.BLKB 14 V.PKSR:'L'.BLKW 2 V.SLEN:'L' V.IFWI:'L'.BLKW 1 V.FCB:'L'.BLKW 2 V.IBLB:'L'.BLKB 1 V.IBSZ:'L'.BLKB 1 .BLKW 1 v.ibvb:'l'.blkw 1 ; Index bit map logical block number V.FMAX:'L'.BLKW 2 V.WISZ:'L'.BLKB 1 V.SBCL:'L'.BLKB 1 V.SBSZ:'L'.BLKW 1 V.SBLB:'L'.BLKB 1 V.FIEX:'L'.BLKB 1 .BLKW 1 V.VOWN:'L'.BLKW 1 V.VPRO:'L'.BLKW 1 V.FPRO:'L'.BLKW 1 V.FRBK:'L'.BLKB 1 V.LRUC:'L'.BLKB 1 .BLKW 1 V.STS:'L'.BLKB 1 VS.IFW='B' 1 VS.BMW='B' 2 V.FFNU:'L'.BLKB 1 V.EXT:'L'.BLKW 1 V.HBLB:'L'.BLKW 2 V.HBCS:'L'.BLKW 2 V.LGTH:'L' .ASECT .=0 M.LNK:'L'.BLKW 1 M.TYPE:'L'.BLKB 1 MT.MLS='B' 1 M.ACC:'L'.BLKB 1 M.DEV:'L'.BLKW 1 M.TI:'L'.BLKW 1 M.LEN:'L' .ASECT ; This is the file control block for this acp .=0 F.LINK:'L'.BLKW 1 F.FNUM:'L'.BLKW 1 F.FSEQ:'L'.BLKW 1 .BLKB 1 F.FSQN:'L'.BLKB 1 F.FOWN:'L'.BLKW 1 F.FPRO:'L'.BLKW 1 F.UCHA:'L'.BLKB 1 F.SCHA:'L'.BLKB 1 F.HDLB:'L'.BLKW 2 F.LBN:'L'.BLKW 2 F.SIZE:'L'.BLKW 2 F.NACS:'L'.BLKB 1 F.NLCK:'L'.BLKB 1 S.STBK='B'.-F.LBN F.STAT:'L' F.NWAC:'L'.BLKB 1 .BLKB 1 FC.WAC='B' 100000 FC.DIR='B' 40000 FC.CEF='B' 20000 FC.FCO='B' 10000 F.DREF:'L'.BLKW 1 F.DRNM:'L'.BLKW 1 F.FEXT:'L'.BLKW 1 F.FVBN:'L'.BLKW 2 F.LKL:'L'.BLKW 1 F.WIN:'L'.BLKW 1 f.dlar:'l'.blkw 1 ; The last record we got from the directory f.doff:'l'.blkw 1 ; The last offset of the last record in directory f.dvbo:'l'.blkw 1 ; The last virtial block number in the directory F.LGTH:'L' .ASECT ; These are window control blocks .=0 W.ACT:'L' W.BLKS:'L' W.CTL:'L'.BLKW 1 WI.RDV='B' 400 WI.WRV='B' 1000 WI.EXT='B' 2000 WI.LCK='B' 4000 WI.DLK='B' 10000 WI.PND='B' 20000 WI.EXL='B' 40000 WI.WCK='B' 100000 W.IOC:'L'.BLKB 1 .BLKB 1 W.FCB:'L'.BLKW 1 W.TCB:'L'.BLKW 1 W.UCB:'L'.BLKW 1 W.LKL:'L'.BLKW 1 W.WIN:'L'.BLKW 1 .IF NB,SYSDEF .IF NDF,P$$WND W.VBN:'L'.BLKB 1 W.MAP:'L' W.WISZ:'L'.BLKB 1 .BLKW 1 W.RTRV:'L' W.SLEN='B'-4 .IFF W.MAP:'L'.BLKW 1 W.SLEN:'L' .=0 ASSUME W.CTL,0 .BLKB 1 W.USE:'L'.BLKB 1 W.VBN:'L'.BLKB 1 W.WISZ:'L'.BLKB 1 .BLKW 1 W.RTRV:'L' .ENDC .ENDC .ASECT .=0 L.LNK:'L'.BLKW 1 L.WI1:'L'.BLKW 1 L.VB1:'L'.BLKB 1 L.CNT:'L'.BLKB 1 .BLKW 1 L.LKSZ:'L' .PSECT .MACRO F11DF$ X,Y,Z .ENDM F11DF$ .ENDM F11DF$ .MACRO FHDO1$ OFFSET .MCALL DEF$I,OFFSET,DEFIN$ ; This is the file header offset defs for ods-2 files DEF$I 0 OFFSET H.IDOF,1 ; file ident offset (in words) OFFSET H.MPOF,1 ; Map offset (in words) offset ,2 ; Other fields for records and etc offset h.segn,2 ; Header sequence number OFFSET H.FLEV,2 ; File level (2 bytes, type, level) ; ods-1 = 401 or 402, ods-2 = 1001 or 1002 ; The 2nd byte is the ods level OFFSET H.FNUM,2 ; File number OFFSET H.FSEQ,2 ; sequence number of the file number offset h.frvn,2 ; multi volume ans deq number offset h.efnu,2 ; Extension header file seq number offset h.efsq,2 ; ex hd file sequence number offset h.efrn,2 ; and the volume number OFFSET H.UFAT,32. ; User file attributes OFFSET H.FCHA ; File char... OFFSET H.UCHA,1 ; User char... DEFIN$ UC.CON,200 ; contigous file DEFIN$ UC.DLK,100 ; Locked file DEFIN$ UC.CNB,40 ; contigous b file DEFIN$ UC.WCK,20 ; Write check file DEFIN$ UC.RCK,10 ; Read check file DEFIN$ UC.WBC,4 ; Write back file DEFIN$ UC.NIB,2 ; no backup file OFFSET H.SCHA,1 ; System char... DEFIN$ SC.MDL,200 ; Marked for delete file DEFIN$ SC.BAD,100 ; Bad block file DEFIN$ SC.DIR,40 ; Directory file (this is used in ods-2) DEFIN$ SC.SPL,20 ; Spooled file defin$ sc.bac,10 ; Bad acl file offset ,2 ; filler for file characteristics ; and some bits for this area are NO CHARGE and ERASE offset ,2 ; record protection offset h.use,1 ; number of words in the map area offset ,1 ; access mode OFFSET H.FOWN OFFSET H.PROG,2 ; This is the programmer number OFFSET H.PROJ,2 ; This is the group number OFFSET H.FPRO,2 ; File frotection DEFIN$ FP.RDV,1 ; Sub bits of the 4 areas DEFIN$ FP.WRV,2 DEFIN$ FP.EXT,4 DEFIN$ FP.DEL,10 offset ,6 ; Back link (not used ) offset ,2 ; Journal (?) offset ,2 ; Dummy offset ,4 ; High water mark (?) offset ,8. ; Dummy OFFSET S.HDHD ; Length of this area ; ; This is the map defs for ods-1. it overlays the above defs due to ? def$i 0 offset ,4 offset m.esqn,2 ; Extension header file id number offset ,8. offset m.efnu,2 ; Extension header file id number... offset m.efsq,2 ; ... and etc offset m.ervn,1 offset m.enmx,1 offset ,38. offset m.use,1 ; Number of map words used offset m.acmd,1 ; This is the file id area DEF$I 0 OFFSET I.FNAM,20. ; In ascii .; OFFSET I.RVNO,2 ; number of times revised in binary OFFSET I.CRDT,8. ; Creation date in clunks OFFSET I.RVDT,8. ; Revision date in clunks OFFSET I.EXDT,8. ; Extension date in clunks offset i.bkdt,8. ; Backup date in clunks offset i.fext,66. ; continuation of fnam OFFSET S.IDHD ; The length of this area DEFIN$ I.DASZ,8. ; Size of a date area ; ; This is the retreival pointer area DEF$I 0 OFFSET M.RTRV ; These are the retreival pointers ; They have three formats DEFIN$ H.CKSM,510. .IF DIF,, .MACRO FHDO1$ ARG1 .ENDM FHDO1$ .ENDC .ENDM FHDO1$ .MACRO FHDOF$ GLOBAL .MCALL FHDO1$ ...GBL=0 .IF B,GLOBAL FHDO1$ DEF$L .IFF .IF IDN,, ...GBL=1 .ENDC FHDO1$ GLOBAL .ENDC .IF DIF,, .MACRO FHDOF$ ARG1 .ENDM FHDOF$ .ENDC .ENDM FHDOF$ -81,81,/;DLE001/ ; .MCALL FHDOF$,F11DF$,PKTDF$ ; .MCALL FHDOF$,PKTDF$ .MCALL PKTDF$ hmbof$ ; Define the home block offsets -84,,/;DLE001/ $$$qqq = h.chk2 ; Check if the home block defs are correct $$$qq1 = s.hdhd + s.idhd ; Check if the header block defs are correct -115,115,/;DLE001/ .ods11= <1*400>+1 ; ODS-1 file level with level 2 structure .ods12= <1*400>+2 ; ODS-1 file level with level 2 structure .ods21= <2*400>+1 ; ODS-2 file level with level 1 structure .ods22= <2*400>+2 ; ODS-2 file level with level 2 structure LEV11M=.ods11 ;RSX11M FILE STRUCTURE LEVEL -400,400,/;DLE001/ ; .PSECT $0$COD I,RW,LCL,REL,CON .PSECT $$$COD I,RW,LCL,REL,CON ; temp for debugging /