[comp.arch] How did this program burn out two monitors?

willis@violet.berkeley.edu (Willis Johnson) (05/24/88)

I recently compiled a program that is supposed to do graphics on 
a Hercules graphics adapter.  I've used a similar routine before,
and I would have sworn there was nothing wrong with the software.
Maybe the files got corrupted.  When I ran the .exe file, my monitor
made a high-pitched whine, then the power light went off, and a 
crackling noise came out of the back until I pulled the power cord.
Curious about whether this was a coincidence, I took the program
to work and tried it on an extra monitor I had there.  The second 
monitor burned out too!  I thought it was impossible to damage my
monitor and adapter with software.  Does anybody have any ideas 
what caused this?  I'll post the .exe file and source (in C) to 
any brave or curious souls who request them.  

The hardware:
	1st time:  homebrew PC clone with generic Hercules clone card
		   Quimax DM-15 amber monitor.

	2nd time:  Leading Edge Model D, "turbo" with built in
		   Hercules compatible adapter, Quimax DM-14
		   amber monitor (an earlier version of the DM-15).

Neither video adapter was damaged.  Both monitors are DEAD.  

	Willis Johnson
	willis@violet.BERKELEY.EDU
	(415) 548 - 3023

jbn@glacier.STANFORD.EDU (John B. Nagle) (05/24/88)

       This is an old known bug.  You can burn out the IBM monochrome
monitor by stopping the horizontal sweep while keeping everything else
running, and the Hercules card gives you enough control to do this
under software control.  The video chip lets you select the horizontal
and vertical sweep rates independently, and zero rates are possible.
However, the horizontal sweep is used as the oscillator for a switching
power supply, as is typical in TV circuits, and with the sweep rate at
0, DC flows through a coil with high inductance but low resistance,
producing an excessive current that burns out the coil.

       Part of the problem is that the IBM monochrome monitor is a design
lifted from an earlier, pre-PC product line, the IBM Displaywriter, and in
that product, there was no potential vulnerability of this type.

jbn@glacier.STANFORD.EDU (John B. Nagle) (05/24/88)

In article <10244@agate.BERKELEY.EDU> willis@violet.berkeley.edu (Willis Johnson) writes:

>The hardware:
>	1st time:  Quimax DM-15 amber monitor.
>	2nd time:  Quimax DM-14 amber monitor.

     Well, you can't complain it isn't IBM compatible.  Burns up just like
the IBM one.  

					John Nagle

wtm@neoucom.UUCP (Bill Mayhew) (05/24/88)

If you tinker with the registers in the 6845 CRT controller chip on
the video board, you can program in a horizontal scan rate that
will overheat the power supply in the monitor.  The reason being
that a monochrome monitor is designed to only work within a very
narrow range of horizontal frequencies.  The problem seems to come
from accidentally programming a 6845 on a herc display with values
that are appropriate for a CGA monitor.  Such a mistake is pretty
easy to make whilst tinkering with graphics programming and
accidentally using the wrong setup from a library.  Doing herc
graphics with Borland's BGI system seems to be pretty safe, as I
still have my herc monitor intact.

Several people reported that a screen-saver program called
"BURNOUT" fried hercules _boards_, rather than the monitor.  This
surpirses me, but several people were quite emphatic that it was
the board that went south.

--Bill

sleat@ardent.UUCP (Michael Sleator) (05/25/88)

(Apologies if this is excessive detail.)

Typically, the horizontal scan circuit in a video monitor uses a "flyback"
technique in which the horizontal output transistor is turned ON to cause
the beam to sweep from left to right, and turned OFF to allow the magnetic
fields in the yoke and flyback transformer to collapse, quickly returning
the beam to the left edge.  During this time a pulse of, say, 400 to 600
volts appears on the collector of the output transistor.  If, in the middle
of this pulse, you attempt to turn the transistor back on, there will not
be sufficient base drive to saturate the transistor.  The result is extremely
high power dissipation which turns the transistor junction into a puddle of
silicon in a matter of microseconds.  A well designed monitor will not allow
the sync input to change the phase of the horizontal oscillator so abruptly
that this condition can occur.

