OS/2 Versions And History: Difference between revisions

From DisNCord Community Wiki
Jump to navigation Jump to search
Waterpear (talk | contribs)
→‎Installation: confirm 86Box compatibility, mention how to fix "bad or missing command interpreter"
Dr. Shuppet (talk | contribs)
 
(16 intermediate revisions by the same user not shown)
Line 2: Line 2:
This is a list, chronologically sorted, of OS/2 versions, related products, and historic dates.
This is a list, chronologically sorted, of OS/2 versions, related products, and historic dates.


== IBM PC DOS 3.1 (1984) ==
== IBM PC DOS 3.0 (1984) ==
 
The release of the IBM Personal Computer/AT in 1984 meant the introduction of the advanced Intel 80286 CPU to the PC market, along with 5.25-inch 1.2 MB diskette support (and later 3.5-inch diskette support). However, DOS 3.0 was only a minor improvement to DOS 2.x, featuring support for 1.2 MB diskettes and hard drives up to 32 MB.
 
Most importantly, DOS 3.x doesn't use the protected mode feature of the 80286, running in real mode instead, which was supposed to be there only for bootstrapping. This might have been due to Intel initially creating the 80286 (called iAXP 286 at the time of its release) to be used not in personal computers, but in multi-user multitasking systems. Thus, users of the PC AT ended up waiting until 1987 for a protected-mode successor of DOS, being left with real-mode DOS and Xenix until then.


== Multitasking DOS 4 ==
== Multitasking DOS 4 ==
[[File:DOS 4.0 multitasking demo.png|thumb|DOS 4.0 running several processes.]]
[[File:MDOS4 session manager.png|thumb|The first known appearance of the Session Manager in Multitasking DOS 4.]]


Officially called just MS-DOS 4.00, Multitasking DOS 4 was the intended successor of DOS 2.x and later 3.x, initially developed between January 1983<ref>http://www.os2museum.com/wp/multitasking-ms-dos-4-0-lives/</ref> and November 1985. It has many features later appearing in both OS/2 and Windows, including:  
''For more detailed information about this version of DOS, see [[Multitasking DOS 4]].''
 
Officially called just '''MS-DOS 4.00''', Multitasking DOS 4 was the intended successor of DOS 2.x and later 3.x, initially developed between January 1983<ref>http://www.os2museum.com/wp/multitasking-ms-dos-4-0-lives/</ref> and November 1985. Despite still running in real mode, it has many features later appearing in both OS/2 and Windows, including:  


* the [[New Executable]] format
* the [[New Executable]] format
Line 15: Line 21:
* the use of a higher-level language (C) for writing parts of the operating system.
* the use of a higher-level language (C) for writing parts of the operating system.


However, unlike any version of OS/2 released to the public (TODO: check for 1986 ADOS 5.0), both earlier MS-DOS COM and MZ executables and MS-DOS interrupts are supported on Multitasking DOS 4, and there are even improvements to these APIs (some of which break compatibility with older DOS versions). New apps use both the legacy (<code>int 21h</code>) and new dynamically linked APIs, perhaps suggesting the old API was deprecated or in the process of being replaced.
However, unlike any version of OS/2 released to the public, both earlier MS-DOS COM and MZ executables and MS-DOS interrupts are supported on Multitasking DOS 4, and there are even improvements to these APIs (some of which break compatibility with older DOS versions). New apps use both the legacy (<code>int 21h</code>) and new dynamically linked APIs, perhaps suggesting the old API was deprecated or in the process of being replaced.


