MCC Linux 0.97 & dungeon

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!!!!

Again special thanks to Jiong Zhao’s most excellent oldlinux.org.

With that said, I’ve also just gotten a note from Artyom that his SunOS patches have been sent upstream to Qemu, so hopefully they’ll be downstream any day!

Found an interesting picture….

Stan45

Recognize this guy?

While looking around for a picture of an IBM XT, I came across this great picture of Stanley Kubrick with a pre production XT! I found this on the great blog kubrickonia.

I guess it’s slightly interesting that Kubrick was into IBM’s, Arthur C Clarke was into his Kaypro.

Arthur C Clarke

Arthur C Clarke

And Douglas Adams was all about the Macintosh.(which it seems he even had one handy to use as a prop for this Infocom picture……)

Douglas Adams and Steve Meretzky

Douglas Adams and Steve Meretzky

Ok, I know it’s not the most exciting update, but hey, I’m still unpacking stuff like crazy.

My background on emulation

Before I get into anything specific, let me first talk about how I got started with PC on PC emulation. Back when I was in high school, we had these Unisys ICON workstations that ran QNX, and all of these QNX programs. However, even back then, the tide of available software was turning towards the IBM PC. The ICON workstation was an outgrowth of an Ontario program from the early 1980’s when the micro market was best described as being a ‘wild west’ with no clear winner.

But as the 1980’s progressed, it became more and clearer with IBM’s entry into this market, that they were going to set the next standard. So that meant everyone having an 8086 compatible CPU, and being able to run the MS-DOS operating system. The ICON workstations had the 80186 CPU which was compatible, and with a software emulator they could run MS-DOS on the workstation, and run programs like DBase, Lotus 1-2-3, Turbo Pascal etc etc…

The big plus for us, was that the school was able to preserve their investment in hardware, while being able to run programs for both QNX & MS-DOS, there by increasing the flexibility of what was available.

In college where we had Macintosh computers, again there was this great program from Connectix called Virtual PC, which allowed the Mac’s to run MS-DOS and Windows programs on the Motorola 68040 CPU. Additionally in the PC labs, we were able to run ARDI’s Executor which would let the Intel 80486 based machines run Macintosh programs.

Another program we used in college was the great and open program pcemu, by David Hedley which would allow SUN SPARC workstations to run MS-DOS programs. This was a big deal at the time, as programs like Word Perfect, while available for UNIX workstations, cost significantly more then the MS-DOS version, while this free program would allow you to run the MS-DOS version, saving money.

Going forward, it was around 2002 when Connectix took their Macintosh product Virtual PC, and ported it to Microsoft Windows. Now at first glance emulating an IBM PC on an IBM PC seems quite silly, as you can run in emulation what you can run natively. However the first big ‘win’ for this was OS/2.

Now you have to remember that while OS/2 didn’t achieve big success in the home market, nor in the commercial space, where it did get big penetration was places like banks, and various payroll companies. And with these large programs written to run on OS/2 it was starting to become more problematic with newer machines and device drivers as now nobody was releasing new network card & video card drivers for OS/2.

Now this is where emulation’s strong point comes into play, since it emulates the hardware, all emulated machines have the same BIOS, motherboard IO chips, video cards, and network adapters.
Suddenly everyone could run their legacy OS/2 applications on the newest computers, without worrying about device drivers, memory setup, and hard disk sizes (OS/2 can’t use the new giant hard disks available on the market).

The best part of course, is that as PC’s get faster, the emulation only gets faster, giving you a far more responsive emulated session. In fact, with the megahertz ‘race’ to 1Ghz and beyond, it got so fast that by 2004 with the acquisition of Connectix by Microsoft, it was now possible to run more then on Virtual PC at a time on Virtual PC 2004.

This allowed me to take a VERY complicated internet firewall setup that previously required 6 firewalls, and consolidated it to a single computer saving space & energy, not to mention they ran faster because of the faster CPU, and I was able to effectively upgrade the infrastructure for the cost of one of the firewalls.

