Interrups | Categories | Contents |
AX = 5500h
Return:
AX = 0000h if an instance of COMMAND.COM is already running DS:SI -> entry point table
Notes: Used to access the shareable portion of COMMAND.COM, which may have been moved into the HMA; only the primary COMMAND.COM retains this portion. Procedures called from a dispatcher in COMMAND's resident portion; most assume that the segment address of the resident portion is on the stack and are thus not of general use. DR PalmDOS up to DR-DOS 7.03 COMMAND.COM do not support this call.. When loading the default command processor (no SHELL= directive in CONFIG.SYS), MS-DOS 6.0-6.22 IO.SYS & PC DOS 6.1-2000 IBMBIO.COM check a signature (see #04099) in the COMMAND.COM file image to test if it is actually their own shell and has the correct version, before they will launch it. If the signature is not found, the message "Invalid COMMAND.COM" will be displayed. This test seems to have vanished with MS-DOS 7+, as it uses an .EXE style file format.. In addition to this, the MS-DOS/PC DOS COMMAND.COM checks the version of the underlaying OS to see if it is their own. Hence, the PC DOS 6.1 (and by SETVER version faking also the PC DOS 7 and 2000) COMMAND.COM also run on Novell DOS 7 - DR DOS 7.03, which all identify themselves as DOS API level 6.0 and IBM OEM (not yet tested as primary shell). PC DOS 5.0 COMMAND.COM should run on DR PalmDOS (untested).. The MS-DOS 7+ COMMAND.COM seems to no longer perform this kind of version check any more, which can cause a serious deadlock situation on a multi-boot system with DR-DOS installed, when the MS-DOS 7+ COMMAND.COM is placed in C:\. When IBMBIO.COM attempts to load the MS-DOS 7+ COMMAND.COM as a primary shell under DR-OpenDOS 7.02 to DR-DOS 7.03 no error message will be displayed by COMMAND.COM, but the machine will just hang. To defuse this situation, DR-DOS 7.02+ IBMBIO.COM was changed to still scan for a SHELL= directive in [D]CONFIG.SYS even in F5-mode. For maximum safety, the MS-DOS 7 COMMAND.COM should be moved from C:\ to C:\WINDOWS\COMMAND\ and a DCONFIG.SYS file should be created containing for example SHELL=C:\DRDOS\COMMAND.COM instead. If a MS-DOS CONFIG.SYS file exists, it should contain a SHELL=C:\WINDOWS\COMMAND\COMMAND.COM directive. (If no shell can be found at all, DR-DOS IBMBIO.COM would display a prompt to enter the proper path to COMMAND.COM).. The DR-OpenDOS 7.02+ COMMAND.COM is designed to also run on 3rd party operating systems like MS-DOS/PC DOS 3.31+, Windows 9x, and in DOS boxes of OS/2, Windows NT and 2000, and will for example also take advantage of long filenames.
See Also: AX=5501h
Format of Microsoft COMMAND.COM file image signature: Offset Size Description (Table 04100) 00h 3 BYTEs E9h xxh xxh (JMP instruction) 03h BYTE version
bits 7-4:
Major versionbits 3-0:
Minor version code ( 60h for MS-DOS 6.0 and PC-DOS 6.1; 64h for MS-DOS 6.20, Japanese MS-DOS 6.2, Hangeul MS-DOS 6.2; 66h for MS-DOS 6.22, PRC (Chinese) MS-DOS 6.22; 70h for PC DOS 7, PC DOS 7 Y2K edition )
Notes: Since DR DOS 6.0+, MS-DOS 7.0+, PTS-DOS, S/DOS, 4DOS/NDOS use an .EXE style shell file format, this signature is not met by any release of these shells. DR DOS 3.31-5.0 used a different jump (E8h) at offset 00h.. Older releases of MS-DOS/PC DOS all had a jump (E9h) at offset 00h, but other values at offset 03h. For reference here is a list of the values for some of these older shells: 00h for PC DOS 1.10, Olivetti DOS 2.11, MS-DOS 5.0, Russian MS-DOS 5.0 1Eh for MS-DOS 4.01 BAh for PC DOS 3.10, 3.20, MS-DOS 3.30
Category: Shells/Command Interpreters - Int 2Fh - D
Interrups | Categories | Contents |