The moral is that you don't have to set the horizontal frequency to zero
to cause a problem with some monitors.  Simply glitching the horizontal
sync in just the right manner is enough.  In fact, I'm a little skeptical
that turning off horizontal sync could do it.  Most monitors have a horizontal
oscillator that simply free runs in the absence of sync, and even those that
don't seldom have direct coupling to the horizontal output transistor, so
it shouldn't be possible to just turn the transistor on and leave it sitting
there in that state.  After all, if your product (the monitor) self destructs
if it's powered up without drive signals, it's very difficult to even build
it and get it out the door.

Of course, setting that register to 0 in the crt controller chip may in
fact produce a maximum frequency signal, rather than DC, which might wreak
havoc by the mechanism described above.

I vaguely recall rumors of a "letter bomb" program that blew up those silly
Commodore machines with the toy keyboards, way back when.  It zapped the
monitor in precisely this fashion.


				Michael Sleator
				...!uunet!ardent!sleat
				...!hplabs!ardent!sleat

brooks@lll-crg.llnl.gov (Eugene D. Brooks III) (05/25/88)

In article <17460@glacier.STANFORD.EDU> jbn@glacier.UUCP (John B. Nagle) writes:
>       This is an old known bug.  You can burn out the IBM monochrome
>monitor by stopping the horizontal sweep while keeping everything else
>running, and the Hercules card gives you enough control to do this
>under software control.  The video chip lets you select the horizontal
>and vertical sweep rates independently, and zero rates are possible.
>However, the horizontal sweep is used as the oscillator for a switching
>power supply, as is typical in TV circuits, and with the sweep rate at
>0, DC flows through a coil with high inductance but low resistance,
>producing an excessive current that burns out the coil.
This is GREAT, I have been looking for a really good idea in PC viruses,
and THIS IS IT!

wheels@mks.UUCP (Gerry Wheeler) (05/25/88)

In article <366@ardent.UUCP>, sleat@ardent.UUCP (Michael Sleator) writes:
> In fact, I'm a little skeptical that turning off horizontal sync could
> do it.  [...] After all, if your product (the monitor) self destructs if
> it's powered up without drive signals, it's very difficult to even build
> it and get it out the door. 

That's true.  Have you noticed, though, that IBM's monochrome monitor
gets its power directly from the system unit? As soon as you turn off
the computer (and the drive signals) the monitor is turned off too.  I'm
not sure about the period immediately after power on, but I seem to
recall that the BIOS initializes the video hardware tout suite. 

-- 
     Gerry Wheeler                           Phone: (519)884-2251
Mortice Kern Systems Inc.               UUCP: uunet!watmath!mks!wheels
   35 King St. North                             BIX: join mks
Waterloo, Ontario  N2J 2W9                  CompuServe: 73260,1043

larry@sgistl.SGI.COM (Larry Autry) (05/25/88)

In article <10244@agate.BERKELEY.EDU>, willis@violet.berkeley.edu (Willis Johnson) writes:
> I recently compiled a program that is supposed to do graphics on 
> a Hercules graphics adapter.  [portion deleted] When I ran the .exe file, 
> my monitor  made a high-pitched whine, then the power light went off, 
> and a  crackling noise came out of the back until I pulled the power cord.
> 
I heard about this type of trojan a couple of years ago.  I'm glad I
haven't used it though.  

-- 
					Larry Autry
larry@sgistl.sgi.com
       or
{ucbvax,sun,ames,pyramid,decwrl}!sgi!sgistl!larry

haugj@pigs.UUCP (John F. Haugh II) (05/27/88)

In article <10244@agate.BERKELEY.EDU>, willis@violet.berkeley.edu (Willis Johnson) writes:
> I recently compiled a program that is supposed to do graphics on 
> a Hercules graphics adapter.  I've used a similar routine before,
> and I would have sworn there was nothing wrong with the software.
> Maybe the files got corrupted.  When I ran the .exe file, my monitor
> made a high-pitched whine, then the power light went off, and a 
> crackling noise came out of the back until I pulled the power cord.
> Curious about whether this was a coincidence, I took the program
> to work and tried it on an extra monitor I had there.  The second 
> monitor burned out too!  I thought it was impossible to damage my
> monitor and adapter with software.  Does anybody have any ideas 
> what caused this?

it sounds as though your program changed the mode of the display
adapter to one which was incompatible with your monochrome display.
a number of cheap hercules adapters which i have seen also include
a CGA compatible mode, which of course, may also require an RGB
monitor to operate.

