Venix/86 Challenge

(this is a guest post by Tenox)

I’m extremely busy with some matters and unable to spend much time with computer archaeology. I would like for some much overdue projects to progress independently of myself, so hopefully the community can participate and help out.

Let’s start with Venix/86 which has been awaiting my attention for a while. I have been recently contacted by Alex aka uav1606 who wanted to get it to work. I have since decided to open this up to anyone else interested.

To my knowledge actual install media did not surface so far. However a while ago I came in to possession of a boot disk and a backup of a live system, in form of nine floppy disks which look like a tar archive. In theory it should be possible to boot the xfer disk, format a hard disk and restore the backup system to get a working system.

VenturCom Venix/x86

VenturCom Venix/x86 running on a real AT/286

I’m offering $100 prize via PayPal to the first person who will run Venix/86 on an emulator of any kind (PCE, PicoXT, QEMU, Bochs, Vbox, MESS/MAME, etc NOTE: it doesn’t have to be strictly XT emulator as long as the system works), compiles Aclock and sends me a binary + complete working virtual machine. I will also of course publish it on this blog featuring all your hard work! It will be awesome to see your progress and collaboration in the comments 😉

Everything I have is here: http://www.tenox.net/get/venix21.zip

Update #1: From Frode van der Meeren who is the owner of the floppy disks: “The disk images are not corrupted, the disks only use a different track arrangement. The disks image format arranges the tracks by cylinders, storing head 0 and then head 1, while the actual disks arrange tracks by all cylinders on head 0 then all cylinders on head 1. If you want to mount the images into something else than Venix/86 then you need to rearrange the tracks in the image file.”

Update #2: the competition has been won by Jim Carpenter! Congratulations! Jim has just received the $100 prize. I have received detailed install instructions and will post it in a follow up post 🙂

Update #3: The winning entry, how to install Venix/86 on MESS/MAME

Venix running on MESS/MAME

Venix/x86 running on MESS/MAME by Jim Carpenter

It was a real pleasure to see great community response, participation and most importantly to see Venix/x86 run again!

Stay tuned for another one 😉

Darkmatter

Darkmatter

Darkmatter

The NeXT community has been about this old Mac emulator, daydream making a comeback onto NeXT hardware.  Branded as darkmatter it runs on the bare metal of the NeXT cube/stations and can run MacOS in much the same way that Basilisk II does.

System 7.0 running on a NeXT cube!

System 7.1 running on a NeXT cube!

What makes this interesting is that the 68040 is cycle set, and uses a much more mature CPU emulation core than Basilisk II, so it should give more accurate emulation. However it will run at 68040 25Mhz speeds, so it won’t win any speed records.

Naturally programs (Space Quest I) that blit directly to the display probably expect Mac/Plus/Se dimensions so the NeXT display won’t be ideal.  But good old SoftPC for MacOS runs great!

SoftPC 3.1 for MacOS

SoftPC 3.1 for MacOS

And again, being set to 68040 speeds, it’s nowhere near as turbo as Basilisk II/SheepShaver.

For anyone interested, you’ll want Previous, the latest build and a test disk.  Set the emulation for either a NeXT Computer (68030), or NeXTcube (68040), add the test disk as SCSI disk 0, and either type in ‘bsd’ at the firmware prompt, or have it automatically boot in the options.

WinDooM on SoftPC, on SheepShaver

So I was hammering out something with SheepShaver (more on that later!) and I thought a quick test of just how fast SheepShaver is vs a real PowerMAC would be interesting.  So I was playing with my old copy of SoftPC, which is 68000 based, but There were PowerPC versions, years ago when I bought a G4 to run OS X to only find out that it wasn’t supported (the dark days of OS X Server 1.0, before the 10.0 public beta) I used to run Windows NT 4.0 on SoftPC on MacOS 8.6.  Ugh, dark times indeed!

