Citrix Multiuser 2.0

Back before selling auto insurance
Citrix Multuser 2.0

Nothing like a little vintage advertising to try to re-capture the feel.  But don’t let the colorful lizard fool you, this certainly was a dark time for Citrix.  Firs they had tooled a product around the future of the PC market, OS/2 to only have Microsoft pull out of active development just as they were launching Multiuser 1.0.  And to be fair it wasn’t just Citrix, the whole industry including Microsoft was in turmoil as people were pulling away from IBM and selecting Windows on MS-DOS of all things!

Citrix, like a lot of vars were caught in this lurch between OS/2 and the forthcoming NT OS/2 3.0, which of course ended up becoming Windows NT.  During this time even Microsoft had to keep selling it’s SQL server on OS/2, along with it’s LanManager file & print server.  Although they had a solution for the end user in the form of Windows they didn’t have any server platform.  That left Citrix chasing the tail end of the application wave again as although they could now finally use OS/2 2.0, with it’s 32bit/16bit hybrid kernel, there remote user solution was still terminal based.

IBM OS/2 ad

As IBM & Microsoft had split up the direction of the OS/2 project, IBM was running with version 2 as a platform for running DOS & Windows applications.  Which ultimately lead to the major problem that OS/2 ran Windows apps better than native Windows thanks to it’s ability to run isolated Windows VM’s using paravirutalized graphic drivers.  It wasn’t until Windows NT 3.5 could Microsoft meet this feat with it’s new platform.  Suddenly Citrix had access to tonnes of MS-DOS based applications, much to my surprise there is even a DPMI driver on the disks I have, meaning that Windows 3.0 standard mode can run, along with DooM!  But for Citrix this would be another one of those ‘not good enough’ moments where PC Servers were just high end workstations that could easily be maxed by one user, commodity multiprocessor machines were years off, and of course everyone was jumping to Windows 3.0.

But this did at least you run MS-DOS applications remotely, over dialup.

Citrix multiuser 2.0 boot

Installing Citrix Multiuser 2.00 starts looking very much like one of the 1.x versions of OS/2 with a far more busier screen featuring the Citrix tree.  However from this point onward it feels a LOT more like IBM OS/2 2.00.  Citrix interestingly enough has two disk 1’s, one that features newer LADDR drivers, and another with the older 1.x drivers.  Although under bochs, the older driver disk crashes out.  The entire OS fits on 8 high density 5 1/4″ diskettes.  As teased before this post, I saw this on eBay, ordered it immediately to only discover that I don’t have the needed drive, and had to order one from pc-rath_de, and I wanted to give a shout out, as he made sure that I had the proper floppy ribbon cable, so I could go ahead with this fun project.

Although I had been expecting this to be inline with the never released Microsoft OS/2 2.00, it clearly has a lot of IBM vestige, even though the OS/2 source code license agreement was between Citrix and Microsoft.

Indeed, even checking the OS level:

IBM OS/2 Base Operating System
Standard Edition 2.00     Component ID 560109001
Current CSD level: XR00000
Prior   CSD level: XR00000

Compare this to the OS/2 2.00 GA:

IBM OS/2 Base Operating System
Version 2.00 Component ID 562107701
Type 0
Current CSD level: XR02000
Prior CSD level: XR00000

So clearly this is not in sync with the General availability of OS/2.  What this is closer to sync with is the OS/2 LA – Limited Availability release.

IBM OS/2 Base Operating System
Standard Edition 2.00 Component ID 560109001
Current CSD level: XR00000
Prior CSD level: XR00000

Well isn’t that interesting?

Having had the misfortune of crashing all three we can look at the internal revisions:

Citrix Internal revision 2.053 6.177H base
LA Internal revision 6.167 91-10-08
GA Internal revision 6.307 92-03-01

So this make the BOS (Base Operating System in IBM speak) newer than the OS/2 LA (Limited Availability) kernel, however quite a few revisions behind the GA (General Availability).  This of course means that Citrix Multiuser 2.0 is basically incompatible with any 32bit OS/2 software.  I was unable to run anything EMX based, nor could I run the vast majority of the 32bit TCP/IP stack for OS/2 2.00.  The best I could do was have it load the drivers, to where I could setup and ping the loopback, but the route command crashes the system, and any of the commands simply refuse to run.  Not being able to run 32bit OS/2 applications greatly reduces the usability of the system, and falls further to the OS/2 trap that it really just excels at running MS-DOS apps.

It was a bit of a surprise to find out that even though Citrix had their source license through Microsoft, the 2.0 components turned out to be the upstream components from IBM.  Just as the included Qbasic is the IBM version, along with the other components.  The terminal support is naturally more robust than version 1, although I think the larger problem I had trying to run OS/2 programs it that many terminals are hard coded for 24 lines, and I don’t think you can change that in Citrix.  And it does mention that if you do try to run on a 24 line terminal that DOS won’t run.

Much like 1.0, all the administration is done via text tools.  It feels weird at first as even on the console there doesn’t seem to be any mouse integration, although the installer does ask if you do have a mouse on the system.

And like 1.0 there is no Presentation Manager, so no graphics on the console.  HOWEVER you can run MS-DOS graphical stuff on the console. Although today I have no real need for it, but I went ahead and setup the included Windows support.

Windows for OS/2

What is interesting is that you are expected to supply your own retail version of Windows 3.00, and Citrix has some updated drivers, along with OS2K286.EXE, and updated program manager, control panel, and print manager.  While IBM included a full copy of Windows 3.00 at this point, this feels like the beginning of OS/2 for Windows – AKA the Borg.

