On 12 Nov 99, at 12:43, Justin Mason wrote:
> 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... ;-) )
Actually 6510A.
>> 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]
You couldn't swap out page zero and you needed almost 1k for the screen so
it was only 63k, but close enough. What was reasonably nifty was that you
could move the bank that the VIC chip was looking at to up around $C000
onward, swap out the area of rom owned by SID (sound chip) and write a
character set underneath (2k) underneath and flip SID registers back in.
You then point VIC to read the character set from where the SID registers
normally reside and it'll read "under" SID while you can still poke the
SID registers normally to produce sound. With weird tricks like this you
can sort of get more than 64k out of the machine.
> 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.
Except the trick was to turn off the entire screen at the end of the last
scanline before the border and turn it back on again at the start of the
first scanline that was part of the border. This tricks VIC into removing
the border completely. A strange side-effect was that VIC would read a
byte offset from $3FFF from whatever bank it was pointing to and create a
pattern in what used to be the border made solely from the contents of
this byte.
> However the left and right borders required some fine-tuned assembly, ie.
> NOP NOP NOP (EA EA EA if I recall ;)
Yup. Reset the C64 while playing manic miner, poke 16571,234;poke
16572,234;poke 16573,234;sys 16384 : manic miner with infinite lives.
That machine was just so hackable. Most of the hacks were implemented in
a raster interrupt which fiddled with page zero. I once wrote a game for
the C64 using only sprites (multiplexed to have 64 of them) which executed
as a raster interrupt so you could keep typing, clear the screen, do
whatever you want and it would keep going, waiting for input from the
joystick.
Martin.
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!