[ILUG] [ot] C64
Justin Mason
jm at jmason.org
Fri Nov 12 12:43:29 GMT 1999
Thomas Ribbrock said:
> 6510, to be precise. Pretty much the same as 6502, though it had a few
> control lines extra - which were needed for that weird memory management the
> C64 had (anybody remembers $C000? 4K for assembly, well hidden away... ;-) )
Yeah, it had the cool feature of being able to swap out all the
memory-mapped ROM banks, so you got the full 64k to play with. Cool! And
the "disable screen borders" bug was really neat. [1]
Hey Donncha, you should learn i386 assembler; I recently decided to get my
reverse-engineering experience up-to-date from the C64 days. It's good
for a laugh, but I didn't get very good at working with it... however,
the reverse engineering is much easier than it used to be on the C64 ;)
[1] for those who don't know -- the C64 had a bug in the VIC (?) screen
display code. Normally the addressable display area covered about 3/4 of
the screen, but it was possible to increase the border size by 1 character
space at the edges to make scrolling look smooth. Anyway, the bug was
triggered by tweaking this flag bit at exactly the moment when the scan
line was passing through the 1 character space... this caused the VIC chip
to leave out that border entirely!
It was quite easy to do this with the top and bottom borders of the
screen, as the scan lines ran vertically from top to bottom, in the
traditional fashion, so there was plenty of leeway in terms of the timing.
However the left and right borders required some fine-tuned assembly, ie.
NOP NOP NOP (EA EA EA if I recall ;)
--j.
More information about the ILUG
mailing list