So with some luck, I got SoftPC 3.0 up and running on MacOS 7.5.3 using SheepShaver for Windows. Then I noticed that unlike SoftPC for the 68000, SoftPC for the PowerPC emulates a 486!  So how does DooM run?  A little slow, it’s kind of dream like.

But since there is Windows and a 32bit processor, I thought this would be a great time to load up Win32s, Video for Windows, WinG, and WinDooM!

WinDoom on SoftPC

WinDoom on SoftPC

And much to my amazement it runs!  And I was further impressed that there is a shim sound driver, and it works!

So I made a quick video to compare DooM for Windows vs DooM for MS-DOS on this setup.

Yes it’s pointless, but I kinda think it’s really cool.

As a bonus, here is E1M1 under MacOS 8.0.  The MIDI support in 8.0 is MUCH more stronger than 7.5.3!  And I should add, it actually feels faster on 8.0 than 7.5.3

Update to Windows 10

x

Get ready!

I know I’m crazy, but for some reason the update didn’t kick off automagically on my 7 box, so I fished around and found the direct download here.

From what I’ve read VMware Player 7 updates should work with 10.

Time to see what breaks, and what works!

The first issue I had is that after the upgrade, VMware Player couldn’t connect to the bridge adapters. Luckily the fix is really easy.

Bring up your network connections, go to your physical Ethernet adapter, bring up it’s properties, and add in a ‘service’.

add

Restoring the VMware Bridge service

Then select the VMware Inc, vendor and the VMware Bridge Protocol.  Now with that done, all I had to do is then bind the bridge to the Ethernet adapter.

x

Configuring the Bridged virtual interface

And now my VM’s can talk to my network without any of that NAT nonsense.  And I didn’t have to re-install VMware Player to fix this either!

Some real fun came from upgrading my wife to 2015.  She uses Outlook 2013 to talk to an IMAP server.  No big deal right? Well after upgrading when she tried to send an email she would get the ever so helpful error 0x800CCC13 .  So her server is setup to use SSL to talk to the outbound SMTP server.  It even has a valid certificate!  The best part is that verifying her account and IT WILL SEND THE TEST EMAIL. Yes, that is right, Outlook 2013 cannot send to SMTP servers, but the test and diagnostics work.  And in the age of multigigabyte installations all the user is left with is a hexadecimal error code of 0x800CCC13.  Frankly this is totally inexcusable in 2015, let alone in the 1990s. Hell even OS/2 had a system to look up cryptic error messages.  I guess that was an IBM thing.

So anyways, the best part is the ‘fix’. Apparently according to here, the upgrade to Windows 10 corrupts some DLL’s that are a part of Outlook 2013, and they need to be repaired.  Simply run the following command as administrator:

sfc /scannow

It can take upwards of 10 minutes to complete.  After we ran this, we re-ran Outlook 2013, and all of our dozens of attempted test messages sent.

Another possible problem is that the Exchange server plugin is interfering with the IMAP/SMTP plugins, and it needs to be disabled/deleted. I haven’t had to go there since she can send emails now.

So apparently in OS X packages actually expire

I found this out trying to install XCode 4.2 on OS X 10.6

Failed install preflight: Error Domain=PKInstallErrorDomain Code=102 UserInfo=0x1d9a30 “The package “iPhoneSDKTools.pkg” is untrusted.” Underlying Error=(Error Domain=NSOSStatusErrorDomain Code=-21 47409654 UserInfo=0x1dbe90 “The operation couldn’t be completed. CSSMERR_TP_CERT_EXPIRED”)

CSSMERR_TP_CERT_EXPIRED??

Yep turns out XCode 4.2 (and probably many others) will actually expire.  So turn off the automatic clock sync, and set your time back to before the package was issued (Xcode 4.3, released on February 16, 2012..) and you’ll be good to go.

Installing Xcode 4.3

Installing Xcode 4.2

I accidentally upgraded vpsland to Debian 8

So yeah, dealing with Apache 2.4 vs 2.2 was… fun.  The security Order stuff is obsolete so that was fun editing all the virtual hosts.