This was a very big deal at the time, as our data room was over crowded as it was, and had major electrical shortfalls.

After the firewall success, we entered into the beta program for Virtual Server. This would allow us to run our Virtual PC virtual machines in a SMP (multiple CPU machine) environment, and take advantage of the extra CPU’s. The first machine we bought to test this on was a Compaq Proliant 6500 with four Pentium III 1Ghz CPU’s, which let us easily move all the firewalls to it, and also migrate our development Oracle 7/Windows NT 4.0 machines into this single server.

Not only were we able to save power, space and electricity but now we were running on enterprise grade hardware, which gave us things like redundant power supplies, and a RAID disk setup.

In the intervening years, a friend pointed out this new program called Qemu, which unlike BOCHS a full PC emulator, provided a dynamic translator and thusly could run significantly faster then a full emulator. The other big plus was that Qemu was open source free software! So you could easily modify the source for any specific requirement you had, from simple things like changing IO/IRQ ports in the emulated hardware, to even adding in extra serial ports etc…

Now the cool thing about Qemu, is that they started adding more and more different CPU types, allowing you to originally run and test various Linux distributions out for things like the MIPS, PowerPC, SPARC, ARM and x64 all on the x86 platform. And as the emulation improved, it was then possible to run Solaris, Windows NT (MIPS) and other OS’s for different CPU types.

The next big step for our emulation strategy was to purchase the VMWare ESX product allowing us to create a cluster of servers with shared storage, allowing us to move virtual machines between nodes while they were running. This gave us a more robust environment as now even a multiple node failure no longer meant that we would lose the emulated machines, and also that we could take nodes offline if they were to require hardware maintenance to be performed. We then took all of our production servers, and migrated them into VMWare, then shipped the cluster to a collocation facility where we were able to decommission our data room at a great savings, and able to now leverage a commercial data center, and all the benefits of things like location and giant batteries, and security that we just simply could not justify on our own.

The best part, in my opinion is that as CPU technology improved we could simply replace the processing nodes in this cluster with newer machines, and now all of our servers across the board would see an improvement in their speed, and throughput.

As QEMU improved there was a push for a kernel module for Linux systems that would allow x86 on x86 OS’s to run a near native speeds. Eventually the module was reworked into a full kernel subsystem on Linux called KVM (Kernel Virtual Machine).

This has allowed Qemu to progress to the point, that with distributions likes Proxmox/VE it can provide similar functionality to VMWare’s ESX platform, at a tremendous cost savings as it is free software.

Much like the proprietary UNIX market has fallen to Linux, I feel that the emulation space too will become dominated by free solutions that enable the ultimate in flexibility, and allow for greater customer control, then any proprietary solution.

One of those days….

 

I wonder if the NOVA's were that bad...?

I wonder if the NOVA’s were that bad…?

I came across this great picture from a brochure promoting an operating environment called Dimension for various NOVA machines, back in the 1970s.

And there is plenty more to be found in the Computer History Museum.

And speaking of the CHM, they have posted the source code for Quick Draw & MacPaint.

I haven’t even tried to see what is involved to build them, but I’m sure it’s good fun for someone out there.

I’m sure this is day late & dollar short, but I think it’s kinda interesting!

Pov-ray & Fortran

A long time ago, I had this 286 computer, and I thought it was so cool because I had a 287XL math co-processor. It basically was a 80387 math chip that was wedged to work on a 80286 computer. And it being the early 1990’s the one thing everyone loved to do was to show off rendering stuff.

I’ve long since lost all my stuff, but I do remember the ‘switch’ from DKBTrace to POV-Ray.

I did lament at the time that doing a good ‘quality’ render could take a week or more… And power in South Florida being a ‘best effort service’ wasn’t very forgiving for those of us on FPL. But it was still very neat and exciting for the time. OpenGL kind of killed that as now you could do ‘good enough’ stuff in realtime!

Anyways I was googling around checking out pageranks (I know so shameless) when I came across Kurt Bangert’s page, that included a POV-Ray scene with some fun filled Fortran stuff.

