(offsets from first system file table--pointed at by ListOfLists+04h)
Offset Size Description -3Ch DWORD pointer to FAR routine for ??? -38h DWORD pointer to FAR routine for ??? -34h DWORD pointer to FAR routine called on closing file??? -30h DWORD pointer to FAR routine for ??? (called by AX=5D03h) -2Ch DWORD pointer to FAR routine for ??? (called by AX=5D04h) -28h DWORD pointer to FAR routine for ??? (called by AX=5D02h) -24h DWORD pointer to FAR routine to lock region of file call with BX = file handle CX:DX = starting offset SI:AX = size Return: CF set on error AL = DOS error code (see AH=59h) Note: only called if file is marked as remote -20h DWORD pointer to FAR routine to unlock region of file call with BX = file handle CX:DX = starting offset SI:AX = size Return: CF set on error AL = DOS error code (see AH=59h) Note: only called if file is marked as remote -1Ch DWORD pointer to FAR routine to check if file region is locked call with ES:DI -> system file table entry for file CX = length of region from current position in file Return: CF set if any portion of region locked AX = 0021h -18h DWORD pointer to ??? (called by AX=5D05h) Return: CF set on error or not loaded CF clear if successful ES:DI -> ??? CX = ??? DX = ??? -14h DWORD pointer to FAR routine for opening FCB??? call with ES:DI -> unopened FCB DS:SI -> system file table entry Return: BL = C0h??? Note: calls following fields from FCB to SFT: starting cluster of file 1Ah 0Bh sharing record offset 1Ch 33h file attribute 1Eh 04h -10h DWORD pointer to FAR routine for ??? call with ES:DI -> system file table entry DS:SI -> FCB Return: CF set if SFT closed or sharing record offsets mismatched CF clear if successful BX = starting cluster number from FCB -0Ch DWORD pointer to FAR routine for ??? Note: called during open/create of a file -08h DWORD pointer to FAR routine for ??? -04h DWORD pointer to FAR routine to update directory info in related SFT entries call with ES:DI -> system file table entry for file (see below) AX = subfunction 00h: update time stamp (offset 0Dh) and date stamp (offset 0Fh) 01h: update file size (offset 11h) and starting cluster (offset 0Bh). Under some circumstances sets last read cluster fields to start of file 02h: as function 01h, but last-read fields always changed 03h: do both functions 00h and 02h Note: follows ptr at offset 2Bh in system file table entries