Basic System Problem Analysis - August 2003

20
File System Structures: continued
:listfile XL.PUB.SYS,-3
********************
FILE: XL.PUB.SYS
FILE CODE : 1032 FOPTIONS: BINARY,FIXED,NOCCTL,STD
BLK FACTOR: 1 CREATOR : MANAGER.SYS
REC SIZE: 256(BYTES) LOCKWORD:
BLK SIZE: 256(BYTES) SECURITY--READ : ANY
EXT SIZE: 0(SECT) WRITE : ANY
NUM REC: 77293 APPEND : ANY
NUM SEC: 77824 LOCK : ANY
NUM EXT: 41 EXECUTE : ANY
MAX REC: 4096000 **SECURITY IS ON
FLAGS : 1 ACCESSOR,SHARED,1 R
NUM LABELS: 0 CREATED : TUE, MAR 4, 2003, 10:43 AM
MAX LABELS: 0 MODIFIED: TUE, MAR 4, 2003, 10:44 AM
DISC DEV #: 1 ACCESSED: MON, MAR 17, 2003, 4:09 AM
SEC OFFSET: 0 LABEL ADDR: $00000013.$00204020
VOLNAME : MPEXL_SYSTEM_VOLUME_SET:MEMBER1
The file label address is 13.204020 and since the interval timer is found at offset $10 in
the extended label structure replacing the $20 with a $10 points us right at it.
Now, using DAT/DEBUG indirection we can pass that value to the FS_FIND_GUFD
macro:
$115 ($31) nmdebug > fs_find_gufd_entry([13.204010])
gufd_record pointer : $ca016e60
File virtual address : $f8.0
End of file offset : $12ded00
File name : XL.PUB.SYS
And as this example shows, this macro works quite well in DEBUG too.