Running Qemu as a Windows service …

Long story short I’m doing some work with a network that suffers a lot of ‘you can’t get there from here’.  They’ve given me VPN access and yet even the VPN cannot get to a lot of stuff.

The solution for them is to use this old server and ssh out from there to the rest of everything.  Which for the most part works fine, but if more than 2 people need to leapfrog suddenly you are waiting in line, or constantly knocking people off.

So, I figured I’d do something different, install a QEMU virtual machine on the server during my allotted hour, and then launch it as a service so that I could leap in/out through the VM leaving the console free.

While I am going to add Qemu as a service, it is still somewhat stealthy as I don’t need device drivers, and I can run it nested as I know this machine is slated to be migrated to VMWare ESX.  And the best part of that is that it’ll continue to run.

So how do we set this kind of thing up?

The first thing you’ll need is srvany.exe instsrv.exe which both can be found in the Windows 2003 resource kit. (what it used to look like)

Installation is very straightforward, just remember to use complete paths for your Qemu, BIOS, and disk files.  Installation goes like this from the command line:

InstSrv qemu c:\qemu-0.15.0\srvany.exe

This will create a service entry named Qemu, which will in turn kick off the srvany executable from the resource kit.  Now I know what you are thinking, what about Qemu?  Well we have to specify that using regedit.  Also remember that because you are going to run this as a service you don’t want the SDL display popping up and scaring some poor hapless user.  So the first thing I’d recommend is to work out the flags that you want to start with.  Something like this:

c:\qemu-0.15.0\qemu -L c:\qemu-0.15.0\qemu\pc-bios -hda mydisk -net nic -net user -redir tcp:2222::22 -vnc w.x.y.z:2223

This will redirect tcp port 2222 into the VM for ssh, and sits the VNC display on port 2223 …

So we fire up regedit and navagate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Qemu

There we add a new key “Parameters”.  Then add an ASCII key of “Application” then just paste in all of the qemu flags as mentioned above (or changed as needed by you).

Then you can simply start/stop the thing using the net start/net stop.

I suppose this is a little subversive (lol) but sometimes you’ve got work to do and the best way through it to piggyback on someone else’s computer.  Also I really fail to see the ‘wisdom’ in creating ACLs that only permit you to access your routers/switches from your desktop when you could easily *NOT* be in the office.  Or this guy just likes the excuse of not being able to work from home.

Anyways not to ramble but that’s how I ‘fixed’ the issue without ruffling too many feathers.

Idling under MS-DOS 4.01 & Windows 3.0

Well I was playing some more with my MS-DOS setup, and the annoying thing is that it doesn’t idle worth anything.

And of course running old DOS doesn’t help that most everything needs MS-DOS 5.0 or higher.

But then I found WQGHLT, which is a VXD to support idling under Windows 3.1.  And happily it works on Windows 3.0 …

The only pain is that running MS-DOS applications kills the CPU (again).  Which means that the DOS programs themselves need to idle.  And yes I did check the ‘detect idle’ but it seems that it doesn’t do what I’d hope.

Maybe it’s just the software, I should try some more and see what I get.

Pushing Windows/386 out the door…

While one may think that Windows 2.x started with the ‘regular’ version, it does indeed turn out that rather the 386 specific version was rushed out the door to appease Compaq, and their new Desqpro 386 computer, namely the 20Mhz 386 model that was going to debut in late 1987.  Indeed, Compaq not only set the standard with the 386 CPU, but they were going to set the future standard of bundling not only MS-DOS but Microsoft Windows.  At this moment in 1987 you could really say that the ‘modern pc market’ was born.

Windows/386 2.01 from OS/2 Museum.

And it does make perfect sense, with 386 specific software being very rare/hard to come by, keeping in mind that Phar lap 386 was only announced in December of 1986!  But it was expensive, and 386 specific applications cost a fortune, and didn’t have wide market penetration (we were still years away from DOS4G/W or GCC).

Another thing to keep in mind is that OS/2 had not shipped either at this point, and apparently this version of Windows/386 would not even support the IBM PS/2 model 80, as there was some noise about IBM not wanting to bundle Windows on their computers.  Now when you think about it, it is kind of funny that Windows an inferior product came out with a GUI and multitasking MS-DOS via the 386’s v86 mode, while OS/2 was still in a beta stage.  Not to mention IBM’s reluctance to bundle Windows/386 shows just how the Windows rift was an issue even back in 1987!

