
How The Commodore 64 Memory Map Worked [video] - lefticus
https://www.youtube.com/watch?v=qibJpjJ0sdM
======
ghshephard
The most frustrating, sincerely upsetting experience I ever had was when I was
about 13 or 14, and encountered the following code: (roughly)

    
    
       10 for x = 53248 to 57343
       20 poke x, peek (x)
       30 next x
    

When I saw this code - it caused physical angst on my part, as it was
_obvious_ that this code did nothing. I knew nothing about memory mapped
ROM/RAM banks at the time, but I quickly learned....

I've never had as much fun programming as I did with that Commodore 64 and the
Programmers reference manual (and all the Compute! secrets/tips books) - it
was the youtube minecraft videos of our time.

~~~
PhasmaFelis
That code you posted immediately struck me as wrong--not real C64 code. It
took me a minute to realize why: it's in lowercase.

(The C64 defaulted to a character set with only capital letters, to leave more
space for graphical characters. There was a mixed-case set available, but no
one ever used it except for word processing and text adventures.)

~~~
Feneric
Although if you did switch to the mixed-case set it would show source code in
lowercase.

~~~
soegaard
If only you had told me twenty years ago.

------
rrauenza
Did the video explain why poking one value, N, resulted in a peek of the value
240+N? Did I miss it? Is it just a property of the memory location on the VIC
chip?

~~~
lefticus
Here, the are spec'd as unused bits returning 1:
[http://www.antimon.org/code/vic2.html](http://www.antimon.org/code/vic2.html)

~~~
rrauenza
Ah, thank you. It appears it is only a 4 bit memory location and the spec says
the unused bits always return 1's.