The key parts being:

In this example, all requests are denied.

2.2 configuration:

Order deny,allow
Deny from all

2.4 configuration:

Require all denied

In this example, all requests are allowed.

2.2 configuration:

Order allow,deny
Allow from all

2.4 configuration:

Require all granted

In the following example, all hosts in the example.org domain are allowed access; all other hosts are denied access.

Boy was that fun!

Another bit of fallout was the hosts file.  I have spamd running and suddenly I was being bombarded with this message:

Jul 25 10:15:39 cheapvps spamc[683]: connect to spamd on ::1 failed, retrying (#1 of 3): Connection refused

Well it turns out after much digging around that Debian 8 is more IPv6 ready.  The hosts file from Debian 7 was something like this:

127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback

And in 8, it changed to this:

fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
::1 localhost ip6-localhost ip6-loopback

Needless to say, having localhost point to ::1 made it dependant on all local daemons supporting IPv6, and spamd sadly is IPv4 only.  Luckily it’s a quick fix to remove localhost from ::1, which then let’s it work again with 127.0.0.1, and now it can connect over IPv4.

Well today (August 4th, 2015) there was a critical update to Apache.  And after updating I got this fine error:

# /etc/init.d/apache2 restart

[….] Restarting apache2 (via systemctl): apache2.serviceJob for apache2.service failed. See ‘systemctl status apache2.service’ and ‘journalctl -xn’ for details.

failed!

Great.  So what does the error actually say?

# systemctl status apache2.service
* apache2.service – LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: failed (Result: exit-code) since Tue 2015-08-04 13:52:13 HKT; 7s ago
Process: 6063 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 6427 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

systemd[1]: Starting LSB: Apache2 web server…
apache2[6427]: Starting web server: apache2 failed!
apache2[6427]: The apache2 configtest failed. …….
apache2[6427]: Output of config test was:
apache2[6427]: apache2: Syntax error on line 250 …y
apache2[6427]: Action ‘configtest’ failed.
apache2[6427]: The Apache error log may have more….
systemd[1]: apache2.service: control process exi…=1
systemd[1]: Failed to start LSB: Apache2 web server.
systemd[1]: Unit apache2.service entered failed …e.
Hint: Some lines were ellipsized, use -l to show in full.

Fantastic.

# apachectl configtest
apache2: Syntax error on line 250 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/mods-enabled/alias.load: No such file or directory
Action ‘configtest’ failed.
The Apache error log may have more information.

So, normally you’d check under modules-enabled, and link in the missing bits, right? Yeah except there is no MPM modules. Not anymore.  And yes I removed and re-installed the apache2-mpm-prefork module, to no avail.  So after much digging around it looks like the transition to 2.4 finally broke everything irrecoverably.  So I backed up the /etc/apache2 directory than ran the follwing:

apt-get purge apache2

Which then removes all the apache2 stuff from the system.  Then to finish it off, run a quick

rm -rf /etc/apache2

You did back it up, right?

now put it back in..

apt-get install apache2 libapache2-mod-php5

Now to re-enable the virtual sites.  For some reason they need to be enabled with a2ensite.  Except they don’t tell you that your sites now need to end in .conf in the /etc/apache2/sites-available (you did back it up right?)

Also if you run perl (src2html) be sure to run:

a2enmod cgi
service apache2 restart

Not to mention the joys of updating perl, and the cvsweb breaking, and I’m sure far more to break.  Oh well, at least it’ll be up to date.  That’s what I get for mixing ‘stable’ with ‘old stable’, when the local mirror out in the UK I was using moved up to 8.

Making MacMiNT self hosting

Compiled in 2015!

Compiled in 2015!

One thing that always bothered me about MacMiNT is that I never could compile JET or MacMint itself.  It requires the headers from MPW 3.2, or better known as the Macintosh Programmer’s Workshop, along with a single library again from MPW 3.2

MPW 3.3 won’t work, which is the only version I’ve had when I bought an extraordinarily heavy FORTRAN compiler for the MAC, Language Systems FORTRAN.  I tried to get dungeon to work with that, but no dice.

But thanks to macgui, they have links to the 3.2 headers & libraries!

It took me a little longer than I’d like to figure out how to build the cross libraries, as I kept running the script from the script directory, not from /mint as I should have (is there any documentation?!).  But I finally built the libmac16.olb and libmac.olb needed for MiNT programs to call the MacOS toolbox!

So now I’m able to compile Hoshi’s 1999 JET and MacMiNT!

For anyone interested, I’ve built a disk image here, that includes everything all ready to go.  It runs great on my latest build of Cockatrice, although I haven’t made any Win32 builds just yet….  I suspect it’ll run on emaculation’s build of Basilisk II it really should only need a 68000 with 8MB of RAM or so.  The disk image is 8MB, and uncompressed onto a hard disk takes up 35MB of space.

I’ve also made a small (100MB) mirror of the umich MiNT & MacMiNT install archives I could find right here.

Also, it runs dungeon,and with a lot of finagling, it’ll even run f2c dungeon! (needs a 68030 or higher).

For those who insist on running this on SheepShaver / Or PowerPC based machines, I’ve found that System 7 and an OldWorld ROM run it best.  System 8.0 and System 8.1 can run it (assuming they were installed as a PowerPC install), but System 8.5 and higher are not very cooperative when it comes to MacMiNT.

MacMiNT on SheepShaver MacOS 8.1

MacMiNT on SheepShaver MacOS 8.1

I suspect it must be the re-write of the nanokernel that PowerPC MacOS is based on.

GSOC bringing MacOS 9 to Qemu

It's some progress!

It’s some progress!

I know it may not look like much right now, but Cormac O’Brien is working on bringing MacOS 9 support to Qemu!  This is really great news as Sheepshaver has painted itself in a corner with it’s CPU code that requires memory access to 0x00000000 which more and more operating systems deny.

So you can download the snap and follow the instructions here. And you too can watch it fail.

Screen Shot 2015-07-20 at 9.57.16 AM

Starting to boot

During the boot you’ll see a message from MacOS on the CLI that it is unable to find a NVRAM partition.  During this time you will either see a bunch of CUDA and IRQ messages, and there is a good chance from here it’ll progress to loading the New World ROM.  If it gets stuck you’ll see tonnes of the following messages:

CUDA: read: reg=0xd val=00
CUDA: read: reg=0x0 val=30
CUDA: read: reg=0xd val=00
CUDA: read: reg=0x0 val=30

From here the screen should turn grey, and again it may or may not go to a happy mac, or again get stuck on the CUDA read 30/00 thing above.

New World ROM loaded

New World ROM loaded

Once it goes New World happy mac, it’ll load MacOS then bomb over one of the extensions.

I tried some OpenBSD for the heck of it, the good news is the kernel loads and starts the boot, but it has some issues with either memory or mapping the PCI bus.

Screen Shot 2015-07-19 at 6.03.43 PM

OpenBSD 5.7

Screen Shot 2015-07-19 at 6.08.31 PM

OpenBSD 3.3

Screen Shot 2015-07-19 at 6.16.02 PM

OpenBSD 4.0

And for the heck of it, Debian 5.0.0

Debian 5.0.0 installer

Debian 5.0.0 installer

I didn’t bother installing but nice to see the installer CD runs fine.

So yeah, sourceforge is still down

sourceforge down

Kind of annoying when I wanted to expand something with mingw, and all their download mirrors are… sourceforge.  And since I finally got around to putting Cockatrice on git but where did I put it? sourceforge.

Seems everyone has a good outage from time to time.  What to do?  Trust more of the cloud?

On Saturday 11AM BST the pages and downloads are back online!

Project pages and downloads back online!

Project pages and downloads back online!