What is the assembly language command STOP and how/when should it be used ?
This stops the CPU & turns off the display until a button is pressed. In addition, STOP can be used to toggle CPU speed on the GBC. If a game is idle for 5 minutes or longer you should possibly consider using STOP to stop the CPU & turn off the display to conserve power. Everything is restored after a STOP just by pressing a button. If you use STOP for conversing power you should also consider disabling sound (reset bit 7 of NR52) as the sound circuits seem to draw the most amount of power. The value in register P1 ($ff00) determines which buttons will terminate the STOP condition. These values are as follows and apply to both the GB & GBC: $00 – Any button will terminate STOP. $10 – Only A, B, Select, or Start will terminate STOP. $20 – Only the direction buttons will terminate STOP. $30 – No button will terminate STOP.