Concurrent DOS/386

Concurrent DOS/386

Concurrent DOS/386

Concurrent DOS/386 was a successor to MP/M, from Digital Research.

I’ve been able to track down a few versions:

  • version 2, released November 17, 1987
  • version 3, released February 23, 1988

What is interesting is that these versions include a CP/M 8086 emulator. I would imagine that would be a ‘big deal’ for users of the older MP/M to migrate into a newer 80386 environment. From what I’ve seen in other places these were compatible with MS-DOS 3.0 . It can also read extended dos partitions! Since they predate VCPI/DPMI there is no way to run protected mode applications. Concurrent DOS/386 is later followed up with Digital Research Multiuser DOS. It is interesting, well to me that DR-DOS was basically a single user, single tasking version of the Multiuser DOS.

Multiuser DR-DOS

I was able to install this on Qemu 0.13.0. Although this includes some IPX/SPX stuff from the later purchase of Digital Research by Novell, it still remains a largely MS-DOS 3.3 compatible OS. Because it uses protected mode, and the v86 mode, it is still incapable of running VCPI/DPMI programs. Also absent is the CP/M emulator. I think there was a DR-DOS 6 equivalence sold as a multiuser, but by the time of DR-DOS 7, the product had been forked and several VARS started to sell their own versions based on Multiuser DR-DOS. These included (but probably not a complete list)

  • REAL/32
  • System Manager
  • DR-Multiuser-DOS

Of these, REAL/32 seems to be the only one that is still alive, and being sold by Intelligent Micro Software. I’ve located a demo version of REAL/32 here.

REAL/32 logo

REAL/32 certainly feels a lot like DR-DOS (which it is derived from) and what is cool is that it supports DPMI applications. I’ve tested some Borland Pascal stuff, along with DJGPP. Like the others it supports serial terminals to be hooked up.

real32 serial connection


Qemu makes it super easy to simple to switch to the serial port, and bring up the ‘second user’. I’m pretty sure you could use qemu to redirect it’s serial port over TCP…

And speaking of networking, the install program also seems to have some kind of networking config built in, so I would imagine each VM can have it’s own IPX/SPX setup? I’ll have to mess some more with it.

If you’ve ever liked DR-DOS, you may want to give real/32 a whirl, it’s certainly more… interesting.

Multiuser DOS

This has been a fun thing to go through, but at one point it was a popular trend to convert big expensive 386 computers from the late 1980’s into multi-user, multi-tasking beasts much like a mainframe. But instead of CICS, and PROFS people ran Dbase III, WordPerfect, and all kinds of email solutions from ccmail, to MS mail, and even some dbase programs, compiled by clipper into being email clients.

In a way things were more ‘simple’ back then, and the 80386 CPU had a card up it’s sleeve v86 mode. v86 mode provides hardware emulation of a 8086, allowing the base OS to spawn dozens of these virtual machines. All that was up to the ‘supervisor’ was to create virtual peripherals, much like how Windows/386 of the day ran multiple MS-DOS VM’s on a single machine that you could see at once, these solutions provide the output to multiple terminals.

While Windows/386 sat on top of MS-DOS, these multitasking DOS’s had the v86 mode multitasking as part of it’s core, and some of the later ones were themselves protected mode operating systems.

But juggling multiple MS-DOS applications at one could be quite a challenge. And of course there was the whole dos extender thing, leading up to VCPI, and DPMI.

While MP/M-86 is a grand daddy to a bunch of Digital Research derived OS’s, it’s not 386 specific so I’m going to omit it for now. I’m sure it’ll be worth doing it’s own write up.

I’m sure I’m going to miss a bunch of these, but let’s have a quick rundown.

  • Concurrent DOS/386
  • DR-Multiuser-DOS 5.0
  • Real/32
  • TSX-32
  • PC-MOS/386
  • VM/386
  • VMOS/3

If anyone knows of any others feel free to give me a shout. It does seem that multiuser DOS was a good market at one point.

An interesting find for all the Xenix fans out there

Back in the day SCO offered eval CD’s but in recent times it’s been harder to find them.

But thanks to a post on the blog Sentinel – The Fix Is Out There, I’ve not only been able to download an eval CD of SCO OpenServer, but I’ve been able to verify that the exe’s I’ve been able to build for Xenix run on OpenServer.

One thing is for sure, if you really really wanted Xenix for whatever reason, OpenServer is really FAR more useful, as it not only runs XOUT binaries without fail, but it supports bigger disks, and includes TCP/IP in the build by default!!

