INT 21,52 - Get Pointer to DOS "INVARS" (Undocumented)
AH = 52h on return: ES:BX = pointer to DOS "invars", a table of pointers used by DOS. Known "invars" fields follow (varies with DOS version): Offset Size Description -12 word sharing retry count (DOS 3.1-3.3) -10 word sharing retry delay (DOS 3.1-3.3) -8 dword pointer to current disk buffer (DOS 3.x) -4 word pointer in DOS code segment of unread CON input; 0 indicates no unread input (DOS 3.x) -2 word segment of first Memory Control Block (MCB) 00 dword pointer to first DRIVE PARAMETER TABLE (A:) in chain 04 dword pointer to DOS System File Table (SFT) 08 dword pointer to $CLOCK device driver 0C dword pointer to CON device driver 10 byte number of logical drives in system 11 word maximum bytes/block of any block device 13 dword pointer to DOS cache buffer header 17 18bytes NUL device header, first 4 bytes of device header point to the next device in device chain DOS 3.0 Specific Information Offset Size Description 10 byte number of block devices 11 word max sector size used by DOS prior to loading block device drivers; limits allowable device sector size 13 dword pointer to DOS cache buffer header 17 dword pointer to drive information table 1B byte value of LASTDRIVE command in CONFIG.SYS 1C dword pointer to STRING= workspace area 20 word size of STRING area (CONFIG.SYS value of STRING=x) 22 dword FCB file table pointer 26 word number of protected FCBs 28 18bytes NUL device header, first 4 bytes of device header point to the next device in device chain DOS 3.1-3.3 Specific Information Offset Size Description 10 word max sector size used by DOS prior to loading block device drivers; limits allowable device sector size 12 dword pointer to DOS cache buffer header 16 dword pointer to drive information table 1A dword FCB file table pointer 1E word number of protected FCBs 20 byte number of block devices 21 byte value of LASTDRIVE command in CONFIG.SYS 22 18bytes NUL device header, first 4 bytes of device header point to the next device in device chain 34 byte number of JOIN'ed drives DOS 4.x Specific Information Offset Size Description 10 word max sector size used by DOS prior to loading block device drivers; limits allowable device sector size 12 dword pointer to DOS cache buffer header 16 dword pointer to drive information table 1A dword FCB file table pointer 1E word number of protected FCBs 20 byte number of block devices 21 byte value of LASTDRIVE command in CONFIG.SYS (default 5) 22 18bytes NUL device header, first 4 bytes of device header point to the next device in device chain 34 byte number of joined drives 35 word pointer within IBMDOS code segment to list of special program names 37 dword pointer to resident IFS utility function 3B dword pointer to chain of installable file system drivers 3F word the x in BUFFERS x,y (rounded up to multiple of 30 if EMS is used) 41 word the y in BUFFERS x,y 43 byte boot drive (1=A:) 44 byte ??? 45 byte extended memory size in K bytes - see Bibliography references for Bernd Schemmer & "Undocumented DOS" - see INDOS INT 21,5D