This is probably the most significant Xenix post I’ve made since the old days when I managed to get Xenix running in Qemu all those years ago.
What has long been a frustration with the beleaguered Xenix community is that although there was a TCP/IP package for Xenix (and a much required streams package…) it only worked with a handful of ethernet cards. And all of them were early 3com’s. While the world was using NE2000’s on just about everything, the most common ethernet board Xenix would talk to was the 3c503, which is getting harder and harder to find as the years go on by.
But right now none of this matters.
I was looking at this article on setting up Apollo Domain UNIX, on MESS. And apparently it will do networking! Which is cool, so I poke around MESS, and what do I see? 3c503.c. Could it be true?
Now I ended up having to download the source to mame 0.151 (mame0151s.zip) and building it on OS X. Of course remembering to alter the makefile to include the ‘USE_NETWORK=1’ statement, and build for Mess. And just as it looks like something out of SIMH, Mess makes use of libpcap which means that you are *unable* to send/receive on the host computer. (OS X & Win32 binaries). And of course you’ll need a ROM & Xenix diskettes.
Installing Xenix is pretty straightforward as long as you know your system key, and how to navigate the mess UI without rebooting mess or exiting by mistake (scrolllock on the PC, function/Delete on OS X).
First create a hard disk, and as always it should be ~500MB max.
chdman.exe createhd -o xenix.chd -chs 1015,16,63
chdman – MAME Compressed Hunks of Data (CHD) manager 0.149u1 (Aug 10 2013)
Output CHD: xenix.chd
Logical size: 523,837,440
then with the disk in hand, I just setup a 486 like this:
./mess64 at486 -harddisk1 xenix.chd -isa2 3c503 -ramsize 8388608 -floppydisk1 xenix/n1.vfd
Naturally you’ll need to setup the CMOS, for your memory size, and the hard disk. The BIOS I’m using didn’t autodetect the IDE drive, but it doesn’t matter as I know it’s characteristics as I created it.
From there Xenix was a pretty straight forward deal. Mess has good floppy drive emulation so it just worked. Adding TCP-IP was just as involved, and all went well. When it came time to install TCP & the network driver, remember to use thinnet, as the thicknet transceiver isn’t connected (as it would seem). The 3c503 is softset, so I went with IRQ 5, port 0x300, and thinnet, and it works fine for me!
Remember you will not be able to attach to it from your computer. Instead you must attach from another computer.
Also MESS tries to emulate true to hardware so it’ll be just as slow on MESS as it was on the real hardware. I suppose you could go with the at386 driver, but yeah it’ll be slow. The current at586 driver has issues booting from the hard disk, and I didn’t mess with it too much as Xenix is known to have issues with some Pentium systems.
Although I think the next place for adventure is the emulated Adaptec 1542CF.
Great job (as usual)! 😉
I’m trying to make the PC drivers of MESS recognize an iso inserted after the first one, (eject/insert) but, so far, no luck, so, you can’t swap ISOs at the moment (well technically you can, but it will result in a data scramble)
I saw that as a release note somewhere… But xenix is on diskette so we are safe 🙂
Thanks for that, I didn’t have a version of Xenix that supports networking to try. BTW, don’t bother with the adaptec, it doesn’t currently work.
I kind of guessed when I actually found the roms, but they don’t do anything….
Yesterday I installed xenix386 2.3.4 in qemu-0.14.* and set -pty with slip on a linux host. TCP/IP 1.2.0 worked fine 🙂 The launching process is done by a script, which also determines the pty assigned to the virtual serial port…
Do not forget: echo nameserver 22.214.171.124 >>/etc/resolv.conf
It seems that resolv.conf doesn’t exist by default, it has to be created if you want proper tcp/ip config.
how stable is it? when I tried this ages ago, it’d work fine for a single machine talking to another, but when you piled on 5+ users it’d freak out….
it is horribly unstable, tcpip apps like telnet hangs/deadlocks randomly. You cannot interrupt ping easily, just kill it from another getty (sendkey alt-f2, etc)
A little telnet session from host cut&paste:
$ telnet 192.168.7.2
Connected to 192.168.7.2.
Escape character is ‘^]’.
[SSL not available]
System V.2.3.4 UNIX (xenix386.xxx) (ttyp00)
Welcome to SCO XENIX System V
The Santa Cruz Operation, Inc.
You have mail.
TERM = (ansi)
# uname -a | grep -v serial
I never got why ping on sysv is such a pile of crap. It does the same thing on solaris.
Amazing as usual. Thank you for helping me remember my mostly forgotten 80s and 90s computing experiences with your posts.
I’m glad you liked it!
Got bunch of adaptec154X adapters, need to find etherlink II.
I assume etherlink III will not work right ?
From what I recall… you have to install some tcpip update to get all the drivers….
IBM 8bit TokenRing cards
Western Digital WD8003/WD8013
Where Mess can emulate the 3com503/3c503/3comB driver.
And that is it. There never was a NE2000 driver. Such a pity.
Since etherlink III is 3c509 seems it wont work…
Right no go on the III. Which is a shame as finding a III is far more easier than a II. That is why I feel MESS is a more viable option these days.
Or if someone were smart enough to port MESS’es 3c503 to Qemu, well that’d be fantastic!
Mess’s 3c503 emulation is way different from anything in Qemu so that’s unlikely. Although, given that the 3c503, like the ne2000, uses the dp8390 network controller it shouldn’t be especially hard to adapt the ne2000 to a 3c503 (Mess has a single dp8390 emulation that the ne2000, 3c503 and Macintosh Asante MC3NB use). WRT to Mess and Xenix, here’s another unique WIP, Xenix for the Intel 310 Microcomputer.
Hmmm. I wonder if it’ll work on an am5x86. If it will…I have a 3com ISA NIC or 10 that should be compatible. Should have a drive that’s completely compatible, too.
Where is this TCP/IP stack/STREAMS package available?
it may work, you might have to disable CPU cache on install (like OS/2), and turn off all the pre-cache/32bit access for the IDE disk… I recall the install not being 100% smooth last time I installed it on physical hardware…. And after a few hours it’d screw the disk up. I’m not sure what was wrong with it, as it ran fine on an emulator…
also… uh… BBS … 😀
…. just another question about virtualization of Xenix 386…. is it possible to install and run VP/IX on qemu (of course with Xenix, too) ?
Or is this impossible cause of virtualization within an already virtualized environment ?
it seemed pretty pointless but I did install it a while back. On Qemu 0.10.5 from the looks of it.
So that means it works (although it does not make really any sense) ?
Yeah, honestly there are better PC emulators.
I try to get network
installed xenix ok
installed streams and tcp ok
makedev 3comB and makedev tcp ok
put correct values but work only internal network
ping esternal ip fail
telnet internal ip ok
ping external network ip fail
i have also add correct route
my cfg of mess network is correct?
<device tag=":isa2:3c503:dp8390d" interface="-1"
interface =-1 doesn’t look very good…
I’ll have to dig up my Xenix VM.
<device tag=":isa2:3c503:dp8390d" interface="0"
i try also this howto
but if itry to switch the network interface from menu(tab) give me segfault!
ROM link is dead and replaced with a call-this-number-because-you-are-compromised thing.
looks like their domain expired. You’ll just have to google for at386.zip, although I see .zip is now a TLD.
In 2013 I got Rhapsody DR2 to boot to the desktop with mouse working in MESS 486 as proof of concept. It refused to boot the day I installed it, but one morning I tried again and by some miracle it went so I grabbed this piccy. It was basically unusable, but try to get that far in modern builds of Qemu 🙂
I used to run NeXSTEP 3.3 on the x86, as I found out when I bought a cube that the media included the x86 version. Needless to say it was great on the x86 if you had the right drivers. So on the same PC I tried DR2, and it was horribly unstable.
I never had OPENSTEP, so I formatted it back to NeXTSTEP.
I suspect Qemu 0.9.0 could run it, this is before GCC changed some of it’s internal workings in the 3->4 transition and it had much better compatibility. Although a recent version could run Novell NetWare 3.12 again so maybe there is hope.
Hey, thanks for the info. I think it is interesting with the early x86 NexTStep’s with very limited hw compatibility like 3.1-3.2 you would think in theory they could install in Vmware with buslogic or in Qemu with the NCR scsi but those versions just won’t pick up on the adapter within Virtualization, well, in Vmware it does detect the drives but it stalls forever on probing. In the past I tried the NCR scsi for a secondary hard drive with Win95 under Qemu which worked & was kind of neat, but things were too unstable, don’t know if the situation has changed since.
Don’t know who I can ask, so that’s only a new try…. if I have installed Xenix and applications, but later I recognize that the initially choosen partition size was far too much, is there a possibility to “shrink” the Xenix partition without data loss ?
I’m pretty sure that Xenix is nowhere that flexible. You’ll have to backup & restore. And then deal with the licensing fallout.
Hmmm all I know they all just “cook with water”, means there will be a description how this partition sector is structured, and even Xenix will read the size of the partition by reading this special sector. Because there is no tool obviously, I will try to decrease the size of the XENIX partition by manipulating the appropriate numbers of the related boot sector/partition record.
Will tell you what happened then 😉
MBR and VBR should be the right term for it.
xenix386 had ne2000-compatible driver, which is supported by qemu’s ne2000 isa vNIC. Someone made an install floppy image, available at…
…see more at:
I need to update my stuff on this shocking discovery… Lol
And get a ne2000 for my EISA box.
VirtualBox emulates an ISA NIC based on the AMD Am79C690 which is apparently also known as the NE2100. Does anyone know if NE2100 cards are supposed to be backwards compatible with NE2000? I suspect not as far as I can tell. Otherwise would be nice to have a Xenix driver for this NIC
No, NE2100/NE1500 (8-bit) are totally different from the NE2000/NE1000. NE2100 uses DMA and built around AMD LANCE Am7990 while NE2000 is a simply I/O and built on a National Semiconductor NSC8390 chip.