@Lg}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr "#(SDISDVOPSDVSDVSDVSDV@@@AVB7`B7aB7bB7c B}7d B7e B7f B7g  @ D:GLODE.SAV& A<(>:A%,((8(ENTER GLIDING S}PEED (1-255) <:(6(*ENTER DISTORTION (EVEN NUMBER FROM (0-14) :#6-@$%2-@AU< }F P Zd @ o6-B7`6-B7a'6-B7b36-B7c?6-B7dK6-B}7eW6-B7fc6-B7go6-@L$ D:GLODE.BAS$G@LLLI $j") $G%Byz2\ n XSYPLAYER0LEGS1HPOSPLEGS2LEGS3JOYSTICMOVELEGPRIOPBUFFERMISSILESPLAYER1PLAYER2PLAYER3FILLER }1FILLER2@@@pV@B2H A2 @0 @ A# @ }! A0 A ! A D:LEGS.SAV& }DISK 30..ADJUST HORIZONTAL & VERTICAL COORDINATES 6-%6-%$ 6-&6-%$ 6-%$  6-&7} ) DELAAAC1% @ D:GRAFP.SAV&(>:A%,CLEAR SCREEN'}AR@'TURN OFF CURSOR$ A$SIMPLIFIED PMG SETUP *-@@*(In this example,(we ar}e NOT using(ANTIC or Direct( Memory Access (to fetch Players !( or Missiles.#- A -Wait for }user to press a key.$(>:A%,CLEAR SCREEN()-@$@ )(Notice how easy*'-@$@'( it is t}o add ,#-@$@#( Color to .*-@$@*(Graphics Mode 0.2.6-A A.PAUSE FOR A MO}MENT<:-@$@$( Like this!06-@P: A>?B2HAv'B2IAD?PUT PLAYERS ON SCREEN}A6-A AF(-@$@((It's also easyP(-@$@((to change thatQ7-@$@ }!(color. -6-A7 AU{-AT@36-@#@?AKAO {X=53 is} added here simply to add a pauseZ'A@'A@d Af"(>:A%,"-@@i(}And it's easy toj(go back to the regulark(playfield color.l A nAB2H'B2I}AMOVE PLAYERS OFF SCREENs Au((>:A%,(((-@@x(You can also fill}(the entire scr}een(with all 5 players.6-A A!((Like so:!6-#@. A.MOVE ALL 5 PLAYERS ON}TO SCREEN, A(>:A%,,-@@##(The playfield is now hiding!(behind the players.(!(}6-AP A (Now I'll put it in front(of the players.36-A A3A#@%@}X6-A A&(>:A%,8-@@X(Next, when you press a key,!!(I'll shrink the playfield}9(for a moment by poking 9(Location 559 with 33.d A (>:A%,4AY@%@2@6-AJ A}dAY@%@2)( ()(Next, let's set each player(to a different color.' A 'AY}@%@2A@'A@d9A@KAAD]AASET PLAYERS TO }DIFFERENT COLORS(>:A%, A.-@@.(Notice that players $$(0-3 are behind the playfield }(but Player 4 (at right)%%(is in front of the playfield. A  Q(>:A%,*A#@%@Q!}SET PRIORITIES AND ENABLE 5TH PLAYER2-@@2(As you can see, Player 4%%((the one made up of missiles)"}##(always displays in front of@(all playfields.! A .(>:A%,@-@@v(Let's get rid of the#} 3(playfield again. = A J(>:A%,dA#@%@v-@@ (( Playfield now hiding.( A$} <(>:A%,*A#@%@<-@@ (In conclusion, here's an(example of how you c%}an!!(overlap players to create(a multicolored object." A (>:A%,$x%A#@%@%@2&}xSET PRIORITY, ENABLE 5TH PLAYER, CREATE MULTICOLORED OBJECT WHEH PLAYERS OVERLAP+$$SET PLAYERS 0 AND 2 TO OVERLAP,'} B2H@H PLAYER 06'B2I@H%@'OVERLAP@'B2P'MOVE OFF SCREEN^B2Q(}hB2RrB2S|B2TB2U*-@@*(The three co)}lors'-@@'( at left were %-@@%( produced by(-@@((Players 0 & 1.)*}-@@)(You can use the&-@@&( same idea to'-@@'( make a multi-(-@+}@((colored flying%-@@%( spacecraft!(-@@"((END OF PROGRAM AX,}A#@%@XDISPLAY PLAYERS IN FRONT OF PLAYFIELD. ENABLE 5TH PLAYERpB2V@'B2W@9B-}2X@KB2Y@pSET ALL PLAYERS TO QUADRUPLE WIDTHR-B2`A%@H%@%@RSET ALL M.}ISSILES TO QUARUPLE WIDTH*A@*SET PLAYER 0 COLOR&A@&PLAYER 2 COLOR&A@/}&PLAYER 2 COLOR&A@&PLAYER 3 COLOR&A@&PLAYER 4 COLOR/>>POKE DATA DIRECTLY INTO T0}HE THE PLAYER GRAPHIC REGISTERS0)B2aAU)IMAGE FOR PLAYER0:B2bAUPLAYER1? B2cAU1} PLAYER 2D B2dAU PLAYER 3F!B2eAU!PLAYER 4!$-@ $ -F:Ad,2}AU*AdAU-$* A?-@@"%( TAP ANY KEY5( TO CONTINUE? A7-@@!3}'( 7( $ MOVE ALL PLAYERS ON SCREEN$B2H@H$HOR. POS. P0B2I@H4}%@2%%B2P@H%@$@2%%B2Q@H%@$@2%%B2R@H%@$@25}//B2S@H%+@$@2,%@$//B2T@H%+@$@2,%@.//B2U@H%+@$@6}2,%@$8$ D:GRAFP.BASN7' 4XLW"j' 23 !B a% m36ALO""X" TO DELETEԠŠˠDELETE:(6-%$  6-&6-&$  6-&$  6-%$ 6-&$'67,. AMOVE PLAYERS LEGS/8}6-%@# @,67,./$ @67,.$ ' 67,."@ $6-'$!$MAIN9} LOOP F:,  A"XB + A+-@A(;( @:7,,? B&b:}SETUP ROUTINES FOLLON" B"MISC. 1NIT1LIZTION. +@.SET GR. MODE BEFORE PMG SETUP! BPM;}G SETUP B DRAW PLAYFIELD0 B00PLAYER COLOR AND SCREEN POSITIONR$ ERROR CORRECTION ROUTINE A<} 6.6-A(!6-@-6-7 A0A A'MISC. INITIALIZATIONB'N6-A26-B2H'6-A#=}36-@0?6-@K6-@N$*PMG SETUP ROUTINE*BB;@,;+P:C:,'A$,%@,$A$&C:,&@>},+GG;A,;A(,;A(,;A(,;A(,;A(, +6.>:,+67A,.>:, +?}67@,.%+! 6.6.6.6.!6.*+&&;@,;@,;@,4+--@@")67<,.>:,@}- 9+--@@")67<,.>:,- ;+--@@")67<,.>:,- H+DBByC:,'AVDDTA}ELL ANTIC WHERE START OF PM MEMORY ISM+(AY@F(DOUBLE LINE RES.R+#B2w@#TURN ON PMGf+ #,B}$$,220,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,0.,110,0,0,28,28,8,28,58,89,24,40,76,68,68,0,0,08,330,0,0,28,28,8,28,5C}8,89,24,56,72,132,130,0,0,0.DRAM PLAYFIELD.'0@@@'@.',@ '/@@@ D}.; @/@`@5)@;/@y@5.$2##SET PLAYER COLOR AND POSITION26-@R26-@E}2A@2JB2HJPOKE HORIZONTAL VALUE INTO HORIZONTON POSITION REGISTER.25 67,.5PUT IMAGE F}INTO PROPER BYTE OF PLAYER0.2$ D:LEGS.BASJOYSTICMOVELEGPRIOPBUFFERMISSILESPLAYER1PLAYER2PLAYER3FILLER5]^XSYJOYSTICHPOSPPLAYER0IMAGE1FILLER1FILLER2BUFFERMISSILESPLAYER1PLAYER2PLAYER3 H}  A  I} A  D:MOVE1.SAV& DISK 30..ADJUST HORIZONTAL & VERTICAL COORDINATES 6-%6-%$ 6-&6- J}%$ 6-%$  6-&6-%$  6-&6-&$  6-&$  6-%$ 6-&$$MAIN LOO K}P# F:,67,.# A"SETUP ROUTINES FOLLOW:" B"MISC. INITILIZTION L}. +@.SET GR. MODE BEFORE PMG SETUP! BPMG SETUP B DRAW PLAYFIELD0 B00PLAYER COLO M}R AND SCREEN POSITIONR$'MISC. INITIALIZATIONB'*6-A26-B2H'6-@*$*PMG SETUP ROUTINE*BB N};@,;+P:C:,'A$,%@,$A$&C:,&@,+GG;A,;A(,;A(,;A(,;A(,;A O}(, +6.>:,+67A,.>:, +67@,.%+! 6.6.6.6.!6.*+;@,4+-- P}@@")67<,.>:,- H+DBByC:,'AVDDTELL ANTIC WHERE START OF PM MEMORY ISM+(AY@F Q}(DOUBLE LINE RES.R+#B2w@#TURN ON PMGW+$$,--0,0,28,28,8,28,58,89,24,40,76,68,68,0,0.DRAW PLAYFIEL R}D.'0@@@'@.',@ '/@@@ .; @/@`@5)@;/@ S}y@5.$2##SET PLAYER COLOR AND POSITION26-@R26-@2A@2KB2HKPO T}KE HORIZONTAL VALUE INTO HORIZONT0NL POSITION REGISTER.2U 67,.UPUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VE U}RTICAL POSITION2$ D2:MOVE1.BASION REGISTER.2U 67,.UPUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VE *deXSYJOYSTICHPOSPPLAYER0IMAGE1PFILLER1FILLER2BUFFERMISSILESPLAYER1PLAYER2PLAYER3PRIOAvW}@@A2B2Hc@@    * **X}! A@ A ! A  D:MOVE1.SAV& DISK 30..ADJUST HORIZONTAL & VERTICAL COORDINATES 6Y}-%6-%$ 6-&6-%$ 6-%$  6-&6-%$  6-&6-&$  6-&$  6-%$Z} 6-&$$MAIN LOOP# F:,67,.# A"XB + A+-@[}A(;( @:7,,? B&bSETUP ROUTINES FOLLOW:" B"MISC. INITILIZTION. +@.SET GR.\} MODE BEFORE PMG SETUP! BPMG SETUP B DRAW PLAYFIELD0 B00PLAYER COLOR AND SCREEN POSITIO]}NR$MI(AWHAT NUMBER WOULD YOU LIKE TO POKE INTO THE PRIORITY REGISTER?MC?(7WHAT SPEED WOULD YOU LIKE FOR THE^} PLAYER? 1, 2, 3?C'MISC. INITIALIZATIONB'*6-A26-B2H'6-@*$*PMG SETUP ROUTINE*BB;_}@,;+P:C:,'A$,%@,$A$&C:,&@,+GG;A,;A(,;A(,;A(,;A(,;A(`}, +6.>:,+67A,.>:, +67@,.%+! 6.6.6.6.!6.*+;@,4+--a}@@")67<,.>:,- H+DBByC:,'AVDDTELL ANTIC WHERE START OF PM MEMORY ISM+(AY@Fb}(DOUBLE LINE RES.R+#B2w@#TURN ON PMGf+ #,$$,110,0,0,28,28,8,28,58,89,24,40,76,68,68,0,0,0.Dc}RAW PLAYFIELD.'0@@@'@.',@ '/@@@ .; @/@`@5)d}@;/@y@5.$2##SET PLAYER COLOR AND POSITION26-@R26-@2A@2KBe}2HKPOKE HORIZONTAL VALUE INTO HORIZONT0NL POSITION REGISTER.2U 67,.UPUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 Df}ETERMINES VERTICAL POSITION2$ D2:MOVE2.BASION REGISTER.2U 67,.UPUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 D6d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%h} DD˙`  }J)Lr J  ((  p L ()   Ji}L= ( L 0q A    IB JC;? D W j} LL  ` W )LA!  ߰")-݆ p" k} $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ`l}$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H m}p h  hyhy D L> L JJ    ! LA*` BFn}7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!Lo}EE !E^ ^ E E7EȩEdE/EȩE  Dp} .L }  ;F d  ;?F7F? ( .   Z D LL d }hXSYPLAYER0LEGS1HPOSPLEGS2LEGS3X0Y0HITCLMXMSMYHPMOSMDFIREP0PM0PJOYSTICMOVELEGSDPDVSIZEr}RANDOBUTTONMOVEDIRMISSILESBUFFERHPOSMMIMAGE0PRIOPSETSOUNSDVFILLER1FILLER2PLAYER1PLAYER2PLAYER3PAUSAs}u@@`B2H! Au @ B2x @t}B2RB2HA2@0B7b@B7cB2`B7pADu} B2R!2"A##@$A%B7`&B7a'()*+,@-.A/v}! A0 A ! A..ADJUST HORIZONTAL & VERTICAL COORDINATES 6-%6-%$ 6-&6-%w}$ 6-%$  6-&6-%$  6-&6-&$  6-&$  6-%$ 6-&$'67,. Ax}MOVE PLAYER'S LEGS/6-%@# @,67,./$ @67,.$ -67,."@y} *6--$!$($)O6-Au6-@% A4AF:,:6.@L@O$* 6-6-z}@$, 6-6-@$1MISSILE 0 TO PLAYFIELD2$3 A$4 A$5 A{}$6 A$<END OF COLLISIONSA 6-%6-%$B 6-&6-%$C 6-%$E 6-&6-%$F|} 6-%6-&$G 6-&$I 6-%$J 6-&$66-'6-3@6$MAIN}} LOOP=(P0PF=F:,M0PF=F:,. F:,%@@= F:,%@P 6-6- F:, ", ~}F:,-6F:,"*F:,@(6-F:,66-%@1" A;K"@6-%@+}6-%@16-?6-%@K6-@@!@ %@`J)6-&@ @)6-O 6.}67,.o-A@+AG2@@k2@%@P@@o }J%2G2@J$ AXB + A+-@A(};( @:7,,? B&bSETUP ROUTINES FOLLOW# B#MISC. INITIALIZTION. +@.SET GR. MODE BEF}ORE PMG SETUP! B DRAW PLAYFIELD BPMG SETUP0 B00PLAYER COLOR AND SCREEN POSITION B}@DISPLAY MESSAGER$ ERROR CORRECTION ROUTINE !A6-A  @96-@9  @}6-@ !A(6-A( 6-  6-6- 6- 6-  A0 A}'MISC. INITIALIZATION'o6-A26-B2H'6-A#36-@0?6-@K6-@W6-ADc6-A}o6-B7`L'W6-AD6-A'6-B7`36-B7a?6-B2RK6-B2RW6-@V'{6-@6-}'6-B7b36-B7c?6-B2`K6-B7pW6-B2Rc6-B2Ho6-B2x{@*$*PMG SETUP ROUTIN}E*BB;@,;+P:C:,'A$,%@,$A$&C:,&@,+GG;A,;A(,;A(,;A(,;A(},;A(, +6.>:,+67A,.>:, +67@,.%+! 6.6.6.6.!6.*+&&;@,};@,;@,4+--@@")67<,.>:,- 9+--@@")67<,.>:,- ;+--@}@")67<,.>:,- >+;@,6.>:@,H+DBByC:,'AVDDTELL ANTIC WHERE START OF PM MEM}ORY ISM+(AY@F(DOUBLE LINE RES.R+#B2w@#TURN ON PMGf+ #,$$,220,0,0,28,28,8,28,58,89,}24,60,36,36,102,0,0,0.,110,0,0,28,28,8,28,58,89,24,40,76,66,68,0,0,08,330,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,0.}DRAM PLAYFIELD.'0@@@'@.],'/AY9/AY@yK/@}y]/. @.],@@a'/@@y9,@`K/@0@`]/@0@y}. @.,@R@`'/@R@E9/A@EK/A@`]/A7@`o/A7@E}/A@E,AY@2//A@2',@@E9/@@ K,A0@]/A0}@o/A'@/A'@/A0@/,@C'/@C@09,@R@EK/@"}@E]/@"@o,A/A@AY@4$2##SET PLAYER COLOR AND POSITION2}6-Au26-@2A@2LB2HLPOKE HORIZONTAL VALUE INTO HORIZONTONAL POSITION REGISTER.}2U 67,.UPUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICAL POSITION2$62(Collision Demo.+-@}A/ 2$ D:MISSCO2.BAS,15:DRAWTO 137,15:PLOT 134,12:DRAWTO 134,18720 PLOT 131,12:DRAWTO 137,18:PLOT 131,18:DRA$ . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU } L ? .  t`GBJ ~DEHI B V0dV}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh}DEL8HI4 0 HI,0 0  9 .G VLO},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO }STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG$}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES$}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N'$}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx $}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT$} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL$}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD$}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.$}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC$}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#$}hXSYPLAYER0LEGS1HPOSPLEGS2LEGS3X0Y0HITCLMXMSMYHPMOSMDFIREP0PM0PJOYSTICMOVELEGSDPDVSIZE<}RANDOBUTTONMOVEDIRMISSILESBUFFERHPOSMMIMAGE0PRIOPSETSOUNSDVFILLER1FILLER2PLAYER1PLAYER2PLAYER3PAUSA<}8@@qW@B2H A8 @q B2x @i @@x<}B2RB2HA2@0B7b@B7cB2`B7pAD@@HN<} B2R!"A##@$A%B7`&B7a'()H*+H,@-.A/<}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY$}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E $}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A$}LLOWED IN DESTINATION 0 <.|K1 THEN GOSUB DIR1+80330 D0=D0-2:IF D0<1 THEN D0=0335 IF MY0=MY1 THEN 400340 MISSILES$=BUFFER$:MISSILES$(MY0)0}=MIMAGE0$:MISSILES$(MY1)=MIMAGE1$399 GOTO 200400 MISSILES$=BUFFER$:MISSILES$(MY0)=BMISS$:GOTO 200:REM IMPORTANT: TURN ON BO0}TH MISSILES450 FOR I=15 TO 1 STEP -1:VT=PEEK(RANDOM)/2.7:SOUND 3,I,4,15:COLOR 1:PLOT 132,16:DRAWTO 90,VT455 PLOT 132,16:DRA0}WTO 159,VT460 COLOR 0:PLOT 132,16:DRAWTO 90,VT:PLOT 132,16:DRAWTO 159,VT:NEXT I:SOUND 3,0,0,0:GOSUB 700:RETURN 499 GOTO 2000}500 GOSUB OFF:MX1=0:POKE M0PL,1:POKE M1PL,2:FIRE0=0510 POKE DV0,0:POKE SD1,0:FOR I=2 TO 255 STEP 2:POKE 704,I:SOUND 0,I,14,0}14:NEXT I:POKE 704,KOLOR0520 X0=50:Y0=78:POKE 53248,X0:PLAYER0$=BUFFER$:PLAYER0$(Y0)=LEGS1$:RETURN 530 GOSUB OFF:MX0=0:POKE0} M1PL,1:POKE M0PL,2:FIRE1=0:FIRE0=0540 POKE DV0,0:POKE SD1,0:FOR I=2 TO 254 STEP 2:POKE 705,I:SOUND 0,I,14,15:NEXT I:POKE 700}5,KOLOR1550 X1=62:Y1=78:PLAYER1$=BUFFER$:PLAYER1$(Y1)=LEGS1$:POKE HPOSP1,X1560 RETURN 600 TRAP 610:FOR I=1 TO 128:? I;"= "0};ASC(BMISS$(I)):NEXT I:STOP :REM GO HERE TO LOOK AT DATA IN PM MEMORY.610 END 660 FOR J=1 TO 20:FOR I=1 TO 5:SETCOLOR 4,J,J0}+1:SOUND 0,I*10-7,10,I*2:NEXT I:NEXT J:POKE M0PL,2:POKE M1PL,2661 PLAYER1$=BUFFER$:PLAYER0$(Y0)=LEGS1$:X1=62:Y1=78:POKE 53240}9,X1:ROUND=ROUND+1662 X0=50:Y0=78:GOSUB 5500:PLAYER0$=BUFFER$:PLAYER0$(Y0)=LEGS1$:POKE 53248,X0:SETCOLOR 4,HUE,LUM:RETURN 70}00 REM CRYSTAL 710 COLOR 2:PLOT 131,15:DRAWTO 137,15:PLOT 134,12:DRAWTO 134,18720 PLOT 131,12:DRAWTO 137,18:PLOT 131,18:DRA0}WTO 137,12:COLOR 1730 RETURN 900 REM 910 REM 920 REM 1900 PLAYER0$=BUFFER$:Y0=128:X0=80:X=0:GOTO 1902000 GOSUB 10000:RE0}M INITIALIZE CONSTANTS 2005 GRAPHICS 7:REM GR. MODE BEFORE PMG2007 GOSUB 12000:REM DRAW PLAYFIELD 2010 GOSUB 11000:REM PGM0}SETUP2030 GOSUB 13000:REM SCREEN POSITION2040 GOSUB 5000:REM SELECT COLOR2050 RETURN 2080 IF MY1<1 OR MY1>128 THEN MY1=1:0}POKE 53253,0:FIRE1=0:SP=3:GOTO 21002085 IF MX1<0 OR MX1>150 THEN MX1=10:FIRE1=0:GOTO 21002087 IF MX0<0 OR MX0>150 THEN MX0=0}10:FIRE1=0:GOTO 21002090 IF MY0<1 OR MY0>128 THEN MY0=Y0:POKE 53252,0:FIRE0=0:GOTO 21002095 IF MY1<1 OR MY1>128 THEN MY1=Y10}:POKE 53252,0:FIRE0=0:GOTO 21002099 ? "GOOF NO. ";PEEK(195);"SEE LINE NUMBER ";PEEK(186)+256*PEEK(187)2100 D0=0:TRAP 2080:G0}OTO 200:REM PEEK(187)*256+PEEK(186) 3000 IF X0>210 THEN X0=210:REM CORRECT PLAYER COORDINATES 3010 IF X0<39 THEN X0=3930200} IF Y0<1 THEN Y0=13030 IF Y0>128 THEN Y0=1283040 MX0=0:MY0=Y0:MX1=0:MY1=Y13050 D0=0:D1=0:REM TURN OFF MISSILE SOUND 3060 0}FIRE0=0:FIRE1=0:REM TURN OFF FIRE FLAG3070 Z=0:REM RESET LEG MOVEMENT COUNTER 3080 TRAP 3000:GOTO 2104000 RETURN :POKE 20,0}04050 ? CHR$(125):? " ";11-Y:SOUND 0,Y+PEEK(20)+5,14,10:GOTO 40105000 ? "PRESS SELECT TO CHANGE SCREEN COLO0}R, OPTION TO CHANGE PLAYER COLOR, START TO START GAME"5005 X0=50:X1=62:POKE HPOSP0,X0:POKE HPOSP1,X15015 IF PEEK(53279)=5 T0}HEN GOSUB 52005020 IF PEEK(53279)=3 THEN GOSUB 53005025 IF PEEK(53279)=6 THEN SETK=SETK:RETURN 5030 GOTO 50155199 REM CHA0}NGE SCREEN COLORS5200 LUM=LUM+15210 IF LUM>14 THEN LUM=0:HUE=HUE+15220 IF HUE>15 THEN HUE=0:LUM=05230 SETCOLOR 4,HUE,LUM0}5299 REM CHANGE PLAYER COLOR 5300 KOLOR0=KOLOR0+2:KOLOR1=KOLOR1+2:IF KOLOR0>254 THEN KOLOR0=05305 IF KOLOR1>254 THEN KOLOR10}=05310 POKE 704,KOLOR0:POKE 705,KOLOR1:RETURN 5500 ? CHR$(125):? " ROUND #";ROUND:? :? "PLAYER 1 = ";S0;" P0}LAYER 2 = ";S1:SOUND 0,255,14,155510 IF S0>9 THEN ? :? "PLAYER 1 WINS":GOTO 55405520 IF S1>9 THEN ? :? "PLAYER 2 WINS":GOTO2{}! A0 A ! A" D:MISSCOL.SAV&"DISK 30--ADJUST HORIZONTAL & VETICAL COORDINATES 6-<}%6-%$ 6-&6-%$ 6-%$  6-&6-%$  6-&6-&$  6-&$  6-%$=} 6-&$'67,. AMOVE PLAYER'S LEGS/6-%@# @,67,./$ @6=}7,.$ -67,."@ *6--$!$($) 6-6-@$* 6-6-@$=}, 6-6-@$1MISSILE 0 TO PLAYFIELD2$3 A$4 A$5 A$6 A=}$<END OF COLLISIONSA 6-%6-%$B 6-&6-%$C 6-%$E 6-&6-%$F 6-%6-&=}$G 6-&$I 6-%$J 6-&$66-'6-3@6$MAIN LOOP=(P0P=}F=F:,M0PF=F:,. F:,%@@= F:,%@P 6-6- F:, ", F:,=}-6F:,"*F:,@(6-F:,66-%@1" A;K"@6-%@+6-%@16=}-?6-%@K6-@@!@ %@`J)6-&@ @)6-O 6.67,. =} AXB + A+-@A(;( @:7,,? B&bSETUP ROUTINES FOLLOW# B#MI= }SC. INITIALIZTION. +@.SET GR. MODE BEFORE PMG SETUP! B DRAW PLAYFIELD BPMG SETUP0 = }B00PLAYER COLOR AND SCREEN POSITION B@DISPLAY MESSAGER$ ERROR CORRECTION ROUTINE !A= }6-A  @96-@9  @6-@ !A(6-A( 6-  6-6- = }6- 6-  A0 A'MISC. INITIALIZATION'o6-A26-B2H'6-A#36-@0= }?6-@K6-@W6-ADc6-Ao6-B7`L'W6-AD6-A'6-B7`36-B7a?6-B2R=}K6-B2RW6-@V'{6-@6-'6-B7b36-B7c?6-B2`K6-B7pW6-B2Rc6-B2Ho6=}-B2x{@*$*PMG SETUP ROUTINE*BB;@,;+P:C:,'A$,%@,$A$&C:,&@,+GG;=}A,;A(,;A(,;A(,;A(,;A(, +6.>:,+67A,.>:, +67@,.=}%+! 6.6.6.6.!6.*+&&;@,;@,;@,4+--@@")67<,.>:,- 9+--=}@@")67<,.>:,- ;+--@@")67<,.>:,- >+;@,6.>:@,H+DBBy=}C:,'AVDDTELL ANTIC WHERE START OF PM MEMORY ISM+(AY@F(DOUBLE LINE RES.R+#B2w@#TURN O=}N PMGf+ #,$$,220,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,0.,110,0,0,28,28,8,28,58,89,24,40,76,66,68,0,0,08,33=}0,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,0.DRAM PLAYFIELD.'0@@@'@.],=}'/AY9/AY@yK/@y]/. @.],@@a'/@@y=}9,@`K/@0@`]/@0@y. @.,@R@`'/@R@E9/A@EK=}/A@`]/A7@`o/A7@E/A@E,AY@2//A@2',@@E=}9/@@ K,A0@]/A0@o/A'@/A'@/A0@/,@C=}'/@C@09,@R@EK/@"@E]/@"@o,A/A@AY=}@4$2##SET PLAYER COLOR AND POSITION26-Au26-@2A@2LB2HLPOKE HORIZO=}NTAL VALUE INTO HORIZONTONAL POSITION REGISTER.2U 67,.UPUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICAL P=}OSITION2$62(Collision Demo.+-@A/ 2$ D:MISSCOL.BAS:D0=15320 IF FIRE0>1 THEN GOSUB DIR0+60<U1 TRAP 3000:GOSUB 2000:GOTO 2002 SAVE "D:MISSCOL.SAV":STOP :REM DISK 304 REM ADJUST HORIZONTAL & VETICAL COORDINATES5 X0=XA}0+SP:Y0=Y0+SP:RETURN 6 Y0=Y0-SP:X0=X0+SP:RETURN 7 X0=X0+SP:RETURN 9 X0=X0-SP:Y0=Y0+SP:RETURN 10 X0=X0-SP:Y0=Y0-SP:RETURN A }11 X0=X0-SP:RETURN 13 Y0=Y0+SP:RETURN 14 Y0=Y0-SP:RETURN 15 POP :PLAYER0$(Y0)=LEGS1$:GOTO 30029 REM MOVE PLAYER'S LEGS3A!}0 Z=Z+1:POKE HPOSP0,X0:IF Z<4 THEN PLAYER0$(Y0)=LEGS1$:RETURN 31 IF Z<7 THEN PLAYER0$(Y0)=LEGS2$:RETURN 32 PLAYER0$(0)=LEGSA"}3$:IF Z=9 THEN Z=0:RETURN 33 RETURN 40 RETURN 41 X0=X0A:Y0=Y0A:POKE HITCLR,1:RETURN 42 X0=X0A:Y0=Y0A:POKE HITCLR,1:RETURNA#} 44 X0=X0A:Y0=Y0A:POKE HITCLR,1:RETURN 49 REM MISSILE 0 TO PLAYFIELD50 RETURN 51 GOSUB 190:RETURN 52 GOSUB 190:RETURN 5A$}3 GOSUB 190:RETURN 54 GOSUB 190:RETURN 60 REM END OF COLLISIONS65 MX0=MX0+MS0:MY0=MY0+MS0:RETURN 66 MY0=MY0-MS0:MX0=MX0+MA%}S0:RETURN 67 MX0=MX0+MS0:RETURN 69 MX0=MX0-MS0:MY0=MY0+MS0:RETURN 70 MX0=MX0+MS0:MY0=MY0-MS0:RETURN 71 MX0=MX0-MS0:RETURNA&} 73 MY0=MY0+MS0:RETURN 74 MY0=MY0-MS0:RETURN 190 POKE HPMOSM0,0:D1=0:FIRE0=0:POKE HITCLR,1:RETURN 199 REM MAIN LOOP200 ?A'} "P0PF=";PEEK(P0PF),"M0PF=";PEEK(M0PF):GOSUB PEEK(P0PF)+40:GOSUB PEEK(M0PF)+50201 Y0A=Y0:X0A=X0:GOSUB PEEK(JOYSTICK):GOSUB MA(}OVELEGS260 REM 270 REM 280 REM 290 REM 300 POKE SD1,P1:POKE DV1,D1:POKE SIZEM,PEEK(RANDOM)301 IF PEEK(BUTTON0)=0 AND PEA)}EK(JOYSTICK)<>15 THEN MOVE0=PEEK(JOYSTICK):FIRE0=FIRE0+1305 IF FIRE0=0 THEN GOTO 200315 IF FIRE0=1 THEN MX0=X0+3:MY0=Y0+7:DA*}IR0=MOVE0:FIRE0=FIRE0+1:D1=15320 IF FIRE0>1 THEN GOSUB DIR0+60330 D1=D1-1:IF D1<1 THEN D1=0335 MISSILES$=BUFFER$:POKE HPOSA+}M0,MX0:MISSILES$(MY0)=MIMAGE0$499 GOTO 200600 GRAPHICS 0:TRAP 610:FOR I=1 TO 128:? I;" ";ASC(PLAYER0$(I)):NEXT I:STOP 610 A,}END 1999 REM SETUP ROUTINES FOLLOW2000 GOSUB 10000:REM MISC. INITIALIZTION2005 GRAPHICS 7:REM SET GR. MODE BEFORE PMG SETUA-}P!2010 GOSUB 12000:REM DRAW PLAYFIELD2015 GOSUB 11000:REM PMG SETUP2020 GOSUB 13000:REM PLAYER COLOR AND SCREEN POSITION2A.}025 GOSUB 14000:REM DISPLAY MESSAGE2130 RETURN 2999 REM ERROR CORRECTION ROUTINE3000 IF X0>210 THEN X0=2103010 IF X0<39 TA/}HEN X0=393020 IF Y0<1 THEN Y0=13030 IF Y0>128 THEN Y0=1283035 Z=03040 MX0=X0:MY0=Y03050 D1=03060 FIRE0=03080 TRAP 3000A0}:GOTO 30010000 REM MISC. INITIALIZATION10005 JOYSTICK=632:HPOSP0=53248:PRIOR=623:MOVELEGS=30:SP=1:PR=8:BUTTON0=644:SETSOUNDA1}=1000:S0=5376010060 BUTTON0=644:SETSOUND=1000:S0=53760:DV0=53761:HPOSM0=53252:HPOSM0=53252:MS0=610070 P1=10:D1=0:SD1=53762:A2}DV1=53763:SIZEM=53260:RANDOM=53770:P0PF=53252:M0PF=53248:HITCLR=53278:POKE HITCLR,110900 RETURN 10999 REM PMG SETUP ROUTINEA3}11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/1024)+1)*1024-ADR(FILLER1$)-1)11010 DIM BUFFER$(384),MISSILES$(128),PLAYEA4}R0$(128),PLAYER1$(128),PLAYER2$(128),PLAYER3$(128)11020 BUFFER$=CHR$(0)11030 BUFFER$(384)=CHR$(0)11040 BUFFER$(2)=BUFFER$A5}11045 MISSILES$=BUFFER$:PLAYER0$=BUFFER$:PLAYER1$=BUFFER$:PLAYER2$=BUFFER$:PLAYER3$=BUFFER$11050 DIM LEGS1$(17),LEGS2$(17),LA6}EGS3$(17)11060 FOR I=1 TO 17:READ A:LEGS1$(I,I)=CHR$(A):NEXT I11065 FOR I=1 TO 17:READ A:LEGS2$(I,I)=CHR$(A):NEXT I11067 FA7}OR I=1 TO 17:READ A:LEGS3$(I,I)=CHR$(A):NEXT I11070 DIM MIMAGE0$(1):MIMAGE0$=CHR$(3)11080 POKE 54279,ADR(BUFFER$)/256:REM DA8}TELL ANTIC WHERE START OF PM MEMORY IS11085 POKE 559,46:REM DOUBLE LINE RES.11090 POKE 53277,3:REM TURN ON PMG11110 POKE PA9}RIOR,PR11299 RETURN 11300 DATA 0,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,011310 DATA 0,0,0,28,28,8,28,58,89,24,40,76,66,6A:}8,0,0,011320 DATA 0,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,011999 REM DRAM PLAYFIELD12000 SETCOLOR 2,3,4:COLOR 112010 A;}PLOT 0,0:DRAWTO 159,0:DRAWTO 159,79:DRAWTO 0,79:DRAWTO 0,012015 COLOR 212020 PLOT 80,61:DRAWTO 80,79:PLOT 0,60:DRAWTO 30,60A<}:DRAWTO 30,7912025 COLOR 312030 PLOT 52,60:DRAWTO 52,45:DRAWTO 110,45:DRAWTO 110,60:DRAWTO 137,60:DRAWTO 137,45:DRAWTO 110,A=}45:PLOT 159,3212040 DRAWTO 110,32:PLOT 80,45:DRAWTO 80,20:PLOT 130,16:DRAWTO 130,14:DRAWTO 127,14:DRAWTO 127,16:DRAWTO 130,1A>}612050 PLOT 43,0:DRAWTO 43,30:PLOT 52,45:DRAWTO 22,45:DRAWTO 22,13:PLOT 103,0:DRAWTO 103,17:POKE 559,34:RETURN 12999 REM SEA?}T PLAYER COLOR AND POSITION13000 X0=17513010 Y0=8013020 POKE 704,8813030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORA@}IZONTONAL POSITION REGISTER.13040 PLAYER0$(Y0)=LEGS1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICAL POSIAA}TION13050 RETURN 14000 ? "Collision Demo.":FOR PAUSE=1 TO 100:NEXT PAUSE:RETURN ,MISSILES$(128),PLAYER0$(128),PLAYER1$(128@S1 GOSUB 2000:GOTO 2002 SAVE "D:MOVE1.SAV":STOP :REM DISK 304 REM ADJUST HORIZONTAL & VERTICAL COORDINATES5 X0=X0+SP:Y0=Y0+EC}SP:RETURN 6 Y0=Y0-SP:X0=X0+SP:RETURN 7 X0=X0+SP:RETURN 9 X0=X0-SP:Y0=Y0+SP:RETURN 10 X0=X0-SP:Y0=Y0-SP:RETURN 11 X0=X0-SED}P:RETURN 13 Y0=Y0+SP:RETURN 14 Y0=Y0-SP:RETURN 15 RETURN 199 REM MAIN LOOP200 GOSUB PEEK(JOYSTICK):POKE HPOSP0,X0:PLAYEREE}0$(Y0)=IMAGE1$:GOTO 200260 REM 270 REM 280 REM 290 REM 1999 REM SETUP ROUTINES FOLLOW:2000 GOSUB 10000:REM MISC. INITILEF}IZTION2005 GRAPHICS 5:REM SET GR. MODE BEFORE PMG SETUP!2010 GOSUB 11000:REM PMG SETUP2015 GOSUB 12000:REM DRAW PLAYFIELDEG}2020 GOSUB 13000:REM PLAYER COLOR AND SCREEN POSITION2130 RETURN 10000 REM MISC. INITIALIZATION10050 JOYSTICK=632:HPOSP0=5EH}3248:SP=1:RETURN 10999 REM PMG SETUP ROUTINE11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/1024)+1)*1024-ADR(FILLER1$)-1EI})11010 DIM BUFFER$(384),MISSILES$(128),PLAYER0$(128),PLAYER1$(128),PLAYER2$(128),PLAYER3$(128)11020 BUFFER$=CHR$(0)11030 BEJ}UFFER$(384)=CHR$(0)11040 BUFFER$(2)=BUFFER$11045 MISSILES$=BUFFER$:PLAYER0$=BUFFER$:PLAYER1$=BUFFER$:PLAYER2$=BUFFER$:PLAYEEK}R3$=BUFFER$11050 DIM IMAGE1$(15)11060 FOR I=1 TO 15:READ A:IMAGE1$(I,I)=CHR$(A):NEXT I11080 POKE 54279,ADR(BUFFER$)/256:REEL}M DTELL ANTIC WHERE START OF PM MEMORY IS11085 POKE 559,46:REM DOUBLE LINE RES.11090 POKE 53277,3:REM TURN ON PMG11095 RETEM}URN 11300 DATA 0,0,28,28,8,28,58,89,24,40,76,68,68,0,011999 REM DRAW PLAYFIELD12000 SETCOLOR 4,16,2:COLOR 112010 PLOT 0,2EN}0:DRAWTO 40,2012020 COLOR 3:DRAWTO 60,35:COLOR 2:DRAWTO 79,3512030 RETURN 12999 REM SET PLAYER COLOR AND POSITION13000 X0EO}=5213010 Y0=1213020 POKE 704,8813030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORIZONT0NL POSITION REGISTER.13040 PLAEP}YER0$(Y0)=IMAGE1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICAL POSITION13050 RETURN RTICAL PLAYER POS.Dk1 GOSUB 4000:GOSUB 2000:GOTO 2002 SAVE "D:MOVE1.SAV":STOP :REM DISK 304 REM ADJUST HORIZONTAL & VERTICAL COORDINATES5 X0=XIR}0+SP:Y0=Y0+SP:RETURN 6 Y0=Y0-SP:X0=X0+SP:RETURN 7 X0=X0+SP:RETURN 9 X0=X0-SP:Y0=Y0+SP:RETURN 10 X0=X0-SP:Y0=Y0-SP:RETURN IS}11 X0=X0-SP:RETURN 13 Y0=Y0+SP:RETURN 14 Y0=Y0-SP:RETURN 15 RETURN 199 REM MAIN LOOP200 GOSUB PEEK(JOYSTICK):POKE HPOSPIT}0,X0:PLAYER0$(Y0)=IMAGE1$:GOTO 200260 REM 270 REM 280 REM 290 REM 600 GRAPHICS 0:TRAP 610:FOR I=1 TO 128:? I;" ";ASC(PLAIU}YER0$(I)):NEXT I:STOP 610 END 1999 REM SETUP ROUTINES FOLLOW:2000 GOSUB 10000:REM MISC. INITILIZTION2005 GRAPHICS 5:REM SIV}ET GR. MODE BEFORE PMG SETUP!2010 GOSUB 11000:REM PMG SETUP2015 GOSUB 12000:REM DRAW PLAYFIELD2020 GOSUB 13000:REM PLAYER IW}COLOR AND SCREEN POSITION2130 RETURN 4000 ? "WHAT NUMBER WOULD YOU LIKE TO POKE INTO THE PRIORITY REGISTER?":INPUT PR40IX}10 ? "WHAT SPEED WOULD YOU LIKE FOR THE PLAYER? 1, 2, 3?":INPUT SP10000 REM MISC. INITIALIZATION10050 JOYSTICK=632:HPOIY}SP0=53248:SP=1:RETURN 10999 REM PMG SETUP ROUTINE11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/1024)+1)*1024-ADR(FILLERIZ}1$)-1)11010 DIM BUFFER$(384),MISSILES$(128),PLAYER0$(128),PLAYER1$(128),PLAYER2$(128),PLAYER3$(128)11020 BUFFER$=CHR$(0)11I[}030 BUFFER$(384)=CHR$(0)11040 BUFFER$(2)=BUFFER$11045 MISSILES$=BUFFER$:PLAYER0$=BUFFER$:PLAYER1$=BUFFER$:PLAYER2$=BUFFER$:I\}PLAYER3$=BUFFER$11050 DIM IMAGE1$(17)11060 FOR I=1 TO 17:READ A:IMAGE1$(I,I)=CHR$(A):NEXT I11080 POKE 54279,ADR(BUFFER$)/2I]}56:REM DTELL ANTIC WHERE START OF PM MEMORY IS11085 POKE 559,46:REM DOUBLE LINE RES.11090 POKE 53277,3:REM TURN ON PMG1111I^}0 POKE PRIOR,PR11299 RETURN 11300 DATA 0,0,0,28,28,8,28,58,89,24,40,76,68,68,0,0,011999 REM DRAW PLAYFIELD12000 SETCOLOR I_}4,16,2:COLOR 112010 PLOT 0,20:DRAWTO 40,2012020 COLOR 3:DRAWTO 60,35:COLOR 2:DRAWTO 79,3512030 RETURN 12999 REM SET PLAYEI`}R COLOR AND POSITION13000 X0=5213010 Y0=1213020 POKE 704,8813030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORIZONT0NLIa} POSITION REGISTER.13040 PLAYER0$(Y0)=IMAGE1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICAL POSITION130Ib}50 RETURN 040 IF MY0<1 OR MY0>240 THEN MY0=13042 IF MX0<40 OR MX0>210 THEN MX0=13045 MISSILES$(MY0S)=ERASE$3050 D1=0:REM H no5XSYJOYSTICHPOSPPLAYER0IMAGE1FILLER1FILLER2BUFFERMISSILESPLAYER1PLAYER2PLAYER3KOLORDELAPAUSMd}Au@soWon o   o @Me}AVAPA A SETUP ROUTINES$ A$JUMP TO MAIN ROUTINE#D:ONSCREEN.SAV&Mf}#DISK 30$MAIN ROUTINE-AT@A(PLAYER COLOR NUMBER=  Mg}"SETUP ROUTINES FOLLOW:" B"MISC. INITILIZTION. +@.SET GR. MODE BEFORMq}?BGLODE BASB LEGS BASB* GRAFP BASBGMOVE1 BASBVMOVE2 BASB'qMISSCO2 BASB%gDOS SYSBSLRES BASBVMAZEDUELBASB*DUP SYSB?MISSIL1 BASBWMISSIL2 BASVMAZEDUELSAVMISSIL1 SAVMISSIL2 SAVB%MISSCOL BAS$MISSCOL SAVBMOVE1 SAVQMOVE2 SAVBcONSCREENBAS{ONSCREENSAVBSOUNDRUNBASE PMG SETUP! BPMG SETUP B DRAW PLAYFIELD0 B00PLAYER COLOR AND SCREEN POSITIONR$Mr}-@A $'MISC. INITIALIZATIONB'6-AP$*PMG SETUP ROUTINE*BB;@,;+P:C:,'A$Ms},%@,$A$&C:,&@,+GG;A,;A(,;A(,;A(,;A(,;A(, +6.>:,Mt}+67A,.>:, +67@,.%+! 6.6.6.6.!6.*+;@,4+--@@")67Mu}<,.>:,- H+DBByC:,'AVDDTELL ANTIC WHERE START OF PM MEMORY ISM+(AY@F(DOUBLE LINE RES.R+#Mv}B2w@#TURN ON PMGW+$$,--0,0,28,28,8,28,58,89,24,40,76,68,68,0,0.DRAW PLAYFIELD.'0@@@Mw}'@.',@ '/@@@ .; @/@`@5)@;/@y@5.$2##Mx}SET PLAYER COLOR AND POSITION2,6-Au,HORIZONTAL PLAYER POSITION2*6-@s*VERTICAL PLAYER POSITION27AMy}7INITIALIZE PLAYER COLOR TO ZERO2KB2HKPOKE HORIZONTAL VALUE INTO HORIZONT0NL POSITION REGISTER.2U Mz}67,.UPUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICAL POSITION2$D:ONSCREEN.BASve joystick and Lm1 GOSUB 2000:REM SETUP ROUTINES2 GOTO 200:REM JUMP TO MAIN ROUTINE3 SAVE "D:ONSCREEN.SAV":STOP :REM DISK 3015 RETURN 199 Q|}REM MAIN ROUTINE200 FOR KOLOR0=0 TO 254 STEP 2210 POKE 704,KOLOR0220 ? "PLAYER COLOR NUMBER=";KOLOR0230 GOSUB DELAY240 NQ}}EXT KOLOR0250 END 260 REM 270 REM 280 REM 290 REM 1999 REM SETUP ROUTINES FOLLOW:2000 GOSUB 10000:REM MISC. INITILIZTIQ~}ON2005 GRAPHICS 5:REM SET GR. MODE BEFORE PMG SETUP!2010 GOSUB 11000:REM PMG SETUP2015 GOSUB 12000:REM DRAW PLAYFIELD2020Q} GOSUB 13000:REM PLAYER COLOR AND SCREEN POSITION2130 RETURN 5000 FOR PAUSE=1 TO 500:NEXT PAUSE:RETURN 10000 REM MISC. INIQ}TIALIZATION10050 DELAY=5000:RETURN 10999 REM PMG SETUP ROUTINE11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/1024)+1)*1Q}024-ADR(FILLER1$)-1)11010 DIM BUFFER$(384),MISSILES$(128),PLAYER0$(128),PLAYER1$(128),PLAYER2$(128),PLAYER3$(128)11020 BUFFQ}ER$=CHR$(0)11030 BUFFER$(384)=CHR$(0)11040 BUFFER$(2)=BUFFER$11045 MISSILES$=BUFFER$:PLAYER0$=BUFFER$:PLAYER1$=BUFFER$:PLAQ}YER2$=BUFFER$:PLAYER3$=BUFFER$11050 DIM IMAGE1$(15)11060 FOR I=1 TO 15:READ A:IMAGE1$(I,I)=CHR$(A):NEXT I11080 POKE 54279,Q}ADR(BUFFER$)/256:REM DTELL ANTIC WHERE START OF PM MEMORY IS11085 POKE 559,46:REM DOUBLE LINE RES.11090 POKE 53277,3:REM TUQ}RN ON PMG11095 RETURN 11300 DATA 0,0,28,28,8,28,58,89,24,40,76,68,68,0,011999 REM DRAW PLAYFIELD12000 SETCOLOR 4,16,2:COLQ}OR 112010 PLOT 0,20:DRAWTO 40,2012020 COLOR 3:DRAWTO 60,35:COLOR 2:DRAWTO 79,3512030 RETURN 12999 REM SET PLAYER COLOR ANQ}D POSITION13000 X0=175:REM HORIZONTAL PLAYER POSITION13010 Y0=73:REM VERTICAL PLAYER POSITION13020 POKE 704,0:REM INITIALIQ}ZE PLAYER COLOR TO ZERO13030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORIZONT0NL POSITION REGISTER.13040 PLAYER0$(Y0)=Q}IMAGE1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DETERMINES VERTICAL POSITION13050 RETURN TICAL POSITION 13050 RETURNQ}1$(128),PLAYER2$(128),PLAYER3$(128)11020 BUFFER$=CHR$(0)11030 BUFFER$(384)=CHR$(0)11040 BUFFER$(2)=BUFFER$11045 MISSILESP XSYPLAYER0LEGS1DVSTONDHPOSPLEGS2LEGS3BUTTONSETSOUNJOYSTICMOVELEGDISVOBUFFERPRIOPFILLER1U}FILLER2MISSILESPLAYER1PLAYER2PLAYER3A@@B:B7a@B7`@& @U} B2H   ADAA2@0@@A#@_U}__ A  A$D:SOUNDRUN.SAV&$DISK 30 //ADJUST HORIZONTAL &U} VERTICAL COORDINATES  6-%6-%$ 6-&6-%$ 6-%$  6-&6-%$  6-&6-&$U}  6-&$  6-%$ 6-&$%'67,.% AMOVE PLAYERS LEGS=6-%@$U}%1 @:67,.=$ @67,.$ ' 67,."@ $6-'$!$MAIN LOOP U}F:,"  F:,  A"XB + A+-@A(;( @:U}7,,? B&b^(7(ENTER DISTORTION NUMBER (0-14) ;Z(ENTER TONE NUMBER (1-28) ^h$(ENTER U}VOLUME NUMBER (0-15) (86-$@%hD0 WILL BE POKED INTO DISTORTION/VOL REGISTERM(>:A%,"ARU}M(&Press the fire button to change sound.$SETUP ROUTINES FOLLOW:$ B$MISC. INITZALIZATION. +@U}.SET GR. MODE BEFORE PMG SETUP! BPMG SETUP  B DRAW PLAYFIELD0 B00PLAYER COLOR AND SCRU}EEN POSITION B@DISPLAY MESSAGER$ ERROR CORRECTION ROUTINE A 6.6-A(!6-@-6-U}7 A0A A'MISC. INITIALIZATIONB'o6-A26-B2H'6-A#36-@0?6-@K6-@W6-U}ADc6-Ao6-B7`L'66-AD6-A'6-B7`36-B7a6$*PMG SETUP ROUTINE*BB;@,U};+P:C:,'A$,%@,$A$&C:,&@,+GG;A,;A(,;A(,;A(,;A(,;A(, +U}6.>:,+67A,.>:, +67@,.%+! 6.6.6.6.!6.*+&&;@,;@,;@U},4+--@@")67<,.>:,- 9+--@@")67<,.>:,- ;+--@@")6U}7<,.>:,- H+DBByC:,'AVDDTELL ANTIC WHERE START OF PM MEMORY ISM+(AY@F(DOUBLE LINE RES.R+U}$B2w@$TURN ON PMG f+ #,$$,220,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,0.,110,0,0,28,28,8,28,58,8U}9,24,40,76,68,68,0,0,08,330,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,0.DRAW PLAYFIELD.'0@@@'U}@.',@ '/@@@ .; @/@`@5)@;/@y@5.$2##SET PLAYU}ER COLOR AND POSITION26-@R26-@2A@2MB2HMPOKE HORIZONTAL VALUE INTO HORIZON U}TONAL POSITION REGISTER.25 67,.5PUT IMAGE INTO PROPER BYTE OF PLAYER0.2$6.+("To create sound, push fire button.U}.$D:SOUNDRUN.BAS0=X0:MY0=Y03050 D1=03060 FIRE0=03080 TRAP 3000:GOTO 30010000 REM MISC. INITIALIZATION10050 JOTYSTICK=632:HPOSP0=53248:PRIOR=623:MOVELEGS=30:SP=1:PR=8:BUTTON0=644:SETSOUND=1000:S0=5376010060 BUTTON0=644:SETSOUND=1000:S0}=53760:DV0=53761:HPOSM0=53252 10070 P1=10:D1=0:SD1=53762:DV1=53763:SIZEM=53260:RANDOM=5377010900 RETURN 10999 REM PMG SETU}P ROUTINE11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/1024)+1)*1024-ADR(FILLER1$)-1)11010 DIM BUFFER$(384),MISSILES$(1}28),PLAYER0$(128),PLAYER1$(128),PLAYER2$(128),PLAYER3$(128)11020 BUFFER$=CHR$(0)11030 BUFFER$(384)=CHR$(0)11040 BUFFER$(2)}=BUFFER$11045 MISSILES$=BUFFER$:PLAYER0$=BUFFER$:PLAYER1$=BUFFER$:PLAYER2$=BUFFER$:PLAYER3$=BUFFER$11050 DIM LEGS1$(17),LEG}S2$(17),LEGS3$(17)11060 FOR I=1 TO 17:READ A:LEGS1$(I,I)=CHR$(A):NEXT I11065 FOR I=1 TO 17:READ A:LEGS2$(I,I)=CHR$(A):NEXT }I11067 FOR I=1 TO 17:READ A:LEGS3$(I,I)=CHR$(A):NEXT I11070 DIM MIMAGE0$(1):MIMAGE0$=CHR$(3)11080 POKE 54279,ADR(BUFFER$)/}256:REM DTELL ANTIC WHERE START OF PM MEMORY IS11085 POKE 559,46:REM DOUBLE LINE RES.11090 POKE 53277,3:REM TURN ON PMG 11}110 POKE PRIOR,PR11299 RETURN 11300 DATA 0,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,011310 DATA 0,0,0,28,28,8,28,58,89,24,}40,76,68,68,0,0,011320 DATA 0,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,011999 REM DRAW PLAYFIELD12000 SETCOLOR 4,16,2:COL}OR 112010 PLOT 0,20:DRAWTO 40,2012020 COLOR 3:DRAWTO 60,35:COLOR 2:DRAWTO 79,3512030 RETURN 12999 REM SET PLAYER COLOR AN}D POSITION13000 X0=12013010 Y0=4313020 POKE 704,8813030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORIZON TONAL POSITI}ON REGISTER.13040 PLAYER0$(Y0)=LEGS1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0.13050 RETURN 14000 ? "To fire missile, mov}e joystick and push fire button";:RETURN ETURN *XSYPLAYER0LEGS1HPOSPLEGS2LEGS3MXMSMYJOYSTICMOVELEGSDPDVDSIZERANDOBUTTONMOVEFIREDIRMY0H}POSMMISSILESMIMAGE0ERASEPRIOPSETSOUNSDVSFILLER1FILLER2FILLER3FILLER4} } !"#}$%&'()! A0 A ! A! D:SLRES.SAV&!DISK 30 //ADJUST }HORIZONTAL & VERTICAL COORDINATES  6-%6-%$ 6-&6-%$ 6-%$  6-&6-%$  6-&}6-&$  6-&$  6-%$ 6-&$'67,. AMOVE PLAYERS LEGS/6-%@}# @,67,./$ @67,.$ ' 67,."@ $6-'$!$A 6-%6-%$B 6-}&6-%$C 6-%$E 6-&6-%$F 6-&6-&$G 6-&$I 6-%$J 6-&$MAIN }LOOP  F:, ", F:,-6F:,"*F:,@(6-F:,66-%@1}" A;Q"@6-%@+6-%@16-?6-%@K6-@Q6-@!@ %@`}J)6-&@ @)6-O 67,. AXB + A+-@A(;(} @:7,,? B&bSETUP ROUTINES FOLLOW:$ B$MISC. INITZALIZATION. +@.SET GR. MODE BEFORE PM}G SETUP!# B BE#PMG SETUP B DRAW PLAYFIELD0 B00PLAYER COLOR AND SCREEN POSITION} B@DISPLAY MESSAGER$ ERROR CORRECTION ROUTINE 8!A6-A8CORRECT PLAYER COORDINATES } @96-@9  @6-@ !AE6-AE 6- % @)!A@%6-@} % @@)!A%6-@@ 67,. (6-(TURN OFF MISSILE SOUND 6-  A0 A}'MISC. INITIALIZATIONB'o6-A26-B2H'6-A#36-@0?6-@K6-@W6-ADc6-A}o6-B7`L'W6-AD6-A'6-B7`36-B7a?6-B2RK6-B2RW6-@V'W6-@6-}'6-B7b36-B7c?6-B2`K6-B7pW6-@*$*PMG SETUP ROUTINE*BB;@,;+P:C:,'A H},%@,$A H&C:,&@,+<<;AV,;AV,;AV,;AV,;AV, +6.>:,+67AV},.>:, +67@,.$%+96.>:,*67AV,.>:,967@,.'+96.>:,*67AV,.}>:,967@,.*+&&;@,;@,;@,4+--@@")67<,.>:,- 9+--@}@")67<,.>:,- ;+--@@")67<,.>:,- >+:;@,$-@@("667<,.>:},: H+DBByC:,'AVDDTELL ANTIC WHERE START OF PM MEMORY ISM+6AY@F%@6SINGLE LINE RESOLUT}IONR+#B2w@#TURN ON PMGW+$f+ #,$$,220,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,0.,110,0,0,28,2}8,8,28,58,89,24,40,76,68,68,0,0,08,330,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,0B,0,0,0,0,0,0,3,0,0,0,0,0,0.DRAW} PLAYFIELD.'0@@@'@.',@ '/@@@ .; @/@`@5)@};/@y@5.$2##SET PLAYER COLOR AND POSITION26-A 26-@C2A@2MB2H}MPOKE HORIZONTAL VALUE INTO HORIZON TONAL POSITION REGISTER.2U 67,.UPUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 DE}TERMINES VERTICLE POSITION2$6B?(6To fire missile, move joystick and push fire buttonB$ D:SLRES.NEWRMY0Hvab**XSYXYPLAYER0LEGS1LEGS2LEGS3PLAYER1MXMSMYMXMYSZABUFFERSZAPP1IMAGE1FIREOFHITCLFIREMISS!}ILESDDP0PP1PM0PM1PM1PM0PY1X1X0Y0JJHPOSPHPOSPRANDOSIZESDPDVSDPDVBUTTONMOVEBUTTONMOVEHPOSMHPOSMD!}IRDIRMIMAGE0MIMAGE1BMISSVKOLORKOLORROUNHULUSETHPOSPPRIOSTRINGFILLER1FILLER2PLAYER2PLAYER3MOP!} !}!} !"#$%&'()*+,-./!}0123456789:;<=>?!}@ABCDEFGHIJKLMN!}OPQR! A0 A ! AD:MAZEDUEL.SAV& 6-%6-%$ 6-&6!}-%$ 6-%$  6-&6-%$  6-&6-&$  6-&$  6-%$ 6-&$5$5POP :PLA!}YER0$(Y0)=LEGS1$:POKE DV0,0:GOTO 210 6-%6-%$ 6-&6-%$ 6-%$ 6-&6-%$ 6-!}&6-&$ 6-&$ 6-%$ 6-&$5$5POP :PLAYER0$(Y0)=LEGS1$:POKE DV0,0:GOTO 210MOVE LEGS O!}F PLAYER 0# 67,.$$ 67,.$% 67,.6-$1MOVE LEGS OF PLAYER 17 67,.$8 67,.$!}9 67,.6-$A 6-%6-%$B 6-&6-%$C 6-%$E 6-&6-%$F 6-&6-&!}$G 6-&$I 6-%$J 6-&$TADJUST MISSILE 1U 6-%6-%$V 6-&6-%$W 6-%$!}Y 6-&6-%$Z 6-&6-&$[ 6-&$] 6-%$^ 6-&$bCOLLISIONScPLAYER0 TO PLAYFI!}ELDd$e16-%@ 6.$67,.. AU1$f36-%@ A`3PLAYER0 HITS CRYSTAL!g16-%@!} 6.$67,.. AU1$h$i$j$k16-%@ 6.$67,.. AU1$lPLAYER1 TO PLAYFIEL!}Dm$n16-%@ 6.$67,.. AU1$o46-%@ A`4PLAYER1 HITS CRYSTAL! p16-%@!} 6.$67,.. AU1$q$r$s$t16-%@ 6.$67,.. AU1$uMISSILE 0 TO PLAYFIE!}LD v$w"6- 6-"$x\6- 6-+96-%@C A`\MISSILE HITS!} CRYSTAL! y$z $  $|MISSILE 1 TO PLAYFIELD }$~"6- 6-"$\6- 6-!}+96-%@C A`\MISSILE HITS CRYSTAL! $ $  $MISSILE 1 TO PLAYER 0$: !}6-%@!6--6-7 AU:$$$ @$MISSILE 0 TO PLAYER 1$$R A!}06-%@'6-36-= AU@$RNO HITS PLAYER1$$$> 6.6-!6-!}$$>ERASE MISSILE AND SOUNDMAIN LOOP? F:,%A! F:,%A 0 F:,%A? F:,%A%! F:,%A1!}! F:,%A7Z@6-6-!6-'6-ZCLEAR COLLISION REGISTER/SAVE PLAYER COORDINATESP F:, F:,%@!}%P. ADJUST COORDINATES/POKE HOR. POSITIONSBF:,@ 6-%@, @4%6 ABMOVE LEG!}S 67,.BF:,@ 6-%@, @T%6 ABMOVE LEGS 67,.FF:,!A <!AB* !}@4)!AB* @4F AP+MISSILE MOVE ROUTINE,$ F:,$-6F:,"*F:,@!}(6-F:,66-%@.6F:,"*F:,@(6-F:,66-%@1!!"*"A3 !};n"@6-%@+6-%@16-?6-%@K6-@nSET INITIAL POSITION OF MISSILES=K"@!}6-%@+6-%@16-?6-%@K6-@@!@ %@`A!@ %@J)6!}-&@ @)6-O"AT 6.67,.67,. A? 6.67,. A?IMP!}ORTANT: TURN ON BOTH MISSILESu -@@6@16-F:,'@pM2@@@W@i,A2!}@u/@!,A2@!/AY| ,A2@+/@=,A2@I/AY!}M o2@y A|$ A7 6-@+@76-o!}7-@AU@CA_2@@c oA96-@P6!}-@x'B2H-6.667,.9$C 6-@+@76-C6-o!}7-@AT@CA_2@@c oA&06-@b6-@x!6.!}*67,.00$Xa A!-@A(2(= @:7,,6 9&aGO HERE TO LOOK AT DATA IN PM MEMORY.b!}-@@ +-@@A0@%@o2$@&@@$@s w @!}@D 6.67,.6-@b*6-@x6B2ID6-%@Q6-@P6-@x% AU+6!}.467,.@B2HN0@Q$CRYSTAL U @,A1@1/A7@C,A4@U/!}A4@U,A1@'/A7@9,A1@K/A7@U@$!}l7 6.6-A(!6-@-6-7 A% B%INITIALIZE CONSTANTS # +@#GR. MODE BEFORE PM!}G B DRAW PLAYFIELD  BPGMSETUP B0SCREEN POSITION APSELECT COLOR$ Y"} @)!A(%6-@7B2SC6-O6-@Y A!%; )!AP%6-@16"}-; A!'; )!AP%6-@16-; A!*G @)!A(6-1B2R"}=6-G A!/G @)!A(6-1B2R=6-G A!3MM( GOOF NO. F:A,"}SEE LINE NUMBER F:A,%AV$F:A,4>6- A # A>PEEK(187)*256+PEEK(186) 9!A"}6-A9CORRECT PLAYER COORDINATES  @96-@9  @6-@ !A(6-A( "}'6-6-!6-'6- 56-6-5TURN OFF MISSILE SOUND 06-6-0TURN O"}FF FIRE FLAG -6--RESET LEG MOVEMENT COUNTER   A0 A$@ i(>:A%,0("} @&_2%F:@ ,%@@@i A@__(WPRESS SELECT TO CHANGE SCREEN COL"}OR, OPTION TO CHANGE PLAYER COLOR, START TO START GAME'6-@P6-@b!'"F:B2y,"@" AR" }"F:B2y,"@" AS!F:B2y,"@6-!$ APOCHANGE SCREEN COLORSP6-%@" }Z)!@6-)6-%@d'!@6-'6-n0@CHANGE PLAYER COLOR " }76-%@6-%@+!AT76-!AT6-AA$|w(>:A%" },)( ROUND #,(U( PLAYER 1 =  PLAYER 2 = w2AU@@.!@ ($(" } PLAYER 1 WINS. AU@.!@ ($( PLAYER 2 WINS. AU@$' (@G(&PRESS THE FIRE B"}UTTON FOR ANOTHER GAMEi22@F:,"AU`F:"},"AU` AUP@@%'6-Ac6-@$'6-@R6-@x'6-@36"}-@g?6-@xK6-W6-@ac6-o6-@q{6-B2V6-B7`6-B7a6-B7b6-B7"}c)'6-@P6-@S.'IIPOKE 53248,X0:PLAYER0$(Y0)=LEGS1$:POKE 53249,X1:PLAYER1$(Y1)=LEGS1$8')B2R"})B2S%@B'W6-A26-A3'6-B2H36-B2I?6-B2RK6-B2SW6-ADG'6-AE6"}-@L'6-B7p6-B2`t'i6-B2x!B2x@-6-B2R96-B2SE6-B2VQ6-B2H]6-B2"}Wi6-B2I~'L6-A#6-@(;A(,46-A@6-A0L6-Ap',@,CLEARS COLLISION"} REGISTERS*$*BB;@,;+P:C:,'A$,%@,$A$&C:,&@,+GG;A,;A(,;A(,;A"}(,;A(,;A(, +6.>:,+67A,.>:, +67@,.%+! 6.6.6.6.!6."}*+&&;@,;@,;@,/+ #B4+--@@")67<,.>:,- 9+--@@")6"}7<,.>:,- ;+--@@")67<,.>:,- =+;@,6.>:@,>+;@,6.>:@,?+"}4;@,6.>:@,4BOTH MISSILES "ON"@+&A&SET COLOR OF PLAYER0C+ A COLOR PLAYER 1H+7"}BByC:,'AV7SPECIFY START OF PM MEMORYM+(AY@F(DOUBLE LINE RES.R+#B2w@#TURN ON PMG"}\+'B2`@'WIDTH/MISSILES f+(@(SETS PRIORITY REGISTERp++@+CLEAR COLLISION REGISTERS,"}$$,220,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,0.,110,0,0,28,28,8,28,58,89,24,40,76,68,68,0,0,08,330,0,0,28,28,8,28,5"}8,89,24,56,72,132,130,0,0,0B,660,0,0,120,56,16,56,116,176,48,50,60,64,192,0,0,0.DRAW PLAYFIELD./AR@/0"}@@@.( MAZEDUEL.U @,1/AYC/AY@yU/@0"}@y.@ @/@y1/@`@STARTING BOX. @/.',@@a" }'/@@y.\ @,@@`1/@0@`C/@0@xM@\STARTING BOX.,@R"!}@`'/@R@E9/A@EK/A@`]/A7@`o/A7@E/A@E,AY""}@2/9/A@2',@@E9/@@  / ADRAW CRYSTAL/,@C'/@C"#}@09,@R@EK/@"@E]/@"@o,A/A@AY@4$20"$}6-6-0HOR1Z.PLAYER POS. 2'6-@x'VERTICAL PLAYER POS. 26-@x2,AA"%},INITIAL COLOR 233SET WIDTH OF PLAYERS 2AB2HB2IASET HORIZONTAL POSITION OF P"&}LAYERS 2$ 67,.$PUT DATA IN PM MEMORY2 67,.PLAYER22$D:MAZEDUEL.NEW1IMAGE1FIREOFHITCLFIREMISS ^1 TRAP 3000:GOSUB 2000:GOTO 2002 SAVE "D:SLRES.SAV":STOP :REM DISK 30 4 REM ADJUST HORIZONTAL & VERTICAL COORDINATES 5 X0=&(}X0+SP:Y0=Y0+SY:RETURN 6 Y0=Y0-SY:X0=X0+SP:RETURN 7 X0=X0+SP:RETURN 9 X0=X0-SP:Y0=Y0+SY:RETURN 10 X0=X0-SP:Y0=Y0-SY:RETURN&)} 11 X0=X0-SP:RETURN 13 Y0=Y0+SY:RETURN 14 Y0=Y0-SY:RETURN 15 POP :PLAYER0$(Y0)=LEGS1$:GOTO 30029 REM MOVE PLAYERS LEGS3&*}0 Z=Z+1:POKE HPOSP0,X0:IF Z<4 THEN PLAYER0$(Y0)=LEGS1$:RETURN 31 IF Z<7 THEN PLAYER0$(Y0)=LEGS2$:RETURN 32 PLAYER0$(Y0)=LEG&+}S3$:IF Z=9 THEN Z=0:RETURN 33 RETURN 65 MX0=MX0+MS0:MY0=MY0+MS0:RETURN 66 MY0=MY0-MS0:MX0=MX0+MS0:RETURN 67 MX0=MX0+MS0:R&,}ETURN 69 MX0=MX0-MS0:MY0=MY0+MS0:RETURN 70 MX0=MX0-MS0:MY0=MY0-MS0:RETURN 71 MX0=MX0-MS0:RETURN 73 MY0=MY0+MS0:RETURN 74&-} MY0=MY0-MS0:RETURN 199 REM MAIN LOOP 200 GOSUB PEEK(JOYSTICK):GOSUB MOVELEGS260 REM 270 REM 280 REM 290 REM 300 POKE &.}SD1,P1:POKE DV1,D1:POKE SIZEM,PEEK(RANDOM)301 IF PEEK(BUTTON0)=0 AND PEEK(JOYSTICK)<>15 THEN MOVE0=PEEK(JOYSTICK):FIRE0=FIRE&/}0+1305 IF FIRE0=0 THEN GOTO 200315 IF FIRE0=1 THEN MX0=X0+3:MY0=Y0+7:DIR0=MOVE0:FIRE0=FIRE0+1:D1=15:MY0S=MY0320 IF FIRE0>1&0} THEN GOSUB DIR0+60330 D1=D1-1:IF D1<1 THEN D1=0335 POKE HPOSM0,MX0:MISSILES$(MY0)=MIMAGE0$499 GOTO 200600 GRAPHICS 0:TRA&1}P 610:FOR I=1 TO 128:? I;" ";ASC(PLAYER0$(I)):NEXT I:STOP 610 END 1999 REM SETUP ROUTINES FOLLOW:2000 GOSUB 10000:REM MISC&2}. INITZALIZATION2005 GRAPHICS 5:REM SET GR. MODE BEFORE PMG SETUP!2010 GOSUB 11000:GOSUB 11045:REM PMG SETUP2015 GOSUB 120&3}00:REM DRAW PLAYFIELD2020 GOSUB 13000:REM PLAYER COLOR AND SCREEN POSITION2025 GOSUB 14000:REM DISPLAY MESSAGE2130 RETURN &4}2999 REM ERROR CORRECTION ROUTINE3000 IF X0>210 THEN X0=210:REM CORRECT PLAYER COORDINATES3010 IF X0<39 THEN X0=393020 IF&5} Y0<1 THEN Y0=13030 IF Y0>245 THEN Y0=2453035 Z=03040 IF MY0<1 OR MY0>240 THEN MY0=13042 IF MX0<40 OR MX0>210 THEN MX0=40&6}3045 MISSILES$(MY0S)=ERASE$3050 D1=0:REM TURN OFF MISSILE SOUND3060 FIRE0=03080 TRAP 3000:GOTO 30010000 REM MISC. INITIA&7}LIZATION10050 JOYSTICK=632:HPOSP0=53248:PRIOR=623:MOVELEGS=30:SP=1:PR=8:BUTTON0=644:SETSOUND=1000:S0=5376010060 BUTTON0=644&8}:SETSOUND=1000:S0=53760:DV0=53761:HPOSM0=53252:HPOSM0=53252:MS0=610070 P1=10:D1=0:SD1=53762:DV1=53763:SIZEM=53260:RANDOM=537&9}70:SY=210900 RETURN 10999 REM PMG SETUP ROUTINE11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/2048)+1)*2048-ADR(FILLER1&:}$)-1)11010 DIM ERASE$(256),FILLER3$(256),FILLER4$(256),MISSILES$(256),PLAYER0$(256)11020 ERASE$=CHR$(0)11030 ERASE$(256)=C&;}HR$(0)11040 ERASE$(2)=ERASE$:RETURN 11045 MISSILES$=CHR$(0):MISSILES$(256)=CHR$(0):MISSILES$(2)=MISSILES$11047 PLAYER0$=CH&<}R$(0):PLAYER0$(256)=CHR$(0):PLAYER0$(2)=PLAYER0$11050 DIM LEGS1$(17),LEGS2$(17),LEGS3$(17)11060 FOR I=1 TO 17:READ A:LEGS1$&=}(I,I)=CHR$(A):NEXT I11065 FOR I=1 TO 17:READ A:LEGS2$(I,I)=CHR$(A):NEXT I11067 FOR I=1 TO 17:READ A:LEGS3$(I,I)=CHR$(A):NEX&>}T I11070 DIM MIMAGE0$(13):FOR I=1 TO 13:READ A:MIMAGE0$(I,I)=CHR$(A):NEXT I11080 POKE 54279,ADR(ERASE$)/256:REM DTELL ANTIC&t}x XSYPLAYER0LEGS1HPOSPLEGS2LEGS3BUTTONSETSOUNJOYSTICMOVELEGMOVEFIREMXMYDIRMISSILESBUFFERHPOSM*@}MISSILEMIMAGE0PRIOPSDVFILLER1FILLER2PLAYER1PLAYER2PLAYER3A @@%)B2*A}H AD A A2 @0 @@A@2@f B2R*B}@BA#@B7`B7af f! A  A" D*C}:MISSILE.SAV&"DISK 30..ADJUST HORIZONTAL & VERTICAL COORDINATES 6-%6-%$ 6-&6-%$ 6-%*D}$  6-&6-%$  6-&6-&$  6-&$  6-%$ 6-&$'67,. AMOVE*E} PLAYER'S LEGS/6-%@# @,67,./$ @67,.$ ' 67,."@ $6-*F}'$!$MAIN LOOP F:, ",-6F:,"*F:,@(6-F:,66-%@1*G}" A;?"@6-&@+6-%@16-?6-%@O 6.67,.T&XB +*H} A+-@A(;( @:7,,? B&bSETUP ROUTINES FOLLOW:$ B$MISC. INITZALIZATION*I}. +@.SET GR. MODE BEFORE PMG SETUP! BPMG SETUP B DRAW PLAYFIELD0 B00PLAYER C*J}OLOR AND SCREEN POSITION B@DISPLAY MESSAGER$ ERROR CORRECTION ROUTINE A 6.6-A(!6-@*K}-6-7 A0A A'MISC. INITIALIZATIONB'o6-A26-B2H'6-A#36-@0?6-@K6-*L}@W6-ADc6-Ao6-B7`L'B6-AD6-A'6-B7`36-B7a?6-B2RB$*PMG SETUP *M}ROUTINE*BB;@,;+P:C:,'A$,%@,$A$&C:,&@,+GG;A,;A(,;A(,;A(,;*N}A(,;A(, +6.>:,+67A,.>:, +67@,.%+! 6.6.6.6.!6.*+&&;@*O},;@,;@,4+--@@")67<,.>:,- 9+--@@")67<,.>:,- ;+-*P}-@@")67<,.>:,- >+;@,6.>:@,H+CBByC:,'AVCTELL ANTIC WHERE START OF P*Q}M MEMORY ISM+(AY@F(DOUBLE LINE RES.R+#B2w@#TURN ON PMGf+ #,$$,220,0,0,28,28,8,28,5*R}8,89,24,60,36,36,102,0,0,0.,110,0,0,28,28,8,28,58,89,24,40,76,68,68,0,0,08,330,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,*S}0.DRAW PLAYFIELD.'0@@@'@.',@ '/@@@ .; @/@`@*T}5)@;/@y@5.$2##SET PLAYER COLOR AND POSITION26-A 26-@C2A@*U}2MB2HMPOKE HORIZONTAL VALUE INTO HORIZON TONAL POSITION REGISTER.25 67,.5PUT IMAGE INTO PROPER BYTE OF PLA*V}YER0.2$6?<(3To fire missile, move joystick and push fire button?$ D:MISSIL1.NEWMYDIRMISSILESBUFFERHPOSM(`XSYPLAYER0LEGS1HPOSPLEGS2LEGS3MXMSMYJOYSTICMOVELEGSDPDVDSIZERANDOBUTTONMOVEFIREDIRMISSI.X}LESBUFFERHPOSMMISSILEMIMAGE0PRIOPSETSOUNSDVFILLER1FILLER2PLAYER1PLAYER2PLAYER3A@@tZ.Y}@B2H A0 @ @U A2 @0B7b@B7cB2`.Z}B7pAD@@6B2R@A#@ A!B7`"B7a.[}#$%6&'6(! A0 A ! A# D:MISSILE.SAV&#DISK 30 //ADJ.\}UST HORIZONTAL & VERTICAL COORDINATES  6-%6-%$ 6-&6-%$ 6-%$  6-&6-%$  6.]}-&6-&$  6-&$  6-%$ 6-&$'67,. AMOVE PLAYERS LEGS/6-%@.^}# @,67,./$ @67,.$ ' 67,."@ $6-'$!$A 6-%6-%$B._} 6-&6-%$C 6-%$E 6-&6-%$F 6-&6-&$G 6-&$I 6-%$J 6-&$M.`}AIN LOOP  F:, ", F:,-6F:,"*F:,@(6-F:,66-%@.a}1" A;K"@6-%@+6-%@16-?6-%@K6-@@!@ %@`.b}J)6-&@ @)6-O 6.67,. AXB + A+-@A(;.c}( @:7,,? B&bSETUP ROUTINES FOLLOW:$ B$MISC. INITZALIZATION. +@.SET GR. MODE BEFOR.d}E PMG SETUP! BPMG SETUP  B DRAW PLAYFIELD0 B00PLAYER COLOR AND SCREEN POSITION B.e}@DISPLAY MESSAGER$ ERROR CORRECTION ROUTINE !A6-A  @96-@9  @.f}6-@ !A(6-A( 6-  6-6- 6- 6-  A0 A.g}'MISC. INITIALIZATIONB'{6-A26-B2H'6-A#36-@0?6-@K6-@W6-ADc6-A.h}o6-B7`{6-@L'?6-AD6-A'6-B7`36-B7a?6-B2RV'K6-@6-'6-B7b.i}36-B7c?6-B2`K6-B7p*$*PMG SETUP ROUTINE*BB;@,;+P:C:,'A$,%@,$A$&C:,&@.j},+GG;A,;A(,;A(,;A(,;A(,;A(, +6.>:,+67A,.>:, +.k}67@,.%+! 6.6.6.6.!6.*+&&;@,;@,;@,4+--@@")67<,.>:.l},- 9+--@@")67<,.>:,- ;+--@@")67<,.>:,- >+;@,6.>:@.m},H+DBByC:,'AVDDTELL ANTIC WHERE START OF PM MEMORY ISM+(AY@F(DOUBLE LINE RES.R+$B2w.n}@$TURN ON PMG f+ #,$$,220,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,0.,110,0,0,28,28,8,28,58,89,24,40,76,6.o}8,68,0,0,08,330,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,0.DRAW PLAYFIELD.'0@@@'@.'.p},@ '/@@@ .; @/@`@5)@;/@y@5.$2##SET PLAYER COLOR AND.q} POSITION26-A 26-@C2A@2MB2HMPOKE HORIZONTAL VALUE INTO HORIZON TONAL POSITI.r}ON REGISTER.25 67,.5PUT IMAGE INTO PROPER BYTE OF PLAYER0.2$6?<(3To fire missile, move joystick and push fire b.s}utton?$ D:MISSIL2.NEWS1HPOSPLEGS2LEGS3MXMSMYJOYSTICMOVELEGSDPDVDSIZERANDOBUTTONMOVEFIREDIRMISSI, WHERE START OF PM MEMORY IS11085 POKE 559,46+16:REM SINGLE LINE RESOLUTION11090 POKE 53277,3:REM TURN ON PMG11095 RETURN &u}11110 POKE PRIOR,PR11299 RETURN 11300 DATA 0,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,011310 DATA 0,0,0,28,28,8,28,58,89,&v}24,40,76,68,68,0,0,011320 DATA 0,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,011330 DATA 0,0,0,0,0,0,3,0,0,0,0,0,011999 REM &w}DRAW PLAYFIELD12000 SETCOLOR 4,16,2:COLOR 112010 PLOT 0,20:DRAWTO 40,2012020 COLOR 3:DRAWTO 60,35:COLOR 2:DRAWTO 79,35120&x}30 RETURN 12999 REM SET PLAYER COLOR AND POSITION13000 X0=12013010 Y0=4313020 POKE 704,8813030 POKE 53248,X0:REM POKE HO&y}RIZONTAL VALUE INTO HORIZON TONAL POSITION REGISTER.13040 PLAYER0$(Y0)=LEGS1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0. Y0 &z}DETERMINES VERTICLE POSITION13050 RETURN 14000 ? "To fire missile, move joystick and push fire button";:RETURN ER0. Y0 $u 55405530 RETURN 5540 POP :? :POKE 82,0:? "PRESS THE FIRE BUTTON FOR ANOTHER GAME";:SOUND 0,0,0,0:SOUND 1,0,0,05550 IF PEE2|}K(BUTTON0)=0 THEN 55605552 IF PEEK(BUTTON1)=0 THEN 55605555 GOTO 55505560 POKE 82,2:RUN 10000 KOLOR0=163:KOLOR1=8310020 2}}X0=52:Y0=78:SP=3:X1=67:Y1=78:MX0=0:MY0=61:MX1=0:MY1=71:M0PL=53256:SD0=53760:DV0=53761:SD1=53762:DV1=5376310025 P0=50:P1=5312~}0030 REM POKE 53248,X0:PLAYER0$(Y0)=LEGS1$:POKE 53249,X1:PLAYER1$(Y1)=LEGS1$10040 POKE 53252,0:POKE 53253,X1+310050 J0=632:2}J1=633:HPOSP0=53248:HPOSP1=53249:HPOSM0=53252:HPOSM1=53253:BUTTON0=64410055 BUTTON1=645:MS0=810060 RANDOM=53770:SIZEM=532602}10100 HITCLR=53278:POKE 53278,1:P0PF=53252:P1PF=53253:M0PL=53256:M0PF=53248:M1PL=53257:M1PF=5324910110 PRIOR=623:ROUND=1:DI2}M STRING$(128):ZAP=500:ZAP2=530:OFF=17010200 POKE HITCLR,1:REM CLEARS COLLISION REGISTERS10998 RETURN 11000 DIM FILLER1$(12}),FILLER2$((INT(ADR(FILLER1$)/1024)+1)*1024-ADR(FILLER1$)-1)11010 DIM BUFFER$(384),MISSILES$(128),PLAYER0$(128),PLAYER1$(1282}),PLAYER2$(128),PLAYER3$(128)11020 BUFFER$=CHR$(0)11030 BUFFER$(384)=CHR$(0)11040 BUFFER$(2)=BUFFER$11045 MISSILES$=BUFFE2}R$:PLAYER0$=BUFFER$:PLAYER1$=BUFFER$:PLAYER2$=BUFFER$:PLAYER3$=BUFFER$11050 DIM LEGS1$(17),LEGS2$(17),LEGS3$(17)11055 RESTO2}RE 1130011060 FOR I=1 TO 17:READ A:LEGS1$(I,I)=CHR$(A):NEXT I11065 FOR I=1 TO 17:READ A:LEGS2$(I,I)=CHR$(A):NEXT I11067 FO2}R I=1 TO 17:READ A:LEGS3$(I,I)=CHR$(A):NEXT I11069 DIM MIMAGE0$(1):MIMAGE0$=CHR$(3)11070 DIM MIMAGE1$(1):MIMAGE1$=CHR$(12)2}11071 DIM BMISS$(1):BMISS$=CHR$(15):REM BOTH MISSILES "ON"11072 POKE 704,KOLOR0:REM SET COLOR OF PLAYER011075 POKE 705,KOLO2}R1:REM COLOR PLAYER 111080 POKE 54279,ADR(BUFFER$)/256:REM SPECIFY START OF PM MEMORY11085 POKE 559,46:REM DOUBLE LINE RES.2}11090 POKE 53277,3:REM TURN ON PMG11100 POKE 53260,5:REM WIDTH/MISSILES 11110 POKE PRIOR,2:REM SETS PRIORITY REGISTER11122}0 POKE HITCLR,1:REM CLEAR COLLISION REGISTERS11290 RETURN 11300 DATA 0,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,011310 DAT2}A 0,0,0,28,28,8,28,58,89,24,40,76,68,68,0,0,011320 DATA 0,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,011330 DATA 0,0,0,120,52}6,16,56,116,176,48,50,60,64,192,0,0,011999 REM DRAW PLAYFIELD12000 POKE 752,1:SETCOLOR 4,7,612005 ? " MAZEDUEL2}"12010 COLOR 1:PLOT 0,0:DRAWTO 159,0:DRAWTO 159,79:DRAWTO 30,7912015 COLOR 3:DRAWTO 0,79:DRAWTO 0,60:REM STARTING BOX120172} COLOR 1:DRAWTO 0,012020 PLOT 80,61:DRAWTO 80,7912025 COLOR 3:PLOT 1,60:DRAWTO 30,60:DRAWTO 30,78:COLOR 1:REM STARTING BOX2}12030 PLOT 52,60:DRAWTO 52,45:DRAWTO 110,45:DRAWTO 110,60:DRAWTO 137,60:DRAWTO 137,45:DRAWTO 110,45:PLOT 159,3212040 DRAWTO 2}110,32:PLOT 80,45:DRAWTO 80,2012041 GOSUB 700:REM DRAW CRYSTAL12050 PLOT 43,0:DRAWTO 43,30:PLOT 52,45:DRAWTO 22,45:DRAWTO 22}2,13:PLOT 108,0:DRAWTO 108,17:POKE 559,34:RETURN 13000 X0=0:X1=0:REM HOR1Z.PLAYER POS. 13010 Y0=78:REM VERTICAL PLAYER POS.2} 13015 Y1=7813020 POKE 704,KOLOR0:POKE 705,KOLOR1:REM INITIAL COLOR 13025 POKE M0PL,0:POKE M1PL,0:REM SET WIDTH OF PLAYERS2} 13030 POKE 53248,X0:POKE 53249,X1:REM SET HORIZONTAL POSITION OF PLAYERS 13040 PLAYER0$(Y0)=LEGS1$:REM PUT DATA IN PM MEMO2}RY13045 PLAYER1$(Y1)=LEGS1$:REM PLAYER213050 RETURN POSITION OF PLAYERS 13040 PLAYER0$(Y0)=LEGS1$:REM PUT DATA IN PM MEMO071 GOSUB 2000:GOTO 2002 SAVE "D:MISSILE.SAV":STOP :REM DISK 304 REM ADJUST HORIZONTAL & VERTICAL COORDINATES5 X0=X0+SP:Y0=Y6}0+SP:RETURN 6 Y0=Y0-SP:X0=X0+SP:RETURN 7 X0=X0+SP:RETURN 9 X0=X0-SP:Y0=Y0+SP:RETURN 10 X0=X0-SP:Y0=Y0-SP:RETURN 11 X0=X06}-SP:RETURN 13 Y0=Y0+SP:RETURN 14 Y0=Y0-SP:RETURN 15 POP :PLAYER0$(Y0)=LEGS1$:GOTO 30029 REM MOVE PLAYER'S LEGS30 Z=Z+1:P6}OKE HPOSP0,X0:IF Z<4 THEN PLAYER0$(Y0)=LEGS1$:RETURN 31 IF Z<7 THEN PLAYER0$(Y0)=LEGS2$:RETURN 32 PLAYER0$(Y0)=LEGS3$:IF Z=6}9 THEN Z=0:RETURN 33 RETURN 199 REM MAIN LOOP200 GOSUB PEEK(JOYSTICK):GOSUB MOVELEGS260 REM 270 REM 280 REM 290 REM 36}00 REM 301 IF PEEK(BUTTON0)=0 AND PEEK(JOYSTICK)<>15 THEN MOVE0=PEEK(JOYSTICK):FIRE0=FIRE0+1305 IF FIRE0=0 THEN GOTO 200316}5 IF FIRE0=1 THEN MX0=X0-10:MY0=Y0+7:DIR0=MOVE0:FIRE0=FIRE0+1335 MISSILES$=BUFFER$:POKE HPOSM0,MX0:MISSILES$(MY0)=MIMAGE0$36}40 STOP 600 GRAPHICS 0:TRAP 610:FOR I=1 TO 128:? I;" ";ASC(PLAYER0$(I)):NEXT I:STOP 610 END 1999 REM SETUP ROUTINES FOLLOW6}:2000 GOSUB 10000:REM MISC. INITZALIZATION2005 GRAPHICS 5:REM SET GR. MODE BEFORE PMG SETUP!2010 GOSUB 11000:REM PMG SETUP6}2015 GOSUB 12000:REM DRAW PLAYFIELD2020 GOSUB 13000:REM PLAYER COLOR AND SCREEN POSITION2025 GOSUB 14000:REM DISPLAY MESSA6}GE2130 RETURN 2999 REM ERROR CORRECTION ROUTINE3000 PLAYER0$=BUFFER$:Y0=128:X0=80:Z=0:TRAP 3000:GOTO 20010000 REM MISC. I6}NITIALIZATION10050 JOYSTICK=632:HPOSP0=53248:PRIOR=623:MOVELEGS=30:SP=1:PR=8:BUTTON0=644:SETSOUND=1000:S0=5376010060 BUTTON6}0=644:SETSOUND=1000:S0=53760:DV0=53761:HPOSM0=53252:RETURN 10999 REM PMG SETUP ROUTINE11000 DIM FILLER1$(1),FILLER2$((INT(A6}DR(FILLER1$)/1024)+1)*1024-ADR(FILLER1$)-1)11010 DIM BUFFER$(384),MISSILES$(128),PLAYER0$(128),PLAYER1$(128),PLAYER2$(128),P6}LAYER3$(128)11020 BUFFER$=CHR$(0)11030 BUFFER$(384)=CHR$(0)11040 BUFFER$(2)=BUFFER$11045 MISSILES$=BUFFER$:PLAYER0$=BUFFE6}R$:PLAYER1$=BUFFER$:PLAYER2$=BUFFER$:PLAYER3$=BUFFER$11050 DIM LEGS1$(17),LEGS2$(17),LEGS3$(17)11060 FOR I=1 TO 17:READ A:L6}EGS1$(I,I)=CHR$(A):NEXT I11065 FOR I=1 TO 17:READ A:LEGS2$(I,I)=CHR$(A):NEXT I11067 FOR I=1 TO 17:READ A:LEGS3$(I,I)=CHR$(A6}):NEXT I11070 DIM MIMAGE0$(1):MIMAGE0$=CHR$(3)11080 POKE 54279,ADR(BUFFER$)/256:REM TELL ANTIC WHERE START OF PM MEMORY IS6}11085 POKE 559,46:REM DOUBLE LINE RES.11090 POKE 53277,3:REM TURN ON PMG11110 POKE PRIOR,PR11299 RETURN 11300 DATA 0,0,0,6}28,28,8,28,58,89,24,60,36,36,102,0,0,011310 DATA 0,0,0,28,28,8,28,58,89,24,40,76,68,68,0,0,011320 DATA 0,0,0,28,28,8,28,58,6}89,24,56,72,132,130,0,0,011999 REM DRAW PLAYFIELD12000 SETCOLOR 4,16,2:COLOR 112010 PLOT 0,20:DRAWTO 40,2012020 COLOR 3:D6}RAWTO 60,35:COLOR 2:DRAWTO 79,3512030 RETURN 12999 REM SET PLAYER COLOR AND POSITION13000 X0=12013010 Y0=4313020 POKE 706}4,8813030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORIZON TONAL POSITION REGISTER.13040 PLAYER0$(Y0)=LEGS1$:REM PUT IM6}AGE INTO PROPER BYTE OF PLAYER0.13050 RETURN 14000 ? "To fire missile, move joystick and push fire button";:RETURN PUT IM4v1 TRAP 3000:GOSUB 2000:GOTO 2002 SAVE "D:MISSILE.SAV":STOP :REM DISK 30 4 REM ADJUST HORIZONTAL & VERTICAL COORDINATES 5 X:}0=X0+SP:Y0=Y0+SP:RETURN 6 Y0=Y0-SP:X0=X0+SP:RETURN 7 X0=X0+SP:RETURN 9 X0=X0-SP:Y0=Y0+SP:RETURN 10 X0=X0-SP:Y0=Y0-SP:RETU:}RN 11 X0=X0-SP:RETURN 13 Y0=Y0+SP:RETURN 14 Y0=Y0-SP:RETURN 15 POP :PLAYER0$(Y0)=LEGS1$:GOTO 30029 REM MOVE PLAYERS LEGS:}30 Z=Z+1:POKE HPOSP0,X0:IF Z<4 THEN PLAYER0$(Y0)=LEGS1$:RETURN 31 IF Z<7 THEN PLAYER0$(Y0)=LEGS2$:RETURN 32 PLAYER0$(Y0)=L:}EGS3$:IF Z=9 THEN Z=0:RETURN 33 RETURN 65 MX0=MX0+MS0:MY0=MY0+MS0:RETURN 66 MY0=MY0-MS0:MX0=MX0+MS0:RETURN 67 MX0=MX0+MS0:}:RETURN 69 MX0=MX0-MS0:MY0=MY0+MS0:RETURN 70 MX0=MX0-MS0:MY0=MY0-MS0:RETURN 71 MX0=MX0-MS0:RETURN 73 MY0=MY0+MS0:RETURN :}74 MY0=MY0-MS0:RETURN 199 REM MAIN LOOP 200 GOSUB PEEK(JOYSTICK):GOSUB MOVELEGS260 REM 270 REM 280 REM 290 REM 300 POK:}E SD1,P1:POKE DV1,D1:POKE SIZEM,PEEK(RANDOM)301 IF PEEK(BUTTON0)=0 AND PEEK(JOYSTICK)<>15 THEN MOVE0=PEEK(JOYSTICK):FIRE0=FI:}RE0+1305 IF FIRE0=0 THEN GOTO 200315 IF FIRE0=1 THEN MX0=X0+3:MY0=Y0+7:DIR0=MOVE0:FIRE0=FIRE0+1:D1=15320 IF FIRE0>1 THEN G:}OSUB DIR0+60330 D1=D1-1:IF D1<1 THEN D1=0335 MISSILES$=BUFFER$:POKE HPOSM0,MX0:MISSILES$(MY0)=MIMAGE0$499 GOTO 200600 GRA:}PHICS 0:TRAP 610:FOR I=1 TO 128:? I;" ";ASC(PLAYER0$(I)):NEXT I:STOP 610 END 1999 REM SETUP ROUTINES FOLLOW:2000 GOSUB 100:}00:REM MISC. INITZALIZATION2005 GRAPHICS 5:REM SET GR. MODE BEFORE PMG SETUP!2010 GOSUB 11000:REM PMG SETUP 2015 GOSUB 120:}00:REM DRAW PLAYFIELD2020 GOSUB 13000:REM PLAYER COLOR AND SCREEN POSITION2025 GOSUB 14000:REM DISPLAY MESSAGE2130 RETURN :}2999 REM ERROR CORRECTION ROUTINE3000 IF X0>210 THEN X0=2103010 IF X0<39 THEN X0=393020 IF Y0<1 THEN Y0=13030 IF Y0>128 :}THEN Y0=1283035 Z=03040 MX0=X0:MY0=Y03050 D1=03060 FIRE0=03080 TRAP 3000:GOTO 30010000 REM MISC. INITIALIZATION10050 J:}OYSTICK=632:HPOSP0=53248:PRIOR=623:MOVELEGS=30:SP=1:PR=8:BUTTON0=644:SETSOUND=1000:S0=53760:MS0=310060 BUTTON0=644:SETSOUND=:}1000:S0=53760:DV0=53761:HPOSM0=5325210070 P1=10:D1=0:SD1=53762:DV1=53763:SIZEM=53260:RANDOM=5377010900 RETURN 10999 REM PM:}G SETUP ROUTINE11000 DIM FILLER1$(1),FILLER2$((INT(ADR(FILLER1$)/1024)+1)*1024-ADR(FILLER1$)-1)11010 DIM BUFFER$(384),MISSI:}LES$(128),PLAYER0$(128),PLAYER1$(128),PLAYER2$(128),PLAYER3$(128)11020 BUFFER$=CHR$(0)11030 BUFFER$(384)=CHR$(0)11040 BUFF:}ER$(2)=BUFFER$11045 MISSILES$=BUFFER$:PLAYER0$=BUFFER$:PLAYER1$=BUFFER$:PLAYER2$=BUFFER$:PLAYER3$=BUFFER$11050 DIM LEGS1$(1:}7),LEGS2$(17),LEGS3$(17)11060 FOR I=1 TO 17:READ A:LEGS1$(I,I)=CHR$(A):NEXT I11065 FOR I=1 TO 17:READ A:LEGS2$(I,I)=CHR$(A):}:NEXT I11067 FOR I=1 TO 17:READ A:LEGS3$(I,I)=CHR$(A):NEXT I11070 DIM MIMAGE0$(1):MIMAGE0$=CHR$(3)11080 POKE 54279,ADR(BUF:}FER$)/256:REM DTELL ANTIC WHERE START OF PM MEMORY IS11085 POKE 559,46:REM DOUBLE LINE RES.11090 POKE 53277,3:REM TURN ON P:}MG 11110 POKE PRIOR,PR11299 RETURN 11300 DATA 0,0,0,28,28,8,28,58,89,24,60,36,36,102,0,0,011310 DATA 0,0,0,28,28,8,28,58,:}89,24,40,76,68,68,0,0,011320 DATA 0,0,0,28,28,8,28,58,89,24,56,72,132,130,0,0,011999 REM DRAW PLAYFIELD12000 SETCOLOR 4,16:},2:COLOR 112010 PLOT 0,20:DRAWTO 40,2012020 COLOR 3:DRAWTO 60,35:COLOR 2:DRAWTO 79,3512030 RETURN 12999 REM SET PLAYER CO:}LOR AND POSITION13000 X0=12013010 Y0=4313020 POKE 704,8813030 POKE 53248,X0:REM POKE HORIZONTAL VALUE INTO HORIZON TONAL :}POSITION REGISTER.13040 PLAYER0$(Y0)=LEGS1$:REM PUT IMAGE INTO PROPER BYTE OF PLAYER0.13050 RETURN 14000 ? "To fire missil:}e, move joystick and push fire button";:RETURN PUT IMAGE INTO PROPER BYTE OF PLAYER0.13050 RETURN 14000 ? "To fire missil80 COLOR 1:DRAWTO 0,012020 PLOT 80,61:DRAWTO 80,7912025 COLOR 3:PLOT 1,60:DRAWTO 30,60:DRAWTO 30,78:COLOR 1:REM STARTING BOX2}12030 PLOT 52,60:DRAWTO 52,45:DRAWTO 110,45:DRAWTO 110,60:DRAWTO 137,60:DRAWTO 137,45:DRAWTO 110,45:PLOT 159,3212040 DRAWTO 2}110,32:PLOT 80,45:DRAWTO 80,2012041 GOSUB 700:REM DRAW CRYSTAL12050 PLOT 43,0:DRAWTO 43,30:PLOT 52,45:DRAWTO 22,45:DRAWTO 22}2,13:PLOT 108,0:DRAWTO 108,17:POKE 559,34:RETURN 13000 X0=0:X1=0:REM HOR1Z.PLAYER POS. 13010 Y0=78:REM VERTICAL PLAYER POS.2} 13015 Y1=7813020 POKE 704,KOLOR0:POKE 705,KOLOR1:REM INITIAL COLOR 13025 POKE M0PL,0:POKE M1PL,0:REM SET WIDTH OF PLAYERS2} 13030 POKE 53248,X0:POKE 53249,X1:REM SET HORIZONTAL POSITION OF PLAYERS 13040 PLAYER0$(Y0)=LEGS1$:REM PUT DATA IN PM MEMO0}