In computer jargon, a killer poke is a method of inducing hardware damage (i.e., actual physical, irreversible damage) on a machine and/or its peripherals by the insertion of invalid values, via e.g. BASIC's
POKE command, into a memory-mapped control
register. The term is used especially of various fairly well-known tricks that can
overload the analog electronics in the CRT monitors of computers lacking hardware sanity checking (notable examples being the IBM PC and
Commodore PET; a similar trick is reported having been done to Atari ST displays).
Specific Examples
The Commodore PET
The PET-specific killer poke is uniquely connected to the architecture of that
machine's video rasteriser circuits. In early model PETs, writing a certain value to the memory address of a certain
I/O register made the machine able to display text on the screen much faster. When the
PET range was revamped with updated hardware, it was quickly discovered that performing the old trick on the new hardware led to
disastrous behaviour by the new video chip, causing it to destroy the PET's integrated CRT monitor.
TRS-80 Model III
The TRS-80 Model III had the ability to switch between a 40-character-wide display and an
80-character display. Doing so actuated a relay in the video hardware, and was accomplished by writing to a specific
memory-mapped control register. Programs that repeatedly switched between 40 and 80 character modes at high speed (either on
purpose or accidentally) could permanently damage the video hardware. While this is not a single "killer poke", it demonstrates a
software failure mode that could permanently damage the hardware.
Protecting from this and similar problems
Any system that meets Popek and Goldberg virtualization
requirements can be made immune to any killer poke entirely by software means. The reason is that the VMM is required to intercept all the privileged instructions, which include sensitive and dangerous ones such
as POKE, making it possible to then filter dangerous instances of that instruction.
See also
External links
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)