PCE can now run PC/IX and Xenix!

That’s right! from the homepage you can find screenshots, and download links, and ready to run systems too!

Xenix on the XT!

Pretty snazzy as the major hurdle with these old UNIX’en is that they talk directly to the old XT disk controllers, not using the BIOS.. The AT & beyond we got lucky as even in 2012 PC’s still emulate the old WD-1003 controller…

Not that I could imagine *WHY* you would want to run the 8088 version of Xenix (or the 286 version too for that matter) but rest assured you now can.

Installing Xenix 286 on Qemu 0.14.0

For all the 286 fans, which… I never understand, good news, it turns out that using the same method for installing Xenix 386 works on Qemu 0.14.0!

Booting up a kernel on a 1.2MB floppy disk image I get this:

Notice that the device is fd096ds15, which then corresponds to 2,52 for the major minor. Armed with this information you can install happily. And enjoy your segmentation, and SMLH memory models. Ugh.

I still say the 80286 was the worst thing to mainstream IT.

So I’ll leave you with this gem, from tenox..

Installing Xenix on Qemu 0.14.0

That’s right, the impossible (or so it would have seemed years ago) is done. Qemu 0.14.0‘s floppy controller is good enough to install Xenix, although it needs a little help…

You see, booting up by default you get this:

The 'Z' boot error.

The ‘Z’ boot error.

But after going to this page, I had an idea. You see the fd(64) ties into /dev/fd0, however the specific 3 1/2″ high density diskette device id is 60.

So let’s change the default boot strings from:

fd(64)xenix root=fd(64) swap=ram(0) pipe=ram(1) swplo=0 nswap=1000 ronly


fd(60)xenix root=fd(60) swap=ram(0) pipe=ram(1) swplo=0 nswap=1000 ronly

I’ve created a 200MB IDE disk, remembering that Xenix didn’t like big disks, which is why so many people failed installs on actual PC’s.

qemu-img.exe create -f qcow2 xenix.disk 200M
Formatting ‘xenix.disk’, fmt=qcow2 size=209715200 encryption=off cluster_size=0

So let’s boot up Qemu like this:

qemu.exe -L pc-bios -m 16 -hda xenix.disk -fda n1 -no-fd-bootchk

After putting in the manual flags..

After putting in the manual flags..

Looks, good, let’s boot!



Whats this? Are we actually going to install?! This is amazing!

So let’s go through with the install!

xenix 3

I’m going to select the American keyboard. Maybe you want something different?

xenix 4

Next we select the standard IDE controller.

xenix 5

It’s a VM so go ahead and overwrite my empty disk…

xenix 6And this shows that it sees my 200MB IDE disk correctly. I guess you could play with larger disk images and verify that these results look sane. I recall that if you pick something too big, this part will give some exotic error like this:

dparam: could not open /dev/hd00: No such device or address ??? dparam: could not open special device: No such device or address ???

dparam: could not open /dev/hd00: No such device or address ???
dparam: could not open special device: No such device or address ???


Cannot open /dev/rdsk/0s0!! Error: fdisk failed. !! Installtion exiting ??

Cannot open /dev/rdsk/0s0!!
Error: fdisk failed. !!
Installtion exiting ??

And blammo. This is why we use a small disk!

xenix 7

I’m not even entertaining dual booting in a VM, so we go all the way here.

xenix 8

Looks good!

xenix 9

And we quit as this is just fine.

xenix 10

Our little virtual disk won’t have any bad sectors so we quit.

xenix 11

Ok, ok, Xenix wants *SOME* tracks, so I let it have the ‘suggested’ 15. Maybe it’ll feel better about it.

xenix 12

And again I’m going with some default swap space.

xenix 13

And I’m going to use a big filesystem, no separate /u filesystem.

xenix 14

Everything is fine, no changes.

xenix 15

Then it’ll make the filesystem which will take a minute or so, then prompt for the serial number.

xenix 16

And then the activation key.

xenix 17

Now we are done with preparing the hard disk, so you can stop Qemu.

xenix 18

I’m going to continue this in part two.

Installing Xenix on Qemu 0.14.0 part two.

Ok, we left off from part one, having prepared the hard disk. Now we are going to boot off the hard disk like this:

qemu.exe -L pc-bios -m 16 -hda xenix.disk -fda b1


xenix2 1 (1)Now if we go ahead and try to install normally it’ll fail like this:

xenix2 2 (1)


Which isn’t good at all.

xenix2 3 (2)

Instead, what we are going to do is hit the delete key breaking us to an install shell.

xenix2 4

So at the shell, we are going to fix the install/rinstall devices to force them to the 3 1/2″ high density diskette like this:

cd /dev
ln -f fd0135ds18 install
ln -f rfd0135ds18 rinstall
cd /
. /.profile

xenix2 5

Now we can proceed with the install, and since diskette B1 is already in the drive, we just hit enter. Once the B diskette is copied, the install script will prompt for a root password.

xenix2 6

Now it’s time to pick a timezone, and yes, I’m in North America.

xenix2 7


xenix2 8

And sadly, yes we do DST. (*NOTE being this old, you can bet the offsets are all wrong for DST, I’m sure there is some deal to update the files, but I’m not sure of it off hand. But it’d be nice to update the timezone stuff for 4.2BSD as well).

xenix2 9

Let’s continue with the install.

xenix2 10

And let’s finish the operating system install.

xenix2 11

Now we’ll need the X1 diskette…