I’ve installed it in Qemu, for some weird reason I couldn’t install the default installation on 0.13.0, however it installed without fail on Qemu 0.10.5. I installed using the AMD PCNet NIC, which the install picks up on PCI Bus #0, device #3, and function #0 … Which will be important to someone who tries to use the NE2000 driver to only find the AMD PCNet driver works far better. I would assume it’ll load up in VMWare as it also emulates the same NIC.

I bought a copy of OpenServer years back, along with UnixWare, and it turns out that the jewel case is empty… Very annoying, but I still have my key codes and stuff. I’m not sure what version it should be for, I think it’s 5.0 as it doesn’t mention a revision on the certs.. If / when I find a dev kit that’d help things along a bit (I have codes for that too!) but in the meantime… I figured installing gcc from xenix, and using xenix 2.3.4’s ld let’s me build and link some x.out stuff. Although it’d require a bunch of work to fix things like irc but I’m not that much of a diehard just yet.

Anyways I know someone will get a kick out of it.

Oh yeah, and my xenix build of dungeon works great!

For the love of Pascal

I don’t make much of a secret of it, but while I was in high school, and the first year of college, I loved Pascal. And not just any Pascal, but Borland Turbo Pascal 5.5 .

While in highschool, we used these Unix “like” work stations, the “ICON” running QNX. Since it was another one of those built by Canadians for Canadians type thing we couldn’t use Borland, instead we used this knockoff called Turing. While the bootleg floppy I had of Turing gave up the ghost (bad sectors, argh!) I recall that it was strictly interpreted, and they did have a version that ran on MS-DOS..

Anyways, fast forward and I moved to the United States, and of course we didn’t use weird knockoffs, we used.. Borland Pascal.

And it compiled.

Oh, and it could build TSR’s!

Man it was AWESOME. I even could coax it to run in protected mode, along with dosx.exe, the dos extender bundled in Windows 3.1 . Although much to my dismay, only ‘tiny’ or programs restricted to 64kb could run in this mode, as the libraries were not even slightly protected mode safe. In my opinion between the industry at the time holding so dearly to the brain dead 80286, and charging a FORTUNE for protected mode tools, it really did drive people mad.

Anyways I eventually had to come to terms with C, but I’ll admit, for the first while, I used EMX under OS/2 and p2c (GNU p2c Pascal), as a great crutch.

So while browsing around, I came to some bbs source code page, And I was surprised to see a few things… An early BBS for Unix SYS III, another one for Xenix, and WWIV when it was all in Pascal, ported from version 3.0 to 7.0. And they (among all the others) include SOURCE CODE!

Then searching with a ‘known known’, I turned up this excellent resource in Russia,, which has a good amount of pascal source.

A while back, I did take the Pascal source to TradeWars 2001, and port it to C, so maybe I’ll do something with this wealth of Pascal source…

And of course, for anyone feeling retro, don’t forget, that Turbo Pascal 5.5 is free! (like beer), and runs under DOSBox.

Windows 95 2.1Ghz CPU limit broken!

This is great news to some of us! Unless you’ve been hiding in a cave, Windows 95 had issues running on CPU’s running over 300Mhz. Any attempt to do so will yield the following error:

While initializing device IOS:
Windows Protection Error. You need to restart your computer.

Then there was an “AMD” fix (that worked fine on intel cpu’s) that would raise the bar to 2.1 Ghz. However beyond that point, the networking would break, and cause Windows 95 to fail with the following error:

While initializing device NDIS:
Windows Protection Error. You need to restart your computer.

Well it seems that the device drivers from the Dial-up networking update 1.4 actually address this issue, however it’s hard to install an update that gets bound into a ‘blob’ when you can’t boot.

However, the LoneCrusader on MSFN has come up with a fixpack!

And it’s simple to apply, just start a normal Windows 95 install (I’m using Windows 95a, the first CD version) and then once it reboots, just boot off the provided floppy image, and it’ll slipstream in the fixed kernel, ndis handler and a bunch of other stuff. Then reboot again, and carry on.

It works so well, that I loaded it on my 3 Ghz P4, however I got this disastrous message:

Insufficient memory to initialize Windows.

Quit one or more memory-resident programs or remove unnecessary utilities from your CONFIG.SYS and AUTOEXEC.BAT files, and restart your computer.