It was originally called DOS 3.0, which is referenced by older binaries checking for DOS 3.0 to 4.0; later the release number was pushed to 4.0 with the release of 3.0.
It was originally called DOS 3.0, which is referenced by older binaries checking for DOS 3.0 to 4.0; later the release number was pushed to 4.0 with the release of 3.0.
Line 21: Line 27:
This version of DOS supports pre-emptive multitasking, but its usability is limited by the 640kB memory limit, with no swapping because of lack of necessary hardware support. For this reason, it was only released to certain OEMs, opting to wait with the public release for its protected mode successor<ref>https://virtuallyfun.com/2013/03/17/european-ms-dos-4-00-aka-multitasking-dos/</ref>.
This version of DOS supports pre-emptive multitasking, but its usability is limited by the 640kB memory limit, with no swapping because of lack of necessary hardware support. For this reason, it was only released to certain OEMs, opting to wait with the public release for its protected mode successor<ref>https://virtuallyfun.com/2013/03/17/european-ms-dos-4-00-aka-multitasking-dos/</ref>.


=== Preserved Copies ===
=== Multitasking Support ===


There are two versions of Multitasking DOS 4 that were preserved. The first one is a two-floppy set, originally uploaded to the now defunct JSMachines.net website. It does not contain any branding and its kernel (IBMDOS.COM) identifies itself as internal revision 6.7, 85/11/26, which is consistent with the creation date of the files. The internal revision identification is cut off with an end of string sign, possibly indicating it was manually edited after the build; together with the fact IBM branding is used, it hints that this is actually a pre-release version.  Floppy 1 contains the operating system and a few basic utilities, including FDISK and FORMAT; floppy 2 contains additional utilities, commands, a copy of the 8086 New Executable linker (LINK4.EXE), a PIF editor (PIFEDIT.EXE), and EDLIN.
Multitasking DOS 4 adds new system calls to manage a multiprocess system, namely for:


The second version is an OEM release by SMT Goupil, a French company, for their Goupil G4 computer, featuring an 80186 clocked at 8 MHz. It was originally a two-floppy set, but the only preserved version is a single 720kB floppy. Based on timestamps, it was built on 15 May 1986, and possibly assembled into a single floppy on 20 March 1997. The kernel is renamed to MSDOS.SYS and IO.SYS, like it is common on MS-DOS (strings inside IO.SYS reveal the source was still named IBMBIO.ASM), and the internal revision string is not present. In addition to what is the first version, it contains a Unix-like PS.EXE utility, revealing some internals about the OS, a kernel debugger (DEBUGDD.SYS), a networking driver (NET.SYS), and DOSSIZE.EXE, an utility printing used and available memory. Strangely, the session manager (SM.EXE) is missing<ref>http://www.os2museum.com/wp/multitasking-ms-dos-4-0-goupil-oem/</ref>.
* shared memory
* semaphores
* sleep and wait on child
* signal handlers and sending signals
* process priority


=== Installation ===
In addition to the usual CON device for the screen, split devices SCREEN$ and KEYBD$ were introduced; the user can switch between multiple sessions, each having its own screen. The DETACH command was added to support running processes in the background; these are still allowed to write onto their attached screen, but can't read from STDIN.


