dos

“SuperCGA” and ATI Graphics Solution and GEM Desktop

  • by

8bit guy published a video about SuperCGA cards, which reminded me that this was a topic a recently dug into. I’ve never really worked with CGA/EGA monitors. When we had a computer at home for the first time in 1989, it was an IBM PS/2 Model 20 borrowed from dad’s office. That computer already had an on-board graphics chip that worked with VGA monitors. One year later, my family decided to buy our own computer. It was a 286 clone with an SVGA graphics card and an SVGA monitor able to show 1024×768 (interlaced though).

During the Bytefest (a vintage computer show in Czech Republic), one of the computers I brought there was an early Vienna 286. A friend of mine promised that he would have brought an EGA monitor, so I could try a card I bought just for this purpose – a Trident 8800CS (512KB). This Trident has both VGA and RGBI/TTL (CGA/EGA) outputs and can be switched to act like different IBM graphics chips. Sadly, the Trident card was ignoring the switches and always used VGA timing. It sent the signal always to both outputs but my EGA monitor was not able to sync 640×480 with 31kHz h-sync (as expected). We brought an oscilloscope, even made some modifications to the card, but nothing helped. When I asked in some groups, the only answer I got was that somebody tried the same thing on his Trident 8800CS with the same result.

Anyway, I also had the original ATI Graphics Solution card that was sold with the computer somewhere in 1987, so at least I had something else to play with. This is a very neat card. It has 64KB of video RAM and supports both CGA and Hercules modes. As I shown in the past, it even supports CGA modes on Hercules/MDA monitors using clever timing tricks. The card was used in the Hercules mode for the whole its life as the machine served in an electrical engineering lab for designing electric circuits. This was finally the time for me to switch it into the native CGA mode.

Seeing the CGA modes was not so interesting for me. However, the card supports also non-standard modes that can utilize the whole memory which is four times of what the IBM CGA has. The obvious choice was something that supports Plantronics ColorPlus which ATI supported like many other CGA-clone vendors. Yes, I tried Planet-X3 and Space Quest 3 in 320×200 with 16 colors. However, Planet-X3 is a modern game, and the Space Quest 3 uses a modern video driver to support this card (the original game did not have it). I was more interested in productivity apps. After seeing that GEM Desktop (sort of a Windows competitor) provides support for ColorPlus, I installed the whole bundle.

At the beginning, everything looked just like with CGA – black & white only. This was because the desktop environment does not use more colors there. On the other side, if I moved the mouse fast enough, it was visible that sometimes the cursor was ping instead of black for a moment. Thus, I knew that we were actually in the 4-color mode. After installing office programs, I was finally able to see all four colors in 640×200. Quickly after that I realized that among desktop accessories, there is a calculator that uses magenta as a background color. Anyway, I am happy that I also tried these office/productivity apps. From my point of view, they are gimmick. They look like they support everything but when you try to do something, you get the feeling that they were designed more to present the functionality of the desktop environment.

The ColorPlus had just 32KB of video RAM and my ATI Graphics Solution has 64KB, so it should be able to drive 640×200 in full 16 colors. I’ve checked the user guide for the card and indeed this mode was mentioned there. ATI manual says that there is support for it in AutoCAD, PC Paintbrush+, Lotus 1-2-3, Symphony and Framework II. I installed the PC Paintbrush+ as a bitmap editor can benefit the most from such a mode. The support for this card was built in the software so no extra drivers were needed. After selecting the mode, I was able to get the best out of a CGA 200-line monitor. What I really like, the bundled ATI driver disk contains a small example program to enable this mode (including its source code), so programmers could modify their own programs to get more than what a standard CGA offered.

SGI IrisVision – a $4,995 3D accelerator in 1990

  • by

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).

See the deep dive article here: https://retro.swarm.cz/sgi-irisvision-add-in-3d-accelerator-for-pc-1990/

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.

Iomega ZIP 100 drives

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.

Old laptops booting from PCMCIA

  • by

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.

PCMCIA 1.0, SRAM and linear flash cards

  • by

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…

Olivetti Quaderno PT-XT-20 (1992) – part 2

  • by

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.

DECpc 325SLC & SimCity 2000

  • by

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.

50-line text mode on a gas-plasma screen

  • by

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:

  • Compiled QuickBasic = 3x
  • Borland C++ (8086 instructions) = 15x
  • Borland C++ (386 instructions) = 33x
  • Hand-tuned Assembly (386 protected mode) = 70x
  • Metaware High C/C++ (386 protected mode) = 70x

A Sound Card David Made 30 Years Ago

  • by

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.

There is a quick video of the working card: https://www.youtube.com/watch?v=rL8u9aRfaK8

ATI Graphics Solution rev 3 and monochrome ADI DM-14 (1985-6)

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.