Which after a little bit of searching, comes down to the fact that I have 1GB of ram in my P4. A lot of people talk about tuning the vcache as it’ll initialize far too big, and not leave enough memory for Windows 95 to actually operate. I had no luck there, but with more searching I found an easier fix..

Instead, just limit the amount of memory that Windows 95 will initialize. KB184447 talks about this, and I’ve found this works as an optimal setting for my system.ini:



Using these settings, I’m limited to 921MB of ram, but honestly an environment that was built to run on 4MB systems, and comfortably in 8MB of ram, 921MB is just fine. So far I’ve installed Internet Explorer 5.5 on my P4, and all is well. In addition, it works great on Virtual PC, as even some emulators are fast enough that they too run into these old timing bugs.

Naturally, PCI bus users (is that everyone now?) will want this update from intel, (infinst_enu.exe / mirror) which will update a bunch of core components in Windows 95 to allow it to function better. I should add that both on Virtual PC, and my p4, that once the PCI update is installed, I went into the device manager, and removed the default VGA adapter, and my graphics was running correctly. The only weird thing is the ATI Graphics Ultra Pro PCI (mach32) would crash Windows 95 if I ran it at 256 colors, however it works fine in both 16 color and 16bit (65536 color) mode.

Windows 95 921MB of ram

Windows 95 921MB of ram

Just remember to NOT overwrite the newer files, otherwise Windows 95 won’t boot anymore.

For all you Xenix fans out there….

You are going to LOVE this…. Celestial Software, has two great directories stuff with all kinds of neat software for xenix.

First in the gnu, directory, you’ll find all kinds of newer builds of gcc 2.5.8, and libg++ 2.5.3

And in the software section, there is a bunch of stuff like ckermit, cnews, elm, gtar, joe, perl, rzsz, samba, smail, tripwire…

I, myself haven’t loaded any of it, but I know many people out there will get a kick out of this.

I’ve got to stop watching the blogger stats…

Because then I see something like this come my way as a query from google:

“is there a version of colossal cave adventure that runs on 64 bit systems”

Well I certainly can’t let that one go unanswered.

So whomever you are stranger, here it is. Well for Win64 x86_64 machines.

This is built using f2c on MinGW64. I’ll spare you the details, but it compiled, and fired up and I got lost in the woods… So I assume it is working…..

For those of you not in the know, colossal cave adventure, or sometimes known simply as ‘adventure’ is the grand daddy of all text adventure games.

As mentioned in this timeline of adventure versions, adventure was written by Willie Crowther and expanded by Don Woods. This version, the Kenneth Plotkin version was derived from Kevin Black’s DOS version and Bob Supnik’s Decus versions.

With that said, there is a tonne of INT2 and INT4 casting, which I’ve just removed as I’m passing it through f2c. I suppose I could have seen about fixing the variables, but I just fixed the ones f2c and gcc really complained about. Included in the download is the modified source, and the original source, so anyone can take a look at it.

Naturally Wikipedia has a most excellent article on the history of adventure, check it out.

Colossal Cave in 64bits!

Colossal Cave in 64bits!


UDP Nat weirdness in Virtual PC 2007

Well just as soon as I posted about needing Qemu to run QuakeWorld for MS-DOS, my new machine alerts me to some new updates, among them is Virtual PC 2007’s sp1.

The cool thing is that with this update, UDP through NAT is working correctly!




So maybe it’ll help someone else down the road with any other UDP based applications. I was going crazy, as the TCP stuff was working just fine.

QuakeWorld client for MS-DOS

So as leileilol pointed on on VOGONS, QuakeWorld’s networking was a rapid departure from Quake 1, and formed the basis of a lot of modern multiplayer games… Like teamfortress and half-life.

So with a little bit of work, I was able to compile a QuakeWorld client for MS-DOS. Or here for the standalone exe, and don’t forget CWSDPMI. Oh and be sure to get a packet driver, for your NIC. Many vendors have these on their site for newer stuff.

Now I managed to get a new computer between posts, and it’s not working on virtual pc… I may be 500 updates behind though so maybe it’s something else. So in the meantime I’m testing with Qemu.

The other oddity is that compiling QuakeWorld with GCC 2.95.3 with either -O1 or -O2 builds a client that will time out after 2 minutes… -O0 ran for over an hour with me playing and dying a lot on …

Oh and what good would this be without pictures?

Yes, I’m really that bad.

You can find quakeworld servers on the site And I can verify that you can indeed download levels!