Looking at this December 1987 InfoWorld issue we can see it in action:

From, InfoWorld Dec 1987, Windows/386 in action

And it’s no wonder why this was going to be a hit.  And the UI looks just like how Presentation Manager for OS/2 1.1 was going to look, almost a full year before OS/2 1.1 was delivered (Halloween 1988!)

Now trying to peg down exactly When these releases of Windows 2.x were, esp with Windows/386 2.01 being the first, in September of 1987.

From what I can work out, Windows 2.01 ‘regular’ was shipped around November of 1987, with the 2.1 update in July of 1988, and 2.11 in March of 1989.

While on the topic of Windows 2, there was one slightly interesting feature, of the ‘regular’ or ‘286’ version of this product.  It could multitask MS-DOS.  No really, but it was all out of the same conventional memory space.  So unless you were into COM programs it wasn’t terribly useful.

The later 286 versions included early himem.sys drivers that permitted some trickery with the A-20 gate allowing an additional 64kb of ram to be accessed from real mode.  It may be a good thing that nobody found out about unreal mode at the time..!

I don’t know if it is even possible to tell them apart, besides the 386 and 286 (regular) versions but here is a small gallery of Windows 2.0 running command.com

Windows 2.03

Windows/386 2.03

Windows/286 2.1

Windows/386 2.1

Windows/286 2.11

Windows/386 2.11

Included is something special for the 2 or 3 people that’ll figure it out. 🙂

Windows 3.0 …

Bill Gates with Windows 3.0 / credit:Carol Halebian

There is no denying it, when it comes to revolutionary products you simply cannot ignore the powerhouse that was, Windows 3.0 .  Simply put this is what made the Microsoft empire, broke the alliance with IBM, and changed the future of OS/2 3.0.

Not only that, but Windows 3.0 changed the way businesses operate world wide, and finally delivered on the ‘dream’ of what could be done with the 286/386 microprocessor where OS/2 had failed.

To really appreciate Windows 3.0 you have to see the world as it was before it was under development.  Back in 1989 the pc market was in turmoil.  While OS/2 had the promise of breaking all the old barriers of the real-mode only OS MS-DOS, it simply cost too much, and hardware compatibility was just too poor.  The other striking thing was that the only 386 specific feature that OS/2 1.2 (current version in 1989) could exploit was that the 386 could quickly move in & out of 286 protected mode.  The LAN server product also had a 386 specific HPFS driver, but that was it.  OS/2 1.2 was still limited to a SINGLE MS-DOS box.

OS/2 1.2’s DOS session

And there wasn’t a heck of a lot you could do memory wise.  Not to mention there was no ability for the DOS session to use EMS/XMS memory.  It’s no wonder it became to be known as the ‘penalty box’.

Meanwhile, Windows/386 circa 1987 could run multiple MS-DOS VDM’s on the 386 processor.  You were only limited by how much extended memory was in your system.  Windows/386 exploited the v86 mode of the 386 processor which allowed for hardware virtualization.  However Windows itself was a ‘real mode’ program, meaning that it had to fit in 640kb of ram, just as the VDM’s it spawned had to.

Windows/386 2.11

So unless your goal was to run a bunch of MS-DOS sessions all your extra memory was for nothing.  That also included Windows programs since they all ran in real mode.  For people with enough disk space you *could* actually install one copy of Windows/386 in say VGA, then another with a lower video resolution (CGA or EGA), then actually run Windows in Windows… in a Window.  But it really wasn’t that useful, it ran better full screen.  And all this had the effect of doing was partitioning your windows programs from each other, if you dedicated a VM per application.  Needless to say with OS/2 2.0’s seamless windows this was far more easier to setup, and frankly far more practical.

