en:docs:dos:api:int21:33:06
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


en:docs:dos:api:int21:33:06 [2020/12/09 06:34] (current) – created prokushev
Line 1: Line 1:
 +{{page>en:templates:dosint}}
 +
 +====== Int 21H, AH=33H, AL=06H ======
 +
 +===== Version =====
 +
 +5.0 and higher
 +
 +===== Brief =====
 +
 +GET TRUE VERSION NUMBER
 +
 +===== Family API =====
 +
 +
 +===== Input =====
 +
 +        AX = 3306h
 +
 +===== Return =====
 +
 + BL = major version
 +        BH = minor version
 +        DL = revision (bits 2-0, all others 0)
 +        DH = version flags
 +            bit 3: DOS is in ROM
 +            bit 4: DOS is in HMA
 +        AL = FFh if true DOS version < 5.0
 +
 +===== Macro =====
 +
 +
 +===== Notes =====
 +
 +  this function always returns the true version number, unlike AH=30h,
 +          whose return value may be changed with SETVER
 +        because of the conflict from the CBIS redirector (see next
 +          entry), programs should check whether BH is less than 100 (64h)
 +          and BL is at least 5 before accepting the returned BX as the true
 +          version number; however, even this is not entirely reliable when
 +          that redirector is loaded
 +        Under MS-DOS/PC DOS, DR DOS, PTS-DOS, S/DOS this function does not
 +          use any of the DOS internal stacks and thus is fully reentrant
 +        OS/2 v2.1 will return BX=0A14h (version 20.10)
 +        Windows 95 and Windows 95 SP1 return version 7.00; Windows 95 OSR2
 +          and OPK3 (OSR2.5) return version MS 7.10.
 +        the Windows NT DOS box returns BX=3205h (version 5.50)
 +        Novell DOS 7 returns IBM v6.00, which some software displays as
 +          IBM DOS v6.10 (because of the version mismatch in true IBM DOS
 +          mentioned for INT 21/AH=30h); versions through Update 15 all
 +          return revision code 00h
 +        Windows95 and Windows95 SP1 return version 7.00; Windows95 OSR2 returns
 +          version 7.10
 +        Heiko Goeman's Advanced WinDOS 2.10/2.11/2.21 returns DOS 5.00,
 +          revision 0.
 +        Novell DOS 7, OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02, DR-DOS 7.03
 +          all return IBM 6.00, which some software displays as IBM DOS 6.10
 +          (because of the version mismatch in true IBM DOS mentioned for
 +          INT 21/AH=30h); versions through Novell DOS 7 Update 15.2 (01/1996)
 +          all return revision code 00h. The DOS revision is stored in bits 7-0
 +          of the "patch_version" field in the PCM_HEADER structure in the
 +          IBMDOS.COM file (see also INT 21/AX=4452h !!!). The version
 +          flags (DH) are stored in bits 15-8 of "patch_version", but is updated
 +          at runtime to reflect the actual status. "patch_version" is also
 +          reported as DX in INT 21/AX=4452h.
 +        Unlike MS-DOS, under Novell DOS 7+ IBMDOS.COM will also allow to
 +          SETVER the returned "true" DOS version same as with INT 21/AX=3000h
 +          and INT 21/AX=3001h.
 +        DR-DOS 7.02+ IBMDOS.COM (since 1998-01-10) now recognizes optional
 +          paths to filenames stored in the SETVER list. Previously such
 +          entries were never found. This enables a three staged model of
 +          SETVERed versions:
 +          highest priority = entry with path is matching.
 +          middle priority = entry without path is matching.
 +          lowest priority = use global version (SETVER /G).
 +        The DR-DOS 7.02+ SETVER 1.01+ (1998-01-12) has also been enhanced to
 +          allow BDOS and DOS version faking (see INT 21/AX=4452h). In /X mode,
 +          a set sub-version of y = 128..255 will be reported as 0..127 DOS
 +          sub-version, sub-versions of y = 100..127 will be used to report this
 +          value as BDOS version (64h..7Fh) with INT 21/AX=4452h instead while
 +          bits 6-0 of the DOS revision stored in PCM_HEADER in the IBMDOS.COM
 +          file will be used to report the BH DOS sub-version 0..127 (usually
 +          this holds 0, but it can be patched to other values).
 +        DR-DOS SHARE 2.05 (1998-01-05) has relaxed version checking now, and
 +          will install on any DOS revision 0..127 (formerly it was bound to
 +          DOS revision 0 only), as long as run on a DR-DOS 72h or 73h BDOS
 +          kernel.  Hence, if there will be changes in the SHARE implementation
 +          without changing the BDOS version, DR-DOS SHARE 2.05 can still be
 +          stopped from installing by changing the DOS revision in PCM_HEADER
 +          to something in the range 128..255.
 +        Under Novell DOS 7+, the version SETVERing also affects the version
 +          number WORD stored at offset +40h in each program's PSP (see
 +          Table xxxx at INT 21/AH=26h). This holds true even for special
 +          sub-versions of 100..255 (see INT 21/AX=4452h).
 +        S/DOS 1.0 (1995) returns a DOS revision of 9, while its own PTS OEM
 +          revision still defaults to 0 (see also INT 21/AH=20h"S/DOS").
 +BUG:    DR DOS 5.0 and 6.0 return CF set/AX=0001h for INT 21/AH=33h
 +          subfunctions other than 00h-02h and 05h, while MS-DOS returns AL=FFh
 +          for invalid subfunctions
 +
 +===== See also =====
 +
 +AH=30h,INT 2F/AX=122Fh,INT 2F/AX=E000h"SETDRVER"
 +
 +===== Note =====
 +
 +Text based on [[http://www.cs.cmu.edu/~ralf/files.html|Ralf Brown Interrupt List Release 61]]
 +
 +{{page>en:templates:int}}
 +
 +{{page>en:templates:fapi}}
 +