The LEGO MindStorms remote is a battery-operated, hand-held infrared remote control that can command an RCX to start and stop programs, run motors, and respond to three of the one-byte messages implemented by the standard RCX firmware. Even if the RCX is running a program, the motors can be controlled from the remote. Any motor commands will temporarily override the program's current motor settings. As soon as the RCX receives (or assumes) the "all buttons released" command from the remote the motors will resume their current programmed state, and if no program is running all motors will stop.
The remote has sixteen buttons which can be pressed simultaneously in any combination. Whenever one or more buttons is held down, the remote transmits data packets containing a bit field that indicates the state of all sixteen buttons. After the last button is released, the remote sends one final packet containing all "0" bits to indicate that no buttons are pressed.
The RCX does not acknowledge the remote's command packets, and if it does not receive valid packets continuously, it will assume "all buttons up" after a short interval. The RCX will not recognize the infrared remote protocol until after the factory firmware file (either firm0309.lgo or firm0328.lgo) has been downloaded. It should be noted that some replacement RCX firmwares implement their own interpretation of the buttons on the remote.