LINUX.IE, website of the Irish Linux Users' Group
Tux rules!

   
Home
New Users
Articles
Download
Projects
Community
Vendors

  Print Version
Email to...
 
Archives:


planetILUG

Recent News

News Archive


Join the
ILUG
on FaceBook


Join the
ILUG
on LinkedIn


Join the
ILUG SETI
Group



















 
 :: Mailing Lists

[ILUG] [ot] C64

[ILUG] [ot] C64

Martin Feeney martin at tuatha.org
Fri Nov 12 13:07:23 GMT 1999


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.




More information about the ILUG mailing list
Read this without the formatting.
                                                                                                    

 

Hosted by HEAnet


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!
RSS Version
Powered by Dell