Meditations on the pause button

Subject: Meditations on the pause button
From: "Aaron" <stella-receiver@xxxxxxxxxxxxxxxxx>
Date: Sun, 5 Sep 2004 02:27:44 +0100 (BST)
Edwin Blink said:
> The pause function is supposed to toggle as soon as the button is
> depressed
> or switchs is toggled(as soon as the bit becomes '0') the timer is there
> to
> see if the bit gets '1' within the timeout period in that case nothing is
> done
> if the bit gets '1' outside the timing period pause function is turned
> off.
> The only problem I can see there is that if the pause button is pressed
> longer
> then the timout period the pause would be for as long as the button is
> held
> down.
> The problem with the B/W switch could be that when it is put in the B/W
> position to pause and then back into COLOR position within the timing
> period
> it
> would remain in pause mode.

Ok, that's better than what I thought you meant.  It would still have a
problem if the 7800's button was held down for longer than the timeout
period though, wouldn't it?.  But... the timeout period could be made a
long time (2-3 seconds?) without much trouble I guess.

Anyway, I had another thought...

Eckhard Stolberg said:
>> Thinking like this isn't the CPU supposed to start with all registeres
>> cleared and can't we just throw out
>> CLD and LDX,$00 to save another 3 bytes ?
>
> I think you are right. But this is only the case on the 2600 where
> the game starts right after power-up. On the 7800 however the BIOS
> is executed first, and that changes the state of the 6502. So, if
> you want your game to work on this console too, it would be better
> to initialize everything that is important for your code. The same
> think is true, if you want to be able to try out your binary on
> a Supercharger or the Cuttle Cart. Here the loader routine is
> executed first before control is handed over to the game.

Could this be used to tell the difference between a 7800 and a 2600?
There could be some startup conditions, like...

x=0
---
Definitely a 2600, use code for a pause switch.

x!=0
----
Possibly a 7800, use code for a pause button - but a switch could still be
used if it's an "abnormal" 2600.

-Aaron

Current Thread