Going Multiuser

First I just setup a COM port on Bochs to Listen on port 8880.  Unfortunately this isn’t resilient, as Bochs will wait for a connect before actually starting, and if you drop off, it won’t let you connect back in.

com1: enabled=1, mode=socket-server, dev=localhost:8880

And then it’s a matter of running CFGTERM, and adding in the Async module.

Citrix add in Async

With the module added you then just have to assign a port.

ICA profile

I didnt’ do anything special other than telling Citrix that there is no modem, it’s a direct connect, and to use the ICA terminal profile.

Using the Citrix MultiLink program, and DOSBox I was able to add an ICA terminal.  On DOSBox I had to specify a modem with an IRQ in the config like this:

serial2=modem irq3 listenport:5001

CML modem settings

In the modem settings I had to set this to Forced connect, otherwise it’ll never see the server.

CML dialup profile

And here is how I ‘called’ the Bochs VM.  And then after ‘dialing’ in Bochs will start up the Citrix VM, and then you’ll get the simple Login prompt.  Login and you’ll get pselect.

Logging in to Pselect

Pselect the the text based UI tool to get around your OS/2 sessions.  It’s a little cumbersome at first, but once you get used to it, it’s just like OS/2 1.0 … Or Multiuser 1.0 for that matter, nothing really changed, except you can start MS-DOS Sessions now.

MS-DOS over the serial port

And yes, you can run Qbasic.  But you can’t do anything graphical. Not even DooM.  Although after loading the VDPMI device driver, DooM v1.1 will run, but then it’ll give you this fun error:

No graphics over the serial line

And that is where I’m going to have to leave this adventure for now.

 

As requested, PCem v11 with networking

via SLiRP
via SLiRP

injecting networking was no more difficult than it was in version 10.  It’s only a few changes to pc.c, if you look at the USENETWORKING define you’ll see them.  The best notes are on the forum.

I haven’t changed or improved anything it still requires manual configuration.

Downloads are available on my site as pcem_v11_networking.7z.  You’ll have to defeat the password protection, as always.  I included the source, it ought to be trivial to rebuild.

*For anyone using an old version the ‘nvr’ directory is missing, so PC-em is unable to create new non volatile ram save files, meaning you always loose your BIOS settings.  Sorry I missed that one.

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!

 

Zork on the IBM Mainframe (VM/370 CMS) it lives!

There we have it, after a LOT of fighting the emulators, missing bits, LOTS of help the hercules-os380 mailing list, and the EXCEPTIONAL of one Paul Edwards, and it’s running.

It seems to be Dungeon version 1.2C

read news
US NEWS & DUNGEON REPORT
01-MAR-81 Late Dungeon Edition
This is a version of Zork on VM/370

The problems with it are:
-Lack of an endgame.
-Simple parser (no compound sentences).
-Numerous bugs and spelling errors.
But so what.

If you encounter problems or find logic, spelling, or usage bugs,
keep them to yourself.

>

It’s a little odd playing zork on a mainframe…

Zork on the Mainframe?

Ok, I know this title 99% of the time is a ‘oh whatever’ as most people seem to have confused mini’s with mainframes… PDP-10’s, PDP-11’s, VAX’s (even the massive 11/780), were all minicomputers…

But I came across this post, which just mentions in passing that there was a port of dungeon (zork) to the IBM Mainframe…

And rescued via the internet archive, is Melinda Varian’s home page, which includes…. Dungeon in VMARC format…

The sad thing is that I can barely remember logging on to TSO, using ISPF, and getting out… I was so bad with the system that I’d use an empty file as a template, as copying files was easy, but creating a file on the host took me a whole day.

I vaguely recall using this IND$ thing to transfer files, but I don’t know what you need exactly to facilitate it…

So I’ve downloaded hercules/380 along with the VM370 SixPack and… remembered that I don’t… remember much, let alone enough to actually operate VM/370.

I tried passing VMARC files through PC ARC, and got.. nothing, I even manually byteswapped the files to get nothing.

Oh well I’m at an impass, but maybe some mainframe dude will see this one day, and take a peek.

Oh it’s the end of 2010, welcome to 2011.

—-edit
I got it to run on VM/370 CMS.

IBM 370 emulation on MS-DOS!

Where there is some flap going on in the Hercules mainframe emulation package, which caught my eye… I was wondering what other mainframe emulators are out there for the PC?

Sadly the answer is not a heck of a lot… There is sim390, which is geared to running the MUSIC/SP operating system, however the author died a few years ago, and it seems that there will not be any more releases, nor any source release.

There is also this old program, PC/370. And it provides an environment much like DOSBox, in that it traps and emulates MVS OS calls, and executes mainframe code on your PC!

PC/370 is old though, the last version was released around 1988! However it’ll run on dosbox just fine, and FAST too! I was clocking over 6million operations a second on one of the benchmarks!

While also looking around at PC/370, I came across this site, which includes a full PDF copy of the book “Mainframe Assembler Programming”. Special thanks goes to Bill Qualls for making this great resource available!

A special note, if you try to unzip the pc370.zip file, it’s so old that there is some encoding method not 100% supported by a bunch of modern unzip programs.. You may need to unzip with real pkzip.

A neat feature of PC/370 is that you can use the PC graphic modes… like the simple demo plot XY…

PC/370 plot XY
PC/370 plot XY

Anyways, that’s about it!