Вход:
AH=30h
AL - вернуть производителя или флаг версии (DOS 5.0+ , более рание версии всегда возвращают производителя)
Выход:
AL = старший номер версии
AH = младший номер версии
BL,CX = Серийный номер (BL - старшая часть)
Для AL == 0:
BH - Производитель:
00 - IBM (Novell DOS, Caldera OpenDOS, DR-OpenDOS, and DR-DOS 7.02+ так же возвращают ноль в этом регистре)
01 - Compaq
02 - MS Packaged Product
04 - AT&T
05 - Zenith Data Sysytems (Zenith Electronics, Zenith Electronics)
06 - Hewlett-Packard
07 - Zenith Data Systems (ZDS, Groupe Bull) DOS 5.0+
08 - Tandon
09 - AST (AST Europe Ltd.)
0Ah - Asem
0Bh - Hantarex
0Ch - SystemsLine
0Dh - Packard-Bell
0Eh - Intercomp
0Fh - Unibit
10h - Unidata
16h - DEC
17h - Olivetti DOS
23h - Olivetti (may have been a typo, since 23 = 17h)
28h - Texas Instruments
29h - Toshiba
33h - Novell (Windows/386)
34h - MS Multimedia Systems (Windows/386)
35h - MS Multimedia Systems (Windows/386)
4Dh - Hewlett-Packard (HP)
5Eh - RxDOS (Api Software & Mike Podanoffsky)
66h - PhysTechSoft (PTS-DOS) probably Paragon Technology Systems Corporation PTS-DOS as well
99h - General Software's Embedded DOS
CDh - Paragon Technology Systems Corporation ("Source DOS" S/DOS 1.0+)
EDh - зарезервированно для проектов, основанных на OpenDOS/DR-DOS
EEh - DR DOS
EFh - Novell DOS (версия 7 передаёт в этом регистре 0)
FDh - FreeDOS
FFh - Microsoft, Phoenix (официально не определён)
Для AL == 1:
бит 3 регистра BH показывает, находится ли DOS в ROM (если установлен - то да), остальные биты зарезервированны
Примечание:
Для DOS 2.0 и выше. Для более ранних вресий в AL возвращается 0.
Большинство версий DOS устанавливают серийный номер в ноль
Реализация DOS в OS/2 1.x возвращает AL равный 0Ah
OS/2 2.x : AL = 14h
OS/2 Warp 3 : AL = 14h, AH = 1Eh
OS/2 Warp 4 : AL = 14h, AH = 28h
DOS 4.01 и 4.02 определяются как 4.0. Используйте функцию 87h что бы уточнить, какя именно это версия.
IBM DOS версии 6.1 определяется как DOS 6.0. Используйте байт производителя, что бы узнать, что это за версия (IBM никогда не выпускала версию 6.0)
Так же следует различать IBM DOS 7.0 и DOS 7.0 входящий в стостав Windows95.
DOS 6.21 определяется как DOS 6.20
Windows 95 сообщает версию DOS 7.0 , а Windows 95 OSR2 и OSR2.5 (также называемые в народе как Windows 96 и Window 97) сообщают версию 7.10
DR DOS версий 5.0 и 6.0 сообщают версию 3.31.
Novell DOS 7, OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02, DR-DOS 7.03 определя.тся как IBM DOS 6.0 ( т.е. соответствует версии IBM DOS 6.10). DR DOS можно отличить от IBM PC-DOS с помощью подфункции 52h функции 44h.
Heiko Goeman's Advanced WinDOS 2.10/2.11/2.21 определяется как IBM DOS 5.0
CCI Multiuser DOS вплоть до версии "CCI Multiuser DOS 7.22 Gold" определяются как DOS 3.31
DR DOS 3.31, 3.32, 3.33, 3.34, 3.35, 3.40, 3.41, 5.0, 6.0 и DR PalmDOS/NetWare PalmDOS 1.0 так же определяются как DOS 3.31
DR DOS версий "Panther" BETA 1 и "StarTrek" определяются как DOS 5.0
MS-DOS 3.30 и Compaq MS-DOS 3.31 ошибочно возвращают ноль в байте изготовителя.
Номер версии, возвращаемый этой функции может быть изменён программой SETVER, входящей в стандартный комплект поставки многих дистрибутивов DOS. Для уточнения номера версии рекомендуется использовать подфункцию 6 функции 33h.