In 1989 building large applications meant that you either forced people to use Unix (SCO Xenix!) or OS/2.  For those that could afford it, Xenix would have been the way to go, as they not only ran in 386 protected mode, offered a far larger address space, but it was also multiuser!  But Xenix was expensive, needed specialized knowledge.  And as mentioned the cost of OS/2 development was HIGH, and it required your end users to have OS/2 (naturally).  And the users would have to fight that a lot of PC/AT compatible PC’s on the market were not compatible enough to run OS/2.  Despite this a lot of banks latched onto OS/2, and some still use it today (look at why parallax came into existence!).  Then out of nowhere, PharLap had developed a piece of software that changed everything, the DOS Extender.

Originally for 386 computers, the first DOS extenders required people to use special 386 compilers, runtimes, and of course linkers & extenders.  The tools were expensive, the right to redistribute wasn’t free, but end users could run your multi-megabyte (lol) applications on regular MS-DOS.  Which is what 99% of PC’s were running, and it didn’t require users to change their OS, abandon their applications, it would simply just work.

Links 386 pro

One of the earliest and most popular DOS Extended game/application was Access Software’s Links 386 pro.  That’s right this game ran in protected mode! .. And it would *NOT* run under, or near Windows/386.

It was out of this wildly great but incompatible world that the first DOS Extender vendors, tried to standardize their products with the original and short lived VCPI specification, from Phar Lap.  However in 1989 Microsoft was busy working on Windows 3.0 as the next great thing.  Using a protected mode debugger, they were converting Windows/386 from a real mode ‘hypervisor’ into a protected mode application.  And if Windows couldn’t run these new extended applications, then people would naturally have to exit Windows to run them.  And that was the major problem with Windows is that people may have an application for windows but they spent most of their time in DOS. So Microsoft’s Ralph Lipe came up with the DPMI specification, managed to get all of the major vendors to support and take over it, in exchange for leaving Windows as a 0.9 level client/server.  After all why would you need their products if Windows were to incorporate the entire 1.0 spec?  At the time it was a big deal, but the success of Windows would eventually kill the extender market save for video games until Windows 95.  There is a great article about the rise of DPMI here.

So with a firm dos extended foundation Windows 3.0 could do something the 2.x products could never do, which was to actually utilize all the memory in peoples computers.  And because it hinged on a dos extender (ever wonder what dosx.exe was?) it meant that there was no special disk, mouse, network driver/software needed as it could jump out of protected mode, and call real mode software like the BIOS, or even mouse drivers if need be.  However older protected mode programs would only error like this:

No Lotus 1-2-3 r3 for you!

Another popular application for MS-DOS just happened to be Lotus 1-2-3, and it was *NOT* DPMI compliant.  Oh sure they had DOS & OS/2 support, but would you believe that the OS/2 version wouldn’t run in a Window?  Oh sure the install program may have, but some how someone didn’t think there would be any value in being able to SEE more then one application at a time.  Not to mention the dark horse, Excel was starting to sell in 1987 like crazy, in 1988 Excel actually started to out sell 1-2-3, and by 1989 it was already over.

Lotus 1-2-3 r3 for OS/2

Microsoft Excel 2.2 for OS/2

There is no doubt about it, GUI applications were taking over.  The old ‘DOS’ interface was dead.  And Lotus had basically killed their product line by providing an identical interface and experience to their customers by providing an OS/2 application that looked and felt just like the MS-DOS application.  While you may hear that Lotus got distracted with OS/2 and missed releasing a Windows version of 1-2-3 to counter the rise of Excel, the truth is that they straight up missed windowing UI’s. Their hubris is that the users simply didn’t like the 1-2-3 interface, they wanted a windowed application.

What they did want was graphical Windows, and of course more memory!  And there is nothing more annoying than having say 16MB of VERY expensive memory in a computer like a 286, but being restricted to 640kb or less is just … insane.

So let’s see Excel in action.  Excel 2.1c shipped with a ‘runtime’ version of Windows 2.1.  Mostly because nobody was buying Windows in 1987 Microsoft had to do something to get people running the thing.  So the best way was to allow you to run an application with it.  By late 1989 and early 1990 application vendors were making updates to their products so that they could run under Windows 3.0.  And here is the first version of Excel to do so.

Excel 2.1c and the Windows 2.1 runtime

So here we have Excel running under Windows 2.1 ala the runtime environment.  All you have here is excel.  Also worth noting is that the setup program is 100% DOS text based.

