þþ›FX;*********************X;* COSMIC GLOB *X;* [C] *X;* BY RICH B. ENNS * X;*********************F(EI<€P„DLLO;;ZERO PAGE DLISTd„SCLO;;ADDER FOR GR.7xˆMIS0MOVE;;MIS.0 VERTMOVEŒˆMIS1MOVE ˆMIS2MOVE´‡PM0MOVE;;PM0 VERTMOVEȇPM1MOVE܇PM2MOVEð‡PM3MOVE†PM2AUX;;PM2 AUXILLIARY †PM3AUX,†PMPLOT;;PM DATA PLOT@!ˆPM0BLOCK;;PM0 START SCREENTˆPM1BLOCKh‡TURNDIR;;ROTATION DIR.|‡PMSETUP;;PMBASE SHADOW‡PM0GYRO;;PM0 DIR. ANGLE¤‡PM1GYRO¸‡PMINDEX;;GYRO MULTIPLYEṘTSTORE0;;TEMPORARYà‡TSTORE1;;STORINGô‡TSTORE2;;LOCATIONS‡TSTORE3;;0-3 FOR‡TSTORE4;;VB ROUTINES0‡TSTORE5;;4-7 FOR NORMALD‡TSTORE6;;ROUTINESX‡TSTORE7lˆROTTIME0;;PM0 TURN DELAY€ˆROTTIME1”ˆPM0SPEED;;PM0 MOVE CTRL¨ˆPM1SPEED¼„HPM0;;PM0 H. SHADOWÐ „HPM1ä „HPM2ø „HPM3 „HMS0;;MIS.0 H. SHADOW  „HMS14ˆMSTATUS0;;M0 FIRE STATUSHˆMSTATUS1\ˆMIS0GYRO;;MIS.0 VECTORpˆMIS1GYRO„ˆGLOBGYRO;;GLOB VECTOR˜‡DLITIME;;DLI VB DELAY¬‰CTRLSTOP0;;PM0 OVERRIDEÀ‰CTRLSTOP1Ô ‰FLIPTIME0;;PM0 FLIP DELAYè‰FLIPTIME1ü‡FLYGYRO;;FLY DIRECTION„HMS2;;MIS2 H. SHADOW$ „HMS38‡FLYTIME;;FLY VB. TIMERL ‰FLYDURATE;;FLY DIR. DELAY`ˆGLOBGATE;;GLOB ENABLEt‰PLAYGATE0;;PM0 ENABLEˆ‰PLAYGATE1œ ˆEXPMUSIC;;EXP SOUND START° ‰SOUNDACT1;;EXP SOUND CTRLÄ…NOTE1;;EXP PITCH CTRL؉FIREMUSIC;;MIS SO. STARTì ‰SOUNDACT2;;MIS SOUND CTRL…NOTE2;;MIS PITCH CTRL ˆBOUMUSIC;;BOUNCE SO.START( ‰SOUNDACT3;;BOUNCE SO.CTRL<…NOTE3;;BOUNCE PI. CTRLP„VOL3;;BOUNCE VOL CTRLd ‰SLOWFIRE0;;PM0 FIRE DELAYx‰SLOWFIRE1Œ†LIVES0;;PM0 # OF LIVES  †LIVES1´ ˆACTTIME0;;PM0 START DELAYȈACTTIME1܇SFEEDLO;;SCORE LO,MEDðˆSFEEDMED;;& HIGH BYTE‡SFEEDHI;;FEEDERS…SCLO0;;PLAYER 0 & 1,…SCLO1;;SCORE LOC.@†SCMED0;;LO , MED ANDT†SCMED1;;HIGH BYTESh …SCHI0| …SCHI1‡COL0ALT;;PLAYFIELD¤‡COL1ALT;;0,1 & 3 COLOR¸‡COL3ALT;;DLI CHANGES̉APPDELAY0;;SHIP APPEARà‰APPDELAY1;;DELAY TIMERSô ˆDIFFCTRL;;GLOB SPEED CTRL †PSCHI0 †PSCHI1‡HITVRF0;;PLAYER MISSILE ‡HITVRF1;;HIT VERIFY0‡FLYFAST;;FLY SPEED INC.D‡NCOLORS;;DLI # OF COLORSX‰DLICOLOR1;;DLI COLORS 1l‰DLICOLOR2;;DLI COLORS 2€'†DECDIF;;ÄÅÃÉÍÁÌ ÄÉÆÆ® ÉÎÄÉÃÁÔÏÒ”†DIFFIC;;GLOB SPEED FLAG¨‡NUMPLAY;;# OF PLAYERS¼ˆMINEGATE;;MINE ENABLEЇNUMLIFE;;# OF SHIPSä ‡RAPFIRE;;RAPID FIRE CTRLø ‰DIFSTEER1;;STEERING TYPE ‰DIFSTEER2 ˆCHARHOLD;;CHAR. POINTER4†SDMCTL/;;DMA ENABLEH…DLIST0;;DLIST ADDRESS\†GPRIORo;;PM PRIORITIESp †STICK0x;;STICK (0) SHADOW„†STICK1y˜†STRIG0„;;STICK 0 FIRE¬†STRIG1…À†ATRACTM;;ATTRACT MODEÔˆSCREENLOX;;SCREEN MEMORYè†RAMTOPj;;TOP OF FREE RAMü†PMBASEÔ;;PMBASE ADDRESS †SETVBV\ä;;VBLANK REVECTOR$ †RETURNbä;;VBLANK RETURN8 †HPOSP0Ð;;PM0 - PM3L †HPOSP1Ð;;HARDWARE` †HPOSP2Ðt †HPOSP3Ј †HPOSM0Ð;;MIS.0 - MIS.3œ †HPOSM1Ð;;HARDWARE° †HPOSM2ÐÄ †HPOSM3ÐØ †HITCLRÐ;;COLISION CLEARì †RANDOM Ò;;RND GENERATOR …WSYNC Ô;;HORIZ SYNC †COLPM2Ð;;PM2 HARD. COLOR( †COLPM3Ð;;PM3 HARD. COLOR< †COLPF0Ð;;PLAYFIELDP †COLPF1Ð;;0,1 & 3d †COLPF3Ð;;HARDWAREx †GRACTLÐ;;GR. CONTROLŒ †CONSOLÐ;;FUNCTION KEYS  …SKCTLÒ;;POKEY INIT´ †AUDCTLÒ;;POKEY CONTROLÈ …AUDF1Ò;;V1 - V4Ü …AUDF2Ò;;FREQUENCYð …AUDF3Ò …AUDF4Ò …AUDC1Ò;;V1 - V4, …AUDC2Ò;;NOTE CTRL@ …AUDC3ÒT …AUDC4Òh | =5 ?!‡DEFAULT;;ÓÔÁÒÔ ÏÆ ÇÁÍÅ ­­ ÔÁÐÅ ÓÔÁÒÔ½¤·°° ¯ ±·¹²  ÒÕνÓÁÍŤ 4Q>;;ÄÉÓË ÓÔÁÒÔ½¤³Ã°° ¯ ±µ³¶°  ÒÕν¤³Ã°³ ¯ ±µ³¶³¸ P„DLLOÌ P„SCLO;;TRANSFER GAMEà Q>;;FROM $3C00ô P„DLLO;;TO $700 Q><;;ÄÉÓË ÏÎÌÙ P„SCLO0 %>D ‡REPOSITQ@„SCLO7X P@„DLLO7;;DO TRANSFERl ,€ Q„DLLO” O>¨ P„DLLO¼ Q„DLLOÐ O>ä P„DLLOø , Q„SCLO O>4 P„SCLOH Q„SCLO\ O>p P„SCLO„ Q„DLLO˜ R>‡GLOBEND¬ H‡REPOSITÀ !‡DEFAULT;;ÓÔÁÒÔ ÇÁÍÅÔ „DLIS5è Aü 5C$58%‡NCOLORS;;DISPLAYLQ‰DLICOLOR18;;DLI COLORS`P…WSYNC;;FORtP†COLPM2;;PLAYERSˆQ‰DLICOLOR28;;2 & 3œ P†COLPM3° Q‡COL0ALTÄP†COLPF0;;PLAYFIELDØQ‡COL1ALT;;COLORìP†COLPF1;;CHANGES Q‡COL3ALT P†COLPF3( #‡NCOLORS< Q‡NCOLORSPR>d H‡DLISKIPxQ>Œ P‡NCOLORS  ‡DLISKIP7´?È7Ü>ð79X;ÖÅÒÔÉÃÁÌ ÂÌÁÎË ÒÏÕÔÉÎÅÓ, †VBLANK5@AT5hC|5Q>;;RESET BLACK¤PÈ;;BACKGROUND¸Q>ÌR†STICK0;;RESET ATTRACTàH‡ATRESET;;MODE ONLYôR†STICK1;;IF A STICKF†ATSKIP;;IS PRESSED‡ATRESETQ>0 P†ATRACTD†ATSKIPQ‡NUMLIFEXR>;;CHECK FORlH‰ETERNSKIP;;ENDLESS LIVES€Q>È” P†LIVES0¨ P†LIVES1¼ ‰ETERNSKIPQˆGLOBGATE;;IS GLOBÐR>;;ACTIVATED ? IFäF†ACTIVE;;NOT THEN PASSø!…EXIT2;;ALL ROUTINES †ACTIVEQ„HPM2;;MOVE GLOB P†HPOSP2;;IN VBLANK4Q„HPM3;;FOR SMOOTHNESSH P†HPOSP3\%>p‰GLOBTRANSQ…FRAG18„P@‡PM2MOVE7˜ Q…FRAG28¬P@‡PM3MOVE7À3Ô)>èH‰GLOBTRANSüQ>;;POKE EXTRAP@‡PM2MOVE7;;ZEROS TO$P@‡PM3MOVE7;;CORRECT83;;FOR GLOBLP@‡PM2MOVE7;;MOVING`P@‡PM3MOVE7;;FASTERt ;;;THAN VBˆ Q‡PM2MOVEœS>° P†PM2AUXÄ;Ø Q‡PM3MOVEìS> P†PM3AUX%>(Q>< P@†PM2AUX7P P@†PM3AUX7d3x P@†PM2AUX7Œ P@†PM3AUX7 Q‡FLYFAST;;SHOULD FLY´R>;;SPEED UP ?È F†FLYIT2܆FLYIT1#‡FLYTIMEð Q‡FLYTIMER> F†FLYIT2, !‡FLYSKIP@†FLYIT2Q>T P‡FLYTIMEh#‰FLYDURATE|Q‰FLYDURATER><¤ HˆFLYSTART¸Q>ÌP‰FLYDURATEà Q‡FLYGYROô P‡TSTORE0 Q†RANDOMM>0T?DT?X,l O‡TSTORE0€?”QˆFLYRIGHT8¨ P‡FLYGYRO¼ˆFLYSTART%‡FLYGYROÐ ˆHFLYMOVE,ä Q„HMS2øOˆHFLYDATA8  P„HMS2  P†HPOSM24,H Q„HMS3\OˆHFLYDATA8p P„HMS3„ P†HPOSM3˜R>7¬ F‡FLYFLIPÀR>ÅÔ F‡FLYFLIPè ˆVFLYMOVE,ü QˆMIS2MOVEOˆVFLYDATA8$ PˆMIS2MOVE8 Q‡FLYGYROLT?`T?tT?ˆ>œ%>°‡FLYPLOTQ@ˆMIS2MOVE7ÄM>Ø,ì O†FLYDIR9P@ˆMIS2MOVE72(3<)>P H‡FLYPLOTd QˆMIS2MOVExR>–Œ F‡FLYFLIP R>è´ H‡FLYSKIPȇFLYFLIP%‡FLYGYROÜQŠFLYFLIPDAT8ð P‡FLYGYROQ> PˆBOUMUSIC, !ˆFLYSTART@‡FLYSKIP#‡DLITIMET Q‡DLITIMEhR> | HˆRDLISKIPQ>¤ P‡DLITIME¸$>Ì%‰DLICOLOR1à‡COLROT1Q‰DLICOLOR19ôP‰DLICOLOR19;;ROTATE2;;DLI COLORS(>0 H‡COLROT1D'‰DLICOLOR1X$>l%‰DLICOLOR2€‡COLROT2Q‰DLICOLOR29”P‰DLICOLOR29¨0¼(>ÿÐ H‡COLROT2ä'‰DLICOLOR2øˆRDLISKIPQ>;;ONLY RUMBLE RˆACTTIME0;;IF NO SHIP HˆPMACTIVE;;IS FORMING4 RˆACTTIME1H HˆPMACTIVE\Q>;;CHECK IFpRˆPM0SPEED;;EITHER SHIP„FˆRUMBLEON;;IS MOVING˜RˆPM1SPEED;;IF SO NAKE¬H‰RUMBLEOFF;;RUMBLEÀˆRUMBLEONQ>Ô P…SKCTLèQ>üP†AUDCTL;;TURN ONQ>‚;;RUMBLE$ P…AUDC48Q> L P…AUDF4` !ˆPMACTIVEt‰RUMBLEOFFQ>;;TURN OFFˆP…AUDC4;;RUMBLEœ P…AUDF4° ˆPMACTIVE$>;;ÁÃÔÉÖÁÔÅ ÓÈÉÐÓćACTLOOPQ†LIVES09;;CHECK IFØR>;;LIVES ALLìF‡NEXTACT;;USED UPQ‰PLAYGATE09;;CHECK IFR>;;SHIP ALREADY(F‡NEXTACT;;ACTIVATED<Q‰APPDELAY09;;CHECKPR>;;DESTRUCT-TOdFˆGETSTICK;;-ACTIVATEx"‰APPDELAY09;;DELAY TIMERŒ !‡NEXTACT ˆGETSTICKQ†STICK09´R>;;START SHIP IFÈH†GOSHIP;;STICK PRESSED܆TIMEUP#ˆACTTIME09ð ‰BLOCKPLOTQˆACTTIME09;;START SHIPR>ÿ;;IF TIME ELAPSED, H‡NEXTACT@†GOSHIPQ>;;START SHIP &TPˆACTTIME09;;RESET TIMERhP‡PM0GYRO9;;& DIRECTION|P‰SLOWFIRE09;;& TRIGGER ‰BLOCKPLOT¤A¸T?Ì?;;VERTICALàQ„VACT9;;START POS.ôP‡PM0MOVE8;;OF SHIP P†PMPLOT Q‡PM0MOVE80 P†PMPLOTD &‡TSTORE0X $>l %>€ '…AUDC4;;TURN OFF SOUND” ‡ACTPLOTQ„SHIP9;;PLOT SHIP¨ P@†PMPLOT7¼ 2Ð 3ä )> ø H‡ACTPLOT ! $‡TSTORE0 !Q„HACT9;;HORIZONTAL4!P„HPM09;;START POS.H!P†HPOSP09;;OF SHIP\!Q>;;OPEN ACTIVEp!P‰PLAYGATE09;;GATE„! ‡NEXTACT2˜!(‡NUMPLAY;;± ÏÒ ² ÐÌÁÙÅÒÓ¬! F‡MOVEOBJÀ! !‡ACTLOOPÔ!‡MOVEOBJ$>è!%>ü!‡PMRIGHTQ‰PLAYGATE09;;CHECK"R>;;IF PLAYER$"FˆPMRIGHT1;;TURNED ON8" !ˆNEXTTURNL"ˆPMRIGHT1Q‰CTRLSTOP09;;CHECK`"R>;;IF TOt"F‰STICKREAD;;BYPASSˆ""‰CTRLSTOP09;;PLAYERœ"!ˆNEXTTURN;;CONTROL°" ‰STICKREADQ‰DIFSTEER19;;CHECKÄ"R>;;WHICH METHODØ"HŠSTICKREAD3;;OF CONTROLì" Q†STICK09#R>;;STICK PRESSED#HŠSTICKREAD2(#Q><#PˆPM0SPEED9P#ŠSTICKREAD4!ˆNEXTTURNd#ŠSTICKREAD2'‡TSTORE0x#?;;DO DIRECTŒ#Q‰STICKGYRO8;;CONTROL. # P‡PM0GYRO9´#Q>È#PˆPM0SPEED9Ü# %‡TSTORE0ð# !ˆNEXTTURN$ŠSTICKREAD3#ˆROTTIME09$QˆROTTIME09;;CHECK,$R>;;TIMER TO@$HˆSHIPFLIP;;SLOW DOWN SHIPT$Q>;;ROTATIONh$PˆROTTIME09|$Q†STICK09;;CHECK$M>;;IF SHIPS¤$H†PMLEFT;;ROTATED¸$Q>Ì$ P‡TURNDIRà$ †ROTATEô$†PMLEFTQ†STICK09%M>% HˆSHIPFLIP0%Q>ÿD% P‡TURNDIRX% †ROTATEl%ˆSHIPFLIPQ‰FLIPTIME09€%R>;;SLOW DOWN”%F†FLIPIT;;SHIP FLIP¨%"‰FLIPTIME09¼% !‡SPEEDUPÐ%†FLIPITQ†STICK09;;FLIPä%R> ;;SHIPSø% H‡SPEEDUP &Q‡PM0GYRO9;;GET FLIP & ?;;VECTOR4&QˆFLIPDATA8H& P‡PM0GYRO9\&Ap&T?„&?˜& ‡DOUBLE2;;DRAW FLIPPED¬& Q>(;;SHIPÀ&P‰FLIPTIME09Ô&‡SPEEDUPQ>;;MOVE SHIPè&PˆPM0SPEED9ü& Q†STICK09'M>$' HˆNEXTTURN8'Q>L'PˆPM0SPEED9`' ˆNEXTTURN2t'3ˆ'3œ'(>°' F†MOVEITÄ' !‡PMRIGHTØ'†MOVEIT$>ì'ˆMOVELOOPQ†STRIG09;;TRIGGER(R>;;PRESSED OR(H‡RAPSKIP;;RESET ?((P‰SLOWFIRE09<(‡RAPSKIPQˆPM0SPEED9;;CHECKP(R>;;IF SHIPd(F‰VECINSERT;;SHOULD MOVEx( !ˆNEXTMOVEŒ(‰VECINSERT%‡PM0GYRO9 ( '‡TSTORE2´( …HORIZ,È( Q„HPM09Ü( O…HMOVE8ð(P„HPM09;;HORIZ)P†HPOSP09;;MOVEMENT)R>7;;CHECK RANGE,)F‰HVECSHIFT@)R>ÁT) H†HVSKIPh)‰HVECSHIFT%‡PM0GYRO9;;INSERT|)Q‡HBOUNCE8;;BOUNCE)P‡PM0GYRO9;;VECTORS¤)Q>¸)PˆBOUMUSIC;;SOUNDÌ)Q‰DIFSTEER19à)R>ô)HŠHVECSHIFT2*Q>*P‰CTRLSTOP090*ŠHVECSHIFT2!‰VECINSERTD* †HVSKIPAX*T?l*>€*„VERT%‡TSTORE2”*,¨* Q‡PM0MOVE9¼* O…VMOVE8Ð* P‡PM0MOVE9ä*P†PMPLOT;;VERTICALø*Q‡PM0MOVE9;;MOVEMENT +P†PMPLOT +A4+V?H+>\+Q‡PM0GYRO9;;SET UP FORp+T?;;CORRECT„+T?;;SHIP IMAGE˜+T?;;ACCORDING¬+T?;;TO DIRECTIONÀ+ &‡TSTORE0Ô+>è+%>ü+ˆDRAWSHIPQ„SHIP9;;DRAW THE,P@†PMPLOT7;;SHIP$,28,3L,)> `, HˆDRAWSHIPt, $‡TSTORE0ˆ,Aœ,T?°,>Ä,Q‡PM0MOVE9;;CHECK FORØ,R‡VLIMIT19;;VERTICALì,F‰VVECSHIFT;;RANGE- R‡VLIMIT29- H†VVSKIP(-‰VVECSHIFTA<-V?P->d-%‡PM0GYRO9;;INSERTx-Q‡VBOUNCE8;;BOUNCEŒ-P‡PM0GYRO9;;VECTORS -Q>´- PˆBOUMUSICÈ-Q‰DIFSTEER19Ü-R>ð-HŠVVECSHIFT2.Q>.P‰CTRLSTOP09,.ŠVVECSHIFT2!‰VECINSERT@. †VVSKIPAT.V?h.>|. ˆNEXTMOVE2.(>¤.F‰PLAYERHIT¸. !ˆMOVELOOPÌ.‰PLAYERHIT%>à.$>ô.ˆPLAYLOOPQ Ð8;;CHECK/M> ;;IF SHIP/H‡HITPREP;;HIT GLOB0/QÐ8D/M>;;SHIP HITX/H‡HITPREP;;MINE ?l/ '‡TSTORE0€/ #‡TSTORE0”/Q Ð;;SHIP HIT¨/M‡TSTORE0;;FLY ?¼/ H‡HITPREPÐ/Q Ð;;(BOTH SIDES)ä/ M‡TSTORE0ø/ H‡HITPREP 0 !ˆHITRETRY 0‡HITPREPQ>;;DISABLE40P‰PLAYGATE08;;HIT SHIPH0PˆACTTIME08\0PˆPM0SPEED8;;& MOVEMENTp0P‰FLIPTIME08„0Q‰CTRLSTOP08˜0R>¬0 FˆPREPSKIP²0 Q‡HITVRF09´0R>¶0 FˆPREPSKIPÀ0<Ô0,è0 Q†SCMED09ü0O>1 P†SCMED09$1 Q…SCHI0981O>L1 P…SCHI09`1-d1Q>f1 P‡HITVRF09t1ˆPREPSKIPQ>–;;SET SHIPˆ1P‰APPDELAY08;;APPEAR DEL.œ1 Q‡COL1ALT°1PÈ;;BRIGHT BACK.Ä1;;;SUBTRACTØ1Q†LIVES08;;ONE LIFEì1S>2 P†LIVES082Q>;;ENABLE DESTROY(2PˆEXPMUSIC;;SUBROUTINE<2 '‡TSTORE1P2Cd2T?x2?Œ2 Q‡PM0MOVE8 2 P†PMPLOT´2Q‡PM0MOVE8È2P†PMPLOTÜ2%>ð2‡PLCLEARQ>3 P@†PMPLOT733,3)> @3 H‡PLCLEART3Q>h3 P†HITCLR|3 %‡TSTORE13 ˆHITRETRY3¤30¸3)>Ì3 F†FIRINGà3 !ˆPLAYLOOPô3†FIRING;ÍÉÓÓÉÌÅ ÆÉÒÉÎÇ4$>4ˆMISSLOOPQ‰PLAYGATE0904R>;;CHECK IFD4HˆNEXTFIRE;;SHIP GONEX4QˆMSTATUS09;;CHECKl4R>;;IF MISSILE IN€4HˆNEXTFIRE;;MOTION”4 Q‡RAPFIRE¨4R>;;RAPID FIRE ON ?¼4 HˆRAPPSKIPÐ4Q‰SLOWFIRE09;;CHECK IFä4R>;;BUTTON RELEASEDø4HˆNEXTFIRE;;BEFORE FIRING 5ˆRAPPSKIPQ†STRIG09 5R>;;BUTTON PRESSED45 HˆNEXTFIREH5P‰SLOWFIRE09;;PRESSED\5 Q‡PM0GYRO9p5PˆMIS0GYRO9„5?˜5,¬5 Q„HPM09À5…HFIREOˆHMISSILE8;;HSTARTÔ5 P„HMS09è5Aü5T?6>$6,86 Q‡PM0MOVE9L6 O†MALIGN9`6PˆMIS0MOVE9t6,ˆ6QˆMIS0MOVE9œ6…VFIREOˆVMISSILE8;;VSTART°6PˆMIS0MOVE9Ä6AØ6V?ì6>7Q>7PˆMSTATUS09(7P‰FIREMUSIC;;TURN ON NOISE<7 ˆNEXTFIRE2P7(>d7 HˆMISSLOOPx7$>Œ7‡MTRAVEL&‡TSTORE1 7$>´7‡ADVLOOPQˆMSTATUS09;;CHECKÈ7R>;;IF MISSILEÜ7F†VECADV;;FIREDð7 !‡NEXTINC8†VECADV%ˆMIS0GYRO98 '‡TSTORE2,8 „HADV,@8 Q„HMS09T8 O…HMOVE8h8 P„HMS09|8 P†HPOSM098A¤8?¸8T?Ì8>à8Q„HMS08;;CHECK IFô8R>8;;HORIZONTALY9F„VCAN;;OUT OF RANGE9R>Ç09 F„VCAND9„VADV%‡TSTORE2X9,l9QˆMIS0MOVE9€9 O…VMOVE8”9PˆMIS0MOVE9¨9 P†PMPLOT¼9QˆMIS0MOVE9Ð9P†PMPLOTä9%>ø9Q@†PMPLOT7;;PLOT ONE :M…MSAVE9;;MISSILE :P@†PMPLOT7;;WITHOUT4:3;;DISTURBINGH:Q@†PMPLOT7;;THE OTHER\: M…MSAVE9p:,„: O†MSHAPE9˜: P@†PMPLOT7¬:3À: Q@†PMPLOT7Ô: M…MSAVE9è: P@†PMPLOT7ü:QˆMIS0MOVE9;;CHECK IF;R>—;;VERTICALLY$;F„VCAN;;OUT OF8;R>ê;;RANGEL; H†MVCONT`;„VCAN †MISDEL;;GO TOt; A;;CLEARˆ;V?;;MISSILEœ;>;;SUBROUTINE°;Q>Ä;PˆMSTATUS09Ø; !‡NEXTINCì;†MVCONTA;;CHECK IF<V?;;MISSILE IN<>;;HORIZONTAL(<Q„HMS09;;RANGE OF GLOB<< R„HPM2P< DˆDESTSKIPd<,x< Q„HPM2Œ<O> < R„HMS09´< DˆDESTSKIPÈ< Q„HMS09Ü< R„HPM3ð< DˆGDESLEFT=!‰GDESRIGHT=ˆDESTSKIP!‡NEXTINC,= ˆGDESLEFT;@= Q„HMS09T= S„HPM2h=V?|=?= A;;LEFT¤=T?;;MISSILE¸= >;;MEMORYÌ=;;;ALIGNMENTà=QˆMIS0MOVE9ô=S>> P†PMPLOT>!‰GDESTRUCT0>‰GDESRIGHT;D> Q„HMS09X> S„HPM3l>V?€>?”> A;;RIGHT¨>T?;;MISSILE¼> >;;MEMORYÐ>,;;ALAIGNMENTä>QˆMIS0MOVE9ø>O> ? P†PMPLOT ?‰GDESTRUCTQ‡PM3MOVE4?P†PMPLOTH? &‡TSTORE2\?$>p? Q@†PMPLOT6„? M‡BITMASK8˜?H‰GLOBCHUNK¬? $‡TSTORE2À? A;;MISSILEÔ?V?;;VERTICALLYè?>;;IN RANGE OFü?!‡NEXTINC;;GLOB@‰GLOBCHUNKQ@†PMPLOT6$@ M‡SCRATCH88@ P@†PMPLOT6L@ $‡TSTORE2`@;t@QˆMIS0MOVE9ˆ@ S‡PM3MOVEœ@,°@O>Ä@?Ø@Q@‡PM2MOVE7ì@ P…FRAG18AQ@‡PM3MOVE7A P…FRAG28(A †MISDEL;;CAN MISSILExAQ>ŒAPˆMSTATUS09 A<;;GIVE CREDIT´A ,;;± ÐÏÉÎÔÈA Q…SCLO09ÜAO>ðA P…SCLO09B Q†SCMED09BO>,B P†SCMED09@B Q…SCHI09TBO>hB P…SCHI09|B-B%>;;ÃÅÎÔÅÒ ÏÆ ÇÌÏ ÈÉÔ ¿¤B‰GLOBCLEARQ…FRAG1 8¸BM†LCLEAR8;;CHECK IF ANYÌBF‡GOCLEAR;;RIGHT ANDàBQ…FRAG2 8;;LEFT CENTERôBM†RCLEAR8;;BIT IS GONEC H‡CLRNEXTC‡GOCLEARQ>;;TURN OFF GLOB0C PˆGLOBGATEDCP‰PLAYGATE0;;TURN OFFXCP‰PLAYGATE1;;BOTH SHIPSlCPˆPM0SPEED;;TURN OFF SHIP€CPˆPM1SPEED;;MOVEMENT”CPˆMSTATUS0;;TURN OFF¨CPˆMSTATUS1;;ALL MISSILES¼CP…AUDC4;;TURN OFFÐCP…AUDC3;;SOUNDSäC P…AUDC2øC P…AUDC1 D<;;GIVE CREDIT D,;;µ°° ÐÏÉÎÔÓ4D Q†SCMED09HDO>\D P†SCMED09pD Q…SCHI09„DO>˜D P…SCHI09¬D-ÀD$>ÔD †MISDEL;;CLEAR ALLèD$>;;MISSILESüD †MISDELE!„EXIT;;LEAVE VBLANK$E ‡CLRNEXT38E)>LEH‰GLOBCLEAR`E ‡NEXTINC2tE(>ˆE F‡PCOLIDEœE !‡ADVLOOP°E‡PCOLIDE$>ÄE%>ØE†PCLOOPQÐ9;;CHECKìEM>;;IF MISSILEFFƒPCO;;HIT MINESF &‡TSTORE3(F$>´FHŠGLOBREPLOTÈF $‡TSTORE3ÜFQ>ðF PˆEXPMUSICG !ˆMLLCLEARGƒPCOQÐ9;;CHECK IF,GMˆPCOLDATA9;;MISSILE@GFˆPCOLSKIP;;HIT OTHERTGQ>;;PLAYERhGPˆPM0SPEED8|GPˆBOUMUSIC;;SOUNDGQ>¤GP‰CTRLSTOP08¸GQˆMIS0GYRO9;;BOUNCEÌGP‡PM0GYRO8;;SHIP INàGˆMLLCLEARQ>;;DIRECTIONôGPˆMSTATUS09;;OF MISSILEöGQ>øG P‡HITVRF090H '‡TSTORE0DHAXHT?lH>€H †MISDEL;;CLEAR MISSILE”HQ>¨H P†HITCLR¼HAÐHV?äH>øH %‡TSTORE0 I ˆPCOLSKIP1 I24I(>HI H†PCLOOP\I $‡TSTORE1pI2„I(>˜IF‰EXPLOSION¬I !‡MTRAVELÀI‰EXPLOSIONQˆEXPMUSIC;;CHECKÔIR>;;IF SOUNDèIFˆEXPBEGIN;;SHOULD STARTüIQ‰SOUNDACT1;;CHECK IFJR>;;SOUND GOING$J F†NOISE18J !ˆMISNOISELJˆEXPBEGINQ>`JPˆEXPMUSIC;;RESET &tJQ>;;ENABLE AUTOˆJP‰SOUNDACT1;;CONTROLœJQ>°JP…SKCTL;;INIT POKEYÄJQ>ØJP†AUDCTL;;SET SO. CTRLìJQ>/KP…AUDC1;;SET VOL.& DIST.KQ>(KP…NOTE1;;START V1 SHADOW4;;CHECK IFŒKHˆMISNOISE;;DONE KQ>´KP…AUDF1;;TURN OFFÈKP…AUDC1;;SOUNDÜKP‰SOUNDACT1ðKˆMISNOISEQ‰FIREMUSICLR>LF‰FIREBEGIN;;SEE,LQ‰SOUNDACT2;;EXPLOSION@LR>;;FOR INFOTL F†NOISE2hL !ˆBOUNOISE|L‰FIREBEGINQ>LP‰FIREMUSIC¤LQ>¸LP‰SOUNDACT2ÌLQ>àL P…SKCTLôLQ>M P†AUDCTLMQ>‡0M P…AUDC2DMQ>ÿXM P…NOTE2lM†NOISE2#…NOTE2€M Q…NOTE2”M P…NOTE2¨M P…AUDF2¼MR>ÐM HˆBOUNOISEäMQ>øM P…AUDC2 N P…AUDF2 NP‰SOUNDACT24NˆBOUNOISEQˆBOUMUSICHNR>\N FˆBOUBEGINpNQ‰SOUNDACT3„NR>˜N F†NOISE3¬N !„EXITÀNˆBOUBEGINQ>ÔN PˆBOUMUSICèNQ>üNP‰SOUNDACT3OQ>$O P…SKCTL8OQ>LO P†AUDCTL`O Q†RANDOMtOM>ˆO,œOO> °O P…NOTE3ÄOQ>ØO P„VOL3ìO†NOISE3"„VOL3P "„VOL3P,(P Q„VOL3 PP P…AUDC3dP Q„VOL3xPT?ŒPT? P,´P O…NOTE3ÈP P…AUDF3ÜP Q„VOL3ðPR>ÿQ H„EXITQQ>,Q P…AUDC3@Q P…AUDF3TQP‰SOUNDACT3hQ„EXIT$>;;UPDATE|Q ‰FEEDTRANS;;SCORESQ$>¤Q ‰FEEDTRANS¸Q …EXIT27ÌQ?àQ7ôQ>R7R !†RETURN0R†ROTATE;ÓÈÉРÒÏÔÁÔÉÏÎDR,XR Q‡PM0GYRO9lR O‡TURNDIR€R P‡PM0GYRO9”RR>¨R H‡DOUBLE1¼RQ>ÐR P‡PM0GYRO9äR‡DOUBLE1R>ÿøR H‡DOUBLE2 SQ> S P‡PM0GYRO94S‡DOUBLE2Q‡PM0GYRO9HST?\ST?pST?„ST?˜S P‡PMINDEX¬S &‡TSTORE0ÀS Q‡PM0MOVE8ÔS P†PMPLOTèSQ‡PM0MOVE8üSP†PMPLOTT '‡TSTORE1$T Q‡PMINDEX8T>LT%>`TˆPLOTLOOPQ„SHIP9tT P@†PMPLOT7ˆT2œT3°T)> ÄT HˆPLOTLOOPØT $‡TSTORE0ìT %‡TSTORE1U:U†MISDELQˆMIS0MOVE9;;CLEAR(UP†PMPLOT;;MISSILExU‡CLEARITQ@†PMPLOT7ŒU M…MSAVE9 U P@†PMPLOT7´U3ÈU)>ÜU H‡CLEARITðU:V ‰BLOCKPLOT;ÓÈÉРÓÔÁÒÔ ÄÅÓÉÇÎVA,VT?@V?TVQˆPM0BLOCK8hV P†PMPLOT|VQˆPM0BLOCK8VP†PMPLOT¤VQ>†¸V P…AUDC4ÌVQˆACTTIME09àVM>ªôV P‡TSTORE1WQˆACTTIME09WN>ÿ0WV?DWV?XW P…AUDF4lW &‡TSTORE0€W$>”WŠBLOCKLOOP1%>¨WŠBLOCKLOOP2Q‡TSTORE1¼W P@†PMPLOT7ÐW3äW)>øWHŠBLOCKLOOP2 X, X Q†PMPLOT4XO>PHX P†PMPLOT\XQ†PMPLOTpXO>„XP†PMPLOT˜X2¬X(>ÀXHŠBLOCKLOOP1ÔX $‡TSTORE0èX:üX!…HMOVE =====ÿ=ÿ=ÿY!…VMOVE ÿ=ÿ======ÿ$Y‡VLIMIT1 ==–=8Y‡VLIMIT2 d==ä=LY„HACT :=¾`Y„VACT a=átY#‡HBOUNCE =======ˆY#‡VBOUNCE =======œY$ˆHMISSILE =======°Y$ˆVMISSILE =======ÄY†MSHAPE ===ØY†MALIGN €===ìY…MSAVE ü==ó=ZˆPCOLDATA =Z$ˆHITTHROW =======(Z$ˆFLIPDATA =======‹D:GLOB2.ASM