For the media, WinWorld has [https://winworldpc.com/product/multitasking-ms-dos-/400 a copy of the Microsoft version], and OS/2 museum has [http://www.os2museum.com/files/msdos4m-goupil.zip a copy of the Goupil version].  VirtualBox is confirmed to be compatible with Multitasking DOS 4. 86Box is also compatible, though 3½ inch floppy drives do not seem to work (this means you have to use the Microsoft release). For best results, try the Phoenix AT clone (under 80286 CPU).
=== New APIs ===


To get Multitasking DOS 4 up and running, create a VM with a floppy drive and an IDE hard drive no larger than 32 MB. Boot from floppy 1, run FDISK and do the usual procedure of partitioning the hard drive. After reboot, run FORMAT C: /S to format the hard drive and install DOS, then you can reboot into the base system. (If you get the "bad or missing command interpreter" trying to boot from hard drive at this point, then boot from the first floppy and run these steps from there.)
A module built into the kernel called DOSCALLS was introduced in Multitasking DOS 4, containing a limited number of functions implementing new features of the DOS kernel. If you know a little about OS/2 API, this will be familiar to you. Note that some of the functions being prefixed with DOS and some not. Here's a full list of DOSCALLS exports:
 
There is no installation program, hence to complete the installation process, the files from the floppy have to be manually copied to the hard drive:


<pre>
<pre>
C:
1 ALLOCSEG
COPY A:*.*
2 REALLOCSEG
MD BIN
3 FREESEG
CD BIN
4 LOCKSEG
COPY A:\BIN\*.*
5 UNLOCKSEG
6 GETSEGSIZE
7 GETDSHANDLE
8 CRITENTER
9 CRITLEAVE
10 FCRITENTER
11 FCRITLEAVE
12 PBLOCK
13 PRUN
14 SUBSCREEN
15 GETPIDS
16 DOSDISCARDCODE
.17 DOSGETHANDLE
18 DOSHANDLEJUMP
</pre>
</pre>


If installing the Goupil version, the file copying is over now. If installing the Microsoft version, swap to the second floppy, stay in the BIN directory, and run again:
The rest of the new functions (e.g. semaphores) are only implemented as INT 21h calls. Some functionality is also implement as exported functions from SM.EXE (Session Manager) and POPUP.EXE.


<pre>
== OS/2 Pre-Betas ==
COPY A:*.*
 
</pre>
Topics to research:
* Compatibility of API and binaries between OS/2 Pre-Betas and later OS/2 versions
* Compatibility of the early versions of the DOS box
* The evolution of driver composition, i.e. what drivers are separate .SYS modules and what drivers are bundled in IBMBIO.COM and BASEDD*.SYS
 
=== ADOS 5.0, internal revision 7.68 ===


Before rebooting, AUTOEXEC.BAT and CONFIG.SYS have to be modified to point to the hard drive instead of the floppy. Failure to do this will result in a "bad or missing command interpreter" error on boot. EDLIN.EXE is shipped with the system and can be used to do the necessary changes:
The first known version of protected-mode DOS is from October 1986, which is quite late compared to both the release of the PC AT and the development of Windows 1.0 and DOS 4.0. Using the same internal revision format as DOS 4.0, it identifies itself as internal revision 7.68, which is consistent with the known internal revision of DOS 4.0 being 6.7. There is no clear name; boot screen identifies the system as '''CP-DOS 1.0''', while the command interpreter identifies the system as '''ADOS 5.00'''.


<pre>
<gallery>
EDLIN C:\AUTOEXEC.BAT
File:ADOS 5.0 session manager.png|thumb|ADOS 5.0 session manager, captured on internal revision 7.68
*5
File:ADOS 5.0 internal revision 7.68 command prompt.png|thumb|ADOS 5.0 internal revision 7.68 command prompt (CMD.EXE)
      5:*PATH C:\BIN
File:ADOS 5.0 internal revision 7.68 boot screen.png|thumb|ADOS 5.0 internal revision 7.68 booting in VirtualBox
*E
File:ADOS 5.0 real mode.png|thumb|ADOS 5.0 real mode shell, an early version of the so-called penalty box
EDLIN C:\CONFIG.SYS
</gallery>
*3
      3:*C:\BIN\SM.EXE C:\COMMAND.COM
*E
</pre>


Then you can remove your boot floppy and reboot into the full Multitasking DOS 4.0 system, now running from a hard drive:
Feature-wise, ADOS 5.0 is a continuation of DOS 4.0, keeping e.g. New Executable, the DOSCALLS in-kernel module, Session Manager, and SCREEN$ device (KEYBD$ seems to be missing from internal revision 7.68). The default prompt is X], which is different from the standard X>, X:\>, and [4.0 X:\>] prompts used by DOS. A significant difference is the absence of any interrupt-based API in protected mode, all of which was moved to DOSCALLS or several userspace modules<ref>http://www.edm2.com/index.php/OS/2_DLL_Entry_Points</ref>:


<pre>
* BKSCALLS.EXE - Base Keyboard Subsystem
Command v. 4.00
* BMSCALLS.EXE - Base Mouse Handler
Copyright (C) 1981,1985 Microsoft Corp.
* BVSCALLS.EXE - Base Video Subsystem
* KBDCALLS.EXE - Keyboard Router
* MONCALLS.EXE - Monitor Calls
* MOUCALLS.EXE - Mouse Calls
* QUECALLS.EXE - Queue Calls
* VIOCALLS.EXE - Video Calls (VIO subsystem)