Moving forward we can now upgrade to Windows 3.0.

Excel 2.1c running on Windows 3.0’s real mode

So as you can see Windows 3.0 takes up 30kb more memory then Windows 2.1!  For someone with an XT this could mean bad news!  Now it’s time to see what all the babling was about, running the same application in protected mode to access more memory!

Excel 2.1c running in Windows 3.0’s standard mode (286 and above)

Now we are running in 286 ‘standard’ mode.  Notice that Excel thinks it’s conventional memory, but we now have 14MB of the computers installed 16MB accessible to the application!  Now this is pretty amazing stuff! Now it’s no secret that the 286’s memory management left a lot to be desired, and Microsoft really didn’t want to write for it, as the 386 was where they wanted to be.  So unlike OS/2 the 286 cannot swap.  You are only limited to what extended memory you have in your computer.  But this is different for the 386..

Excel 2.1c running under 386 enhanced mode

And here we are, 386 enhanced mode! So finally  our Windows applications are clearly running in protected mode, with demand paging!  With 36MB of available memory in a computer with 16MB of ram.  The colors are distorted on Virtual PC under 386 enhanced mode… But as you can see the environment runs!  And even graphical programs that for example used CGA could happily run on an EGA system in a window.  Even better you could copy the screen, and paste it into any Windows application you want.  Yes you could buy games and use them for clipart!

Another feature of Windows 3.0 that people didn’t realize is that it could pre-preemptively multitask DOS based VDM’s

As you can see, there it is, the timeslice, and scheduling options..  Great ways to confuse users for decades… 🙂

Who could resist?

As always, there is a great InfoWorld article here.

So why was Windows 3.0 successful? A lot of it is timing, as there was no other environment that could offer people access to their whole machine without upgrading their operating system.  And of course there was the whole thing with bundling Windows, Word & Excel with new computers.  I mean who would resist something like a graphical application like Excel when compared to the klunky and significantly more expensive 1-2-3?  Sure the bundling practices were found to be illegal, but looking back, Lotus & Word perfect basically GAVE Microsoft the market.  And of course, talk about aggressive upgrades!  I’m not sure they even do such things anymore.  Although I’ve heard of big companies, and governments pushing for discounts for running things like Linux.

And there is the other things that Windows 3.0 supported that OS/2 simply did not.  For starters backgrounds (wallpapers), and of course the desk accessories.  Sure they sucked but in a panic at lest you *could* do something… where OS/2 basically left you in the lurch.  Not to mention how much more expensive OS/2 was when compared to Windows.

So with all that out of the way, what fun is a write up without a demo?

 

And thankfully I’ve found all the bits in prior posts, and I can put them together right here.

Windows 3.0 working demo, click to launch!

 

WinDoom, WinG, Win32s on Windows 3.1 (on Qemu)

So since I was looking at the Doom stuff, I thought I’d try to track down the WinG version of Doom, and luckily someone pack ratted away two versions! Needless to say the older one didn’t work for me, but the last one, the April 13th, 1995 build, worked just great!

WinDoom on Windows 7 x64

Even on Windows 7 x86_64, sp1!

So how much of a chore was this to run back in 1995, before Windows 95?

Well to start WinDoom requires a display capable of at least 256 colors. I thought I’d use Qemu for this, but this proved to be… exceptionally difficult to locate a satisfactory display driver. I know lots of people point to the SVGA.EXE update from Microsoft, that uses VESA extensions to drive the video. Oh sure it sounds great but this is what I got:

And.. corruption.

Ok, so you say, there is this great patch to enable better VESA support right?

Wrong.

Yeah. I also hunted down various cirrus drivers for the specifically emulated chip (I checked the source) and they were all consistently defective. So I tried using a lower chip driver from HP and amazingly the 640x480x16MM colors works! (well, works ‘enough’).

Installing the right driver.

It’s the GD5430 v1.25f, 640x480x16.8M

The next thing is that Doom in both MS-DOS and Windows are full 32bit executables. On the MS-DOS side, it relies on the DOS4G/W extender. For Windows, it relies on the then new Win32 standard, and Windoom was written to conform to the Win32s standard, meaning with an addon it can run on Windows 3.1, Windows 95, And Windows NT. I just fished around the internet and scored a copy of Win32s 1.25. I just remember this being a somewhat stable version.

Installing Win32s

Win32s installs pretty smooth, (as long as you remember the share.exe). Now we just need the WinG runtime to be installed. WinG was Microsoft’s first real attempt at high speed gaming video under Windows. From what I understand it kind of went down because it was ‘too difficult’, and buying DirectX seemed to be a better fit.

Setting the midi mapper.

Another thing I’ve found is that if you change the midi mapper from the default “Ad Lib” to “Ad Lib general”, you can at least get the midi working in Doom.

Once WinG is installed, then it’ll want to do some blit tests…

WinG calibrating.

And after that, we can even bump it up to glorious 640×400, something the initial MS-DOS version couldn’t do easily as VESA wasn’t a big standard with INSTALLED cards at the time, and it’d require lots of work from the iD team, where the move to Windows pushed all the peripheral development to the Vendors to work around Microsoft. Even to this day, it’s still a big deal with video and audio.

One thing that is cool about Qemu is that at compile time, you can put in adlib & soundblaster cards to give the ‘full’ Windows 3.1 multimedia experience. There is also GUS (Gravis Ultra Sound) support
in Qemu, but I’ve never played with it..

With all of that out of the way, WinDoom will launch.

WING dispdib.dll missing error that turned out to be Video for Windows.

Then it’ll throw an error, because Windows 3.1 doesn’t have the same video backend as Windows NT 3.5 (and higher), hit ok and then …

And it works! WinGDoom running on Windows 3.1 on Qemu!

Sadly on Windows 3.1 the sound effects do not seem to work, but overall it’s a GREAT little port, mostly because as it comes up on 16 years old, it still works, and with sound. I wish other OS’s could give this kind of support for legacy applications, even ones that had such a brief window of support.

Anyone crazy enough to even think of playing along can download the blob of software I used to get this going here (Updated on archive.org here: Windows-3.1-WING-doom)

I should also add if you want sound effects to work on WinDOOM you really should install the Video for Windows Runtime, and it’ll work… poorly on Qemu/SoundBlaster 16, but it does work!

Microsoft Giano

I stumbled across this the other day, Giano, a simulation framework.

Included is a bunch of stuff, like a basic x86 / cepc (with Windows CE 6.0 image), an Xbox 360 emulator, a SPOT emulator, some eval boards (AT91EB63?) with both MIPS and ARM cpus that even include a doom kernel like experience! A Macintosh G5 (I wonder if it’d boot with Apple ROMS..?) Oh and..

A VAX.

The VAX code is taken from SIMH but I guess to show how extensible the framework is, they mashed in enough microvax to get it going.

SIMH in a way you’ve never seen it…

At any rate, here is some other screen shots of Giano in action….

CEPC

xbox 360 alpha test

xbox360 console

And of course….

Giano MIPS doom

DOOM

Also buried in there is a new MIPS variant, the emips along with a donated NetBSD port!

Sadly I had no luck running NetBSD….

Default: 0/ace(0,0)/netbsd
boot: 0/ace(1,0)/netbsd
Loading: 0/ace(1,0)/netbsd
5085072+70448=0x4eae14
Starting at 0x80020000

memory segment 0 start 00000000 size 10000000
memory segment 1 start 10000000 size 00100000
Too much memory in cluster 0, trimming memory to range 00000000..08000000
Too much memory, ignoring memory range 10000000..10100000
pmap_steal_memory: seg 0: 0x50b 0x50b 0x7fff 0x7fff
pmap_steal_memory: seg 0: 0x54b 0x54b 0x7fff 0x7fff
pmap_steal_memory: seg 0: 0x54d 0x54d 0x7fff 0x7fff
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.

