þþ®IdX;THE ELECTROIDSeX;PROGRAMMED BY JAMES HAGUEf X;(C) 1984gX;CREATED WITH MAC/65 BY OSShX;iX;Filename- #D:ELECTRO.M65jX;kFlEImX;nX;HARDWARE REGISTERSoX;------------------p†RANDOM Ò;;Random #'sq†GRACTLÐ;;Graphic controlr…AUDC1Ò;;Audio controlss …AUDC2Òt …AUDC3Òu …AUDC4Òv…AUDF1Ò;;Audio frequencyw …AUDF2Òx …AUDF3Òy …AUDF4Òz†HPOSP0Ð;;Play. 0 horiz.{†HPOSP1Ð;;Play. 1 horiz.|„P0PFÐ;;P0 to PF coll.}„P0PLÐ;;P0 to PL coll.~„P1PFÐ;;P1 to PF coll.„P1PL Ð;;P1 to PL coll.€†HITCLRÐ;;Collision clear†CONSOLÐ;;Console buttons‚…NMIENÔ;;Interrupt enab.ƒ…WSYNC Ô;;Wait for sync.„…COLP1Ð;;P1 color…X;†X;SHADOW REGISTERS‡X;----------------ˆ‡SDMACTL/;;DMA control‰…STICKx;;Joystick 0Š„TRIG„;;Trigger 0‹…COLBKÈ;;Back. colorŒ„COL0Ä;;Color regs. „COL1ÅŽ „COL2Æ „COL3Ç…PCOL0À;;Player colors‘ …PCOL1Á’…CHBASô;;Character base“†DLISTL0;;DL address”†VDSLST;;DLI address•…CLOCK;;Jiffy clock–X;—X;SYSTEM ROUTINES˜X;---------------™†SETVBV\ä;;Set VBIš†XITVBIbä;;Exit VBI›X;œX;GAME LOCATIONS (PAGE 0)X;--------------ž€Ÿ…SCORE ;;Score †SCOADD ;;Point values¡†BLEVEL ;;Binary level #¢…LEVEL ;;Level #£†ENERGY ;;Energy¤…ENSUB ;;Energy subtract¥…JANIM ;;Jewel "¦…JTIME ;;Animation timer§†GAMCTL ;;Game control¨†P0YPOS ;;Pl0 y position©†P0XPOS ;;Pl0 x "ªƒDIE ;;Death flag«„TEMP ;;Work area¬†ENXPOS ;;Enemy x pos.­†ENYPOS ;; " y "®†ENXADD ;;Enemy x add¯†ENYADD ;; " y "°†ENSTAT ;;Enemy status±…ENDIE ;;Enemy die flags² †ENDOWN ;;Enem Down flags³…TOTAL ;;# of enemy´ƒDOW ;;Down flagµ‚UP ;;Up flag¶„WAIT ;;Delay·†PLAYER  ;;Player image¸†JEWELS ;;# of jewels¹„DSND ;;Drain soundº…DSND1 ;;More drain snd»„BSND ;;Bounce sound¼…PANIM ;;Player pointer½…PTIME ;;Animation timer¾‚LO ;;Lo byte storage¿‚HI ;;Hi byte storageÀX;ÁX;RESERVED MEMORYÂX;---------------Ã…CHSET ;;Character setÄ‚PM ;;PM graphicsŃPL0‚PM;;PlayersƃPL1‚PMǃPL2‚PMȃPL3‚PMÉ„DISP";;DisplayÊX;Ë4;;StartÌX;Í eä;;Init soundsÎX;ÏX;MOVE CHARACTER SETÐX;------------------цNEWGAM$>Ò ƒMOVQà9Ó P…CHSET9ÔQÿà9ÕP…CHSETÿ9Ö2×HƒMOVØX;ÙQ>5…CHSET;;Install setÚ P…CHBASÛX;Ü…REDEFQ…CHARS9;;Alter setÝ P…CHSET9Þ2ß(>0à H…REDEFá !„INITâX;ã…CHARS;Character dataä =======å =$=B===B=$æ =ÿ=»=»=î=îç ÿ===|=8=|=8è |=8=|=8===é ==<=~=ÿ===ê ÿ=ÿ=ÿ=ÿ=ÿëX;ìX;DLIíX;---îƒDLI5;;Save A registerïQ>ðP…WSYNC;;Wait for sync.ñP…COLP1;;Zero pm colorsò P…COLP1ó P…COLP1ô7;;Restore Aõ9öX;÷X;INITIALIZEøX;----------ù„INIT …PMCLR;;Clear playersúQ>;;Turn offûP†GAMCTL;;Game controlü †SNDOFF;;No soundý …TSCRN;;Title screenþ…PRESSQ†RANDOM;;Flash titleÿPÐQ†CONSOL;;Start keyR>;;pressed?F…START;;No, waitQ„TRIG;;Trigger press?H…PRESS;;NoX;…STARTQ>P;;InitializeP†ENERGY;;Game variablesQ>;;That are only P…LEVEL;;Set once per P†BLEVEL;;Game  P†GAMCTL  P…SCORE  P…SCORE P…SCOREP†HITCLR;;Exceptions P„DSND P…DSND1 P„BSND †SNDOFF;;Sound offX;%>„;;Set player pos '†P0YPOSQ>s P†P0XPOS P†HPOSP0$>;;Draw player„LOADQ†PL0DAT9 PƒPL08 P†PLAYER932 (> ! H„LOAD"X;#$>5ƒVBI;;Turn on VBI$ %>4ƒVBI%Q>& †SETVBV;;Set VBI'X;(X;NEW LEVEL)X;---------*†NEWLEVQ>;;Initialize new+P†SCOADD;;Level, P…JANIM- P…JTIME. P†GAMCTL/PƒDOW0 P…ENSUB1 P„DSND2 P…DSND13 P„BSND4 P†HITCLR5 P…PTIME6 P…PANIM7 "†P0YPOS8X;9X;INCREMENT LEVEL:X;---------------;<<Q…LEVEL;;Get level #=,>O>;;Raise it? P…LEVEL@-A$†BLEVEL;;Binary levelB(> ;;Too high?CF‚GO;;Yes, leave itD2;;Raise blevelE&†BLEVEL;;Level is indexFQ„ENEM9;;# of enemyG P…TOTALHQƒDEL9;;Time delayI P„WAITJQ>;;Time delayK P„WAITLQƒJWS9;;# of jewelsM P†JEWELSNQƒPTS9;;Point valuesO P†SCOADDP!‚GO;;ContinueQX;RX;DISPLAY LISTSX;------------T‚DL p=p=p=FU „DISPV$ ==========W! =========X =‚=AY ‚DLZX;[‚GOQ>4‚DL;;Install dlist\ P†DLISTL] Q>5‚DL^P†DLISTL_X;`Q>4ƒDLI;;Set up DLIa P†VDSLSTb Q>5ƒDLIcP†VDSLSTdQ>Àe P…NMIENfX;gQ>;;Color 0 ishP„COL0;;GoldiQ>Ê;;Color 1 isjP„COL1;;GreenkQ>$;;Color 2 islP„COL2;;RedmQ>8nP„COL3;;So is color 3oX;pX;CLEAR SCREENqX;------------r$>sAtƒCLRP„DISP9u P„DISPù9v2w(>úxHƒCLRyX;zX;DRAW SCREEN{X;-----------|$>}BQ…BOARD9;;Get lo byte~P‚LO2€Q…BOARD9;;Get hi byteP‚HI‚2ƒQ…BOARD9;;Get length„ P„TEMP…2†Q…BOARD9;;Get color‡%>ˆCP@‚LO7;;Show byte‰3Š)„TEMP;;Done?‹ HC;;No.Œ2(>,;;Board done?Ž HB;;No. !„MOREX;‘X;SCREEN DATA’X;-----------“…BOARD 3="==” >="==• ~="==– ®="==— Ë="==˜ =#==™ =#==š U=#==› u=#==œ ¤=#== ¸=#==…žX;Ÿ†JWLDAT;Jewel data  ™=›=—=“=a=Ÿ¡ e=‘=¡=’= ¢ ˜=š=…£X;¤„INFO;Info line¥ ====3=#=/=2=%¦! ========%=.§ %=2='=9====¨ ,=%=6=%=,===© ====ªX;«X;PLACE JEWELS¬X;------------­ „MOREQ>® P„TEMP¯ ƒPUT$„TEMP°Q†JWLDAT9;;Get j pos.±>²Q>A;;Jewel color³P#9;;Show the jewel´ #„TEMPµ Q„TEMP¶ R†JEWELS·HƒPUT¸X;¹X;SHOW INFO LINEºX;--------------»$>'¼ƒSHOQ„INFO9;;Get info byte½P„DISPÌ9;;And show it.¾0¿IƒSHO;;Finish showing.À …SHOEN;;Show energyÁ †SHOLEV;;Show level †SHOSCO;;Show scoreÃX;ÄX;P/M SET-UPÅX;----------ÆQ>5‚PM;;Tell where p/mÇPÔ;;Area is.ÈQ>;;Turn on p/mÉP†GRACTL;;Graphics.ÊQ>>;;Give singleËP‡SDMACTL;;Line res.Ì …PMCLR;;Clear playersÍX;ÎQ>È;;Pl0 isÏP…PCOL0;;GreenÐX;Ñ$>;;Get randomÒ ƒRAN †RANPOS;;Enemy positionsÓ0ÔIƒRAN;;Finish themÕX;ÖQ>;;Zero sounds× P„BSNDØ P„DSNDÙ P…DSND1Ú P†HITCLRÛX;Ü †DRAWEN;;Draw enemyÝQ>;;Turn onÞP†GAMCTL;;Game control.ßX;àX;START LEVELáX;-----------â$>;;Show pre-levelã‚SLQ…INTRO9;;Messageä P„DISPá9å0æI‚SLç%>xè …PAUSE;;Pauseé$>;;Erase messageêQ>ëƒSL1P„DISPá9ì0íIƒSL1îX;ï „ELEC;;Draw electrodesðX;ñX;MAIN LOOPòX;---------ó„MAIN †ENMOVE;;Move enemyô …DRAIN;;Drain energyõ †KILLEN;;Kill enemyöQ†CONSOL;;Start pressed?÷R>ø HM;;Noù!…START;;Yes, start gameúMQ…TOTAL;;Level over?û H‚M1;;Noü!†ENDLEV;;Yes, end levelý‚M1Q†ENERGY;;Any energy?þH„MAIN;;Yesÿ!†GAMOVR;;No, the endX;†PL0DAT;Player 0 data |=þ=’=’=Ú þ=|=(=(=(=l l==|=þ=’=’ Ú=þ=|=(=(=l l===|=þ=’ ’=Ú=þ=|=(=l l==|=þ=’=’  Ú=þ=|=(=(=l  l X; …ENEMY;Enemy data  ==8=|=T=Ö þ=Æ=|=X;†JIMAGE;Jewel images =$=B===B=$  ==$=B=B=$== ===$=$=== ==$=B=B=$==…INTRO;Intro message @=A‰GET READYAX;X;CLEAR PLAYERSX;------------- …PMCLRQ>> ƒCLEPƒPL09 PƒPL19 PƒPL29  PƒPL39!2"HƒCLE#:$X;%X;RANDOM ENEMY STATUS&X;-------------------' †RANPOSQ†RANDOM;;Get random #(M>;;Mask high bit,),;;And add 65*O>A;;to x position+P†ENXPOS9;;And store., P†HPOSP19-Q†RANDOM;;Now do y pos.. M>;;< 16/P†ENYPOS9;;And store.0Q>Ø;;Set color to1P…PCOL19;;Green.2Q>;;Set down-flag3P†ENDOWN9;;And init. #'S4P†ENYADD9;;To add.5Q>6 P†ENXADD97:8X;9X;DRAW ENEMY:X;----------;†DRAWEN%†ENYPOS;;Draw 1st.<$>=ƒDR1Q…ENEMY9> PƒPL18?3@2A(> BHƒDR1CX;D%†ENYPOS;;Draw 2nd.E$>FƒDR2Q…ENEMY9G PƒPL28H3I2J(> KHƒDR2LX;M%†ENYPOS;;Draw 3rd.N$>OƒDR3Q…ENEMY9P PƒPL38Q3R2S(> THƒDR3U:VX;WX;SOUND OFFXX;---------Y†SNDOFFQ>Z P…AUDF1[ P…AUDF2\ P…AUDF3] P…AUDF4^ P…AUDC1_ P…AUDC2` P…AUDC3a P…AUDC4b:cX;dX;VBIeX;---fƒVBIQ†GAMCTL;;Do this VBI?gH…DOVBI;;Yes, do the VBIh!„EXIT;;No, leave now.iX;j…DOVBIQ>;;No attract modekPMlX;m#…JTIME;;Time to animaten $…JTIMEo(>p H„NOAN;;Noq$>r &…JTIMEs „ANIM;;Animate jewelstX;u$„COL3;;Flash electrodev0w(>0x H…COLCHy$>;;Jewels hit?}†JWLHITQ„P1PF9;;Get colls~M>;;With jewelsF…NOHIT;;No coll leave€Q>;;Yes, set allP†HPOSP19;;Enemy status‚P†ENXADD9;;to 0ƒ P†ENXPOS9„Q…ENSUB;;Set energy… <;;Drain†,‡ O>;;To 5ˆ-‰ P…ENSUBŠQ>Š;;Set drain‹P…AUDC1;;SoundŒQ>2 P„DSNDŽ …NOHIT2(>;;Done with 3?H†JWLHIT;;No‘X;’$>;;Check for dead“…CHKILQ„P1PL9;;Enemy”M>•F†NOTDED;;Still alive– Q†ENYADD9—R>ÿ˜ F†NOTDED™Q†ENDOWN9;;Enemy falling?šH†KILLED;;Yes, kill it›<;;No,drain energyœ Q…ENSUB,žO>Ÿ P…ENSUB -¡Q>¢P…DSND1;;Set drain sound£ !†NOTDED¤†KILLEDQ>;;Kill enemy by¥P…ENDIE9;;Death flag=1¦Q>;;Set bounce§P„BSND;;Sound¨ †NOTDED0© I…CHKILªX;«Q„P0PF;;Player hit any¬M>;;Obstacles?­F…NOWAY;;No® <;;Yes¯ Q…ENSUB°,±O>²-³ P…ENSUB´Q>µ P…DSND1¶ …NOWAY·X;¸ X;SOUND¹ X;-----º$„DSND;;Do drain sound?»F†MORSND;;No¼0½ F…DROFF¾ &„DSND¿ &…AUDF1À Q†RANDOMÁ P„COL1 !†MORSNDà …DROFF$>Ä &„DSNDÅ &…AUDF1Æ &…AUDC1ÇQ>ÊÈ P„COL1ÉX;ʆMORSNDQ…DSND1;;Do 2nd drainËFƒOFF;;Sound? NoÌ Q>È;;YesÍ P…AUDC2Î Q†RANDOMÏM>Ð,ÑO>+Ò P…AUDF2ÓQ>Ô P…DSND1Õ !„MOR1ÖƒOFFP…AUDC2× P…AUDF2ØX;Ù„MOR1Q„BSND;;Do bounce soundÚ F„MOR2;;NoÛ;ÜS>Ý F„BOFFÞ P„BSNDß,àO> á P…AUDC3â Q†RANDOMãM>ä,åO><æ P…AUDF3ç !„MOR2è„BOFFP„BSNDé P…AUDF3ê P…AUDC3ëX;ìX;ERASE PLAYERíX;------------î „MOR2%†P0YPOS;;1st: erase pl0ï$> ðQ>ñ‚ERPƒPL08;;Put 0 in pl0ò3ó0ôI‚ER;;Finish erasingõX;öX;HORIZ. MOVEMENT÷X;---------------øQ…STICK;;Get stickùR> ;;Left?úFƒLEF;;Yes, go left.ûR>;;Right?üFƒRIG;;Yes, go right.ý!„VERT;;Go do verticalþX;ÿƒLEF$†P0XPOS;;Get x pos.0;;Subtract 1(>+;;On screen?HL;;Yes, move.$>Ê;;No, change it.L&†P0XPOS;;Store new pos. &†HPOSP0!„VERT;;Do vertical.X;ƒRIG$†P0XPOS;;Get x pos.  2;;Add 1 (>Ë;;On screen? HR;;Yes, move. $>,;;No, change it. R&†P0XPOS;;Store new pos. &†HPOSP0X;X;VERTICAL MOVEMENTX;-----------------„VERTQƒDOW;;Get downflagH†CHKMOR;;Go check more.Q„TRIG;;Get triggerF„GOUP;;Go up.Q>;;Clear 'up' flagP‚UP†CHKMOR †HITLED;;Check hits.QƒDOW;;Get downflagH„DOWN;;If set, go down!„CONT;;Continue.X; „DOWN#†P0YPOS;;Move pl0 down.!„CONT;;Redraw pl0X; „GOUPQ>;;Set 'up' flag!P‚UP" Q†P0YPOS#R>;;Does y=30?$HƒGUP;;No, go up.%Q>;;Yes, set the&PƒDOW;;Down flag.'!„DOWN;;Move down(ƒGUP"†P0YPOS;;Move pl0 up.)X;*„CONT „PLAN;;Animate player+X;,X;REDRAW PLAYER-X;-------------.%†P0YPOS;;Redraw player/$>;;In its new pos.0ƒREDQ†PLAYER9;;Get byte1PƒPL08;;Show it23324(> ;;Done?5HƒRED;;No, go back.6!ƒOUT7X;8„EXIT †SNDOFF9ƒOUTQ>;;Clear all:P†HITCLR;;Collisions;!†XITVBI;;Leave.<X;=X;CHECK PLAYER STATUS>X;-------------------?†HITLED$>@Q„P0PF;;Any collisionsAM>;;With ledges?BH†YESCOL;;Yes, check it.CƒLD1Q>;;Down flag=1 forDPƒDOW;;No collision.E :;;Leave.FG!†YESCOLQ†P0XPOS;;Where is pl0?HR>‰;;<137?ID…LHALF;;Yes, do left.JX;K …RHALFQ…RSIDE9;;No, do right.LR†P0YPOS;;Is pl0 there?MH„RMOR;;No, check more.NƒLD0Q>;;Yes, downflag=0OPƒDOW;;For a collsion.P :;;Return.Q „RMOR2R(>;;All done?SH…RHALF;;No, finish it.T!ƒLD1;;Downflag =1UX;V…LHALFQ…LSIDE9;;Repeat forWR†P0YPOS;;Left side.X H„LMORY!ƒLD0;;Downflag=0ZX;[ „LMOR2\(>;;Done?]H…LHALF;;No, finish it.^ !ƒLD1;;Yes_X;`…RSIDE;Right side dataa %=U=}=¥=½b…LSIDE;Left side datac -=E=e=…==½dX;eX;ENEMY HANDLERfX;-------------g †ENMOVEhX;i$>;;Set enemy colorj†CHKCOLQ†ENDOWN9;;Falling?kHƒGRN;;Yes, greenlQ>6;;No, redm P…PCOL19n !†MORCOLoƒGRNQ>Ø;;Greenp P…PCOL19q †MORCOL2r(>s H†CHKCOLtX;uQ„WAIT;;Get 1st timervFƒTWO;;If 0, move.w"„WAIT;;Decrement timex:;;And return.yƒTWOQ„WAIT;;Reset timerz P„WAIT{Q„WAIT;;Get 2nd timer|F„MOVE;;If 0, move}"„WAIT;;Decrement time~:;;And return.„MOVEQ„WAIT;;Reset timer€ P„WAITX;‚$>;;Check enemyƒ…CHKENQ†ENDOWN9;;Falling?„H„FALL;;Yes, fall…!…HORIZ;;No, don't fall†„FALL …ENHIT;;Update status‡Q†ENDOWN9;;Still falling?ˆH„NEXT;;Yes, keep going‰Q†RANDOM;;No, get ran #ŠM>;;Mask LSB‹F„MOVL;;=0? Yes leftŒQ> P†ENYADD9ŽQ> P†ENXADD9 !„NEXT‘„MOVLP†ENYADD9’Q>ÿ“ P†ENXADD9”…HORIZ …ENHIT;;Update status•Q†ENDOWN9;;On ledge?–F„NEXT;;Yes, stay—„NOT0Q†RANDOM;;Get random #˜M>;;Only #'s 1-3™F„NOT0;;Can't be 0š R>;;=1›F„DIR1;;Yes, dir=1œ R>;;=2F„DIR2;;Yes, dir=2žQ>;;Dir=3Ÿ P†ENYADD9  P†ENXADD9¡ !„NEXT¢ „DIR1Q>£ P†ENYADD9¤Q>¥ P†ENXADD9¦ !„NEXT§ „DIR2Q>¨ P†ENYADD9©Q>ÿª P†ENXADD9«„NEXT¬2­(>;;Done?®H…CHKEN;;No, go back¯X;°$>;;Get new pos.±ƒADDQ†ENXPOS9;;Get x pos.²,;;And add number³O†ENXADD9;;To position´R>(;;Too far left?µ H„NOTL;;No¶Q>×;;Yes change pos·!…STORE;;And store¸„NOTLR>Ø;;Too far right?¹H…STORE;;NoºQ>);;Yes, change» …STOREP†ENXPOS9;;And store it¼ P†HPOSP19½Q†ENYPOS9;;Now repeat for¾,;;Y position.¿ O†ENYADD9ÀR>ð;;Too far down?ÁH„NOPE;;Nope. †RANPOS;;Yup, new pos.à "…TOTALÄ„NOPEP†ENYPOS9Å2Æ(>;;All 3 done?ÇHƒADD;;No, finsih.È!†DRAWEN;;Redraw enemyÉX;Ê…ENHIT%>;;Zero index˃CHKQƒLEV8;;Get a levelÌR†ENYPOS9;;Enemy here?ÍHƒNEX;;No, do nextÎQ†ENXPOS9;;Yes, get x posÏ RƒLOW8ÐDƒNEX;;Less than?Ñ RƒHIG8ÒEƒNEX;;Greater than?ÓQ>Ô P†ENDOWN9Õ :;;ReturnÖƒNEX3×)> ØHƒCHKÙQ>Ú P†ENDOWN9Û :;;ReturnÜX;݃LEV /=G=g=‡=ŸÞ '=W==§=¿ßƒLOW 9=Y=A=a=1==™à ™=‘=)áƒHIG Y=‰=q=‰=a=¹â Á=¹=Á=ÑãX;äX;SHOW 1 BCDåX;----------æ†SHOBCDP„TEMPçV?èV?éV?êV?ëL>ìP„DISPÌ8í3î Q„TEMPïM>ðL>ñP„DISPÌ8ò:óX;ôX;SHOW SCOREõX;----------ö†SHOSCO$>÷%> ø„SHOWQ…SCORE9ù †SHOBCDú3û0ü I„SHOWý:þX;ÿX;SHOW ENERGYX;-----------…SHOENQ†ENERGY%> !†SHOBCDX;X;SHOW LEVELX;----------†SHOLEVQ…LEVEL%>!  !†SHOBCD X; X;DRAIN ENERGY X;------------ …DRAINQ…ENSUB;;Drain energyHƒDRA;;No drain:ƒDRAQ†ENERGY<;;Decimal mode;;;Subtract #S…ENSUB;;From energy- P†ENERGYR>€;;No energy?D„SOME;;Some energy Q>;;None P†ENERGY „SOMEQ> P…ENSUB!…SHOEN;;Show energyX;X;KILL ENEMYX;---------- †KILLEN$>;;Kill any dead!„KILLQ…ENDIE9;;Enemy"F†NOKILL;;Enemy is alive#Q>;;Enemy is dead$ P…ENDIE9%Q>ÿ;;Move enemy&P†ENYADD9;;Backwards' †NEWSCO;;Update score( †NOKILL0) I„KILL*:+X;,†NEWSCOQ†SCOADD-<.,/ O…SCORE0 P…SCORE1Q>2 O…SCORE3 P…SCORE4Q>5 O…SCORE6 P…SCORE7-8 !†SHOSCO9X;:X;JEWEL ANIMATOR;X;--------------<„ANIMQ…JANIM;;Get timer=,>O>?R> @H‚ANAQ>B ‚ANP…JANIMC?D$>EƒAN1Q†JIMAGE8FP…CHSET9G3H2I(>JHƒAN1K:LX;MX;ANIMATE PLAYERNX;--------------O„PLANQƒDOW;;Falling?PH„GONE;;Yes, be goneQQ‚UP;;Jumping?RH„GONE;;Yes, be goneS #…PTIMETQ…PTIME;;Get timerUR>;;Is it time?VH„GONE;;No, be goneWQ>;;Yes, resetX P…PTIMEYQ…PANIM;;Get pointerZ,;;Point to next[O> ;;image\R>0;;Last one?]H‚PA;;Nope.^Q>;;Yup, reset_ ‚PAP…PANIM`?;;Copy new imagea$>bƒPA1Q†PL0DAT8c P†PLAYER9d3e2f(> gHƒPA1h„GONE:;;Get outta here!iX;jX;TIME DELAYkX;----------l…PAUSEQ>;;Zero the clockm P…CLOCKn'„TEMP;;Save timeoPQ…CLOCK;;Get timepR„TEMP;;Time up?qF‚P1rQ†CONSOL;;Start pressed?sR>tHPu !…STARTv‚P1:wX;xX;END LEVELyX;---------z†ENDLEV †SNDOFF;;No sounds{Q>;;Remove enemy|P†HPOSP0;;From screen}P†HPOSP0~P†HPOSP0$> ;;Show "LEVEL€‚ELQ„LCOM9;;COMPLETE"P„DISPß9;;Message‚0ƒI‚EL„%> ;;Now do end of…Q>¨;;Level effects† P…AUDC1‡…FLASHQ>i;;1st flashˆ P…AUDF1‰Q>†Š P„COL0‹ …PAUSE;;And waitŒQ>s;;2nd flash P…AUDF1ŽQ> P„COL0 …PAUSE;;And wait‘Q†ENERGY;;Any energy?’ F†GAMOVR“1” H…FLASH• †SNDOFF;;No sound–X;—$> ;;Print "BONUS˜„SHOBQ„BMSG9;;ENERGY"™ P„DISPß9š0› I„SHOBœ$†BLEVEL;;Get bonus value Q…BONUS9ž>ŸƒBONQ†ENERGY;;Get energy R>u;;At maximum?¡F„BON1;;Yes, no more¢<;;No, dec. mode£,¤O>;;Add 1 to energy¥-¦ P†ENERGY§ …SHOEN;;Show energy¨„BON1%>;;Now do fancy©Q>(;;sound effects!ª P…AUDC1«„BON2'…AUDF1¬ '„TEMP­%>® …PAUSE;;A quick pause¯ %„TEMP°1± I„BON2²0³HƒBON´ †SNDOFF;;Kill soundsµ!†NEWLEV;;Next level¶X;· X;END GAME¸ X;--------¹†GAMOVRQ>;;Stop playerºP†GAMCTL;;Movement»P†HPOSP0;;Remove Green¼P…PCOL0;;Thing (GT)½ †SNDOFF;;No sound¾Q>Ê¿ P„COL1ÀQ>;;Reset jewelsÁ P…JANIM „ANIMÃ$>;;Print "THE END"ăOVRQ…THEND9Å P„DISPâ9Æ%>Ç …PAUSE;;A short pa©œô Ô©0  ö@¢½@€½€@èÐñÎK ÎK ÎK  þîK îK îK