Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Ralf Brown's Interrupt List (Part 1,2) - int 21 - dos 2+ internal - get list of lists http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 21 - DOS 2+ internal - GET LIST OF LISTS
        AH = 52h
Return: ES:BX -> DOS list of lists
Note:   partially supported by OS/2 v1.1 compatibility box (however, most
          pointers are FFFFh:FFFFh, LASTDRIVE is FFh, and the NUL header "next"
          pointer is FFFFh:FFFFh).

Format of List of Lists:
Offset  Size    Description
 -12    WORD    (DOS 3.1-3.3) sharing retry count (see AX=440Bh)
 -10    WORD    (DOS 3.1-3.3) sharing retry delay (see AX=440Bh)
 -8     DWORD   (DOS 3.x) pointer to current disk buffer
 -4     WORD    (DOS 3.x) pointer in DOS code 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
 00h    DWORD   pointer to first DOS Drive Parameter Block (see AH=32h)
 04h    DWORD   pointer to list of DOS file tables (see below)
 08h    DWORD   pointer to CLOCK$ device driver, resident or installable
 0Ch    DWORD   pointer to actual CON device driver, resident or installable
---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 below)
 17h 18 BYTEs   actual NUL device driver header (not a pointer!)
                This is the first device on DOS's linked list of device
                drivers. (see below for format)
---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 below)
 17h    DWORD   pointer to array of current directory structures (see below)
 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!)
                This is the first device on DOS's linked list of device
                drivers. (see below for format)
---DOS 3.1-3.3---
 10h    WORD    maximum bytes/block of any block device
 12h    DWORD   pointer to first disk buffer (see below)
 16h    DWORD   pointer to array of current directory structures (see below)
 1Ah    DWORD   pointer to FCB table (if CONFIG.SYS contains FCBS=)
 1Eh    WORD    number of protected FCBs (the y in FCBS=x,y)
 20h    BYTE    number of block devices
 21h    BYTE    value of LASTDRIVE command in CONFIG.SYS (default 5)
 22h 18 BYTEs   actual NUL device driver header (not a pointer!)
                This is the first device on DOS's linked list of device
                drivers. (see below for format) (see also INT 2F/AX=122Ch)
 34h    BYTE    number of JOIN'ed drives
---DOS 4.x---
 10h    WORD    maximum bytes/block of any block device
 12h    DWORD   pointer to disk buffer info (see below)
 16h    DWORD   pointer to array of current directory structures (see below)
 1Ah    DWORD   pointer to FCB table (if CONFIG.SYS contains FCBS=)
 1Eh    WORD    number of protected FCBs (the y in FCBS=x,y)
 20h    BYTE    number of block devices
 21h    BYTE    value of LASTDRIVE command in CONFIG.SYS (default 5)
 22h 18 BYTEs   actual NUL device driver header (not a pointer!)
                This is the first device on DOS's linked list of device
                drivers. (see below for format) (see also INT 2F/AX=122Ch)
 34h    BYTE    number of JOIN'ed drives???
 35h    WORD    pointer within IBMDOS code segment to list of special program
                names (see below)
 37h    DWORD   pointer to FAR routine for resident IFS utility functions
                (see below)
                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    the y in BUFFERS x,y
 43h    BYTE    boot drive (1=A:)
 44h    BYTE    01h if 80386+, 00h otherwise???
 45h    WORD    extended memory size in K

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson