Multitasking MS-DOS 4.0, Goupil OEM

The recently unearthed copy of the near-mythical Multitasking (aka European) MS-DOS 4.0 clearly did not want to be alone. James Lariviere, a kind reader of this blog, provided a disk image of multitasking DOS 4 which was released in 1986 by the French company SMT Goupil.

Multitasking DOS 4, Goupil OEM

Microsoft’s contract with Goupil was the main reason why multitasking DOS 4 was completed at all. Goupil was the most important and perhaps even only OEM shipping multitasking DOS 4 (British ICL was the primary customer of the updated multitasking DOS 4.1 in 1987).

The machine that multitasking DOS 4 ran on was the Goupil G4, and a brief look at the machine’s specs reveals why Goupil was interested in multitasking DOS 4: The G4 was equipped with an 8 MHz Intel 80186 processor.

It should be apparent that in 1985, an 8 MHz 186 was quite the speed demon. However, with no protected mode, the G4 had no chance of running the upcoming DOS 5 aka OS/2. But the 8086-compatible multitasking DOS 4 seemed like a good fit.

The surviving files indicate that Goupil was running Microsoft’s MS-NET on top of multitasking DOS 4. MS-NET was a close relative of the IBM PC Network Program and a direct ancestor of LAN Manager as well as modern Microsoft networking products.

Microsoft vs. Goupil Differences: What’s Old

How does the Goupil release of multitasking MS-DOS 4.0 differ from the previously available non-OEM-customized copy? As it turns out, very little.

If the timestamps are to be believed, Goupil released multitasking DOS 4 sometime in May or June 1986 since IO.SYS is dated May 15, 1986. However, the bulk of the files is dated November 26/27, 1985β€”exactly the same as the previously known copy. In fact most of the files are identical.

It appears that Microsoft finished the bulk of the development of multitasking DOS 4.0 at the end of November 1985. However, both the Microsoft and Goupil disks include COMMAND.COM dated February 24, 1986, nearly three months later than the other files. It is likely that Microsoft shipped an OAK to the OEMs at the end of February or beginning of March 1986.

Looking at the timestamps of the files that Goupil modified, it seems that Goupil started working on the adaptation no later than March 1986 (FORMAT.EXE dated March 2, 1986).

So what did Goupil really change? There are trivial changes to FORMAT.EXE and SYS.EXE. For whatever reason, Microsoft’s multitasking DOS 4.0 used IBMBIO.COM and IBMDOS.COM as system file names. Goupil used the standard MS-DOS IO.SYS and MSDOS.SYS naming. In addition, the boot sector contained a “GOUPIL” signature rather than “IBM 4.0”.

The print spooler PRINT.EXE was rebuilt by Goupil, but without any obvious differences. MSDOS.SYS was likewise rebuilt with no apparent differences. In both cases, the copyright string in MSDOS.SYS/IBMDOS.COM was “MS-DOS version 4.00, Copyright 1981,82,83,84,85 Microsoft Corp.”

IO.SYS was naturally also rebuilt by Goupil, and that is the file with the most recent timestamp (May 15, 1986). Strangely enough, the timestamp and version strings embedded inside the binary indicate that Goupil used slightly older source code for building IO.SYS.

There is one important omission in the Goupil release: SM.EXE, the multitasking session manager. There was no obvious way to create new sessions in the Goupil version. Also missing was the SWAPPER.EXE daemon.

MS vs. Goupil Differences: What’s new

There are several newly rediscovered files files not found on the Microsoft disks.

Goupil provided a PS.EXE utility, clearly inspired by UNIX/XENIX. The executable is unfortunately timestamped January 4, 1980, hence its true age is unknown. This utility was quite likely written by Microsoft.

PS.EXE accepted several switches (indicated by a dash, not a slash!) which controlled the output and allowed the user to display various aspects of process state.

Multitasking DOS 4 PS (command line)

There is a certain level of insight that PS.EXE provides into the structure of multitasking DOS 4. For example, it’s apparent that the standard ~18.2 Hz tick was used as the scheduling quantum. Or that the PTDA (presumably Per-Task Data Area) replaced the DOS PSP, just like it did in OS/2. Or that PIDs (Process IDs), PPIDs (Parent Process IDs), and SGs (Screen Groups) were likewise concepts introduced in multitasking DOS 4 and later adopted in OS/2.

The PS.EXE utility also provided a full-screen mode, very similar to the ‘top’ utility on UNIX systems.

Multitasking DOS 4 PS (full screen)

Another significant Microsoft file which surfaced in the Goupil release is DEBUGDD.SYS, a kernel debugger for multitasking DOS 4.0. Unlike DOS, but like OS/2, multitasking DOS 4 had an optional built-in kernel debugger (KDB) which communicated over a serial port. The debugger strongly resembled its cousins SYMDEB and the OS/2 KDB, with the caveat that it doesn’t appear to have had any capability for loading module symbols.

Less interesting but also “new” is DOSSIZE.EXE, a small utility whose sole purpose was to display how much memory various DOS components occupied.

Multitasking DOS 4 DOSSIZE

Yet another newly surfaced fragment on the Goupil disk is NET.SYS, clearly a customized MS-NET component for a networking product marketed as GOUPILnet. Unfortunately no other networking utilities are available; however, it is known that MS-NET 2.0 ran on top of multitasking DOS 4.

The Disk(s)

Goupil originally delivered the software on 360K floppies. Rather predictably, since 360K drives were what the G4 had.

The original disks are probably lost and the surviving disk is a 720K format, created by combining the contents of two 360K floppies (note that the 720K disk is actually formatted with a 360K filesystem).

The disk should work on more or less any PC compatible. Please keep in mind that only fixed disk partitions up to 32MB in size are supported.

Now let’s hope that other OEM releases of multitasking DOS 4 will surface (if they exist), or even better, multitasking MS-DOS 4.1 will.

This entry was posted in DOS, Microsoft, OS/2. Bookmark the permalink.

