Month: August 2010

I came across this on a mailing list a while back, and meant to at least mention it here, but then I forgot. But I remembered it again… 300 Baud includes some of the old ads for various micros, along with some projects that you can actually follow along on the real thing, or even emulators.

For a fanzine, I have to say, it’s pretty well done, and certainly worth the $6 USD. Afterall whats so bad about supporting something cool like that?

And speaking of which, check out retro GAMER, sure it’s all professionally done, but I like its various focus on a platform month to month, and it’s loaded with all kinds of great interviews.

So I got myself a ‘5’ user version of UnixWare 7.1.1 to add to my collection, along with a copy of Word Perfect 5.1 for UNIX (i386 SYSV it would seem).

From the wikipedia link, 7.1.1 was the last release from “old SCO” the company that brought us exciting things like Xenix, SCO Unix and SCO OpenServer (although it’s about as ‘open’ as VMS).

Anyways I went ahead and installed it in Virtual PC 2007, and it was a pretty straight forward install. The only catch has been that if you suspend the virtual machine, the networking will cease to function. And as it stands right now I don’t have any sound, but I doubt that’ll be that big of an issue.

So I broke the nice and new shrinkwrap on the Word Perfect, and went through some minor hell trying to get the first disk to untar, as it states on the diskette and in the installation manual.. Eventually I found this worked in my Virtual PC:

tar -xvf /dev/dsk/f0q18d

Then I just ran the ‘wpinstall’. Now what is weird about this install is that word perfect then just has you hand it all the disks in any random order, then it’ll start to configure itself. While it does support over 200 terminal types, it seems that the “dtterm” console is not among them. Also what was weird is that for the X11 component the Univel UnixWare (the direct descendant to SCO UnixWare) did *NOT* work, while SCO Unix did.

I would imagine if you had a pre 2000 release of any Linux you could run this via iBCS, however that project seems to have died on the vine. The last time I tried to run Xenix stuff on NetBSD/FreeBSD & OpenBSD I was met with kernel panics and disaster. I don’t think anyone runs this stuff anymore, and now that we know how to run Xenix under Qemu/Virtual PC I guess that basically takes care of that.

Speaking of Xenix, it would seem that all of the 7.x releases of UnixWare do not include compatibility for the x.out exe format either.

At any rate, I figured I could just go ahead and run my builds of Quake & Doom on a seemingly ‘slightly’ older 7.1.1 without issue.

That was not to be the case.

dynamic linker : ./quake : error opening /usr/lib/libm.so.1
Killed

Well that’s a bummer, if I do say so myself. Thankfully this version of UnixWare included the compiler (and a license) along with the OpenServer/UnixWare development CD so I had the ‘official’ X11 headers & libraries, unlike what I had to do under 7.1.3

So I ended up shuffling around my UnixWare stuff to separate the 7.1.3 from the new 7.1.1 stuff.

Once upon a time, I bought a Mac Plus, and decked it out with 4MB of ram, and a 40MB SCSI hard disk. I thought it was so cool, I even got a cable to talk to a normal external modem, and used it as a compact terminal to BBS, although the 800Kb floppies were a bit of a pain….

Anyways it was OK for a while but system 6 is so… limiting. Then I started using it for a foot rest, as I couldn’t do anything really more with it. Then someone at college pointed out that Minix actually supported a bunch of 68000 based machines, namely the Amiga, Atari ST, and the Macintosh!!!

The best part of the Mac port being that you didn’t have to format, repartition or anything, as it was essentially and operating environment!

The best parts being, that it had vi, and even a C compiler! Although without documentation getting things in & out of the Mac seemed impossible, and I kind of gave up on it.

But after digging around these ancient Linux things, I thought I’d take a look at MacMinix again.

To start, Brad Pliner has an excellent site, with lots of documentation for this port of Minix, including some PDF’s of the instructions.

Interestingly enough it seems that the ancient linux circa 0.01 – 0.10 not only didn’t have FPU emulation, but didn’t support FPU instructions at all… Or I could be doing something wrong with gcc 1.40 as there isn’t a libm, nor does it inline the math… So anything with floating point is out. So with a bit of digging around for an ancient distro, I found a Linux 0.97 version of MCC. It’s incredibly small, as things were back then. So I’ve installed it, altered the kernel to default to a US keyboard map, (Sorry to people in the UK), and tried to squeeze the disk image down to something not too big. And I’ve included the f2c components and a build of dungeon.

Another f2c platform!

