Format of List of Lists:
Offset Size Description )
-24 WORD (DOS 3.1+) contents of CX from INT 21/AX=5E01h
-22 WORD (DOS ???+) LRU counter for FCB caching
-20 WORD (DOS ???+) LRU counter for FCB opens
-18 DWORD (DOS ???+) address of OEM function handler (see INT 21/AH=F8h)
FFFFh:FFFFh if not installed or not available
-14 WORD (DOS ???+) offset in DOS CS of code to return from INT 21 call
-12 WORD (DOS 3.1+) sharing retry count (see AX=440Bh)
-10 WORD (DOS 3.1+) sharing retry delay (see AX=440Bh)
-8 DWORD (DOS 3.0+) pointer to current disk buffer
-4 WORD (DOS 3.0+) pointer in DOS data segment of unread CON input
when CON is read via a handle, DOS reads an entire line,
and returns the requested portion, buffering the rest
for the next read. 0000h indicates no unread input
-2 WORD segment of first memory control block (see #01628)
00h DWORD pointer to first Drive Parameter Block (see #01395 at AH=32h)
04h DWORD -> first System File Table (see #01639,#01640,#01641,#01642)
08h DWORD pointer to active CLOCK$ device's header (most recently loaded
driver with CLOCK bit set)
0Ch DWORD pointer to active CON device's header (most recently loaded
driver with STDIN bit set)
---DOS 2.x---
10h BYTE number of logical drives in system
11h WORD maximum bytes/block of any block device
13h DWORD pointer to first disk buffer (see #01649,#01650)
17h 18 BYTEs actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see #01646)
---DOS 3.0---
10h BYTE number of block devices
11h WORD maximum bytes/block of any block device
13h DWORD pointer to first disk buffer (see #01650,#01652)
17h DWORD pointer to array of current directory structures (see #01643)
1Bh BYTE value of LASTDRIVE command in CONFIG.SYS (default 5)
1Ch DWORD pointer to STRING= workspace area
20h WORD size of STRING area (the x in STRING=x from CONFIG.SYS)
22h DWORD pointer to FCB table
26h WORD the y in FCBS=x,y from CONFIG.SYS
28h 18 BYTEs actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see #01646)
---DOS 3.1-3.3---
10h WORD maximum bytes per sector of any block device
12h DWORD pointer to first disk buffer in buffer chain (see #01650)
16h DWORD pointer to array of current directory structures (see #01643)
1Ah DWORD pointer to system FCB tables (see #01640,#01641,#01642)
1Eh WORD number of protected FCBs (the y in the CONFIG.SYS FCBS=x,y)
20h BYTE number of block devices installed
21h BYTE number of available drive letters (largest of 5, installed
block devices, and CONFIG.SYS LASTDRIVE=). Also size of
current directory structure array.
22h 18 BYTEs actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see #01646)
34h BYTE number of JOIN'ed drives
---DOS 4.x---
10h WORD maximum bytes per sector of any block device
12h DWORD pointer to disk buffer info record (see #01652,#01653)
Note: although the initialization code in IO.SYS uses this
pointer, MSDOS.SYS does not, instead using the hardcoded
address of the info record
16h DWORD pointer to array of current directory structures
(see #01643,#01644)
1Ah DWORD pointer to system FCB tables (see #01640,#01641,#01642)
1Eh WORD number of protected FCBs (the y in the CONFIG.SYS FCBS=x,y)
(always 00h for DOS 5.0)
20h BYTE number of block devices installed
21h BYTE number of available drive letters; also size of current
directory structure array.
For DOS 4.0-6.0: largest of 5, installed block devices,
and CONFIG.SYS LASTDRIVE=
For DOS 7.x (Windows9X), set to 32 if no LASTDRIVE= or
LASTDRIVEHIGH=, else set to larger of installed block
devices and LASTDRIVE(HIGH)=
22h 18 BYTEs actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see #01646)
34h BYTE number of JOIN'ed drives
35h WORD pointer within IBMDOS code segment to list of special program
names (see #01662)
(always 0000h for DOS 5.0)
37h DWORD pointer to FAR routine for resident IFS utility functions
(see #01658)
may be called by any IFS driver which does not wish to
service functions 20h or 24h-28h itself
3Bh DWORD pointer to chain of IFS (installable file system) drivers
3Fh WORD the x in BUFFERS x,y (rounded up to multiple of 30 if in EMS)
41h WORD number of lookahead buffers (the y in BUFFERS x,y)
43h BYTE boot drive (1=A:)
44h BYTE flag: 01h to use DWORD moves (80386+), 00h otherwise
45h WORD extended memory size in KB
---DOS 5.0-6.0---
10h 39 BYTEs as for DOS 4.x (above)
37h DWORD pointer to SETVER program list or 0000h:0000h
3Bh WORD (DOS=HIGH) offset in DOS CS of function to fix A20 control
when executing special .COM format
3Dh WORD PSP of most-recently EXECed program if DOS in HMA, 0000h if low
used for maintaining count of INT 21 calls which disable A20
on return
3Fh 8 BYTEs as for DOS 4.x (above)
---Windows NT DOS Box---
10h 6 BYTEs ???
16h DWORD pointer to array of current directory structures (see #01645)
1Ah 6 BYTEs ???
20h BYTE number of block devices installed
21h BYTE number of local drive letters (= installed block devices)
Also size of current directory structure array.
22h 18 BYTEs actual NUL device driver header (not a pointer!)
NUL is always the first device on DOS's linked list of device
drivers. (see #01646)
---DOS 7.x---
10h 55 BYTEs as for DOS 5.0-6.0 (above)
47h 25 BYTEs ???
60h BYTE "DOS_FLAG" (see also INT 26)