home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 451-475 / apd471 / couples2.amos / couples2.amosSourceCode
AMOS Source Code  |  1992-10-28  |  18KB  |  731 lines

  1. '    ****************************************
  2. '    ***                                  ***
  3. '    ***          COUPLES Vol 2           ***
  4. '    ***              By                  ***
  5. '    ***           Graham Lund            ***
  6. '    ***                                  ***
  7. '    ****************************************
  8. '
  9. '
  10. Rem   Open the two game screens
  11. '
  12.   Screen Open 1,320,256,32,Lowres
  13.   Cls 0
  14.   Screen Open 0,320,256,32,Lowres
  15.   Curs Off : Flash Off 
  16.   Get Sprite Palette 
  17.   Paper 0
  18.   Cls 
  19.   Limit Mouse 135,50 To 440,290
  20. '
  21. Rem   Dimension the variables to hold pictures and numbers 
  22. Rem   1 to 20
  23. '
  24.   Dim PICS$(9),SPR$(6),NUM1(20),NUM2(20)
  25.   Dim X(20),Y(20),XX(20),YY(20)
  26.   Dim GB1X(40),GB1Y(40),GB2X(40),GB2Y(40),GB3X(40),GB3Y(40)
  27.   Dim GB4X(40),GB4Y(40),GB5X(40),GB5Y(40),GB6X(40),GB6Y(40)
  28.   Dim GB7X(40),GB7Y(40),GB8X(40),GB8Y(40),GB9X(40),GB9Y(40)
  29.   Dim GB10X(40),GB10Y(40)
  30. '
  31. Rem   Global variables listed here 
  32. '
  33.   Global SPR$(),PICS$(),NUM1(),NUM2(),X(),Y(),XX(),YY()
  34.   Global GB1X(),GB1Y(),GB2X(),GB2Y(),GB3X(),GB3Y(),GB4X(),GB4Y()
  35.   Global GB5X(),GB5Y(),GB6X(),GB6Y(),GB7X(),GB7Y(),GB8X(),GB8Y()
  36.   Global GB9X(),GB9Y(),GB10X(),GB10Y()
  37.   Global SCORE1,SCORE2,SCR1,SCR2,RNTHR,NEND,NUM,PNUM
  38.   Global NAME1$,NAME2$,N$,SCRL$,SPR2$
  39.   Global W,WW,P,TTAL,ARX,ARY,GME
  40.   Global S1X,S1Y,S2X,S2Y,N1X,N1Y,N2X,N2Y
  41.   Global P1X,P1Y,P2X,P2Y,P1DIST,P2DIST
  42. '
  43. Proc _SETUP
  44. Proc _SETUP2
  45. Proc _MIXUPSPRITES
  46. Proc _MIXUPPICTURES
  47. '
  48.   Dir$="couples-two:"
  49.   Load "pics/words.abk",6
  50. '
  51. Rem   Place first picture on screen 1 and hide screen
  52. '
  53. Music 1
  54.   Unpack 6 To 1
  55.   Screen Hide 1
  56.   Screen 0
  57.   Double Buffer 
  58.   Erase 6
  59. '
  60. Rem   Open first screen
  61. '
  62. Proc _EXPAND
  63.   Repeat : Until Mouse Key
  64.   RNTHR=1
  65. '  
  66. MAIN:
  67. Do 
  68.   If RNTHR=1 Then Proc _NAMES
  69.   If RNTHR=2 Then Proc _PICLOAD : Proc _SPRITELOAD
  70.   If RNTHR=3 Then Proc _GAMESETUP
  71.   If RNTHR=4 Then Proc _RESULTS
  72. Loop 
  73. '
  74. Rem   Set up the game parameters 
  75. '
  76. Procedure _GAMESETUP
  77.   Proc _MIXUP
  78.   Proc _PICLOAD
  79.   Wait 45
  80.   Unpack 8 To 1
  81.   Screen Hide 1
  82.   Screen 1
  83.   Ink 0,28
  84.   Text S1X,S1Y,Str$(SCORE1)
  85.   Text N1X,N1Y,NAME1$
  86.   Ink 2,28
  87.   Text S2X,S2Y,Str$(SCORE2)
  88.   Text N2X,N2Y,NAME2$
  89.   Screen 0
  90.   Proc _EXPAND
  91.   Erase 8
  92. Reserve Zone 40
  93.   For F=1 To 20
  94.     Set Zone F,X(F),Y(F) To X(F)+27,Y(F)+30
  95.     Set Zone F+20,XX(F),YY(F) To XX(F)+27,YY(F)+30
  96.   Next F
  97. A=Rnd(1)+1
  98.   If A=1
  99.     P=1 : Bob 1,ARX,ARY,Hrev(23)
  100.   Else If A=2
  101.     P=2 : Bob 1,ARX,ARY,23
  102.   End If 
  103. End If 
  104. Repeat 
  105.   Proc _PLACEICONONE
  106.   Proc _PLACEICONTWO
  107.   Proc _RIGHTWRONG
  108. Until RNTHR=4
  109. End Proc
  110. '
  111. Rem   Put the first icon in place
  112. '
  113. Procedure _PLACEICONONE
  114.   W=0
  115. MSTKE1:
  116.   Q=0
  117. Repeat 
  118.   M=Mouse Key
  119.   If M<>0
  120.     W=Mouse Zone : Q=1
  121.   End If 
  122. Until Q=1
  123.   If W>20 Then Goto MSTKE1
  124.   If W=0 Then Goto MSTKE1
  125.   Paste Bob X(W),Y(W),NUM1(W)
  126. End Proc
  127. '
  128. Rem   Put the second icon in place 
  129. '
  130. Procedure _PLACEICONTWO
  131.   WW=0
  132. MSTKE2:
  133.   Q=0
  134. Repeat 
  135.   M=Mouse Key
  136.   If M<>0
  137.     WW=Mouse Zone : Q=1
  138.   End If 
  139. Until Q=1
  140.   If WW<21 Then Goto MSTKE2
  141.   If WW=0 Then Goto MSTKE2
  142.   Paste Bob XX(WW-20),YY(WW-20),NUM2(WW-20)
  143. End Proc
  144. '
  145. Rem   See if we are right and then increase relevant players score 
  146. Rem   and colour in relevant players number. If wrong change players 
  147. '
  148. Procedure _RIGHTWRONG
  149.   If NUM1(W)=NUM2(WW-20)
  150.     Proc _CORRECT
  151.   Else If NUM1(W)<>NUM2(WW-20)
  152.     Proc _CHANGEPLAYERS
  153.   End If 
  154. End If 
  155. End Proc
  156. '
  157. Procedure _CORRECT
  158.   Wait 50
  159.   Reset Zone W
  160.   Reset Zone WW
  161.   If P=1
  162.     Add SCORE1,10 : Add SCR1,10
  163.     Ink 10 : Paint P1X,P1Y,1
  164.     Add P1X,11
  165.     Ink 0,28
  166.     Text S1X,S1Y,Str$(SCORE1)
  167.   Else If P=2
  168.     Add SCORE2,10 : Add SCR2,10
  169.     Ink 3 : Paint P2X,P2Y,1
  170.     Add P2X,11
  171.     Ink 2,28
  172.     Text S2X,S2Y,Str$(SCORE2)
  173.   End If 
  174. End If 
  175.   If P1X=P1DIST Then P1X=P1X-55 : Add P1Y,10
  176.   If P2X=P2DIST Then P2X=P2X-55 : Add P2Y,10
  177.   Inc TTAL
  178.   If TTAL=20
  179.     Bob Off 1
  180.     Ink 14,28
  181.     Paste Bob ARX-30,ARY-4,24
  182.     Wait 50
  183.     RNTHR=4
  184.   End If 
  185. End Proc
  186. '
  187. Procedure _CHANGEPLAYERS
  188.   Wait 50
  189.   Paste Bob X(W),Y(W),21
  190.   Paste Bob XX(WW-20),YY(WW-20),22
  191.   If P=1
  192.     P=2 : Bob 1,ARX,ARY,23
  193.   Else If P=2
  194.     P=1 : Bob 1,ARX,ARY,Hrev(23)
  195.   End If 
  196. End If 
  197. Wait 20
  198. End Proc
  199. '
  200. Rem   A procedure to show the results, add 100 points to the 
  201. Rem   winners score and to allow new names etc to be created.
  202. Rem   Uses picture bank 9. 
  203. '
  204. Procedure _RESULTS
  205.   GAMEEND=0
  206.   Erase 1
  207.   Load "sprites/game.abk"
  208.   Unpack 9 To 1
  209.   Screen Hide 1
  210.   Screen 1
  211.   Ink 0,28
  212.   Text 27,65,NAME1$
  213.   Text 27,91,Str$(SCR1)
  214.   Ink 2,28
  215.   Text 220,65,NAME2$
  216.   Text 236,91,Str$(SCR2)
  217.   If SCR1>SCR2
  218.     Ink 0,28
  219.     Text 27,132,NAME1$
  220.     Text 176,132,"100"
  221.     Add SCORE1,100
  222.   Else If SCR2>SCR1
  223.     Ink 2,28
  224.     Text 27,132,NAME2$
  225.     Text 176,132,"100"
  226.     Add SCORE2,100
  227.   Else If SCR1=SCR2
  228.     Ink 14,28
  229.     Text 27,132,"Each Player"
  230.     Text 176,132,"50"
  231.     Add SCORE1,50 : Add SCORE2,50
  232.     End If 
  233.   End If 
  234. End If 
  235.   Ink 0,28
  236.   Text 27,160,Str$(SCORE1)
  237.   Ink 2,28
  238.   Text 236,160,Str$(SCORE2)
  239.   Screen 0
  240.   Proc _EXPAND
  241.   Wait 20
  242.   If SCORE1>=1000 or SCORE2>=1000 Then GAMEEND=1 : Proc _GAMEFINISH
  243.   Reserve Zone 3
  244.   Set Zone 1,10,209 To 108,238
  245.   Set Zone 2,112,209 To 208,238
  246.   Set Zone 3,212,209 To 308,238
  247. Q=0
  248. NEWPIC=0
  249. Repeat 
  250.   M=Mouse Key
  251.     If M<>0 and Mouse Zone=1
  252.       Cls 28,17,185 To 315,200
  253.       Wait 10
  254.       Bob 1,60,192,Vrev(1)
  255.       NEWPIC=2
  256.       Proc _SETUP
  257.       RNTHR=1
  258.       Wait 50 : Q=1
  259.     Else If M<>0 and Mouse Zone=2 and GAMEEND=0
  260.       Bob 1,160,192,Vrev(1)
  261.       NEWPIC=1
  262.     Else If M<>0 and Mouse Zone=3 and GAMEEND=0
  263.       Bob 1,260,192,Vrev(1)
  264.       SCR1=0 : SCR2=0
  265.       TTAL=0
  266.       RNTHR=3
  267.       Wait 50 : Q=1
  268.       End If 
  269.     End If 
  270.   End If 
  271. Until Q=1
  272.   Bob Off 1
  273.   Ink 14,28
  274.   Text 120,195,"MOVING ON."
  275.   If NEWPIC=0
  276.      Erase 1 : Load SPR2$
  277.   Else If NEWPIC=1
  278.      Proc _SPRITELOAD
  279.   End If 
  280. End If 
  281.   Wait 30
  282. End Proc
  283. '
  284. Rem   A procedure to display the winner
  285. '
  286. Procedure _GAMEFINISH
  287.   Ink 1,28
  288.   If SCORE1>SCORE2
  289.     Text 70,195,"THE WINNER IS "+NAME1$
  290.   Else If SCORE1<SCORE2
  291.     Text 70,195,"THE WINNER IS "+NAME2$
  292.   Else If SCORE1=SCORE2
  293.     Text 70,195,"THIS GAME IS A DRAW...."
  294.     End If 
  295.   End If 
  296. End If 
  297.   Wait 200
  298.   Cls 28,17,185 To 315,200
  299.   Wait 20
  300.   Text 19,195,"CLICK ON - NEW GAME - TO PLAY AGAIN."
  301. End Proc
  302. '
  303. Rem   Procedure to load a sprite bank using the SPR$ variable  
  304. Rem   and a variable to choose the next bank (NUM) 
  305. '
  306. Procedure _SPRITELOAD
  307.   Erase 1
  308.   Load SPR$(NUM)
  309.   SPR2$=SPR$(NUM)
  310.   Inc NUM
  311.   If NUM=7 Then NUM=0 : Proc _MIXUPSPRITES
  312.   RNTHR=3
  313. End Proc
  314. '
  315. Rem   Procedure to load a Gameboard using the PICS$ varaible 
  316. Rem   and a variable to choose the next bank (PNUM)
  317. Rem   Called from the GAMESETUP routine. 
  318. Rem   Followed by the reading of variable values into X,Y,XX and YY
  319. '
  320. Procedure _PICLOAD
  321.   Shared GB1X(),GB1Y(),GB2X(),GB2Y(),GB3X(),GB3Y(),GB4X(),GB4Y()
  322.   Shared GB5X(),GB5Y(),GB6X(),GB6Y(),GB7X(),GB7Y(),GB8X(),GB8Y()
  323.   Shared GB9X(),GB9Y(),GB10X(),GB10Y()
  324.   Erase 8
  325.   Load PICS$(PNUM),8
  326.   If PICS$(PNUM)="pics/gb1.abk"
  327.     For F=1 To 20
  328.       X(F)=GB1X(F)
  329.       Y(F)=GB1Y(F)
  330.       XX(F)=GB1X(F+20)
  331.       YY(F)=GB1Y(F+20)
  332.     Next F
  333.     P1X=83 : P1Y=179 : P1DIST=P1X+55
  334.     P2X=183 : P2Y=179 : P2DIST=P2X+55
  335.     S1X=9 : S1Y=202 : N1X=15 : N1Y=239
  336.     S2X=246 : S2Y=202 : N2X=236 : N2Y=239
  337.     ARX=160 : ARY=237
  338.   Else If PICS$(PNUM)="pics/gb2.abk"
  339.     For F=1 To 20
  340.       X(F)=GB2X(F)
  341.       Y(F)=GB2Y(F)
  342.       XX(F)=GB2X(F+20)
  343.       YY(F)=GB2Y(F+20)
  344.     Next F
  345.     P1X=126 : P1Y=67 : P1DIST=P1X+55
  346.     P2X=139 : P2Y=197 : P2DIST=P2X+55
  347.     S1X=127 : S1Y=41 : N1X=109 : N1Y=59
  348.     S2X=127 : S2Y=169 : N2X=150 : N2Y=187
  349.     ARX=160 : ARY=132
  350.   Else If PICS$(PNUM)="pics/gb3.abk"
  351.     For F=1 To 20
  352.       X(F)=GB3X(F)
  353.       Y(F)=GB3Y(F)
  354.       XX(F)=GB3X(F+20)
  355.       YY(F)=GB3Y(F+20)
  356.     Next F
  357.     P1X=112 : P1Y=26 : P1DIST=P1X+55
  358.     P2X=139 : P2Y=70 : P2DIST=P2X+55
  359.     S1X=127 : S1Y=187 : N1X=14 : N1Y=250
  360.     S2X=127 : S2Y=205 : N2X=245 : N2Y=250
  361.     ARX=160 : ARY=233
  362.   Else If PICS$(PNUM)="pics/gb4.abk"
  363.     For F=1 To 20
  364.       X(F)=GB4X(F)
  365.       Y(F)=GB4Y(F)
  366.       XX(F)=GB4X(F+20)
  367.       YY(F)=GB4Y(F+20)
  368.     Next F
  369.     P1X=62 : P1Y=53 : P1DIST=P1X+55
  370.     P2X=205 : P2Y=177 : P2DIST=P2X+55
  371.     S1X=34 : S1Y=45 : N1X=101 : N1Y=105
  372.     S2X=166 : S2Y=169 : N2X=217 : N2Y=229
  373.     ARX=160 : ARY=133
  374.   Else If PICS$(PNUM)="pics/gb5.abk"
  375.     For F=1 To 20
  376.       X(F)=GB5X(F)
  377.       Y(F)=GB5Y(F)
  378.       XX(F)=GB5X(F+20)
  379.       YY(F)=GB5Y(F+20)
  380.     Next F
  381.     P1X=125 : P1Y=69 : P1DIST=P1X+55
  382.     P2X=142 : P2Y=165 : P2DIST=P2X+55
  383.     S1X=126 : S1Y=40 : N1X=136 : N1Y=60
  384.     S2X=126 : S2Y=219 : N2X=134 : N2Y=241
  385.     ARX=160 : ARY=132
  386.   Else If PICS$(PNUM)="pics/gb6.abk"
  387.     For F=1 To 20
  388.       X(F)=GB6X(F)
  389.       Y(F)=GB6Y(F)
  390.       XX(F)=GB6X(F+20)
  391.       YY(F)=GB6Y(F+20)
  392.     Next F
  393.     P1X=90 : P1Y=116 : P1DIST=P1X+55
  394.     P2X=177 : P2Y=116 : P2DIST=P2X+55
  395.     S1X=5 : S1Y=125 : N1X=15 : N1Y=148
  396.     S2X=250 : S2Y=125 : N2X=245 : N2Y=148
  397.     ARX=160 : ARY=132
  398.   Else If PICS$(PNUM)="pics/gb7.abk"
  399.     For F=1 To 20
  400.       X(F)=GB7X(F)
  401.       Y(F)=GB7Y(F)
  402.       XX(F)=GB7X(F+20)
  403.       YY(F)=GB7Y(F+20)
  404.     Next F
  405.     P1X=35 : P1Y=50 : P1DIST=P1X+55
  406.     P2X=259 : P2Y=123 : P2DIST=P2X+55
  407.     S1X=94 : S1Y=123 : N1X=104 : N1Y=141
  408.     S2X=250 : S2Y=105 : N2X=244 : N2Y=87
  409.     ARX=145 : ARY=165
  410.   Else If PICS$(PNUM)="pics/gb8.abk"
  411.     For F=1 To 20
  412.       X(F)=GB8X(F)
  413.       Y(F)=GB8Y(F)
  414.       XX(F)=GB8X(F+20)
  415.       YY(F)=GB8Y(F+20)
  416.     Next F
  417.     P1X=120 : P1Y=17 : P1DIST=P1X+55
  418.     P2X=146 : P2Y=60 : P2DIST=P2X+55
  419.     S1X=92 : S1Y=194 : N1X=15 : N1Y=250
  420.     S2X=163 : S2Y=194 : N2X=245 : N2Y=250
  421.     ARX=160 : ARY=121
  422.   Else If PICS$(PNUM)="pics/gb9.abk"
  423.     For F=1 To 20
  424.       X(F)=GB9X(F)
  425.       Y(F)=GB9Y(F)
  426.       XX(F)=GB9X(F+20)
  427.       YY(F)=GB9Y(F+20)
  428.     Next F
  429.     P1X=2 : P1Y=38 : P1DIST=P1X+55
  430.     P2X=263 : P2Y=38 : P2DIST=P2X+55
  431.     S1X=47 : S1Y=162 : N1X=15 : N1Y=250
  432.     S2X=207 : S2Y=162 : N2X=245 : N2Y=250
  433.     ARX=160 : ARY=95
  434.   Else If PICS$(PNUM)="pics/gb10.abk"
  435.     For F=1 To 20
  436.       X(F)=GB10X(F)
  437.       Y(F)=GB10Y(F)
  438.       XX(F)=GB10X(F+20)
  439.       YY(F)=GB10Y(F+20)
  440.     Next F
  441.     P1X=60 : P1Y=145 : P1DIST=P1X+55
  442.     P2X=205 : P2Y=145 : P2DIST=P2X+55
  443.     S1X=61 : S1Y=200 : N1X=14 : N1Y=58
  444.     S2X=193 : S2Y=200 : N2X=244 : N2Y=58
  445.     ARX=160 : ARY=159
  446.                   End If 
  447.                 End If 
  448.               End If 
  449.             End If 
  450.           End If 
  451.         End If 
  452.       End If 
  453.     End If 
  454.   End If 
  455. End If 
  456.   Inc PNUM
  457.   If PNUM=10 Then PNUM=0 : Proc _MIXUPPICTURES
  458. End Proc
  459. '
  460. Rem   Procedure to mix up the sprite positions in variables
  461. Rem   NUM1 and NUM2 - called from _GAMESETUP 
  462. '
  463. Procedure _MIXUP
  464.   Randomize Timer
  465.   For F=0 To 200
  466.     A=Rnd(19)+1
  467.     B=Rnd(19)+1
  468.     Swap NUM1(A),NUM1(B)
  469.   Next F
  470.   For F=0 To 200
  471.     A=Rnd(19)+1
  472.     B=Rnd(19)+1
  473.     Swap NUM2(A),NUM2(B)
  474.   Next F
  475. End Proc
  476. '
  477. Rem   Procedure to mix up the gameboards 
  478. '
  479. Procedure _MIXUPPICTURES
  480.   For F=0 To 100
  481.     A=Rnd(9)
  482.     B=Rnd(9)
  483.     Swap PICS$(A),PICS$(B)
  484.   Next F
  485. End Proc
  486. '
  487. Rem   Procedure to mix up the sprite banks using the SWAP routine
  488. Rem   in the SPR$() variable. Use in set up phase and again when   
  489. Rem   all banks used up. Then call from _PICLOAD proc. 
  490. '
  491. Procedure _MIXUPSPRITES
  492.   Randomize Timer
  493.   For F=0 To 100
  494.     A=Rnd(6)
  495.     B=Rnd(6)
  496.     Swap SPR$(A),SPR$(B)
  497.   Next F
  498. End Proc
  499. '
  500. Rem   Procedure to choose the players names
  501. '
  502. Procedure _NAMES
  503.   Unpack 7 To 1
  504.   Screen Hide 1
  505.   Screen 0
  506.   Proc _EXPAND
  507. Show 
  508. Reserve Zone 32
  509. N=10 : M=72
  510. For F=1 To 30
  511.    Set Zone F,N,M To N+18,M+18
  512.      Add N,20
  513.      If F=15 Then N=10 : M=92
  514. Next F
  515. WRT:
  516. NM=20 : NY=18 : NEND=0
  517. NAME1$="" : NAME2$=""
  518.   Pen 0 : Paper 29
  519.   Bob 1,195,175,1
  520. Repeat 
  521.   Proc _PICKLETTER
  522.   Locate NM,NY : Print N$
  523.   NAME1$=NAME1$+N$
  524.   If W>0 Then Inc NM
  525.   Wait 20
  526.   If NEND=1 Then NM=28
  527. Until NM=28
  528. '
  529. NM=20 : NY=25 : NEND=0
  530.   Bob 1,195,175,Vrev(1)
  531.   Pen 2
  532. Repeat 
  533.   Proc _PICKLETTER
  534.   Locate NM,NY : Print N$
  535.   NAME2$=NAME2$+N$
  536.   If W>0 Then Inc NM
  537.   Wait 20
  538.   If NEND=1 Then NM=28
  539. Until NM=28
  540.   Bob Off 1
  541.   Ink 14,28
  542.   Text 70,245,"ALL CORRECT (Y)-(N)?"
  543.   Box 166,237 To 189,247
  544.   Box 198,237 To 221,247
  545.   Set Zone 31,166,237 To 189,247
  546.   Set Zone 32,198,237 To 221,247
  547. Q=0 : RGHT=0
  548. Repeat 
  549.   M=Mouse Key
  550.   If M<>0 and Mouse Zone=31
  551.     Cls 28,69,237 To 250,250
  552.     RGHT=1 : Q=1
  553.   Else If M<>0 and Mouse Zone=32
  554.     Reset Zone 31
  555.     Reset Zone 32
  556.     Cls 28,69,237 To 250,250
  557.     Cls 29,146,142 To 247,155
  558.     Cls 29,146,197 To 247,210
  559.     Q=1
  560.   End If : End If 
  561. Until Q=1
  562.   If RGHT=0 Then Goto WRT
  563.   RNTHR=2
  564. End Proc
  565. '
  566. Procedure _PICKLETTER
  567. Q=0 : W=0
  568. Repeat 
  569.   M=Mouse Key
  570.   If M<>0
  571.      W=Mouse Zone : Q=1
  572.   End If 
  573. Until Q=1
  574.   If W=30 Then NEND=1 : N$=""
  575.   If W<30
  576.     N$=Mid$(SCRL$,W,1)
  577.   End If 
  578.   If W=0 Then N$=""
  579. End Proc
  580. '
  581. Rem   Procedure to copy screen 1 to screen 0 
  582. '
  583. Procedure _EXPAND
  584.   SPEED=1
  585.   For F=0 To 160 Step SPEED
  586.     STX=160-F-SPEED : SBX=160+F+SPEED
  587.     BTX=160-F-SPEED
  588.     Screen Copy 1,STX,0,SBX,256 To 0,BTX,0
  589.     Screen Swap : Wait Vbl 
  590.   Next F
  591. End Proc
  592. '
  593. Rem   Set up all the starting values/variables 
  594. '
  595. Procedure _SETUP
  596.   SCORE1=0 : SCORE2=0
  597.   SCR1=0 : SCR2=0
  598.   TTAL=0
  599. End Proc
  600. '
  601. Procedure _SETUP2
  602.   SCRL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ -."
  603.   NUM=0 : PNUM=0
  604.   For F=1 To 20
  605.     NUM1(F)=F : NUM2(F)=F
  606.   Next F
  607. '
  608.   For F=0 To 6
  609.     Read SPR$(F)
  610.   Next F
  611. '
  612.   For F=0 To 9
  613.     Read PICS$(F)
  614.   Next F
  615. '
  616.   For F=1 To 40
  617.     Read GB1X(F),GB1Y(F)
  618.   Next F
  619. '
  620.   For F=1 To 40
  621.     Read GB2X(F),GB2Y(F)
  622.   Next F
  623. '
  624.   For F=1 To 40
  625.     Read GB3X(F),GB3Y(F)
  626.   Next F
  627. '
  628.   For F=1 To 40
  629.     Read GB4X(F),GB4Y(F)
  630.   Next F
  631. '
  632.   For F=1 To 40
  633.     Read GB5X(F),GB5Y(F)
  634.   Next F
  635. '
  636.   For F=1 To 40
  637.     Read GB6X(F),GB6Y(F)
  638.   Next F
  639. '
  640.   For F=1 To 40
  641.     Read GB7X(F),GB7Y(F)
  642.   Next F
  643. '
  644.   For F=1 To 40
  645.     Read GB8X(F),GB8Y(F)
  646.   Next F
  647. '
  648.   For F=1 To 40
  649.     Read GB9X(F),GB9Y(F)
  650.   Next F
  651. '
  652.   For F=1 To 40
  653.     Read GB10X(F),GB10Y(F)
  654.   Next F
  655. '
  656. Data "sprites/cartoons.abk","sprites/cars.abk","sprites/misc.abk","sprites/flags.abk"
  657. Data "sprites/space.abk","sprites/alphabet.abk","sprites/numbers.abk"
  658. '
  659. Data "pics/gb1.abk","pics/gb2.abk","pics/gb3.abk","pics/gb4.abk","pics/gb5.abk"
  660. Data "pics/gb6.abk","pics/gb7.abk","pics/gb8.abk","pics/gb9.abk","pics/gb10.abk"
  661. '
  662. Rem   Enter X and Y readings into GB1X and GB1Y for first gameboard. 
  663. '
  664. Data 37,16,66,16,95,16,124,16,37,48,66,48,95,48,124,48,37,80,66,80
  665. Data 95,80,124,80,37,112,66,112,95,112,124,112,37,144,66,144,95,144,124,144
  666. Data 170,16,199,16,228,16,257,16,170,48,199,48,228,48,257,48,170,80,199,80
  667. Data 228,80,257,80,170,112,199,112,228,112,257,112,170,144,199,144,228,144,257,144
  668. '
  669. Rem   Enter X and Y readings into GB2X and GB2Y for second gameboard 
  670. '
  671. Data 9,33,9,65,9,97,9,129,9,161,9,193,38,48,38,112,38,176,67,16
  672. Data 67,48,67,80,67,112,67,144,67,176,67,208,96,16,96,80,96,144,96,208
  673. Data 283,33,283,65,283,97,283,129,283,161,283,193,254,48,254,112,254,176,225,16
  674. Data 225,48,225,80,225,112,225,144,225,176,225,208,196,16,196,80,196,144,196,208
  675. '
  676. Rem   Enter X and Y readings into GB3X and GB3Y for third gameboard
  677. '
  678. Data 68,16,53,48,82,48,38,80,67,80,96,80,24,112,53,112,82,112,111,112
  679. Data 9,144,38,144,67,144,96,144,125,144,38,176,67,176,96,176,53,208,82,208
  680. Data 226,16,211,48,240,48,196,80,225,80,254,80,182,112,211,112,240,112,269,112
  681. Data 167,144,196,144,225,144,254,144,283,144,196,176,225,176,254,176,211,208,240,208
  682. '
  683. Rem   Enter X and Y readings into GB4X and GB4Y for fourth gameboard 
  684. '
  685. Data 3,31,32,63,3,95,61,95,32,127,61,127,90,127,3,159,32,159,61,159
  686. Data 119,159,32,191,61,191,90,191,148,191,3,223,61,223,90,223,119,223,177,223
  687. Data 117,16,175,16,204,16,233,16,291,16,146,48,204,48,233,48,262,48,175,80
  688. Data 233,80,262,80,291,80,204,112,233,112,262,112,233,144,291,144,262,176,291,208
  689. '
  690. Rem   Enter X and Y readings into GB5X and GB5Y for fifth gameboard
  691. '
  692. Data 37,16,66,16,8,48,37,48,66,48,95,48,8,80,37,80,66,80,95,80
  693. Data 37,112,66,112,8,144,95,144,37,176,66,176,8,208,37,208,66,208,95,208
  694. Data 199,16,228,16,257,16,286,16,228,48,257,48,199,80,286,80,228,112,257,112
  695. Data 199,144,228,144,257,144,286,144,199,176,228,176,257,176,286,176,228,208,257,208
  696. '
  697. Rem   Enter X and Y readings into GB6X and GB6Y for sixth gameboard
  698. '
  699. Data 16,17,103,17,132,17,161,17,190,17,277,17,16,49,45,49,74,49,103,49
  700. Data 190,49,219,49,248,49,277,49,16,81,103,81,132,81,161,81,190,81,277,81
  701. Data 17,160,104,160,133,160,162,160,191,160,278,160,17,192,46,192,75,192,104,192
  702. Data 191,192,220,192,249,192,278,192,17,224,104,224,133,224,162,224,191,224,278,224
  703. '
  704. Rem   Enter X and Y readings into GB7X and GB7Y for seventh gameboard
  705. '
  706. Data 5,16,34,16,63,16,92,16,5,48,92,48,5,80,92,80,5,112,63,112
  707. Data 5,144,34,144,63,144,5,176,63,176,92,176,5,208,34,208,63,208,92,208
  708. Data 171,16,200,16,171,48,200,48,171,80,200,80,200,112,229,112,200,144,229,144
  709. Data 171,176,200,176,229,176,258,176,287,176,171,208,200,208,229,208,258,208,287,208
  710. '
  711. Rem   Enter X and Y readings into GB8X and GB8Y for eighth gameboard 
  712. '
  713. Data 61,16,32,48,61,48,90,48,32,80,61,80,90,80,32,112,90,112,3,144
  714. Data 32,144,61,144,90,144,119,144,61,176,3,208,32,208,61,208,90,208,119,208
  715. Data 232,16,203,48,232,48,261,48,203,80,232,80,261,80,203,112,261,112,174,144
  716. Data 203,144,232,144,261,144,290,144,232,176,174,208,203,208,232,208,261,208,290,208
  717. '
  718. Rem   Enter X and Y readings into GB9X and GB9Y for ninth gameboard
  719. '
  720. Data 117,16,146,16,175,16,59,48,88,48,117,48,175,48,204,48,233,48,30,80
  721. Data 59,80,88,80,204,80,233,80,262,80,30,112,59,112,233,112,262,112,146,112
  722. Data 15,144,117,144,146,144,175,144,277,144,59,176,88,176,117,176,175,176,204,176
  723. Data 233,176,30,208,59,208,88,208,117,224,146,224,175,224,204,208,233,208,262,208
  724. '
  725. Rem   Enter X and Y readings into Gb10X and GB10Y for tenth gameboard
  726. '
  727. Data 30,16,59,16,88,16,117,16,146,16,175,16,204,16,233,16,262,16,88,48
  728. Data 117,48,146,48,175,48,204,48,88,80,117,80,146,80,175,80,204,80,146,112
  729. Data 30,112,59,112,88,112,204,112,233,112,262,112,30,144,262,144,30,176,146,176
  730. Data 262,176,30,208,59,208,88,208,117,208,146,208,175,208,204,208,233,208,262,208
  731. End Proc