More progress on PCem and networking

SLiRP tcp redirects now working
SLiRP tcp redirects now working

PCem is different from other emulators in that when it starts up, reboots it’ll tear itself apart, and re-kick all the components.  Normally other emulators do this once, and as a result I never noticed that slirp_exit doesn’t actually purge the socket state.  And calling the socket teardown call causes a mbuf explosion in the code.  Sadly GDB is pretty useless trying to debug it, since it’s claiming all the structure members don’t exist.  Very strange.

Luckily I could duplicate the debug feature to go though current socket redirects, and close the sockets on the Windows side with a simple closesocket.

In this version I’ve setup the following TCP port redirects:

ExternalPORT    Internal Port
42322                 22
42323                 23
42380                 80
42443                 443

I still haven’t messed with the rc file, so there is no GUI config, instead you have to do it in the text files.  I have some notes on the whole thing on the pcem forum here.

Download the executables and source here:

http://vpsland.superglobalmegacorp.com/install/pcem/PCem-0657320820ab-pcap-slirp.7z

And for those interested, the diff against mainline 328 is here.

One of those days..

Uh, that's not me!
Uh, that’s not me!

Ever have one of those days, where you suddenly get a weird email?  Recently I thought the whole ‘google security’ thing was a bit over the top, then I get this fine email.  I’m pretty sure it’s from a hotel I stayed at, looks like they had something there to MitM me. Great.  But thankfully they used an old ass machine from the looks of it, so it triggered google.

You may want to check your security settings here, if you are using Google, with their security settings centre.

https://security.google.com/settings/security/secureaccoun

If you know your phone will work where you travel, and don’t mind the typical phone company overcharge for daring to leave the area, I’d enable 2 factor authentication as well.

20 years of Windows 95

Windows 95
Windows 95

It’s hard to believe that it has been 20 years since the release of Windows 95.  But here we are.

Windows 95 started it’s life as a 32bit upgrade from Windows 3.1 code named ‘Chicago’ to compete with the 32bit version of OS/2 for the desktop.  Chicago is more famous for it’s incredible delays as the project suffered from feature creep, along with a complete UI redesign.  It’s also worth noting that even back as far as October of 1992, just after the release of Windows 3.1 Microsoft was already hard at work on Win32s, the Win32 subset and compatibility layer for Windows 3.1 to run Windows NT Win32 applications.

Windows 1.x didn’t make much splash on the market.  Windows 2.x added much needed features like overlapping windows, and of course the 386 version included a 386 v86 mode hypervisor.

In my opinion, Windows 3.0 was the most significant piece of software that Microsoft has ever shipped.  This was the point where they broke away from IBM, and went their own way.  And it showed that they were capable of launching a major environment without the support of their biggest partner.  Although sadly, OS/2 paid the price.

95 launch
95 launch

Windows 95 would be a close second as to what would be Microsoft’s most significant software, as it brought 32bit computing to the masses, along with a completely different user interface, one that remains popular to this day with the start button.  Even the marketing used to Rolling Stones song ‘Start me up’.  Windows 95 is also the first time (and last) that I can ever recall there being a Microsoft release party where actual users showed up, but were enthused.  Back when OS X shipped on physical media, you would see Apple fans camping out for the latest release, but for Microsoft this was the one time where the next release was going to be so significant with a whole new generation of applications like Office 95, and a much more easier to use interface people really were excited about it.  As much as Windows 10 is a great improvement on Windows 8, I don’t see anywhere near this kind of enthusiasm compared to Windows 95.

Program Manager
Program Manager

Before Windows 95 people had to fight the Program Manager, which was a MDI application which means it has windows inside of windows.  And it’s easy to obscure and lose place of programs.  I’ve seen users re-install applications because ‘they lost them’ not realizing the program group was hiding behind another window.  To many average users Program Manager was a nightmare to work with on a daily basis.

File Manager
File Manager

And to say that it’s complimentary program, File manager was also a MDI nightmare to work with was an understatement.  Again windows get hidden behind windows, it is all inside of another window so it can be confusing moving things around, and trying to get a good view.  To an average user, it’s tedious to work with and to get two full screen views of files, requires two copies of the application to run, which in the days of 4MB of ram or less was a luxury when you figure they were running an application as well.  Not to mention since there is no task bar, it was also common for people to launch multiple copies of an application since it would be hiding behind a window they didn’t know about.

Windows 95 Desktop
Windows 95 Desktop

The Windows 95 UI solved all of these problems by showing us what is running, and by unifying Program Manager, and File Manager into one.  Now we can see what is running, we have a desktop to move things around, and we can open up multiple file windows and move them around at will.  Even in this simple screen shot with multiple applications running, it’s trivial to see what is going on, and how to navigate it.  We take it for granted today, but compared to the old Program Manager, File Manager paradigm this was simply an upgrade to get enthusiastic about!

Windows 95 launch
Mikol Furneaux proudly shows off his Windows 95

And just look at this picture, isn’t this the look of excitement?  Over a piece of software?  From Microsoft?  The transition from 16bit to 32bit was so great, I really wonder if they ever again will have this kind of appeal.  Going from 32bit to 64bit has been so seamless I suspect many 64bit users don’t even know they are.

