` ``ZoomSto AxesOff ClrDraw prgmPPGLOGO For(X,1,100) Pt-On(56,31) End ClrDraw Line(7,2,11,2) Line(12,3,12,4) Line(8,3,8,7) Line(9,5,11,5) Line(7,8,9,8) Line(13,8,15,8) Line(14,7,14,6) Pxl-On(4,14) Line(17,4,17,5) Line(19,4,19,5) Line(19,7,19,8) Line(17,8,17,7) Pxl-On(6,18) Line(23,8,22,8) Line(21,7,21,5) Line(22,6,24,6) Pxl-On(5,24) Line(23,4,22,4) Line(26,8,28,8) Line(27,7,27,2) Pxl-On(3,26) Line(31,8,33,8) Line(32,7,32,3) Line(31,2,35,2) Line(36,3,36,4) Line(35,5,33,5) Line(37,8,38,8) Line(38,7,38,2) Pxl-On(2,37) Pxl-On(5,39) Line(40,6,40,8) Line(42,10,43,10) Line(44,9,44,4) Pxl-On(8,43) Line(42,7,42,5) Pxl-On(4,41) Line(48,4,47,4) Pxl-On(5,46) Line(46,6,47,6) Pxl-On(7,48) Line(47,8,46,8) Line(50,8,52,8) Line(51,7,51,6) Pxl-On(4,51) Line(56,8,55,8) Line(54,7,54,5) Line(55,4,56,4) Pxl-On(5,56) Pxl-On(7,56) Text(3,58,"S") Line(62,2,68,2) Line(63,3,64,3) Pxl-On(3,68) Line(63,4,63,7) Line(64,8,67,8) Line(68,6,68,10) Pxl-On(10,67) Line(69,5,66,5) Pxl-On(6,66) Line(71,5,71,7) Line(72,8,73,8) Line(73,7,73,5) Line(73,4,72,4) Line(75,4,75,8) Pxl-On(5,76) Line(77,6,77,8) Pxl-On(5,78) Line(79,4,79,8) Line(82,4,83,4) Pxl-On(5,84) Line(84,6,82,6) Line(81,5,81,7) Line(82,8,83,8) Text(3,86,"S") Line(36,12,36,15) Line(37,14,38,14) Pxl-On(13,38) Line(38,12,37,12) Line(40,12,40,15) Line(41,12,42,12) Pxl-On(13,42) Pxl-On(14,41) Pxl-On(15,42) Line(44,12,44,15) Line(45,15,45,14) Pxl-On(12,45) Line(47,12,48,12) Pxl-On(13,47) Pxl-On(14,48) Line(48,15,47,15) Line(51,12,50,12) Line(50,13,50,15) Line(51,15,51,14) Line(53,12,53,15) Line(54,13,54,14) Line(55,13,55,15) Line(56,12,58,12) Line(57,13,57,15) Line(60,12,61,12) Pxl-On(13,60) Pxl-On(14,61) Line(61,15,60,15) Line(4,18,4,36) Line(5,37,5,17) Line(6,17,6,37) Line(7,36,7,18) Line(8,26,8,27) Line(9,26,9,27) Line(10,18,10,36) Line(11,37,11,17) Line(12,17,12,37) Line(13,36,13,18) Line(16,23,16,36) Line(17,37,17,21) Line(18,37,18,19) Line(19,18,19,36) Line(20,17,20,20) Line(21,17,21,20) Line(21,26,21,27) Line(20,27,20,26) Line(22,18,22,36) Line(23,37,23,19) Line(24,21,24,37) Line(25,36,25,23) Line(28,18,28,36) Line(29,37,29,17) Line(30,17,30,37) Line(31,36,31,18) Line(32,25,32,27) Line(33,28,33,26) Line(34,36,34,18) Line(35,17,35,37) Line(36,37,36,17) Line(37,18,37,36) Line(40,36,40,18) Line(41,17,41,37) Line(42,37,42,17) Line(43,17,43,37) Line(44,37,44,36) Line(44,19,44,17) Line(45,17,45,20) Line(45,29,45,30) Line(45,36,45,37) Line(46,37,46,35) Line(46,31,46,28) Line(46,20,46,17) Line(47,17,47,21) Line(47,28,47,37) Line(48,37,48,28) Line(48,21,48,17) Line(49,18,49,20) Line(49,29,49,36) Line(52,36,52,18) Line(53,17,53,37) Line(54,37,54,17) Line(55,18,55,36) Line(56,25,56,19) Line(57,20,57,26) Line(58,36,58,21) Line(59,22,59,37) Line(60,37,60,22) Line(61,21,61,36) Line(62,26,62,20) Line(63,19,63,25) Line(64,18,64,36) Line(65,37,65,17) Line(66,17,66,37) Line(67,36,67,18) Line(70,23,70,36) Line(71,37,71,21) Line(72,19,72,37) Line(73,36,73,18) Line(74,17,74,20) Line(75,20,75,17) Line(74,26,74,27) Line(75,27,75,26) Line(76,18,76,36) Line(77,37,77,19) Line(78,21,78,37) Line(79,36,79,23) Line(82,18,82,36) Line(83,37,83,17) Line(84,17,84,37) Line(85,36,85,18) Line(86,25,86,27) Line(87,28,87,26) Line(88,18,88,36) Line(89,37,89,17) Line(90,17,90,37) Line(91,36,91,18) Text(39,23,"3-LETTER WORDS") Text(57,81,"v6.0") Repeat G≠0 For(A,1,50) randInt(1,2) End getKey→G Text(51,27,"[Press Enter]") For(A,1,50) randInt(1,2) End getKey→G Text(51,27," " End Lbl M Menu("Hangman Menu ","Play Game",P,"Help",H,"Quit",Q) Lbl H ClrDraw Text(0,30,"Help Menu" Text(6,0,"---------------------------------------------------" Text(10,0,"To begin the game, press any") Text(16,0,"letter key.") Text(24,0,"To quit the game at any time,") Text(30,0,"press the [CLEAR] key. Text(38,0,"To return to the menu, press") Text(44,0,"the [ENTER] key.") Text(51,0,"Support:") Text(57,0,"Ti.PPG.help@gmail.com") Pause Goto M Lbl P Lbl A ClrHome Output(1,1," A B Output(2,1,"C D E Output(3,1,"FGHIJ Output(4,1,"K L M Output(5,1,"NOPQR Output(6,1,"S T U Output(7,1," V W Output(8,1,"X Y Z Output(1,6,"] Output(2,6,"] Output(3,6,"] Output(4,6,"] Output(5,6,"] --- Output(6,6,"] Output(7,6,"] Output(8,6,"] randInt(1,38)→ If =1 Goto 1 If =2 Goto 2 If =3 Goto 3 If =4 Goto 4 If =5 Goto 5 If =6 Goto 6 If =7 Goto 7 If =8 Goto 8 If =9 Goto 9 If =10 Goto 10 If =11 Goto 11 If =12 Goto 12 If =13 Goto 13 If =14 Goto 14 If =15 Goto 15 If =16 Goto 16 If =17 Goto 17 If =18 Goto 18 If =19 Goto 19 If =20 Goto 20 If =21 Goto 21 If =22 Goto 22 If =23 Goto 23 If =24 Goto 24 If =25 Goto 25 If =26 Goto 26 If =27 Goto 27 If =28 Goto 28 If =29 Goto 29 If =30 Goto 30 If =31 Goto 31 If =32 Goto 32 If =33 Goto 33 If =34 Goto 34 If =35 Goto 35 If =36 Goto 36 If =37 Goto 37 If =38 Goto 38 DelVar A DelVar B DelVar C DelVar D DelVar E DelVar F DelVar G DelVar H DelVar I DelVar J DelVar K DelVar L DelVar M DelVar N DelVar O DelVar P DelVar Q DelVar R DelVar S DelVar T DelVar U DelVar V DelVar W DelVar X DelVar Y DelVar Z Lbl 1 1→C 2→A 3→T 0→ Goto 99 Lbl 2 1→B 2→A 3→T 0→ Goto 99 Lbl 3 1→R 2→A 3→T 0→ Goto 99 Lbl 4 1→E 2→M 3→U 0→ Goto 99 Lbl 5 1→D 2→O 3→G 0→ Goto 99 Lbl 6 1→A 2→P 3→E 0→ Goto 99 Lbl 7 4→E 3→L 0→ Goto 99 Lbl 8 1→H 2→E 3→N 0→ Goto 99 Lbl 9 1→A 2→S 3→P 0→ Goto 99 Lbl 10 1→P 2→I 3→G 0→ Goto 99 Lbl 11 1→H 2→O 3→G 0→ Goto 99 Lbl 12 1→E 2→L 3→K 0→ Goto 99 Lbl 13 1→C 2→U 3→B 0→ Goto 99 Lbl 14 1→D 2→O 3→E 0→ Goto 99 Lbl 15 1→K 2→I 3→D 0→ Goto 99 Lbl 16 1→R 2→A 3→M 0→ Goto 99 Lbl 17 1→Y 2→A 3→K 0→ Goto 99 Lbl 18 1→A 2→G 3→E 0→ Goto 99 Lbl 19 1→B 2→A 3→G 0→ Goto 99 Lbl 20 1→A 2→S 3→H 0→ Goto 99 Lbl 21 1→B 2→A 3→Y 0→ Goto 99 Lbl 22 1→B 2→O 3→T 0→ Goto 99 Lbl 23 1→B 2→U 3→G 0→ Goto 99 Lbl 24 1→C 2→A 3→B 0→ Goto 99 Lbl 25 1→B 2→E 3→D 0→ Goto 99 Lbl 26 1→C 2→O 3→P 0→ Goto 99 Lbl 27 1→D 2→A 3→Y 0→ Goto 99 Lbl 28 1→C 2→A 3→P 0→ Goto 99 Lbl 29 1→C 2→O 3→D 0→ Goto 99 Lbl 30 1→D 2→E 3→N 0→ Goto 99 Lbl 31 1→D 2→E 3→W 0→ Goto 99 Lbl 32 1→E 2→A 3→R 0→ Goto 99 Lbl 33 1→E 2→L 3→M 0→ Goto 99 Lbl 34 1→F 2→A 3→N 0→ Goto 99 Lbl 35 1→F 2→I 3→B 0→ Goto 99 Lbl 36 1→F 2→I 3→G 0→ Goto 99 Lbl 37 1→F 2→R 3→Y 0→ Goto 99 Lbl 38 1→G 2→A 3→S 0→ Goto 99 Lbl 99 Repeat θ≠0 getKey→θ End If θ=45 Then Lbl Q ClrHome ClrDraw ZoomRcl AxesOn ClrHome Stop If θ=41 and A=1 Then Output(5,8,"A Output(1,2," Z+1→Z End If θ=41 and A=2 Then Z+1→Z Output(5,9,"A Output(1,2," End If θ=41 and A=3 Then Z+1→Z Output(5,10,"A Output(1,2," End If θ=41 and A=0 Then Output(1,2," +1→ End If θ=42 and B=1 Then Output(5,8,"B Output(1,4," Z+1→Z End If θ=42 and B=2 Then Output(5,9,"B Output(1,4," Z+1→Z End If θ=42 and B=3 Then Output(5,10,"B Output(1,4," Z+1→Z End If θ=42 and B=0 Then Output(1,4," " +1→ End If θ=43 and C=1 Then Output(5,8,"C Output(2,1," Z+1→Z End If θ=43 and C=2 Then Output(5,9,"C Output(2,1," Z+1→Z End If θ=43 and C=3 Then Output(5,10,"C Output(2,1," Z+1→Z End If θ=43 and C=0 Then Output(2,1," +1→ End If θ=51 and D=1 Then Output(5,8,"D Output(2,3," Z+1→Z End If θ=51 and D=2 Then Output(5,9,"D Output(2,3," Z+1→Z End If θ=51 and D=3 Then Output(5,10,"D Output(2,3," Z+1→Z End If θ=51 and D=0 Then Output(2,3," +1→ End If θ=52 and E=1 Then Output(5,8,"E Output(2,5," Z+1→Z End If θ=52 and E=2 Then Output(5,9,"E Output(2,5," Z+1→Z End If θ=52 and E=3 Then Output(5,10,"E Output(2,5," Z+1→Z End If θ=52 and E=4 Then Output(5,8,"EE Output(2,5," Z+2→Z End If θ=52 and E=0 Then Output(2,5," +1→ End If θ=53 and F=1 Then Output(5,8,"F Output(3,1," Z+1→Z End If θ=53 and F=2 Then Output(5,9,"F Output(3,1," Z+1→Z End If θ=53 and F=3 Then Output(5,10,"F Output(3,1," Z+1→Z End If θ=53 and F=0 Then Output(3,1," +1→ End If θ=54 and G=1 Then Output(5,8,"G Output(3,2," Z+1→Z End If θ=54 and G=2 Then Output(5,9,"G Output(3,2," Z+1→Z End If θ=54 and G=3 Then Output(5,10,"G Output(3,2," Z+1→Z End If θ=54 and G=0 Then Output(3,2," +1→ End If θ=55 and H=1 Then Output(5,8,"H Output(3,3," Z+1→Z End If θ=55 and H=2 Then Output(5,9,"H Output(3,3," Z+1→Z End If θ=55 and H=3 Then Output(5,10,"H Output(3,3," Z+1→Z End If θ=55 and H=0 Then Output(3,3," +1→ End If θ=61 and I=1 Then Output(5,8,"I Output(3,4," Z+1→Z End If θ=61 and I=2 Then Output(5,9,"I Output(3,4," Z+1→Z End If θ=61 and I=3 Then Output(5,10,"I Output(3,4," Z+1→Z End If θ=61 and I=0 Then Output(3,4," +1→ End If θ=62 and J=1 Then Output(5,8,"J Output(3,5," Z+1→Z End If θ=62 and J=2 Then Output(5,9,"J Output(3,5," Z+1→Z End If θ=62 and J=3 Then Output(5,10,"J Output(3,5," Z+1→Z End If θ=62 and J=0 Then Output(3,5," +1→ End If θ=63 and K=1 Then Output(5,8,"K Output(4,1," Z+1→Z End If θ=63 and K=2 Then Output(5,9,"K Output(4,1," Z+1→Z End If θ=63 and K=3 Then Output(5,10,"K Output(4,1," Z+1→Z End If θ=63 and K=0 Then Output(4,1," +1→ End If θ=64 and L=1 Then Output(5,8,"L Output(4,3," Z+1→Z End If θ=64 and L=2 Then Output(5,9,"L Output(4,3," Z+1→Z End If θ=64 and L=3 Then Output(5,10,"L Output(4,3," Z+1→Z End If θ=64 and L=0 Then Output(4,3," +1→ End If θ=65 and M=1 Then Output(5,8,"M Output(4,5," Z+1→Z End If θ=65 and M=2 Then Output(5,9,"M Output(4,5," Z+1→Z End If θ=65 and M=3 Then Output(5,10,"M Output(4,5," Z+1→Z End If θ=65 and M=0 Then Output(4,5," +1→ End If θ=71 and N=1 Then Output(5,8,"N Output(5,1," Z+1→Z End If θ=71 and N=2 Then Output(5,9,"N Output(5,1," Z+1→Z End If θ=71 and N=3 Then Output(5,10,"N Output(5,1," Z+1→Z End If θ=71 and N=0 Then Output(5,1," +1→ End If θ=72 and O=1 Then Output(5,8,"O Output(5,2," Z+1→Z End If θ=72 and O=2 Then Output(5,9,"O Output(5,2," Z+1→Z End If θ=72 and O=3 Then Output(5,10,"O Output(5,2," Z+1→Z End If θ=72 and O=0 Then Output(5,2," +1→ End If θ=73 and P=1 Then Output(5,8,"P Output(5,3," Z+1→Z End If θ=73 and P=2 Then Output(5,9,"P Output(5,3," Z+1→Z End If θ=73 and P=3 Then Output(5,10,"P Output(5,3," Z+1→Z End If θ=73 and P=0 Then Output(5,3," +1→ End If θ=74 and Q=1 Then Output(5,8,"Q Output(5,4," Z+1→Z End If θ=74 and Q=2 Then Output(5,9,"Q Output(5,4," Z+1→Z End If θ=74 and Q=3 Then Output(5,10,"Q Output(5,4," Z+1→Z End If θ=74 and Q=0 Then Output(5,4," +1→ End If θ=75 and R=1 Then Output(5,8,"R Output(5,5," Z+1→Z End If θ=75 and R=2 Then Output(5,9,"R Output(5,5," Z+1→Z End If θ=75 and R=3 Then Output(5,10,"R Output(5,5," Z+1→Z End If θ=75 and R=0 Then Output(5,5," +1→ End If θ=81 and S=1 Then Output(5,8,"S Output(6,1," Z+1→Z End If θ=81 and S=2 Then Output(5,9,"S Output(6,1," Z+1→Z End If θ=81 and S=3 Then Output(5,10,"S Output(6,1," Z+1→Z End If θ=81 and S=0 Then Output(6,1," +1→ End If θ=82 and T=1 Then Output(5,8,"T Output(6,3," Z+1→Z End If θ=82 and T=2 Then Output(5,9,"T Output(6,3," Z+1→Z End If θ=82 and T=3 Then Output(5,10,"T Output(6,3," Z+1→Z End If θ=82 and T=0 Then Output(6,3," +1→ End If θ=83 and U=1 Then Output(5,8,"U Output(6,5," Z+1→Z End If θ=83 and U=2 Then Output(5,9,"U Output(6,5," Z+1→Z End If θ=83 and U=3 Then Output(5,10,"U Output(6,5," Z+1→Z End If θ=83 and U=0 Then Output(6,5," +1→ End If θ=84 and V=1 Then Output(5,8,"V Output(7,2," Z+1→Z End If θ=84 and V=2 Then Output(5,9,"V Output(7,2," Z+1→Z End If θ=84 and V=3 Then Output(5,10,"V Output(7,2," Z+1→Z End If θ=84 and V=0 Then Output(7,2," +1→ End If θ=85 and W=1 Then Output(5,8,"W Output(7,4," Z+1→Z End If θ=85 and W=2 Then Output(5,9,"W Output(7,4," Z+1→Z End If θ=85 and W=3 Then Output(5,10,"W Output(7,4," Z+1→Z End If θ=85 and W=0 Then Output(7,4," +1→ End If θ=91 and X=1 Then Output(5,8,"X Output(8,1," Z+1→Z End If θ=91 and X=2 Then Output(5,9,"X Output(8,1," Z+1→Z End If θ=91 and X=3 Then Output(5,10,"X Output(8,1," Z+1→Z End If θ=91 and X=0 Then Output(8,1," +1→ End If θ=92 and Y=1 Then Output(5,8,"Y Output(8,3," Z+1→Z End If θ=92 and Y=2 Then Output(5,9,"Y Output(8,3," Z+1→Z End If θ=92 and Y=3 Then Output(5,10,"Y Output(8,3," Z+1→Z End If θ=92 and Y=0 Then Output(8,3," +1→ End If θ=93 Then Output(8,5," +1→ End If =1 Then Output(7,12,"I---I End If =2 Then Output(6,16,"[ Output(5,16,"[ Output(4,16,"[ Output(3,16,"[ Output(2,16,"I End If =3 Then Output(2,13,"1-- End If =4 Then Output(3,13,"T End If =5 Then Output(4,13,"O End If =6 Then Output(5,12,".U. End If =7 Then Output(6,13,"^" Goto 98 End If Z=3 Then Goto 97 End Goto 99 Lbl 98 If A=1 Output(5,8,"A If B=1 Output(5,8,"B If C=1 Output(5,8,"C If D=1 Output(5,8,"D If E=1 Output(5,8,"E If F=1 Output(5,8,"F If G=1 Output(5,8,"G If H=1 Output(5,8,"H If I=1 Output(5,8,"I If J=1 Output(5,8,"J If K=1 Output(5,8,"K If L=1 Output(5,8,"L If M=1 Output(5,8,"M If N=1 Output(5,8,"N If O=1 Output(5,8,"O If P=1 Output(5,8,"P If Q=1 Output(5,8,"Q If R=1 Output(5,8,"R If S=1 Output(5,8,"S If T=1 Output(5,8,"T If U=1 Output(5,8,"U If V=1 Output(5,8,"V If W=1 Output(5,8,"W If X=1 Output(5,8,"X If Y=1 Output(5,8,"Y If A=2 Output(5,9,"A If B=2 Output(5,9,"B If C=2 Output(5,9,"C If D=2 Output(5,9,"D If E=2 Output(5,9,"E If F=2 Output(5,9,"F If G=2 Output(5,9,"G If H=2 Output(5,9,"H If I=2 Output(5,9,"I If J=2 Output(5,9,"J If K=2 Output(5,9,"K If L=2 Output(5,9,"L If M=2 Output(5,9,"M If N=2 Output(5,9,"N If O=2 Output(5,9,"O If P=2 Output(5,9,"P If Q=2 Output(5,9,"Q If R=2 Output(5,9,"R If S=2 Output(5,9,"S If T=2 Output(5,9,"T If U=2 Output(5,9,"U If V=2 Output(5,9,"V If W=2 Output(5,9,"W If X=2 Output(5,9,"X If Y=2 Output(5,9,"Y If A=2 Output(5,10,"A If B=3 Output(5,10,"B If C=3 Output(5,10,"C If D=3 Output(5,10,"D If E=3 Output(5,10,"E If F=3 Output(5,10,"F If G=3 Output(5,10,"G If H=3 Output(5,10,"H If I=3 Output(5,10,"I If J=3 Output(5,10,"J If K=3 Output(5,10,"K If L=3 Output(5,10,"L If M=3 Output(5,10,"M If N=3 Output(5,10,"N If O=3 Output(5,10,"O If P=3 Output(5,10,"P If Q=3 Output(5,10,"Q If R=3 Output(5,10,"R If S=3 Output(5,10,"S If T=3 Output(5,10,"T If U=3 Output(5,10,"U If V=3 Output(5,10,"V If W=3 Output(5,10,"W If X=3 Output(5,10,"X If Y=3 Output(5,10,"Y Output(1,8,"YOU LOST! Output(7,1," [PRESS ENTER] Pause Menu("Play Again?","Yes",A,"No",B Lbl 97 Output(1,8,"YOU WON! Output(7,1," [PRESS ENTER] Pause Menu("Play Again?","Yes",A,"No",B Lbl B ClrDraw AxesOn ZoomRcl ClrHome`

