Reinfestation
(hennhaus: Hard Baud)

(Originally published May 15, 1997)

Reinfestation

‘Way back when I used to program with some regularity — it was that or actually do work at the magazine — I came up with a ditty I entitled ‘Blort!’ First written as a text-character arcade game in 6502 assembler, I later re-wrote it for the IBM using the then-high-resolution 640×200 graphics screen. Both versions were published in the magazine, and — adding a scrolling title page — I plunked the thing onto CompuServe (this was over a decade ago) as a five-dollar shareware game. Several thousand people downloaded it — CompuServe’s file area counted downloads — five of whom sent cheques. These once-negotiable anomalies are stuffed in a box, somewhere; I’m notoriously bad at cashing cheques.

One day I booted the thing — I’d gotten quite good at popping the aliens from the sky — and noted with some surprise that cursor characters were peppering the text in the instruction screens and the score. I hadn’t changed the code; the problem was a recent addition I’d made to my system: the screen driver ANSI.SYS. It occurred to me then that, as ANSI.SYS was usually used concomitantly with terminal programs, most of the people who downloaded ‘Blort!’ saw not the crisp, clean game I’d written, but rather a cursor-blighted nightmare.

Had I had the screen driver installed when I’d programmed ‘Blort!,’ the problem would have been noted and corrected before I wrote the article for Computing Now!. Rather than using the BIOS and DOS write-to-screen routines, I would have instead written the text directly to screen memory. And if pigs had wings . . .

Though I was certain the program was free of internal bugs when I plunked it onto CompuServe, interactions with screen drivers had never occurred to me. Put bluntly, I had jumped the gun.

Two other gun-jumpers are in the news of late: Intel and Microsoft. Whereas ‘Blort!’ was a one-man show with a few hundred lines of code, these organizations’ products are the result of teams of technicians and programmers — transistors and lines of code numbering in the millions. That bugs pop up under these circumstances should come as no surprise.

About three years ago or so, a fairly obscure bug was noted in Intel’s Pentium chip. Though the likelihood that the bug would bring systems to a crashing halt was slim, it wasn’t inconceivable: Intel chose to recall tens of thousands of their flagship chip and replace them with a corrected version.

If you close your eyes you can feel it: déjà-vu.

Four days before the company was to launch its peppy Pentium-II, a bug was found in the Pentium Pro — a chip that had been in the marketplace to much consumer satisfaction for a year and a half. The bug is also inherent in the new Pentium-II. As bugs go, it’s fairly minor; Intel calls it the ‘Flag Erratum’ because flag bits aren’t properly set when an out-of-range 16- or 32-bit floating point number is sent down the pipes for integer conversion. Range-checking is standard operating procedure in programming. It’s unusual to use a chip’s facility to accomplish this; programmers tend to code the routines themselves, or leave it up to compilers.

Intel currently has no plans to recall its affected Pentiums, but has posted a detailed analysis and coding workaround suggestions at its site, as well as quotations from software companies who’ve tested their products with the Pentium Pro and Pentium-II.

Déjà-vu? Gesundheit. Another bug — the fourth thus far, if memory serves — was uncovered in the Windows 95/NT versions of Internet Explorer versions 3.0x and 4.0. This particular peculiarity won’t affect you unless you’ve also installed Microsoft Office on your system. PowerPoint, a graphics presentation package comprising part of Microsoft Office, can export its productions to the Web. When a PowerPoint link is clicked online, PowerPoint boots automatically on the user’s machine . . . and the user’s files and system are apparently subsequently open to compromise. Microsoft’s present ‘fix’ for this is a pop-up warning. See their site for details.

For no good reason — I’d left Computing Now! by then — I rewrote ‘Blort!’ once again, this time for 256-colour VGA. If I ever get back to it and polish it up, I’ll release it as freeware; knowing my luck, it’ll look like a chimpanzee coded it if the user has installed any program I can’t afford.

Sites Noted Above:

Intel’s Flag Erratum (www.intel.com/design/news/flag/tech.htm)

IE’s Latest Bug (www.microsoft.com/ie/security/powerpoint.htm)

. . .
Copyright © 1997, 2006 by John Rudzinski. Note the date the column was originally published; any links contained therein are probably outdated.
. . .

Related videos and reading:
Debugging Microsoft .NET 2.0 Applications (Pro-Developer) Assembly Language for Intel-Based Computers (4th Edition) Build Your Own Flight Sim in C++: Programming a 3d Flight Simulator Using Oop