þþõ6 EIFX; *** SKEET SHOOT ***('X;programed by Tracy and Mike Jacobs2$X;programed in Mac/65 by OSS inc.<@F‡PLAYERS;;RESERVEDP‡PLAYER0;;MEMORY FORZ‡PLAYER1;;PLAYERSd‡PLAYER2n‡PLAYER3x†DOSVIN ;;RESET POINTER‚†SDLSTL0;;DL POINTER (LB)Œ†SDLSTH1;;DL POINTER (HB)–„INTL;;DLI POINTER (LB) „INTH;;DLI POINTER (HB)ª…NMIENÔ;;INTERRUPT ENABLE´…WSYNC Ô;;WAIT HOR. SYNC¾ …CHSET‡PLAYERS;;NEW CHAR SETȆHPOSP0Ð;;HOR. PL0Ò†HPOSP1Ð;;HOR. PL1܆HPOSP2Ð;;HOR. PL2æ†HPOSP3Ð;;HOR. PL3ð†SIZEP0Ð;;SIZE OF PL0ú†SIZEP1 Ð;;SIZE OF PL1†SDMCTL/;;(DMA) CONTROL†GRACTLÐ;;GRAPHIC CONTROL†PCOLP0À;;COLOR OF"†PCOLP1Á;;PLAYERS,†PCOLP2Â6†PCOLP3Ã@†PMBASEÔ;;P/M BASEJ…STICKx;;JOYSTICK (A)T…TRIG0Ð;;JOYSTICK TRIGGER^†VCOUNT Ô;;VER. LINE COUNTh„P1PL Ð;;PL1 TO PLAYERSr†HITCRLÐ;;COLLISSION CLR|†RANDOM Ò;;RANDOM #†…CHBASô;;CHARACTER BASE…COLBKÐ;;BACKGROUND COLORš †COLPF2Ð;;COLOR PLAYFIELD2¤ƒFROÔ;;FLOATING POINT #®ƒIFPªÙ;;(FP) CONVERSION¸„FASCæØ;;CONVERSION (SUB)†INBUFFó;;POINTER TOÌX; BUFFER ASCIIÖ†CDTMV3;;TIMER 3à†CDTMF3*;;(3) FLAG/VECTORê †CONSOLÐ;;CONSOL PORT KEYSô…AUDC1Ò;;AUDIO(1) CONTROLþ…AUDF1Ò;;AUDIO(1) FREQ.†AUDCTLÒ;;AUDIO CONTROL†ATRACTM;;MODE TIMERƒSCR‡PLAYERS ;;DISPLAY&„DISPƒSCRè;;COUNTERS0X;:!X;Reserved Bytes for VariablesDX;N!ˆLOCATION;;PLAYER 1,2 Y POSX„PLX0;;AIM X POS.b„PLX1;;BULLET X POS.l„PLX2;;SKEET1 X POS.v„PLX3;;SKEET2 X POS.€…SKEE1;;CHAR FOR SKEET1Š…SKEE2;;CHAR FOR SKEET2”ƒHIT;;HIT COUNTERž…SHOTS;;SHOT COUNTER¨…TEMPO;;TEMPORARY REG.²„DRAW;;PLAYERS POINTER¼„DIS2;;LENGHT OF BULLETÆX;ON THE SCREENЇLOSKEE1;;Y POS. OF SKEE1Ú‡LOSKEE2;;Y POS. OF SKEE2ä†DIRECT;;SKEET1 DIRECTIONî ‡DIRECT2;;SKEET2 DIRECTIONø…SPEED;;WHICH SPEED…CHECK;;# FINISH SKEES †NUMBER;;MATH REGISTERS‡HUNDRED  ƒTEN* ƒONE4†DLIREG;;DLI REGISTER>…CSIZE;;SKEETS DISTANCEH†SCOREH;;HI BYTE OF SCORER†SCOREL;;LO BYTE OF SCORE\…ROUND;;ROUND COUNTERf…POINT;;VALUE OF SKEETSp…TSHOT;;STAY OF BULLETz†AUINDX;;AUDIO REG.„X;ŽX;START SET UP˜X;¢Q>4…BEGIN;;WHEN RESET IS¬P†DOSVIN;;PRESS¶Q>5…BEGIN;;GAME WILLÀP†DOSVIN;;START OVER.ÊX;ÔX; CLEAR MEMORY FOR PLAYER,ÞX; CHARACTER SET, AND SCREENèX;òQ>ü$>…CLEARP‡PLAYERS9P‡PLAYERS9P‡PLAYERS9$P‡PLAYERS9.P‡PLAYERS98P‡PLAYERS9BP‡PLAYERS9LP‡PLAYERS9V2` H…CLEARjX;t…BEGIN%>;;DRAW~†CONTSTQ†CHARDT8;;CHARACTERSˆ >;;ON THE’ 3;;SCREENœ Q†CHARDT8¦†STORDTPƒSCR°5º,ÄQ†STORDTÎO>ØP†STORDTâQ†STORDTìO>öP†STORDT7 0 H†STORDT3()>|2 H†CONTST<X;FX;SET UP SCREENPX;ZƒSUSQ>ƒLSTÿd P†SDLSTLn Q>ƒLSTx P†SDLSTH‚Q>ÀŒ P…NMIEN–Q>ƒDLIÿ;;SET DLI  P„INTLª Q>ƒDLI´ P„INTH¾Q>È P†DLIREGÒQ>òÜ P…COLBKæX;ðX; SET UP P/M GRAPHICSúX;…STARTQ>5‡PLAYERS P†PMBASEQ>X" P†PCOLP0, P†PCOLP26Q>†@ P†PCOLP3JQ> T P†PCOLP1^Q>xh P†HPOSP0r P„PLX0| P†HPOSP1†X;X;CLEAR REGISTERSšQ>¤ P†HPOSP2® P„PLX2¸ P†HPOSP3 P„PLX3Ì P…SHOTSÖPƒHITà P†SCOREHê P†SCORELô P…TSHOTþ P…ROUNDX; CLEAR NUMBERS ON SCREENQ> P„DISPF& P„DISPG0 P„DISPH: P„DISPD P„DISPN P„DISP X P„DISP.b P„DISP/l P„DISP0vX;€X; SET UP SCREEN POINTERSŠX;”Q>>ž P†SDMCTL¨Q>² P†GRACTL¼Q>xÆ PˆLOCATIONÐQ>Ð;;SET SKEETSÚP‡LOSKEE1;;IN THEREäP‡LOSKEE2;;STARTINGîQ>;;POSITIONø P†SIZEP0 P†SIZEP1  †CLRAIM;;CLEAR GUNSIGHTQ>  P…SKEE1* P…SKEE24$>> …RESETH †RESET2R †TSCORE\X;fX; PRINT TITLE IN SKYpX;z$>„…PRINTQ†SKESHO9Ž PƒSCR‡9˜2¢(> ¬ F…LCHAR¶ !…PRINTÀ†SKESHO A‹SKEET SHOOTAÊX;ÔX; REDEFINE CHARACTER SETÞX;è…LCHARQà9ò P…CHSET9üQÿà9 P…CHSETÿ9 2 H…LCHAR$ Q>5…CHSET. P…CHBAS8 $>PB †CHANCHQ†CHDATA9L P…CHSET9V 0` I†CHANCHj X;t X; WAIT FOR (START) KEY~ X;ˆ „CKEYQ†CONSOL’ R>œ H„CKEY¦ P†HITCRL° X;º X;CLEAR TITLEÄ X;Î $>Ø „CSCRQ†CLRSCR9â PƒSCR‡9ì 2ö (> F„PULL !„CSCR †CLRSCR A‹ A X;( X; VCOUNT DELAY ROUTINE2 X;< ƒCHKQ†VCOUNTF R>{P HƒCHKZ Q†CDTMF3d H„CHK2n  ƒAU0x „CHK2Q†VCOUNT‚ R>{Œ F„CHK2– Q…CHECK  R>ª GƒDIR´ F„PULL¾ X;È X; BEGIN PLAYÒ X;Ü „PULL ‡CLRSKE1;;CLEAR SKEET1æ  ‡CLRSKE2;;CLEAR SKEET2ð Q>r;;SET PLAYERSú P†HPOSP0;;TO THERE P„PLX0;;POSITIONS Q>‚;;AND WAIT PˆLOCATION;;FOR THE STICK"  †CLRAIM;;TO BE PUSH UP, Q>6 P…AUDC1;;CLEAR AUDIO@ X;J #X;WAIT FOR STICK TO BE PUSHED UPT X;^ …PULLSh Q…STICKr R>| H…PULLS† Q> P…CHECKš Q†RANDOM;;LOAD RANDOM #¤ P…SPEED;;FOR SPEED.® Q>;;MAKE SLINING¸ P†CDTMF3;;SOUND. Q>Ì P†AUINDXÖ  ƒAU0à Q>ê P†ATRACTô !ƒDIR!‡PICKDIR;;RELEASE SKEETS.þ X; ƒCOUQ„DIS2;;COUNT LENGTH OF R>;;BULLET ON F‡CLRSHOT;;THE SCREEN& I†GOBULL0 X;: X;JOYSTICK CONTROLD X;N „TRIGX $…TSHOT;;COUNT SHOTS THATb (>;;HAVE BEEN FIREDl I†LRMOVE;;IF TWO HAS BEENv Q…TRIG0;;FIRED THEN YOUR€ R>;;OUT OF SHELLŠ F„FIRE” !†LRMOVEž „FIRE!„SHOT;;FIRE GUN¨ !†GOBULL!…SHOOT;;DISPLAY BULLET² ‡CLRSHOT!…ERASE;;CLEAR SHOOT¼ †LRMOVE%…STICK;;MOVE YOURÆ $„PLX0;;AIM LEFT ORÐ Q„STRX8;;RIGHTÚ R>ä F†STOHOZî I…RIGHTø „LEFT; (>( D…LEFT2 0 0* …LEFT2!†STOHOZ4 …RIGHT;> (>ÌH E†STOHOZR 2\ 2f †STOHOZ&„PLX0p &†HPOSP0z !…HMOVE„ †UDMOVE%…STICK;;MOVE YOUR AIMŽ Q„STRY8;;UP OR DOWN˜ FƒMAC¢ IƒMDN¬ GƒMUP¶ ƒMDN;À QˆLOCATIONÊ R>ÔÔ EƒMACÞ †MOVEDNè †MOVEDNò †MOVEDNü ƒMAC!ƒCHKƒMUP; QˆLOCATIONR>$DƒMAC. †MOVEUP8 †MOVEUPB †MOVEUPL †MOVEUPV!ƒCHK`†MOVEUP,;;MOVE PL0 UPj Q„DRAWtO>~ P…TEMPOˆ $ˆLOCATION’ %„DRAWœ0¦†LOOPUPQƒPIC8° P‡PLAYER09º2Ä3Î )…TEMPOØ H†LOOPUPâQ>ì P‡PLAYER09ö "ˆLOCATION: X;†MOVEDN,;;MOVE PL0 DOWN Q„DRAW(O>2 P…TEMPO< $ˆLOCATIONF %„DRAWPQ>Z P‡PLAYER09d2n†LOOPDNQƒPIC8x P‡PLAYER09‚3Œ2– )…TEMPO  H†LOOPDNª #ˆLOCATION´:¾X;È…HMOVE,;;HOZ. MOVEÒ Q„DRAWÜO>æ P…TEMPOð $ˆLOCATIONú %„DRAW…LOOPHQƒPIC8 P‡PLAYER092"3, )…TEMPO6 H…LOOPH@ F†JUMPUPJ†JUMPUP!†UDMOVETX;^X; SHOOT AT THE SKEEThX;r„SHOTQ>;;MAKE AUDIO|P†CDTMF3;;GUN SHOT†Q> P†AUINDXš Q†CDTMF3¤ H…CONTS® ƒAU0¸ …CONTS$…TSHOT;;DISPLAY BULLETÂ2;;15 LOOPS ON THEÌ&…TSHOT;;SCREENÖQ>à P„DIS2ê #…SHOTSô…SHOOTQ„PLX0þ P†HPOSP1, Q„DRAWO> & P…TEMPO0 $ˆLOCATION: %„DRAWD†BULLETQ„PIC28N P‡PLAYER19X2b3l )…TEMPOv H†BULLET€ "„DIS2Š !„COLL”X;ž!…ERASEQ„DRAW;;ERASE THE BULLET¨O> ² P…TEMPO¼ $ˆLOCATIONÆ %„DRAWÐQ>Ú P„DIS2ä†CLRLOPQ>î P‡PLAYER19ø23  )…TEMPO H†CLRLOP $…SHOTS;;CHANGE SHOT REG.* ‡DISPNUM4 ‡PUTSHOT>!ƒCHKHX;R†SOUMAKP†AUINDX\Q>f P†CDTMF3p ƒAU0z:„X;ŽX;COLLISION˜X;¢„COLLQ„P1PL¬M>¶ H†CCOLORÀX;Ê…COLL2Q„P1PLÔ P†HITCRLÞM>è H„HIT2ò!ƒCHKüX;†CCOLORQ…SKEE1;;SHOT SKEET1R>;;CHECK IF ITI…COLL2;;HAS BEEN HIT$#ƒHIT;;BEFORE..Q…SKEE1;;NO!8O>;;CHANGE CHARACTERBP…SKEE1;;MAKE SOMELQ>*;;NOISEV †SOUMAK;;AND GIVE ME`$ƒHIT;;SOME POINTS.j ‡DISPNUMt †PUTHIT~Q>€ˆ „SCSP’ Q…POINTœ ƒB16¦ !…COLL2°X;º„HIT2Q…SKEE2;;SHOT SKEET2ÄR>;;SAME AS BEFOREÎ I„MAC2Ø#ƒHITâ Q…SKEE2ìO>ö P…SKEE2Q>*  †SOUMAK „SCSP Q…POINT( ƒB162 „MAC2!ƒCHK<X;FƒB16,;;16-BIT MATHPO†SCOREL;;ADDITIONZP†SCOREL;;ROUTINEdQ>n O†SCOREHx P†SCOREH‚ †TSCOREŒ:–X; †SMALL2$…CSIZE;;KEEP TRACKª2;;OF SKEET´&…CSIZE;;DISTANCE¾(>1È H‡SKEE2UPÒ…MAKE2Q…SKEE2;;CHANGEÜO>;;CHARACTER OFæP…SKEE2;;THE SKEETðQ>ú P…CSIZEX;X; P/M OF SKEET (2)X;" ‡SKEE2UP,, Q…SKEE26O>@ P…TEMPOJ $‡LOSKEE2T %…SKEE2^0h‡LOOPSK2Q‚MG8r P‡PLAYER39|2†3 )…TEMPOš H‡LOOPSK2¤Q>® P‡PLAYER39¸ "‡LOSKEE2 Q‡LOSKEE2ÌR>Ö F†RESET2à:êX;ô†SMALL1$…CSIZE;;KEEP TRACKþ2;;OF DISTANCE&…CSIZE;;SKEET1(>1 H‡SKEE1UP&"…MAKE1Q…SKEE1;;CHANGE CHARACTER0O>: P…SKEE1DQ>N P…CSIZEXX;bX; P/M OF SKEET (1)lX;v ‡SKEE1UP,€ Q…SKEE1ŠO>” P…TEMPOž $‡LOSKEE1¨ %…SKEE1²0¼‡LOOPSK1Q‚MG8Æ P‡PLAYER29Ð2Ú3ä )…TEMPOî H‡LOOPSK1øQ> P‡PLAYER29  "‡LOSKEE1 Q‡LOSKEE1 R>* F…RESET4:>X;H$X; RESET REGISTERS & COUNT ROUNDSRX;\†RESET2 ‡CLRSKE2f #…ROUNDp #…CHECKz Q†RANDOM„ P‡DIRECT2Ž …SIDE2˜O>¢ P†HPOSP3¬ P„PLX3¶Q>ÐÀ P‡LOSKEE2ÊQ>Ô P…SKEE2ÞQ>è P…TSHOTò P…AUDF1ü P…AUDC1 P†CDTMV3 $…ROUND(>$ F…ADDUP. ‡DISPNUM8 †PUTRODB P†HITCRLL:VX;`X; RESET SKEET1 REGISTERSjX;t…RESET ‡CLRSKE1~ #…CHECKˆ Q†RANDOM’ P†DIRECTœ …SIDE1¦ P†HPOSP2° P„PLX2ºQ>ÐÄ P‡LOSKEE1ÎQ>Ø P…SKEE1â P†HITCRLì:öX;…ADDUPQ>;;AT END OF GAME  ƒB16;;GIVE 5 POINTS$…SHOTS;;FOR EVER BULLET2;;THAT IS LEFT.( &…SHOTS2(><< F„GAMEF !…ADDUPPX;Z„GAME$>;;DISPLAY ONd„OVERQƒEND9;;THE SCREENnPƒSCR‡9;;GAME OVERx2‚(> ŒFƒJAM– !„OVER X;ªƒJAMQ†CONSOL;;WAIT FOR´R>;;START KEY TO¾F…AGAIN;;BEGIN.È Q>;;ÒP†HPOSP2;;GET PLAYERS 1,2ÜP†HPOSP3;;OUT OF THEæ !ƒJAM;;WAYðX;ú…AGAIN †CLRAIM !…STARTX;ƒEND A‰GAME OVERA"X;,…SIDE1Q†DIRECT;;SKEET ONE6!„SIDE;;DIRECTION@…SIDE2Q‡DIRECT2;;SKEET TWOJ„SIDER>U;;DIRECTIONT G…LSIDE^R>ªh G†MIDDLEr I…RSIDE|‚RE:†…RSIDEQ>2;;LEFT SIDE!‚REš†MIDDLEQ>v;;MIDDLE¤!‚RE®…LSIDEQ>À;;RIGHT SIDE¸!‚RE†SKEEU2 †SMALL1;;MOVE SKEET1ÌQ…SPEED;;UPÖ;àR>2ê D…PICK2ô †SMALL1þ Q…SPEED;R>  D…PICK2& †SMALL10 !…PICK2: ‡SKEE2U2 †SMALL2;;MOVE SKEET2D;;;UPN QˆLOCATIONXR>Ôb E„PASTl †MOVEDN;;GRAVITYv„PASTQ…SPEED€;ŠR>2” D„GOUPž †SMALL2¨ Q…SPEED²;¼R> Æ D„GOUPÐ †SMALL2ÚX;ä „GOUP!ƒCOUîX;ø#X;MAKE 16-BIT AUDIO WITH SUSTAINX; ƒAU0$†AUINDX Q†SOUND19  P…AUDF1*24 Q†SOUND19> P…AUDC1H2R Q†SOUND19\ P†CDTMV3f2p &†AUINDXzQ>ÿ„ P†CDTMF3Ž:˜X;¢!‡PICKDIRQ†DIRECT;;MOVE IN WHAT¬R>U;;DIRECTION¶G…SLEFT;;SKEET1ÀR>ªÊ G†SKEEU2Ô I†SRIGHTÞ"…PICK2Q‡DIRECT2;;MOVE DIRECTIONèR>U;;SKEET2ò G†S2LEFTüR>ª G‡SKEE2U2 I‡S2RIGHT!ƒCOU$…SLEFT$„PLX2;;MOVE SKEET1. 0;;LEFT8 &„PLX2B &†HPOSP2L !†SKEEU2V†SRIGHT$„PLX2;;MOVE SKEET1` 2;;RIGHTj &„PLX2t &†HPOSP2~ !†SKEEU2ˆ†S2LEFT$„PLX3;;MOVE SKEET2’ 0;;LEFTœ &†HPOSP3¦ &„PLX3° !‡SKEE2U2º‡S2RIGHT$„PLX3;;MOVE SKEET2Ä 2;;RIGHTÎ &†HPOSP3Ø &„PLX3â !‡SKEE2U2ì ‡CLRSKE1Q…SKEE1;;CLEAR SKEET1öO> P…TEMPO  $‡LOSKEE1 %…SKEE1†BLANK1Q>( P‡PLAYER2922<3F )…TEMPOP H†BLANK1Z:d ‡CLRSKE2Q…SKEE2;;CLEAR SKEET2nO>x P…TEMPO‚ $‡LOSKEE2Œ %…SKEE2–†BLANK2Q>  P‡PLAYER39ª2´3¾ )…TEMPOÈ H†BLANK2Ò:܆CLRAIM$>;;CLEAR AIMæQ>ð ‡CLRLOOP2ú P‡PLAYER09 P‡PLAYER19(>ÿ H‡CLRLOOP" †MOVEUP,:6‡DISPNUM%>;;DISPLAY NUMBER@A;;ON THE SCREENJ;T ƒL01S>d^DƒL02h3r>|EƒL01†ƒL02,CšO>¤ P‡HUNDRED®%>¸AÂ;Ì ƒL03S> ÖDƒL04à3ê>ôEƒL03þƒL04, C O> PƒTEN& A0 O>: PƒONED :N X;X †TSCOREQ†SCOREL;;PRINT SCOREb PƒFRO;;ON SCREENl Q†SCOREHv PƒFRO€  ƒIFPŠ „FASC” %>ž ƒS01Q@†INBUFF7¨ GƒS02² 3¼ HƒS01Æ ƒS02M>Ð $>Ú ƒS03;ä S> î P„DISP9ø (>!FƒS05 !0!1 !)>ÿ*!FƒS044! Q@†INBUFF7>!,H!DƒS03R!ƒS043\!Q>0f!HƒS03p!ƒS05:z!†PUTHITQ‡HUNDRED;;PUT # OF„!P„DISP.;;HITS ONŽ!QƒTEN;;SCREEN˜! P„DISP/¢!QƒONE¬! P„DISP0¶!:À!‡PUTSHOTQ‡HUNDRED;;PUT # OFÊ!P„DISP;;SHOTS ONÔ!QƒTEN;;SCREENÞ! P„DISPè!QƒONEò! P„DISP ü!:"†PUTRODQ‡HUNDRED;;PUT # OF"P„DISPF;;ROUNDS"QƒTEN;;ON SCREEN$" P„DISPG."QƒONE8" P„DISPHB":L"„SCSPQ…SPEED;;SET VALUE OFV" ;;;SKEETS`"R> ;;DEPENDING ONj"E„SC50;;SPEEDt";~"R>2ˆ" E„SC25’"„SC10Q> ;;GIVE 10 FOR SLOWœ" P…POINT¦":°"„SC25Q>;;GIVE 25 FOR MED.º" P…POINTÄ":Î"„SC50Q>2;;GIVE 50 FOR FASTØ" P…POINTâ":ì"X;ö" X; DATA FOR NEW CHARACTER SET#X; #†CHDATA 8=x=Ø==# ==á# =======(# =|= = =|2# `=`=|<# ===|= =|= =|F# =====6=>=P# <=Ã=Ã=Ã=ÃZ# Ã=Ã=D% R†DLIREGN%H‚A1X%Q>b% P†DLIREGl%‚A17v%>€%7Š%9”%X;ž%X;COLOR TABLE FOR SKY¨%X;²%…TABLE ò=ò=ò=ò=ò¼% ò=â=Ò=Â=²Æ% ¢=’=‚=r=b=RÐ%! B=========Ú% ====ä%X;î%X;DATA FOR AUDIO SOUNDSø%X;&†SOUND1 == & =Š=& =…= & =‚= *&  =‚= 4& ==>& =„=H& =†=R& =ˆ=\& =Š=f& (=-=p& (=*=z& (=$=„& ==Ž&†SOUND2  == ˜&  =Š=¢& =‡=¬& =…=¶& =ƒ=À&X;Ê&X;DATA FOR SCREENÔ&X;Þ&†CHARDT È==È== =è& ===== =ò& ==== ü&! =="= ======'! ========$= ' +==='! == =======$'! &= =Q======"=.' ====(= ===8' 3==(==/B' =4==3=====L' 3==#==/==2==%V' == ===(==)=`' 4==3====j' =2==/==5==.=t' $=== =~'X;ˆ'X;DISPLAY LIST’'X;œ'ƒLST ð=ð=ð=¦' ƒSCRÿ=ƒSCR°' ‚=‚=‚=‚=‚º' Œ=Œ===Ä' ===Î' ‚=‚=‚Ø' ‚=‚=‚=‚=‚=‚â' ‚=‚=‚==Aì' ƒLSTö'X;(X;SCREEN DISPLAY (X;(