home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 129 / 129.d81 / sr (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1995-01-01  |  15.1 KB  |  516 lines

  1. 10 goto3090
  2. 20 rem -- game screen --
  3. 30 poke53269,0:print"[147]";:poke53275,0
  4. 40 poke53265,peek(53265)or64
  5. 50 poke53281,4:poke53280,6:poke53282,1:poke53283,0:poke53284,7
  6. 60 fori=.to23:print"[154]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[157][148]@":next
  7. 70 print"[160][160][200][189][200][197][204][208][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][209][189][209][213][201][212][160][157][148][160]"
  8. 80 printtab(15)"[150]#$#$#$[150]#$#$"
  9. 90 printtab(15)"[150]%&%&%&[150]%&%&@"
  10. 100 printtab(15)"[150]#$@@[150]#$@@[150]#$@"
  11. 110 printtab(15)"[150]%&@[150]%&@[150]%&@"
  12. 120 fori=1to2
  13. 130 printtab(15)"[150]#$@[150]#$@[150]#$@":printtab(15)"[150]%&@[150]%&@[150]%&@"
  14. 140 next
  15. 150 printtab(3)"[150]#$#$#$#$#$#$#$@[150]#$@#$[150]#$#$#$#$#$#$"
  16. 160 printtab(3)"[150]%&%&%&%&%&%&%&@[150]%&@%&[150]%&%&%&%&%&%&@"
  17. 170 printtab(3)"#$@@@@@@@@@@@@@[153]#$@@@@@@@@@@@@#$@"
  18. 180 printtab(3)"%&@"tab(19)"[153]%&@"tab(35)"%&@"
  19. 190 printtab(3)"[150]#$#$#$#$#$#$#$[150]#$@#$[150]#$#$#$#$#$#$@"
  20. 200 printtab(3)"[150]%&%&%&%&%&%&%&@[150]%&@%&[150]%&%&%&%&%&%&@"
  21. 210 printtab(4)"@@@@@@@@@@@[150]#$@[150]#$@[150]#$@@@@@@@@@@@@@"
  22. 220 printtab(15)"[150]%&@[150]%&@[150]%&@"
  23. 230 fori=1to2
  24. 240 printtab(15)"[150]#$@[150]#$@[150]#$@":printtab(15)"[150]%&@[150]%&@[150]%&@"
  25. 250 next
  26. 260 printtab(15)"[150]#$#$#$[150]#$#$@"
  27. 270 printtab(15)"[150]%&%&%&[150]%&%&@"
  28. 280 printtab(16)"@@@@@@@@@@"
  29. 290 printtab(2)"           "tab(27)"           "
  30. 300 fori=.to3:printtab(2)"[144]           [146]@"tab(27)"[144]           [146]@":next
  31. 310 printtab(3)"@@@@@@@@@@@"tab(28)"@@@@@@@@@@@"
  32. 320 poke214,16:print
  33. 330 printtab(2)"[144]           "tab(27)"           "
  34. 340 fori=.to3:printtab(2)"[144]           [146]@"tab(27)"[144]           [146]@":next
  35. 350 printtab(3)"@@@@@@@@@@@"tab(28)"@@@@@@@@@@@"
  36. 360 poke214,2:print
  37. 370 printtab(3)"[156]star race":printtab(3)"a game by":printtab(3)"tony rose"
  38. 380 poke214,17:print""
  39. 390 printtab(31)d$(5)""
  40. 400 rem -- sprites --
  41. 410 poke51192,128:poke53285,14:poke53286,10:poke53276,1
  42. 420 fori=.to3:poke53287+i,0:next
  43. 430 poke53250,184:poke53251,135:poke53252,160:poke53253,135
  44. 440 poke53254,172:poke53255,156:poke53256,172:poke53257,114
  45. 450 poke53258,184:poke53259,135:poke53260,160:poke53261,135
  46. 460 poke53262,172:poke53263,156
  47. 470 rem -- main --
  48. 480 ifd<>6andd<>1thenpl=pl+1:ifpl>2thenpl=1
  49. 490 poke214,2:print
  50. 500 printtab(30)c$(-(pl=2))"knees"
  51. 510 printtab(31)""np(2)
  52. 520 poke214,17:print
  53. 530 printtab(6)c$(-(pl=1))"you"
  54. 540 printtab(6)""np(1)
  55. 550 poke214,23:print:printtab(13)tn$(pl)""
  56. 560 gosub1040
  57. 570 ifpl=2then1320
  58. 580 gosub1190:iff=0then480
  59. 590 rem -- move the hand --
  60. 600 geta$:j=peek(jy)and15
  61. 610 ifa$=""orj=7then650
  62. 620 ifa$="[157]"orj=11then670
  63. 630 ifa$=chr$(13)or(peek(jy)and16)=.then730
  64. 640 goto600
  65. 650 hp=hp+1:ifhp>57thenhp=1
  66. 660 goto680
  67. 670 hp=hp-1:ifhp<1thenhp=57
  68. 680 yp=bd(hp,1)*8+64:xp=bd(hp,2)*8+32
  69. 690 ifxp>255thenpoke53264,1
  70. 700 poke53248,xpand255:poke53249,yp:ifxp<256thenpoke53264,0
  71. 710 goto600
  72. 720 rem -- move --
  73. 730 ifbd(hp,0)=1then600
  74. 740 ifbd(hp,0)=2andbd(hp,3)=2then600
  75. 750 f=0:fori=1to4
  76. 760 ifmp(i)=0andhp>1then780
  77. 770 ifmp(i)+d=hpthenf=i
  78. 780 next
  79. 790 iff=0then600
  80. 800 rem -- erase --
  81. 810 ifmp(f)=0thennp(1)=np(1)-1:goto860
  82. 820 bd(mp(f),0)=0
  83. 830 poke214,bd(mp(f),1):print
  84. 840 poke646,bd(mp(f),3):printtab(bd(mp(f),2))"#$[157][157]%&"
  85. 850 rem -- place --
  86. 860 gosub2570:poke214,bd(hp,1):print
  87. 870 poke646,bd(hp,3):printtab(bd(hp,2))m$(1)
  88. 880 mp(f)=hp:f=0:ifbd(hp,0)thenf=1
  89. 890 bd(hp,0)=1:gosub2620
  90. 900 rem -- reach home? --
  91. 910 ifhp<>57then970
  92. 920 bd(57,0)=0:gosub2800
  93. 930 poke214,bd(57,1):print
  94. 940 poke646,bd(57,3):printtab(bd(57,2))"#$[157][157]%&"
  95. 950 w(pl)=w(pl)+1:ifw(pl)=4then1870
  96. 960 goto480
  97. 970 iff=0then480
  98. 980 rem -- which piece --
  99. 990 fori=1to4
  100. 1000 ifk(i)=kb(hp)thenk(i)=0:i=4
  101. 1010 next
  102. 1020 np(2)=np(2)+1:gosub2710:goto480
  103. 1030 rem -- roll the die --
  104. 1040 poke53269,0:poke53248,42:poke53249,200:poke53264,1:poke53269,1
  105. 1050 geta$:ifa$=chr$(13)or(peek(jy)and16)=.then1090
  106. 1060 ifa$="h"thengosub2460:poke53269,.:gosub4030:gosub2500:poke53269,1
  107. 1070 ifa$="q"thengosub2460:poke53269,.:gosub2310:gosub2500:poke53269,1
  108. 1080 goto1050
  109. 1090 fori=1to4:d=int(rnd(1)*6)+1
  110. 1100 poke214,17:print""
  111. 1110 printtab(34-i)l$d$(d):gosub2660
  112. 1120 next
  113. 1130 fori=1to4:d=int(rnd(1)*6)+1
  114. 1140 poke214,17:print
  115. 1150 printtab(26+i)r$d$(d):gosub2660
  116. 1160 next
  117. 1170 return
  118. 1180 rem -- can you move? --
  119. 1190 f=0:fori=1to4
  120. 1200 ifmp(i)=0andd<>1then1240
  121. 1210 ifmp(i)+d>57then1240
  122. 1220 ifbd(mp(i)+d,0)=0thenf=1:i=4:goto1240
  123. 1230 ifbd(mp(i)+d,0)=2andbd(mp(i)+d,3)<>2thenf=1:i=4
  124. 1240 next
  125. 1250 iff=0thenreturn
  126. 1260 xp=bd(hp,2)*8+32:yp=bd(hp,1)*8+64
  127. 1270 poke53269,0:poke53248,xpand255:poke53249,yp
  128. 1280 ifxp>255thenpoke53264,1:goto1300
  129. 1290 poke53264,0
  130. 1300 poke53269,1:return
  131. 1310 rem -- computer --
  132. 1320 fori=1to4
  133. 1330 x=k(i)+d:mv(i)=0
  134. 1340 ifk(i)=0andd<>1then1420
  135. 1350 ifx>57then1420
  136. 1360 ifbd(kb(x),0)=1thenifbd(kb(x),3)=10thenmv(i)=5:goto1420
  137. 1370 ifx=1andk(i)=0thenifbd(kb(x),0)<>2thenmv(i)=4:goto1420
  138. 1380 ifk(i)=1thenifbd(kb(x),0)=0thenmv(i)=3:goto1420
  139. 1390 ifx=57thenmv(i)=2:goto1420
  140. 1400 ifbd(kb(x),0)=0thenifbd(kb(x),3)=2thenmv(i)=1:goto1420
  141. 1410 ifbd(kb(x),0)=0thenmv(i)=rnd(1)
  142. 1420 next
  143. 1430 f=0:m=0:fori=1to4
  144. 1440 ifmv(i)>mthenm=mv(i):f=i
  145. 1450 next:m=k(f)+d
  146. 1460 iff=0then480
  147. 1470 xp=bd(kb(kp),2)*8+32:yp=bd(kb(kp),1)*8+64
  148. 1480 gosub1270
  149. 1490 rem -- knees moves --
  150. 1500 ifk(f)+d<=kpthen1560
  151. 1510 kp=kp+1:xp=bd(kb(kp),2)*8+32:yp=bd(kb(kp),1)*8+64
  152. 1520 ifxp>255thenpoke53264,1
  153. 1530 poke53248,xpand255:poke53249,yp
  154. 1540 ifxp<256thenpoke53264,0
  155. 1550 goto1500
  156. 1560 ifk(f)+d=kpthen1630
  157. 1570 kp=kp-1:xp=bd(kb(kp),2)*8+32:yp=bd(kb(kp),1)*8+64
  158. 1580 ifxp>255thenpoke53264,1
  159. 1590 poke53248,xpand255:poke53249,yp
  160. 1600 ifxp<256thenpoke53264,0
  161. 1610 goto1560
  162. 1620 rem -- erase knees --
  163. 1630 ifk(f)=0thennp(2)=np(2)-1:goto1690
  164. 1640 bd(kb(k(f)),0)=0
  165. 1650 poke214,bd(kb(k(f)),1):print
  166. 1660 poke646,bd(kb(k(f)),3)
  167. 1670 printtab(bd(kb(k(f)),2))"#$[157][157]%&"
  168. 1680 rem -- place knees --
  169. 1690 gosub2570:poke214,bd(kb(m),1):print
  170. 1700 poke646,bd(kb(m),3):printtab(bd(kb(m),2))m$(2)
  171. 1710 k(f)=k(f)+d:f=0:ifbd(kb(m),0)thenf=1
  172. 1720 bd(kb(m),0)=2:gosub2620
  173. 1730 rem -- reach home? --
  174. 1740 ifkp<>57then1800
  175. 1750 bd(57,0)=0:gosub2800
  176. 1760 poke214,bd(57,1):print
  177. 1770 poke646,bd(57,3):printtab(bd(57,2))"#$[157][157]%&"
  178. 1780 w(pl)=w(pl)+1:ifw(pl)=4then1870
  179. 1790 goto480
  180. 1800 iff=0then480
  181. 1810 rem -- which piece --
  182. 1820 fori=1to4
  183. 1830 ifmp(i)=kb(m)thenmp(i)=0:i=4
  184. 1840 next
  185. 1850 np(1)=np(1)+1:gosub2710:goto480
  186. 1860 rem -- game over --
  187. 1870 gosub2460:fori=.to2:gosub3010:next
  188. 1880 poke53269,0:poke53276,240:poke53264,0:poke53248,172:poke53249,114
  189. 1890 ifpl=2then1920
  190. 1900 fori=.to7:poke51192+i,129+i:next
  191. 1910 poke53291,7:poke53292,2:poke53293,2:poke53294,1:goto1960
  192. 1920 fori=.to7:poke51192+i,137+i:next
  193. 1930 poke53291,8:poke53292,3:poke53293,3:poke53294,1
  194. 1940 poke214,8:print
  195. 1950 printtab(19)"[156][160][160][157][157][170][170]"
  196. 1960 poke53269,255:gosub2950
  197. 1970 poke214,1:print
  198. 1980 fori=1to5:printtab(2)"                                    ":next
  199. 1990 printtab(14)"@@@@@@@@"
  200. 2000 poke55591,2:poke55592,2:poke55595,2:poke55596,2:poke55599,2:poke55600,2
  201. 2010 poke214,16:print
  202. 2020 fori=1to5:printtab(2)"                                    ":next
  203. 2030 printtab(14)"@@@@"
  204. 2040 poke56191,2:poke56192,2:poke56193,2:poke56194,2:poke56195,4:poke56196,4
  205. 2050 poke56197,2:poke56198,2:poke56199,2:poke56200,2
  206. 2060 ifpl=2then2110
  207. 2070 rem -- human win --
  208. 2080 printtab(5)"[156]you have beaten knees calhoon!"
  209. 2090 printtab(9)"way to go, star racer!":goto2140
  210. 2100 rem -- knees win --
  211. 2110 printtab(6)"[156]knees calhoon wins the race!"
  212. 2120 printtab(11)"(but it was close)"
  213. 2130 rem -- play again? --
  214. 2140 poke214,17:print
  215. 2150 printtab(7)"do you want to play again?"
  216. 2160 printtab(15)"(y[156]) or (n[156])"
  217. 2170 geta$:ifa$="n"then2260
  218. 2180 ifa$<>"y"then2170
  219. 2190 poke53269,0:gosub2500
  220. 2200 poke214,10:print
  221. 2210 fori=.to2:printtab(7)"[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]":next
  222. 2220 poke55809,6:poke55849,2:gosub2540
  223. 2230 printtab(11)"[145][145][207][206][197][160][205][207][205][197][206][212][160][208][204][197][193][211][197][174][174][174]"
  224. 2240 clr:restore:gosub3440:goto30
  225. 2250 rem -- end --
  226. 2260 print"[147]":poke53281,.:poke53280,.:poke53269,.:poke53276,.:poke53264,.
  227. 2270 poke53265,peek(53265)and191
  228. 2280 poke56578,peek(56578)or3:poke56576,(peek(56576)and252)or3
  229. 2290 poke648,4:goto5040
  230. 2300 rem -- quit? --
  231. 2310 poke214,7:print
  232. 2320 print"[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]"
  233. 2330 fori=.to6:print"[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]@":next
  234. 2340 print"@@@@@@@@@@@@@@@@@@@@@@@@@@@"
  235. 2350 poke55951,2:poke55952,2:poke55955,2:poke55956,2:poke55959,2:poke55960,2
  236. 2360 poke214,8:print
  237. 2370 printtab(12)"[215][200][193][212][160][215][201][204][204][160][201][212][160][194][197][191]"
  238. 2380 printtab(5)"[168][177][169][160][211][212][193][210][212][160][207][214][197][210][160][160][168][178][169][160][206][197][214][197][210][160][205][201][206][196]"
  239. 2390 printtab(10)"[168][179][169][160][209][213][201][212][160][212][207][160][204][207][193][196][211][212][193][210]"
  240. 2400 printtab(11)"[208][210][197][211][211][160][193][160][203][197][217][186][160][168][177][173][179][169]"
  241. 2410 geta$:ifa$<"1"ora$>"3"then2410
  242. 2420 ifa$="1"then2190
  243. 2430 ifa$="2"thenreturn
  244. 2440 goto2260
  245. 2450 rem --- save screen ---
  246. 2460 sys49152,55296,204*256,1000
  247. 2470 sys49152,50176,200*256,1000
  248. 2480 return
  249. 2490 rem --- restore screen ---
  250. 2500 sys49152,204*256,55296,1000
  251. 2510 sys49152,200*256,50176,1000
  252. 2520 return
  253. 2530 rem -- shadow --
  254. 2540 sys49152,49225,55864,26
  255. 2550 return
  256. 2560 rem -- erase --
  257. 2570 pokes+24,15:pokes+5,15:pokes+1,58
  258. 2580 pokes,149:pokes+4,17
  259. 2590 forde=.to150:next:pokes+4,0
  260. 2600 return
  261. 2610 rem -- move --
  262. 2620 pokes+1,34:pokes,75:pokes+4,17
  263. 2630 forde=.to150:next:pokes+4,0
  264. 2640 return
  265. 2650 rem -- dice sound --
  266. 2660 pokes+24,15:pokes+5,0:pokes+6,0
  267. 2670 pokes+4,129:pokes,216:pokes+1,36
  268. 2680 forde=1to20:next:pokes+4,128
  269. 2690 return
  270. 2700 rem -- you lose! --
  271. 2710 fori=1to3:forde=.to4:next
  272. 2720 pokes+1,14:pokes+5,3:pokes+6,240
  273. 2730 pokes+24,15:pokes+4,17
  274. 2740 forj=11to110step8
  275. 2750 pokes+1,j:pokes+4,63:pokes+1,255-j
  276. 2760 pokes+4,17:next
  277. 2770 pokes+4,16:next
  278. 2780 return
  279. 2790 rem -- you win --
  280. 2800 fori=1to2
  281. 2810 pokes+1,14:pokes+5,3:pokes+6,240
  282. 2820 pokes+24,15:pokes+4,17
  283. 2830 forj=6to10:fork=1to12stepsin(j)
  284. 2840 pokes+1,4*k:pokes+4,17
  285. 2850 next:next
  286. 2860 pokes+4,16:forde=1to10:next
  287. 2870 pokes+1,14:pokes+5,3:pokes+6,240
  288. 2880 pokes+24,15:pokes+4,17
  289. 2890 forj=6to10:fork=1to12steplog(j)
  290. 2900 pokes+1,4*k:pokes+4,17
  291. 2910 next:next
  292. 2920 pokes+4,16:forde=1to100:next
  293. 2930 next:return
  294. 2940 rem -- winner --
  295. 2950 pokes+24,15:pokes+5,15:pokes+6,252
  296. 2960 pokes+14,67:pokes+15,12:pokes+4,21
  297. 2970 fori=.to255step2:pokes+1,i:next
  298. 2980 fori=255to.step-2:pokes+1,i:next
  299. 2990 pokes+4,20:return
  300. 3000 rem --- the call ---
  301. 3010 pokes+24,15:pokes+19,72:pokes+20,129:pokes+14,50
  302. 3020 pokes+18,33:pokes+15,45
  303. 3030 forde=1to50:next:pokes+18,32
  304. 3040 forde=1to200:next
  305. 3050 pokes+15,69:pokes+18,17
  306. 3060 forde=1to500:next:pokes+18,16
  307. 3070 return
  308. 3080 rem -- title screen --
  309. 3090 poke56578,peek(56578)or3:poke56576,(peek(56576)and252)
  310. 3100 poke53272,29:poke648,196
  311. 3110 poke53265,peek(53265)and191
  312. 3120 poke53281,1:poke53280,15:print"[147]"
  313. 3130 printtab(12)"[159]loadstar proudly"
  314. 3140 printtab(16)"presents"
  315. 3150 print"[193][194][194][195][211][194][194][212][193][194][194][195][211][194][194][195]  [211][194][194][195][193][194][194][195][193][194][194][195][211][194][194][212]"
  316. 3160 print"[150][196][197][198][199][213][214][215][216][196][197][221][207][196][197][221][207]  [196][197][221][207][196][197][221][207][196][197][167][168][196][197][198][199]"
  317. 3170 print"[156][200][201][202][203] [217][218] [196][255][223][207][196][255][223][166]  [196][255][223][166][196][255][223][207][196][197][169][170][196][255][175][176]"
  318. 3180 print"[154][204][205][206][207] [217][218] [196][197][161][207][196][197][161][207]  [196][197][161][207][196][197][161][207][196][197][171][172][196][197][177][178]"
  319. 3190 print"[208][209][209][210] [219][220] [162][163][164][165][162][163][164][165]  [162][163][164][165][162][163][164][165][208][209][209][210][162][209][209][165]"
  320. 3200 printtab(9)"[144][160][195][196][197][223][161][162]"
  321. 3210 printtab(9)"[198][199][200][201][163][164][165][166]"
  322. 3220 printtab(9)"[202][203][204][205][146][156][183][184][185][186][187][188][144][167][168][169][170][171]"
  323. 3230 printtab(9)"[206][207][208][209][210][146][156][189][190][144][172][173][174][175][176]"
  324. 3240 printtab(9)"[160][211][212][213][214][156][192][193][194][144][177][178][179][180]"
  325. 3250 printtab(9)"[160][215][216][217][156]#$%&<>[144][181][182][183]"
  326. 3260 printtab(9)"[160][218][219][220][184][185][186]"
  327. 3270 printtab(9)"[160][221][255][187][188]"
  328. 3280 printtab(4)"the first one to the tower wins!"
  329. 3290 printtab(11)"one moment please..."
  330. 3300 printtab(37)"[144][190][191][145]"
  331. 3310 rem -- sprites --
  332. 3320 fori=.to7:poke51192+i,145+i:next
  333. 3330 poke53287,7:poke53288,2:poke53289,2:poke53290,4:poke53291,8:poke53292,5
  334. 3340 poke53293,5:poke53285,14:poke53286,10
  335. 3350 poke53264,0:poke53276,255:poke53275,255:poke53269,255
  336. 3360 poke53248,104:poke53249,141:poke53250,96:poke53251,150
  337. 3370 poke53252,108:poke53253,159:poke53254,105:poke53255,180
  338. 3380 poke53256,240:poke53257,138:poke53258,246:poke53259,154
  339. 3390 poke53260,233:poke53261,156:poke53262,238:poke53263,175
  340. 3400 gosub3440:printtab(8)"[145]  press a key to begin  "
  341. 3410 geta$:ifa$=""then3410
  342. 3420 goto30
  343. 3430 rem -- initialize --
  344. 3440 dimi,j,k,f,m,x,d,xp,yp,pl,de
  345. 3450 hp=1:kp=1:pl=1:s=54272:jy=56320:x=rnd(-ti)
  346. 3460 l$=" [157] [157] [145][145][157][157][157][157][146]":r$=" [157] [157] [145][145][146]"
  347. 3470 fori=.to23:pokes+i,.:next
  348. 3480 dimbd(61,3),kb(57),m$(2),d$(6),mp(4),k(4),np(2),c$(1),w(2),tn$(2)
  349. 3490 fori=1to61:forj=1to2:readbd(i,j):next:next
  350. 3500 fori=1to61:readbd(i,3):next
  351. 3510 fori=1to26:kb(i)=26+i:next
  352. 3520 fori=27to52:kb(i)=i-26:next
  353. 3530 fori=53to56:kb(i)=i+5:next
  354. 3540 kb(57)=57
  355. 3550 m$(1)="[219][220][157][157][221][255]":m$(2)="[\[157][157]]^"
  356. 3560 np(1)=4:np(2)=4
  357. 3570 rem -- dice --
  358. 3580 d$(1)="+++[157][157][157]+[223]+[157][157][157]+++"
  359. 3590 d$(2)="[223]++[157][157][157]+++[157][157][157]++[223]"
  360. 3600 d$(3)="[223]++[157][157][157]+[223]+[157][157][157]++[223]"
  361. 3610 d$(4)="[223]+[223][157][157][157]+++[157][157][157][223]+[223]"
  362. 3620 d$(5)="[223]+[223][157][157][157]+[223]+[157][157][157][223]+[223]"
  363. 3630 d$(6)="[223]+[223][157][157][157][223]+[223][157][157][157][223]+[223]"
  364. 3640 c$(0)="[156]":c$(1)=""
  365. 3650 rem -- message --
  366. 3660 tn$(1)="[201][212][167][211][160][217][207][213][210][160][212][213][210][206]"
  367. 3670 tn$(2)="[160][201][212][167][211][160][205][217][160][212][213][210][206][160]"
  368. 3680 fori=.to72:reada:poke49152+i,a:next
  369. 3690 fori=.to25:reada:poke49225+i,a:next
  370. 3700 return
  371. 3710 rem -- row/column --
  372. 3720 data20,17,20,15,18,15,16,15,14,15
  373. 3730 data12,15,12,13,12,11,12,9,12,7
  374. 3740 data12,5,12,3,10,3,8,3,8,5,8,7
  375. 3750 data8,9,8,11,8,13,8,15,6,15,4,15
  376. 3760 data2,15,0,15,0,17,0,19,0,21,0,23
  377. 3770 data2,23,4,23,6,23,8,23,8,25,8,27
  378. 3780 data8,29,8,31,8,33,8,35,10,35
  379. 3790 data12,35,12,33,12,31,12,29,12,27
  380. 3800 data12,25,12,23,14,23,16,23,18,23
  381. 3810 data20,23,20,21,20,19,18,19,16,19
  382. 3820 data14,19,12,19,10,19
  383. 3830 data2,19,4,19,6,19,8,19
  384. 3840 rem -- what color? --
  385. 3850 data10,10,10,10,10,2,10,10,10,10,10,10,2,10,10,10,10,10,10,2,10,10,10,10
  386. 3860 data10,2,10,10,10,10,10,2,10,10,10,10,10,10,2,10,10,10,10,10,10,2,10,10
  387. 3870 data10,10,10,2,10,10,10,10,13,10,10,10,10
  388. 3880 rem -- copymem c000 ---
  389. 3890 data 032,253,174,032,138,173,032
  390. 3900 data 247,183,132,176,133,177,032
  391. 3910 data 253,174,032,138,173,032,247
  392. 3920 data 183,132,178,133,179,032,253
  393. 3930 data 174,032,138,173,032,247,183
  394. 3940 data 073,255,133,181,152,073,255
  395. 3950 data 133,180,230,180,208,002,230
  396. 3960 data 181,160,000,177,176,145,178
  397. 3970 data 200,208,004,230,177,230,179
  398. 3980 data 230,180,208,241,230,181,208
  399. 3990 data 237,096,255
  400. 4000 rem -- shadows --
  401. 4010 data2,2,2,2,2,2,2,4,4,6,6,2,2,6,6,4,4,2,2,2,2,2,2,2,2,2
  402. 4020 rem -- help screens --
  403. 4030 print"[147]":poke53281,14:poke53280,4:poke53284,4
  404. 4040 printtab(15)"directions"
  405. 4050 print" star race is a two-player board game"
  406. 4060 print" where you challenge knees calhoon to"
  407. 4070 print" see who can be the first to have all"
  408. 4080 print" of their men reach the tower."
  409. 4090 print" each player has four men in their"
  410. 4100 print" possession who race clock-wise around"
  411. 4110 print" the board to the center square. you"
  412. 4120 print" will control the white men, while"
  413. 4130 print" knees will control the black."
  414. 4140 print" the players move their men by taking"
  415. 4150 print" turns rolling a six-sided die, then,"
  416. 4160 print" if able, moving one of their men the"
  417. 4170 print" number of squares indicated."
  418. 4180 print" while each player's finish line is the"
  419. 4190 print" center square, their starting squares"
  420. 4200 print" and routes are slightly different."
  421. 4210 poke214,22:print
  422. 4220 printtab(10)"press fire or return"
  423. 4230 geta$:ifa$=""and(peek(jy)and16)then4230
  424. 4240 gosub5020
  425. 4250 poke214,2:print
  426. 4260 print" the board below shows each player's"
  427. 4270 print" start. each player travels clock-wise"
  428. 4280 print" around the board. however, you cannot"
  429. 4290 print" move down the center row, and knees"
  430. 4300 print" cannot move up the center row."
  431. 4310 printtab(23)"[144]knees will start"
  432. 4320 printtab(17)"[150][188][188][188][150]>[188][146][144]at the top right"
  433. 4330 printtab(17)"[150][188][188][188][146][144]and go down the"
  434. 4340 printtab(17)"[150][188][188][188][146][144]center row."
  435. 4350 printtab(17)"[150][188][188][188]"
  436. 4360 printtab(11)"[188][188][188][188][188][188][188][150][188][188][150][188][188][188][188][188][188]"
  437. 4370 printtab(11)"[188][153][188][188]"
  438. 4380 printtab(11)"[150][188][188][188][188][188][188][188][150][188][188][150][188][188][188][188][188][188]"
  439. 4390 printtab(17)"[188][188][188]"
  440. 4400 print" you start at    [150][188][188][188]"
  441. 4410 print" the lower left  [150][188][188][188]"
  442. 4420 print" and go up the   [150][188][146][190][188][150][188][188]"
  443. 4430 print" center row."
  444. 4440 geta$:ifa$=""and(peek(jy)and16)then4440
  445. 4450 gosub5020
  446. 4460 poke214,2:print
  447. 4470 print" at the start of the game, it will be"
  448. 4480 print" knees' turn. press return or fire and"
  449. 4490 print" knees will roll the die, and if able,"
  450. 4500 print" make a move. unless knees has rolled a"
  451. 4510 print" 1 or 6 (see: how you move) it will now"
  452. 4520 print" be your turn."
  453. 4530 print" press return or fire to roll the die."
  454. 4540 print" if a legal move is possible, the hand"
  455. 4550 print" pointer will appear on the board. use"
  456. 4560 print" either the right/left crsr keys or a"
  457. 4570 print" joystick in port two to move the hand"
  458. 4580 print" to the square you want to move to and"
  459. 4590 print" press return or fire. if one of your"
  460. 4600 print" men can move to the square you have"
  461. 4610 print" selected it will do so."
  462. 4620 print" play will continue until all of one"
  463. 4630 print" player's men reach the center square."
  464. 4640 geta$:ifa$=""and(peek(jy)and16)then4640
  465. 4650 gosub5020
  466. 4660 poke214,2:print
  467. 4670 print" there are a few additional rules to"
  468. 4680 print" the game which are as follows:"
  469. 4690 print"  - to place a man at his start square,"
  470. 4700 print"    the player must roll a 1 die."
  471. 4710 print"  - if a player rolls either a 1 or 6,"
  472. 4720 print"    the player gets another turn."
  473. 4730 print"  - a player cannot move onto a square"
  474. 4740 print"    that is already occupied by one of"
  475. 4750 print"    his men."
  476. 4760 print"  - if a player moves one of his men"
  477. 4770 print"    onto a square occupied by his"
  478. 4780 print"    opponent, the opponent's man will"
  479. 4790 print"    be removed from the board and will"
  480. 4800 print"    have to begin at his start square"
  481. 4810 print"    by rolling a 1 die."
  482. 4820 geta$:ifa$=""and(peek(jy)and16)then4820
  483. 4830 gosub5020
  484. 4840 poke214,2:print
  485. 4850 print"  - the one exception to the last rule"
  486. 4860 print"    is if your opponent is on a red"
  487. 4870 print"    square. these squares are safe and"
  488. 4880 print"    cannot be moved to if they are"
  489. 4890 print"    already occupied."
  490. 4900 print"  - in order to reach the finish, the"
  491. 4910 print"    player must roll the exact number"
  492. 4920 print"    needed. (if you are 3 squares away,"
  493. 4930 print"    rolling a 4 does not help you.)"
  494. 4940 print"  - the first player to have all four"
  495. 4950 print"    of his men reach the finish wins!"
  496. 4960 print" finally, keep in mind that knees is a"
  497. 4970 print" crafty opponent who will do his best"
  498. 4980 print" to beat you...don't let knees win!"
  499. 4990 print" good luck, star racer!"
  500. 5000 geta$:ifa$=""and(peek(jy)and16)then5000
  501. 5010 print"[147]":poke53284,7:poke53281,4:poke53280,6:return
  502. 5020 fori=21to3step-1::poke781,i:sys59903:next:return
  503. 5030 rem -- back to the tower --
  504. 5040 goto40000
  505. 10000 dv=peek(186):open15,dv,15,"s0:sr":close15:save"sr",dv:end
  506. 40000 fori=0to21:poke828+i,8+i:next
  507. 40010 ifdv<8ordv>29ordv=8then40030
  508. 40020 a=peek(828):b=peek(828+dv-8):poke828,b:poke828+dv-8,a
  509. 40030 a$="hello connect":forj=8to29:i=peek(828+j-8):ifi=14thennext
  510. 40040 close2:open2,i,2:close2:ifstthen40060
  511. 40050 close15:open15,i,15,"r0:"+a$+"="+a$:input#15,er:close15:ifer=63then40070
  512. 40060 next:print"[147]":poke53272,23:poke186,8:end
  513. 40070 q$=chr$(34):poke646,peek(53281):print"[147]":poke53272,23
  514. 40080 print"[147]p[207]2048,0:p[207]44,8:p[207]43,1:p[207]56,160:p[207]55,0:clr:l[207]"q$a$q$","i
  515. 40090 print"run:":poke631,13:poke632,13:poke198,2:end
  516.