Writing to random locations in system memory isn't generally a wise design practice. Unsurprisingly, the game would generate spectacular crashes as a result. A human player would be driving blind and usually crash right away, limiting the scope of system casualties. The AI opponents had no such weakness. The computer would scan immediately in front, to the left, and to the right of its position to determine if it was about to hit a wall and change directions accordingly. So as far as the computer was concerned, system memory looked no different than screen memory. As Marco described it,
We can only speculate what it started doing once it left screen memory, since it obviously would look to find a way to continue going in a direction that was occupied by 0’s. If it became blocked and ran into a “wall” of numbers, it would die. In those spectacular crashes though, it would sometimes be running around very much “alive” until at some point it either overwrote some code being executed with a trail that didn’t make sense, or it would access some memory mapped device that would then cause a crash. But it wasn’t immediate – the AI ran around for a little while out there before it crashed the system.
--
Wow, thanks for this - the imagery here is great.
Back in the day I used to have fun with my TRS-80 by hand-typing in a program to infinitely looping poking a random value into a random memory location. Some of the time the program would stop because it changed the BASIC source code, sometimes it just...stopped. It was just RAM and ROM, I'd disconnect the cassette storage before doing it, so it was harmless.
What I seriously wonder is, just how easy was it to write a virus in the days before protected memory? And by that I mean a virus that could do some pretty horrible things, I'm sure it was possible to destroy a disk or a printer or something by making them do things they should never get up to ...
Was it that before then people simply weren't writing malicious code and nobody even thought about safeguarding against it?
Furthermore, were banks and stuff ever running on OS's without protected memory? Because that ... that would've been awesome in its own little naive way.
Corrupting the OS's memory is rarely a problem. It's corrupting your application's memory that's a major problem, and that's still very easy to do on modern hardware with "modern" development techniques.
People in the finance industry treat C++ like they were abandoned as children in the woods, and C++ brought them to its home, fed them, raised them, and sent them to college. Someone I work with claims that Stroustrup is God.
If you're an exchange or some other data source and you want to compromise a shit-ton of machines, start sending invalid messages to the banks. You will have a botnet in about three nanoseconds.
It was really easy to erase or damage files, completely destroy the data on a disk and, on an Apple II, cause misalignment of the Disk II disk by repeatedly crashing the head against the drive armature. On a PC with an CGA/MDA you could damage the monitor power supply by putting the CRTC in a mode incompatible with the video input. Legend says you could make smoke go out of an MDA monitor.
At that time, it was also much harder for viruses to propagate - they would have to infect files and disks. Also, most IIs were booted from the application floppy and were thus completely stateless: whatever the virus did in the last session would have no effect on the next one.
Comments
from the article:
Writing to random locations in system memory isn't generally a wise design practice. Unsurprisingly, the game would generate spectacular crashes as a result. A human player would be driving blind and usually crash right away, limiting the scope of system casualties. The AI opponents had no such weakness. The computer would scan immediately in front, to the left, and to the right of its position to determine if it was about to hit a wall and change directions accordingly. So as far as the computer was concerned, system memory looked no different than screen memory. As Marco described it,
We can only speculate what it started doing once it left screen memory, since it obviously would look to find a way to continue going in a direction that was occupied by 0’s. If it became blocked and ran into a “wall” of numbers, it would die. In those spectacular crashes though, it would sometimes be running around very much “alive” until at some point it either overwrote some code being executed with a trail that didn’t make sense, or it would access some memory mapped device that would then cause a crash. But it wasn’t immediate – the AI ran around for a little while out there before it crashed the system.
-- Wow, thanks for this - the imagery here is great.
Real life core wars. Quite cool.
http://en.wikipedia.org/wiki/Core_War
Back in the day I used to have fun with my TRS-80 by hand-typing in a program to infinitely looping poking a random value into a random memory location. Some of the time the program would stop because it changed the BASIC source code, sometimes it just...stopped. It was just RAM and ROM, I'd disconnect the cassette storage before doing it, so it was harmless.
What I seriously wonder is, just how easy was it to write a virus in the days before protected memory? And by that I mean a virus that could do some pretty horrible things, I'm sure it was possible to destroy a disk or a printer or something by making them do things they should never get up to ...
Was it that before then people simply weren't writing malicious code and nobody even thought about safeguarding against it?
Furthermore, were banks and stuff ever running on OS's without protected memory? Because that ... that would've been awesome in its own little naive way.
Corrupting the OS's memory is rarely a problem. It's corrupting your application's memory that's a major problem, and that's still very easy to do on modern hardware with "modern" development techniques.
People in the finance industry treat C++ like they were abandoned as children in the woods, and C++ brought them to its home, fed them, raised them, and sent them to college. Someone I work with claims that Stroustrup is God.
If you're an exchange or some other data source and you want to compromise a shit-ton of machines, start sending invalid messages to the banks. You will have a botnet in about three nanoseconds.
It was really easy to erase or damage files, completely destroy the data on a disk and, on an Apple II, cause misalignment of the Disk II disk by repeatedly crashing the head against the drive armature. On a PC with an CGA/MDA you could damage the monitor power supply by putting the CRTC in a mode incompatible with the video input. Legend says you could make smoke go out of an MDA monitor.
At that time, it was also much harder for viruses to propagate - they would have to infect files and disks. Also, most IIs were booted from the application floppy and were thus completely stateless: whatever the virus did in the last session would have no effect on the next one.