[4.0 C:\]
Session Manager (SM.EXE in DOS 4.0) was split into SESMGR.EXE and SHELL.EXE. SESMGR is a module linked by any program that wants to act as a session manager; internally it uses DOSCALLS, KBDCALLS, MOUCALLS, and VIOCALLS routines to handle that. This allows custom shells to be written; SHELL.EXE is the system-provided shell, in appearance very similar to SM.EXE.
</pre>


=== Tips and Tricks ===
This build expects a hard drive with a C:\MTDOS directory to be present, throwing (non-fatal) errors if it isn't there. The name MTDOS might be an indication of the system still being called by the name of its predecessor, Multitasking DOS, internally by the developers.


The Alt key starts the Session Manager menu, from which you can create a new session and switch between existing sessions. Each session has a memory limit that can be viewed by the MEMSET command (default is 128kB). Keep in mind that legacy DOS applications (i.e. non-New Executable ones) take the entire space up to the limit, so you probably don't want to set it to maximum. For legacy applications switching between several programs, like Microsoft C 4.0's CL.EXE (calling C1.EXE), the right amount has to be fine-tuned in order to allow both binaries to run (in the case of MSC 4.0, 200kB works, 128kB is too little for C1.EXE to load, 640kB causes CL.EXE to take all the space, leaving none to C1.EXE).
To provide binary compatibility with real-mode DOS, ADOS 5.0 introduces a separate, real mode environment, identifying itself as CP/DOS Version 5.00. For this purpose, the protected mode command line interpreter was renamed to CMD.EXE, COMMAND.COM being used for the real mode interpreter. PROTMODE has to be set to yes in CONFIG.SYS in order for the DOS mode to be available; it then appears in the session manager menu as COMMAND.COM R.


If you installed the Microsoft version, it is recommended to install DOSSIZE.EXE and PS.EXE tools from the Goupil version; if you installed the Goupil version and want the Session Manager (for switching between processes), you have to copy SM.EXE over from the Microsoft version.
=== ADOS 5.0, SIZZLE internal revision 7.68.18 ===


=== Development ===
Later in December 1986, internal revision 7.68 got another build with a version number 7.68.18, codenamed SIZZLE. It is said to improve overall performance<ref>https://betawiki.net/wiki/IBM_OS/2_1.0_revision_7.68.18</ref>, and contains an updated version of the real mode shell, which fixes the prompt glitch from 7.68 and now identifies itself as The IBM Personal Computer DOS Version 5.00.
[[File:MDOS4 Native Hello world build.png|thumb|Native New Executable Hello world application built using MASM and LINK4 on Multitasking DOS 4.0]]


No toolchain directly targeting Multitasking DOS 4 was preserved, however, the aforementioned distributions contain an [[New Executable]] linker (LINK4.EXE), which can be used together with a suitable assembler or compiler to create NE binaries that will run on Multitasking DOS 4.
The build no longer relies on files on the hard drive, running fully from a diskette. Microsoft C Compiler 3.00.17 is bundled with the build in the DOS3TOOL directory in the release build; MASM, LINK4, MAKE, LIB, SED, and a few other tools are bundled instead in the debug build<ref>https://www.pcjs.org/software/pcx86/sys/os2/misc/87007/</ref>.  


MASM 4.0 can be used to assemble a simple program on Multitasking DOS 4. In order to be successfully linked with LINK4.EXE, the program must contain a DGROUP declaration, which is also called Automatic Data Segment in the NE specification. Here's an example implementation of Hello world:
<gallery>
<pre>
File:ADOS 5.0 7.68.18 SIZZLE boot screen.png|thumb|ADOS 5.0 internal revision 7.68.18 SIZZLE booting in 86box
data segment public 'DATA'
File:ADOS 5.0 SIZZLE real mode.png|thumb|ADOS 5.0 internal revision 7.68.18 in real mode
assume ds:data
</gallery>
hello db "Hello world$"
db 512 dup(0)
data ends