So after downloading the files, and the latest POV-Ray (3.7), and fixing a trivial line I was able to render the above picture in 16 minutes!!

I figured by now POV-Ray could support SMP, and found the new beta version, that supports SMP! So on my HP laptop with 4 cores, and hyperthreading enabled, I was able to render the scene in 1.5 minutes in 1024×768 resolution!!

The Fortran printout is the ‘adventure’ cave game, along with another variation of the snoopy Fortran calendar.

Duke 3d & the Build engine

Well I was looking at some stuff on old games, and naturally everyone always did love Duke Nukem 3D!

Now what is really cool, is that that the guy behind the build engine, Ken Silverman released the source to the ‘build’ engine, but also some of the builds of build as it progressed.

Ken is a big fan of QuickBasic, so to compile his earliest version, you’ll need QuickBasic 4.5, or the QBasic that came with MS-DOS 5.0 and above.

Download picrot4.bas, and run it through basic, and you’ll get this:

Qbasic 'Build'

Qbasic ‘Build’

Under some emulators (Virtual PC) you’ll get a corrupted screen at first, hit any of the arrow keys, and it’ll redraw the screen into what it should look like. Considering the 8kb of basic code includes the engine, and the map it’s pretty snazzy!

You can find the timeline, and other versions of the build engine as it progressed on Ken’s web page.

As the engine improved, and was ported into C, it only got better! Then it was sold and licensed out, which gave rise to great games like 3D Realms Duke Nukem!

Notice the similarities?

Notice the similarities?

After the build engine went open, 3D realms followed up, in releasing their extensive modifications to build which can be found here.

In the off chance you don’t have the game, you can still get the shareware version of it from 3D Realms here, and of course the full version on Good Old Games for $5.99 USD.

With the release of Build & Duke 3D, it’s only natural that they shed their humble MS-DOS beginnings and found their way onto Windows as full Win32 applications taking advantage of the hardware. Thanks to the work of Ken & Jonathon. You can find the results on Jonathon Fowler’s page here.

I suppose later I’ll have to see if it’ll build with the win64 tools… It’s be neat for a 64bit version of Duke!

Microsoft Word 2007/2010

I just found out about this….. For those of us OLD people, we saw the new version of Office and said…

Dude, where is my screen??

Dude, where is my screen??

But I just found out on TWiT that by simply hitting CTRL+F1 you can get rid of that ribbon that blocks 1/3rd of your visible screen area…!

Nice clean screen!

Nice clean screen!

There isn’t that great! The ribbon is out of the way! Now you can see what the hell you are doing. Honestly why is this stuff hidden? Or is it the death of printed documentation that leads to this stuff. Then again MS Word 2.0 installs in under 15MB. lol

Some Java & Javascript

Well I found this program, Dioscuri quite interesting… It’s a PC emulator written in JAVA!

It’s very interesting in how it’s trying to be accurate hardware wise, although holding down keys tends to cause it to crash…. 😐

Maybe a later version will work, but for what it’s worth, here is the title screen from Battle Tech.

battletech

The best game of 1988!

Naturally, any machine with a good JVM ought to be able to run this… But I’ve always found Java to be such a moving target….

Another thing I came across was this fantastic i8080 emulator coded in javascript. And it’s setup to play space invaders!

On Chrome, or Firefox it should perform at a reasonable rate. Internet explorer users are in the cold, as IE doesn’t have a javascript canvas. Sorry. But here is what you are missing out on.

javascript space invaders

Complete with i8080 emulator in Javascirpt!

 

This is some really neat stuff (to me) anyways.

MS-DOS Player…

You’ll probably need to run this through translate.google.com, this this site, by Takeda Toshiya, has this nifty utility that’ll run some MS-DOS programs at the command prompt from Windows x64!

It’s best geared towards command line utilities, but it seems to work fine for little (old) stuff.. nothing too fancy though the CPU core is taken from MAME’s i86 (which looks heavily influenced from pcemu).

Today is a slow internet day.