So far we’ve not needed to swap diskettes live under Qemu, but I thought I’d remind people that it’s a simple matter of hitting ctrl+alt+2 to bring up the Qemu console, then typing in:

change floppy0 x1

To verify you’ve even done this correctly, you can issue a “info block” command, and you should now see the floppy0 device referencing the x1 file.

Once you are done, you can switch back by hitting ctrl+alt+1

We are going to install one or more…

All of them as a matter of fact.

I’m going to fast forward a little here, and process all the X diskettes… there isn’t much to see here, it’ll prompt for a diskette, mount it in the qemu console, and switch back and proceed.

Yes this is a root only install, KISS (Keep it simple stupid) as they say.

Now it’ll prompt for the backup user password, then start to compress man pages. Needless to say on a fast computer this takes mere seconds… Not so back in the day on a 386!

Now it’ll prompt for the sysadm password, generate the termcap, then it’s time to swap series to the N series diskettes..

Now onward to N2.

Time to license & activate the system. Again.

Ok we are done.

And there we go, Xenix is installed!

A quick reboot, and we are ready to go!

So looking back, we’ve just done the impossible, we’ve installed Xenix on Qemu.

iBCS2 & NetBSD

I know that there is some people out there that seem to be all into Xenix, and old binaries… So I thought I’d share this little gem I found before I head out for the day… I came across this post, talking about how ibcs2 has fallen apart in the latest version of NetBSD. But the gem in there is that version 4.0.1 works perfectly fine!

So I copied in the old gcc, filled in some bits and….

Qemu 0.14.0 NetBSD 4.0.1 running Xenix gcc

Qemu 0.14.0 NetBSD 4.0.1 running Xenix gcc

It works!

Robots is so perfect you’d never know!

Qemu 0.14.0 NetBSD 4.0.1 running robots

Qemu 0.14.0 NetBSD 4.0.1 running robots

And it runs Xenix Dungeon/Zork without missing a beat!

Qemu 0.14.0 NetBSD 4.0.1 running dungeon

Qemu 0.14.0 NetBSD 4.0.1 running dungeon

So this may be yet another avenue for some people… I’d suspect that you could even build the 32v userland under the Xenix tools…? Since all the default stuff is keyed to licensing, but you could roll your own Unix v7 32bit userland which basically is Xenix and go from there…. Maybe even some of the OpenSolaris SYSVR4 stuff as well but that sounds too ambitious!

Xenix 286 on Qemu

I nearly forgot to mention this… But a friend had some issues with an ancient 486 box running Xenix 286 and made a disk image of it. The box finally died, and he lost his copy with some disk accident (double trouble!) but he did send me a copy to see if it’d work under Qemu… At the time it didn’t.

So while I was transferring his disk image back to him, and looking around on ebay for a 286 board, I figured I’d try Qemu 0.14 to see how badly it failed…

xenix 2.3.2 286 on Qemu 0.14


xenix 2.3.2 286 on Qemu 0.14 pt2

It worked!

I can’t say I’ve thoughtfully tested it, but it seems pretty workable.. I have no idea about what editions work, and which do not… I have no idea if this version knows it’s on a 386 and uses a 386 friendly method to switch to protected mode, or what.. Then again it being Xenix, it won’t need to constantly pop between real & protected modes, unlike, say Windows 3.0 / windows 3.1 or OS/2 1.x ..

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 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.

The oldest CP/M ‘simulator’ out there.

I was surprised to come across this little simulator simply called ‘com‘ tonight. This program started out as a 8080 instruction simulator for a mc68000 machine running CP/M, back in 1984, and was written by one Jim Cathey.

‘Com’ was then later written up, and published in Dr. Dobb’s Journal.

From there it’s evolved it’s assembly core to some other 68000 cpu families and platforms, then the MIPS and PowerPC. Then in 2006 the CPU core was re-written in C.

For a while it’s primary platform was a 68000 based Unix, and it still has a lot of unix’isims buried in the source. I’m sure it’d build in MinGW though.

But in the meantime I figured it was yet another reason to fire up the old gcc 1.37.1 for Xenix to give this thing a go.

The biggest, and dumbest thing I fought was without realizing there was both a ‘Makefile’, and a ‘makefile’, and gmake kept running the lowercase one, while I was editing the Makefile in vain… But with that out of the way, and a few includes to fix, it was VERY straight forward to build. Not to mention running Xenix on Virtual PC 2007 on my new intel core i7 cpu, it compiles the C version just about as quickly as I can hit the enter key.

Because it’s on Virtual PC the last few lines of the console are garbled.. Oh well, at least the floppy controller works (as long as you hard code /dev/fd0 to 2,60).

So, here is a picture:

Xenix 2.3.4 with ccom zork1

Xenix 2.3.4 with ccom zork1

And a disk image. All I’ve really done is tweaked a few things, and built this with gcc so it includes a binary for Xenix systems. Also the ‘com.tar.gz’ package did include quite a few sample programs… mandog.com is fun, along with zork 1,2 &3!

On a final note, I thought the Xenix thing was a good road to head down because in the 1990’s there was this BIG push for ibcs2 compatibility across all these Unix platforms on the i386 cpu. Well it’s been largely abandoned work, and the best I got was OpenBSD complaining that its always out of memory, and NetBSD kernel panics!.. Open Solaris has *NO* ibcs2 compatibility even left.

I suspect it doesn’t matter, esp now that you can run some real ibcs2 OS’s in a VM, who needs 3rd party emulation?

I guess I’m just too late to the party.