What is the assembly language command HALT used for ?
This stops the CPU until an interrupt occurs. Nintendo recommends using this command in your main game loop in order to save battery power while the CPU has nothing else to do. Nintendo also recommends that you put a NOP after HALT commands. This reason for this is that strange things will occur if you accidently try to do a HALT while interrupts are disabled. A single-byte instruction immediately following HALT will get executed twice if interrupts are disabled. If the instruction following HALT is a multi-byte instruction then the game could hang or registers could get scrambled.