dgroup group DATA
=== ADOS 5.0, PIGSKIN internal revision 7.68.17 ===


code segment public 'CODE'
Despite the confusing version number, this build of internal revision 7.68 is dated February 1987, three months after SIZZLE. It is a part of a development branch called Football, which was dedicated to shoehorning the 386's virtual 8086 mode for running multiple DOS programs into the main SIZZLE development branch. Since SIZZLE is a 16-bit operating system, Football barely runs on a pile of magic and a myriad of ugly hacks, see the references for more details<ref>https://www.pcjs.org/software/pcx86/sys/os2/misc/87058/#football-design-document</ref><ref>https://www.os2museum.com/wp/playing-football/</ref>.
assume cs:code
start:
mov ax, DATA
mov ds, ax
mov dx, offset HELLO
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
code ends
end start


stack segment public 'STACK'
<gallery>
stack ends
File:ADOS 5.0 PIGSKIN boot screen.png|thumb|ADOS 5.0 PIGSKIN booting in PCjs
</pre>
File:ADOS 5.0 PIGSKIN session manager.png|thumb|ADOS 5.0 PIGSKIN session manager
Note the 512 zeroes in the data section, without these, the program doesn't work for some currently unknown reasons. This quirk is not shared by Windows 1.0, which runs the Hello world program fine without the zeroes.
File:ADOS 5.0 PIGSKIN real mode shell.png|thumb|"Real" (V86) mode shell of ADOS 5.0 PIGSKIN, with VT52 emulation
File:ADOS 5.0 PIGSKIN protected mode shell.png|thumb|Protected mode shell of ADOS 5.0 PIGSKIN
</gallery>


An effort to get Microsoft C working is happening on DisNCord. There are two challenges: the lack of a C runtime for Multitasking DOS 4, and Microsoft C compilers being prone to running out of memory on Multitasking DOS 4.
The kernel relies on 386 specific internal registers that were removed in Pentium, as well as an EGA GPU with a purely byte IO interface. Combined with the fact this is a debug build and requires to be poked at the serial console, it makes this build especially hard to run in an emulator. COMPAQ DeskPro 386-16 is known to be supported and is emulated by PCjs, which features a VM with PIGSKIN.


== OS/2 Pre-Betas ==
Just like internal revision 7.68, the build attempts to access the hard drive, in this case only to create a swap file at C:\TMP\SWAPPER.DAT. The protected mode part of the OS appears unchanged. Similarly to SIZZLE having SED.EXE, it also includes a Unix tool, CPGREP.EXE.


''These need to be sorted by date''
== IBM OS/2 1.0 ==
== IBM OS/2 1.0 ==


== MS OS/2 1.0 ==
== MS OS/2 1.0 ==
Things to do:
* Document neozeed's and NCommander's exploration results
* Find out when OS/2 1.1-specific features (.DLL extension, OS name NE field, OS2KRNL) first appeared among MS OS/2 SDKs, and compare them to the timeline of Windows if relevant


== IBM OS/2 1.1 ==
== IBM OS/2 1.1 ==

Latest revision as of 14:17, 2 February 2023

This is a list, chronologically sorted, of OS/2 versions, related products, and historic dates.

IBM PC DOS 3.0 (1984)

The release of the IBM Personal Computer/AT in 1984 meant the introduction of the advanced Intel 80286 CPU to the PC market, along with 5.25-inch 1.2 MB diskette support (and later 3.5-inch diskette support). However, DOS 3.0 was only a minor improvement to DOS 2.x, featuring support for 1.2 MB diskettes and hard drives up to 32 MB.

Most importantly, DOS 3.x doesn't use the protected mode feature of the 80286, running in real mode instead, which was supposed to be there only for bootstrapping. This might have been due to Intel initially creating the 80286 (called iAXP 286 at the time of its release) to be used not in personal computers, but in multi-user multitasking systems. Thus, users of the PC AT ended up waiting until 1987 for a protected-mode successor of DOS, being left with real-mode DOS and Xenix until then.

