home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Arcade / SWITCH (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  7.3 KB  |  297 lines

  1. 10 GOSUB500:GOSUB1000:GOSUB1500
  2. 20 POKEV+21,255
  3. 30 Q=1:FORI=0TO7STEP2:POKEV+I,RX(Q):Q=Q+1:NEXT
  4. 40 FORI=0TO7STEP2:POKEV+1+I,RY:NEXT
  5. 50 Q=1:FORI=8TO15STEP2:POKEV+I,BX(Q):Q=Q+1:NEXT
  6. 60 FORI=8TO15STEP2:POKEV+1+I,BY:NEXT
  7. 70 T=1:GOSUB3900:FORD=1TO4000:NEXT
  8. 80 T=2:GOSUB3900:F=0
  9. 90 GETN$:IFN$=""THEN90
  10. 100 IFN$="[133]"THENGOSUB3800:GOTO30
  11. 110 IFN$>"0"ANDN$<"5"THENF=F+1:GOTO150
  12. 120 IFN$>"4"ANDN$<"9"THENF=F-1:GOTO150
  13. 130 IFN$="Q"THENSYS64738
  14. 140 GOTO90
  15. 150 N=VAL(N$):HM=(N-1)*2:VM=HM+1
  16. 160 T=3:GOSUB3900
  17. 170 GETA$:IFA$=""THEN170
  18. 180 IFA$="[133]"THENGOSUB3800:GOTO30
  19. 190 IFA$="M"THENGOSUB3000:GOTO80
  20. 200 IFA$="J"THENGOSUB3200:GOTO80
  21. 210 GOTO170
  22. 298 :
  23. 299 :
  24. 500 REM  **** INITIALIZATION ****
  25. 501 :
  26. 510 DIMRX(4),BX(4),M$(7),RY(4),BY(4)
  27. 520 V=53248:POKEV+21,255:POKEV+21,0:P=192
  28. 530 FORL=1TO8:FORN=0TO62:READA:POKEP*64+N,A:NEXT:P=P+1:NEXT:P=192
  29. 540 FORN=0TO7:POKE2040+N,P:P=P+1:NEXT
  30. 550 FORN=0TO3:POKEV+39+N,5:NEXT:FORN=4TO7:POKEV+39+N,14:NEXT
  31. 560 POKEV+23,255:POKEV+29,255
  32. 570 RX(1)=21:RX(2)=45:RX(3)=69:RX(4)=93:RY=113
  33. 580 BX(1)=141:BX(2)=165:BX(3)=189:BX(4)=213:BY=113
  34. 590 C=3:M=24
  35. 600 T$=""
  36. 610 SP$="                       [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]                  "
  37. 620 M$(1)="[153]   WELCOME TO SWITCH":M$(2)="[159]   CHOOSE WHICH PEG?"
  38. 630 M$(3)=" [150]M[154]OVE 1 SPACE OR [150]J[154]UMP":M$(4)="[150]    CAN'T DO THAT !!"
  39. 640 M$(5)="[159]      OKAY...":M$(6)="[154]    CONGRATULATIONS !!"
  40. 650 M$(7)="[158]  F1 [159]TO RESTART[157][157][157][157][157][157][157][157][157][157][157][157][158]Q [159]TO QUIT"
  41. 660 S=54272:FORL=STOS+24:POKEL,0:POKES+24,15
  42. 670 RETURN
  43. 698 :
  44. 699 :
  45. 1000 REM  **** TITLE SCREEN ****
  46. 1001 :
  47. 1010 POKE53280,0:POKE53281,0:PRINT"[147]"
  48. 1020 PRINT"                                    "
  49. 1030 PRINT"  "
  50. 1040 PRINT"                "
  51. 1050 PRINT"  [155][146]PROGRAMMED  BY  "
  52. 1060 PRINT"          "
  53. 1070 PRINT"   [155][146]JOHN SEAVERT   "
  54. 1080 PRINT"      "
  55. 1090 PRINT"                            "
  56. 1100 PRINT"        "
  57. 1110 PRINT"  [146] [213][195][201][201] [213][213][178][201][213][178][201][213][195][201][201] [213]   "
  58. 1120 PRINT"        [146] [202][195][201][194][194][194] [194]  [194] [194]  [171][195][179]         "
  59. 1130 PRINT"  [146] [202][195][203][202][177][203][202][177][203] [177] [202][195][203][203] [202]   "
  60. 1140 PRINT"        "
  61. 1150 PRINT"                            "
  62. 1160 PRINT"      "
  63. 1170 PRINT"   [155][146]INSTRUCTIONS   "
  64. 1180 PRINT"          "
  65. 1190 PRINT"  [155][146]    [Y/N]      "
  66. 1200 PRINT"                "
  67. 1210 PRINT"  "
  68. 1220 PRINT"                                    "
  69. 1230 GETA$:IFA$=""THEN1230
  70. 1240 IFA$="Y"THENGOSUB4000:RETURN
  71. 1250 IFA$="N"THENRETURN
  72. 1260 GOTO1230
  73. 1298 :
  74. 1299 :
  75. 1500 REM  **** MAIN SCREEN ****
  76. 1501 :
  77. 1510 POKE53280,6:POKE53281,0
  78. 1520 PRINT"[147][158]"
  79. 1530 PRINTTAB(1)"                  "
  80. 1540 PRINTTAB(1)"                           "
  81. 1550 PRINTTAB(1)"    PRESS F1 TO RESTART    "
  82. 1560 PRINTTAB(1)"                           "
  83. 1570 PRINTTAB(1)"      "
  84. 1580 PRINT""
  85. 1590 PRINTTAB(33)"[213][195][201]"
  86. 1600 PRINTTAB(33)"[202][195][201]"
  87. 1610 PRINTTAB(33)"[202][195][203]"
  88. 1620 PRINTTAB(33)"[201] [213]"
  89. 1630 PRINTTAB(33)"[194][194][194]"
  90. 1640 PRINTTAB(33)"[202][177][203]"
  91. 1650 PRINTTAB(33)"[213][178][201]"
  92. 1660 PRINTTAB(33)" [194] "
  93. 1670 PRINTTAB(33)"[202][177][203]"
  94. 1680 PRINTTAB(33)"[213][178][201]"
  95. 1690 PRINTTAB(33)" [194] "
  96. 1700 PRINTTAB(33)" [177] "
  97. 1710 PRINTTAB(33)"[213][195][201]"
  98. 1720 PRINTTAB(33)"[194]  "
  99. 1730 PRINTTAB(33)"[202][195][203]"
  100. 1740 PRINTTAB(33)"[201] [213]"
  101. 1750 PRINTTAB(33)"[171][195][179]"
  102. 1760 PRINTTAB(33)"[203] [202]"
  103. 1770 RETURN
  104. 1798 :
  105. 1799 :
  106. 2000 REM  **** BELL ****
  107. 2001 :
  108. 2010 POKES+5,0:POKES+6,247
  109. 2020 POKES+4,17
  110. 2030 POKES,0:POKES+1,40
  111. 2040 FORD=1TO100:NEXT
  112. 2050 POKES+4,16
  113. 2060 RETURN
  114. 2098 :
  115. 2099 :
  116. 2100 REM  **** BUZZER ****
  117. 2101 :
  118. 2110 POKES+5,45:POKES+6,165
  119. 2120 POKES+4,33
  120. 2130 POKES,5:POKES+1,6
  121. 2140 FORD=1TO200:NEXT
  122. 2150 POKES+4,32
  123. 2160 RETURN
  124. 2198 :
  125. 2199 :
  126. 3000 REM  **** MOVE ****
  127. 3001 :
  128. 3010 T=5:GOSUB3900
  129. 3020 IFN=4ANDPEEK(V+HM)=BX(4)THENCF=1:GOSUB3400:CF=0:RETURN
  130. 3030 IFN=5ANDPEEK(V+HM)=RX(1)THENCF=1:GOSUB3400:CF=0:RETURN
  131. 3040 IFPEEK(V+30)<>0THEN3040
  132. 3050 FORL=113TO89STEP-3:POKEV+VM,L:NEXT
  133. 3060 FORL=PEEK(V+HM)TOPEEK(V+HM)+23STEP3:POKEV+HM,PEEK(V+HM)+3*F:NEXT
  134. 3070 FORL=89TO113STEP3:POKEV+VM,L:NEXT
  135. 3080 IFPEEK(V+30)<>0THENGOSUB3400:RETURN
  136. 3090 GOSUB2000
  137. 3100 IFPEEK(V)=141ANDPEEK(V+2)=165ANDPEEK(V+4)=189ANDPEEK(V+6)=213THEN3600
  138. 3110 RETURN
  139. 3198 :
  140. 3199 :
  141. 3200 REM  **** JUMP ****
  142. 3201 :
  143. 3210 T=5:GOSUB3900
  144. 3220 IFN=3THENIFPEEK(V+4)=BX(3)ORPEEK(V+4)=BX(4)THENCF=1:GOSUB3500:CF=0:RETURN
  145. 3230 IFN=4THENIFPEEK(V+6)=BX(3)ORPEEK(V+6)=BX(4)THENCF=1:GOSUB3500:CF=0:RETURN
  146. 3240 IFN=5THENIFPEEK(V+8)=RX(2)ORPEEK(V+8)=RX(1)THENCF=1:GOSUB3500:CF=0:RETURN
  147. 3250 IFN=6THENIFPEEK(V+10)=RX(2)THENCF=1:GOSUB3500:CF=0:RETURN
  148. 3260 IFPEEK(V+30)<>0THEN3260
  149. 3270 FORL=113TO89STEP-3:POKEV+VM,L:NEXT
  150. 3280 FORL=PEEK(V+HM)TOPEEK(V+HM)+47STEP3:POKEV+HM,PEEK(V+HM)+3*F:NEXT
  151. 3290 FORL=89TO113STEP3:POKEV+VM,L:NEXT
  152. 3300 IFPEEK(V+30)<>0THENGOSUB3500:RETURN
  153. 3310 GOSUB2000
  154. 3320 IFPEEK(V)=141ANDPEEK(V+2)=165ANDPEEK(V+4)=189ANDPEEK(V+6)=213THEN3600
  155. 3330 RETURN
  156. 3398 :
  157. 3399 :
  158. 3400 REM  **** REVERSE MOVE ****
  159. 3401 :
  160. 3410 IFF=1THENF=-1:GOTO3430
  161. 3420 IFF=-1THENF=1
  162. 3430 T=4:GOSUB3900:GOSUB2100:IFCF=1THENRETURN
  163. 3440 FORL=113TO89STEP-3:POKEV+VM,L:NEXT
  164. 3450 FORL=PEEK(V+HM)TOPEEK(V+HM)+23STEP3:POKEV+HM,PEEK(V+HM)+3*F:NEXT
  165. 3460 FORL=89TO113STEP3:POKEV+VM,L:NEXT
  166. 3470 RETURN
  167. 3498 :
  168. 3499 :
  169. 3500 REM  **** REVERSE JUMP ****
  170. 3501 :
  171. 3510 IFF=1THENF=-1:GOTO3530
  172. 3520 IFF=-1THENF=1
  173. 3530 T=4:GOSUB3900:GOSUB2100:IFCF=1THENRETURN
  174. 3540 FORL=113TO89STEP-3:POKEV+VM,L:NEXT
  175. 3550 FORL=PEEK(V+HM)TOPEEK(V+HM)+47STEP3:POKEV+HM,PEEK(V+HM)+3*F:NEXT
  176. 3560 FORL=89TO113STEP3:POKEV+VM,L:NEXT
  177. 3570 RETURN
  178. 3598 :
  179. 3599 :
  180. 3600 REM  **** CHECK FOR WIN ****
  181. 3601 :
  182. 3610 IFPEEK(V+8)=21ANDPEEK(V+10)=45ANDPEEK(V+12)=69ANDPEEK(V+14)=93THEN3700
  183. 3620 GOTO80
  184. 3698 :
  185. 3699 :
  186. 3700 REM  ****  YOU WIN ****
  187. 3701 :
  188. 3710 T=6:FORL=1TO10:GOSUB3900:GOSUB2000:NEXT
  189. 3720 T=7:GOSUB3900
  190. 3730 GOTO90
  191. 3798 :
  192. 3799 :
  193. 3800 REM  **** RESET ROUTINE ****
  194. 3801 :
  195. 3810 PRINTT$;TAB(3);SP$:T=5:GOSUB3900
  196. 3820 RX(1)=21:RX(2)=45:RX(3)=69:RX(4)=93:RY=113
  197. 3830 BX(1)=141:BX(2)=165:BX(3)=189:BX(4)=213:BY=113
  198. 3840 FORD=1TO2500:NEXT:PRINTT$;TAB(3);SP$
  199. 3850 RETURN
  200. 3898 :
  201. 3899 :
  202. 3900 REM  **** PRINT MESSAGE ****
  203. 3901 :
  204. 3910 PRINTT$;SP$:FORD=1TO60:NEXT
  205. 3920 PRINTT$;M$(T)
  206. 3930 IFT=4ORT=5THENFORD=1TO300:NEXT
  207. 3940 RETURN
  208. 3998 :
  209. 3999 :
  210. 4000 REM  **** INSTRUCTIONS ****
  211. 4001 :
  212. 4010 POKE53280,6:POKE53281,15:PRINT"[147]"
  213. 4020 PRINTTAB(17)"SWITCH":PRINTTAB(17)"[183][183][183][183][183][183]"
  214. 4030 PRINTTAB(5)"TO WIN AT THE GAME OF SWITCH, YOU"
  215. 4050 PRINTTAB(2)"MUST MOVE OR JUMP THE GREEN PIECES"
  216. 4060 PRINTTAB(2)"FORWARD (LEFT TO RIGHT) AND THE BLUE"
  217. 4070 PRINTTAB(2)"PIECES FORWARD (RIGHT TO LEFT) UNTIL"
  218. 4080 PRINTTAB(2)"YOU HAVE COMPLETELY SWITCHED SIDES."
  219. 4090 PRINTTAB(5)"SIMPLE, YOU SAY? WAIT..."
  220. 4100 PRINTTAB(2)"YOU CAN ONLY MOVE IN THE DIRECTIONS"
  221. 4110 PRINTTAB(2)"EXPLAINED ABOVE.   HAVE FUN!!"
  222. 4120 PRINTTAB(12)" PRESS ANY KEY "
  223. 4130 GETA$:IFA$=""THEN4130
  224. 4140 RETURN
  225. 4198 :
  226. 4199 :
  227. 5100 REM  **** 1 ****
  228. 5101 :
  229. 5110 DATA 0,254,0,1,239,0,1,239,0,1,239,0,1,239
  230. 5120 DATA 0,1,239,0,0,254,0,0,56,0,0,56,0,0
  231. 5130 DATA 56,0,0,56,0,0,56,0,0,0,0,0,0,0
  232. 5140 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  233. 5150 DATA 0,0,0,0,0,0,0
  234. 5198 :
  235. 5199 :
  236. 5200 REM  **** 2 ****
  237. 5201 :
  238. 5210 DATA 0,254,0,1,199,0,1,247,0,1,199,0,1,223
  239. 5220 DATA 0,1,199,0,0,254,0,0,56,0,0,56,0,0
  240. 5230 DATA 56,0,0,56,0,0,56,0,0,0,0,0,0,0
  241. 5240 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  242. 5250 DATA 0,0,0,0,0,0,0
  243. 5298 :
  244. 5299 :
  245. 5300 REM  **** 3 ****
  246. 5301 :
  247. 5310 DATA 0,254,0,1,199,0,1,247,0,1,199,0,1,247
  248. 5320 DATA 0,1,199,0,0,254,0,0,56,0,0,56,0,0
  249. 5330 DATA 56,0,0,56,0,0,56,0,0,0,0,0,0,0
  250. 5340 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  251. 5350 DATA 0,0,0,0,0,0,0
  252. 5398 :
  253. 5399 :
  254. 5400 REM  **** 4 ****
  255. 5401 :
  256. 5410 DATA 0,254,0,1,215,0,1,215,0,1,199,0,1,247
  257. 5420 DATA 0,1,247,0,0,254,0,0,56,0,0,56,0,0
  258. 5430 DATA 56,0,0,56,0,0,56,0,0,0,0,0,0,0
  259. 5440 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  260. 5450 DATA 0,0,0,0,0,0,0
  261. 5498 :
  262. 5499 :
  263. 5500 REM  **** 5 ****
  264. 5501 :
  265. 5510 DATA 0,254,0,1,199,0,1,223,0,1,199,0,1,247
  266. 5520 DATA 0,1,199,0,0,254,0,0,56,0,0,56,0,0
  267. 5530 DATA 56,0,0,56,0,0,56,0,0,0,0,0,0,0
  268. 5540 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  269. 5550 DATA 0,0,0,0,0,0,0
  270. 5598 :
  271. 5599 :
  272. 5600 REM  **** 6 ****
  273. 5601 :
  274. 5610 DATA 0,254,0,1,199,0,1,223,0,1,199,0,1,215
  275. 5620 DATA 0,1,199,0,0,254,0,0,56,0,0,56,0,0
  276. 5630 DATA 56,0,0,56,0,0,56,0,0,0,0,0,0,0
  277. 5640 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  278. 5650 DATA 0,0,0,0,0,0,0
  279. 5698 :
  280. 5699 :
  281. 5700 REM  **** 7 ****
  282. 5701 :
  283. 5710 DATA 0,254,0,1,199,0,1,215,0,1,247,0,1,247
  284. 5720 DATA 0,1,247,0,0,254,0,0,56,0,0,56,0,0
  285. 5730 DATA 56,0,0,56,0,0,56,0,0,0,0,0,0,0
  286. 5740 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  287. 5750 DATA 0,0,0,0,0,0,0
  288. 5798 :
  289. 5799 :
  290. 5800 REM  **** 8 ****
  291. 5801 :
  292. 5810 DATA 0,254,0,1,199,0,1,215,0,1,199,0,1,215
  293. 5820 DATA 0,1,199,0,0,254,0,0,56,0,0,56,0,0
  294. 5830 DATA 56,0,0,56,0,0,56,0,0,0,0,0,0,0
  295. 5840 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  296. 5850 DATA 0,0,0,0,0,0,0
  297.