Vigenere Throughout all of European history, one of the most sophisticated ciphers cryptologists came up with was the Vigenere Cipher, it wasn't until the Great War (1914-1918) that someone was able to crack it, and even then it is not easy. When you select ENCRYPT on the MAIN MENU you can encrypt any plaintext. Just enter the plaintext and the keyword at their respective prompts and the program will do the work. When you select DECRYPT on the MAIN MENU this program will decrypt any ciphertext using the same keyword used for encryption. Just enter the ciphertext and the keyword at their respective prompts. This program also includes a help. This programs two major faults are that it takes up just over 10000 bytes of space on the calculator and that it runs very slow. I encourage any of you who can to produce a smaller and faster one. You can upload this program into your calculator with the TI-GRAPH LINK, however if you do not own one I have included the code below: \start83\ \comment=Program file dated 08/19/00, 11:50 \name=VIGENERE \file=C:\VIGENERE.TXT Lbl S ClrHome Menu("MAIN MENU","ENCRYPT",EN,"DECRYPT",DE,"HELP",H,"EXIT",E) Lbl E Stop Lbl H ClrDraw Text(0,0,"TO ENCRYPT THE PLAINTEXT, Text(6,0,"GO TO ENCRYPT ON THE MAIN Text(12,0,"MENU. ENTER PLAINTEXT AND Text(18,0,"KEY AT APPROPRIATE Text(24,0,"PROMPTS, THERE ARE CERTAIN Text(30,0,"RESTRICTIONS ON WHAT MAY Text(36,0,"OR MAY NOT BE IN PLAINTEXT Text(42,0,"AND KEY, THEY WILL BE Text(48,0,"DISCUSSED LATER. Pause :ClrDraw Text(0,0,"THIS MACHINE RUNS VERY Text(6,0,"SLOWLY SO DO NOT BE" Text(12,0,"SUPRISED BY THIS. WHEN" Text(18,0,"FINISHED, THE CALC WILL" Text(24,0,"DISPLAY THE CIPHERTEXT AND Text(30,0,"STORE IT ON Str1." Pause :ClrDraw Text(0,0,"TO DECRYPT THE CIPHERTEXT, Text(6,0,"GO TO DECYRPT ON THE MAIN Text(12,0,"MENU. ENTER CIPHERTEXT AND Text(18,0,"KEY AT APPROPRIATE Text(24,0,"PROMPTS, AGAIN THERE ARE Text(30,0,"CERTAIN RESTRICTIONS Text(36,0,"CONCERNING WHAT MAY OR MAY Text(42,0,"NOT BE IN THE CIPHERTEXT Text(48,0,"AND KEY, THEY WILL BE Text(54,0,"DISCUSSED LATER. Pause :ClrDraw Text(0,0,"THIS MACHINE RUNS VERY Text(6,0,"SLOWLY, DO NOT BE SUPRISED Text(12,0,"BY THIS. WHEN THE CALC IS Text(18,0,"FINISHED, THE PLAINTEXT Text(24,0,"WILL BE DISPLAYED AND Text(30,0,"STORED ON Str1." Pause :ClrDraw Text(0,0,"THE KEYWORD IS VERY Text(6,0,"IMPORTANT. YOU MUST NOT Text(12,0,"FORGET IT. IF YOU DO NOT Text(18,0,"HAVE THE SAME EXACT KEY Text(24,0,"USED TO ENCRYPT THE Text(30,0,"PLAINTEXT, YOU WILL NOT BE Text(36,0,"ABLE TO DECIPHER IT. THE KEY Text(42,0,"WILL NOT BE INCLUDED WITH Text(48,0,"THE CIPHERTEXT." Pause :ClrDraw Text(0,0,"THE RESTRICTIONS ON WHAT Text(6,0,"MAY OR MAY NOT BE USED IN THE Text(12,0,"PLAINTEXT, KEYWORD, AND Text(18,0,"CIPHERTEXT ARE AS FOLLOWS: Text(24,0,"ONLY UPPERCASE LETTERS OF Text(30,0,"THE ALPHABET ARE TO BE Text(36,0,"USED, NO LOWERCASE Text(42,0,"LETTERS, NO NUMERALS, NO Text(48,0,"PUNCTUATION, NO SPACES, Text(54,0,"AND NO OTHER SYMBOLS." Pause :ClrDraw Goto S Lbl DE ClrHome SetUpEditor Input "CIPHERTEXT:",Str1 Input "KEY:",Str2 If length(Str1)>999 or length(Str2)>999:Goto DE For(T,1,length(Str1)) If sub(Str1,T,1)\!=\"A" and sub(Str1,T,1)\!=\"B" and sub(Str1,T,1)\!=\"C" and sub(Str1,T,1)\!=\"D" and sub(Str1,T,1)\!=\"E" and sub(Str1,T,1)\!=\"F" and sub(Str1,T,1)\!=\"G" and sub(Str1,T,1)\!=\"H" and sub(Str1,T,1)\!=\"I" and sub(Str1,T,1)\!=\"J" and sub(Str1,T,1)\!=\"K" and sub(Str1,T,1)\!=\"L" and sub(Str1,T,1)\!=\"M" and sub(Str1,T,1)\!=\"N" and sub(Str1,T,1)\!=\"O" and sub(Str1,T,1)\!=\"P" and sub(Str1,T,1)\!=\"Q" and sub(Str1,T,1)\!=\"R" and sub(Str1,T,1)\!=\"S" and sub(Str1,T,1)\!=\"T" and sub(Str1,T,1)\!=\"U" and sub(Str1,T,1)\!=\"V" and sub(Str1,T,1)\!=\"W" and sub(Str1,T,1)\!=\"X" and sub(Str1,T,1)\!=\"Y" and sub(Str1,T,1)\!=\"Z" Then Goto DE End End For(T,1,length(Str2)) If sub(Str2,T,1)\!=\"A" and sub(Str2,T,1)\!=\"B" and sub(Str2,T,1)\!=\"C" and sub(Str2,T,1)\!=\"D" and sub(Str2,T,1)\!=\"E" and sub(Str2,T,1)\!=\"F" and sub(Str2,T,1)\!=\"G" and sub(Str2,T,1)\!=\"H" and sub(Str2,T,1)\!=\"I" and sub(Str2,T,1)\!=\"J" and sub(Str2,T,1)\!=\"K" and sub(Str2,T,1)\!=\"L" and sub(Str2,T,1)\!=\"M" and sub(Str2,T,1)\!=\"N" and sub(Str2,T,1)\!=\"O" and sub(Str2,T,1)\!=\"P" and sub(Str2,T,1)\!=\"Q" and sub(Str2,T,1)\!=\"R" and sub(Str2,T,1)\!=\"S" and sub(Str2,T,1)\!=\"T" and sub(Str2,T,1)\!=\"U" and sub(Str2,T,1)\!=\"V" and sub(Str2,T,1)\!=\"W" and sub(Str2,T,1)\!=\"X" and sub(Str2,T,1)\!=\"Y" and sub(Str2,T,1)\!=\"Z" Then Goto DE End End ClrHome Output(4,6,"BUSY") For(T,1,length(Str1)) If sub(Str1,T,1)="A":1\->\L\1\(T) If sub(Str1,T,1)="B":2\->\L\1\(T) If sub(Str1,T,1)="C":3\->\L\1\(T) If sub(Str1,T,1)="D":4\->\L\1\(T) If sub(Str1,T,1)="E":5\->\L\1\(T) If sub(Str1,T,1)="F":6\->\L\1\(T) If sub(Str1,T,1)="G":7\->\L\1\(T) If sub(Str1,T,1)="H":8\->\L\1\(T) If sub(Str1,T,1)="I":9\->\L\1\(T) If sub(Str1,T,1)="J":10\->\L\1\(T) If sub(Str1,T,1)="K":11\->\L\1\(T) If sub(Str1,T,1)="L":12\->\L\1\(T) If sub(Str1,T,1)="M":13\->\L\1\(T) If sub(Str1,T,1)="N":14\->\L\1\(T) If sub(Str1,T,1)="O":15\->\L\1\(T) If sub(Str1,T,1)="P":16\->\L\1\(T) If sub(Str1,T,1)="Q":17\->\L\1\(T) If sub(Str1,T,1)="R":18\->\L\1\(T) If sub(Str1,T,1)="S":19\->\L\1\(T) If sub(Str1,T,1)="T":20\->\L\1\(T) If sub(Str1,T,1)="U":21\->\L\1\(T) If sub(Str1,T,1)="V":22\->\L\1\(T) If sub(Str1,T,1)="W":23\->\L\1\(T) If sub(Str1,T,1)="X":24\->\L\1\(T) If sub(Str1,T,1)="Y":25\->\L\1\(T) If sub(Str1,T,1)="Z":26\->\L\1\(T) End int(length(Str1)/length(Str2))+1\->\Z " "\->\Str3 For(T,1,Z) Str3+Str2\->\Str3 End sub(Str3,2,length(Str3)-1)\->\Str3 sub(Str3,1,length(Str1))\->\Str3 For(T,1,length(Str3)) If sub(Str3,T,1)="A":1\->\L\2\(T) If sub(Str3,T,1)="B":2\->\L\2\(T) If sub(Str3,T,1)="C":3\->\L\2\(T) If sub(Str3,T,1)="D":4\->\L\2\(T) If sub(Str3,T,1)="E":5\->\L\2\(T) If sub(Str3,T,1)="F":6\->\L\2\(T) If sub(Str3,T,1)="G":7\->\L\2\(T) If sub(Str3,T,1)="H":8\->\L\2\(T) If sub(Str3,T,1)="I":9\->\L\2\(T) If sub(Str3,T,1)="J":10\->\L\2\(T) If sub(Str3,T,1)="K":11\->\L\2\(T) If sub(Str3,T,1)="L":12\->\L\2\(T) If sub(Str3,T,1)="M":13\->\L\2\(T) If sub(Str3,T,1)="N":14\->\L\2\(T) If sub(Str3,T,1)="O":15\->\L\2\(T) If sub(Str3,T,1)="P":16\->\L\2\(T) If sub(Str3,T,1)="Q":17\->\L\2\(T) If sub(Str3,T,1)="R":18\->\L\2\(T) If sub(Str3,T,1)="S":19\->\L\2\(T) If sub(Str3,T,1)="T":20\->\L\2\(T) If sub(Str3,T,1)="U":21\->\L\2\(T) If sub(Str3,T,1)="V":22\->\L\2\(T) If sub(Str3,T,1)="W":23\->\L\2\(T) If sub(Str3,T,1)="X":24\->\L\2\(T) If sub(Str3,T,1)="Y":25\->\L\2\(T) If sub(Str3,T,1)="Z":26\->\L\2\(T) End L\1\-L\2\\->\L\3\ ClrList L\1\,L\2\:DelVar Str1:DelVar Str2:DelVar Str3 " "\->\Str4 For(T,1,dim(L\3\)) L\3\(T)+1\->\L\3\(T) If L\3\(T)<1:L\3\(T)+26\->\L\3\(T) If L\3\(T)=1:Str4+"A"\->\Str4 If L\3\(T)=2:Str4+"B"\->\Str4 If L\3\(T)=3:Str4+"C"\->\Str4 If L\3\(T)=4:Str4+"D"\->\Str4 If L\3\(T)=5:Str4+"E"\->\Str4 If L\3\(T)=6:Str4+"F"\->\Str4 If L\3\(T)=7:Str4+"G"\->\Str4 If L\3\(T)=8:Str4+"H"\->\Str4 If L\3\(T)=9:Str4+"I"\->\Str4 If L\3\(T)=10:Str4+"J"\->\Str4 If L\3\(T)=11:Str4+"K"\->\Str4 If L\3\(T)=12:Str4+"L"\->\Str4 If L\3\(T)=13:Str4+"M"\->\Str4 If L\3\(T)=14:Str4+"N"\->\Str4 If L\3\(T)=15:Str4+"O"\->\Str4 If L\3\(T)=16:Str4+"P"\->\Str4 If L\3\(T)=17:Str4+"Q"\->\Str4 If L\3\(T)=18:Str4+"R"\->\Str4 If L\3\(T)=19:Str4+"S"\->\Str4 If L\3\(T)=20:Str4+"T"\->\Str4 If L\3\(T)=21:Str4+"U"\->\Str4 If L\3\(T)=22:Str4+"V"\->\Str4 If L\3\(T)=23:Str4+"W"\->\Str4 If L\3\(T)=24:Str4+"X"\->\Str4 If L\3\(T)=25:Str4+"Y"\->\Str4 If L\3\(T)=26:Str4+"Z"\->\Str4 End sub(Str4,2,length(Str4)-1)\->\Str1 DelVar Str4:DelVar T:DelVar Z ClrList L\3\ ClrHome Disp Str1 Pause Goto S Lbl DE ClrHome SetUpEditor Input "CIPHERTEXT:",Str1 Input "KEY:",Str2 If length(Str1)>999 or length(Str2)>999:Goto DE For(T,1,length(Str1)) If sub(Str1,T,1)\!=\"A" and sub(Str1,T,1)\!=\"B" and sub(Str1,T,1)\!=\"C" and sub(Str1,T,1)\!=\"D" and sub(Str1,T,1)\!=\"E" and sub(Str1,T,1)\!=\"F" and sub(Str1,T,1)\!=\"G" and sub(Str1,T,1)\!=\"H" and sub(Str1,T,1)\!=\"I" and sub(Str1,T,1)\!=\"J" and sub(Str1,T,1)\!=\"K" and sub(Str1,T,1)\!=\"L" and sub(Str1,T,1)\!=\"M" and sub(Str1,T,1)\!=\"N" and sub(Str1,T,1)\!=\"O" and sub(Str1,T,1)\!=\"P" and sub(Str1,T,1)\!=\"Q" and sub(Str1,T,1)\!=\"R" and sub(Str1,T,1)\!=\"S" and sub(Str1,T,1)\!=\"T" and sub(Str1,T,1)\!=\"U" and sub(Str1,T,1)\!=\"V" and sub(Str1,T,1)\!=\"W" and sub(Str1,T,1)\!=\"X" and sub(Str1,T,1)\!=\"Y" and sub(Str1,T,1)\!=\"Z" Then Goto DE End End For(T,1,length(Str2)) If sub(Str2,T,1)\!=\"A" and sub(Str2,T,1)\!=\"B" and sub(Str2,T,1)\!=\"C" and sub(Str2,T,1)\!=\"D" and sub(Str2,T,1)\!=\"E" and sub(Str2,T,1)\!=\"F" and sub(Str2,T,1)\!=\"G" and sub(Str2,T,1)\!=\"H" and sub(Str2,T,1)\!=\"I" and sub(Str2,T,1)\!=\"J" and sub(Str2,T,1)\!=\"K" and sub(Str2,T,1)\!=\"L" and sub(Str2,T,1)\!=\"M" and sub(Str2,T,1)\!=\"N" and sub(Str2,T,1)\!=\"O" and sub(Str2,T,1)\!=\"P" and sub(Str2,T,1)\!=\"Q" and sub(Str2,T,1)\!=\"R" and sub(Str2,T,1)\!=\"S" and sub(Str2,T,1)\!=\"T" and sub(Str2,T,1)\!=\"U" and sub(Str2,T,1)\!=\"V" and sub(Str2,T,1)\!=\"W" and sub(Str2,T,1)\!=\"X" and sub(Str2,T,1)\!=\"Y" and sub(Str2,T,1)\!=\"Z" Then Goto DE End End ClrHome Output(4,6,"BUSY") For(T,1,length(Str1)) If sub(Str1,T,1)="A":1\->\L\1\(T) If sub(Str1,T,1)="B":2\->\L\1\(T) If sub(Str1,T,1)="C":3\->\L\1\(T) If sub(Str1,T,1)="D":4\->\L\1\(T) If sub(Str1,T,1)="E":5\->\L\1\(T) If sub(Str1,T,1)="F":6\->\L\1\(T) If sub(Str1,T,1)="G":7\->\L\1\(T) If sub(Str1,T,1)="H":8\->\L\1\(T) If sub(Str1,T,1)="I":9\->\L\1\(T) If sub(Str1,T,1)="J":10\->\L\1\(T) If sub(Str1,T,1)="K":11\->\L\1\(T) If sub(Str1,T,1)="L":12\->\L\1\(T) If sub(Str1,T,1)="M":13\->\L\1\(T) If sub(Str1,T,1)="N":14\->\L\1\(T) If sub(Str1,T,1)="O":15\->\L\1\(T) If sub(Str1,T,1)="P":16\->\L\1\(T) If sub(Str1,T,1)="Q":17\->\L\1\(T) If sub(Str1,T,1)="R":18\->\L\1\(T) If sub(Str1,T,1)="S":19\->\L\1\(T) If sub(Str1,T,1)="T":20\->\L\1\(T) If sub(Str1,T,1)="U":21\->\L\1\(T) If sub(Str1,T,1)="V":22\->\L\1\(T) If sub(Str1,T,1)="W":23\->\L\1\(T) If sub(Str1,T,1)="X":24\->\L\1\(T) If sub(Str1,T,1)="Y":25\->\L\1\(T) If sub(Str1,T,1)="Z":26\->\L\1\(T) End int(length(Str1)/length(Str2))+1\->\Z " "\->\Str3 For(T,1,Z) Str3+Str2\->\Str3 End sub(Str3,2,length(Str3)-1)\->\Str3 sub(Str3,1,length(Str1))\->\Str3 For(T,1,length(Str3)) If sub(Str3,T,1)="A":1\->\L\2\(T) If sub(Str3,T,1)="B":2\->\L\2\(T) If sub(Str3,T,1)="C":3\->\L\2\(T) If sub(Str3,T,1)="D":4\->\L\2\(T) If sub(Str3,T,1)="E":5\->\L\2\(T) If sub(Str3,T,1)="F":6\->\L\2\(T) If sub(Str3,T,1)="G":7\->\L\2\(T) If sub(Str3,T,1)="H":8\->\L\2\(T) If sub(Str3,T,1)="I":9\->\L\2\(T) If sub(Str3,T,1)="J":10\->\L\2\(T) If sub(Str3,T,1)="K":11\->\L\2\(T) If sub(Str3,T,1)="L":12\->\L\2\(T) If sub(Str3,T,1)="M":13\->\L\2\(T) If sub(Str3,T,1)="N":14\->\L\2\(T) If sub(Str3,T,1)="O":15\->\L\2\(T) If sub(Str3,T,1)="P":16\->\L\2\(T) If sub(Str3,T,1)="Q":17\->\L\2\(T) If sub(Str3,T,1)="R":18\->\L\2\(T) If sub(Str3,T,1)="S":19\->\L\2\(T) If sub(Str3,T,1)="T":20\->\L\2\(T) If sub(Str3,T,1)="U":21\->\L\2\(T) If sub(Str3,T,1)="V":22\->\L\2\(T) If sub(Str3,T,1)="W":23\->\L\2\(T) If sub(Str3,T,1)="X":24\->\L\2\(T) If sub(Str3,T,1)="Y":25\->\L\2\(T) If sub(Str3,T,1)="Z":26\->\L\2\(T) End L\1\-L\2\\->\L\3\ ClrList L\1\,L\2\:DelVar Str1:DelVar Str2:DelVar Str3 " "\->\Str4 For(T,1,dim(L\3\)) L\3\(T)+1\->\L\3\(T) If L\3\(T)<1:L\3\(T)+26\->\L\3\(T) If L\3\(T)=1:Str4+"A"\->\Str4 If L\3\(T)=2:Str4+"B"\->\Str4 If L\3\(T)=3:Str4+"C"\->\Str4 If L\3\(T)=4:Str4+"D"\->\Str4 If L\3\(T)=5:Str4+"E"\->\Str4 If L\3\(T)=6:Str4+"F"\->\Str4 If L\3\(T)=7:Str4+"G"\->\Str4 If L\3\(T)=8:Str4+"H"\->\Str4 If L\3\(T)=9:Str4+"I"\->\Str4 If L\3\(T)=10:Str4+"J"\->\Str4 If L\3\(T)=11:Str4+"K"\->\Str4 If L\3\(T)=12:Str4+"L"\->\Str4 If L\3\(T)=13:Str4+"M"\->\Str4 If L\3\(T)=14:Str4+"N"\->\Str4 If L\3\(T)=15:Str4+"O"\->\Str4 If L\3\(T)=16:Str4+"P"\->\Str4 If L\3\(T)=17:Str4+"Q"\->\Str4 If L\3\(T)=18:Str4+"R"\->\Str4 If L\3\(T)=19:Str4+"S"\->\Str4 If L\3\(T)=20:Str4+"T"\->\Str4 If L\3\(T)=21:Str4+"U"\->\Str4 If L\3\(T)=22:Str4+"V"\->\Str4 If L\3\(T)=23:Str4+"W"\->\Str4 If L\3\(T)=24:Str4+"X"\->\Str4 If L\3\(T)=25:Str4+"Y"\->\Str4 If L\3\(T)=26:Str4+"Z"\->\Str4 End sub(Str4,2,length(Str4)-1)\->\Str1 DelVar Str4 ClrList L\3\ ClrHome Disp Str1 Pause Goto S Lbl EN ClrAllLists SetUpEditor Input "PLAINTEXT:",Str1 Input "KEY:",Str2 For(T,1,length(Str1)) If sub(Str1,T,1)\!=\"A" and sub(Str1,T,1)\!=\"B" and sub(Str1,T,1)\!=\"C" and sub(Str1,T,1)\!=\"D" and sub(Str1,T,1)\!=\"E" and sub(Str1,T,1)\!=\"F" and sub(Str1,T,1)\!=\"G" and sub(Str1,T,1)\!=\"H" and sub(Str1,T,1)\!=\"I" and sub(Str1,T,1)\!=\"J" and sub(Str1,T,1)\!=\"K" and sub(Str1,T,1)\!=\"L" and sub(Str1,T,1)\!=\"M" and sub(Str1,T,1)\!=\"N" and sub(Str1,T,1)\!=\"O" and sub(Str1,T,1)\!=\"P" and sub(Str1,T,1)\!=\"Q" and sub(Str1,T,1)\!=\"R" and sub(Str1,T,1)\!=\"S" and sub(Str1,T,1)\!=\"T" and sub(Str1,T,1)\!=\"U" and sub(Str1,T,1)\!=\"V" and sub(Str1,T,1)\!=\"W" and sub(Str1,T,1)\!=\"X" and sub(Str1,T,1)\!=\"Y" and sub(Str1,T,1)\!=\"Z" Then Goto EN End End For(T,1,length(Str2)) If sub(Str2,T,1)\!=\"A" and sub(Str2,T,1)\!=\"B" and sub(Str2,T,1)\!=\"C" and sub(Str2,T,1)\!=\"D" and sub(Str2,T,1)\!=\"E" and sub(Str2,T,1)\!=\"F" and sub(Str2,T,1)\!=\"G" and sub(Str2,T,1)\!=\"H" and sub(Str2,T,1)\!=\"I" and sub(Str2,T,1)\!=\"J" and sub(Str2,T,1)\!=\"K" and sub(Str2,T,1)\!=\"L" and sub(Str2,T,1)\!=\"M" and sub(Str2,T,1)\!=\"N" and sub(Str2,T,1)\!=\"O" and sub(Str2,T,1)\!=\"P" and sub(Str2,T,1)\!=\"Q" and sub(Str2,T,1)\!=\"R" and sub(Str2,T,1)\!=\"S" and sub(Str2,T,1)\!=\"T" and sub(Str2,T,1)\!=\"U" and sub(Str2,T,1)\!=\"V" and sub(Str2,T,1)\!=\"W" and sub(Str2,T,1)\!=\"X" and sub(Str2,T,1)\!=\"Y" and sub(Str2,T,1)\!=\"Z" Then Goto EN End End ClrHome Output(4,6,"BUSY") For(T,1,length(Str1)) If sub(Str1,T,1)="A":1\->\L\1\(T) If sub(Str1,T,1)="B":2\->\L\1\(T) If sub(Str1,T,1)="C":3\->\L\1\(T) If sub(Str1,T,1)="D":4\->\L\1\(T) If sub(Str1,T,1)="E":5\->\L\1\(T) If sub(Str1,T,1)="F":6\->\L\1\(T) If sub(Str1,T,1)="G":7\->\L\1\(T) If sub(Str1,T,1)="H":8\->\L\1\(T) If sub(Str1,T,1)="I":9\->\L\1\(T) If sub(Str1,T,1)="J":10\->\L\1\(T) If sub(Str1,T,1)="K":11\->\L\1\(T) If sub(Str1,T,1)="L":12\->\L\1\(T) If sub(Str1,T,1)="M":13\->\L\1\(T) If sub(Str1,T,1)="N":14\->\L\1\(T) If sub(Str1,T,1)="O":15\->\L\1\(T) If sub(Str1,T,1)="P":16\->\L\1\(T) If sub(Str1,T,1)="Q":17\->\L\1\(T) If sub(Str1,T,1)="R":18\->\L\1\(T) If sub(Str1,T,1)="S":19\->\L\1\(T) If sub(Str1,T,1)="T":20\->\L\1\(T) If sub(Str1,T,1)="U":21\->\L\1\(T) If sub(Str1,T,1)="V":22\->\L\1\(T) If sub(Str1,T,1)="W":23\->\L\1\(T) If sub(Str1,T,1)="X":24\->\L\1\(T) If sub(Str1,T,1)="Y":25\->\L\1\(T) If sub(Str1,T,1)="Z":26\->\L\1\(T) End int(length(Str1)/length(Str2))+1\->\Z " "\->\Str3 For(T,1,Z) Str3+Str2\->\Str3 End sub(Str3,2,length(Str3)-1)\->\Str3 sub(Str3,1,length(Str1))\->\Str3 For(T,1,length(Str3)) If sub(Str3,T,1)="A":1\->\L\2\(T) If sub(Str3,T,1)="B":2\->\L\2\(T) If sub(Str3,T,1)="C":3\->\L\2\(T) If sub(Str3,T,1)="D":4\->\L\2\(T) If sub(Str3,T,1)="E":5\->\L\2\(T) If sub(Str3,T,1)="F":6\->\L\2\(T) If sub(Str3,T,1)="G":7\->\L\2\(T) If sub(Str3,T,1)="H":8\->\L\2\(T) If sub(Str3,T,1)="I":9\->\L\2\(T) If sub(Str3,T,1)="J":10\->\L\2\(T) If sub(Str3,T,1)="K":11\->\L\2\(T) If sub(Str3,T,1)="L":12\->\L\2\(T) If sub(Str3,T,1)="M":13\->\L\2\(T) If sub(Str3,T,1)="N":14\->\L\2\(T) If sub(Str3,T,1)="O":15\->\L\2\(T) If sub(Str3,T,1)="P":16\->\L\2\(T) If sub(Str3,T,1)="Q":17\->\L\2\(T) If sub(Str3,T,1)="R":18\->\L\2\(T) If sub(Str3,T,1)="S":19\->\L\2\(T) If sub(Str3,T,1)="T":20\->\L\2\(T) If sub(Str3,T,1)="U":21\->\L\2\(T) If sub(Str3,T,1)="V":22\->\L\2\(T) If sub(Str3,T,1)="W":23\->\L\2\(T) If sub(Str3,T,1)="X":24\->\L\2\(T) If sub(Str3,T,1)="Y":25\->\L\2\(T) If sub(Str3,T,1)="Z":26\->\L\2\(T) End L\1\+L\2\\->\L\3\ ClrList L\1\,L\2\ " "\->\Str4 For(T,1,dim(L\3\)) L\3\(T)-1\->\L\3\(T) If L\3\(T)>26:L\3\(T)-26\->\L\3\(T) If L\3\(T)=1:Str4+"A"\->\Str4 If L\3\(T)=2:Str4+"B"\->\Str4 If L\3\(T)=3:Str4+"C"\->\Str4 If L\3\(T)=4:Str4+"D"\->\Str4 If L\3\(T)=5:Str4+"E"\->\Str4 If L\3\(T)=6:Str4+"F"\->\Str4 If L\3\(T)=7:Str4+"G"\->\Str4 If L\3\(T)=8:Str4+"H"\->\Str4 If L\3\(T)=9:Str4+"I"\->\Str4 If L\3\(T)=10:Str4+"J"\->\Str4 If L\3\(T)=11:Str4+"K"\->\Str4 If L\3\(T)=12:Str4+"L"\->\Str4 If L\3\(T)=13:Str4+"M"\->\Str4 If L\3\(T)=14:Str4+"N"\->\Str4 If L\3\(T)=15:Str4+"O"\->\Str4 If L\3\(T)=16:Str4+"P"\->\Str4 If L\3\(T)=17:Str4+"Q"\->\Str4 If L\3\(T)=18:Str4+"R"\->\Str4 If L\3\(T)=19:Str4+"S"\->\Str4 If L\3\(T)=20:Str4+"T"\->\Str4 If L\3\(T)=21:Str4+"U"\->\Str4 If L\3\(T)=22:Str4+"V"\->\Str4 If L\3\(T)=23:Str4+"W"\->\Str4 If L\3\(T)=24:Str4+"X"\->\Str4 If L\3\(T)=25:Str4+"Y"\->\Str4 If L\3\(T)=26:Str4+"Z"\->\Str4 End sub(Str4,2,length(Str4)-1)\->\Str1 ClrHome Disp Str1 DelVar Str2:DelVar Str3:DelVar Str4 Pause Goto S \stop83\ \!=\ means 'not equal to' \->\ means 'store' L\1\ means 'list 1' and so on with 2 and 3 I made this program with both my calculator and my computer without anyone else, if it, for some reason, is an exact copy of someone else's program, this was purely coincidental.