So, after a few days of codng, I made a program that works on TI-83 + (and probably higher, I don't know) and generates cube scrambles (as per WCA (World Cube Association) notation) and times your cube solves. It is only 286 bytes, and so is very compact. It doesn't do non-3x3 scrambles yet, but that's in progress for v2.0.
It is not available for download yet, and has yet to be forum-optimized, but here is the program:
(Note: → is represented as [->] , small E is represented as slash e slash , ≤ is represented as [<=] and ≠ is represented as [!=] )
prgmTITIMER1
//Generates notation string
"F'F F2B'BB2R'R R2L'LL2U'UU2D'DD2 -> Str1
//Asks what character you want around the border, and if length is not 1, repeats the action
Lbl 0
Prompt Str3
If 1!=length(Str3
Goto 0
//Draws border
For(X,1,16
For(Y,1,8
If X=1 or X=16 or Y=1 or Y=8
Output(Y,X,Str3
End:End
//Starts a Loop for E, which at the end of the code will put the final time at the 'E'th part of L₆
DelVarDFor(E,1,/e/9
//Generates scramble
For(C,2,5
2->B
//This part of scramble generating doesn't use a For( loop because that will mean gaps in the scramble, see near end of While loop
While B<=14
randInt(1,18->A
//This part prevents redundancy
If int(A/6)=int(D/6
Goto 1
Output(C,B,sub(Str1,2A-1,2
A->D
B+2->B
Lbl 1
End:End
Output(7,2,"Press [Enter].
Pause
For(C,2,7
Output(C,2," //14 spaces
End
Output(4,9,0
Pause
//Actual timer (the timing system isn't entirely accurate, but I wanted to save information on the increment level, and it's only off by ~1 second every 5 minutes.)
For(A,1,/e/9,.022
Output(4,5,A
If getKey: Goto 2
End
Lbl 2
A->L₆(E
Pause
End