home *** CD-ROM | disk | FTP | other *** search
/ Rockford Magazine / Rockford_Magazine_021_19xx_-_de_Disk_1_of_2_Side_B.d64 / props (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  11KB  |  310 lines

  1. 1 gosub1000:gosub80:gosub50:sys49152
  2. 2 pokew1,17:sys49408:c=peek(cx):ifcthend=peek(sp+a(c)):gosub10
  3. 3 ifpeek(hm)thengosub20
  4. 4 forj=rto20-dl:next:bz=bz+r:ifbz=mxthenbz=.:gosub50
  5. 5 ifsk>nthengosub7
  6. 6 pokeh1,(peek(251)/5+9):pokew1,16:goto2
  7. 7 kl=kl+r:ifkl>nthenkl=.:pokefast,int(rnd(r)*m):poke845,(.)
  8. 8 ifrnd(r)>pthenpokefast,v:poke845,(.)
  9. 9 return
  10. 10 pokebd,2:forj=rto40:pokesp+a(c),d:pokew1,129:sys49608:pokew1,128:next
  11. 11 sc=sc-sk:ifsc<rthensc=.
  12. 12 pokebd,.:pokecx,.:return
  13. 13 rem lines 7-9 = 'vary speed' rtn
  14. 14 rem lines 10-12 = 'hit prop' rtn
  15. 20 rem*** 'home'
  16. 21 sc=sc+sk+3:ifsc>199thengosub70:gosub80
  17. 22 pokesp+21,0:printsc$"[153]score:"sc
  18. 23 forj=100to1step-2:sys49608:pokew1,21:pokeh1,j:pokew1,20:next
  19. 24 printsc$"             ":pokehm,0:pokecx,0
  20. 50 rem*** 'new coop'
  21. 51 pokesp+21,0:pokew3,21:pokeh3,peek(251):printsc$"[158]new coop":print"[153]";
  22. 52 forj=1to24:print"[218][218]":next
  23. 53 print"[218][218]":pokew1,16:pokew3,20
  24. 54 ifhf=0thenhf=1:goto58
  25. 55 hf=0:j=1062:fs=40*(int(rnd(1)*25))
  26. 56 hi=int((fs+j)/256):lo=(fs+j)-(hi*256):poke843,lo:poke844,hi
  27. 57 sys49615:pokej+fs+l1,10:printsc$"          ":pokesp+21,255:gosub100:return
  28. 58 j=1025:fs=40*(int(rnd(1)*25))
  29. 59 hi=int((fs+j)/256):lo=(fs+j)-(hi*256):poke843,lo:poke844,hi
  30. 60 sys49615:pokej+fs+l1,10:printsc$"          ":pokesp+21,255:gosub100:return
  31. 70 rem** next level
  32. 71 printchr$(142):forj=1to500:next:printchr$(14):pokesp+21,0:pokew2,21
  33. 72 pokew1,20:pokefv,3 :fork=5to115step2:pokew3,21:pokebd,k:poke646,k
  34. 73 pokeh1,k*1.4:printsc$"next level?":pokeh3,k/4:sys49608:pokew3,20:next
  35. 74 pokew1,20:pokefv,66:forj=1to3500:next:pokeh3,100:pokebd,0:pokew2,129:return
  36. 80 rem*** pick skill level
  37. 81 pokesp+21,0:pokefna(0),32:kz=0
  38. 82 printsc$"[158][157][157][157]pick skill level"
  39. 83 printsc$"[155](1 - 6)"
  40. 84 gosub200
  41. 85 ifkz<>1thensys49608:goto84
  42. 86 printsc$"[157][157][157]                "
  43. 87 printsc$"           "
  44. 88 sc=0:return
  45. 100 rem*** pause routine
  46. 101 iffnb(.)thenreturn
  47. 102 pokebd,13:printsc$"[158] pausing [146]"sc$"[155]score:"sc
  48. 103 printsc$"fire=play"sc$"zero=quit"
  49. 104 forj=1to1500:next:pokebd,0
  50. 105 sys49608:s=s+1:ifint(s/43)=s/43thenpokew3,20:pokeh3,peek(sp+1):pokew3,21
  51. 106 iffnb(.)=.then110
  52. 107 gosub200
  53. 108 ifsk>5thengosub7
  54. 109 goto105
  55. 110 printsc$"            "sc$"          "sc$"         "
  56. 111 printsc$"         "
  57. 112 pokew3,20:pokebd,2:pokebd,5:pokesp+31,0:pokebd,7:pokebd,3:pokebd,0:return
  58. 200 rem*** skill
  59. 201 g=peek(197)
  60. 203 ifg=35then300
  61. 204 ifg=56thensk=1:dl=1:pokefast,1:pokerot,4:poke829,0:poke845,0:kz=1:return
  62. 205 ifg=59thensk=2:dl=5:pokefast,2:pokerot,3:poke829,0:poke845,0:kz=1:return
  63. 206 ifg=8thensk=3:dl=10:pokefast,3:pokerot,2:poke829,0:poke845,0:kz=1:return
  64. 207 ifg=11thensk=4:dl=15:pokefast,4:pokerot,1:poke829,0:poke845,0:kz=1:return
  65. 208 ifg=16thensk=5:dl=19:pokefast,5:pokerot,0:poke829,0:poke845,0:kz=1:return
  66. 209 ifg=19thensk=6:dl=19:pokefast,6:pokerot,0:poke829,0:poke845,0:kz=1:return
  67. 210 return
  68. 300 rem*** quit
  69. 301 poke49221,2:poke49228,0:poke829,0:poke845,0:poke646,7
  70. 302 forj=sp+1tosp+15step2:pokej,123:next:poke214,24:print:forj=1to24
  71. 303 print:fork=1to20:nextk,j:pokew3,20
  72. 304 pokew3,21:printsc$"bye bye . . .":forj=1to2400:next:pokesp+21,0
  73. 305 forj=l1tovm+3:pokej,0:next:sys64738
  74. 1000 rem*** initialize
  75. 1001 rem**ml rtns: spritemove=49152:birdmove=49408:flapwing=49608:putmate=49615
  76. 1002 poke54296,47:poke54295,66 :poke53272,21:poke53281,0:bd=53280:pokebd,0
  77. 1004 gosub10000:gosub12000:fast=49221:rot=49228:r=1:n=5:m=7:p=(.98):v=28:mx=200
  78. 1006 rem*** set up sprites
  79. 1008 poke53275,255:sp=53248:cx=sp+31:pokecx,0
  80. 1012 forj=2040to2047:pokej,221:next
  81. 1014 b=80:forj=sp+1tosp+15step2:pokej,b:b=b+20:next
  82. 1016 pokesp+23,0:pokesp+29,24
  83. 1018 pokesp,40:pokesp+2,70:pokesp+4,100:pokesp+6,130:pokesp+8,188:pokesp+10,245
  84. 1020 pokesp+12,20:pokesp+14,48:pokesp+16,192
  85. 1022 pokesp+39,7:pokesp+40,3:pokesp+41,4:pokesp+42,13
  86. 1024 pokesp+43,7:pokesp+44,3:pokesp+45,13:pokesp+46,4
  87. 1025 rem ml varbls, etc in caset bufr
  88. 1026 poke828,221:rem start sprite pntrs
  89. 1028 poke829,1:rem sprite rotate countr
  90. 1030 poke830,40:poke831,0:rem line val
  91. 1032 poke832,0:rem r/l jystk flag
  92. 1034 poke833,0:rem u/d jystk flag
  93. 1036 poke834,91:rem bird char val
  94. 1038 poke835,1:poke836,4:rem up limit
  95. 1040 poke837,230:poke838,6:rem dn limit
  96. 1042 poke841,1:rem sprite move countr
  97. 1044 hm=842:pokehm,0:rem 'home' flag
  98. 1046 poke843,95:poke844,5:rem mate's first location
  99. 1048 poke251,144:poke252,4:rem first bird location - zero page
  100. 1049 poke845,0:rem filter cut countr
  101. 1050 dima(129):a(1)=1:a(2)=3:a(4)=5:a(8)=7:a(16)=9:a(32)=11:a(64)=13:a(128)=15
  102. 1052 hf=0:bz=0
  103. 1054 deffna(x)=((peek(252)*256)+peek(251))
  104. 1056 deffnb(x)=(peek(56320)and16)
  105. 1058 sc$=""
  106. 1060 rem*** sound vrbls
  107. 1064 l1=54272:h1=l1+1:w1=l1+4:w2=l1+11
  108. 1068 l3=l1+14:h3=l1+15:w3=l1+18
  109. 1070 fh=l1+22:fv=l1+23:vm=l1+24
  110. 1074 rem*** setup sounds
  111. 1076 pokel1+5,64:pokel1+12,15:pokel1+19,12
  112. 1078 pokel1+7,255:pokel1+8,255
  113. 1082 pokel1+6,0:pokel1+13,240:pokel1+20,12
  114. 1084 pokefh,90
  115. 1100 gosub11000
  116. 3000 rem*** draw coops
  117. 3004 forj=1984to1024step-40:pokej+l1,10:pokej,90:pokej+l1+1,10:pokej+1,90
  118. 3006 pokej+l1+38,10:pokej+38,90:pokej+l1+39,10:pokej+39,90:next
  119. 3008 forj=1024to1984step40:pokej+l1,13:pokej+l1+1,13:pokej+l1+38,13
  120. 3010 pokej+l1+39,13:next:return
  121. 10000 rem*** title
  122. 10001 print"[147][153]"chr$(142);
  123. 10002 print"[169] [223]"
  124. 10003 print"[169]   [223]"
  125. 10004 print"  p  "
  126. 10005 print"  r  "
  127. 10006 print"  o  "
  128. 10007 print"  p  "
  129. 10008 print"[223] s [146][169]"
  130. 10009 print"   [146]"
  131. 10010 print"[223] [146][169]"
  132. 10011 print" [146]"
  133. 10012 print"[169]   [223]"
  134. 10013 print"[169]        [223] [213][195][201] [169]        [223]"
  135. 10014 print"  props     [221] [221]     props  "
  136. 10015 print"[223]        [146][169] [202][195][203] [146][223]        [146][169]"
  137. 10016 print"[223]   [146][169]"
  138. 10017 print" [146]"
  139. 10018 print"[169] [223]"
  140. 10019 print"   [146]"
  141. 10020 print"[169] p [223]"
  142. 10021 print"  r  "
  143. 10022 print"  o  "
  144. 10023 print"  p  "
  145. 10024 print"  s  "
  146. 10025 print"[223]   [146][169]"
  147. 10026 print"[223] [146][169][159]reading[157][157][157]data..."
  148. 10027 q$="":poke214,19:print
  149. 10028 printq$"joystick":printq$"in port 2"
  150. 10999 return
  151. 11000 rem*** instructions
  152. 11002 print"[147]":poke53272,31
  153. 11004 r$=""
  154. 11006 print"[153][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218]"
  155. 11007 print"[218][218][218][218]"
  156. 11008 printr$"[218][218][158] you are a pigeon x[158] lost [153][218][218]"
  157. 11010 printr$"[218][218][158] in a dangerous sky full [153][218][218]"
  158. 11012 printr$"[218][218][158] of whirling propellers. [153][218][218]"
  159. 11013 print"[218][218][218][218]"
  160. 11014 printr$"[218][218][159] back at the coop, your  [153][218][218]"
  161. 11016 printr$"[218][218][159] mate waits faithfully-- [150]x[153][218]"
  162. 11017 print"[218][218][218][218]"
  163. 11018 printr$"[218][218][150] watch out for the props [153][218][218]"
  164. 11020 printr$"[218][218][150] while you fly for home. [153][218][218]"
  165. 11021 print"[218][218][218][218]"
  166. 11022 printr$"[218][218][158] hit fire button during  [153][218][218]"
  167. 11024 printr$"[218][218][158] score display to pause, [153][218][218]"
  168. 11026 printr$"[218][218][158] or change skill level.  [153][218][218]"
  169. 11027 print"[218][218][218][218]"
  170. 11028 printr$"[218][218][159] hit zero key during any [153][218][218]"
  171. 11030 printr$"[218][218][159] pause to  quit playing. [153][218][218]"
  172. 11032 print"[218][218][218][218]"
  173. 11038 printr$"[218][218][158] press fire button now   [153][218][218]"
  174. 11040 printr$"[218][218][158] to choose skill  level. [153][218][218]"
  175. 11042 print"[218][218][218][218]"
  176. 11044 print"[218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218]"
  177. 11050 pokew3,16:pokeh3,1:pokel3,90:pokew2,129
  178. 11052 sys49608:pokefh,peek(vm+3)/2:iffnb(0)then11052
  179. 11054 print""chr$(142):forj=1to200:next:printchr$(14)
  180. 11056 print"[147]":pokew3,20:sys49920:rem white col memory
  181. 11058 poke843,254:poke844,3:poke251,220:pokefh,2:return
  182. 12000 rem** sprite shape data
  183. 12001 ifpeek(14081)=8andpeek(15065)=195thenreturn
  184. 12287 ck=0:forj=14080to14142:readq:ck=ck+q:pokej,q:next
  185. 12288 data 0,8,0,0,24,0,0,56,0,0,56,0,0,56,0,0,24,0,0,16,0,0,16,0,0,0,0
  186. 12289 data 0,24,0,0,60,0,0,24,0,0,0,0,0,8,0,0,8,0,0,24,0,0,28,0,0,28,0,0,28
  187. 12290 data 0,0,24,0,0,16,0
  188. 12351 forj=14144to14206:readq:ck=ck+q:pokej,q:next
  189. 12352 data 0,0,0,16,0,0,28,0,0,14,0,0,15,0,0,7,128,0,3,128,0,1,192,0,0,128
  190. 12353 data 0,0,24,0,0,60,0,0,24,0,0,2,0,0,3,128,0,1,192,0,1,224,0,0,240,0,0
  191. 12354 data 112,0,0,56,0,0,8,0,0,0
  192. 12415 forj=14208to14270:readq:ck=ck+q:pokej,q:next
  193. 12416 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  194. 12417 data 0, 0,124,24, 62,255,189,255,124,24, 62, 0,0, 0,0,0,0,0,0,0,0,0,0
  195. 12418 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  196. 12479 forj=14272to14334:readq:ck=ck+q:pokej,q:next
  197. 12480 data 0,0,0,0,0,8,0,0,56,0,0,112,0,0,240,0,1,224,0,1,192,0,3,128,0,2
  198. 12481 data 0,0,24,0,0,60,0,0,24,0,0,64,0,1,192,0,3,128,0,7,128,0,15
  199. 12482 data 0,0,14,0,0,28,0,0,16,0,0,0,0,0
  200. 12500 ifck<>5053thenprint"error in data lines 12000-12482":end
  201. 49000 rem*** poke propmove rtn
  202. 49151 cj=0:forj=49152to49310:readq:ck=ck+q:pokej,q:next
  203. 49152 data 120, 173, 21, 3, 201, 234
  204. 49158 data 208, 13, 169, 33, 141, 20
  205. 49164 data 3, 169, 192, 141, 21, 3
  206. 49170 data 76, 31, 192, 169, 49, 141
  207. 49176 data 20, 3, 169, 234, 141, 21
  208. 49182 data 3, 88, 96, 169, 0, 141
  209. 49188 data 73, 3, 238, 1, 208, 206
  210. 49194 data 3, 208, 238, 5, 208, 206
  211. 49200 data 7, 208, 238, 9, 208, 206
  212. 49206 data 11, 208, 238, 13, 208, 206
  213. 49212 data 15, 208, 238, 73, 3, 173
  214. 49218 data 73, 3, 201, 2, 208, 222
  215. 49224 data 173, 61, 3, 201, 5, 240
  216. 49230 data 6, 238, 61, 3, 76, 49
  217. 49236 data 234, 173, 60, 3, 201, 224
  218. 49242 data 208, 5, 169, 220, 141, 60
  219. 49248 data 3, 141, 248, 7, 141, 249
  220. 49254 data 7, 141, 250, 7, 141, 251
  221. 49260 data 7, 141, 252, 7, 141, 253
  222. 49266 data 7, 141, 254, 7, 141, 255
  223. 49272 data 7, 238, 60, 3, 169, 0
  224. 49278 data 141, 61, 3, 173, 69, 192
  225. 49284 data 10, 10, 10, 10, 10, 141
  226. 49290 data 78, 3, 24, 173, 77, 3
  227. 49296 data 109, 78, 3, 141, 77, 3
  228. 49302 data 141, 22, 212, 206, 8, 212
  229. 49308 data 76, 49, 234
  230. 49350 ifck<>22679thenprint"error in data lines 49000-49308":end
  231. 49400 rem*** poke birdmove rtn
  232. 49407 ck=0:forj=49408to49643:readq:ck=ck+q:pokej,q:next
  233. 49408 data 160, 0, 169, 32, 145, 251
  234. 49414 data 165, 251, 133, 253, 165, 252
  235. 49420 data 133, 254, 173, 0, 220, 162
  236. 49426 data 0, 74, 176, 1, 136, 74
  237. 49432 data 176, 1, 200, 74, 176, 1
  238. 49438 data 202, 74, 176, 1, 232, 74
  239. 49444 data 142, 64, 3, 140, 65, 3
  240. 49450 data 173, 64, 3, 201, 1, 240
  241. 49456 data 18, 201, 255, 240, 3, 76
  242. 49462 data 116, 193, 165, 253, 208, 2
  243. 49468 data 198, 254, 198, 253, 76, 73
  244. 49474 data 193, 230, 253, 208, 2, 230
  245. 49480 data 254, 160, 0, 177, 253, 201
  246. 49486 data 32, 208, 3, 76, 91, 193
  247. 49492 data 201, 90, 208, 14, 76, 108
  248. 49498 data 193, 165, 253, 133, 251, 165
  249. 49504 data 254, 133, 252, 76, 116, 193
  250. 49510 data 169, 1, 141, 74, 3, 96
  251. 49516 data 165, 251, 133, 253, 165, 252
  252. 49522 data 133, 254, 173, 65, 3, 201
  253. 49528 data 1, 240, 39, 201, 255, 240
  254. 49534 data 3, 76, 200, 193, 162, 0
  255. 49540 data 165, 253, 208, 2, 198, 254
  256. 49546 data 198, 253, 232, 224, 40, 208
  257. 49552 data 243, 24, 165, 253, 205, 67
  258. 49558 data 3, 165, 254, 237, 68, 3
  259. 49564 data 176, 34, 240, 32, 144, 38
  260. 49570 data 162, 0, 230, 253, 208, 2
  261. 49576 data 230, 254, 232, 224, 40, 208
  262. 49582 data 245, 24, 165, 253, 205, 69
  263. 49588 data 3, 165, 254, 237, 70, 3
  264. 49594 data 144, 4, 240, 2, 176, 8
  265. 49600 data 165, 253, 133, 251, 165, 254
  266. 49606 data 133, 252, 160, 0, 173, 66
  267. 49612 data 3, 145, 251, 173, 75, 3
  268. 49618 data 133, 253, 173, 76, 3, 133
  269. 49624 data 254, 173, 66, 3, 145, 253
  270. 49630 data 201, 96, 240, 4, 238, 66
  271. 49636 data 3, 96, 169, 91, 141, 66
  272. 49642 data 3, 96
  273. 49650 ifck<>33160thenprint"error in data lines 49400-49642":end
  274. 49662 rem*** poke copychar rtn
  275. 49663 ck=0:forj=49664to49704:readq:ck=ck+q:pokej,q:next
  276. 49664 data 169,0,133,4,169,208,133,5
  277. 49672 data 169,0,133,6,169,56,133,7
  278. 49680 data 162,0,160,0,177,4,145,6
  279. 49688 data 200,192,255,208,247,230,5,230
  280. 49696 data 7,232,224,16,208,236,160,0,96
  281. 49700 ifck<>4894thenprint"error in data lines 49662-49696":end
  282. 49918 rem*** poke whitemem rtn
  283. 49919 ck=0:forj=49920to49939:readq:ck=ck+q:pokej,q:next
  284. 49920 data 162, 0, 169, 1, 157, 0
  285. 49926 data 216, 157, 0, 217, 157, 0
  286. 49932 data 218, 157, 0, 219, 232, 208
  287. 49938 data 241, 96
  288. 49950 ifck<>2607thenprint"error in data lines 49918-49938":end
  289. 62000 rem* copy char set to 14336
  290. 62002 poke56334,peek(56334)and254:poke1,peek(1)and251
  291. 62004 sys49664
  292. 62006 poke1,peek(1)or4:poke56334,peek(56334)or1
  293. 62400 rem** poke new character data **
  294. 62500 ck=0:forj=15064to15071:readq:ck=ck+q:pokej,q:next
  295. 62501 data 0,195,102,60,24,0,0,0
  296. 62502 forj=15072to15079:readq:ck=ck+q:pokej,q:next
  297. 62503 data 0,0,195,126,24,0,0,0
  298. 62504 forj=15080to15087:readq:ck=ck+q:pokej,q:next
  299. 62505 data 0,0,66,255,153,0,0,0
  300. 62506 forj=15088to15095:readq:ck=ck+q:pokej,q:next
  301. 62507 data 0,0,0,90,255,129,0,0
  302. 62508 forj=15096to15103:readq:ck=ck+q:pokej,q:next
  303. 62509 data 0,0,0,24,126,195,0,0
  304. 62510 forj=15104to15111:readq:ck=ck+q:pokej,q:next
  305. 62511 data 0,0,0,24,60,102,195,129
  306. 62512 forj=15056to15063:readq:ck=ck+q:pokej,q:next
  307. 62513 data 255, 60, 24, 24, 24, 24, 60,255
  308. 62600 ifck<>3255thenprint"error in data lines 62000-62513":end
  309. 63000 return
  310.