þþÖ_ X;EXWALLX;BY JEFF & ANDY BARTON#X;(c)1989, ANTIC PUBLISHING INC.( „LIST2EI< „LISTFIPZEKdxiSTART.OF.CODEn!†INIT.1;;START PROGRAMsX;xX;VARIABLES AND EQUATES}X;‚†RTCLOK;;HI-MID-LOW BYTE‡ …DELAY Œ†PMBASEÔ‘„BASEp;;2K BOUNDARY– …BASEMs›†BASEP0t †BASEP1u¥X;ª†HPOSP0Я†HPOSP1д†HPOSM0й†HPOSM1о†COLPM0À;;+1,2,3ÆCOLPF0Ä;;+1,2,3,4ȉFLASHWALL†COLPF0Í …COLORÍÒ‡SVCOLORû×X;ÜX;COLLISION REGISTERSá „M0PFÐæ „M1PFÐë „P0PFÐð „P1PFÐõ „M0PLÐú „M1PL Ðÿ „P0PL ІHITCLRÐ X; „AUDFÒ „AUDCÒX; „IOCB@" „CIOVVä' …IOCOM , †PUTCHR 1 †GETCHR6†GRACTLÐ;†DMACTL/@X;E …TRIG0„J …TRIG1…O†STICK0xT†STICK1yYX;^ †VPOSP0 c‰PREVPOSP0 h‰SHDHPOSP0 m‰PREHPOSP0 r †VPOSP1 w‰PREVPOSP1 |‰SHDHPOSP1 ‰PREHPOSP1 † †VPOSM0 ‹‰SHDHPOSM0  †VPOSM1 •‰SHDHPOSM1 š †WALLX0 Ÿ †WALLY0 ¤ †WALLX1 © †WALLY1 ®‡HORDIR0 ;;HOR. DIRECTION³‡HORDIR1 ;;VALUES 1,0,-1¸‡VERDIR0 ;; 1,0,-1½‡VERDIR1 ;; 1,0,-1ÂX;ǃEX0 ;;COUNT EXPLOSIOÑEX1 ;;SIZEÑ=„SKM0 ;;USED IN MISSLE EXPANSIONÖ=„SKM1 ;;USED IN MISSLE EXPANSIONÛƒEXP;;PENETRATIONàX;å…HITP0 ;;<>0=HIT,COUNTêC…HITP1 ;;CHANGE COLOR & INHIBIT JSTICKïX;ô…FIRE0 ;;1=ON 2=EXPLODEù …FIRE1 þX;†BUILD0 ;;<>1=NO 1=OK TO†BUILD1 ;;BUILD ‹BUILDCOUNT0 ;;<>0 ENABLES‹BUILDCOUNT1 ;;1-5 BLOCKSŒSECONDLAYER0 ;;0=LAYER 1ŒSECONDLAYER1 ;;1=LAYER 2!X;&‰MONLYMOVE ;;0-3 START @ 3+X;0 †TOPLIM  5 …ROUND : †BOTLIM ·? †LLIMIT 0D †LLIMP1 PI †RLIMP0 ¨N †RLIMM0 ÏS †RLIMIT ÈX †EXLIM0 ] †EXLIM1 bX;g „TEMP l …TEMP2 q …TEMP3 v …TEMP4 { …TEMP5 € …ZTEMPÎ…X;Š †SCORE0  †SCORE1 ”X;™ „VOL0 ž „VOL1 £ …WAIT0 ¨ …WAIT1 ­‡WAITLIM²X;· …TXROW¼ …TXCOL‘Á†STRBUF„BASEÆX;˃FR0Ô;;FLOAT POINT NUMÐ;„FASCæØ;;F.P. TO ASCII STRINGÕƒIFPªÙ;;INTEGER TO F.P.Ú…INBUFó;;POINT TO STRINGßX;çEIèX;òX; MACROSüX;‹CLEAR.PAGE X;%1 - START ADDRESSX;%2 - # OF PAGES$ Q> . P…ZTEMP8Q>B P…ZTEMPL$> V …CPSUB`jX;t …PLOT ~$ ˆ% ’ Q>†PUTCHRœ P…IOCOM¦ …IOSUB°ºX;Ä ‡DRAWTO Î$ Ø% â ‡DRAWSUBìöX; †COLOR   Q> (Q 2< P…COLORFZX;d‰HIT.WALL nX;%1 - (0-1) PLAYER#xC†COLOR ;;SET TO BKGRND TO ERASE WALL‚  ŒSET.X.Y.MISSLE – &…TEMP3  '…TEMP4ª ‡HIT.SUB´QƒEX0¾ F„HW.1ÃX;ÈQ>ÒRƒEX0;;LIMIT EXÜ D„HW.1áX;æP†EXLIM0;;SHORTEN EXð E†HW.1.1õX;ú„HW.1 †M0.OFF †HW.1.1"SET.X.Y.MISSLE , &…TEMP36 '…TEMP4@ ‡HIT.SUBJQƒEX1T F„HW.1YX;^Q>hRƒEX1;;LIMIT EXr D„HW.1wX;|P†EXLIM1;;SHORTEN EX† E†HW.1.1‹X;„HW.1š †M1.OFF¤ †HW.1.1®¸ÂX;ÌCLEAR.MISSLE ÖX;%1 - VPOSM(0-1)àX;%2 - MISSLE DATAêX;%3 - EX(0-1)ôQ> þ P…TEMP2Q P„TEMP;;LOOP COUNT,&O 0 ‰CLR.M.SUB:DX;N †FLASH XX;%1 - COLP(0-1)b,lQ v ‰FLASH.SUB€P Š”X;žŒMOVE.PLAYER ¨X;%1 - (0-1) [PLAYER #]²X;%2 - HORDIRP(0-1)¼X;%3 - VERDIRP(0-1)ÆQ‰SHDHPOSP0H P†HPOSP0R !‡MP.VERT\ƒMP1f$‰SHDHPOSP0p  z (†RLIMP0„ F‡MP.VERT‰X;Ž˜&‰PREHPOSP0¢#‰SHDHPOSP0;; MOVE RIGHT¬Q‰SHDHPOSP0¶ P†HPOSP0ÀÊIƒMP2;; RIGHTÏX;Ô$‰SHDHPOSP1Þ  è (†LLIMP1ò F‡MP.VERT÷X;ü &‰PREHPOSP1 "‰SHDHPOSP1;; MOVE LEFT Q‰SHDHPOSP1$ P†HPOSP1. !‡MP.VERT8 ƒMP2B $‰SHDHPOSP1L  V (†RLIMIT` F‡MP.VERTe X;j t &‰PREHPOSP1~ #‰SHDHPOSP1;; MOVE RIGHTˆ Q‰SHDHPOSP1’ P†HPOSP1œ ¦ ‡MP.VERT° Q º H‰MP.VERT.1¿ X;Ä !†MP.ENDÉ X;Î ‰MP.VERT.1Ø  â I…MP.UPç X;ì %†VPOSP0ö   )†BOTLIM F†MP.END X;  '‰PREVPOSP0( #†VPOSP0;; DOWN2 !ƒMP37 X;< …MP.UPF %†VPOSP0P  Z )†TOPLIMd F†MP.ENDi X;n x '‰PREVPOSP0‚ "†VPOSP0;; UPŒ ƒMP3–  ŒVERT.DRAW.P0  X;ª ´ I†MP1.UP¹ X;¾ %†VPOSP1È  Ò )†BOTLIMÜ F†MP.ENDá X;æ ð '‰PREVPOSP1ú #†VPOSP1;; DOWN !ƒMP4 X; †MP1.UP %†VPOSP1"  , )†TOPLIM6 F†MP.END; X;@ J '‰PREVPOSP1T "†VPOSP1;; UP^ ƒMP4h  ŒVERT.DRAW.P1r | †MP.END†  X;š SET.X.Y.WALL ¤ HX; CONVERT P/M COORDINATES -> SCREEN X,Y© $X;& PUT VALUES IN X & Y REGISTERS® X;%1 - (0-1) PLAYER'S #¸ X; $>Ì  Ö :Q†DATAP09;;HEIGHT OF PLAYERà V?;;DIVIDE BY 2ê ,ô 9O†VPOSP0;;MIDDLE OF PLAYERþ P„TEMP Q‰SHDHPOSP0 , O> ;;2 SPACE INFRONT&  ‰SETXY.SUB0 : Q†DATAP19;;PLAYER HEIGHTD V?;;DIVIDE BY 2N ,X O†VPOSP1;;MID OF PLAYERb P„TEMPl Q‰SHDHPOSP1v ;€ S>;;2 SPACE INFRONTŠ  ‰SETXY.SUB” ž ¨ X;² SET.X.Y.MISSLE ¼ HX; CONVERT P/M COORDINATES -> SCREEN X,YÁ $X;& PUT VALUES IN X & Y REGISTERSÆ X;%1 - (0-1) MISSILE'S #Ð X;Ú  ä Q†VPOSM0î >ø ; SƒEX0;;NO EFFECT IF =0 P„TEMP A ,* OƒEX04  ‹SETXY.SUB.1> '…TEMP2H #‰SHDHPOSM0R Q‰SHDHPOSM0\ "‰SHDHPOSM0f  ‰SETXY.SUBp z Q†VPOSM1„ >Ž ;˜ SƒEX1¢ P„TEMP¬ A¶ ,À OƒEX1Ê  ‹SETXY.SUB.1Ô '…TEMP2Þ Q‰SHDHPOSM1è  ‰SETXY.SUBò ü X; †?WALL X;IS THERE A WALL HERE?$X;%1 - WALLX(0-1).X;%2 - WALLY(0-1)8X;%3 - JUMP LABLEBX;%4 - PLAYER #L$ V% ` Q>†GETCHRj P…IOCOMt …IOSUB~R>;;WALL COLORˆ  ’ H„WL.0—X;œ! ¦„WL.0° ‡B0.SUB2ºÄ H„WL.1ÉX;Î! Ø„WL.1â ‡B1.SUB2ìöX; EXPAND.MISSILE X;%1 - (0-1) MISSILE #  (QƒEX02 P…TEMP2<V?F E…EM0.0KX;P Q†VPOSM0Z P„TEMPdQ>n P…TEMP4xT?‚ P…TEMP3Œ ˆEX.M.SUB–#ƒEX0 #ƒEX0ª …EM0.0¯#ƒEX0´¾QƒEX1È P…TEMP2ÒV?Ü E…EM1.0áX;æ Q†VPOSM1ð P„TEMPúQ> P…TEMP3T? P…TEMP4" ˆEX.M.SUB,#ƒEX16#ƒEX1@ …EM1.0E#ƒEX1JT^X;h‰CENTER.M rX;%1 - MISSILE #(0-1)|$>†   Q†DATAP09š V?;;/2¤,® O†VPOSP0¸ P†VPOSM0ÂÌ Q†DATAP19ÖV?à,ê O†VPOSP1ô P†VPOSM1þ?X;&ŒCHECK.STICK 0X;%1 - (0-1) PLAYER #: CHECK.STICK.SUBD  N D…CS.5ASX;X%>b'…TEMP2;; LEFTl #…TEMP3v …CS.5A€W?Š D„CS.6X;”%>ž'…TEMP2;; RIGHT¨ &…TEMP3²¼ D…CS.5BÁX;Æ%>Ð'…TEMP2;; LEFTÚ &…TEMP3ä …CS.5BîW?ø D„CS.6ýX;%> '…TEMP2;; RIGHT #…TEMP3 *„CS.64>X;H †SOUND RX;%1 %2 %3 %4 SAME AS BASIC\ ‰SOUND.SUBf $> p  ÿzQ „ŽQ> ˜¢ P„AUDF9¬  ÿ¶Q ÀÊQ> ÔÞ,è O> ò P„AUDC9üX; „POS !X;%1,%2 = X,Y POS. TEXT WINDOW$Q> . P…TXCOL8Q> B P…TXROWLVX;` †PRINT jX;%1 = STRING TO PRINTt !  yX;~ƒSTRƒ ˆ Q>4ƒSTR’ P…ZTEMPœ Q>5ƒSTR¦ P…ZTEMP°%> ;; STRING LENGTHº ‰PRINT.SUBÄÎX;ØŠPRINT.NUM âX;%1 = VARIABLEìX;SET POS FIRSTöQ PƒFR0 Q> PƒFR0 PRINT.NUM.SUB(2X;'X;'X;INITIALIZE$'X;L' †INIT.1V'Q>†ROUND1ÿ`' PˆRDOFFSETj'Q>†ROUND1t'PˆRDOFFSET~'X;ˆ'X;INITIALIZE ROUNDS’'X;œ'ŠINIT.ROUND¦'X;°' X;CLOSE #6º'$>`Ä'Q> ;;CLOSEÎ' P„IOCB9Ø' „CIOVâ' X;GR. 5ì'$>`ö' Q>;;GR.5( P„IOCB 9 (Q>( P„IOCB 9(Q>†SCREENÿ(( P„IOCB92(Q>†SCREEN<( P„IOCB9F(Q>P( P„IOCB9Z(Q>d( P„IOCB 9n( Q>;;OPENx( P„IOCB9‚( „CIOVŒ(X;–(X;SET P/M BASES (X;ª(Q>„BASE´( P†PMBASE¾(Q>È( P†GRACTLÒ(Q>>Ü( P†DMACTLæ(X;ð(Pð;;CURSOR OFFú(Q>)PR;;RH TEXT MARGIN)X;)X;PRINT TITLES")X;,)„POS =6)†PRINT AŠA@)„POS =J)_†PRINT AÑ EXWALL   PLAYER 1 ZONE PLAYER 2  AT)„POS =^))†PRINT A›<- RANK -> Ah)X;r)X;SOUNDS OFF|)$>†)Q>)‚SF•) P„AUDF9š)0¤)I‚SF®)X;¸)X;CLEAR P/M AREAÂ)X;Ì)‹CLEAR.PAGE …BASEM=Ö)X;à)X;CLEAR HIT REGISTERSê)X;ô) P†HITCLRþ)X;*X;DRAW SCREEN*X;* #…ROUND&*X;0*„R1.05*%>:*X;D* ‘RDOFFSET.TO.ZTEMPN*†COLOR ;;WATERX* ˆDRAW.SUBb*X;l* ‰INC.ZTEMPv*†COLOR ;;WALLS€* ˆDRAW.SUBŠ*X;”* ‰INC.ZTEMPž* Q@…ZTEMP7¨*P‰SHDHPOSP0²* P†HPOSP0¼* ‰INC.ZTEMPÆ* Q@…ZTEMP7Ð*P‰SHDHPOSP1Ú* P†HPOSP1ä* ‰INC.ZTEMPî* Q@…ZTEMP7ø* P†VPOSP0+ ‰INC.ZTEMP + Q@…ZTEMP7+ P†VPOSP1 +; ‰INC.ZTEMP;;POINT TO NEXT ROUND*+ ‘ZTEMP.TO.RDOFFSET4+X;>+X;LOAD PLAYER DATAH+X;R+Q>È;;GREEN\+ P†COLPM0f+Q>X;;PURPLEp+P†COLPM0z+ ŒVERT.DRAW.P0„+ ŒVERT.DRAW.P1Ž+X;˜+„POS =¢+ŠPRINT.NUM …ROUND¬+„POS =¶+ŠPRINT.NUM †SCORE0À+„POS =Ê+ŠPRINT.NUM †SCORE1Þ+X;è+X; MAIN PROGRAM LOOPü+X;,X;TIMER ROUTINE$,X;.,ŠTIME.DELAY8,Q†RTCLOK;;JIFFSB, R…DELAYL,?DŠTIME.DELAY;;LOOP UNTIL TIME UPV,Q>`,P†RTCLOK;;RESET CLOCKj,"‰MONLYMOVE;;MISSILE MOVESt,I„HIT?;;4X FOR EACHy,X;~,Q>;;PLAYER MOVEˆ,=P‰MONLYMOVE;;=0 PLAYER CAN MOVE’,„HIT?œ,Q„P0PF;;PLAYER -> WALL¦, F„H1.1«,X;°, Q‡HORDIR0º, F„H0.1¿,X;Ä,8N>þ;;REVERSE DIRECTIONÎ, P‡HORDIR0Ø,„H0.1Ý, Q‡VERDIR0â, F„H0.2ç,X;ì,N>þö, P‡VERDIR0-„H0.2-%ŒMOVE.PLAYER =‡HORDIR0=‡VERDIR0 -Q>- P‡HORDIR0- P‡VERDIR0(-„H1.12-Q„P1PF;;PLAYER -> WALL<- F„H2.1A-X;F- Q‡HORDIR1P- F„H1.2U-X;Z-8N>þ;;REVERSE DIRECTIONd- P‡HORDIR1n-„H1.2s- Q‡VERDIR1x- F„H1.3}-X;‚-N>þŒ- P‡VERDIR1–-„H1.3›-%ŒMOVE.PLAYER =‡HORDIR1=‡VERDIR1 -Q>ª- P‡HORDIR1´- P‡VERDIR1¾-„H2.1È-Q„M0PF;;MISSLE -> WALLÒ-M>;; IGNORE WATERÜ- F„H2.2æ-†SOUND =(==ð-#‰HIT.WALL =‰SHDHPOSM0=†VPOSM0ú-„H2.2.Q„M1PF;;MISSLE -> WALL.M>;; IGNORE WATER. F„H3.1.X;".†SOUND =(==,.#‰HIT.WALL =‰SHDHPOSM1=†VPOSM16.„H3.1@.Q„M0PL;MISSLE -> PLAYERJ.M>T. F„H4.1Y.X;^.X;PLAYER EXPLODING ROUTINEh. #†SCORE0r. †M0.OFF|. STOP.BUILD1.1†. #…HITP1.X;š.„H4.1¤.Q„M1PL;;MISSLE -> PLAYER®.M>¸. F„H4.2Â.X;Ì. #†SCORE1Ö. †M1.OFFà. STOP.BUILD0.1ê. #…HITP0ô.X;þ.„H4.2/Q„P0PL;;PLAYER <--> PLAYER/ F„H5.1/X;/ STOP.BUILD0.1&/ STOP.BUILD1.10/ #…HITP0:/ #…HITP1D/X;N/„H5.1X/ Q…HITP0b/ F„H6.1g/X;l/†FLASH †COLPM0v/ #…HITP0€/ Q…HITP0Š/V?”/M>ž/N>¨/ P„TEMP²/†SOUND =A==„TEMP¼/Q>_;; LIMIT OF FLASHINGÆ/ R…HITP0Ð/E„H6.1;; >= HITP0Ú/Q>ä/ P…HITP0î/‹CLEAR.PAGE †BASEP0=ø/ Q…HITP10H„H6.1;;P1 EXPLODING 0 †M1.OFF0 STOP.BUILD1.10!ŒEND.OF.ROUND 0„H6.1*0 Q…HITP140F‰CLEAR.HIT>0†FLASH †COLPM0H0 #…HITP1R0 Q…HITP1\0V?f0M>p0N>z0 P„TEMP„0†SOUND =<==„TEMPŽ0Q>_;; LIMIT OF FLASHING˜0 R…HITP1¢0E‰CLEAR.HIT;; >= HITP1¬0Q>¶0 P…HITP1À0‹CLEAR.PAGE †BASEP1=Ê0 Q…HITP0Ô0H‰CLEAR.HIT;; P0 EXPLODINGÞ0 †M0.OFFã0 STOP.BUILD0.1è0!ŒEND.OF.ROUNDò0X;ü0 ‰CLEAR.HIT1 P†HITCLR1X;1X;$1X;^^^^^ CHECK BUTTONA ^^^^^.1X;81 ‰BUTTON1.1B1 Q…WAIT0L1 F…BT1.1V1 "…WAIT0`1 !…BT2.1j1 …BT1.1t1 Q…HITP0~1H…BT2.1;;CAN'T FIRE WHEN HITˆ1QƒEX0’1 H…BT2.1œ1 Q…TRIG0¦1H…BT2.1;; NOT PRESSED°1 Q>‡WAITLIMº1 P…WAIT0Ä1 Q…FIRE0Î1 H…BT1.2Ø1 #…FIRE0â1Q>ì1 P„VOL0ö1 !…BT2.12 …BT1.2 2 Q>ƒEXP2P„SKM0;;PENETRATION OF EXPLO2#ƒEX0;;SET MISSLE EXPLOTION(2Q> 22 P„VOL0<2 …BT2.1F2 Q…WAIT1P2 F‡BT2.1.1Z2 "…WAIT1d2 !„M0.0n2 ‡BT2.1.1x2 Q…HITP1‚2H„M0.0;;CAN'T FIRE WHEN HITŒ2QƒEX1–2 H„M0.0 2 Q…TRIG1ª2H„M0.0;; NOT PRESSED´2 Q>‡WAITLIM¾2 P…WAIT1È2 Q…FIRE1Ò2 H…BT2.2Ü2 #…FIRE1æ2Q>ð2 P„VOL1ú2 !„M0.0ÿ2X;3 …BT2.23 Q>ƒEXP3P„SKM1;;PREPAR OF EXPLOSO"3#ƒEX1;;SET MISSLE EXPLOTION,3Q> 63 P„VOL1T3X; MOVE MISSILE ROUTINEh3„M0.0r3 Q…FIRE0|3 H…M0.013X;†3 !„M1.0‹3X;3 …M0.01š3R>¤3 H„M0.1©3X;®3Q‰SHDHPOSP0¸3,Â3O>Ì3P‰SHDHPOSM0Ö3‰CENTER.M à3Q>ê3 L…BASEM8ô3 P…BASEM8þ3 #…FIRE04„M0.14#‰SHDHPOSM04%‰SHDHPOSM0&4 '„TEMP04†SOUND =„TEMP==„VOL0:4 '†HPOSM0D4 )†RLIMM0N4 D„M0.2S4X;X4 †M0.OFFb4 !„M1.0g4X;l4„M0.2v4QƒEX0€4 F„M1.0…4X;Š4 R†EXLIM0”4 D…M0.21™4X;ž4 †M0.OFF¨4 !„M1.0­4X;²4 …M0.21¼4 "„SKM0Æ4 H„M1.0Ë4X;Ð4 Q>ƒEXPÚ4 P„SKM0ä4EXPAND.MISSILE î4X;ø4„M1.05 Q…FIRE1 5 H…M1.015X;5!‰CK.M.ONLY5X; 5 …M1.01*5R>45 H„M1.195X;>5%‰SHDHPOSP1H51R5'‰SHDHPOSM1\5‰CENTER.M f5Q> p5 L…BASEM8z5 P…BASEM8„5 #…FIRE1Ž5„M1.1˜5"‰SHDHPOSM1¢5%‰SHDHPOSM1¬5C¶5N>ÿÀ5 P„TEMPÊ5†SOUND =„TEMP==„VOL1Ô5 '†HPOSM1Þ5 )†LLIMITè5 E„M1.2í5X;ò5 †M1.OFFü5!‰CK.M.ONLY6X;6„M1.26QƒEX16F‰CK.M.ONLY6X;$6 R†EXLIM1.6 D…M1.2136X;86 †M1.OFFB6!‰CK.M.ONLYG6X;L6 …M1.21V6 "„SKM1`6H‰CK.M.ONLYe6X;j6 Q>ƒEXPt6 P„SKM1~6EXPAND.MISSILE ˆ6X;œ6 ‰CK.M.ONLY¦6Q‰MONLYMOVE;;MISSLE MOVES°6FŒCHECK.STICK0µ6X;º6!ŠTIME.DELAYÄ6X;Î6ŒCHECK.STICK0Ø6Q>â6$>ÿì6 %†BUILD0ö6)>7 F„S0.17X; 7 P†BUILD07„S0.17%…HITP0;;CAN'T MOVE IF HIT(7 H†S0.1.1-7X;27Q><7 N†STICK0F7H„S0.2;;MOVEMENT DETECTEDK7X;P7 †S0.1.1Z7 P‡VERDIR0d7 P‡HORDIR0n7 $†BUILD0x7 H†S0.1.2}7X;‚7†SOUND ===Œ7 †S0.1.2–7!ŒCHECK.STICK1›7X; 7„S0.2ª75´7A¾75È7†SOUND =õ==Ò77Ü7>æ77ð7%>ú7 '„TEMP8 '…TEMP28 %†BUILD08 '…TEMP3"8ŒCHECK.STICK ,8 Q„TEMP68 P‡VERDIR0@8 Q…TEMP2J8 P‡HORDIR0T8 Q…TEMP3^8 P†BUILD0h8R>r8FŒCHECK.STICK1w8X;|8Q‹BUILDCOUNT0†8FŒCHECK.STICK1‹8X;8 ‹STOP.BUILD0š8X;¤8ŒCHECK.STICK1®8Q>¸8$>ÿÂ8 %†BUILD1Ì8)>Ö8 F„S1.1Û8X;à8 P†BUILD1ê8„S1.1ô8%…HITP1;;CAN'T MOVE IF HITþ8 H†S1.1.19X;9Q>9 N†STICK19H„S1.2;;MOVEMENT DETECTED!9X;&9 †S1.1.109 P‡VERDIR1:9 P‡HORDIR1D9 $†BUILD1N9 H†S1.1.2S9X;X9†SOUND ===b9 †S1.1.2l9 !…MP0.0q9X;v9„S1.2€95Š9A”95ž9†SOUND =ë==¨97²9>¼97Æ9%>Ð9 '„TEMPÚ9 '…TEMP2ä9 %†BUILD1î9 '…TEMP3ø9ŒCHECK.STICK : Q„TEMP : P‡VERDIR1: Q…TEMP2 : P‡HORDIR1*: Q…TEMP34: P†BUILD1>:R>H: F…MP0.0M:X;R:Q‹BUILDCOUNT1\: F…MP0.0a:X;f: ‹STOP.BUILD1p:X;„:X; MOVE PLAYER ROUTINE˜: …MP0.0¢:(ŒMOVE.PLAYER =‡HORDIR0=‡VERDIR0=¬: …MP1.0¶:(ŒMOVE.PLAYER =‡HORDIR1=‡VERDIR1=À:X;Ô:X; BUILD WALLS ROUTINEè:„B0.0ò: Q†BUILD0ü:R>; F…B0.01;X;; !„B1.0 ;X;; …B0.01;†SOUND =<==$; $†WALLX0.; H…B0.02/;X;8;Q>B;P‹BUILDCOUNT0L;SET.X.Y.WALL V; &†WALLX0`; '†WALLY0j; …B0.02t;Q>~;R‹BUILDCOUNT0ˆ; H„B0.1;X;’;T‹BUILDCOUNT0œ;#†?WALL †WALLX0=†WALLY0=„B0.1=¦; !„B1.0«;X;°;„B0.1º;Q>Ä;R‹BUILDCOUNT0Î; H„B0.2Ó;X;Ø;T‹BUILDCOUNT0â; ‡B0.SUB1ì; "†WALLY0ö;#†?WALL †WALLX0=†WALLY0=„B0.2=< !„B1.0<X; <„B0.2<Q><R‹BUILDCOUNT0(< H„B0.3-<X;2<T‹BUILDCOUNT0<< ‡B0.SUB1F< #†WALLY0P< #†WALLY0Z<#†?WALL †WALLX0=†WALLY0=„B0.3=d< !„B1.0j<X;n<„B0.3x<Q>‚<R‹BUILDCOUNT0Œ< H„B0.4‘<X;–<T‹BUILDCOUNT0 < ‡B0.SUB1ª< "†WALLY0´< "†WALLY0¾< "†WALLY0È<#†?WALL †WALLX0=†WALLY0=„B0.4=Ò< !„B1.0×<X;Ü<„B0.4æ<Q>ð<R‹BUILDCOUNT0ú< H„B0.5ÿ<X;=T‹BUILDCOUNT0= ‡B0.SUB1= #†WALLY0"= #†WALLY0,= #†WALLY06= #†WALLY0@=#†?WALL †WALLX0=†WALLY0=„B0.5=J= !„B1.0O=X;T=„B0.5^= ‡B0.SUB1h=QŒSECONDLAYER0r= H„B0.6w=X;|=#ŒSECONDLAYER0†= "†WALLX0= "†WALLY0š= "†WALLY0¤=Q>®=P‹BUILDCOUNT0¸= !„B1.0½=X;Â=„B0.6Ì= ‹STOP.BUILD0Ö=X;à=„B1.0ê= Q†BUILD1ô=R>þ= F…B1.01ÿ=X;>!‚B2 >X;> …B1.01>†SOUND =<==&> $†WALLX10> H…B1.025>X;:>Q>D>P‹BUILDCOUNT1N>SET.X.Y.WALL X> &†WALLX1b> '†WALLY1l> …B1.02v>Q>€>R‹BUILDCOUNT1Š> H„B1.1>X;”>T‹BUILDCOUNT1ž>#†?WALL †WALLX1=†WALLY1=„B1.1=¨>!‚B2­>X;²>„B1.1¼>Q>Æ>R‹BUILDCOUNT1Ð> H„B1.2Õ>X;Ú>T‹BUILDCOUNT1ä> ‡B1.SUB1î> "†WALLY1ø>#†?WALL †WALLX1=†WALLY1=„B1.2=?!‚B2?X; ?„B1.2?Q> ?R‹BUILDCOUNT1*? H„B1.3/?X;4?T‹BUILDCOUNT1>? ‡B1.SUB1H? #†WALLY1R? #†WALLY1\?#†?WALL †WALLX1=†WALLY1=„B1.3=f?!‚B2k?X;p?„B1.3z?Q>„?R‹BUILDCOUNT1Ž? H„B1.4“?X;˜?T‹BUILDCOUNT1¢? ‡B1.SUB1¬? "†WALLY1¶? "†WALLY1À? "†WALLY1Ê?#†?WALL †WALLX1=†WALLY1=„B1.4=Ô?!‚B2Ù?X;Þ?„B1.4è?Q>ò?R‹BUILDCOUNT1ü? H„B1.5@X;@T‹BUILDCOUNT1@ ‡B1.SUB1@ #†WALLY1$@ #†WALLY1.@ #†WALLY18@ #†WALLY1B@#†?WALL †WALLX1=†WALLY1=„B1.5=L@!‚B2Q@X;V@„B1.5`@ ‡B1.SUB1j@QŒSECONDLAYER1t@ H„B1.6y@X;~@#ŒSECONDLAYER1ˆ@ #†WALLX1’@ "†WALLY1œ@ "†WALLY1¦@Q>°@P‹BUILDCOUNT1º@!‚B2¿@X;Ä@„B1.6Î@ ‹STOP.BUILD1â@‚B2ì@!ŠTIME.DELAYö@X; AŒEND.OF.ROUNDA%>A ‘RDOFFSET.TO.ZTEMP(A Q@…ZTEMP72AR>ÿ†ROUND1ÿZA PˆRDOFFSETdAQ>†ROUND1nAPˆRDOFFSETxAƒER1‚A!ŠINIT.ROUNDŒAX;–A†SCREEN A‚S:A AX; NX;SUBROUTINES>N …CPSUBHN%>RN…CPS.1P@…ZTEMP7\N3fN H…CPS.1kNX;pN0zN H…CPS.2NX;„N:ŽN…CPS.2#…ZTEMP˜N !…CPS.1¢NX;¬N ‰INC.ZTEMP¶N #…ZTEMPÀN H…IT1.1ÅNX;ÊN #…ZTEMPÔN …IT1.1:ÞNX;èN‹SET.UP.PLOTòN ‰INC.ZTEMPüN Q@…ZTEMP7O P„TEMPO ‰INC.ZTEMPO Q@…ZTEMP7$O P…TEMP2.O:8OX;BOŒVERT.DRAW.P0LO%>VO!Q†DATAP08;; # OF BYTES TO LOAD`O?jO$†VPOSP0;; OFFSET FROM BASEtO …VD1.0~O Q†DATAP08ˆO P†BASEP09’O2œO1¦O H…VD1.0«OX;°O:ºOX;ÄOŒVERT.DRAW.P1ÎO%>ØO!Q†DATAP18;; # OF BYTES TO LOADâO?ìO$†VPOSP1;; OFFSET FROM BASEöO …VD1.1P Q†DATAP18 P P†BASEP19P2P1(P H…VD1.1-PX;2P:nPPV;; MSB COLCRSxP$>`‚PP„IOCB9;;BUFF LENGTHŒPP„IOCB 9;; " "–PQ…IOCOM;;PUTCHR / GETCHR P P„IOCB9ªPQ…COLOR;; PLAYFIELD #´P „CIOV¾P:ÈPX;ÒP ‡DRAWSUBÜP Q…COLORæP!P‡SVCOLOR;; COLOR TO DRAW WITHðPQTúPPZ;;OLD ROWCRSQ"UQQUQP[;;OLD COLCRS"Q'T;;ROWCRS,Q&U;;COLCRS6QQ>@Q PV;;MSBJQ$>`;;IOCB #6TQ Q>;;DRAW^Q P„IOCB9hQ „CIOVrQ:|QX;†Q †M0.OFFQ†SOUND ===šQ!CLEAR.MISSLE †VPOSM0=ü=ƒEX0¤Q ˆM0.OFF.1®QQ>¸QP‰SHDHPOSM0ÂQ P†HPOSM0ÌQ P…FIRE0ÖQPƒEX0àQ P„SKM0êQQ>ôQ P†EXLIM0þQ:RX;R †M1.OFFR†SOUND ===&R!CLEAR.MISSLE †VPOSM1=ó=ƒEX10R ˆM1.OFF.1:RQ>DRP‰SHDHPOSM1NR P†HPOSM1XR P…FIRE1bRPƒEX1lR P„SKM1vRQ>€R P†EXLIM1ŠR:”RX;žR ‰CLR.M.SUB¨R>²RT„TEMP;;COUNT * 2¼R„CM.1ÆR Q…BASEM9ÐR M…TEMP2ÚR P…BASEM9äR0îR "„TEMPøR I„CM.1ýRX;S: SX;S ‰FLASH.SUB SO>;;INC HUE*S P„TEMP4SM>;;GET LUMIN.>S F…FL1.1CSX;HSQ>ðRSM„TEMP;;INVERT LUMIN.\S:aSX;fS …FL1.1pSQ>zSL„TEMP;;INVERT LUMIN.„S:ŽSX;˜SCHECK.STICK.SUB¢SW?¬S D„CS.3±SX;¶S%>ÀS '„TEMP;;UPÊS &…TEMP3ÔS„CS.3ÞSW?èS D„CS.4íSX;òS%>üS'„TEMP;; DOWNT &…TEMP3T„CS.4TW?$T:.TX;8T ‰SETXY.SUBBT;LTS>0;;START OF SCREEN LEFTVTV?;;DIV BY 2`T>;;= SCREEN X COORDINATEjT Q„TEMPtT‹SETXY.SUB.1~T;ˆTS> ;;START OF SCREEN TOP’TV?;;DIV BY 4œTV?¦TR>2;;IF OFF TOP°TD‹SETXY.SUB.2;;OF SCREENµTX;ºTQ>;;SET TO = 0ÄT‹SETXY.SUB.2ÎT?;;= SCREEN Y COORDINATEØT:âTX;ìT ‡B0.SUB1öT †COLOR U…PLOT †WALLX0=†WALLY0 U:UX;U ‡B0.SUB2(U †COLOR 2U…PLOT †WALLX0=†WALLY0¼W '†WALLY0ÆW '†WALLX0ÐW '†BUILD0ÚW'‹BUILDCOUNT0äW'ŒSECONDLAYER0îW:øWX;X‹STOP.BUILD1 X ‡B1.SUB1XSTOP.BUILD1.1 X†SOUND ===*X%>4X '†WALLY1>X '†WALLX1HX '†BUILD1RX'‹BUILDCOUNT1\X'ŒSECONDLAYER1fX:pXX;zX ‰SOUND.SUB„XQ>ŽXPÒ;;AUDCTL˜XQ>¢XPÒ;;SKCTL¬XP2;;& SHADOW¶X:ÀXX;ÊXŠPUTCHR.SUBÔX$>ÞX &„IOCBèX &„IOCB òX Q>†PUTCHRüX P„IOCBY †PCLOOPY %„TEMPY Q†STRBUF8$Y „CIOV.Y "„TEMP8Y I†PCLOOP=YX;BY:LYX;VY ‰PRINT.SUB`Y1jY '„TEMPtY$>~Y …SLOOPˆYQ@…ZTEMP7;;REVERSE ORDER’YP†STRBUF9;;OF CHARACERSœY2;;IN STRING¦Y1°Y I…SLOOPµYX;ºY ŠPUTCHR.SUBÄY:ÎYX;ØYPRINT.NUM.SUBâY ƒIFP;;INT. TO F.P.ìY „FASC;;F.P. TO ASCII STRINGöYX;Z%> ZƒPN1ZQ@…INBUF7;;COUNT CHARACTERSZGƒPN2;;IN STRING#ZX;(Z32Z!ƒPN17ZX;ZZƒPN3dZQ@…INBUF7;;REVERSE STRING &nZM>;;CLEAR BIT 7xZ P†STRBUF9‚Z2ŒZ1–ZIƒPN3›ZX; Z ŠPUTCHR.SUBªZ:´ZX;¾Z ˆDRAW.SUBÈZQ@…ZTEMP7;;NUM OF X,Y; X,YÒZF„R1.2;;SKIP IF "0"×ZX;ÜZP…TEMP5;;# PLOT DRAWTO SETSæZ„R1.1ðZ ‹SET.UP.PLOTúZ ‰INC.ZTEMP[ Q@…ZTEMP7[ P…TEMP3[ ‰INC.ZTEMP"[ Q@…ZTEMP7,[ P…TEMP46[…PLOT „TEMP=…TEMP2@[‡DRAWTO …TEMP3=…TEMP4J[%>T[ "…TEMP5^[H„R1.1;;DO NEXT SETc[X;h[„R1.2r[ ‰INC.ZTEMP|["Q@…ZTEMP7;; NUM PLOT POINT SETS†[F„R1.4;;SKIP IF "0"‹[X;[P…TEMP5;; SETSš[„R1.3¤[ ‹SET.UP.PLOT®[…PLOT „TEMP=…TEMP2¸[%>Â[ "…TEMP5Ì[ H„R1.3Ñ[X;Ö[„R1.4à[:ê[X;ô[ ‡HIT.SUBþ[ ‡HS.LOOP\ Q>†GETCHR\ P…IOCOM\ …IOSUB&\R>0\F‰HS.LOOP.15\X;:\ Q>†PUTCHRD\ P…IOCOMN\ $…TEMP3X\ %…TEMP4b\ …IOSUBl\ ‰HS.LOOP.1v\ %…TEMP4€\ )…TEMP2Š\ F„HS.1\X;”\ $…TEMP3ž\ #…TEMP4¨\ %…TEMP4²\ !‡HS.LOOP·\X;¼\„HS.1Æ\:Ð\X;Ú\EIHqˆRqX;^^^^^^^^^^^^\qX;PLAYER DATA FormataqX; 1- # of data bytesfqX; 2- '0' first bytekq@X; 3- player byte data in reverse orderpqX; 4- '0' last byteuqX;^^^^^^^^^^^^zq(†DATAP0  ==f=ÿ=8=þ=ø=±=Ÿ=„q(†DATAP1  ==V=ÿ====š=ò=ŽqX;˜q †COLPM0¢q Ø=ªÌt€ˆ0u%X;********************************:u8X;DATA FOR SCREEN DISPLAY OF EACH ROUNDDuX;Format: COLOR 2 waterNu$X; 1- # of plot/drawto setsXu#X; 2- 4 byte sets x,y, x,ybu#X; 3- # of plot point setsluX; 4- 2 byte sets x,yvuX; COLOR 1 walls€u$X; 5- # of plot/drawto setsŠu#X; 6- 4 byte sets x,y, x,y”u#X; 7- # of plot point setsžuX; 8- 2 byte sets x,y¨u#X; 9- P0 horz. pos. X*2+48²u X; 10- P1 " " "¼u%X; 11- P0 vert. offset Y*4+32Æu"X; 12- P1 " " "ÐuX;ÚuiX; 13- "255" FLAGS END OF DATA. AFTER LAST SCREEN ONLY !!äu%X;********************************îu+ˆRDOFFSET ;;ROUNDS DATA OFFSET POINTERøu(†ROUND1 ='=='='=(==(='=vr $= == == == == == == == ===================== vc === ==== ==== == ==== ==== ==========vc ================6==1==7==2==8==3==0==0= vc 1==1==2==2==1= =6=%=2= =7=%=3= =8=%=@==@= =A==A= =B==B= *v6 C==C= =D==D= =E==E= ==4=È=P=€4vm†ROUND2 ='=='==(==(==)==)==*==*==(==(= ='==%=#='= =%=%=&=%='='>vo &=&=&='=========8==<==8==;=== == == == == == == == Hvc ====>= =@= === =A= === =A= === =A= =>==@===$==&==$==&Rv 3=$=6=&=4=$=6=&=\vf = ====== ==F==B==B==F== == = =!==!= ="=="= =#==#= fvW $==$= =*==*= =+==+= =,==,= =-==-= =.==.= ====pvZ =====!==%=>==9==7==:==<=!=<=%=== =;= =0=È=m=mzvy†ROUND3  ===F=&= ==G=&=========H=%=K=&=G='=O='===='===='=@==G=„v A==J==Žvr ==== = == = = == = ===== == == == === ==== ==== ==˜vc ========?= =?==@==@==?==?==@==@==A==A==F==F=¢vB G==G==H==H==F==F= =G==G= =H==H= =¬v 4=Æ=D=˜¶vp†ROUND4 =&====== == ====== === ==!= =!= ="=="==$==%==&=Àvi '=='==)=!=,==-==.==/==/= =2==3==4==5==8==9==9==<= ===Êv! E==G==G= =H= =K=Ôvf = ==== ==== ====================== =%Þvc == =%=== =%=C==<==D=====E==>==<==<========>==>=èvN @==@==<==C=%====D=%=>==E=%==A==A== == =òv @=¶=Œ=Œüvm†ROUND5 ===8= ===8= =9= =C= =9= =B==?= =@==C==@==?====?===wK == ====== ==== ======6=&===6='w ===@====7='w- ===7====7====7==$w P=¦=`=x.w"†ROUND6 ====2=È=(=d8w"†ROUND7 ====l=Œ=l=lBwU†ROUND8  ===='=@==@='===;====;====;===$=;=$Lw` ==?=== =?= ===?=== =?= =====?====?===R=¦=d=ttw- ÿ;; *** FLAG END OF LAST SCREEN DATA ***~wX;yà"y START.OF.CODE,y