en:docs:dos:api:int21:33:06

Differences

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

Link to this comparison view

en:docs:dos:api:int21:33:06 [2020/12/09 06:34] – created prokusheven:docs:dos:api:int21:33:06 [2024/05/02 05:46] (current) prokushev
Line 33: Line 33:
 ===== Notes ===== ===== Notes =====
  
-  this function always returns the true version number, unlike AH=30h, +this function always returns the true version number, unlike AH=30h, whose return value may be changed with SETVER 
-          whose return value may be changed with SETVER + 
-        because of the conflict from the CBIS redirector (see next +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 
-          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 +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 
-          version number; however, even this is not entirely reliable when + 
-          that redirector is loaded +OS/2 v2.1 will return BX=0A14h (version 20.10) 
-        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 +Windows 95 and Windows 95 SP1 return version 7.00; Windows 95 OSR2 and OPK3 (OSR2.5) return version MS 7.10. 
-        OS/2 v2.1 will return BX=0A14h (version 20.10) + 
-        Windows 95 and Windows 95 SP1 return version 7.00; Windows 95 OSR2 +the Windows NT DOS box returns BX=3205h (version 5.50) 
-          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 
-        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 +Windows95 and Windows95 SP1 return version 7.00; Windows95 OSR2 returns version 7.10 
-          mentioned for INT 21/AH=30h); versions through Update 15 all + 
-          return revision code 00h +Heiko Goeman's Advanced WinDOS 2.10/2.11/2.21 returns DOS 5.00, revision 0. 
-        Windows95 and Windows95 SP1 return version 7.00; Windows95 OSR2 returns + 
-          version 7.10 +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. 
-        Heiko Goeman's Advanced WinDOS 2.10/2.11/2.21 returns DOS 5.00, + 
-          revision 0. +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. 
-        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 +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). 
-          (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) +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). 
-          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 +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. 
-          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 +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). 
-          at runtime to reflect the actual status. "patch_version" is also + 
-          reported as DX in 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"). 
-        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 +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
-          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 ===== ===== See also =====
  
-AH=30h,INT 2F/AX=122Fh,INT 2F/AX=E000h"SETDRVER"+AH=[[en:docs:dos:api:int21:30|30h]],INT 2F/AX=122Fh,INT 2F/AX=E000h"SETDRVER"
  
 ===== Note ===== ===== Note =====