We already tried using a variable. In that example, I built a Lego V-8 style motor. Pressing joystick button 0 one time starts it. I wanted the next button 0 press to stop it. As Dean said, it didn't work using the variable method because of (we think) timing issues. It works fine in walkie-talkie style mode (Dan that's just like the code you and I made ahead of Maker Faire) where "IF NOT BUTTON? 0 [TTO "(port number) OFF] and it also works fine if I have button 1 turn it off. But our attempts to have button 0 turn it on, change a variable to represent that, then check the variable again upon the next button press and turn it off it the variable = 1 just didn't work reliably. The motor stuttered and * sometimes * turned off. Sometimes it worked reliably for a few minutes and then wouldn't work at all. Another place where I need to check motor status (port on/off status) is for the steering rack. As in a real car, the steering has a mechanical limit. Imagine if you had superhero strength: you could keep turning the steering wheel at its limit and you'd break some component. In the Lego model, if a kid holds the joystick to one side after that limit is reached, then either the Lego pieces start coming apart or the motor could burn out. So I put the optical sensor there. When the sensor is blocked, it turns off the steering rack port. Kind of ingenious right? :) But it doesn't work because the program does not know which master to obey -- the joystick telling it to spin the steering motor or the sensor telling it to stop! I tried some code saying if the sensor is true and the motor is true then turn off the port, but couldn't get that to work. There is chance it was my code at that point, not the logic. All these problems could be avoided if I had a simple way to check a port status. "Hey I see a button was pressed? Is the port on? Okay, turn it off. Oh was it off? Okay, turn it on." Evan Koblentz, director Vintage Computer Federation A 501(c)3 educational non-profit http://www.vcfed.org