Note that all the boxes are the lowercase "n" symbol which is the first character under the letter N in the catalog.

For this to work, you need to either take ou the line that says prgmPPGLOGO or create program PPGLOGO which draws my logo.

Here is the source code for that:

` ``0→Xmin 94→Xmax 0→Ymax 62→Ymin ClrDraw Line(11,17,20,17) Line(11,17,11,30) Line(11,30,14,30) Line(14,30,14,23) Line(14,23,20,23) Line(20,23,20,17) Line(14,19,17,19) Line(17,19,17,21) Line(17,21,14,21) Line(14,21,14,19) Line(22,19,25,19) Line(22,19,22,21) Line(25,19,25,21) Line(23,21,23,24) Line(24,21,24,24) Line(22,24,22,30) Line(25,24,25,30) Line(25,30,22,30) Line(27,25,27,24) Pt-On(28,24) Pt-On(31,24) Line(32,24,32,25) Line(32,29,32,30) Pt-On(31,30) Pt-On(28,30) Line(27,30,27,29) Line(29,25,30,25) Line(29,29,30,29) Line(28,26,28,28) Line(31,26,31,28) Line(34,24,34,30) Line(34,30,40,30) Line(40,30,40,24) Line(40,24,34,24) Line(36,26,38,26) Line(36,28,39,28) Line(42,17,45,17) Line(45,17,45,30) Line(45,30,42,30) Line(42,30,42,17) Line(16,33,16,46) Line(16,46,19,46) Line(19,46,19,39) Line(19,39,25,39) Line(25,39,25,33) Line(25,33,16,33) Line(19,35,22,35) Line(19,35,19,37) Line(19,37,22,37) Line(22,35,22,37) Line(27,33,27,46) Line(27,46,30,46) Line(30,46,30,43) Pt-On(31,43) Line(32,43,32,46) Line(32,46,34,46) Line(34,46,34,40) Line(34,40,30,40) Line(30,40,30,33) Line(30,33,27,33) Line(36,40,36,46) Line(36,46,42,46) Line(42,46,42,49) Line(42,49,36,49) Line(36,49,36,52) Line(36,52,45,52) Line(45,52,45,40) Line(45,40,42,40) Line(42,40,42,43) Line(42,43,39,43) Line(39,43,39,40) Line(39,40,36,40) Line(47,40,52,40) Line(52,40,52,46) Line(52,46,47,46) Line(47,46,47,40) Line(49,42,51,42) Line(48,44,50,44) Line(54,40,54,46) Line(54,46,57,46) Line(57,46,57,40) Line(55,40,55,37) Line(56,40,56,37) Line(54,37,54,35) Line(54,35,57,35) Line(57,35,57,37) Line(59,40,59,46) Line(59,46,62,46) Pt-On(62,45) Line(62,44,61,44) Pt-On(61,43) Line(61,42,62,42) Pt-On(62,41) Line(62,40,59,40) Line(64,40,69,40) Line(69,40,69,46) Line(64,46,69,46) Line(64,46,64,40) Line(66,42,68,42) Line(65,44,67,44) Line(48,48,51,48) Pt-On(52,49) Line(47,49,47,53) Line(48,54,51,54) Line(52,53,52,52) Line(50,51,51,51) Line(54,51,54,53) Pt-On(55,50) Line(55,54,56,54) Line(56,53,56,51) Line(58,50,58,54) Pt-On(59,50) Line(60,51,60,54) Pt-On(61,50) Line(62,50,62,54) Line(64,51,64,53) Line(65,50,66,50) Pt-On(67,51) Line(65,52,66,52) Line(65,54,66,54) Line(70,50,71,50) Pt-On(69,51) Line(70,52,71,52) Pt-On(72,53) Line(69,54,71,54) For(X,0,30) Pt-On(11,17) End For(X,0,30) Pt-On(2,8) End For(X,0,30) Pt-On(9,8) End For(X,0,30) Pt-On(15,9) End For(X,0,30) Pt-On(20,12) End For(X,0,30) Pt-On(23,16) End For(X,0,30) Pt-On(26,14) End For(X,0,30) Pt-On(30,11) End For(X,0,30) Pt-On(35,9) End For(X,0,30) Pt-On(41,8) End For(X,0,30) Pt-On(47,11) End For(X,0,30) Pt-On(51,15) End For(X,0,30) Pt-On(54,19) End For(X,0,30) Pt-On(55,25) End For(X,0,30) Pt-On(56,31) End For(X,0,30) Pt-On(60,28) End For(X,0,30) Pt-On(65,26) End For(X,0,30) Pt-On(71,26) End For(X,0,30) Pt-On(76,28) End Line(80,30,80,32) Line(81,30,81,35) Line(82,30,82,32) Line(80,34,82,34) Pt-On(80,36) Pt-On(82,36)`

If you took the time to copy this down, I salute you for your effort. If this is too hard for you, then feel free to copy-paste it in an emulator. :)

I shall find a way soon to post a downloadable file with both these programs.

]]>Code:

` ``4→Y 8→X While 1 ClrHome Output(Y,X,"θ getKey→K max(1,min(8,Y+(K=34)-(K=25→Y max(1,min(16,X+(K=26)-(K=24→X End`

I hoped you liked it and I am so excited to progress further with TI-Basic!

]]>` ``ClrHome 1-->I 3-->X x-->P For(A,1,20 XI/((4I+4-->X P+X/(I+2-->P I+2-->I Output(1,1,P Output(2,1,A`

I modified it from a JavaScript program found here

]]>Here is the program

Input “ANGLE?”,S

Input "OPPOSITE SIDE?",A

Input "OTHER SIDE?",B

If A<Bsin(S)

Then

Disp "NO SUCH TRIANGLE"

Else

sin(Bsin(S)/A)→T

180-S-T→R

Asin(R)/sin(S)→C

IfA≥BorA=Bsin(S)

Then

Disp "ONE TRIANGLE"

Disp "THIRD SIDE IS",C

Disp "OTHER ANGLES ARE",T,R

Else

180-T→M

180-S-M→N

Asin(N)/sin(S)→D

ClrHome

Disp "TWO TRIANGLES",""

Disp "PRESS ENTER NOW"

Disp "AND AFTER FIRST"

Disp "TRIANGLE ANSWER"

Pause

ClrHome

Disp "TRIANGLE ONE"

Disp "THIRD SIDE IS",C

Disp "OTHER ANGLES AREA",T,R

Pause

Disp "TRIANGLE TWO"

Disp "THIRD SIDE IS",D

Disp "OTHER ANGLES ARE",M,N

End

Return

__

First of all, I am a 14 year old boy. From the moment I got my first calculator two years ago (a beautiful Ti-83 Plus), I knew I wanted to use it for more than just math. I was only in 7th grade at the time, but I already knew - and still know - a fair amount of HTML and CSS. I longed to learn JavaScript after seeing it's potential for making games and interactive programs. Sadly, when I realized that everyone wants you to pay exorbitant amounts to learn the basics, I gave up. I was kind of heart-broken. I knew I wanted to develop and create my own games and practical, helpful apps, but that seemed little more than wishful thinking at the time. I tried seeing if I was able to make a game on my calculator, but I thought graphing was the only thing that might work. The y1 through y10 functions left me feeling even more depressed than anything else.

About a fourth of the way into the school year, one of my best friends, (and fellow nerd) showed me a simple guessing game she had found online for her Ti calculator. She showed me how it worked through a program, and how to play it, and even though I had no idea what I was looking at, I copied the code into my own Ti-83. I played it over and over and over again, fascinated with it and mystified by the "puzzling" coding language behind it. A few days later, that same friend found the code online for a basic snake game and I copied it too. I still remember that day clearly. She had to show me where the store function was and tell me what it did. Copying code from the internet was the extent of my friend's learning.

But I was even more fascinated by the new program. I started to dissect the code bit by bit to figure it out. I was very ambitious about it, especially after having my pc coding dreams crushed. I learned more and more, creating my own mini-programs that did simple things like storing numbers and displaying text. I knew they weren't practical, and nothing could really come from them, but the more of those programs I made, the more I learned, and the more I loved my Ti-83.

At the end of my 7th grade year, I made my very first "program app". It was nothing fancy, just a Pythagorean Theorem calculator that could find *a*, *b*, or *c* by using the other two variables. It used the graph to display a triangle, label the sides, show the values of *a*, *b*, and *c*, and show how the Theorem worked. It worked every time without fail. It wasn't something worthy of an award or anything, but it was a grand achievement for me. It was something practical that people could use, it was something I came up with by myself, and it was something I could put my name on and be proud of. That one "app" changed everything for me and led me to create several other much better and much more amazing apps and games.

Now, it's been two years - almost to the day - and I have a Ti-83 Plus, a Ti-84 Plus, and a Ti-84 Plus Silver Edition, which I program on almost every single day. Recently, I realized I would need a name if I were to be making things for others. There's nothing wrong with my real name, but I don't want everyone to know me, and what if a stranger wants to buy a game from me? That's when I came up with the name *Pixel Physics*. On my games it's *Pixel Physics Games* and on my apps it is *Pixel Physics Apps*. I made the first version of my logo that is now my avatar on this site. :)

I have seen this site before, and even used it once when I was making a hangman game. I never decided to become a member until now, and I'm not sure why that is. I just want to say that this is an amazing site and it is well laid-out. I also wanted to thank everyone here for their contribution to this site through their ideas and questions.

Please remember that although I consider myself extremely good at programming on a calculator, I'm self-taught. Meaning I don't know everything and I probably have a long ways to go before I know "enough". That doesn't mean I am not ambitious about learning more and working hard to achieve my goals. Coding is something I have a deep passion for and am considering a career in. ,, No, I don't mean I am going to make a living programming calculators, but it's a start… ,,

In short, I'm human. I like to get down-to-earth and be friends with anyone I meet. I love sharing ideas and being taught by people instead of boring online courses and instruction videos. I ask questions. I strive to find answers and ways to make my wildest ideas come true. I don't want to be a know-it-all, but instead want to help other people respectfully and listen respectfully to those who are more skilled and experienced than I am. I'm not afraid of failure. I laugh at my mistakes and work hard to fix them. I give up occasionally when I can't figure something out, but I always come back to it. I make apps and games to help others and bring a smile to their face, not to be "famous" and get rich. I give the credit to God because He created me and gave me the talents that I have. Some say I have a wild imagination, but that's what gives me my best ideas.

I'm a young, ambitious, naive Christian coder, and if you don't like me after reading this, that's okay.

But give me a chance. Who knows? We might be able to help each other and/or become friends.

Until we meet,

*Pixel Physics*

` ``PROGRAM:HMMYES ClrHome Input "WORD:",Str1 ClrHome "Hmm, yes, the "+Str1+"here is made out of "+Str1+"."-->Str2 Output(1,1,Str2`

I figured out that any string I inputted into the program, even if it had double quotes (") in the middle, would show up in the final result.

For example, if I put in just " for Str1, it would output:

` ``Hmm, yes, the " here is made out of ".`

I did some experimentation and figured out that this worked with any program, and changed what the Input command was followed by, and found that as long as you are prompting a string with the Input command, you can put double quotes into it.

This could mean a whole world of new things that could happen with strings containing double quotes, and although there are still some [obvious] limitations, we now know that Input, and (to an extent) Disp and Output( are able to do this. I hope what I found will benefit the TI-BASIC community.

What are your thoughts on this? Are you frustrated about this decision or are you glad?

You have control on your calculator, TI does not. You decide on what you should do!

]]>I'm making a gameboy assembly development environment for my TI-84+CE. I won't bore you with all of the stuff about the way data will be stored, other than that I need to read and write individual bytes at a time from large variable of some sort. Preferably such a variable would be of variable size from 0 bytes to more than 16KiB (upper limit preferably more than 22KiB, just in case). 16KiB is the size of gameboy ROM banks, but I will need more than this because of markers bloating the data.

The question is how or where do I store that much data? I have no idea and would really appreciate some ideas from you guys. Also, in the longer version I go into more detail about the way it all works, if you're interested in hearing what I intend to do with this project.

I've had the idea in my head for a while to write a gameboy assembly development suite for my '84 CE. I know this is an ambitious and just plain silly project, but I think it will be a lot of fun.

Anyways, how to store the code? Well, the program would just write the bytes for each instruction to a variable of some sort, and read and interpret the instruction opcodes on the fly, basically acting as a live disassembler/assembler. This would cut down the size of the project files, at the cost of giving the program a LOT more to do.

Things such as labels, section definitions and chunks of raw data (such as graphics data) could just be inserted into the data directly, as there's 11 unused instruction opcodes in the gbz80 instruction set that could just be interpreted as markers instead of as instructions.

And to export the project files? I could just upload them to my laptop and do whatever I want with them from there. I could easily write a custom disassembler in python to interpret the unused opcodes and produce a .asm file to be compiled with RGBDS or whatever. Or I could write a simple program to remove the extra markers, and do other things to make the ROM image execution ready.

There's just one problem: How the heck do you store that much mutable bulk data efficiently? I mean storing LOTS of individual bytes in a single variable. Preferably such a variable would be of variable size from 0 bytes to more than 16KiB (upper limit preferably more than 22KiB, just in case). 16KiB is the size of gameboy ROM banks, but I will need more than this because of markers bloating the data.

Using lists is not an option, and this post was too long for all of the details. To summarize: With cramming four bytes into each number in the list (which is the limit of the integer resolution) only 44% of the RAM taken up by the list is the actual bytes of data being stored, and lists have a limit of 999 items which means only about 4K per list can be stored. It's unworkable every way to sunday.

Summary: The calculator has more than enough space to handle at least four 16KiB+ banks of data at a time, and enough archive space to store a fairly large gameboy game's worth of ROM banks. But where/how the heck do you store it? I've got no idea, and ny help I get will be much appreciated.

]]>I've messed around with Ti-basic a little bit, but I know nothing about optimization and other basic things. I however am NOT new to assembly programming. I learned the fundamentals of z80 assembly through learning how to write assembly for the gameboy, which uses a Sharp LR35902 core @ 4.19 MHz. This is a stripped down z80 (no IX or IY registers, or LDIR for that matter) with some extra instructions (such as the SWAP instruction which swaps the high and low nybble of the accumulator).

It seems nice here, and I hope to be a semi-active member of this community. In addition to that, I'm new to how forums work, so please don't blast me for dumb n00b level mistakes. Other than that, I'm excited to be part of the community and look forward to chatting with all of you!

]]>All of the code should be correct. I ran it on another calculator and pasted it here. Let me know if its not.

I probably used some weird methods. Sorry about that. :)

Controls:

Move: Arrow Keys

Dig: Enter

Graph :Update the screen (not character only dug spots,flags,etc.)

Trace :Place Flag

Zoom :Remove Existing Flag

Clear : When all flags are placed hit clear to check if you won

Edit: I put in two more lines to ensure that there will be 10 mines in different locations.

` ``DelVar [A]{8,16→dim([A] [A]→[B] For(I,1,A randInt(2,7→Y randInt(2,15→X //I changed this for the mines as mentioned above and the For(I,1,A the last syntax was changed to A If [A](Y,X)=9 A+1→A 9→[A](Y,X End 1→X:10→J ClrHome For(I,1,12 Output(4,3,sub("MINE*SWEEPER",1,I X+(X≠5→X Output(5,6,sub("V 1.0",1,X End 7→Y:6→X Repeat K=105 getKey→K Output(7,7,"PLAY Output(8,7,"EXIT Y+(K=34 and Y≠8)-(K=25 and Y≠7→Y If Y=8 Output(Y-1,X," " If Y=7 Output(Y+1,X," " Output(Y,X,"> End For(I,1,38 Output(randInt(1,8),randInt(1,16),"* End ClrHome If Y=8 Return 4→Y:8→X Output(1,1," -MINE*SWEEPER- " Output(8,5,"FLAGS: For(I,2,7 Output(I,1,sub("IIIIII",I-1,1 Output(I,16,sub("IIIIII",I-1,1 End Repeat J=0 and K=45 or K=105 and [A](Y,X)=9 getKey→K Output(8,11,J If J≠10 Output(8,12," " If not([A](Y,X)=2 Output(Y,X," " X+(K=26 and X<15)-(K=24 and X>2→X Y+(K=34 and Y<7)-(K=25 and Y>2→Y Output(Y,X,"+ If K=14 Then 2→[B](Y,X J-1→J End If K=13 and [B](Y,X)=2 Then 0→[B](Y,X J+1→J End If K=105 and [A](Y,X)=0 1→[B](Y,X If K=15 Then 2→A:1→B For(I,1,84 B+1→B If B>15 Then A+1→A 2→B End If [B](A,B)=2 Output(A,B,"/ If [B](A,B)=0 Output(A,B,"x If [B](A,B)=1 Then If [A](A-1,B)=9 E+1→E If [A](A+1,B)=9 E+1→E If [A](A,B+1)=9 E+1→E If [A](A,B-1)=9 E+1→E If [A](A-1,B-1)=9 E+1→E If [A](A+1,B-1)=9 E+1→E If [A](A-1,B+1)=9 E+1→E If [A](A+1,B+1)=9 E+1→E If [B](A,B)=1 Output(A,B,E 0→E End End End End 0→F 2→A:1→B For(I,1,84 B+1→B If B>15 Then A+1→A 2→B End If [A](A,B)=9 and [B](A,B)=2 F+1→F End If F=10 Then ClrHome Output(1,1,"YOU CLEARED ALL OF THE MINES! Pause Return:" End ClrHome If F<10 Then Disp "YOU CLEARED Disp F Disp "OF THE MINES End`

- moved onto learn C

- currently learning 6502 Assembly

I might come back into trying to do TI-BASIC programming idunno

]]>I cant post links so you'll have to type the link yourself sry. ]]>

I am open to suggestions for the AI also

I may not respond right away just so you know. I will try to get back as soon as I can.

Here is the code:

` ``:2→Y:2→X :7→B:15→A :0→D:0→S :0→O:0→T :Repeat K=45 :ClrHome :If D=S :Then :2→Y:2→X :7→B:15→A :D→S :End :getKey→K :Y+(K=34)-(K=25→Y :X+(K=26)-(K=24→X :If max(X={0,17 :1+15not(X→X :If max(Y={0,9 :1+7not(Y→Y :If max(A={0,17 :1+15not(A→A :If max(B=0,9 :1+7not(B→B :Output(Y,X,"θ //Theta :Output(B,A,"I :If D=0 :Then :Y-B→O :X-A→T :If B=!Y // I think that is how not equal to is written :B+1→B :If B=O :B→B :If A=X :A+1→A :If A=T :A→A :If X<A :A-2→A :If Y<B :B-2→B :If X=A and Y=B and D=0 :1→D :End :If D=1 :Then :B+randInt(-1,1→B :A+randInt(-1,1→B :If X=A and B=Y and D=1 :0→D :End :If K=21 :Pause :End`

However, when I did the Shift+[RCL] function with Str1, I noticed something was odd about the first four characters. Instead of displaying:

"

, it displayed:

"

. And it only got more weird. When I moved the cursor up to the top, it changed to:

ClrHomefPart(

And whenever you press [CLEAR] it resets the cursor to line 1, column 8, and it will actually accept commands there.

I tried it multiple times, and it kept happening the same way. Whenever you press [ENTER], it sets the first few characters to:

ClrHomefPart(

but if you press [CLEAR] from there, it resets to the normal position, at 1,1.

What I found most odd about it was that it actually changed the string from the initial form. In any case, I hope to do more research, but if you try something like it (but in a diff. order) you might get strange results as well. See what you can find!

]]>Code:

` ``:ClrHome :0→X :Prompt H,M // Hours and Minutes :ClrHome :Lbl 1 // I checked it for a memory leak and I think that it is ok :iPart(X/5.445809055→S // Number that I have come up with lots of testing :Output(4,7,": :Output(4,10,": :If H>12 :Output(4,5,H :If H<=12 :Then :Output(4,5,"0 :Output(4,6,H :End :If M>=10 :Output(4,8,M :If M<10 :Then :Output(4,8,"0 :Output(4,9,M :End :If S>=10 :Output(4,11,S :If S<10 :Then :Output(4,11,"0 :Output(4,12,S :End :If S=60 :Then :0→S :ClrHome :0→X :M+1→M :End :If M=60 :Then :0→X :0→M :0→S :H+1→H :End :If H>=24 :Then :1→H :0→M :0→S :ClrHome :End :X+1→X :Goto 1`

It originally just started out as a height map in a matrix, where I programmed the generator to make blocks that are only 1 higher or lower than their neighbors. After a few days I made a rough looking isometric render, then quickly changed it too look sharper and more colorful. I also made it so that you could edit the map, and I also moved the storage over to a list.

So, you can have the program generate a map for you or you can edit a map to make things like this:

The isometric rendering takes about 39-42 seconds on average on my CE, thanks to some optimizations by Cemetech user mr womp womp, which is a significant improvement from a time of 1:25-2:23 when I first started.

It could technically be changed to generate all the blocks instead of just the top ones, but because the top blocks usually cover up what's under/behind them there's really no point in slowing down the rendering that much. I will probably make a modeling program with this soon though specifically for making 3d models. Oh, and you can also rotate the terrain already to render it from all 4 corner angles.

Anyways, I hope you like it!

You can see the whole GitHub repository and download the .8xp from here: https://github.com/Michael2-3B/Terrain-CE

You can also see my original Cemetech thread here: https://cemete.ch/t16660

First Fantasy: Mana Force is a 2015 color remake of my 2002 TI-83 Plus game Mana Force. I have begun updating the TI-84 Plus CE version to take full advantage of CE Texlib ASM library (to draw rectangles and colored text on the home screen) undocumented capabilities. Here are the changes since the last 2015 release:

-The gray TI-OS bar at the top of the screen is now hidden.

-The in-game menu now takes the entire screen and has a border

-Fixed menu exit from save section bug introduced by the above change

-Dungeon walls no longer have horizontal gaps across the screen

-The game now uses 16 colors instead of 15, allowing some dungeon color changes

-The game is completely full screen now

-Your hit points are now displayed at the top of the screen at any time except in the menu

-There is a new sub-program for the custom font routine needed for the above

-You can now quit the game using CLEAR in the menu

-The shops and the warp zone now have a border like the menu

-Some empty green gaps in the village graphics, similar to the ones present in dungeons prior version 1.1 have been removed.

You can download the game at https://www.ticalc.org/archives/files/fileinfo/463/46383.html , but it's version 1.1, which misses some of the aforementioned additions. Version 2.0, pictured above, should come out soon.

]]>(Note, this is in SourceCoder3 format) Here's the code:

` ``For(I,4,~1+int(1.59154943092*pi End I+BROWN/int([e]->I% not(Ans->|N Goto E Lbl C If |N=2MedGray+1 Goto E If sum(|N={DarkGray,25,2Magenta,2Navy,2MedGray+1 Then Output(I,I%," " I+(|N=2Navy)(I<Blue)-(|N=Gray+2)(I>1->I I%+(|N=2Magenta)(I%<2Magenta)-(|N=DarkGray)(I%>1->I% End Lbl S Output(I,I%,"X" For(theta,int(~|E9rand),0 getKey->|N If Ans 1->theta End Goto C Lbl E ClrHome If not(|N Goto S`

:x + 1 ->x

This is currently all I have. From now on I would need to program something that tells the calculator what to do depending on what items the player and the calculator chose. There's probably also some optimization that can be done, so if anyone could help me I would really appreciate it.

]]>https://www.artyfactory.com/isometric-drawing/images/large-isometric-cube.gif

Requirements:

- Each tiny cube should be drawn individually, and overlay cubes behind it if necessary.

- The number of tiny cubes should be able to be changed easily.

Disp: "0

Disp: " 0

Disp: " 0

Disp: " 0

Disp: " 0

Disp: " 0

Disp: " 0

Disp: " 0

Disp: " 0

Disp: " 0

Disp: " 0

Disp: " 0

prgm //Insert name of the program here

I would prefer if people provided hints (what command they would use or how they would use it) but not show any code. I'm a beginner-intermediate programmer so if anyone could help, I would greatly appreciate it.

]]>` ``ClrHome {11,28}→dim([A]) For(A,2,10) For (B,2,27) max(0,randInt(⁻3,1))→[A](A,B) Output(A,B-1),"O") End:End 0→G Output(1,1,"GENERATION") Output(1,16,"MEMBERS=") Repeat getKey or M=0 G+1→G For(A,2,10) For(B,1,26) Output(A,B,sub(" O",[A](A,B+1)+1,1)) End:End Output(1,12,G) Output(1,24," ") //four spaces [A]→[B] 0→M For(A,2,10) For(B,2,27) Output(A,B-1,"θ") If [A](A,B)=1:M+1→M Output(1,24,M) 0→N For(C,-1,1) For(D,-1,1) If [A](A+C,B+D) and 2≠sum(not({C,D}≠0)):N+1→N End:End If N=3 and [A](A,B)=0 1→[B](A,B) If [A](A,B)=1 and N≠2 and N≠3 0→[B](A,B) Output(A,B-1,sub(" O",[A](A,B)+1,1)) End:End [B]→[A] End`

]]>
Much of the community here is comprised of BASIC programmers, so you won't be as affected. However, many popular games and utilities are assembly programs, so you and other calculator owners won't be able to play/use them on the new OS (and presumably subsequent ones).

On the bright side, this does mean that there will be more demand for BASIC games, and we might see more people who need our help.

Stay safe everyone!

]]>Can be because of anything but here are a couple of examples:

- Has the best version of TI-Basic (Define best however you like)

- Best interface

- Anything else you would like to mention

I'm new to the community so I'm interested in what your opinions are. Have a great time coding, and I'm interested in seeing the responses.

]]>` ``ClrDraw ZStandard 104->Xmax ~72->Ymin ZInteger real(12,3,0,0,94,61,1 41->A:Ans->E 29->B:Ans->F 1->H:0->V 5->S:0->theta 0->D Pt-On(41,~29,2 Repeat not(pxl-Test(N-1,M-1 2+3int(31rand->M 2+3int(20rand->N End Pt-On(M,~N,2 Pt-Off(M,~N,3 Pxl-On(N,M Repeat D or K=45 getKey->K If Ans:Then If H:Then (Ans=34)-(Ans=25->V If Ans 0->H Else (Ans=26)-(Ans=24->H If Ans 0->V End End If H:Then A+3H->A If pxl-Test(B,Ans-H 1->D A Pt-On(Ans,~B,2 Pxl-Off(B,Ans-H Pxl-Off(B,Ans-2H Else B+3V->B If pxl-Test(Ans-V,A:1->D B Pt-On(A,~Ans,2 Pxl-Off(Ans-V,A Pxl-Off(Ans-2V,A End If D Goto SQ If pxl-Test(B,A:Then Pxl-Off(B,A Repeat not(pxl-Test(N-1,M-1 2+3int(31rand->M 2+3int(20rand->N End Pt-On(M,~N,2 Pt-Off(M,~N,3 Pxl-On(N,M Pxl-On(62,theta theta+1->theta If Ans=95 1->D S+3->S End If D Goto SQ If S:Then S-1->S:Else pxl-Test(F,E-1)-pxl-Test(F,E+1 If Ans:Then Pxl-On(F,E+2Ans Pt-Off(E,~F,2 E+3Ans->E Else 1-2pxl-Test(F+1,E Pxl-On(F+2Ans,E Pt-Off(E,~F,2 F+3Ans->F End:End Lbl SQ:End`

The only problem is that makes the game slower. If you were to run the original game and this game back-to-back, you can definitely tell a difference. Is there a faster way to do this so it doesn't affect performance? There are no memory leaks in this program. (This is programmed in Source Coder 3 on Cemetech, so ignore if some parts of the code if it looks funny. ~'s are negatives, and -> is the Store (→) character. theta is θ)

]]>If there are any other programs, shells, apps, or stuff like that that would be helpful to have on my calculator, could someone share that with me? Thanks!

]]>` ``ClrHome:ClrDraw 38→A:24→B:8→N:1→M randInt(0,A-1,N)→⸤SEEDX randInt(0,B-1,N)→⸤SEEDY {11,15,19,14,10,13,23,22,21,20}→⸤COLOR 0→R "√((⸤SEEDX(I)-K)²+(⸤SEEDY(I)-L)²"→u For(K,0,A) For(L,0,B) N→dim(⸤DISTS) For(I,1,N) u→⸤DISTS(I) End SortA(⸤DISTS) If ⸤DISTS(M)>R ⸤DISTS(M)→R End:End For(K,0,A) For(L,0,B) For(I,1,N) u→⸤DISTS(I) End SortA(⸤DISTS) ⸤COLOR(max(1,(min,23,int(round(10*⸤DISTS(M)/R,0)))))→C Pt-On(K,L,C) Pt-On(K,L,2,C) End:End For(I,1,N) Pt-On(⸤SEEDX(I),⸤SEEDY(I),BLACK) Pt-On(⸤SEEDX(I),⸤SEEDY(I),2,BLACK) End`

I've tried to optimize it as much as possible, and here is the program so far:

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`

(Learned it a few years ago, but I thought it was cool)

Anyway, after studying pi from mid-March (I knew 145 digits) to late April (I knew 500 digits), I finally added 4 digits so the number I knew would be divisible by 6. (Now it's 504.)

Anyway, here's the first 144 digits of pi and a TI-BASIC program to fact-check me with:

3.14 159 26 535 897 932 3846 264 3383 279 502 884 197 1693 99 37510 58209 74944 5 92307 816 406 286 208 9986 2803 482 53421 1706 798 21480 865132 8230 6647 0938 4460 95505 8223 1725 359

` ``{3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6,2,6,4,3,3,8,3,2,7,9,5,0,2,8,8,4,1,9,7,1,6,9,3,9,9,3,7,5,1,0,5,8,2,0,9,7,4,9,4,4,5,9,2,3,0,7,8,1,6,4,0,6,2,8,6,2,8,0,3,4,8,2,5,3,4,2,1,1,7,0,6,7,9,8,2,1,4,8,0,8,6,5,1,3,2,8,2,3,0,6,6,4,7,0,9,3,8,4,4,6,0,9,5,5,0,5,8,2,2,3,1,7,2,5,3,5,9→L₁ Disp sum(L₁`

If I made a mistake somewhere, you should just ckeck out the internet, I got the original fact from

three

.onefouronefive

.net. ]]>

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`