• Please review our updated Terms and Rules here

Poking the C-64/VIC-20 inappropriately.

A4000Bear

Experienced Member
Joined
Dec 30, 2010
Messages
111
Location
Taradale, VIC, Australia
Back in the early 1980s, I stumbled across a poke that crashed my breadbin C-64 in a very spectacular fashion. It changed the screen and border colours randomly, sometimes put corrupt characters on the screen, then there was a shower of scrolling exclamation marks for several seconds before they either petered out or the machine froze. Each time I tried the poke, I got slightly different results. Unfortunately I don't remember what I actually poked in my machine, and I have been unable to find that poke again. I have very vague memories that the memory location I poked started with a 7.

I recently tried to find that poke again, without success, however I did find a few 'fun' pokes that crash the computer in a rather impressive manner. I thought I would share them here. Poking anything but the default value of 131 into memory location 770 will mess up the machine, requiring a full reset or power cycle to clear. Some examples are:

Poke 770,103 or 770,115 or 770,118 will give endlessly scrolling jumble of yellow/black PETSCII characters.
Poke 770,120 on a breadbin C-64 will give random scrolling 'garbage'. Repeating the poke after a power cycle will give different garbage. The same poke on a CR version just makes the cursor disappear.
Poke 770,214 and most values up to 770,234 will give random effects, ranging from black screen to jumbled characters and sprites. Often there is a hiss or beep. Repeatedly pressing Run/stop-Restore will change the corrupt effects until eventually the machine locks up totally. It seems a breadbin C-64 gives somewhat 'better', more varied results compared to a CR version.

Poking various values into location 771 also gives similar results, though not as 'fun' as for 770.

Poking the (unexpanded) VIC-20 in inappropriate places can also result in fun effects. I didn't really try it, but it seems adding memory may change some of these effects.

Poke 770,103 or 770,115 or 770,118 gives endlessly scrolling yellow/black jumbled characters, though they look different to the C-64.
Poke 770,105 gives the most fun results. Endless scrolling of random, jumbled characters, with the colour changing periodically.
Poke 770,120 gives similar results, except it does not scroll endlessly. Pressing run/stop-restore will print up a new batch of corruption on the screen each time.
Poke 770,214 and most values up to 770,234 does not give the variety the same poke offers in the C-64. In the VIC, you get a yellow screen and a beep (sometimes a buzz).

Given the different results I get with poke770,120 on breadbin versus CR, I wonder if the differences are due to the PLA? I wonder what happens if a different PLA is used, in particular one of the new PLA replacements? I did try a number of spare original PLAs in my breadbin, but effects seemed to be always identical.

Anyone else have any 'fun' pokes to share?
 
Location 770 is the low byte of the address of the main BASIC program loop. Changing that causes BASIC to go there instead of the normal $a483 (the $83 low byte is the default 131 decimal). Setting it to 120 makes it go to $a478 which calls a string printing routine (with garbage input since it won't be set up before the call). It will call this over and over which continues printing garbage. Not sure if this is helpful (or fun -- my idea of fun is often different than others :) I'm currently manually decoding an old KIM-1 tape recorded in the late 70s using just Audacity and my eyes) but you can dig through this resource to explain what does what as you're poking around. https://www.pagetable.com/c64ref/c64disasm/
 
Back
Top