So how does it fare? I thought I’d take the old Wolf4GW, and compile it with this toolset. The first hurdle I hit was this fun feature:
The C++ compiler now treats warning W737, implicit conversion of pointers to integral types of same size, as an error.
Which is an integral part of wl_menu.cpp . So this was somewhat problematic, until I just commented out that block, and while I was expecting no working keyboard, I’m able to play, and load/save games…. Even the boss key works.
So with the W737 taken care of, I have to say this thing compiles FAST. Incredibly FAST. If for some reason you have to build 16bit or 32bit anything, you should look at a 64bit tool chain, well assuming you have a 64bit computer by now.
If anyone want’s to build their own Wolf4GW with the newer OpenWatcom, my source drop is here.
As promised in a post about Floppy Disk Emulators, here is a review of HxC Floppy Disk Emulator. I ordered it from Lotharek via eBay. Initially stuck in Polish post made it just before the weekend! This made my Christmas gift as I had a lot of fun playing with it. The unit comes with two front panel stickers, one grey and one black to match your equipment type. Quite nice touch. I choose grey as most of my units are of this color. I have to say the LCD screen makes a modern touch to an old 286 machine!
Initially I have stumbled upon a lot of issues. Floppy disks are not easy as it seems. No wonder I had so much trouble with the real ones. I spent a lot of time experimenting with ID jumpers and correct BIOS settings. The unit only worked on ID3A but I can probably attribute it to a weird machine. Then I had problems converting my raw images to HFE format. The main project developer helped me a lot on their forums.
Once I got a grip how to do it semi correctly I was able to torture the machine with bunch of operating systems it has never seen before. Let’s go directly to the screenshots!
This pretty much concludes operating systems for 286. If you have more let me know! I will try 386/486 operating systems in a separate post.
So how does HxC works for an end user? You store floppy disk images in a special format called HFE as files on an SD card. HFE files can be made by a virtual floppy disk emulator + rawrite, reading and imaging in an existing floppy, or converting existing floppy images. The list of supported disk images is quite impressive. The conversion however sometimes fails. It detects a wrong format and you have to change file extension or it completely screws things up making 64 “sides” to a floppy disk. Most if not all these have been fixed in the latest beta version of software, but you need to know about it.
When you insert the SD card to the emulator it will read the file list and allow you to switch between different floppy drives on the fly. Interestingly you can mix and match different floppy disk types on the same SD card. So you can have bunch of 3.5″ or 5.25″ disk in different files. Each HFE file contains specific settings for the emulator including the floppy interface type. The operating systems I’ve tried above ranged from 360k, 720k, 1.2MB and 1.44MB images stored on the same SD card. However changing floppy disk type in the BIOS was necessary for the images of different format to load correctly.
One extremely interesting feature is a host control software, that let’s you manage the floppy disks from inside the machine where HxC is attached. Sort of like VMware tools. The software is available for Atari, Amiga and Amstrad CPC. Unfortunately not for PC so I could not test at this time.
Because of the pain with formats, errors in conversions and confusion about some settings I can only give it 8 out of 10 for ease of use. So let’s conclude:
Quality of hardware: excellent, LCD panel with menu is invaluable!
Software: OK with improving tendency in the beta version
User manual: OK but could be better
Compatibility: excellent! (see above)
Ease of use: excellent once you get grip on things
Value for money: excellent!
Total: very very good!
If you have a large collection of floppy disk images or you maintain a bunch of old machines that rely on floppy disks to work – get HxC quickly. It may save your life.
Updates: Venix/86 and ELKS, Tried OS/2 V1.0 and 640 KB RAM was not enough to boot.
The 386 is perhaps one of the top ten things that has changed our world, along with 4.3BSD .
The 386 microprocessor was the first CPU by Intel that was single sourced. This means that Intel, and only Intel would fabricate the 386 processor. Before this time, Intel had licensed their processors to other companies (Siemens, AMD, Harris, IBM etc) So that if there was some kind of production issue at Intel other companies could manufacture 8086,80186s and 80286s. However this all changed with the 386, as Intel stopped renewing these agreements with other companies (IBM had a license that included the 386, although they were slow in making their own), so now Intel was in charge of its destiny.
The 386 brought three major changes onto the then champion processor the 286. The first being a 32bit processor where it could handle larger data sizes than the 16bit 286 & 8086. The 386 also included a larger memory model, the so called “flat mode” where it could directly address 4GB of combined code+data, while the 286 could address 1GB it was limited to 64kb segments. Lastly the 386 introduced hardware virtualization, the “v86” mode where the 386 could emulate multiple 8086 processors, allowing people to have multiple ‘virtual machines’ on the desktop.
At the time the only consumer grade 32bit processor was the hybrid 32/16 68000 from Motorola. The 68000 could work with 32bit data, but it was restricted to a 16bit data bus, and only could address 24bits of RAM (16 megabytes). The 68000 however did not include any kind of memory management unit (MMU) making things like porting UNIX improbable (The SUN-1 workstation included a custom MMU). Because of the open nature of the IBM PC, clone manufacturers were able to leapfrog IBM, and release 386 based machines before IBM got around to releasing the PS/2 model 80. It was this that effectively brought 32bit computing to the masses with the Compaq Deskpro.
The 8086 processor could address 1MB of RAM, with its 20bit address bus. However to preserve some compatibility with the 8080 processor it was decided that the 8086 (and 8088) CPUs would work with 64kb segments. This became a massive headache for years as you could not easily contain more than 64kb of data at a time as you would exceed a segment. Compiler vendors made some workarounds via the large & huge memory models, but porting a program from a 32bit minicomputer (VAX) would prove difficult if it addressed large amounts of memory, and would require a rewrite. The 286 increased the addressable memory to 16MB, and included a limited MMU, which enabled an address space of 1GB. However the 286 was flawed in that again the 286 could only work in 64kb segments, and in order to work with large amounts of memory, the processor had to be shifted to protected mode. However in protected mode, you couldn’t (easily) switch back to real mode. This needlessly delayed the adoption of protected mode environments, as you would then lose access to the sizable, and growing, library of MS-DOS programs. Although workarounds were in place for things like OS/2 and DOS Extenders, they were hacks and couldn’t fix the fundamental 64kb issue. The 386 built upon the 286’s foundation and included a flat memory model where it could address all 4GB of addressable memory in a single segment. This meant that you could now use massive amounts of data on a consumer grade machine.
For a while the only 32bit environments were Xenix and MS-DOS via DOS Extenders this proved to be a huge liability and effectively stagnated the industry for a long while. The 286 was a massive determent. Making things worse was IBMs insistence that the new OS/2 be able to run on the 286, while Microsoft wanted to create OS/2 to run on the 386, and ignore the IBM AT all together. Basically the 286 was created with the assumption that the 8086 wouldn’t be anywhere near as popular as it was.
With the ability to address large amounts of RAM programs only seen on minicomputers and mainframes were finding their way to the microcomputer such as AutoCAD, Oracle, Links 386 Pro, and of course many in house programs where departments now wouldn’t have to pay to run on then ‘big’ minicomputers. Combined with the 386’s MMU it was also possible to use more memory than was available in the computer, also known as virtual memory. The 386 made this transparent to the program, only the 32bit environment needed to handle the swapping.
Finally the last big feature of the 386 was v86 mode. V86 mode in short is a hardware virtualization platform where the 386 can emulate multiple 8086 processors in hardware. Each virtual machine can get its own isolated memory space, virtual hardware. Effectively 8086 programs (such as MS-DOS) can run unaltered inside of v86 mode, with the added benefit of being able to run more than one at a time. Windows/386 lead the charge into this new world of virtual machines for the end user. Before this point, the only wide scale virtual machine environment was the IBM 370 mainframe which could also create virtual mainframes within itself allowing groups to share a single mainframe, but run incompatible software platforms all at the same time.
Thanks to its capabilities the 386 also brought UNIX to the end user. First with Xenix, then Microport SYSV, and with the removal of AT&T code BSD was able to be released on the 386 via 386 BSD (and later BSDi’s BSD/OS). During this timeframe the research OS, Minix was extended by Bruce Evans to be able to use some of the 386’s features which then gave rise to Linux.
Thanks to cheap commodity based 32bit computers, and the GNU projects development tools (binutils, gcc, bash) people could then finally realize GNU’s dream of bringing a free and open UNIX like operating system to the masses.
Needless to say, a lot has changed since 1991, and Linux now moving beyond the 386 processor is no surprise. The rapid adoption of 64bit computing via AMDs extensions, and the new forthcoming 64bit ARM processors do signal the eventuality that one day Linux will even drop support for 32bit processors… Although I wouldn’t expect that for another 20 years. Even Intel has ceased manufacturing the 386 processor in 2007.
So it is now time to say good bye to the 386 processor. At the same time thanks to full software emulation, you will never truly be dead. And as always you can check out Linux’s early versions.
Well I know this is a limited topic, and my testing is anything but .. thorough.
But for some strange reason I’ve been trying to run OS/2 1.1 under VirtualBOX on Windows, and OS/2 crashes in under a minute all the freaking time. It really is quite annoying. Now I wonder if it is because my Windows PC has an 8 core AMD Processor?
Now when I run VirtualBOX (all the same latest version) under OS X, Intel it works fine!
Now what I don’t get is that under OS X with Intel Xeon CPUs I’ve been running for over an hour now, without issue!
As for settings, remember to add a floppy controller, remove the IDE CDROM, and remove the sound & networking! I’m using 8MB of ram, but the glorious 80286 could go up to 16MB of RAM… Even though its virtual address space was 1GB!
I don’t know if anyone has any real insight into this whole AMD vs Intel thing, but from this super minimal testing it seems to me the Intel CPU is the way to go.
Also I don’t know why OS/2 decided to go with some greenscreen EGA.. It is kind of neat in a throwback kind of way, but nonetheless very odd. I’d have preferred colour EGA but I guess you can’t win them all.
I still remember when Windows 3.1 was announced, and there was all the excitement in our programming class as Windows 3.1 was going to change everything. One kid had already gotten it on launch and was all excited as it supported more resources, had better fonts for printing, and included multimedia support! The teacher was all excited about it too, as at the time everyone loved Windows 3.0 but only if it could do more in terms of being able to run more reliably, and support more things at once.
Later, I found out later that this lucky kid had a 386 with 8MB of ram, a full MIDI setup and VGA graphics, which of course blew away my glorious 80286-16 with 1MB of ram, a 20MB hard disk (with stacker!), and CGA. Needless to say wing commander was actually playable on his computer.
There was no denying it, Windows 3.0 had started the shift from an exclusively MS-DOS world, in which everyone was hoping and searching for a graphical way out of, to the world of Windows we know today. Windows 3.0 established the beached, and Windows 3.1 basically won the war.
Visually Windows 3.0 and 3.1 look very similar, but Windows 3.1 builds on Windows 3.0’s success and adds in some very important technologies, not limited to:
The only ‘down’ side that I was aware of is that Windows 3.1 dropped support for IBM PC/XT’s. You needed an 80286 processor as Windows 3.1 ran in protected mode, which at the time it only shut out one person that I knew of. However he was just a new motherboard away from being able to run Windows 3.1 . Which is another point against OS/2 as Windows 3.1 used the PC BIOS for almost all hardware access, even a 286 with mostly XT guts would work, but sadly even XT’s with Intel inboard 386’s were not supported, however AT’s with inboard 386’s were. Even Microsoft MACH 20 card owners were restricted to Windows 3.0 standard mode (after some extensive updates). Also was there ever a special version of OS/2, like how the box claims?
While many of these things seem obvious now, back then this was a big thing to include so many technologies into Windows, and the more compelling the technology people were starting to replace their MS-DOS applications with windows ones, and the ‘dream’ of spending more and more time in Windows was starting to happen. Although for many of us this ‘dream’ was a freaking nightmare as more applications would install and overwrite system libraries, and end up with massive system instabilities. Not to mention the DLL hell that many of us still face, as even side-by-side and .net only save us from some things, even though nothing is ever perfect.
Windows 3.1 also saw the PC world transition from 16bit to 32bit with the shift of users from 80286 based computers to 80386 and 80486 based machines. With the split from IBM with OS/2 2.0, Microsoft was pressed to keep Windows 3.1 relevant to the 32bit crowd, and there was plenty of addons for Windows 3.1 to keep things going. Namely:
Video for Windows
I don’t think Winmem32 ever took off, as it really was just a way to allocate larger memory segments, I’m almost positive that Watcom’s Windows Extender was more popular. Naturally these predate the ever popular Win32s, which I’ve covered before. WING was the fast video for games that I’ve covered once more again, with WinDoom. But I’ll just state it again, that Win32s was very important for bringing the whole ‘internet’ experience to mere users as almost everything that was TCP/IP based was 32bit for the ‘rest of the world’ and Win32s brought a taste of real 32bit computing to the masses, esp for people using Mosiac and Netscape.
Winvideo was Microsoft’s answer to the ever popular Quicktime. Not to mention this add on was to solidify Windows 3.1 as a multimedia powerhouse. Microsoft still to this day has the test avi’s available for download here, And thanks to the University of British Columbia, you can download the Video for Windows Runtime here.
Needless to say the open standard of how the Winsock DLL should work helped standardize internet applications early, esp while there were multiple competing stacks for both MS-DOS and Windows. Ultimatley when Microsoft wrote their own it pretty much took over everything, but seeing a chance to sell another version of Windows “Windows 3.11 for workgroups” was later released, which could be extended with MS’s TCP/IP. At the end there even was a version of IE 5 for Windows 3.1, that I remember being as somewhat poor, and even NT 3.51 users were pushed into that direction. Not to mention it had a tendency to not want to install on machines with more than 16MB of ram. I suppose the good thing is that IE 5 (probably 3 & 4 as well) came with PPP dialers, which was good enough for the majority of users. Microsoft even made its improved Media player 5 (beta 2), and Net Show players available for 3.1, although I’ve never used them. “Good” IE releases didn’t come until 95/NT 4.0 anyways, the retrofitted ones were just unstable and lacking.
ODBC was a major selling feature in the world of databases, as now you could write uniform code to access data from all kinds of data sources. Imagine if you had old dbase files, and a SQL database, it would be a major pain to tie them together. However programs like Access which used ODBC could quickly and easily talk to multiple data sources, and create data reporting and entry systems. This is how the business world got hooked on Access & Visual Basic. ODBC typically came with either database programs, or with database driver disks, like the one for SQL Server.
While Windows was becoming more and more useful, users were going insane, clamoring for a full 32bit version, which led us down the ‘short’ road to Chicago, which was originally expected some time in 1993, but instead didn’t ship until August of 1995. Windows NT 3.1 was another contender, but again it didn’t ship until March of 1993, and it was far too resource hungry for anything serious. This left a gap for OS/2 to fill, and around the shipping time of Windows 3.1 was OS/2 2.0 which only included a runtime version of Windows 3.0 . Lots of people feel that the additional features to 3.0 could have been delivered via a patch, but the 3.1 release was to purposely make OS/2 2.0 obsolete right after it had been released. Even OS/2 2.1 didn’t ship until May of 1993, although it was always locked into a race with Microsoft as various add-ons would either break OS/2 for Windows requiring updates to OS/2 or even sometimes entire new releases (Warp 3.0 for Win32s for example..)
What also made Windows 3.1 popular was the so called “Microsoft Tax” where Microsoft would sell to OEM’s copies of MS-DOS and Windows 3.1 at an incredibly low price with the condition that they resell them with *EVERY* PC that they sold. This of course was annoying to UNIX users, even NT users as they all had copies of MS-DOS & Windows 3.1 that they never needed, nor wanted. But this strategy was pretty successful at locking out not only OS/2 from being preloaded & configured on systems, but pretty much any hope of competition. Many people attempted to sue, and only Digital Research managed to get anything out of it, as there excellent DR-DOS product was effectively barred from the market (very few end users ever change operating systems, they typically buy new PC’s its always been that way, upgrade sales lag way behind new sales), but by the time the courts had done what they were going to do the damage had been done.
Another typical bundle was Microsoft Office. Microsoft took advantage of Lotus’s failure in the market place to deliver a graphical application (The OS/2 switch doesn’t matter, Lotus still released a text mode app in the OS/2 heyday), combined with 1-2-3’s heft price tag, Microsoft made Word, Excel, PowerPoint and their Mail product available for less than the price of 1-2-3 with a new PC.
In the end it all comes down to developers. Something that some companies still struggle with, esp those that positioned themselves in an OS/2 type fix. If your native tools are too expensive, too restricted, nobody will write for you, esp if you can run other peoples applications better than the native platform. And this was not only the cause of the ‘why bother’ with OS/2 native applications, but even today you can see it with RIM and their QNX based products that run Android applications. Combine this with other low cost compilers from Borland and it really is no wonder why everyone was programming for Windows, esp the cost of Windows was typically cheaper than licensing a single seat for any DOS Extender that required royalties. How much of this was due to Microsoft brilliance, or the competition being bent on short term greed, it is hard to say, but IBM wasn’t taking out full page ads trying to court developers with cheap access, but rather you had to phone them up, go through some IVR’s and be ready to charge a few thousand dollars for the honor of developing for OS/2. I still remember Watcom C/C++ 10.0 being the cheapest way to build for everything, its a shame in a way that their SQL product was so good, as Sybase snapped up Watcom, and pretty much killed the languages, but thankfully not before open sourcing them.
With high resolution, and color depth displays, audio cards, multimedia games like “Monty Python’s quest for the holy grail” started to appear for Windows, as programmers could now concentrate on content, as Windows provided the layer for audio/video abstraction. While some games worked great others did not as there was a performance gap from raw MS-DOS to Windows, but tech like WinG was closing the gap. Not to mention the device driver patch hell was being shifted from the game devs to the hardware vendors, although that race still goes on, as even today Steam still combats older drivers and tries to hand hold users into updating them.
Even the horrible shell saw some competition for improvement, there was the Workplace shell for Windows 3.1, and of course BOB. And boy were people so happy with BOB. Not to mention thinking that this was just some great tech, it made its way into Office, to be forever remembered as Clippy in Office 97, who was tuned down in 2000 and killed in Office 2003. Its funny how future looking movies always go on about these animated seemingly helpful digital assistants, and yet in the real world they usually are the first thing turned off. I even remember the whole “Chrysler New Yorker’ debacle back in the day. Even in the show room it just went endlessly on about the door being a jar. Maybe its just HAL-9000 backlash.
So what can be said of Windows 3.1? It still lingers in 32bit versions of Windows 7 (Wow! or Windows on windows), and it basically tipped the world into the Win-centric place we are today, along with the office everywhere mentality. I can’t even imagine giving someone a 1-2-3 wks file, let alone a Word Perfect document, as I’m pretty sure there are no translators anymore. Oddly enough Win64 based OS’s can’t directly run Win16 based programs, there is always emulation.
Continuing from the previous post, let’s get started with Microsoft OS/2 1.1
I added a 500MB hard disk to VirtualBOX, booted up an OS/2 1.1 boot diskette I had created that allows me to fdisk/format and do basic backup/restores, esp since OS/2 1.0 cannot install on a large (lol) 500MB disk.
So with the restore done, I’m booting up the Microsoft OS/2 1.1c Nokia OEM release.
The dates for this release is 2/20/1989. I would have imagined that the original version of OS/2 1.1 shipped in 1988, as mentioned by the copyright. Apparently the Microsoft versions of OS/2 1.0 & 1.1 included support for the 386 method of switching from protected mode to real mode, while the IBM versions only included the 286 triple fault method. I’d imagine the Microsoft ones would include both, but the only way to verify is to install on a 286. Something that I simply do not have.
This style of the OS/2 installer will be with us for quite some time. it’s not until Warp did the look and feel start to change.
It’s a little worrisome that OS/2 is always looking for a way to format your drive. OS/2 1.1 only supports the FAT filesystem at this point, and formatting defeats the point of the upgrade.
The setup program renames my config.sys , autoexec.bat and startup.cmd files. Obviously things are now different from OS/2 1.0
And at this point it’s just an install disk to prepare the disk, then we reboot off the hard disk to continue the install, in text mode.
We just feed some disks to the OS, then we get to select a mouse.
Thankfully the PS/2 option is in here! Very exciting stuff.
For some reason things like serial ports are optional, so after letting it load the serial driver, we are all set to go!
Ok, let’s experience some real OS/2 power!
What is cool is that my printer choice has been preserved.
And the C drive has been cleaned up… some. Although most of this stuff is backups of my OS/2 1.0 stuff, along with some portion of the OS/2 1.0 install in os2.000 .. I just deleted all of this crap.
Now to see OS/2 1.1 in action…
So again you are limited to 12 sessions in OS/2, along with the single DOS Box. However notice that the windowed icons (the black ones) and the full screen are independent. This was also another annoyance in OS/2, that you cannot switch an application from full to windowed at will, and some text mode stuff is compiled as full screen so launching it from a window will jump you fullscreen. OS/2 also finally included a game, a breakout clone, with various neat pictures. I like the Seattle one myself.
And a text editor! A nice one too. Also I don’t know if it’s VirtualBOX but the UI is VERY sluggish, the worst thing you can do is open a command window and have it scroll.
But all in all, OS/2 1.1 was certainly a step in the right direction, and really what people would start to expect in an OS. The GUI really is needed to get a feel for multitasking. It’s a shame that ‘paging’ the real mode box out to disk and going between multiple sessions could have been done…. But I imagine they tried it, and it failed badly. Or the paging got out of hand.. Hard to say.
As a slight detour I’ve also setup IBM OS/2 1.1 Extended Edition, which you can see my quick review here.
And for the few people who care, here is what 1.1 in Mono EGA mode looked like:
The other things that Microsoft OS/2 is really lacking is online documentation, and a way to shut down the OS from the desktop. It’s still control-alt-delete.
I had purchased this a while back on ebay for $15, and used it occasionally but ever anything that involved. Mostly because it’s dreadfully slow on an 030, and ever since the intel cpu has won out, it’s not all that needed in this day in age. But at the same time, its interesting to check out various emulators through the ages.
Installing it was way easier under Basillisk II, then running it is more smooth under mini vmac. Mostly because of it’s 68881 emulation, and also it just seems faster.
Running MSD shows that it does in fact emulate a 80286 processor!
So doing the only natural thing, I installed Microsoft C 5.1 but configured it only for OS/2 development, then used a old 286 dos extender I found, and blamo, it works!
The sad thing, is that it seems the 80386 & 80486 stuff was RISC (MIPS/Alpha/PowerPC) or 80486 based only. I’m pretty sure the version of SoftPC for NeXTSTEP did a 80386… I’d love a real copy of that, but I know there was a demo out there somewhere.
Anyways for it’s age, SoftPC seems to be about as annoying as any 286 computer was at the time. And as a bonus running emulators under emulators makes it about as slow as a 286..…
I nearly forgot to mention this… But a friend had some issues with an ancient 486 box running Xenix 286 and made a disk image of it. The box finally died, and he lost his copy with some disk accident (double trouble!) but he did send me a copy to see if it’d work under Qemu… At the time it didn’t.
So while I was transferring his disk image back to him, and looking around on ebay for a 286 board, I figured I’d try Qemu 0.14 to see how badly it failed…
I can’t say I’ve thoughtfully tested it, but it seems pretty workable.. I have no idea about what editions work, and which do not… I have no idea if this version knows it’s on a 386 and uses a 386 friendly method to switch to protected mode, or what.. Then again it being Xenix, it won’t need to constantly pop between real & protected modes, unlike, say Windows 3.0 / windows 3.1 or OS/2 1.x ..