NetBSD 5.99.48 (RAMDISK) #0: Tue Mar 15 01:01:14 UTC 2011
[email protected]:/home/builds/ab/HEAD/emips/201103142200Z-obj/home/builds/ab/HEAD/src/sys/arch/emips/compile/RAMDISK
Xilinx ML50x (eMIPS)
total memory = 128 MB
avail memory = 120 MB
sysctl_createv: sysctl_create(no_sa_support) returned 22
mainbus0 (root)
cpu0 at mainbus0: Toshiba or Microsoft eMIPS CPU (0x70401) Rev. 1 with software emulated floating point
cpu0: 64 TLB entries
ebus0 at mainbus0
pid 0(system): trap: cpu0, TLB miss (load or instr. fetch) in kernel mode
status=0x2000000, cause=0x8, epc=0x8002d5c8, vaddr=0xd0000000
tf=0x8054cc78 ksp=0x8054cd18 ra=0x8002d5b8 ppl=0xd0000000
kernel: TLB miss (load or instr. fetch) trap
Stopped in pid 0.1 (system) at 0x8002d5c8: lw v0,0(s0)
db>

Maybe someone else will have better luck.

— edit, it seems Microsoft has a NetBSD 4.01 download, here. And it boots!

Internet Explorer 9 released..

Well today Internet Explorer 9 has been released… I guess they timed it for the pi day thing yesterday (3/14!).

You can find all the languages & versions here.

So how does it perform? Well the CP/M Javascript page doesn’t work at all in IE9 mode. In compatability mode, it can’t execute commands with an argument so booting or loading disks seems not to work. It’s such a shame.

The javascript NES emulator not only works, but seems to perform pretty well I get just under 60fps. Oddly performance is just slightly slower then Chrome, yet the sound in IE is far smoother. That was really unexpected, but still interesting.

Outside of that, I’ve only used it for 10 minutes now so I really can’t say. But we all know that for better or worse, IE always holds the largest ‘surface area’ so it will remain the most targeted. But for now it’l be fun to play with, but I’ll be lery of remaining on it.

Trumpet Winsock 2.0b

So while browsing around k7tty, I came across this file, internet.zip, that pretty much has everything you need for a windows 3.1 machine to get into the internet using Trumpet Winsock.

I used a packet driver, along with Qemu’s built in ne2000 and it works pretty well!

While I never used Trumpet back in the day, setting it up for LAN access was pretty easy, and while Trumpet 1.0 loads on Windows 3.0 I never could find any applications that actually work with it. Trumpet 2.0 seems more along the line of the finalized Winsock 1.1 stacks, with applications abound to run with it and Windows 3.1

A little more fun with the Windows 3.0 working model

FORTRAN Dungeon on Windows 3.0 Demo

So with a little pushing around I managed to create a stand alone version of dungeon (zork) for Windows 3.0 . Naturally this version doesn’t require windows, just some kind of MS-DOS system with a 80286 processor, and either EGA or VGA graphics card. I guess I could have tried some CGA/MDA love but I didn’t.

So for anyone wanting to have some fun with an ancient box, I’ve provided both floppy disk images, and an install directory source to install this. It’s kind of funny how 7zip can get another 50% on the Windows 3.0 compress utility.

Otherwise it’s like the other Windows Demo/Working model software..

Text based installer…

GUI Installer

And the desktop.

This is the old f2c version of dungeon/zork I ported ages ago. Oh and thanks to the magic that is jdosbox, you can testdrive it from a Java enabled pc just by simply clicking here.

Twinsock and early windows internet usage

A friend of mine let me know that there is a current drive by former users of trumpet winsock to actually send the author the $25 ($35 in adjusted money) that he had asked for the shareware program. While I’ve seen Trumpet, it required a SLIP or PPP connection which I just didn’t have back in 1993/1994 timeline. Sure there was SLiRP, but it was far more involved to compile on the Ultrix machine university gave us access to, or the pay internet connection (sefl.satelnet.org!) that ran IRIX. So I ran Troy Rollo’s Twinsock.

Besides being GPL’d twinsock proxied the socket access from your Windows 3.1 computer, and ran the requests on the Unix host you connected to. The best part is that they didn’t have to know that you even ran it. Twinsock transformed the internet from being a Unix shell account that kept many people away, into a graphical experience with windows applications executing on our desktop. Since it wasn’t a real TCP/IP stack, it effectively firewalled us, and seeing we were running Windows 3.1 that was a good thing.

So to make this experence more… realistic, I took the 386BSD 0.1 image from sourceforge, and made one tweak into how it runs. I added the following to the Qemu execution:

