After years, I’ve finished a long in-depth write-up about an interesting piece of history – the SGI IrisVision 3D accelerator from 1990. It was a scaled-down version of the graphics board set from the SGI Personal IRIS and was intended for PC compatibles (16-bit AT bus) and PS/2 computers (MCA).
The whole thing started when IBM licensed the graphics hardware and the IRIS GL 3D API for their IBM RS/6000 UNIX workstations. Although the IrisVision was not very successful (like all 3D accelerators of the era), it is cool that IRIS GL programs could run under DOS.
At the end of the article, there is a video showing the card in action in a high-end IBM PS/2 Model 70 with a 25-MHz Intel 386 and 387.
Thanks to friends of mine, I was able to get two working parallel-port ZIP drives from Iomega. My father used to use these during the 1990s as ZIP disks were popular in offices in Czech Republic. He later switched to an internal ZIP drive connected to IDE when his parallel-port external one died and used it for another 10 years.
I have a few systems where it is not possible to add a network controller so I though that this would be a good device for faster data transfers (compared to a null-modem cable or diskettes) or accessing data larger than the internal hard drives.
It works just fine. The only drawback is that you usually need a 486 system to leverage full speed of the external drive. My 386 laptops do not support the ECP/EPP protocols on the parallel port, so the access speed is significantly limited (150KB/s?). Anyway, it is still convenient enough for running DOS programs straight from the external drive. I am surprised how nice driver support Iomega provided for DOS and Windows 9x. There is even a “guest” driver in a form of a single exe file – just run it and you can immediately access the drive using a newly assigned drive letter.
I recently mentioned PCMCIA linear memory cards (both SRAM and flash) that existed before PCMCIA controllers started to support IO devices and ATA. I used such an SRAM card in my Olivetti Quaderno subnotebook instead of its failed hard drive. Quaderno boots DOS from the internal ROM, loads a driver to support SRAM and allows using it as an additional drive. However, there were also laptops that supported booting from PCMCIA cards, and I am surprised that this feature was not uncommon.
Certain 386/486 laptops with Phoenix BIOS have “PCMCIA” in the boot device list (in addition to “hard drive” and “floppy drive”). These support just linear flash/SRAM cards and let you boot DOS out of the card mapped as A:. Everything works just fine and you don’t need to load any PCMCIA driver. ATA PCMCIA and CompactFlash drives are not supported here – they are ignored by the BIOS module.
The laptop with AMI BIOS could have an optional “PCMCIA Boot Function” module. Once it was enabled and a card was inserted, the system booted from PCMCIA and mapped the card again as A:. However, the support was flaky – just good enough to load a proper PCMCIA driver during OS boot.
Laptops from large brands (like Toshiba) mostly didn’t support this feature. ThinkPads were an exception (486 and maybe also early Pentium ones). According to some owners, they even supported booting from ATA/CF cards. However, ThinkPads as well as the laptops with Phoenix and AMI software did not provide a driver-less access to PCMCIA cards if a user booted from a different device. It seems that there is only one known laptop that supported this – MiTAC 4022.
Although mounting remote HDDs over a serial cable to my Olivetti Quaderno was a nice solution, it was not very fast. I wanted to add persistent storage using a PCMCIA card, but Quaderno has just PCMCIA 1.0. I used to work a lot with PCMCIA, but it was always the newer standard (2.0) typical for 386/486 laptops. PCMCIA 1.0 does not support IO devices (so no ethernet cards) or CompactFlash cards (as they are IO cards in the ATA mode). PCMCIA 1.0 can work only with linear memory mapped cards. For linear flash cards, there were two incompatible standards (FTL and MS FFS). SRAM cards had just a single standard. In addition to all of this, simpler devices (industrial, embedded) required attribute memory on the card in order to work at all (fortunately, this laptop supports full Card Services and does not need it).
I took a 4MB PCMCIA SRAM expansion from my Amiga 600 and put it in Quaderno. The ROMDOS drive contains a Microsoft program called MEMCARD.exe (very similar to FDISK.exe, but for early PCMCIA cards), so I used it to format the card, rebooted the machine and got 4MB of persistent storage (the SRAM card has a battery to retain the data even after removing the card from the computer).
These early PCMCIA cards don’t work in Windows out of the box. However, there is already a DOS driver included in Windows 9x. You just need to add two lines in the config.sys and you can use the SRAM card in a “more modern vintage computer” (it still allows you to use the slot with other cards and use hot-plug features). Btw these direct mapped SRAM cards have one big advantage – they are super-fast.
I know it’s almost 30 years late, but I finally understood, how these old PCMCIA devices work…
You might think that the machine is useless without a working HDD and no floppy drive, but that is not true. Quaderno has a small bootable “ROMDOS” drive with basic system files, COMMAND.COM, a RAMDISK driver (up to 320KB of EMS memory can be used and you still have full 640KB of conventional memory) and Interlink software. This drive is interesting, because it acts like a read-write one. You can edit config.sys and autoexec.bat (the changes are there even after shutdown, if the CMOS battery is ok or AC is connected). You can even copy files there, but if it’s more than a few KB, the system will crash hard (requiring you to reinitialize the ROMDOS).
With Interlink, you can mount remote HDDs over a serial port. I used it to run VC (Volkov Commander) to edit the config.sys (no EDIT.COM in ROMDOS) and enable the RAMDISK driver. After this, I had my small but fast local storage (non-persistent) and everything bigger was started directly out of the remote HDD from another computer. This is a good way to test the computer before fixing the HDD or installing a flash/SRAM card in PCMCIA 1.0.
SimCity 2000 running on DECpc 325SLC (both from 1993) – This 25-MHz 386SL laptop was available with a color passive-matrix screen and thanks to its Western Digital graphics chip (512kB video RAM) it could handle 256 colors in a resolution of 640×480 (required by the game).
Not bad for a laptop that cost only about $2,100 when released.
I took this photo while working on the MS QuickBasic version of our benchmark (previously written in C and Assembly). The goal was to compare speed of different languages and compilers. This required me to relearn BASIC so I always needed to see online help, my BASIC code and the original C code on a single screen. Switching a screen into the VGA 80×50-character mode is invaluable in these situations.
Regarding the results: I tested all versions of our benchmark, which is mostly about integer performance and memory access (similar to compiling and XML parsing), on this IBM PS/2 P70 with a 20-MHz 386 (DX). Interpreted QuickBasic 4.5 version was used as a baseline (1x). These are the speed-ups:
This is a sound card designed and built by David (a friend of mine who does most of hardware repairs here on my tumblr) in the early 90s. He was a 15-16 years old high school student when he created this thing. It’s a custom design with 12-bit DAC, DMA support and connections for mono out and mono in. He was forced to use an 8-bit ISA bus because 16-bit AT prototyping card PCBs were not available in Czechoslovakia stores at the time (not long after the Velvet Revolution). There was also a problem to get necessary parts for stereo output.
The sound card is not compatible with any standard, so he wrote a program to playback wave sounds and created a “driver” for MODPLAY to playback tracker music. His reason to make his own sound card was simple – 8-bit Sound Blasters had worse sound quality and 16-bit sound cards were too expensive for him.
He still has one of the assembled cards, a prototyping board, all technical drawings and a WordPerfect document describing the design and operation of the card.
My Vienna 286 (1987) has finally got a monochrome MDA monitor so I can put back the original graphics card (ATI Graphic Solution rev 3). This first ATI chip (CW16800-A) has functions necessary to drive CGA and MDA/Hercules modes, so you can connect both types of monitors although the card is very small. In fact, I was thinking that it was something much newer than the rest of the system but that was not true. ATI implemented most of the circuits in a big GAL (Gate Array Logic, maybe that’s why they were called Array Technologies, Inc.) which allowed them to make the card very compact.
I’ve started with MCGA graphics in 1989 and then with SVGA graphics in 1990. I had never had an opportunity to play with Hercules graphics modes, so I was extremely curious. Using high-resolution text-mode applications in an MDA mode (IBM Monochrome Display Adapter) is a pleasure on this long-persistence screen. Especially when you consider that the same experience was possible since day one with IBM 5150 PC in 1981.
Hercules Graphics Adapter (HGC) used almost the same signal timing as MDA and added a graphics mode where each pixel (720×348) could be changed independently. This allowed business applications to use high-resolution monochrome graphics (black/white) and the card became quite popular (ATI was not the only company making HGC clones).
HGC mode is not the best choice for gaming. Although a lot of games supported the HGC mode, they usually used a simple hack with CGA data. These were the typical approaches:
Prince of Persia: 320×200 CGA graphics is horizontally stretched to 640 pixels where each two adjacent pixels are used for dithering (4 shades -> 2 shades). There is no vertical expansion used in the game. The developers just put the 200-row graphics in the center of the 348-row screen.
Stunts improved the approach used in Prince of Persia. There is always a black row after two standard rows, so the screen is expanded to 300 rows. I’m surprised that it doesn’t look bad at all on the real CRT.
F-15 Strike Eagle tries to expand the graphics to the whole screen area. The vertical expansion is done by doubling every second row.
Microsoft Flight Simulator 3.0 looks great because it works with vector graphics. Thus, it can use the full HGC resolution. The result is better than with CGA with exception of the 16-color composite CGA output.
A friend of mine found an early 286 computer from the 80s in his garage. It was built in 1987 in Austria and then sold to an engineering school in socialistic Czechoslovakia for an incredible amount of money. The system contains 8-MHz Intel 80286 & 80287, a 1.5MB RAM expansion card, a Hercules clone (the first ever PC graphics chip from ATI) and a 30-MB Seagate hard drive for the ST-506 interface. We were not sure if it worked after decades in garage but to our surprise, we were able to boot. The system was fully working once we set up CMOS variables.
A few notes:
Modern computers with USB floppy drives are still usable for creating and testing DOS boot floppies without a need for emulators
The Czech “old computing” community is very generous. We forgot to take a PS/2-DIN adaptor and didn’t want to go back to Prague for one (two hours of driving) so I wrote a message on Facebook and got a keyboard (with mechanical switches) for free from a person living in a city near us.
Copying a whole 30-MB disk drive over a 115 kb/s serial port is faster than copying modern drives over USB 3.0
Booting to DOS prompt takes only 12 seconds (including BIOS)
I had to find a generic BIOS setup utility, because the early Phoenix BIOS didn’t have it built-in. GSETUP31.EXE was a solution. Check this for good DOS stuff (more info in 00_index.txt).