Page 1 of 1

What is the poke to turn a C128 to 2MHz in C64 mode?

Posted: Thu Dec 02, 2004 10:26 am
by Boray
/Anders

Posted: Thu Dec 02, 2004 12:04 pm
by carlsson
POKE 53296,PEEK(53296) OR 1 : REM $D030

However, since the other chips are not 2 MHz compliant, I think the screen will go blank and the I/O ports will not work until switching back to 1 MHz.

Posted: Fri Dec 03, 2004 5:24 am
by Boray
Great! Thanks!

/Anders

Posted: Fri Dec 03, 2004 6:02 am
by Bacon
carlsson wrote:However, since the other chips are not 2 MHz compliant, I think the screen will go blank and the I/O ports will not work until switching back to 1 MHz.
True, but if you're programming in assembly, you can set up raster interrupt routines that switches to 2MHz at when the raster beam reaches the bottom border, and back to 1MHz when it reaches the start of the screen. Should give you the equivalent of 1.5MHz or so.

Try out Elite 128 (a version of the classic game Elite modified to run on a 128 in 64 mode) to see the difference in speed when this technique is used. It can be switched between 1MHz and 2MHz in-game, so it's easy to see the effect on the vector graphics animation.

Posted: Fri Dec 03, 2004 7:33 am
by carlsson
Yep. Of course it is useful, only that Boray should not expect to get twice the speed on everything in C64 mode.

Posted: Fri Dec 03, 2004 9:50 am
by Boray
It didn't work in basic! It works in ML in 64 mode and in basic in 128 mode (and of course probably in ML in 128 mode), but the moment you do that poke in basic in 64 mode, then everything stops! Any idea why?

/Anders

Posted: Wed Dec 15, 2004 4:59 am
by idrougge
Bacon wrote:True, but if you're programming in assembly, you can set up raster interrupt routines that switches to 2MHz at when the raster beam reaches the bottom border, and back to 1MHz when it reaches the start of the screen. Should give you the equivalent of 1.5MHz or so.
Isn't that much like how the Plus/4 and C16 work?