29 Responses to Multitasking MS-DOS 4.0, Goupil OEM

  1. Trowa Barton says:

    Thanks for the share, this has always been a strange one to read about, they did it, no one important enough really wanted it, shuffled its concepts into other OSes.

    So if this is based from DOS 2.x code that should mean it is only capable of running Windows 1.x? Unless its version number is enough to fool newer versions.

    Regardless, I wonder if the multitasking abilities of this DOS would create any strange or unusual behaviors for Windows.

  2. Michal Necasek says:

    Actually I highly doubt it can run any Windows at all. The internal DOS structures aren’t terribly compatible. It’s probably less compatible with DOS than the infamous OS/2 1.x DOS box.

    Microsoft did plan to have multitasking DOS working together with Windows and even marketing it as a bundled product, but that never happened.

    I don’t think it’s accurate to say it’s based on DOS 2.x. The development started in DOS 2.x days, but the multitasking DOS 4 code base significantly diverged and probably also picked up quite a bit of stuff from DOS 3. The memory management (segment swapping etc.) made its way into Windows and the NE segmented executable format was used in both Windows and OS/2.

    It’s probably fair to say that the multitasking DOS 4 is architecturally somewhere between DOS 3 and DOS 5 (aka OS/2).

  3. Yuhong Bao says:

    The ICL version had Windows bundled and Larry Osterman’s blog said they once had Windows working.

  4. Michal Necasek says:

    But that was version 4.1, wasn’t it. It came out quite a bit later. And was it unmodified retail Windows, or something special? At any rate, I’ll believe it if/when I see it…

  5. dosfan says:

    PS.EXE has a C Library copyright of 1985 but there’s no way to narrow it down further.

    Interestingly DOSSIZE.EXE and PS.EXE do NOT use INT 21h functions to get their info, they both crawl through memory blocks. Unfortunately since they are NE executables tracing them with DEBUG is not possible. Also there is no true MZ stub code, the MZ header indicates MINALLOC and MAXALLOC FFFFh so a non-NE aware program will get an insufficient memory error attempting to load them.

  6. Trowa Barton says:

    I didn’t have much luck getting them to run 1.01 said Internal Error E4F1 and 2.03 couldn’t reserve 512KB memory to actually perform the installation. I edited config.sys to pull out the other drivers it was loading but still wasn’t enough, looks like the 640k limit kills it for this 4.0 version, here’s hoping for the fabled 4.1 to pop into existence some day.

  7. Richard Wells says:

    I would suggest making a PIF that suggests everything can be modified and increase minimum memory from the default 52KB. PIFEDIT requires the command line to include both /a and a filename in order to open up an editable window. For most other applications, I would look to the Windows 2 PIF files as the starting point for making DOS 4 PIFs. I don’t think any but the absolute smallest and best behaved DOS apps will work under DOS 4 without a correctly defined PIF.

    I wish I knew how to approach the other side of the issue. I have read that the Windows memory manager and the DOS 4 memory manager were very similar. I have wondered if it was possible to have DOS 4 coded applications run under Windows 1 or 2 as basically text mode Windows applications similar to how QuickWin worked under Windows 3.

  8. James Lariviere says:

    I’m very glad to see that this dos version make people so interesed. I always known that this wasn’t an ordinary dos version but did not know very much about it, now that the disk image is available maybe some people will look further to find more informations.
    Thanks to all especially Michal.

  9. Michal Necasek says:

    Thank you for saving this piece of computing history πŸ™‚

  10. Michal Necasek says:

    I don’t supposed you tried DEBUGDD.SYS? πŸ™‚ It’s very rudimentary, but it does work… then again, IDA is probably much more effective.

  11. Michal Necasek says:

    FWIW… I was able to install Windows 1.04 on multitasking DOS 4 (‘memset default 384’ to allow setup to run) but any attempt to execute WIN.COM ends up with ‘Cannot find Windows startup files’. I can’t say if this is an incompatibility or just a consequence of restricted memory.

    Oh, and E.EXE from PC DOS 7 works pretty well under multitasking DOS 4. Heck of a lot better than EDLIN πŸ™‚

  12. Trowa Barton says:

    Yeah… I dabbled with edlin but kept deleting wrong lines, I would up just mounting the vm’s disk and using notepad.

  13. Michal Necasek says:

    EDLIN is… so 1970s. It’s very difficult to use without a manual. It’s actually usable in a pinch, but not without experience and/or documentation. I bet Tim Paterson couldn’t believe they kept shipping EDLIN for so many years.

    What I have is a simple bootable DOS disk (image) with an editor, I can easily boot it in a VM and edit whatever I need. Faster than juggling virtual disks. And in the case of multitasking DOS 4, at least some editors can be run directly.

  14. dosfan says:

    EDLIN is very difficult to use *with* a manual. I wonder why they bothered shipping it at all after DOS 3 considering that nobody used it considering there were numerous third-party text editors available.

    One big problem I have running multitasking DOS 4 is that there is nothing to hook in order to issue a HLT instruction to idle during the keyboard input loop so my CPU fan loudly revs up to maximum speed.

  15. Richard Wells says:

    EDLIN stayed around for a long time because some people apparently used it in batch files. EDLIN was one of the better line editors. I found it easy to use, certainly better than the one I got to use with a PDP-10.

  16. Rich Shealer says:

    At the time EDLIN was useful to me as a technician because it was on all of the DOSs. Where EDIT and E were only on newer machines. A lot of systems were on DOS 3.30 for a long time.

  17. DOS says:

    If you read the IBM (internal) Personal Computer Newsletter you see that back in 1981-2 when IBM staff first got their hands on PCs, quite a few people started working on full-screen editors. And yet it took so long for DOS to come with one..

  18. David says:

    Thanks for providing the bootable image. I’m always intrigued by older operating systems, especially ones that have this kind of mystique to them. In your article you say, “There is one important omission in the Goupil release: SM.EXE, the multitasking session manager. There was no obvious way to create new sessions in the Goupil version. Also missing was the SWAPPER.EXE daemon.”

    I take this to mean that even though the image is bootlable, there’s no way to actually switch between tasks? Shame.

    Also, are you able to “install” to the C: drive under VirtualBox? I created a quick 4MB RAM / 16MB HDD system. The image boots and I was able to fdisk, format, and “sys c:”, but once I reboot, the c: drive is unbootable.

  19. Trowa Barton says:

    Yes! The problem is doesn’t actually transfer, once you move that to the root yourself then you can boot from the HDD. While you are at it you might as well copy everything from the bin folder on the floppy image too..

  20. David says:

    I started over and did a “format c: /s” the second time. For whatever reason, that worked whereas “format c:” and then “sys c:” did not.

    I was under the impression that both methods were functionally identical procedures?

  21. Michal Necasek says:

    In theory, yes, at least if SYS is run immediately after FORMAT. For this version of DOS, I don’t think that’s quite true.

  22. Michal Necasek says:

    Since the disk image is not original, I can’t say exactly what Goupil delivered and what they didn’t. However, the start-up files do appear to be original, and they do not reference the session manager. It looks like the intent was to have a network/mail server with background services rather than a generic multi-tasker.

    And I see you managed to get the hard disk going, so that’s good πŸ™‚

  23. David Courtney says:

    (added my last name to avoid any naming conflict with other Davids)

    I found the other release you mentioned at the beginning of this article, Multitasking (aka European) MS-DOS 4.0. That version seems to be a lot more complete. At least, it has the task switching ability!

    How much have you played with that version? I was curious if I could install Turbo Pascal 7.01 on there to try and compile some of my old pascal code. But the installer won’t run for lack of memory.

    I don’t have any experience with DOS versions older than 5, so I’m at a bit of a loss as to what to do. There’s no “mem” command, there’s no HIMEM.SYS or anything. How do you install and run anything?

    I couldn’t even get Telix to install. (popular serial port emulator.)

  24. Michal Necasek says:

    The other “release” of multitasking DOS 4 is just different, there are some additional components and some missing components (e.g. kernel debugger). I don’t even know for certain what would constitute a “complete” version.

    There is no HIMEM or EMM386. Any software which needs EMS or XMS simply won’t run (there’s a reason why this version of DOS wasn’t very popular!).

    The MEMSET internal command can be used to increase memory available to DOS programs. ‘MEMSET DEFAULT 384’ or similar helps with a lot of software.

  25. David Courtney says:

    Too bad. I can’t really get anything to work with this. I ran “MEMSET DEFAULT 1000” – which appears to be the maximum. This let me install Telix, but once installed, it won’t run. “Program too big to fit in memory”

    And Turbo Pascal 7.01 won’t even install. Very unfortunate. I can’t imagine how tiny the programs must be to work with this.

  26. Michal Necasek says:

    Turbo Pascal 3.0 would be a more appropriate choice πŸ™‚ It’s unrealistic to expect 1990s software to work. Multitasking DOS 4 was essentially completed in 1985, and was written for software that assumed PCs with 256K, at most 512K memory total.

    If the DOSSIZE utility is to be believed, there’s less than 500K memory available for applications. And that’s the best case.

  27. David Courtney says:

    Well, at least I can run some of my old programs under Multitasking DOS 4. I’ve not yet been able to compile, but it’s cool to see it run.

    This was a simple card game called Blitz that my friend showed me how to play … back when I was in high school. The rules were so simple, and it was pretty fun, so I thought it would make for a good little programming project. I never did figure out how to make the computer players make good choices though.

    Here’s a VFD if you want to check it out. Source included.

    The idea of the game is to get the highest point total consisting of 3 cards. The best possible score is 31. Only cards of the same suit can be added together. So Ace, King, Queen of the same suit is Blitz!

  28. Yuhong Bao says:

    “Turbo Pascal 3.0 would be a more appropriate choice πŸ™‚ It’s unrealistic to expect 1990s software to work. ”
    It would be funny however if it was actually released widely and programs was expected to work with it. I believe LIM EMS 3.2 already existed by then.

  29. MiaM says:

    Well, if you don’t like EDLIN you wouldn’t like Turbo Pascal 3.0 either. Both requires a manual or similar for the user to be able to do simple tasks like save a file, exit the editor and similar.

    TP 3.0 uses Wordstar-compatible commands. Since I actually have used TP 3.0 for a while Joe has always been my editor of choice in linux/unix environments. That way I’ve never had to learn more than the very basic stuff in VI or Emacs.

    I would recommend TP 5.x if that works.

    P.S. David: I don’t remember “installing” software from this age. You just copied it to a directory and hoped it would run. πŸ™‚

    P.S2. Extremely near off-topic, but related to the “unusual computer history”: TP 3.0 were available for DOS as 8088 code and CP/M as 8080 code. I’ve got an old Epson PX-8 cp/m laptop which uses microcassettes and rom disk modules. Some years ago I made rom images and burned eproms (it’s possible to insert them directly in the sockets if you are careful) with TP 3.0, and it seems to run just fine.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.