home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / demos / frantixfull.amos / frantixfull.amosSourceCode < prev    next >
AMOS Source Code  |  1978-12-30  |  22KB  |  646 lines

  1. Procedure INFO
  2. Rem^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
  3. Rem ^^^^^^ Frantix was started on Monday 9th July '90  ^^^^^^^^^^^^^ 
  4. Rem ^^^^^^Technichally finished,I ran into an official AMOS bug ^^^^ 
  5. Rem ^^^^^ that caused problems with variables.I restarted the code ^ 
  6. Rem ^^^^^ on 28 Sept,replacing variables with AMAL Registers. ^^^^^^ 
  7. Rem ^^^^  Finished (hopefully) on 1st Oct '90                 ^^^^^^ 
  8. Rem ^^^^ Ready to send to a magazine : Fully DE-Bugged 2nd Oct ^^^^^ 
  9. Rem ^^^^ OOOOPS ! Final Bug fixed on 5 Dec '90 (Honest)        ^^^^^ 
  10. Rem ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
  11. End Proc
  12. Global STAT1,STAT2,SET,LIGHT,BOM,GEM,MYS
  13. Screen Open 1,350,230,32,Lowres
  14. Screen Display 1,125,,,
  15. Change Mouse 3
  16. Curs Off : Flash Off 
  17. Hide On 
  18. Get Sprite Palette 
  19. Cls 0 : For STRS=1 To 150 : Plot Rnd(350),Rnd(220),4 : Next STRS
  20. Sprite 0,0,0,14 : Sprite 4,0,0,17
  21. Make Mask 
  22. Double Buffer 
  23. SQIGGLY
  24. Noise To 8 : Rem assign noise to voice 3
  25. CHOOSE: Set Rainbow 0,1,64,"(1,1,18)","",""
  26. Rainbow 0,30,100,85
  27. Paper 1 : Pen 7
  28. Locate 1,9 : Print "                                        "
  29. Locate 1,10 : Print "            Press Fire To Play          "
  30. Locate 1,11 : Print "                                        "
  31. Wait Vbl : Locate 1,12 : Print "          Or 'I' For Instructions       "
  32. Locate 1,13 : Print "  Keep Fire Pressed During Instructions "
  33. Locate 1,14 : Print "               To Start Game            "
  34. Locate 1,15 : Print "             Press 'm' for menu.       "
  35. Locate 10,20 : Pen 6 : Print "  * F R A N T I X *  "
  36. Screen 1
  37. If Fire(1) Then Flash Off : Goto RESTART
  38. If Inkey$="i" Then Flash Off : Play 1,91,1 : TITLE
  39. If Inkey$="m" Then Run "choose.amos"
  40. Goto CHOOSE
  41. TITLE
  42. RESTART: Rem restart next game
  43. Cls 0
  44. Rainbow 0,,280,
  45. Amal Off(8) : Amal Off(9)
  46. Sprite Off(8) : Sprite Off(9)
  47. Amal 8,"L RD=3" : Amal On(8) : Rem SET LIVES
  48. Amal 9,"L RE=3" : Amal On(9)
  49. Paper 0 : Locate 1,3 : Print Amreg(4) : Locate 30,3 : Print Amreg(3)
  50. SET=0 : Rem set=0 ;=1 when exchange routine initiated
  51. LIGHT=0
  52. GEM=0
  53. MYS=0
  54. Procedure SETCHANN
  55. Amal Off 
  56. Channel 1 To Sprite 0
  57. Channel 8 To Sprite 0
  58. Channel 2 To Sprite 4
  59. Channel 9 To Sprite 4
  60. Rem Channels 8-9 allocated to Sprites 8-9 (default)
  61. Amal 1,"(Anim 0,(14,5)(15,5)(16,8)(17,8)(16,5)(15,5)"
  62. Amal On 8
  63. Amal 2,"(Anim 0,(18,5)(19,5)(20,8)(21,5)(20,5)(19,5)"
  64.  Amal On 1 : Amal On 2
  65. Channel 3 To Bob 58
  66. Channel 4 To Bob 59
  67. Channel 5 To Bob 62
  68. Channel 6 To Bob 63 : Rem Green counter
  69. Channel 7 To Bob 57 : Rem Blue counter 
  70. End Proc
  71. Procedure TILEDRAW
  72. Rem Define BOB images------------------------------------------
  73. For B1=1 To 6 : Bob B1,350,0,1 : Next B1
  74. For B2=7 To 12 : Bob B2,350,0,2 : Next B2
  75. For B3=13 To 18 : Bob B3,350,0,3 : Next B3
  76. Bob 19,350,0,8 : Bob 20,350,0,8 : Rem these are 2 extra Lightbulbs 
  77. For B4=21 To 24 : Bob B4,350,0,4 : Next B4
  78. For B5=25 To 27 : Bob B5,350,0,5 : Next B5
  79. For B6=28 To 30 : Bob B6,350,0,6 : Next B6
  80. For B7=31 To 33 : Bob B7,350,0,11 : Next B7
  81. For B8=34 To 37 : Bob B8,350,0,7 : Next B8
  82. For B9=38 To 41 : Bob B9,350,0,8 : Next B9
  83. For B10=42 To 48 : Bob B10,350,0,10 : Next B10
  84. For B11=49 To 53 : Bob B11,350,0,9 : Next B11
  85. For B12=54 To 56 : Bob B12,350,0,12 : Next B12
  86. Rem Bobs defined,now position then-----------------------------
  87. TILESORT
  88. TILEMIX
  89. Locate 1,1 : Paper 0 : Pen 8 : Centre "Finished Shuffling."
  90. End Proc
  91. Procedure TILESORT
  92. TILY=40
  93. For TILES=1 To 7
  94. Bob TILES,28,TILY, : Play 1,Rnd(20),4 : TILY=TILY+20 : Next TILES
  95. TILY=40
  96. For TILES=8 To 14
  97. Bob TILES,62,TILY, : Play 1,Rnd(30),4 : TILY=TILY+20 : Next TILES
  98. TILY=40
  99. For TILES=15 To 21
  100. Bob TILES,96,TILY, : Play 1,Rnd(40),4 : TILY=TILY+20 : Next TILES
  101. TILY=40
  102. For TILES=22 To 28
  103. Bob TILES,130,TILY, : Play 1,Rnd(40),4 : TILY=TILY+20 : Next TILES
  104. TILY=40
  105. For TILES=29 To 35
  106. Bob TILES,164,TILY, : Play 1,Rnd(40),4 : TILY=TILY+20 : Next TILES
  107. TILY=40
  108. For TILES=36 To 42
  109. Bob TILES,198,TILY, : Play 1,Rnd(40),4 : TILY=TILY+20 : Next TILES
  110. TILY=40
  111. For TILES=43 To 49
  112. Bob TILES,232,TILY, : Play 1,Rnd(40),1 : TILY=TILY+20 : Next TILES
  113. TILY=40
  114. For TILES=50 To 56
  115. Bob TILES,266,TILY, : Play 1,Rnd(40),1 : TILY=TILY+20 : Next TILES
  116. Wait 60
  117. End Proc
  118. Procedure TILEMIX
  119. RCHECK=99
  120.  Randomize Timer
  121. 1 For RTILE=1 To 56 : RT=Rnd(55) : If RT=0 Then RT=56 : If RT=RCHECK Then RT=Rnd(55)+1
  122. NEWX=X Bob(RT) : NEWY=Y Bob(RT)
  123. Bob RT,X Bob(RTILE),Y Bob(RTILE), : Bob RTILE,NEWX,NEWY,
  124. Play 1,30,0 : RTCHECK=RT : Next RTILE
  125. End Proc
  126. Procedure PPOS1
  127. Get Sprite Palette 
  128. STAT1=98
  129. Rem
  130. Locate 1,3 : Print Amreg(4)
  131. Locate 30,3 : Print Amreg(3)
  132. If Amreg(3)=0 : Locate 1,1 : Print "BLUE player Wins..." : Wait 250
  133. For B=1 To 56 : Bob B,20,20,1 : Next B
  134. Goto RESTART : End If 
  135. Locate 1,1 : Paper 0 : Pen 7 : Centre "GREEN PLAYER CHOOSE START POSITION"
  136. PP1=42
  137. PCHOOSE1: Rem player 1 chooses initial tile
  138. If PP1>162 Then PP1=42
  139. If PP1<42 Then PP1=162
  140. Bob 64,290,PP1,0
  141. If Jdown(1) Then Wait 9 : Play 1,40,0 : PP1=PP1+20
  142. If Jup(1) Then Wait 9 : Play 1,35,0 : PP1=PP1-20
  143. If Fire(1) Then Goto DROIDPOS1
  144. SY=Y Hard(1,Y Bob(64))
  145. Sprite 0,410,SY,14
  146. Goto PCHOOSE1
  147. DROIDPOS1: Rem
  148. DY=Y Screen(PP1)
  149. Sprite 0,384,PP1+48,14
  150. Play 1,60,2
  151. Wait 20
  152. Bob 64,,,0
  153. Amal 8,"L RC=2" : Amal On(8)
  154. Locate 1,1 : Print "                                             "
  155. End Proc
  156. Procedure PPOS2
  157. Get Sprite Palette 
  158. STAT2=99
  159. If Amreg(4)=0 : Locate 1,1 : Print "GREEN Player  Wins" : Wait 250
  160. For B=1 To 56 : Bob B,20,20,1 : Next B
  161. Goto RESTART : End If 
  162. Locate 1,1 : Paper 0 : Pen 8 : Centre "BLUE PLAYER CHOOSE START POSITION"
  163. PP2=42
  164. PCHOOSE2: Rem player 1 chooses initial tile
  165. If PP2>162 Then PP2=42
  166. If PP2<42 Then PP2=162
  167. Bob 64,20,PP2,0
  168. If Jdown(0) Then Wait 9 : Play 1,40,0 : PP2=PP2+20
  169. If Jup(0) Then Wait 9 : Play 1,35,0 : PP2=PP2-20
  170. If Fire(0) Then Goto DROIDPOS2
  171. SY=Y Hard(1,Y Bob(64))
  172. Sprite 4,120,SY,18
  173. Goto PCHOOSE2
  174. DROIDPOS2: Rem
  175. Bob 64,,,0
  176. DY=Y Screen(PP2)
  177. Sprite 4,147,PP2+48,18
  178. Play 1,70,3
  179. Bob 64,0,0,0
  180. Rem (RC)=nextmove
  181. Amal 9,"L RC=1" : Amal On(9)
  182. Locate 1,1 : Print "                                                "
  183. End Proc
  184. SETCHANN
  185. TILEDRAW
  186. ARROW1 : ARROW2
  187. Sprite 0,0,0,14
  188. Sprite 4,0,0,17
  189. Procedure ARROW1
  190. Rem set TimerArrows.1..  
  191. Bob 58,10,170,22 : Bob 60,10,195,24
  192. End Proc
  193. Procedure ARROW2
  194. Bob 59,305,170,23 : Bob 61,305,195,24
  195. End Proc
  196. PPOS1
  197. PPOS2
  198. STRT: Rem  
  199. Procedure GEMMOVE
  200. BLUE$="Loop:Move -16,0,60 ; M 0,0,90 ; M 0,0,90 ;M 16,0,40 ; Pause ;J Loop"
  201. GREEN$="Loop:Move 16,0,60 ; M 0,0,90 ; M 0,0,90 ; M -16,0,40  ; Pause; J Loop"
  202. Amal 7,BLUE$ : Amal 6,GREEN$
  203. Amal On 7 : Amal On 6
  204. End Proc
  205. Bob Update Off 
  206. Bob 57,34,105,74 : Rem Position GEMS
  207. Bob 63,280,105,75
  208. GEMMOVE
  209. Update Every 1
  210. Do 
  211. GEMCHECK1
  212.  HIT
  213. If Amreg(0)=1 Then Goto SKIPMV1
  214. If Amreg(2)=1 Then GO2
  215. HIT
  216. SKIPMV1: Rem
  217. If Amreg(1)=1 Then Goto SKIPMV2
  218. If Amreg(2)=2 Then GO1
  219. SKIPMV2: Rem
  220. Wait Vbl : Bob Update 
  221. Loop 
  222. Procedure STATHIT1
  223. If Amreg(1)=1 Then Goto SKIPSTATS
  224. If Amreg(0)=1 Then Goto SKIPSTATS
  225. If Spritebob Col(0,1 To 6) Then STAT1=1 : SET=0
  226. If Spritebob Col(4,1 To 6) Then STAT2=1 : SET=0
  227. If Spritebob Col(0,7 To 12) Then STAT1=2 : SET=0
  228. If Spritebob Col(4,7 To 12) Then STAT2=2 : SET=0
  229. If Amreg(18)=1 Then Goto SKIPX
  230. If Spritebob Col(0,13 To 18) Then STAT1=3
  231. If Spritebob Col(4,13 To 18) Then STAT2=3
  232. SKIPX: Rem skip exchange routine if already happening 
  233. If Spritebob Col(0,21 To 24) Then STAT1=4 : SET=0
  234. If Spritebob Col(4,21 To 24) Then STAT2=4 : SET=0
  235. If Spritebob Col(0,25 To 27) Then STAT1=5 : SET=0
  236. If Spritebob Col(4,25 To 27) Then STAT2=5 : SET=0
  237. If GEM=1 Then Goto SKIPGEM
  238. If Spritebob Col(0,28 To 30) Then STAT1=6 : SET=0
  239. If Spritebob Col(4,28 To 30) Then STAT2=6 : SET=0
  240. SKIPGEM: Rem Skip GemSwitch routine if already in use 
  241. If Spritebob Col(0,31 To 33) : Amal 1,"L RD=RD-1;A 1,(37,5)(38,5)(39,5)(40,5)(41,5)(42,5)(43,4)(44,5)(0,5)"
  242. Amal On 1 : Play 90,1 : Wait 170 : Locate 30,3 : Print Amreg(3)
  243. PPOS1 : PPOS2 : End If 
  244. If Spritebob Col(4,31 To 33) : Amal 2,"L RE=RE-1;A 1,(37,5)(38,5)(39,5)(40,5)(41,5)(42,5)(43,4)(44,5)(0,5)"
  245. Amal On 2 : Play 90,1 : Wait 170 : Locate 1,3 : Print Amreg(4)
  246. PPOS2 : PPOS1 : End If 
  247. SKIPSTATS: Rem
  248. End Proc
  249. Procedure STATHIT2
  250. If Amreg(1)=1 Then Goto SKIPSTATS2
  251. If Amreg(0)=1 Then Goto SKIPSTATS2
  252. If Spritebob Col(0,34 To 37) Then SPLASH1
  253. If Spritebob Col(4,34 To 37) Then SPLASH2
  254. If LIGH=1 Then Goto MISSLIGHT
  255. If Spritebob Col(0,19 To 20) Then STAT1=9 : Rem Bobs 19-20 now light icons 
  256. If Spritebob Col(4,19 To 20) Then STAT2=9
  257. If Spritebob Col(0,38 To 41) Then STAT1=9
  258. If Spritebob Col(4,38 To 41) Then STAT2=9
  259. MISSLIGHT: Rem Lights already off 
  260. If Spritebob Col(0,42 To 48) Then STAT1=10 : Rem Bob 48=blank 
  261. If Spritebob Col(4,42 To 48) Then STAT2=10
  262. If MYS=1 Then Goto MISSMYS
  263. If Spritebob Col(0,49 To 53) Then STAT1=11
  264. If Spritebob Col(4,49 To 53) Then STAT2=11
  265. MISSMYS: Rem miss mysterymove 
  266. If Spritebob Col(0,54 To 56) Then STAT1=12
  267. If Spritebob Col(4,54 To 56) Then STAT2=12
  268. SKIPSTATS2: Rem
  269. End Proc
  270. Procedure GO2
  271. Rem set AMREG(2) to 0 after each move...Amreg2=whose turn ?........... 
  272. Rem Check if sprite 0 already moving ... 
  273. If Amreg(1)=1 Then Pop Proc
  274. Rem OK,it's not moving.....
  275. STATHIT1
  276. STATHIT2
  277. If STAT1=STAT2 Then POW1
  278. Amal 4,"Move 0,10,65" : Amal On 4
  279. Amal Off(3)
  280. If X Sprite(0)<148 Then Goto SKIPL1
  281. If Joy(1)=4 Then M$="L RA=1;L RS=0;M -17,-15,12;M -17,15,12;M 0,0,10;L RA=0;L RC=2" : Amal 8,M$ : Amal On 8 : BOING : STIMER2
  282. SKIPL1: If X Sprite(0)>377 Then Goto SKIPR1
  283. If Joy(1)=8 Then M$="L RA=1;L RS=0;M 17,-15,12;M 17,15,12;L RA=0;L RC=2" : Amal 8,M$ : Amal On 8 : BOING : STIMER2
  284. SKIPR1: If Y Sprite(0)>208 Then Goto SKIPDN1
  285. If Joy(1)=2 Then M$="L RA=1;L RS=0;M 0,10,12;M 0,10,12;L RA=0;L  RC=2" : Amal 8,M$ : Amal On 8 : BOING : STIMER2
  286. SKIPDN1: If Y Sprite(0)<92 Then Goto SKIPEND
  287. If Joy(1)=1 Then M$="L RA=1;L RS=0;M 0,-10,12;M 0,-10,12;L RA=0;L RC=2" : Amal 8,M$ : Amal On(8) : BOING2 : STIMER2
  288. SKIPEND: Rem leave routine
  289. End Proc
  290. Procedure GO1
  291. Rem set AMREG 2 to 0 after each move.............. 
  292. Rem check if sprite 4 moving 
  293. If Amreg(0)=1 Then Pop Proc
  294. Rem OK,it aint moving,carry on...  
  295. STATHIT2
  296. STATHIT1
  297. If STAT2=STAT1 Then POW2
  298. Amal 3,"Move 0,10,75" : Amal On 3
  299. Amal Off(4)
  300. If X Sprite(4)<152 Then Goto SKIPL2
  301. If Joy(0)=4 Then M$="L RB=1;L RS=0;M -17,-15,12;M -17,15,12;L RB=0;L RC=1" : Amal 9,M$ : Amal On 9 : BOING2 : STIMER1
  302. SKIPL2: If X Sprite(4)>377 Then Goto SKIPR2
  303. If Joy(0)=8 Then M$="L RB=1;L RS=0;M 17,-15,12;M 17,15,12;L RB=0;L RC=1" : Amal 9,M$ : Amal On 9 : BOING2 : STIMER1
  304. SKIPR2: If Y Sprite(4)>208 Then Goto SKIPDN2
  305. If Joy(0)=2 Then M$="L RB=1;L RS=0;M 0,10,12;M 0,10,12;L RB=0;L RC=1" : Amal 9,M$ : Amal On 9 : BOING2 : STIMER1
  306. SKIPDN2: If Y Sprite(4)<92 Then Goto SKIPEND2
  307. If Joy(0)=1 Then M$="L RB=1;L RS=0;M 0,-10,12;M 0,-10,12;L RB=0;L RC=1" : Amal 9,M$ : Amal On 9 : BOING2 : STIMER1
  308. SKIPEND2: Rem leave routine
  309. End Proc
  310. Procedure STIMER1
  311. Amal Freeze 3
  312. Bob 58,10,170,22
  313. End Proc
  314. Procedure STIMER2
  315. Amal Freeze 4
  316. Bob 59,305,170,23
  317. End Proc
  318. Procedure HIT
  319. If Bob Col(60,58 To 58) Then XPLODE2
  320.  If Bob Col(61,59 To 59) Then XPLODE1
  321. End Proc
  322. Procedure XPLODE1
  323. Amal Off(1) : Amal Off(3) : Amal Off(4)
  324. For D=25 To 30 : Sprite 0,,,D : Wait 6 : Next D
  325. Wait 20
  326. Amal 1,"A 1,(37,5)(38,5)(39,5)(40,5)(41,5)(42,5)(43,5)(44,5)" : Amal On 1
  327. Boom 
  328. Wait 40
  329. Amal 8,"L RD=RD-1" : Amal On(8)
  330. Locate 30,3 : Print Amreg(3)
  331. PPOS1
  332. PPOS2
  333. ARROW1 : ARROW2
  334. End Proc
  335. Procedure XPLODE2
  336. Amal Off(2) : Amal Off(3) : Amal Off(4)
  337. For D=31 To 36 : Sprite 4,,,D : 
  338. Wait 8 : Next D
  339. Wait 20
  340. Amal 2,"A 1,(37,6)(38,6)(39,6)(40,6)(41,6)(42,6)(43,6)(44,6)" : Amal On 2
  341. Boom 
  342. Wait 40
  343. Amal 9,"L RE=RE-1" : Amal On(9)
  344. Locate 1,3 : Print Amreg(4)
  345. PPOS2
  346. PPOS1
  347. ARROW1 : ARROW2
  348. End Proc
  349. Procedure BOING
  350. Sam Play 2,2,7400
  351. Get Sprite Palette : LIGHT=0 : GEM=0 : MYS=0
  352. ARROW2
  353. End Proc
  354. Procedure BOING2
  355.  Sam Play 2,2,8200
  356. Get Sprite Palette : LIGHT=0 : GEM=0 : MYS=0
  357. ARROW1
  358. End Proc
  359. Procedure POW1
  360. If STAT1=1 : Amal 8,"M 0,-250,30" : Amal On 8
  361.  Wait 160 : Amal 8,"L RD=RD-1" : Amal On(8) : Rem Spring 
  362. Locate 30,3 : Print Amreg(3) : PPOS1 : PPOS2 : ARROW1 : ARROW2 : End If 
  363. If STAT1=2 Then XPLODE1
  364. If STAT1=3 Then SWOPSIDES : SET=1 : Rem xchange places 
  365. If STAT1=4 Then TILEMIX
  366. If STAT1=5 Then Bob 60,10,210,24 : Rem clock
  367. If STAT1=6 Then GEMSWITCH
  368. If STAT1=7 Then End : Rem spikes 
  369. If STAT1=8 Then End : Rem Bow
  370. If LIGHT=1 Then Goto SKIPST9
  371. If STAT1=9 Then Fade 1 : Wait 10 : Get Sprite Palette %1000000 : LIGHT=1
  372. SKIPST9: Rem Lights are out 
  373. If STAT1=11 Then MYSTERYMOVE1
  374. If STAT1=12 : Amal 1,"A 1,(45,7)(46,7)(47,7)(48,7)(49,7)(50,7)(51,7)(52,7)(53,7)(54,7)(55,7)(56,7)(57,8)(58,8)(59,8)(60,8)(0,1)"
  375. Amal On 1 : Wait 160 : Amal 8,"L RD=RD-1" : Amal On(8) : Rem kwiksand 
  376. Locate 30,3 : Print Amreg(3) : PPOS1 : PPOS2 : ARROW1 : ARROW2 : End If 
  377. End Proc
  378. Procedure POW2
  379. If STAT2=1 : Amal 9,"M 0,-250,30" : Amal On 9
  380.  Wait 160 : Amal 9,"L RE=RE-1" : Amal On(9) : Rem Spring 
  381. Locate 1,3 : Print Amreg(4) : PPOS2 : PPOS1 : ARROW1 : ARROW2 : End If 
  382. If STAT2=2 Then XPLODE2
  383. If STAT2=3 Then SWOPSIDES : SET=1 : Rem xchange
  384. If STAT2=4 Then TILEMIX
  385. If STAT2=5 Then Bob 61,305,210,24 : Rem clock
  386. If STAT2=6 Then GEMSWITCH
  387. If STAT2=7 Then End : Rem spikes 
  388. If STAT2=8 Then End : Rem Bow
  389. If LIGHT=1 Then Goto SKIPSTAT9
  390. If STAT2=9 Then Fade 1 : Wait 10 : Get Sprite Palette %1000000 : LIGHT=1
  391. SKIPSTAT9: Rem Lights already out...
  392. If STAT2=11 Then MYSTERYMOVE2
  393. If STAT1=12 : Amal 2,"A 1,(61,7)(62,7)(63,7)(64,7)(65,7)(66,7)(67,7)(68,7)(69,7)(70,7)(71,7)(72,7)(73,8)(0,1)"
  394. Amal On 2 : Wait 160 : Amal 9,"L RE=RE-1" : Amal On(9) : Rem kwiksand 
  395.  Locate 1,3 : Print Amreg(4) : PPOS2 : PPOS1 : ARROW1 : ARROW2 : End If 
  396. End Proc
  397. Procedure SWOPSIDES
  398. STAT1=98 : Rem change either value so there's no repeat effect
  399. P1X=X Sprite(0) : P1Y=Y Sprite(0)
  400. P2X=X Sprite(4) : P2Y=Y Sprite(4)
  401. Sprite 0,P2X,P2Y,14 : Play 1,10,1 : Wait 30
  402. Sprite 4,P1X,P1Y,18 : Play 1,25,1 : Wait 30
  403. Amal 0,"L RS=1;M 20,0,30;M -20,0,30" : Amal On(0)
  404. End Proc
  405. Procedure GEMSWITCH
  406. If GEM=1 Then Pop Proc
  407. GX=X Bob(57)
  408. GY=Y Bob(57)
  409. GX2=X Bob(63)
  410. GY2=Y Bob(63)
  411. Bob 57,GX2,GY2,74 : Play 12,4
  412. Bob 63,GX,GY,75 : Play 14,4
  413. GEM=1
  414. End Proc
  415. Procedure MYSTERYMOVE1
  416. RN=Rnd(20)
  417. STAT1=RN
  418. MYS=1
  419. POW1
  420. End Proc
  421. Procedure MYSTERYMOVE2
  422. RN=Rnd(20)
  423. STAT2=RN
  424. MYS=1
  425. POW2
  426. End Proc
  427. Procedure SPLASH1
  428. 'Amal Off(1) 
  429. Amal 1,"Anim 1,(76,5)(77,5)(78,5)(79,5)(80,5)(0,5)"
  430. Play 8,45,1
  431. Amal On 1 : Wait 240
  432. Amal 8,"L RD=RD-1" : Amal On(8)
  433. Locate 30,3 : Print Amreg(3)
  434. PPOS1 : PPOS2
  435. ARROW1 : ARROW2
  436. End Proc
  437. Procedure SPLASH2
  438. Amal 2,"Anim 1,(86,5)(87,5)(88,5)(89,5)(90,5)(0,5)"
  439. Play 8,45,1
  440. Amal On 2 : Wait 240
  441. Amal 9,"L RE=RE-1" : Amal On(9)
  442. Locate 1,3 : Print Amreg(4)
  443. PPOS2 : PPOS1
  444. ARROW1 : ARROW2
  445. End Proc
  446. Procedure GEMCHECK1
  447. If Spritebob Col(8,57 To 57) : Locate 10,1 : Print "GREEN PLAYER IS THE WINNER..."
  448. Wait 150 : Amal Off : Bob Off : TILEZAP : SQIGGLY : Goto CHOOSE : End If 
  449. If Spritebob Col(9,63 To 63) : Locate 10,1 : Print "BLUE PLAYER IS THE WINNER..."
  450. Wait 150 : Amal Off : Bob Off : TILEZAP : SQIGGLY : Goto CHOOSE : End If 
  451. End Proc
  452. Procedure TILEZAP
  453. For TIL=1 To 56
  454. Bob Off(TIL)
  455. Play 8,95,0
  456. Next TIL
  457. Amal Off 
  458. End Proc
  459. Procedure TITLE
  460. Bob 10,0,0, : Bob 11,0,0, : Bob 12,0,0, : Bob 13,0,0,
  461. Bob 14,0,0, : Bob 15,0,0,
  462. Rainbow 0,,280,
  463. Channel 0 To Bob 0
  464. Channel 1 To Bob 1
  465. Channel 2 To Bob 2
  466. Channel 3 To Bob 3
  467. Curs Off 
  468. Cls 0 : Paper 0 : Pen 6
  469. Locate 1,8 : Print "FRANTIX is a 2 player game.Ensure that"
  470. Locate 1,9 : Print "you have TWO joysticks plugged in..."
  471. Locate 1,11 : Print "Each player controls a Squiggly in a "
  472. Locate 1,12 : Print "Battle to the Death !!"
  473. Wait 300 : Cls 0
  474. GO
  475. Bob 0,240,130,14 : Bob 1,240,40,18
  476. Locate 0,10 : Print "Joystick 1 controls the BLUE Squiggly"
  477. Locate 0,12 : Print "Joystick 2 controls the GREEN Squiggly."
  478. Wait 400
  479. GO
  480. Cls 0
  481. Amal Off(0)
  482. Bob 1,92,80,14 : Bob 0,50,80,10
  483. Amal 1,"Loop: M -10,-10,10;M -10,0,10;M -10,10,10;M 0,0,30;M 10,-10,10;M 10,0,10;M 10,10,10;M 0,0,30;J Loop" : Amal On(1)
  484. Locate 0,15 : Print "Players Take Turns To Jump 1 Square"
  485. Locate 0,16 : Print "In Either Direction.."
  486. Locate 0,17 : Print "But Hurry,If You Run Out Of Time,Your "
  487. Locate 0,18 : Print "Squiggly Will Explode ! !                               "
  488. GO
  489. Wait 500
  490. Cls 0
  491. Amal Off : Bob Off 
  492. Locate 1,10 : Print "Your Aim Is To Capture Your "
  493. Locate 1,11 : Print "Opponents Gem....             "
  494. GO
  495. Wait 40 : Bob 1,50,50,75
  496. Wait 80 : Bob 0,200,50,74
  497. Wait 70 : Locate 5,14 : Print "Or Just Survive ! !"
  498. Wait 90
  499. GO
  500. Bob Off : Cls 0 : Locate 5,10 : Print "Each Playing Board Is "
  501. Locate 1,11 : Print "Made Up Of 56 Blocks,Some Harmless..."
  502. Locate 1,12 : Print "Some Very Nasty... "
  503. GO
  504. Wait 180
  505. Cls 0
  506. Locate 0,8 : Print "If The 2 Squiggly's Land On The Same Type"
  507. Locate 0,9 : Print "Of Block,Then That Block Is DUPLICATED.    "
  508. Locate 0,11 : Print "The First Squiggly To Land On A Duplicated"
  509. Locate 0,12 : Print "Block Is Called The PRIMER.The PRIMER Must"
  510. Locate 0,13 : Print "Face The Results Of Any Action Triggered  "
  511. Locate 0,14 : Print "By The Duplicating Of Any Block..Example.."
  512. Locate 0,15 : Print "If The Quicksand Block Is Duplicated,The  "
  513. Locate 0,16 : Print "PRIMER Will Drown & Lose 1 Of His 3 Lives."
  514. Locate 3,22 : Print "PRIMER.. "
  515. GO
  516. Bob 0,100,180,12 : Bob 1,180,180,12
  517. Bob 2,80,170,18 : Bob 3,215,170,14
  518. Wait 500
  519. Amal 2,"M 10,-10,10;M 10,0,10;M 10,10,10" : Amal On(2)
  520. Wait 110
  521. Amal 3,"M -10,-10,10;M -10,0,10;M -10,10,10" : Amal On(3)
  522. Wait 100
  523. Amal 2,"A 1,(61,6)(62,6)(63,6)(64,6)(65,6)(66,6)(67,6)(68,6)(69,6)(70,6)(71,6)(72,6)(73,6)"
  524. Amal On(2)
  525. Wait 300
  526. Bob Off(3)
  527. Locate 2,20 : Print "Here's a Description Of Each Block.."
  528. '
  529. GO
  530. Wait 300 : Cls 0
  531. Bob 0,30,50,1 : Bob 1,30,190,2
  532. Amal 0,"Loop: M 0,50,60;M 0,-50,60;P;J Loop" : Amal On(0)
  533. Amal 1,"Loop: M 0,-50,60;M 0,50,60;J Loop" : Amal On(1)
  534. Paper 0 : Pen 4
  535. Play 2,2,1 : Locate 5,5 : Print "When Duplicated This Block Will  "
  536. Play 2,4,1 : Locate 5,6 : Print "Spring The First Squiggly To     "
  537. Play 2,6,1 : Locate 5,7 : Print "Land On The Block (The PRIMER)   "
  538. Play 2,8,1 : Locate 5,8 : Print "Into The Air...Lose A Life.      "
  539. GO
  540. Wait 50
  541. Pen 5
  542. Locate 5,15 : Print "When Duplicated This Block Will "
  543. Locate 5,16 : Print "Detonate The PRIMERS Block      "
  544. Locate 5,17 : Print "And Blow The Squiggly Up....    "
  545. Locate 5,18 : Print " Lose A Life....                "
  546. GO
  547. Wait 400
  548. '      
  549. Bob 0,,,3 : Bob 1,,,4
  550. Play 2,2,1 : Locate 5,5 : Print "When Duplicated This Block Will "
  551. Play 2,4,1 : Locate 5,6 : Print "Exchange The Two Squiggly's     "
  552. Play 2,6,1 : Locate 5,7 : Print "Positions.....Non-Fatal.        "
  553. Play 2,8,1 : Locate 5,8 : Print "                                "
  554. GO
  555. Wait 50
  556. Locate 5,15 : Print "When Duplicated This Block     "
  557. Locate 5,16 : Print "Will Do A Complete Reshuffle   "
  558. Locate 5,17 : Print "And Re-Arrange The Playing     "
  559. Locate 5,18 : Print "Board...........Possibly Fatal "
  560. '
  561. GO
  562. Wait 400
  563. Bob 0,,,5 : Bob 1,,,6
  564. Play 2,2,1 : Locate 5,5 : Print "When Duplicated This Block Will "
  565. Play 2,4,1 : Locate 5,6 : Print "Move The PRIMERS Timer Arrow Up,"
  566. Play 2,6,1 : Locate 5,7 : Print "Giving Him More Time To Think   "
  567. Play 2,8,1 : Locate 5,8 : Print "About His Next Move..Non-Fatal  "
  568. GO
  569. Wait 50
  570. Locate 5,15 : Print "When Duplicated This Block Will"
  571. Locate 5,16 : Print "Perform A Gem-Switch,Which Will"
  572. Locate 5,17 : Print "Exchange The Positions Of The  "
  573. Locate 5,18 : Print "Players Gems...Non-Fatal       "
  574. GO
  575. Wait 400
  576. Bob 0,,,7 : Bob 1,,,8
  577. Play 2,2,1 : Locate 5,5 : Print "Instant Block.Needs No Duplicat "
  578. Play 2,4,1 : Locate 5,6 : Print "-ing.Will Drown Squiggly If     "
  579. Play 2,6,1 : Locate 5,7 : Print "It Is Landed On..... FATAL ! !  "
  580. Play 2,8,1 : Locate 5,8 : Print "                                "
  581. GO
  582. Wait 50
  583. Locate 5,15 : Print "When Duplicated This Block Will"
  584. Locate 5,16 : Print "Turn The Lights Off !          "
  585. Locate 5,17 : Print "Try To Plan Your Next Move     "
  586. Locate 5,18 : Print "Before A LIGHTS-OUT...Non-Fatal"
  587. GO
  588. Wait 400
  589. Bob 0,,,9 : Bob 1,,,10
  590. Play 2,2,1 : Locate 5,5 : Print "Mystery Move.If Duplicated This "
  591. Play 2,4,1 : Locate 5,6 : Print "Block Will Trigger ANY Of The   "
  592. Play 2,6,1 : Locate 5,7 : Print "Other Actions,Or It May Do      "
  593. Play 2,8,1 : Locate 5,8 : Print "Nothing At All......            "
  594. GO
  595. Wait 50
  596. Locate 5,15 : Print "Blank Block.                   "
  597. Locate 5,16 : Print "Totally Harmless,Even When     "
  598. Locate 5,17 : Print "Duplicated.....                "
  599. Locate 5,18 : Print "                               "
  600. GO
  601. Wait 400
  602. Bob 0,,,11 : Bob 1,,,12
  603. Play 2,2,1 : Locate 5,5 : Print "Instant Block.Land On This And  "
  604. Play 2,4,1 : Locate 5,6 : Print "Your Squiggly Will Be Fried ! ! "
  605. Play 2,6,1 : Locate 5,7 : Print "Easy To Spot,But What If The    "
  606. Play 2,8,1 : Locate 5,8 : Print "Lights Are Out ?......Fatal !   "
  607. GO
  608. Wait 50
  609. Locate 5,15 : Print "Duplicate This & The Primer    "
  610. Locate 5,16 : Print "Will Sink In Deadly QuickSand. "
  611. Locate 5,17 : Print "Lose A Life ! !                      "
  612. Locate 5,18 : Print "                               "
  613. Wait 400
  614. Cls 0
  615. Locate 5,5 : Print "First Player To Grab Opponents Gem   "
  616. Locate 5,6 : Print "Is The Winner,Or First Player To Lose"
  617. Locate 5,7 : Print "All 3 Lives Loses.                   "
  618. Wait 400 : Cls 0
  619. Amal Off : Bob Off 
  620. SQIGGLY
  621. End Proc
  622. Procedure GO
  623. If Fire(1) : Cls 0 : Amal Off : Bob Off 
  624. Goto RESTART : End If 
  625. End Proc
  626. Procedure SQIGGLY
  627. Channel 10 To Bob 10 : Channel 11 To Bob 11 : Channel 12 To Bob 12
  628. Channel 13 To Bob 13 : Channel 14 To Bob 14 : Channel 15 To Bob 15
  629. Channel 0 To Bob 0 : Rem This is C.Banks bob
  630. Bob 0,140,230,91
  631. Bob 10,70,60,14 : Bob 11,200,60,18
  632. Bob 12,100,120,18 : Bob 13,180,180,14
  633. Bob 14,120,190,18 : Bob 15,280,50,14
  634. SQIG1$="Loop: M -20,-20,10;M -20,0,10;M -20,20,10;M 20,-20,10;M 20,0,10;M 20,20,10;J Loop"
  635. SQIG2$="Loop: M 0,-40,10;M 0,-20,20;M 0,20,20;M 0,40,10;J Loop"
  636. Amal 0,SQIG2$ : Amal On(0)
  637. Wait 3
  638. Amal 10,SQIG1$ : Amal On(10)
  639. Wait 22
  640. Amal 11,SQIG1$ : Amal On(11)
  641. Amal 12,SQIG2$ : Amal On(12)
  642. Wait 10
  643. Amal 13,SQIG2$ : Amal On(13)
  644. Wait 10 : Amal 14,SQIG1$ : Amal On(14)
  645. Wait 7 : Amal 15,SQIG2$ : Amal On(15)
  646. End Proc