þþè*dX;SAVE#D:SNOW.PT2nX;----------------xX; part 2 of game‚X;ŒX; by:Barry Kolbe–X; X;----------------ªX;´X;load a map from disk¾X;ȆLOADMP$>ÒQ> Ü P…ICCOM9æ „CIOVð$>úQ> P…ICCOM9 Q>5†MAPNAM P…ICBAH9" Q>4†MAPNAM, P…ICBAL96Q>@ P„AUX19JQ>T P„AUX29^ „CIOVh I„RDOKr:| „RDOK$>† Q>5†SCNMEM P…ICBAH9š Q>4†SCNMEM¤ P…ICBAL9®Q>¸Q> ;;10 pages P…ICBLH9ÌQ>;;read itÖ P…ICCOM9à „CIOVê:ôX;þ†MAPNAM A‹D1:SMAP. A=ƒEOLX;X;count all the roadsX;each pair of road bytes&X;counts as 1 point0X;:†CNTRDS%>D '…ROADCN #…ROADCX '…ROADCb'ƒCNT;;linesl …WHEREv ƒCR4%>€ ƒCR1Q@‚JL7Š$> ”ƒCR3R…ROADS9;;is it road?žFƒCR2¨0²IƒCR3¼ƒCR63;;skip over 2Æ3Ð)>ÚHƒCR1ä #‚JLî#ƒCNTø%ƒCNT)> HƒCR4: ƒCR2#…ROADC*HƒCR54 #…ROADC> ƒCR5!ƒCR6HX;RX;copy the game dlist\X;back for next boardfX;p†COPYDL%>2zƒCC1Q…BCKUP8„ PƒDL18Ž1˜IƒCC1¢:¬X;¶X;reset fuel in text windowÀX;ʆRESFULQ>Ô P„FUELÞQ>è P„FUELò Q„FULKü P„FUEL:X;X;find fuel containers$X;in map-store their.X;positions8X;B†FNDFUL%>L'ƒCNTV '„FOFS` ƒSS4%ƒCNTj)>;;20 linestHƒSS3~:ˆƒSS3 …WHERE’%>œ ƒSS2Q@‚JL7¦R>;;fuel chr°FƒSS1ºƒSS53Ä3Î)>~;;end of line?ØHƒSS2â#ƒCNTì!ƒSS4öX;ƒSS1$„FOFS;;store x,y Q‚JL;;positions P„FULY9C(,2O‚JL< P„FULX9F #„FOFSP Q„FOFSZR>;;only 6 alloweddHƒSS5n:xX;‚X;check timers-fuel firstŒX;–†CKFTIM$„FOFS FƒCCB;;no fuelªƒFTCQ…FTIME9´FƒFTB¾ "…FTIME9È Q…FTIME9ÒHƒFTBÜ Q„FULY9æ P‚JLð Q„FULX9úP‚JL%>Q> P@‚JL7"3,Q> 6 P@‚JL7@ƒFTB0JIƒFTCTX;^X;check bonus car timershX;rƒCCB$†CARCNT| HƒCTC;;yes† :;;no carsƒCTCQ†CARTIM9šFƒCTD¤ "†CARTIM9® Q†CARTIM9¸HƒCTD Q„CARY9Ì P‚JLÖ Q„CARX9àP‚JLê%>;;put bonusôQ@‚JL7;;car on scnþR>`;;snow bckgrnd?HƒCTF Q>;;yes P@‚JL7&30Q>: ƒCTGP@‚JL7DQ>PN P…RMTIM9X „BELLbƒCTD0lIƒCTCvX;€X;timers to remove carsŠX;” $†CARCNTžƒCTKQ…RMTIM9¨FƒRRA² "…RMTIM9¼ Q…RMTIM9ÆHƒRRAÐ Q„CARY9Ú P‚JLä Q„CARX9îP‚JLø%> Q@‚JL7 R>HƒCTI Q>`;;snow road* ƒCTMP@‚JL743> P@‚JL7HQ>d;;reset timerR P†CARTIM9\ƒRRA0fIƒCTKp:zX;„ƒCTIQ>a;;plain roadŽHƒCTM˜:¢ ƒCTFQ>¬ P@‚JL7¶3ÀQ>ÊHƒCTGÔX;ÞX;find bonus cars on mapèX;ò†FNDCRS%>ü'ƒCNT '†CARCNT ƒFCA%ƒCNT )>;;20 lines$ HƒFCE. :8 ƒFCE …WHEREB %>L ƒFCCQ@‚JL7V R>;;cars` FƒFCBj ƒFCD3t 3~ )>~;;end of line?ˆ HƒFCC’ #ƒCNTœ !ƒFCA¦ ƒFCB$†CARCNT° Q‚JLº P„CARY9Ä CÎ ,Ø O‚JLâ P„CARX9ì Cö 5 Q>`;;repl w/road P@‚JL7 3 P@‚JL7( 72 ?< #†CARCNTF Q†CARCNTP R>;;only 4 carsZ HƒFCDd :n X;x X;show bonus & regular score‚ X;Œ †BONSCR$>;;100 bonus– HƒSCD  X;ª †DOSCOR$>;;reg. score´ ƒSCDQ„SCRS9¾ ,È O>Ò P„SCRS9Ü ƒSCBR>æ DƒSCEð Q>ú P„SCRS9 0 GƒSCE #„SCRS9" Q„SCRS9, !ƒSCB6 ƒSCE$>@ ƒSCCQ„SCRS9J P„SCLN 9T 0^ IƒSCCh Q„SCRSr R…THOUS| F„CRET† P…THOUS #…LIVESš †SHOLIV¤ „CRET:® X;¸ X;move the storm X;Ì †MOVICEQ†ICECNT;;time forÖ F„NEWD;;new direction?à "†ICECNT;;noê $†ICEDIR;;get directionô Q…ICETB9þ P„IJMP Q…ICETB9 P„IJMP Q>& P…ICEON0 „IJMP ÿÿ;;move it: !†XITVBVD X;N X;get a new directionX X;and set flagsb X;l „NEWDQ†RANDOMv M>€ >Š T?” P†ICEDIRž Q>k;;time on¨ P†ICECNT;;screen² QƒIYP9;;starting¼ PƒICY;;positionÆ QƒIXP9Ð PƒICXÚ ,ä O> ;;eyesî PƒEYXø  †PUTICE;;put definition  ƒZB3;;in memory Q„ICTL;;time spent P†OFFSCN;;off screen Q„ICTH* P†OFFSCN4 Q>;;off yet> P…ICEONH !†XITVBVR X;\ X;move tablef X;p …ICETB ƒZRUz  ƒZLD„  ƒZRDŽ  ƒZLU˜ X;¢ X;diagonal movement¬ X;¶ ƒZRU „ZIRTÀ „ZIUPÊ :Ô ƒZLD „ZILFÞ „ZIDNè :ò ƒZRD „ZIRTü „ZIDN: ƒZLU „ZILF „ZIUP$:.X;8X;slide it upBX;L „ZIUP%ƒICYV$>`„ZIUAQ…P2MEM8jP…P2MEM8t Q…P3MEM8~P…P3MEM8ˆ3’0œ I„ZIUA¦"ƒICY°Q>º%ƒEYYÄP…MSMEM8ÎQ>ÃØP…MSMEM8â"ƒEYYì:öX; X;go down X; „ZIDNQƒICY,(O>2?<$>F„ZIDAQ…P2MEM8PP…P2MEM8Z Q…P3MEM8dP…P3MEM8n1x0‚ I„ZIDAŒ#ƒICY–Q> %ƒEYYª P…MSMEM8´Q>þP…MSMEM8È#ƒEYYÒ:ÜX;æƒIYP À=0=0=ÀðƒIXP  =à= =àúX;X;move storm leftX; „ZILF"ƒICX""ƒICX,"ƒEYX6"ƒEYX@ ƒZB3QƒICXJP†HPOSP0T,^O>hP†HPOSP0rQƒEYX| P†HPOSM0†,O>šP†HPOSM0¤:®X;¸X;move stormy rightÂX;Ì „ZIRT#ƒICXÖ#ƒICXà#ƒEYXê#ƒEYXôQƒEYXþ!ƒZB3X;X;put snow storm on screenX;&†PUTICE …CLR230$>:%ƒICYDƒICAQ†ICEDAT9N P…P2MEM8XP…P2MEM8b Q…ICDT29l P…P3MEM8vP…P3MEM8€3Š3”2ž(>¨HƒICA²QƒICY¼,ÆO> ÐPƒEYYÚ%ƒEYYäQ>Ãî P…MSMEM8øP…MSMEM8: X;X;stormy's definition X;*†ICEDAT ===24  ====O>  ===G= H ===R…ICDT2 =€=H=H\ Ð=æ=¼=ðf 2=¼=à=Ðp L=@= =zX;„X;erase plyrs 2,3 & missilesŽX;˜ …CLR23$>¢A¬ƒC23P…P3MEM9¶ P…P2MEM9À P…MSMEM9Ê2ÔHƒC23Þ:èX;òX;reset game due toüX;lost livesX;†GRESET"…LIVES †SHOLIV$ †RESFUL. †DSPFUL8:BX;LX;show # of livesVX;`†SHOLIVQ…LIVESjR> tDƒGRT~Q> ˆ P…LIVES’ ƒGRTL>œP†TXTWIN¦:°X;ºX;let the storm exit stageÄX;ΆREMP23Q>ØP†HPOSP0âP†HPOSP0ì P†HPOSM0öP†HPOSM0 P†ICECNT  Q„ICTL P†OFFSCN Q„ICTH(P†OFFSCN2Q>< P…ICEONF:PX;ZX;game over-snow guys windX;n†GAMOVRQ>5…GOVERx P…TMESS‚ Q>4…GOVERŒ P…TMESS–Q>;;turn off vbi  P„VFLGª †SNDOFF´ƒGAMQ†CONSOL;;chk for START¾R>ÈHƒGAMÒ !†NEWBEGÜX;æX;initialize soundðX;ú†SNDOFFQ>PÒ$>&Ò"$>, ƒSNLPÒ960@IƒSNLJ:TX;^X;turn off individ. sndshX;r „OFF1Q>|PÒ†PÒ:šX;¤ „OFF2Q>®PÒ¸PÒÂ:ÌX;Ö …OFF34Q>àPÒêPÒôPÒþPÒ:X;"X;honk horn when dozer hits car&X;0„HORN †SNDOFF:$>;;twice!D ƒHN1Q>yNPÒXQ>¦bPÒlQ> vPÒ€Q>$ŠPÒ” ƒLDLž …OFF34¨ ƒLDL²0¼IƒHN1Æ:ÐX;ÚX;pause the gameäX;î …PAUSE$>ÿø&‚CHQ>;;hold on vbi  P„VFLG „WAIT  „PAUSQ‚CH*R>ÿ4 F„PAUS>&‚CHHQ>R P„VFLG\:fX;p X;the vbizX;„…VBLNKQ„VFLG;;running?Ž HƒVBC;;yes˜ƒVBA!†XITVBV¢ƒVBCQ†OFFSCN;;coming on?¬L†OFFSCN¶ FƒVBB;;yesÀ"†OFFSCN;;countdownÊ Q†OFFSCNÔR>ÿÞHƒVBAè"†OFFSCNò!ƒVBAüƒVBB"…VTIME;;vbi speed Q…VTIMEHƒVBA QˆICESPEED$ P…VTIME.!†MOVICE;;do the move8X;BX;make a plowing soundLX;V†PLWSNDQ…ICEON;;unless`H„NOPL;;the storm isjQ>2;;making noisetPÒ~Q>FˆPÒ’ „WAITœ „NOPL:¦X;°X;reset some playing stuffºX;ĆREPLAYQ>€;;dozer'sÎPƒPXP;;positionØQ>pâPƒPYPìQ>;;scroll shadowsöPƒSMYQ> PƒSMXQ>;;screen pos.PƒSXP(PƒSYP2$>;;fuel timers<Q>FƒFT1P…FTIME9P0ZIƒFT1d$>;;car timersnƒCT1Q†CARSHD9x P†CARTIM9‚Q>Œ P…RMTIM9–0 IƒCT1ªQ>;;reset road´P…ROADG;;counters¾ P…ROADGÈ #…ROADGÒ P†ICECNTÜQˆICESPEED;;storm'S speedæ P…VTIMEð †SNDOFF;;sound offú Q„ICTL P†OFFSCN Q„ICTHP†OFFSCN":,X;6X;interval between cars@X;J†CARSHD 0=`=€=°TX;^X;speed up for next levelhX;fuel down by 10rX;storm is off screen less|X;storm moves faster†X;†FIGLEV$…LEVELš(>¤FƒLEA® #…LEVEL¸ƒLEA$…LEVEL Q„FULM9Ì P„FULKÖ Q†ICOFFL9à P„ICTLê Q†ICOFFH9ô P„ICTHþ Q‡ICESPDT9 PˆICESPEEDQ> P†EDGFLG& †SNDOFF0::X;DX;tables for stormyNX;X„FULM =====b†ICOFFL €=€==€==€l†ICOFFH =====v‡ICESPDT  =====€…SPTAB ===ŠX;”X;spin dozer if hit by stormžX;or out of fuel¨X;²„SPINQ†DIRECT¼5Æ%>Ð'ƒYSPÚQ>ä P…SPSNDî ƒSPB$>ø&ƒXSPƒSPAQ…SPTAB9 > „DFOK Q>†*PÒ4 Q…SPSND>,HO> R P…SPSND\PÒf …DELAYp"ƒXSPz$ƒXSP„HƒSPAŽ"ƒYSP˜%ƒYSP¢HƒSPB¬7¶ P†DIRECTÀ „DFOKÊ „OFF2Ô:ÞX;è!X;move the tracks on the dozeròX;ü†TRACKR'‚YH&‚XHQƒXD1M>$>. Q„TRKR98†TRKJMP%ƒPYPBP…P1MEM8LP…P1MEM8VP…P1MEM 8`P…P1MEM8j#ƒXD1t%‚YH~$‚XHˆ:’X;œ„TRKR U=©;;masks¦X;°†TRACKL'‚YHº&‚XHÄQƒXD1ÎM>Ø>â Q„TRKL9ì !†TRKJMPöX;„TRKL ª=•;;masks X;†TRACKU'‚YH&‚XH( %ƒPYP2$><„TRU1Q…P1MEM8FR>™P H„TRU2ZQ>d H„TRU3n „TRU2R>x H„TRU3‚Q>™Œ„TRU3P…P1MEM8–3 0ª I„TRU1´$‚XH¾%‚YHÈ:ÒX;ÜX;filling up with fuel soundæX;ð†FILSND „OFF2úQ>¤PÒ$>  „FIL1&Ò" „FDEL,(>-6 H„FIL2@Q>¢JPÒT „FIL20^ H„FIL1h „OFF2r:|X;† „FDEL%>È ƒFD1 „WAITš1¤IƒFD1®:¸X;ÂX;get the directoryÌX;search for SMAP.???ÖX;à†GETDIR †CLOSE6ê$>`ôQ>þ P…ICCOM9 Q>5†DIRNAM P…ICBAH9 Q>4†DIRNAM& P…ICBAL90 Q>: P„AUX19D Q>N P„AUX29X „CIOVb :l X;v †CLOSE6$>`€ Q> Š P…ICCOM9” „CIOVž :¨ X;² X;read ina map from disk¼ X;Æ †GETFILQ>Ð $>`Ú P…ICCOM9ä Q>5„DBUFî P…ICBAH9ø Q>4„DBUF! P…ICBAL9 !Q>! P…ICBLL9 !Q>*! P…ICBLH94! „CIOV>!GƒDOVH! Q„DBUFR!R> F\!HƒFLPf!ƒDOV †GETDIRp!Q>z! P†MAPFLG„!7Ž!7˜! !„MAP2¢!X;¬! ƒFLP$> ¶!ƒDLPQ„DBUF9À!P†MAPNAM9Ê!R> Ô! F„DRETÞ!2è!HƒDLPò!„DRETQ>ƒEOLü!P†MAPNAM9":"X;"†DIRNAM A‰D1:SMAP.*A=ƒEOL$"X;."X;try jumping to edge8"X;once per level onlyB" X;to roadL"X;V"†JMPEDGQ†EDGFLG`"HƒJEAj":t"ƒJEAQ†DIRECT~"R>ˆ"HƒJLF’"QƒSMXœ" P…EHOLD¦"Q>È°";º"SƒPXPÄ"V?Î"V?Ø" P„EADDâ",ì"OƒSMXö"PƒSMX#"ƒSMX #"ƒSMX# …LOOKR# D„JYES(# Q…EHOLD2#PƒSMX<#:F# „JYES$>ÈP# &†HPOSP0Z#&ƒPXPd#2n#&†HPOSP0x# &ƒPXP‚##ƒSMXŒ##ƒSMX–# "†EDGFLG #:ª#X;´# ƒJLFR> ¾#HƒJUPÈ#QƒSMXÒ# P…EHOLDÜ#QƒPXPæ#;ð#S>0ú#V?$V?$ P„EADD$QƒSMX"$;,$ S„EADD6$PƒSMX@$#ƒSMXJ$#ƒSMXT$ …LOOKL^$DƒJEBh$ Q…EHOLDr$PƒSMX|$:†$ ƒJEB$>0$ &†HPOSP0š$&ƒPXP¤$0®$&†HPOSP0¸$ &ƒPXPÂ$"ƒSMXÌ$"ƒSMXÖ$ "†EDGFLGà$:ê$X;ô$ ƒJUPR>þ$HƒJDN%QƒSMY% P…EHOLD%QƒPYP&%;0%S>0:%V?D%V?N%V?X% V?;;/16b% P„EADDl%QƒSMYv%;€% S„EADDŠ%PƒSMY”%#ƒSMYž% …LOOKU¨%DƒJEC²% Q…EHOLD¼%PƒSMYÆ%:Ð% ƒJEC"ƒSMYÚ% …ERS01ä%Q>0î%PƒPYPø% †DEFPLR& "†EDGFLG &:&X; &X;erase players 0 and 1*&X;4& …ERS01%>ÿ>&Q>H&„ERSAP…P0MEM8R& P…P1MEM8\&1f& H„ERSAp&:z&X;„& ƒJDNR> Ž& H„JRET˜&QƒSMY¢& P…EHOLD¬&Q>À¶&;À&SƒPYPÊ&V?Ô&V?Þ&V?è&V?ò&,ü&OƒSMY'PƒSMY'"ƒSMY' …LOOKD$'DƒJED.' Q…EHOLD8'PƒSMYB' „JRET:L'ƒJED …ERS01V'Q>À`'PƒPYPj' †DEFPLRt'#ƒSMY~' "†EDGFLGˆ':’'X;œ'X;bonus car bell sound¦'X;°'„BELL „OFF2º'Q> Ä'PÒÎ' ƒBL3Q>©Ø'PƒSHDâ' ƒBL1"ƒSHDì'QƒSHDö'R> (DƒBL2 (PÒ( …DELAY(!ƒBL1(( ƒBL2 „OFF22(:<(X;F(X;storm soundP(X;Z(†ICESNDQ…ICEONd( F…ICOFFn(Q>†x(PÒ‚(Q> Œ(PÒ–(: (…ICOFF „OFF1ª(:´(X;¾(X;check if START was pressedÈ(X;Ò(…STKEYQ†CONSOLÜ(R>æ( F…STKEYð( !†GAMOVRú(X;) X;setup game board and colors)X;)†SETSCNQ>5ƒDL1")P†SDLSTL,) Q>4ƒDL16) P†SDLSTL@)Q>ÀJ)PÔT) Q>5ƒDLI^)Ph) Q>4ƒDLIr)P|)$>†)ƒKLRQ†CLRTAB9) P†COLOR09š)0¤)IƒKLR®):