-serial tcp:127.0.0.1:4445,server,nowait

Then I installed MS-DOS, Windows 3.1, a terminal program, and some tcp/ip programs to test into another Qemu virtual machine. I then connected the two Qemu instances like a null modem like this:

-serial tcp:127.0.0.1:4445

This way COM1 on both machines now talk together. The only major downside I’ve seen is that if the client VM is killed re-starting it doesn’t get the serial connection working, both VM’s have to be restarted from the command line.

The cool thing was I was able to use a dos terminal program and zmodem to transfer the source to 386BSD to build. Surprisingly this part went pretty smooth on all the versions of Twinsock that I tested, but version 1.3 and higher was the version that actually worked.

So with the executable built on the Unix machine, you launch the windows program, which included a minimal terminal program. And from there you can dial up, login to your Unix account, then launch the twinsock Unix component and the window minimizes and now you are ‘connected’.

Launching Twinsock

WinVN

One of the most popular programs & protocols of the “early” internet was NNTP or Net News. Net News transitioned the world from BBS’s and Forum Software. The topics were incredibly diverse, and the system was distributed by nature. And news traversed the internet in a semiquick fashion. Especially the nodes that had T1 or faster access at the time. Unlike down stream UUCP BBS’s that may only take a small feed once a day, now with Twinsock you could get whatever groups and feeds you wanted, and as fast as your little modem could download it.

So for this fun experiment, I downloaded a suitably old version of WinVN, 0.92.1. The first thing I went looking around for was a public NNTP server. A great resource for locating various news servers that have certain groups is newzbot.

So with a suitable server in hand, I was able to connect up and check a news group. It was slow and clunky like it was in the old days, but it was neat in that client server feel to know that it was running on my desktop.

MS Telnet

Naturally it wouldn’t be the internet if you still telneted all over the world for MUD’s, and even access to compilers, different systems, and school work. I had a chore of a time finding a ‘good’ telnet client, so I ended up settling with the one that Microsoft had released their own stack, ‘Wolverine’ as part of a TCP/IP protocol update for Windows for Workgroups. This stack was also significant in that this was the first time a ‘full’ and ‘real’ TCP/IP stack had been released for free. As mentioned above with Trumpet winsock, and the rest, you had to buy the network stack. This free stack was only meant for LAN access, though I’ve heard of people trying to hack PPP/SLIP stuff at the dos level, but again it wouldn’t help me, since I couldn’t SLiRP. But this was the forshadowing of how the internet was going to finally take off, and the short thriving window of 3rd party TCP/IP stacks for Windows was about to slam shut in the next release of Windows.

Mosaic 0.7

And finally we come the program that basically changed the way we do everything – Mosaic. The first web browser only worked on the NeXTSTEP, and I don’t think that Mosaic was the first PC browser, but at the time it certainly was the best. I loaded up an old version to see if it could at least hit a site by IP address, and it worked. Sadly downloading files causes the browser to crash. Mosaic was rather touchy back in the day too. Because Mosaic came from the Unix world of browsers it was a 32bit program, and needed large amounts of memory. It also was a large exe too, around 2MB! Which is far larger then doom & the dos extender! So Mosaic was the first program I can recall that needed the magical Win32s add on. I’ve mentioned Win32s before so I won’t go on and on, but like the TCP/IP from Microsoft, this also basically killed the DOS Extender market.

The first time I saw Mosaic, I was blown away, we left the world of terminals and archie/gopher/veronica to something you could use a mouse with, and enter in your own URL! It was amazing, but at the same time I thought the internet was doomed to failure as you had to READ. Oh how wrong I was to be shown later. But in the time between Windows NT 3.1 and Windows 95, there was a lot of reading expected to be done. Much like everyone at the time would reply with RTFM in the news groups for stupid questions, why there even was the “Big Dummies Guide to the Internet“, thankfully made available online, put on various shovelware CD’s and saved thanks to cd.textfiles.com.

I couldn’t get MiRC to work.. I forget what other IRC programs would actually work with Twinsock. But I didn’t spend that much time on IRC.

Oh well, that is how the internet stood in that pre Windows 95, pre wide scale PPP world. It really was amazing how fast things changed.