Multitasking DOS 4

The first known appearance of the Session Manager in Multitasking DOS 4.

For more detailed information about this version of DOS, see Multitasking DOS 4.

Officially called just MS-DOS 4.00, Multitasking DOS 4 was the intended successor of DOS 2.x and later 3.x, initially developed between January 1983[1] and November 1985. Despite still running in real mode, it has many features later appearing in both OS/2 and Windows, including:

  • the New Executable format
  • an OS/2-style per-task data area (PTDA) replacing the MS-DOS program segment prefix (PSP)
  • system calls using dynamically linked functions in a built-in module named DOSCALLS
  • the concept of processes along with related system calls
  • the use of a higher-level language (C) for writing parts of the operating system.

However, unlike any version of OS/2 released to the public, both earlier MS-DOS COM and MZ executables and MS-DOS interrupts are supported on Multitasking DOS 4, and there are even improvements to these APIs (some of which break compatibility with older DOS versions). New apps use both the legacy (int 21h) and new dynamically linked APIs, perhaps suggesting the old API was deprecated or in the process of being replaced.

It was originally called DOS 3.0, which is referenced by older binaries checking for DOS 3.0 to 4.0; later the release number was pushed to 4.0 with the release of 3.0.

This version of DOS supports pre-emptive multitasking, but its usability is limited by the 640kB memory limit, with no swapping because of lack of necessary hardware support. For this reason, it was only released to certain OEMs, opting to wait with the public release for its protected mode successor[2].

Multitasking Support

Multitasking DOS 4 adds new system calls to manage a multiprocess system, namely for:

  • shared memory
  • semaphores
  • sleep and wait on child
  • signal handlers and sending signals
  • process priority

In addition to the usual CON device for the screen, split devices SCREEN$ and KEYBD$ were introduced; the user can switch between multiple sessions, each having its own screen. The DETACH command was added to support running processes in the background; these are still allowed to write onto their attached screen, but can't read from STDIN.

New APIs

A module built into the kernel called DOSCALLS was introduced in Multitasking DOS 4, containing a limited number of functions implementing new features of the DOS kernel. If you know a little about OS/2 API, this will be familiar to you. Note that some of the functions being prefixed with DOS and some not. Here's a full list of DOSCALLS exports:

1	ALLOCSEG
2	REALLOCSEG
3	FREESEG
4	LOCKSEG
5	UNLOCKSEG
6	GETSEGSIZE
7	GETDSHANDLE
8	CRITENTER
9	CRITLEAVE
10	FCRITENTER
11	FCRITLEAVE
12	PBLOCK
13	PRUN
14	SUBSCREEN
15	GETPIDS
16	DOSDISCARDCODE
.17	DOSGETHANDLE
18	DOSHANDLEJUMP

The rest of the new functions (e.g. semaphores) are only implemented as INT 21h calls. Some functionality is also implement as exported functions from SM.EXE (Session Manager) and POPUP.EXE.

OS/2 Pre-Betas

Topics to research:

  • Compatibility of API and binaries between OS/2 Pre-Betas and later OS/2 versions
  • Compatibility of the early versions of the DOS box
  • The evolution of driver composition, i.e. what drivers are separate .SYS modules and what drivers are bundled in IBMBIO.COM and BASEDD*.SYS

ADOS 5.0, internal revision 7.68

The first known version of protected-mode DOS is from October 1986, which is quite late compared to both the release of the PC AT and the development of Windows 1.0 and DOS 4.0. Using the same internal revision format as DOS 4.0, it identifies itself as internal revision 7.68, which is consistent with the known internal revision of DOS 4.0 being 6.7. There is no clear name; boot screen identifies the system as CP-DOS 1.0, while the command interpreter identifies the system as ADOS 5.00.