For anyone interested, I’ve uploaded my MCC image, it’s just under 6 megabytes. WOW how the times have changed!!!!

While checking out oldlinux.org, I came across two things that are somewhat exciting.

The first, is Linux 0.00 The first ever known version of Linux. It’s only two assembly files, an 8086 booter, and the 80386 kernel that sets up protected mode, and two hard coded tasks, then runs the two tasks. It’s very exciting. There is even some commented source available on the oldlinux forum here.

For those who want to check it out, I’ve padded it out onto a diskette image on sourceforge here.

Don’t expect too much, it just prints “AAAA” and “BBBB” over and over, but it’s the first booting version of Linux.

The next thing I found was a BOCHS archive with Linux 0.11 installed, along with GCC 1.40 and a few other programs. This image can even build Linux 0.00 and a slightly modified version of 0.11 that can run bash. I’ve found BOCHS somewhat difficult to configure, and since Qemu is faster, I’ve converted the disk image into a ‘qcow2’, then got it running on Qemu 0.12.5. Just unzip the archive here, and you can be running some really ancient Linux.

Linux 0.00 in action.

Remember that Linux 0.11 is OLD. At this point it didn’t support multiple users, nor did it even have a shutdown or reboot command. Instead we all ran ‘sync’ a dozen times, then pulled the plug. Also it was VERY unstable, and quite prone to panics and crashes.. Although I think a majority of them back then were due to file system corruption from pulling the plug at the wrong time… 🙂

Linux 0.11 on Qemu 0.12.5

Linux also had no support for things like TCP/IP, UUCP, shared libraries, etc… although I’m pretty sure it had working serial port support.. In many ways it feels like 32v, although more primitive. This disk image also has the ability to re-build the patched kernel, and even Linux-0.00. What is also cool is the ‘shoelace’ loader which can boot the Linux kernel, so you don’t have to suffer the boot/root disks of the time, and the fun of hex editing stuff.

For people that love ancient stuff from 1991 this will be great fun indeed!

***UPDATE

For people who are interested in ancient Linux on Windows, I did get the toolchain to build with MinGW, and it seems to work ok! I have a post about it here. I have also been able to get the 32bit portion of the Linux kernel to cross compile on Windows as well! That adventure is here.

However Qemu won’t boot it, because of some issue with the IDE controller…

HD-controller reset failed: 00Kernel panic: HD controller not ready

I’ve tried a bunch of versions of Qemu to no avail.. It may just be easier to modify the source to Linux, although that’ll require some kind of build environment capable of building early Linux… I don’t know if I’ll do it, as it’d be modifying the old software which clearly worked back in the day, but at the same point it’s behavior that is consistent with a *LOT* of versions of Qemu.

I’ll have to see, but it’d be cool to get 0.11 running under free emulators, and possibly regress back further. I see MINIX is also available on the site so it may be even possible to get 0.01 running…!

So I figured I’d get into some of the spirit, and see how far I could get with SIMH. Following the great instructions on vak.ru to get a 2.11 BSD tape installed into SIMH. I then spent some time trying to work out a working Ethernet configuration to at least be able to telnet into the VM… It seems the de driver under the PDP-11 suffers the same problem the VAX 11/780 had regarding something being flagged somewhere with errors. I didn’t ‘fix’ the simulator I took the shortcut, and fixed the driver to ignore all errors on the interface, and now I can telnet into it!

I’ve also modified the boot program, and init to auto-boot the kernel, and bring the system up into multi-user automatically.

So I just slapped together a zip file, and placed it on my sourceforge pagehere for downloading. I didn’t do an installer program this time, as I wanted to build some programs to make it more fun, but it seems that the PDP-11 is limited to 64k data/ 64k instructions for executables, so although I’ve compiled ircII, it will not link. I can verify that you can telnet into the VM (localhost 42323), and the pdp11 executable I’ve enclosed includes my SLiRP patches.

And.. it runs Zork!

I guess for the more adventitious, you could extract out the rest of the source, and apply the some 400+ patches to 2.11 BSD and have a current system. But if anyone knows how to build something like IRC on 2.11 BSD give me a shout.

Oh, and much to my surprise, this version includes zork, and it’s the same RT-11/LSI-11 binary that the VAX loaded up in some RT-11 syscall emulator.

I nearly forgot before I shut down the VM for a long while, to do a f2c/dungeon build… I only had a minor snag on how libf2c removes symbols from the build, but commenting out it’s “ld -x” fun, and it worked great.