as someone who has done this to a monitor, i can assure you that
the possibility of ruining a monitor with software, courtesy of an
over anxious display adapter, is quite real.  you only have a few
seconds, so nailing the power switch is not a viable option.  you
may not have enough time ...

if you are considering buying a new display adapter, i would
strongly recommend purchasing one which did not have software
selectable monitor options, unless there was also a method of
disabling this option.  being able to switch monitors with software
seems like a good way to turn an expensive monitor into an expensive
pile of trash.

- john.
-- 
 The Beach Bum                                 Big "D" Home for Wayward Hackers
 UUCP: ...!killer!rpp386!jfh                          jfh@rpp386.uucp :SMAILERS

 "You are in a twisty little maze of UUCP connections, all alike" -- fortune

jiml@cadnetix.COM (Jim Lewczyk) (05/27/88)

In message <10244@agate.BERKELEY.EDU>, willis@violet.berkeley.edu
(Willis Johnson) reports:

>The second 
>monitor burned out too!  I thought it was impossible to damage my
>monitor and adapter with software.  Does anybody have any ideas 
>what caused this? 

I have heard from my cronies of the existance of the rare 
HCF (Halt -- Catch Fire) instruction in some IBM PCs.  The 
condition, if I remember correctly, was caused by the horizontal 
sync pulses (or was it the vertical?) not being generated either 
because the video adaptor was halted or was never initialized 
(the Halt part).  

Normally, this would not be a problem because the monitors have 
internal oscillators which simply run unsynchronized, but in 
this case the sync pulse to the monitor was stopped in mid pulse,
ie, ON, and the internal oscillator was simply stopped.  The 
drive transistors for the horizontal oscillator are heat sinked, but
even so, they are not designed for DC operation, so they burn out (the 
Catch Fire part).

I would not think this was possible if the monitor makers took the 
minor precaution of AC coupling their sync inputs, but it would appear 
that even this protection went the way of the cost cutters.
 James Lewczyk,  Cadnetix Corp.          Internet: jlew@cadnetix.com
 5775 Flatiron Pkwy, Boulder, CO 80301   UUCP: cadnetix!jlew
                                         {uunet,boulder,nbires}!cadnetix!jlew
"Give me one good reason why I should be rational!" 

jcmorris@mitre-bedford.ARPA (Joseph C. Morris) (05/27/88)

In a recent article willis@violet.berkeley.edu (Willis Johnson) writes:
>                              When I ran the .exe file, my monitor
>made a high-pitched whine, then the power light went off, and a 
>crackling noise came out of the back until I pulled the power cord.

I don't have any experience with the Hercules board, but it's likely
that you clobbered one of the registers which controls the oscillators
which drive the deflection circuits in the monitor.  The anode voltage
(the really high voltage -- above 20KV in color displays) is derived
from the horizontal deflection circuits, so if you scribbled on the
registers which control horizontal drive you could make the circuit
run in a manner which could cause troubles.

A few packages I've seen include warnings in their documentation that you
need to select the proper video driver or you could damage the display.
You would think that the designers would include protection against 
likely damage, but I guess that's too much to ask...

jbn@glacier.STANFORD.EDU (John B. Nagle) (05/29/88)

      As far as I know, this problem only occurs with the IBM Personal Computer
Display (the green screen monochrome monitor) and some overly faithful clones
thereof.  The IBM Personal Computer Display is an old design, lifted from the
IBM Displaywriter product line in the early days of the IBM PC.  The
Displaywriter wasn't user-programmable, and thus not vulnerable to abuse by
user programs.

      There's nothing at all mysterious about this problem.  It's well 
understood, and has been written up in the trade press, although it's been
a while, since this display is old.

					John Nagle

henry@utzoo.uucp (Henry Spencer) (05/29/88)

> if you are considering buying a new display adapter, i would
> strongly recommend purchasing one which did not have software
> selectable monitor options...

Actually, what you really want is a monitor which cannot be blown out by
software misbehavior.  Believe it or not, there are such.  In fact they
are the norm everywhere except in the PC world.  Another wonderful
contribution to humanity by IBM... :-[
-- 
"For perfect safety... sit on a fence|  Henry Spencer @ U of Toronto Zoology
and watch the birds." --Wilbur Wright| {ihnp4,decvax,uunet!mnetor}!utzoo!henry