` ``If max(X={1,13 -A→A If max(Y={1,8 -B→B`

The 1-2 thingy at the beginning will make A and B start as either 1 or -1, so it will start moving in a random direction, either up or down and either left or right!

]]>` ``ClrHome randInt(2,12→X randInt(2,7→Y 1-2randInt(0,1→A 1-2randInt(0,1→B Repeat K getKey→K If max(X={1,13 A→A If max(Y={1,8 B→B Output(Y,X," X+A→X Y+B→Y Output(Y,X,"TI84 rand(25 End ClrHome`

It displays "TI84" as the logo, but you could change that to say whatever you want. You might have to change the numbers for the borders to make it look right, though. And the "rand(25" makes the calculator wait half a second in between each movement, which you could mess with to make it run faster or slower. ]]>

The way I did it was use the variable A to be the left/right speed and the variable B to be the up/down speed. I used X and Y to keep track of the position of the logo. In a loop I added A to X to get the new X position and B to Y to get the new Y position, then displayed the logo at X and Y. If the X value (or the Y value) ever equaled the position of the border, I first said -X -> X, so the speed became negative and it would "bounce" off the wall and travel the other way. ]]>