Feature-wise, ADOS 5.0 is a continuation of DOS 4.0, keeping e.g. New Executable, the DOSCALLS in-kernel module, Session Manager, and SCREEN$ device (KEYBD$ seems to be missing from internal revision 7.68). The default prompt is X], which is different from the standard X>, X:\>, and [4.0 X:\>] prompts used by DOS. A significant difference is the absence of any interrupt-based API in protected mode, all of which was moved to DOSCALLS or several userspace modules[3]:

  • BKSCALLS.EXE - Base Keyboard Subsystem
  • BMSCALLS.EXE - Base Mouse Handler
  • BVSCALLS.EXE - Base Video Subsystem
  • KBDCALLS.EXE - Keyboard Router
  • MONCALLS.EXE - Monitor Calls
  • MOUCALLS.EXE - Mouse Calls
  • QUECALLS.EXE - Queue Calls
  • VIOCALLS.EXE - Video Calls (VIO subsystem)

Session Manager (SM.EXE in DOS 4.0) was split into SESMGR.EXE and SHELL.EXE. SESMGR is a module linked by any program that wants to act as a session manager; internally it uses DOSCALLS, KBDCALLS, MOUCALLS, and VIOCALLS routines to handle that. This allows custom shells to be written; SHELL.EXE is the system-provided shell, in appearance very similar to SM.EXE.

This build expects a hard drive with a C:\MTDOS directory to be present, throwing (non-fatal) errors if it isn't there. The name MTDOS might be an indication of the system still being called by the name of its predecessor, Multitasking DOS, internally by the developers.

To provide binary compatibility with real-mode DOS, ADOS 5.0 introduces a separate, real mode environment, identifying itself as CP/DOS Version 5.00. For this purpose, the protected mode command line interpreter was renamed to CMD.EXE, COMMAND.COM being used for the real mode interpreter. PROTMODE has to be set to yes in CONFIG.SYS in order for the DOS mode to be available; it then appears in the session manager menu as COMMAND.COM R.

ADOS 5.0, SIZZLE internal revision 7.68.18

Later in December 1986, internal revision 7.68 got another build with a version number 7.68.18, codenamed SIZZLE. It is said to improve overall performance[4], and contains an updated version of the real mode shell, which fixes the prompt glitch from 7.68 and now identifies itself as The IBM Personal Computer DOS Version 5.00.

The build no longer relies on files on the hard drive, running fully from a diskette. Microsoft C Compiler 3.00.17 is bundled with the build in the DOS3TOOL directory in the release build; MASM, LINK4, MAKE, LIB, SED, and a few other tools are bundled instead in the debug build[5].

ADOS 5.0, PIGSKIN internal revision 7.68.17

Despite the confusing version number, this build of internal revision 7.68 is dated February 1987, three months after SIZZLE. It is a part of a development branch called Football, which was dedicated to shoehorning the 386's virtual 8086 mode for running multiple DOS programs into the main SIZZLE development branch. Since SIZZLE is a 16-bit operating system, Football barely runs on a pile of magic and a myriad of ugly hacks, see the references for more details[6][7].

The kernel relies on 386 specific internal registers that were removed in Pentium, as well as an EGA GPU with a purely byte IO interface. Combined with the fact this is a debug build and requires to be poked at the serial console, it makes this build especially hard to run in an emulator. COMPAQ DeskPro 386-16 is known to be supported and is emulated by PCjs, which features a VM with PIGSKIN.

Just like internal revision 7.68, the build attempts to access the hard drive, in this case only to create a swap file at C:\TMP\SWAPPER.DAT. The protected mode part of the OS appears unchanged. Similarly to SIZZLE having SED.EXE, it also includes a Unix tool, CPGREP.EXE.

IBM OS/2 1.0

MS OS/2 1.0

Things to do:

  • Document neozeed's and NCommander's exploration results
  • Find out when OS/2 1.1-specific features (.DLL extension, OS name NE field, OS2KRNL) first appeared among MS OS/2 SDKs, and compare them to the timeline of Windows if relevant

IBM OS/2 1.1

MSOS/2 1.2

References