32bit applications promised (and delivered) on greater stability, and of course being able to actually use RAM that people had bought.  It was the end of segmented 64kb segments, and the use of 32bit flat memory models, that even in the game industry everyone had been flocking to 32bit MS-DOS extenders.  Now 32bit was going mainstream on the desktop.  Even though Borland had captured so much of the developer mindshare on MS-DOS, they just couldn’t achieve the same success level on Windows, and especially with Windows 95, it started the rise of Visual C++ and Visual Basic everywhere.

Networking was another strong point of Windows 95, as it included not only LAN support for TCP/IP, IPX and NetBEUI out of the box, but it also included dialup PPP support for all three protocols.  This is basically where other consumer OS really blew it, and why Microsoft not only ended up owning the desktop, but also the server space in corporations.  It was a common practise to sell the networking stack, and applications separately making a networked machine quite expensive.  SCO Xenix charged for the OS, Streams, and TCP/IP.  IBM charged separately for their TCP/IP as well.  By 1994 IBM started to see this as a mistake, and included DIALUP ONLY networking for Warp.  This stop gap measure was barely acceptable for 1994, but as the PC world got more and more connected this meant LAN connections along with wide area which IBM dropped the ball by charging yet even more for Warp Connect.  Where Windows for workgroups, Windows 95, and Windows NT included all of this, and multi-protocol support.

Microsoft also was busy creating their own online service, MSN, a competitor to AOL, CompuServe, Prodigy et al.  There is a better writeup on winsupersite than I could do, since I never did use it.  But the upshoot is that Microsoft was late to the internet party, and did not include any browser with the first retail version of Windows 95.  Later versions of course did include Internet Explorer.

The most significant early version of Internet Explorer has to be version 3, which is when Microsoft finally started to take it serious, and included things like SMTP/POP3 and USENET clients.  Back then, USENET was actually big.  This is before the rise of every website being a forum, instead we had a global distributed database that everyone could post onto.  It wasn’t instant though, so it could take days for a reply.  The kind of thing we take for granted now with many AJAX enabled websites able to alert you right away, or you can check the status with a simple refresh.

A worker packs the shelves of PC World, Croydon, with copies of the Microsoft Windows 95 upgrade computer package. The package will go on sale at midnight across the country.
A worker packs the shelves of PC World, Croydon, with copies of the Microsoft Windows 95 upgrade computer package. The package will go on sale at midnight across the country.

I may have to touch on the rise and fall of Internet explorer at a later date, but check out the exciting back of the Windows 95 box that included Internet Explorer:

Windows 95 box SE, back
Windows 95 box SE, back

For those who want to remember, the Windows 95 start sound!

And speaking of which next year will be 20 years of Windows NT 4.0, and how it utterly changed the server market forever.

Adding SLiRP to PCem

So PCem is an incredible emulator for the IBM PC platform.  One thing that has been missing, and really missed has been networking.  So a while ago, SA1988 came up with a patch that incorporated the BOCHS ne2k.cc into PCem.

So as requested, I took the copy of SLiRP I’ve used in SIMH, Cockatrice and Previous, and got it working in PCem.

Telnet
Telnet from MS-DOS

This has to be one of the easier ports since PCem doesn’t use threads.  But yes, it appears to work, although I haven’t done any major testing.

For those who want to experiment, here is a binary/source blob of the project.  Right now we are just past the OMG it compiled phase to OMG it SENT and RECEIVED data phase.

If anyone wants to play, the NE2000 is set to 0x300 IRQ 10.

And you need to manually add the following to your pcem.cfg file:

netinterface = 1
netcard = 1

And you should be good to go. I think.

QuakeWorld
QuakeWorld

And yes, it’ll run QuakeWorld!

modern.ie Virtual Machines

(this is a guest post by Tenox)

Ran across this curiosity today: Microsoft Edge Dev Center provides a bunch of ready made virtual machines with different versions of IE web browser. But they can be used for different purposes if you need to quickly spin up a specific version of Windows quickly.

http://dev.modern.ie/tools/vms/windows/

This is whats available:

modeirnie1Different hypervisor type images on Windows, Mac and Linux are available:

modeirnie3Very handy stuff. This is beloved Windows XP after it booted first time:
modeirnie2Very handy and not only for browser testing.

There also is a Remote IE which opens IE window straight from Azure. I wonder what are implications of it for censorship in some countries as well as piracy etc.

VenturComm Venix/86 on MESS/MAME

(This is a guest post by Tenox)

This is follow up to a previously posted challenge to virtualize VenturComm Venix/86 so that it can be run on a modern machine under an emulator. The competition was a huge success and the rest of this post is an entry by the winner – Jim Carpenter. Enjoy!

Install MAME/MESS 0.164 and get the “at386” machine running. Standard issue ROMs.

Create a new hard drive image with “chdman createhd -chs 615,4,17 -c none -o hd.chd“. This is only 20MB. You can certainly use larger drives but make them a standard type, something that is a defined drive type in the BIOS. I’d stay away from user defined types.

Start the emulator, configure the first floppy drive to be DD and the second to be HD. Restart so it takes effect. Attach XFER.IMG to the first floppy and your hard drive image to the hard drive. Restart again. (Venix uses the BIOS for *everything*. So if you attach without rebooting, chances are the BIOS missed your hard drive which means Venix won’t see it either.)

Go into the BIOS and configured the floppy and hard disk types. The command above creates a type 2 drive:venix1Save and exit and let it reboot.

We wish to prepare the winchester hard disk:
venix2 Continue reading “VenturComm Venix/86 on MESS/MAME”

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.