[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 21 Fn 4458  U - Dr-dos 5.0+ Internal - Get Pointer To Internal Variab  [O]

   AX = 4458h

Return: ES:BX -> internal variable table (see below)
   AX = ??? (0B50h for DR-DOS 5.0, 0A56h for DR-DOS 6.0)

See Also: AX=4452h

Format of internal variable table:
Offset Size    Description
 00h   WORD    ???
 02h   WORD    segment of ???
 04h  7 BYTEs  ???
 0Bh   WORD    KB of extended memory at startup
 0Dh   BYTE    number of far jump entry points
 0Eh   WORD    segment containing far jumps to DR-DOS entry points (see below)
 10h   WORD    (only if kernel loaded in HMA) offset in HMA of first free HMA
       memory block (see below) or 0000h if none; segment is FFFFh
 12h   WORD    pointer to segment of environment variables set in CONFIG,
       or 0000h if already used
---DR-DOS 6.0---
 14h   WORD    (only if kernel loaded in HMA) offset in HMA of first used HMA
       memory block (see below) or 0000h if none; segment is FFFFh

Note:  the segment used for the DR-DOS 6.0 CONFIG environment variables
     (excluding COMSPEC, VER and OS) is only useful for programs/drivers
     called from CONFIG.SYS. The word is set to zero later when the area
     is copied to the COMMAND.COM environment space.  This allows
     CONFIG.SYS to pass information to AUTOEXEC.BAT.

Format of kernel entry jump table for DR-DOS 5.0-6.0:
Offset Size    Description
 00h  5 BYTEs  far jump to kernel entry point for CP/M CALL 5
 05h  5 BYTEs  far jump to kernel entry point for INT 20
 0Ah  5 BYTEs  far jump to kernel entry point for INT 21
 0Fh  5 BYTEs  far jump to kernel entry point for INT 22 (RETF)
 14h  5 BYTEs  far jump to kernel entry point for INT 23 (RETF)
 19h  5 BYTEs  far jump to kernel entry point for INT 24
 1Eh  5 BYTEs  far jump to kernel entry point for INT 25
 23h  5 BYTEs  far jump to kernel entry point for INT 26
 28h  5 BYTEs  far jump to kernel entry point for INT 27
 2Dh  5 BYTEs  far jump to kernel entry point for INT 28
 32h  5 BYTEs  far jump to kernel entry point for INT 2A (IRET)
 37h  5 BYTEs  far jump to kernel entry point for INT 2B (IRET)
 3Ch  5 BYTEs  far jump to kernel entry point for INT 2C (IRET)
 41h  5 BYTEs  far jump to kernel entry point for INT 2D (IRET)
 46h  5 BYTEs  far jump to kernel entry point for INT 2E (IRET)
 4Bh  5 BYTEs  far jump to kernel entry point for INT 2F

Notes: all of these entry points are indirected through this jump table
     to allow the kernel to be relocated into high memory while leaving
     the actual entry addresses in low memory for maximum compatibility
   some of these entry points (22h,23h,24h,2Eh,2Fh) are replaced as soon
     as COMMAND.COM is loaded, and return immediately to the caller, some
     returning an error code (the original handler for INT 2F returns
     AL=03h [fail]).

Format of HMA Memory Block (DR-DOS 6.0 kernel loaded in HMA):
Offset Size    Description
 00h   WORD    offset of next HMA Memory Block (0000h if last block)
 02h   WORD    size of this block in bytes (at least 10h)
 04h   BYTE    type of HMA Memory Block (interpreted by MEM)
       00h system
       01h KEYB
       02h NLSFUNC
       03h SHARE
       04h TaskMAX
       05h COMMAND
 05h   var TSR (or system) code and data. DR-DOS TSR's, such as KEYB,
       hooks interrupts using segment FFFEh instead FFFFh.

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson