home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 2 / 002.d81 / crypto helper (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1984-01-01  |  6.3 KB  |  245 lines

  1. 10 POKE53272,21:POKE783,PEEK(783)AND254
  2. 20 POKE53280,3:POKE53281,1:PRINTCHR$(156):POKE53272,21
  3. 30 PRINTCHR$(147):POKE781,5:POKE782,12:SYS65520:PRINT"CRYPTOGRAM HELPER"
  4. 40 POKE781,8:POKE782,19:SYS65520:PRINT"BY"
  5. 50 POKE781,11:POKE782,14:SYS65520:PRINT"RUSS  GEPHART"
  6. 60 POKE781,19:POKE782,6:SYS65520:PRINT"TRANSLATED BY DONNA K. WOODY"
  7. 70 POKE781,23:POKE782,7:SYS65520:PRINT"PRESS SPACE BAR TO CONTINUE";:
  8. 80 POKE198,0:WAIT198,1:GETA$
  9. 90 PRINTCHR$(147):PRINT"DO YOU NEED INSTRUCTIONS (Y/N)?[160]";:
  10. 100 POKE198,0:WAIT198,1:GETA$
  11. 110 IFA$="Y"THENGOSUB6500:GOTO1010
  12. 120 IFA$="N"THEN1010
  13. 130 GOTO90
  14. 1000 REM CRYPTOGRAM PROGRAM BY RUSS GEPHART
  15. 1010 DIMSC(26),ST(26)
  16. 1020 PRINTCHR$(147):X=0
  17. 1025 V=22:SP$="                                      "
  18. 1030 PRINTCHR$(156):PRINT:PRINT"ENTER ENCRYPTED LINE (CR) TO END"
  19. 1040 INPUTA$(X)
  20. 1050 IFA$(X)=""THEN1070
  21. 1060 X=X+1:IFX<>7THEN1030
  22. 1070 PRINTCHR$(147):PRINTCHR$(156)
  23. 1080 FORZ=0TOX-1
  24. 1090 POKE781,Z*3+2:POKE782,1:SYS65520:PRINTA$(Z)
  25. 1100 NEXTZ
  26. 1110 POKE781,24:POKE782,24:SYS65520:PRINT"* FOR SUBMENU";
  27. 1113 POKE781,V:POKE782,0:SYS65520
  28. 1115 PRINTCHR$(144);:PRINT"SUBSTITUTE ? WITH ?[157][157][157][157][157][157][157][157]";:POKE198,0:WAIT198,1:GETB$
  29. 1120 IFASC(B$)=42THEN2000:REM *
  30. 1130 IFASC(B$)=13THEN1195:REM C/R
  31. 1140 PRINTB$;SPC(6):POKE198,0:WAIT198,1:GETC$
  32. 1150 IFASC(C$)=42THEN2000:REM *
  33. 1160 IFASC(C$)=13THEN1195:REM C/R
  34. 1170 PRINTC$
  35. 1180 GOSUB1230:REM SEARCH & SUB
  36. 1195 GOSUB1220
  37. 1200 GOTO1110
  38. 1210 REM  CLEAR BOTTOM LINES
  39. 1220 POKE781,V:POKE782,0:SYS65520:PRINTSP$:PRINTSP$:PRINTSP$;:RETURN
  40. 1230 REM  SEARCH & REPLACE
  41. 1240 FORZ=0TOX-1
  42. 1250 FORZZ=1TOLEN(A$(Z))
  43. 1260 IFMID$(A$(Z),ZZ,1)=B$THENGOSUB1300
  44. 1270 NEXTZZ
  45. 1280 NEXTZ
  46. 1290 RETURN
  47. 1300 POKE781,Z*3+1:POKE782,ZZ:SYS65520
  48. 1310 IFC$=" "THENPRINTC$:RETURN
  49. 1320 PRINTCHR$(159);C$;CHR$(144):RETURN
  50. 1999 :
  51. 2000 REM ESCAPE ROUTINES
  52. 2001 :
  53. 2010 GOSUB1210
  54. 2020 POKE781,V:POKE782,0:SYS65520:PRINT"*=CLEAR   E=EDIT   F=LETTER FREQUENCY"
  55. 2030 PRINT"S=SAVE    L=LOAD   R=RESTART"
  56. 2035 PRINT"H=HELP    X=EXIT";:POKE198,0:WAIT198,1:GETA$
  57. 2040 IFASC(A$)=42THEN2500
  58. 2050 IFA$="E"THEN3000
  59. 2060 IFA$="F"THEN3500
  60. 2070 IFA$="S"THEN4000
  61. 2080 IFA$="L"THEN4500
  62. 2090 IFA$="R"THEN5000
  63. 2095 IFA$="H"THENGOSUB6500:GOTO1080
  64. 2100 IFA$="X"THEN5500
  65. 2110 GOTO1195
  66. 2499 :
  67. 2500 REM CLEAR SCREEN ROUTINE
  68. 2501 :
  69. 2505 PRINTCHR$(19)
  70. 2510 FORZ=0TOX-1
  71. 2520 POKE781,Z*3+2:POKE782,1:FORC=1TOLEN(A$(Z))+1:PRINT" ";:NEXTC
  72. 2530 PRINT:PRINT:PRINT:NEXTZ
  73. 2540 GOTO1195
  74. 2999 :
  75. 3000 REM  EDIT ROUTINE
  76. 3001 :
  77. 3010 GOSUB1220
  78. 3020 POKE781,V:POKE782,0:SYS65520:PRINT"WHICH LINE TO RE-ENTER";
  79. 3025 POKE198,0:WAIT198,1:GETA$
  80. 3027 A=VAL(A$):IFA>ZORA<1GOTO3020
  81. 3030 POKE781,(A-1)*3+3:POKE782,0:SYS65520
  82. 3040 INPUTA$(A-1)
  83. 3050 GOSUB1210
  84. 3060 F=0
  85. 3070 GOTO1070
  86. 3499 :
  87. 3500 REM FREQUENCY ROUTINE
  88. 3501 :
  89. 3510 GOSUB1210
  90. 3520 IFF=1THEN3740
  91. 3530 FORCC=1TO26:SC(CC)=0:NEXT
  92. 3540 POKE781,V:POKE782,0:SYS65520:PRINT"COUNTING LETTERS";:
  93. 3550 FORZ=0TOX-1
  94. 3560 FORZZ=1TOLEN(A$(Z))
  95. 3570 J$=MID$(A$(Z),ZZ,1)
  96. 3580 IFASC(J$)>=65ANDASC(J$)<=90THENSC(ASC(J$)-64)=SC(ASC(J$)-64)+1
  97. 3590 NEXTZZ
  98. 3600 NEXTZ
  99. 3610 REM SORT ROUTINE
  100. 3620 GOSUB1210:POKE781,22:POKE782,0:SYS65520:PRINT"SORTING BY FREQUENCY":
  101. 3630 FORY=1TO26:ST(Y)=Y:NEXT
  102. 3640 FORY=1TO25
  103. 3650 GOSUB3680
  104. 3660 NEXTY
  105. 3670 GOTO3740
  106. 3680 IFSC(Y)>=SC(Y+1)THENRETURN
  107. 3690 J=SC(Y):SC(Y)=SC(Y+1):SC(Y+1)=J
  108. 3700 J=ST(Y):ST(Y)=ST(Y+1):ST(Y+1)=J
  109. 3710 IFY=1THENRETURN
  110. 3720 Y=Y-1
  111. 3730 GOTO3680
  112. 3740 GOSUB1210
  113. 3745 POKE781,V:POKE782,0:SYS65520:H=0:FLAG=0
  114. 3750 FORY=1TO26
  115. 3755 IFFLAG>36THENV=V+1:FLAG=0:H=0:POKE781,V:POKE782,H:SYS65520
  116. 3760 IFSC(Y)=0THEN3790
  117. 3765 ST$=MID$(STR$(SC(Y)),2)
  118. 3770 PRINTCHR$(ST(Y)+64);ST$" ";:FLAG=FLAG+3-(SC(Y)>9)
  119. 3780 NEXTY
  120. 3790 POKE198,0:WAIT198,1:GETA$
  121. 3800 F=1
  122. 3810 V=22:GOTO1195
  123. 3999 :
  124. 4000 REM SAVE ROUTINE
  125. 4001 :
  126. 4010 GOSUB1220
  127. 4020 POKE781,V:POKE782,0:SYS65520:PRINT"SAVE FILE?[160](Y/N) "
  128. 4025 POKE198,0:WAIT198,1:GETA$
  129. 4030 IFA$<>"Y"THEN1195
  130. 4040 GOSUB1220
  131. 4050 POKE781,V:POKE782,0:SYS65520:INPUT"NAME OF FILE TO SAVE ";F$
  132. 4060 IFF$=""THEN1195
  133. 4070 GOSUB1220
  134. 4080 POKE781,V:POKE782,0:SYS65520:PRINT"NOW SAVING ";F$
  135. 4090 OPEN15,8,15,"R0:"+F$+"="+F$:GOSUB6000
  136. 4100 IFCZ>20ANDCZ<>62ANDCZ<>63THEN4200
  137. 4110 IFCZ=62THEN:OPEN4,8,4,"0:"+F$+",SEQ,W":GOTO4155
  138. 4120 PRINT"FILE ALREADY EXISTS. CONTINUE (Y/N)";
  139. 4130 POKE198,0:WAIT198,1:GETA$
  140. 4140 IFA$<>"Y"THENCLOSE4:CLOSE15:GOTO1195
  141. 4150 PRINT#15,"S0:"+F$:OPEN4,8,4,"0:"+F$+",SEQ,W"
  142. 4155 FORZ=0TOX-1
  143. 4160 PRINT#4,A$(Z)
  144. 4165 NEXT
  145. 4170 CLOSE4:CLOSE15
  146. 4180 GOTO1195
  147. 4200 PRINT"THERE IS A DISK ERROR #"CZ"WHICH IS":PRINTMZ$
  148. 4210 PRINT"CONTINUE (Y/N)?[160]";:POKE198,0:WAIT198,1:GETA$
  149. 4220 IFA$<>"Y"THEN1195
  150. 4230 GOTO4010
  151. 4499 :
  152. 4500 REM  LOAD ROUTINE
  153. 4501 :
  154. 4510 GOSUB1220
  155. 4520 POKE781,V:POKE782,0:SYS65520:PRINT"LOAD FILE? (Y/N) ";
  156. 4525 POKE198,0:WAIT198,1:GETA$
  157. 4530 IFA$<>"Y"THEN1195
  158. 4540 GOSUB1220
  159. 4550 POKE781,V:POKE782,0:SYS65520:INPUT"NAME OF FILE TO LOAD ";F$
  160. 4560 IFF$=""THEN1195
  161. 4570 GOSUB1220
  162. 4580 POKE781,V:POKE782,0:SYS65520:PRINT"NOW LOADING ";F$:FF=0
  163. 4590 OPEN15,8,15:OPEN4,8,4,"0:"+F$+",SEQ,R":GOSUB6000
  164. 4600 IFCZ>20ANDCZ<>62ANDCZ<>63THEN4680
  165. 4610 IFCZ=62THENGOTO4630
  166. 4620 GOTO4655
  167. 4625 GOSUB1220:POKE781,V:POKE782,0:SYS65520
  168. 4630 PRINT"FILE NOT FOUND ON THIS DISK.  DO YOU"
  169. 4635 PRINT"WANT TO CONTINUE (Y/N)?[160]";:POKE198,0:WAIT198,1:GETA$
  170. 4640 IFA$<>"Y"THENCLOSE4:CLOSE15:GOTO1195
  171. 4645 CLOSE4:CLOSE15:GOTO4510
  172. 4655 Z=0
  173. 4660 INPUT#4,A$(Z)
  174. 4665 IFST=64THEN4670
  175. 4667 Z=Z+1:GOTO4660
  176. 4670 CLOSE4:CLOSE15:X=Z+1
  177. 4675 GOTO1070
  178. 4680 GOSUB1220:POKE781,V:POKE782,0:SYS65520:PRINT"THERE IS A DISK ERROR #"
  179. 4682 PRINTCZ" WHICH IS"
  180. 4685 PRINTMZ$TAB(LEN(MZ$)+2)"CONTINUE (Y/N)?[160]";:POKE198,0:WAIT198,1:GETA$
  181. 4690 IFA$<>"Y"THEN1195
  182. 4695 GOTO4510
  183. 4999 :
  184. 5000 REM  RESTART PROGRAM
  185. 5001 :
  186. 5010 CLR:GOTO1010
  187. 5500 REM EXIT PROGRAM
  188. 5510 PRINTCHR$(147)
  189. 5520 PRINT"[147]LOAD"CHR$(34)"PAYLOAD"CHR$(34)",8":PRINT"RUN"
  190. 5530 POKE631,13:POKE632,13:POKE198,2
  191. 5540 END
  192. 5997 :
  193. 5998 REM DOS ERROR CHECK
  194. 5999 :
  195. 6000 INPUT#15,CZ,MZ$,TZ,SZ:RETURN
  196. 6497 :
  197. 6498 REM  INSTRUCTIONS
  198. 6499 :
  199. 6500 PRINTCHR$(147):POKE53272,23:PRINTCHR$(156)
  200. 6510 PRINT"     [215]ELCOME TO [195][210][217][208][212][207][199][210][193][205] [200][197][204][208][197][210]":PRINT:PRINT
  201. 6520 PRINT"  [215]ITH THIS PROGRAM, YOU'LL BE ABLE TO":PRINT
  202. 6530 PRINT"SOLVE CRYPTOGRAM PUZZLES WITHOUT":PRINT
  203. 6540 PRINT"WEARING A HOLE IN THE PAPER!":PRINT
  204. 6550 PRINT"  [217]OU HAVE THE OPTION OF ENTERING UP TO":PRINT
  205. 6560 PRINT"7 LINES OF CODED TEXT.  [212]HEN YOU CAN":PRINT
  206. 6570 PRINT"SUBSTITUTE ONE LETTER FOR ANOTHER UNTIL":PRINT
  207. 6580 PRINT"YOU SOLVE THE PUZZLE."
  208. 6590 POKE781,23:POKE782,0:SYS65520:PRINT"[208][210][197][211][211][160][211][208][193][195][197][160][194][193][210][160][212][207][160][195][207][206][212][201][206][213][197]";:
  209. 6595 POKE198,0:WAIT198,1:GETA$
  210. 6600 PRINTCHR$(147):PRINT"    [193] '*' ENTERED WHEN YOU ARE ASKED":PRINT
  211. 6610 PRINT"FOR A LETTER, WILL GIVE YOU A SUB-MENU.":PRINT
  212. 6620 PRINT"[200]ERE ARE THE OPTIONS YOU WILL HAVE:":PRINT
  213. 6630 PRINT"     * = [195][204][197][193][210] ALL GUSSES FROM THE"
  214. 6640 PRINT"         SCREEN, BUT LEAVE THE TEXT":PRINT
  215. 6650 PRINT"     [197] =[160][197][196][201][212] A LINE OF TEXT YOU HAVE"
  216. 6660 PRINT"         ENTERED (CORRECT ANY TYPOS"
  217. 6670 PRINT"         WITH THIS FUNCTION)":PRINT
  218. 6680 PRINT"     [198][160]=[160][204][197][212][212][197][210][160][198][210][197][209][213][197][206][195][217] WILL TELL YOU"
  219. 6690 PRINT"         HOW MANY TIMES EACH LETTER OF"
  220. 6700 PRINT"         THE ENCRYPTED TEXT APPEARS."
  221. 6710 PRINT"         [212]HE FIRST TIME THIS IS USED,"
  222. 6720 PRINT"         IT TAKES A WHILE, SO BE"
  223. 6725 PRINT"         PATIENT."
  224. 6770 POKE781,23:POKE782,0:SYS65520:PRINT"[208][210][197][211][211][160][211][208][193][195][197][160][194][193][210][160][212][207][160][195][207][206][212][201][206][213][197]";:
  225. 6775 POKE198,0:WAIT198,1:GETA$
  226. 6776 PRINTCHR$(147)
  227. 6780 PRINT"     [211][160]=[160][211][193][214][197] ENCRYPTED TEXT SO YOU CAN"
  228. 6790 PRINT"         WORK ON IT LATER.  [212]HE 64 WILL"
  229. 6800 PRINT"         CHECK TO SEE IF THE FILE"
  230. 6810 PRINT"         ALREADY EXISTS ON DISK.":PRINT
  231. 6820 PRINT"     [204][160]= [204][207][193][196] A FILE FROM DISK.":PRINT
  232. 6830 PRINT"     [210][160]= [210][197][211][212][193][210][212] THE PROGRAM.  [217]OU WILL"
  233. 6840 PRINT"         BE ABLE TO ENTER NEW TEXT."
  234. 6850 PRINT"         [206][207][212][197]: [193]LL TEXT THAT YOU WERE"
  235. 6860 PRINT"         WORKING ON WILL BE LOST.":PRINT
  236. 6862 PRINT"     [200][160]=[160][200][197][204][208] WILL GIVE YOU THESE"
  237. 6864 PRINT"         INSTRUCTIONS AGAIN (IN CASE"
  238. 6866 PRINT"         YOU FORGET ANY OF THEM).  [193]NY"
  239. 6868 PRINT"         SUBSTITUTIONS YOU HAVE MADE"
  240. 6869 PRINT"         WILL BE LOST.":PRINT
  241. 6870 PRINT"     [216] = [197][216][201][212] LEAVE THE PROGRAM.  [217]OUR"
  242. 6880 PRINT"         TEXT WILL NOT BE SAVED."
  243. 6890 POKE781,23:POKE782,0:SYS65520:PRINT"[208][210][197][211][211][160][211][208][193][195][197][160][194][193][210][160][212][207][160][195][207][206][212][201][206][213][197]";:
  244. 6900 POKE198,0:WAIT198,1:GETA$:PRINTCHR$(147):POKE53272,21:RETURN
  245.