AINLOOLLDIRQIRQIRQSCROLLREADENDSCRWRANOWRAPREAENDSCREAD1READSCROLLENDSCRWRAPNOWRAPREASCOLOURSCOLOURSCOLOURWASCOLWASWSHLOOD01WAVWVLOOWRAPTIMETIMEWAVELOODO1STARTPOXSPEEOBJPOTOSPRITSPRITEEXPANFRAMEFRAMANIRESESHAK #ؒחՔُ$"(%ŁƄƃƆŁƄƃƆ'&'ȆȆ%'&#&#&$%'ȆȆҒŃ  (SHOULD KNOW THIS PART :O))SPRITE'S OWN PRIORITIES. OU ALREADYHAT WE HAVE HERE AS USUAL ARE THE85)!Г SCREEN+BORDER) Г HAVE A BLACK(x) 0/)@05(0(0($016 CONTROL SCROLL20($016 CONTROL SCROLL109)M0)HHERE SCROLLTEXT LIED8E8THE SCROLL TEXTS ARE ALL REFRESHED.SO WHEN THE MAIN LOOP OF THE DEMO PLAYSNITIALISE BOTH MESSAGES FOR THE DEMO,80(0/@(008-(OSITION ALL THOSE SPRITESBECAUSE OF THE SPRITE'S ANIMATIONS. :)CALLED FROM LABEL . AINLYTHEY ARE S MAIN ROUTINES8<)0<89(TO THE SCREEN.ASTE THE STILL MESSAGE FROM $4D00 ON8Ҡ$544 :O)))BETTER THAN USING)CLEARED. IMPLY)SCREEN GETS)THIS WORKS. HE0( ALREADY KNOW HOW( THINK YOU8COLOUR DATAS.)ڕFROM THE ORSPLITS.HE MAIN INTERRUPTS AND RASTERL8 81ALL SPRITES 8=ALL MOVEPIC 8"ALL COLWASH 8ALL SCROLL 2 8ALL SCROLL 18 0 88)(0 8INIT SYNCPLAYING ROUTINEMULTIPLE LOOPS OUTSIDE OF THE рYNCHRONISE ROUTINES SO WE CAN HAVEXLEAR ICROLL0)ДHIS SPLIT FOR THEL)))D8E8()Ю8()Щ(THE FIRST SCROLL0)ДHIS SPLIT FORL)))D8E8)ݢ(ANK 3 AT $00)Ў)Ѝ)Р((()ГAT $2800(ړSCREEN WITH CHARSET0)ГPLIT FOR NORMALL)))D8ALLNE. HERE THE COLOURSHIS IS THE SIMPLE COLOUR WASHING/ROLL0`0@*8(0@*0@*0)L80@*0@*D8E88(0)8(()0)(88)((8080`0@*8(0@*0@*0)oL80@*0@*D8E88(0)o8(()H0)I(>MESSAGSTILLMESMESSAGECOCOPYMSMOVEPICOLOURCOLOURSCOLOURSCOLOURSCOLOURSCOLOURS   `MESSAGEMESSAGEPASTECOCLEARSCSMOOTHSMOOTHIRQIRSYNSYNCWAILOOMS0)@HERE SCROLLTEXT LIESUR GLOBAL VARIABLES FOR ROUTINESODING AN LD CHOOL EMOSSEMBLE - HAPTER 19TURBO"#%&%#"'ņ'($&ٔ֔&ń"$"σTORED IN A LOOP WHICH ISETC FOR THE SPRITES? ELL, THIS TIMEO THEN, WHERE IS THE $07F8 POINTERS,).Ѝ)-Ѝ),Ѝ)+Ѝ)*Ѝ))Ѝ)(Ѝ)'ГHANGABLE COLOURS( )&ГPR. MCOLOUR 2( )%ГPR. MCOLOUR 1()Г EHIND CHARS)Г ULTICOLOUR ON)Г LL SPRITES ONPIC'S)ZWHOLE COLOUR ͝)ڕ. E FILL THE)ZINTO THE COLOUR)ٕ$5800 AND PASTE IT)YCOPIES DATA FROM)ؕDOES. T SIMPLY0)XREMEMBER WHAT THIS(OU SHOULD ALREADYLOGOET UP THE COLOUR DATA FOR THE BITMAP0@*0@*D8E80@*0@*NTERRUPT )NIT MUSIC, YEAH!() ܔ)ДWORK CONTINUOUSLY)ДSO THAT IRQS WILL(AND TURN ON $D01A(URN SCREEN ON()ДVALUE)NITILIZE THE $D012)TO $0314+$0315(INTERRUPT AND WRITED8TO DO FIRSTE8ALL LABEL 1NITIALIZED THE SECOND ѩE8)ГPASTE TO $D016 (AKE $D016 MULTICOL8$HECK LABEL D016)ݍ)!Ѝ) Т(ANK 2 AT $DD00()ГD016 TO $D016)ГWE CALL THE LABEL(xRIGHT SLIGHLY SO,(;BE MOVING LEFT &)ГLOGO, WHICH WILL(DISPLAYING THE0)ГHIS SPLIT IS F88)((808CROLL TEXT 1CHAPTERS OF THIS TUTORIAL.ALREADY KNEW ABOUT THOSE IN THE PASTSCROLL2 ROUTINES DO, AS YOU SHOULD HAVEWONT EXPLAIN WHAT THE SCROLL1 ANDOW LET'S MAKE SOME SCROLL TEXTS. L)1 )8))D8E8)Ю8)Щ(LAST S w fp=\6|=jWՙfWݕ_VwU_7U|=U7u| wpU p p6\5\=\7e|=U7u\ wp]<e jpp UWpw<<eYu< ~ D ~DDDDDDDDDDDDNEW .TEXT " " _3S .BYTE $00 _  $/         S S S S          r$ $s""r$      r$ $s"r$$ t& & u$ $r$s" r$ /      @@@@@"5+]4.D-DED@@]1)% @@@@@@! H 3S    "DY3VDX"3]DD!7I8/(ei LGK&P[LgLGjv*j |y8y||v0msLj |yey|i|smvyK|P) j}p0jLGIPvȹ=gȹ=p) 8"))yy) )ԩԩLo")aLJJJJa$ a^L-$I}. .LcH)}F.h)).L-ȱ0L@)IHȱC}(Fyha8U&|dXLZ&|a8UdXȱȱ[))Ș@yy) 8"[>^[>^L@@R`RLO1Aȱ~;Eev:'A$ɶsN j;Hk(  "$')+.147:>AEINRW\bhnu|x EL@ "~`` ԩ@y4Lr 2 X,Y0-((PRITE 1 X,Y((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((0$((((((( ( ( ( ( ( ( ( ( ( (((( ( ( ( ((((((((((( S82(8/}8.8/... AND THIS)n) SHOWN BEFORE0/@(HAS BEEN)КALREADY AS IT020/@(KNOW THIS01(OU SHOULDUR COMBINE SPRITES ROUTINE`8*(I0$@(0*0$@((0$@(I0=0$@(METHOD AS THE COLOUR WASHING TECHNIQUEHELP HERE, AS IT IS EXACTLE<<(((((((((((((((((((((((((((((((((((04(((((((((((((((((((0.((((PRITE 8 X,Y((PRITE 7 X,Y((PRITE 6 X,Y((PRITE 5 X,Y((PRITE 4 X,Y((PRITE 3 X,Y((PRITEbv$$w"""v$w"/HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHfj.u>BW   ` q$ $p" q$$$ $p" q$ $ $p" "q$$ $p" q&}XPK}UKPP8XPKUKPX8^X0U8[UX[msJvԩԽԽԩԽF0Lԩ΅ `"@ PPPPP`````00000FFFFFIIIII@@@@@@@@@@$8JJJJ+ ȱ+}Ca+l yy)1) Lo/'  eL8ԠHJJJJh)**-(JJJJȱL)Q-~ȱȱ$ )?(ȱ)?RȱȄ:=1`C}(FȱȘ@Fya&|djJJJJ TE)JȱOȱ)C) );)) 7)%JJ=jȹ=msJ:=I}%@  L[[^.+70`L@) ȱ0L@ɀ ȱ"ȱɁȱ}(a&dȱɂȱH)h ȱX) %%I}%")) ȱ) ( ((((((0 ( ( ( ( ((( ( ( ( ( ( ( ( ( ( (((( ( ((((((((((((((((((( ( 0( ( ( ( (ATA TABLES FOR EVERYTHING`8506(`8586(()))))))THOSE SPRITES)WE ANIMATE84WELL, WHERE85ND THIS AY THE SAMEWE TOGGLE $016. OU WONT NEED MUCHMAKING THE PICTURE MOVE SLIGHTLY WHENHIS IS ANOTHER SIMPLE ROUTINE FOR`8#(()ڭ0@()Xڭ0@()0ڭ0@()ڭ0@()٭0@(EAD COLOURS,X FROM COLOURS, AND YOU GET FLASHINGWHICH IS FOR THE TEXT. U ST REMOVETHE NICE LOOKING COLOUR FLASH ROUTINEWHERE WE DON'T USE COLOUR WASHING, BUTOU MIGHT HAVE NOTICED HERE, THIS IS)۽0 @()H۽0@(0 @(0 @(0@(0#0@((0 @((0 @(0@((0"0@(ARE MOVING FROM THE RIGHT TO THE LEFT.OVER CHARS ROUTI X                 \???>>??>?>????>>???1˿qqqqq (v~p~p~p|pp|pvp||~|l8D|&&0`<00p0ƚ  <8|888>  ???????Ǐ???????Áɀ<Á<Á癙???? >00000000 88p88p<~~~~<6>````````~<<~<~ff~<ff<>>0000   IMAGEWIRE,  -           3   KOALA  ... I         PICTURE SPLITTER  C  P ... G        ... B  !        ,    -   ,                  ... T           ... A     RICHARD BAYLISS... T  12     UNKNOWN... S  (F              ˼ʬ˼˰ >l$$DDTDDp||BL4jxx~0```08  xT88T|0| 0`p|8p`|&|p| p||| &TVTT$ ????????333333????????? 00ffffffff>`<|bf 0fFf<00`0~~p >v66?333333LL (C)1991 AUDIAL ARTS! @P"BR$DT'9K_t-NqBtZ-{'Q78YN Ȣmgp )    RICHARD BAYLISS... B      C64  RICHARD BAYLISS... ..            `RICHARD BAYLISS... T                     C64     <0ٰ,YW7gV|0>+ 0 0< g78eg fo={; 0          0  ... H   ... W    - GOLDFISH DEMO -... T                꺮 ꪪ ꪪ eeeeUUUUUVYfUVffjffffj↑UVUUVꪪUUfeYfVYffffffjj UUUUUUUUUUUUUUUUVYfUUYfffUUeffYfYfffeeefUVUUUUUUffYVYUUUUUUUUTUTUUUUUUUUUUUYVYVYfffffffffjjffffjfffffjjk feeeUVYVYVYfeeeefYVYfYfYfUVYffVUffffeeUUUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYVYVUUUUeUUUUUUUVUVYfYjf ffffffjfjeUUUUUUU_VUUUUUfUUVYUffYffffjfffffeeeeUUUUUUUTUTUUUUUDDEEQDDQUUUEDUTUUUUUUUTUTUUUUUUUUUUVUVUUUUfffYVfffffffffffffffVffffVfffffffk UUUUUUUUUUUUUUUUUUUUUUUYfYVUVUUfffffffjffjffkffkffffffffffjfjfffffjffkfek kfffff饕UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfYUUUUUfUUUUUfVYVYffffffffjf UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVUfYfYfffffffffffffeo_[ 꺪 ꫪ  ﻪꪙffjfj YfeUUYfUUUeeUUUUUUUUUUUUUUUUUUUUUeVUUUVYVffjjfjjfUUeUUUUUUUUUUUUUUUUUUUUUUYVYVYVUVffffffffjjfjffffffffffffjjﻯ feeUUUUUUUUUUUUUUUUUUUUUUUUUVUVUVYfYfffffffffffffeffYfjjjfffffffjYeYeefFZjffUfUVUUYUUUYUUUUUUUUUUUUUUUUUUUUUU fjfffffefffUffUUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYVYVUVUUfeeefUUUUUUUUUUUUUUUUUUUUUUUUUUUUTUUUUVUVUUUUUeUUUUUUUUUUUUUUUUUUUUUUUUUUUVUVUVUVYffffffff VUfffYffffffffeUeUUUUUUUUUUUUUUQDUUUUUEUUUQEEUUUUUUUUUUUUUUUUUUUUUVUVfffffffffffffffffffffffffkfffff jfffjfff馩jffffffffffjfffjfUUUUUUYeUUUUUUUfUUUUUffUUUUUeeUUUUUUUUUUUUUUUUUUUUUUUUU UUUEUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVUUYfYffUffffffffffffok 껪￯ եUUUUUUUUUUUUUVYVYVYfffffkk kVVVk  v@ /7"L v@ /7"L v@  c%d+c%d+c%d+c%d2c d&c d&c d&c b~~:~~<=}~~=<~~~}=~~~~~:~~~~~~~~~~~8~~~8=~~~~<~~~8~~~~~}~~~~~~~~~d(c"e(c"d(c"e(c"d$ce$cd$ce$cdc%e+c%d+c%e+c%d2c e&c d&c e&c h=5<5:5<5=6<6:6<6816151613,1,0,1,j:~~~~      !Fka:=:=AFIMIFA=A=A:6:6:=BFIFB=:=6=68=8=ADIMIDIDADA=8<8)L L ԙ`ԩԙ`  Lpn`&,`)))L7@@`@)@ @`LPu`t`  $$(,,0488<@DHLTX\dhpt| z8zL/2z /}5Խ2}8ԽPԽSԽ=` `HhL ->Gf{8Z}#S0pGG wah0ڏN`1ߥ>k<9cK E}ys|~  !"m!"A~ DG*G5m58i85}/8}2٧ELG585885}/8}2٧G/2A58LqqL})@o)L /}5$2i%$8ԭ% `) -`JL"JP }}}MH  KhԼM)(H)ShJJJJVIYJJJJ_be) P)I) H)#h) ԹL=MH)Jqh)twz VeUՕUEUUUUUUUUUUUUeUUUVUUYfU 镕UUUUUUUkZVYfYfkj   0< g78eg fo={; 0 0 <0ٰ,YW7gV|0>+ 0 ~~~k:~~~~~~~j:~~~~~~~l8~~~~~~~i0~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~d4}4}4}4}4}4}4}4}4}4}4}4}4}4}4}4}a:=AF~~~}~~~~~~~~b:~~~~~~}~~~~~~~~`"}~~~~~~~~~~~~~~aI:M`/7"L v@ /7"L <a:~:~A~I~I~A~A~A~6~6~=~F~F~=~=~=~8~8~A~I~I~I~A~A~8~8~?~H~H~?~8~8~a~=~=~F~M~F~=~=~:~:~:~B~I~B~:~6~6~=~=~D~M~D~D~D~=~<~<~D~K~D~<~<~<b~~:~~<=}~~=<~~~}=~~~~~:~~~~~~~~~~~8~~~8=~~~~A~~~?~~~~~8~~~~~~~~~d(c"d(c"d(c"d(c"d$cd$cd$cd$cd (wwwwU4hV( h11 1"1$1+12AA AAAAAAAAAAAAAAAAAA! !!!!!!!!!!!!!!!!!!    !#%'*,/258;?CGKOTY^djpw~!Fk-߆#y ,0p p=-!A:= 9 L7|L%I)Lɀ ) Խw0}wiLw)8Lh!5}58}8kkt$L58588kktLkhIhnwnt}tti,})=zɐ8鐍z8zL}G/2zLzɐ8鐍 } }) ԙԩ`L܍JކLN});  })bJ}Mb) ) Lu)}_\eP}\PSiSY-eP8\PSSVebb}) P K ʭ>m fffffffkkfUUUUkgZVV RTBLRESERANLOOELOORESETCOLOURCOL SPRITEPOCOLLISIOFIRELOCKUGAMEOLEVELCMISSLEFPOINTENOMOVEBULDESTROPLRDESTROGAMEOVERESTARTITLSPACMAIPOSSPRTPOSTABLSPCOLSPACEBGSTATUINHOLENDGAMEXPANMVPLAYEBU ҄%"&Ȅ%'&&'̊Ό͌΍͌ "&&$%"Ńȁȃ&&$&''%ȁ$%##&(('&Ȇ'&&''(&$ƃÃ&$%%'&& RITE ANIMATIONS WORK, AND HOW WEALSO IN THIS TUTORIAL, YOU'LL BE SEEINGMISSILESAND THE REMAINING SIX WILL BECOMETHE PLAYER SHIP, ONE WILL BE A BULLETWILL INVOLVE EIGHT SPRITES. ONE WILL BETO CODE A 1 PLAYER BLAST 'EM GAME. THISIN THIS TUTORIAL, WE ECK IF GAME0)0DEBUGGED FIREMODE0)COLLISION DECTIONSPRITES0)pPOSITIONS FOR THEVARIABLES FOR THE GAMECOURSE :)THE HARD STUFF - THE GAME CODING OFCHITTY CHATTY CLAG, LET'S MOVE ON TOWELL AS GAME OVER. ANYWAY, ENOUGH OFCREDITS ON THE FRON g[[[ 9 [[_[{{?9ߏ ǃ9 LLL/L>:=$ LDREAMS OF YOU BY RICHARD BAYLISS ݍЭЍNԹԢ ;`    ԭ #` ;;L &(&L LLETMSHIPCOMISSILANIMATBULLCOCHKHIRANDOCOLROLEXPLPLXLOOUDOWSETULEFSETDOWRIGHSETLEFFIRSETRIGHNOJONOMOVEBMOVEISTOPBULCHKBCONOHIRANPOSCORSETSCORSTOPLOONODESTROEXPLOOPEXPLTBRESETSHIPCHNOSHPCOSTOPSCOFALLOOANIMLOOMISSTBPL & %% ŃȆ##ņ&&'Ԍ$&"%($''&"Ȇ&'' Ҏ'%$$'%ȁȄŃ"'ȆȆ'(ȄņȆȆ      `@  WILL SHOW YOU HOWBLAST 'EM GAMEASSEMBLE IT - GAME - SINGLE PLAYERTURBO#'((&" ('($%((&%%$   ֔ Ȇ"ń' Ƅ֖ T OF THE SCREEN ASA SCOREBOARD. WE'LL ALSO BE ADDING SOMETHERE'LL ALSO BE A SHIELD GENERATOR ANDSIDE.MAKE THE GAME A TAD ON THE DIFFICULTENGAGE THE SPEED OF THE MISSILES TOWE'LL ALSO BE ADDING LEVELS, WHICH WILLCONTROL THE SPRITE PRIORITIESHOW SP ǏǏǃǃ  Ǐ `8頰Ii,&ȱsL0` ))L L~K}Vf)H)Ah) ȱ},Dȱ},G))DLȱ},GD)Lt>;) L">;I)L}L>)L },G/2>;)й58hk #  J) NOT FIRE0*JREAD FIRE0+0@((8+MOVING RIGHT(DOWN BUTȚAS UP AND0@(8*NOT RIGHT0(JREAD RIGHT0)0@(( 8)MOVING LEFT( AND DOWN, BUTAS WITH UP0@(8(NOT LEFT0&JREAD LEFT0'0@((MOVING PLAYER8'THEN STOP(REACHES #$ECȚDOWN UN RM THE ENEMY TO BULLET0-``)(0/0@(8(0@((8/( 0.0@(8-(08MOVING PROCESS.NOMOVEBL WHICH IGNORES THE BULLETCALL MOVEIT, ELSE WE JUST JUMP ON TOIF THE BULLET IS NOT MOVING THEN WEIS AT ITS HOME POSITION, OR IS MOVINGBEF D A SCOREPLAYER'S BULLET, IT WILL DIE. ELSE WETHE BULLET. WHEN AN ENEMY HITS THETHE PLAYER COLLISION, BUT IT WORKSPROCESS IS DOING EXACTLY THE SAME ASCAN YOU SEE WHAT I MEAN. OKAY, THIS0@(i(0@(( 80@(0@(i( 0@((800@(WE KILL T IT (AFTER REACHING '9'TO INCREMENT EACH NUMBER AFTER REACHINGWILL USE THE PREVIOUS FIVE ZERO DIGITSBY ONE, AND THEN WE CALL A LOOP, WHICH$040B (THE LAST ZERO DIGIT ON SCREEN)INCREMENT THE CHARACTER AT SCREEN RAMTHIS IS HOW WE ADD POINTS TO THE SCORWE NEED TO CHECK IF THE DESTROYSINCE THE BULLET HAS HIT THE MISSILE,`80( 0105`)'(18(85( 88)'8(85(d88AT THE END OF THE SCREEN.CHARACTER AT $0427, WHICH IS THE CHARTHE PLAYING SPEED. ALSO INCREMENT THEADD 1 TO LEVELCT - WIS IS WHERE WE READ THE COLLISION0@(i(0@(( 80@(0@(i( 0@(THE POSITION(CALCULATE8SPRITE AND00@(READ PLAYERENEMY MISSILEA SHIELD FROM THE SHIP AND REPLACE THEHITS THE PLAYER, MAKE THE PLAYER LOSEMISSILE TO SHIP COLLISION. IF)!ГBACKGROUND(BLACK THE FRAME AND)ГMULTICOLOUR(TURN OFF SCREEN)ԓ(NO SOUND) ݓ) ܓ(ROUTINE PLAYER.)ГDURING AN IRQ)ГWHEN RESTARTING(WONT KEEP CRASHING)SO THAT THE GAME)TURN OFF THE IRQ(ROUTINES HERE TO(1WE USE THHARSET)ГMULTICOLOUR MODE(TURN ON SCREEN8)ڝ)ڝ)ٝ)ة( ))2))2))1)0)0(THE STORED SCREEN ($3000-$33E8)DRAW THE SPACE BACKGROUND FROM READING8()'0((ALL SPRITE MULTI-COLOUR IS GREY 38(0@(00@((RE TO PLAYD8INITIALISE ANDE8THIS IS WHERE E JSR $FFD2 ;DISABLE SHIFT+CBM LDA #$08GAME OVER8 DISABLE8BULLET STATUS0@(POINTERS AND8INITIALISE THE8 LOCK CONTROLS8FUNCTIONS TO(DISABLE THE8 MISSILES BLASTED( INIT THE NO O0F)DATA FROM SPRITEPOS INTO THE MAINEXPAND SPRITE POSITIONS AND PUT READL)1 )PLAY MUSIC 8 0 8!CALL EXPLPLRL)1IRQ LOOP )PLAY MUSIC 8 CALL COLROLL 8CALL RANDOM 8CALL CHKHIT 8CALL BULLCOL 8CALL ANIMATE 8CALL MISSILE 8CALL SHIPCOL TIL ITȚMOVE PLAYER0@(8&NOT DOWN0$JCHECK DOWN0%0@((HMOVING PLAYER8%THEN STOP(HREACHES #$48UP, UNTIL ITMOVE PLAYER0@(8$NOT UP0#JCHECK UP0)ܚREAD JOYSTICKIS REALLY REQIRED HERE.THE JOYSTICK CONTROL WORKS. SO NO HELPA ROCKETORE) WILL CHECK WHETHER THE BULLETTHIS ROUTINE (AS YOU ALREADY SEENTHE MOVING BULLET0,`PROCESSFUNCTIONALFINISH ITS8UNTIL BULLET(LOCK FIRE0@(0@(FIRE BULLET0@(ON SHIP AND0@(PLACE BULLETIF NOT LOCKED8,FIRELOCKUP(CHECK88,HE ENEMIES.ALSO WORKS WITH CONTROL LOOPS. WHEREYOU WILL ALSO NOTICE THAT THIS ROUTINEIN OUR PREVIOUS 2 PLAYER GAME TUTORIALYOU ALREADY SEEN THIS SORT OF ROUTINETHE ENEMY, ADD POINTS TO THE SCORE.COLLISION DETECTION. IF BULLET SMACKSCHECK AND PERFOE8EXPLOSION(TURN ON BULLET0@(02@(0@((810@(810@(0@(810@(810@(000@((NEXT LEVEL - ELSE IGNORE THE PROCESS.IS SHOT. WE INCREASE THE SPEED FOR THETO ANY MISSILE HIT, AND IF 100 MISSILESJUST IGNORE THE PROCESS. WE ADHICH WILL INCREASEIGNORE THE REST OF THE PROCESS. ELSE100 MISSILES HAVE NOT BEEN SHOT THENOF MISSILES THAT HAVE BEEN SHOT. IFTHIS IS WHERE WE INCREMENT THE AMOUNT8304))(084(:03)() WE INCREMENT EACH DIGIT - AND SO ONTHE NEAREST DIG MISSILE06`0@(0@(( 88(8(0@(09(EXPLOSION GENERATOR FOR THE BULLETRESET THE POINTER AND TURN OFF THE`0@(89()08@(070@(8(86(08ENEMY :)SHOW THE EXPLOSION ANIMATION FOR THEPOINTER IS TURNED ON, SO THAT WE CAN ESE0 xSET IRQ FLAGJMP ADDRESS)8WHERE WE START OUR0 )RGAME OVER SWITCH0 )QEXPLOSION ANIM0)PPOINTER TO CHECK0)BWITH SPRITESPURPOSE ANIMATION0)@POINTER FOR MULTI0)3MISSILE COUNTER0)2OUR LEVEL COUNTERIS ON, OR NOT0)1TO CHPOSTABLE.REPOSITION SPRITES ACCORDING TO))))))()()()&Е()%Е( FOR OUR GAME)ЕALL THE SPRITES)ЕSETUP AND INIT.0(THIS IS WHERE WE)ЕSCREEN(NO SPRITES ON)ЕREAD FROM $2800(CHARSET TYPE) ГF8 TO LEVEL18 AND SET LEVELCT( DISABLE DESTROY8((蕝)ؕ(SCREEN RAM ($400))FROM $2700 TO THE0)'PASTE THE SCORE(READ 40 CHARS TO)"ГMULTICOLOUR 2(AND LT BLUE FOR)#ГMULTICOLOUR 1(USE BLUE FOR)ГFRON $2800(TURN ON C8CALL BULLETMV 8CALL MVPLAYER 8CALL EXPAND8(SO, END THE GAME8 IS GAME OVER? IF0)ГOUR MAIN IRQ FLAG0L8X )()Г)Г() ݓ) ܓTASKS.(TO PERFORM MORE)ГCONTINUOUS LOOP)FLAG, TO RUN A)THE IRQ REQUEST(WE PREPA . YOU SHOULD ALREADY KNOW HOWFIREBUTTON WILL MAKE THE PLAYER SHOOTTHE PLAYER AROUND THE SCREEN. PRESSINGREAD THE JOYSTICK IN PORT 2 AND MOVE`8"()n)ДTHAN 256 PIXELS X POSITION IS MORE0@()0"0@(0(SPRITE POSITION FORMATS ($D000-$D0 jfn:/ jfn:jfn2mmmmmmmmmmm %Ԏ cHVSC T!! ݍЭЍNԹmn .TEXT " " _3S .BYTE $00 _  ԭ #` ;;L &(&L `8頰Ii, G^^H p3 .TEXT " " _3S .BYTE $00 _ (((((((((((((((((((((((((((((((((((((((((((0E((((((`8F(()ؽ0E@(0E@(0F0E@((0E@((0 0E@(L8 0@(0D(`0@(8D()0C08@(0!0@(NOW WE CREATE OUR OWN EXPLOSION ROUTINEGAME ISNE`8=( 0@(m80@(0@(i(DON'T MOVE X-POS0=0@(0(MOVE THE X-POSITION.OF THE MISSILES. USING #$00 DOES NOTZERO (ADC #$00) TO CONTROL THE X-SPEEDTHE MISSILES GOING DOWN, AND WE USEUSE LEVELCT TO CONTROL THE SPEED OFWILL MOVE ALL THE LOST ALL SHIELDS, SWITCH ONDECREMENT THE PLAYER'S SHIELD. IF THE0@(02@(0@((8;0@(8;0@(0@(8;0@(8;0@(0:0@((CONVERT IT INTO AN EXPLOSION.AND WE STOP THE PLAYER BULLET ANDTHE MISSILE IS REPLACED AT ZERO Y-POSCOLLISION+$;47|4|7;47;<;|9|<@9<@9<|9|<@9<@A@bA}~~i5797~4~2~~~}a@}~~i<;<;~9~;~<~}bA}~~i5454~2~0~2~}a@}~~i4249~;~<~9~}q9~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~`~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~a9~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~i9~~~~~~~h4~~~~~}~~~~~~~~~~~~~~~~~`   (BDEb5~~~~~~~7~~~~~~~a4~~~~~~~9~~~~~~~`~~~~~~~~~~~~~~~~~~~~~~~~~~~~g5`h5`g5`h5`g3`h7`g7`h7`hg4`h4`g4`h4`UPYPYP]P@o@o@g@]@o@o@U@U@U@@o@o@g@]@o@o@w@w@w@w@o@o@g@]@o@o@U@U@U@@o@o@g@]@o@o@( (( (( (( (:000000   :5  :01 ((<(U(|(E(<(((L((l(,((\(|((L(<(02(X(u( (E(2((((((((((((((08(((((((((((((((((((((((((0?(((((((((((((((((((((((((((((((0@(E(p(u((2(@(\(P((`0(X(((( (0 OVER AND THE PLAYER IS DEAD SO`8B(02@(0B02@((02@(002@(INTERESTING :)POSITION TABLE - TO MAKE THE GAME MOREA CONTROL LOOP TO READ THE RANDOM`80A(`88A()0@@())))))0>0?@(08MULTI-PURPOSE ANIMATOR ROUTI ENEMY MISSILES. WEIN THIS ROUTINE, WE CALL A LOOP, WHICHMOVE THOSE MISSILES.`8:( NO COLLISION0;WHERE THERE ISNOTHING HAS HIT THE PLAYER SHIP0<`8 (8<(0))SHIP) TO LOCK OTHER FUNCTIONS.GAME OVER (WHERE WE DESTROY THE PLAYERPLAYER HAS04 TO COLLISION+$05 IS READDURING THE WORKING PROCESS. HOWEVER IFTHAT THERE IS NO COLLISION DETECTEDTHIS ROUTINE JUMPS TO NOSHPCOL, SHOWING(COLLISION+$04 - COLLISION+$07) THENPLAYER SHIP DOES NOT HIT AN ENEMYDETECTION FOR THE PLAYER SHIP. IF THETHa~~~~}a>~9~5~4~2}k5~l5~mGn/oo#pVz$G,Ru g5`!!h9`!!g;`!!h9`!h!i<~~~9<~;~~74~474;~~~4;~;<~;~9~7~i9~~~09;<;~27~;<;9~~~7479~~~~~~}~f)~b5~f)b5~f)~b5f)~b5f)~b5f+~b7~f+b7~f+~b7f+~b7f+~b7f(~a4~f(a4~f(~a4f(~a4f(~a4f-~a9~f-a9~f-~a9f-~a9f-~b9f5|9<59<59|5|9<59<><|7|;>7;>7;|7|;>7;>@>|4|7;47 UPYPYP]P@o@o@g@]@o@o@kTkPoPo@o@o@g@]@o@o@  kTkPoPo@o@o@g@]@o@o@kTkPoPo@o@o@g@]@o@o@ $e(`$$j(`$$e(`$$j(`$$e(`$$j(`$$e(`$$j(`$$e(`$$j(`$$e(`$$j(`$$e(`$$j(`$$e(`$$h0370370303703703.37.37.3.37.37.3.35.35.3.35.35.3,38,3838,38,3838l0~00~0000~00~000n3~33~3333~33~333.~..~....~..~...,~,,~,,,,~,,~,,,g4~~~~~~~~~~~~~~~i7~87~7        l0~00~0000~00~0000~00~0000~00~0000~00~0000~00~0000~00~0000~00~000j(`$$j(`$$j(`$$j(`$$j+`''j+`''j+`''j+`''j&`""j&`""j&`""j&`""j$` j$` j$` j$` j(`$$j(`$$j( 7w&p7w&r(DDDD@A7w&q!7w&pq )7w&p7w&p7w&rEqJC3C$ C3C$ C3C$ 'C3C$ .C3C$ 2C3C$ 6:DDDD<DDDDA!AAAA A GKOTY^djpw~FaX727    727A!!$00QPQ L7|L%I)Lɀ )?>)L LLLL/L>79L-MUSIC (C)2006 RICHARD BAYLISS!- ݍЭЍNԹFGԢ ;`    ԭ #` ;;L &(&L `8頰Ii,JL"JP }}}MH  KhԼM)(H)ShJJJJVIYJJJJ_be) P)I) H)#h) ԹL=MH)Jqh)twz}m!"A~ DG*G5m58i85}/8}2٧ELG585885}/8}2٧G/2A58LqqL})@o)L /}5$2i%$8ԭ%Խw0}w/S2z /}5Խ2}8ԽPԽSԽ=` `HhL ->Gf{8Z}#S0pGG wah0ڏN`1ߥ>k<9cK E}ys|~ !#%'*,/258;?C ԙ`ԩԙ` FG Lpn`&,`)))L7@@`@)@ @`LPu`t`  $$(,,0488<@DHLTX\dhpt|5~3~5~7~3~5~753~2~0~2~3~0~h3::3~32~0022337755<5~~575~3~2~35r0123456789:;<=>?>=<;:9876543210/0123456789:;<=>?e4=<;:9876543210/h00<0070:00<0070?00<0070:00<0070?00<0070:00<0070?00<0070:00<0070?b$~~~~~~~&~~~~~~~'~~~~~~~)~~~~~~~b+~~~~~~~,~~~~~~~.~~~`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$j(`$$e(`$$j(`$$e(`$$j+`''e+`''j+`''e+`''j&`""e&`""j&`""e&`""j$` e$` j$` e$` r0123456789:;<=>?>=<;:9876543210/0123456789:;<=>?>=<;:9876543210/j(`$ !!!!!!!!!!!!!!!!!!!!!AAAAAAAAAAAAAAAA e    FF    ԙ`ԩԙ` "# Lpn`&,`)))L7@@`@)@ @`LPu`t`  $$(,,0488<@DHLTX\dhpt|&ȱ-L0` ))L L~K}Vf)H)Ah) ȱ},Dȱ},G))DLȱ},GD)Lt>;) L">;I)L}L>)L },G/2>;)й58hk #  J)`) -` }) ԙԩ`L܍JކLN});  })bJ}Mb) ) Lu)}_\eP}\PSiSY-eP8\PSSVebb}) P K ʭ>m!"iLw)8Lh!5}58}8kkt$L58588kktLkhIhnwnt}tti,})=zɐ8鐍z8zLS}G/2zLzɐ8鐍z8zLGKOTY^djpw~(@ # #1&!   !@ p!A;9CqC L7|L%I)Lɀ )?>)L L"#h%!"h%!" h%!"h%!"#333(m.3hł""  :A!C!QDDDDSDDDD^DDDDo!A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!AAA AAAAAAQQQQQQQQQ   U U   H   ~~~~0~~~~~~~h00<0070:00<0070?00<0070:00<0070?00<0070:00<0070?e00<0070:00<0070?2u9@ d:~:8:~8~8~83:~8~8~88:~:~A~?=?A:~:~:=<~=~<~<8<~=~<p?~=~B~DFG~F~D~?~DB@B@?@?=~~;~~8~:~~~~~~~~~~}~~~~rq~~~~~~n"k${*mf? LLL/L>;7LTO THE OLDSKOOL BY RICHARD B '05 ݍЭЍNԹԢ ;`    ԭ #` ;;L &(&L `8頰Ii, LLL/L>$00 LYOU BE MINE BY RICHARD/TND 2004! ݍЭЍNԹ"#Ԣ ;`    ԭ #` ;;L &(&L `8頰Ii, JL"JP }}}MH  KhԼM)(H)ShJJJJVIYJJJJ_be) P)I) wH)#h) ԹxyzL=MH)Jqh)twz} m!"A~ DG*G5m58i85}/8}2٧ELG585885}/8}2٧G/2A58LqqL})@o)L /}5$2i%$8ԭ%Խw0}wpH$$$$$$$""""""""r7~77~7~0~~4~2~02~~~~~~~~~~~~~~~}u7~~~~~976~~~~~424~~~~~~~}~~~~~~~r2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~f5j~G~>~\HDDDHDDDHDDDHDDDUDUp(HDDU'scU's&./DDDD1DDDD5DDDD91!pDDDDHDDD HDDD fff=AAAAAAAGKOTY^djpw~3Xp# ,7 @@W(A!A>7F  L7|L%I)Lɀ )?>)L LiLw)8Lh!5}58}8kkt$L58588kktLkhIhnwnt}tti,})=zɐ8鐍z8zL(}G/2zLzɐ8鐍z8zL }) ԙԩ`L܍JކLN});  })bJ}Mb) ) Lu)}_\eP}\PSiSY-eP8\PSSVebb}) P K ʭ>mr!x"&ȱL0` ))L L~K}Vf)H)Ah) ȱ},Dȱ},G))DLȱ},GD)Lt>;) L">;I)L}L>)L },G/2>;)й58hk #  J)`) -`&ȱ1AL0` ))L L~K}Vf)H)Ah) ȱ},Dȱ},G))DLȱ},GD)Lt>;) L">;I)L}L>)L },G/2>;)й58hk #  J)`) -` }) ԙԩ`L܍JކLN});  })bJ}Mb) ) Lu)}_\eP}\PSiSY-eP8\PSSVebb}) P K ʭ>m{!"iLw)8Lh!5}58}8kkt$L58588kktLkhIhnwnt}tti,})=zɐ8鐍z8zL'}G/2zLzɐ8鐍z8zL/'2z /}5Խ2}8ԽPԽSԽ=` `HhL ->Gf{8Z}#S0pGG wah0ڏN`1ߥ>k<9cK E}ys|~ !#%'*,/258;?Ce~~~~~~~~a9<@EHE@<9<@EHE@<59CGC>;h~4~20~-~-~02~/~~h~4~20~-~-~02~~~~e~~~~~~~~f(e!g(e!f(e!g(e!f$eg$ef*eg&ec9~99~9999~99~999d5~55~5557~77~777r4~-5~7~0~02420/0r4~-5~7~0~<;979;7r4~42~0~-~-/020/+AAAAA!!!!!!!!AAAAAAA !!!!!!!!!AAAAAAAA   t S 3  sP`0   ԙ`ԩԙ`  Lpn`&,`)))L7@@`@)@ @`LPu`t`  $$(,,0488<@DHLTX\dhpt|/(2z /}5Խ2}8ԽPԽSԽ=` `HhL ->Gf{8Z}#S0pGG wah0ڏN`1ߥ>k<9cK E}ys|~ !#%'*,/258;?Cm!"A~ DG*G5m58i85}/8}2٧ELG585885}/8}2٧G/2A58LqqL})@o)L /}5$2i%$8ԭ%Խw0}w JL"JP }}}MH  KhԼM)(H)ShJJJJVIYJJJJ_be) P)I) nH)#h) ԹopqL=MH)Jqh)twz}A lRICHARD BAYLISS1a2A MUSIC FOR THE DMC V4.0 MUSICEDITOR!  OLDSKOOL .DMCYOU BE MINE .DMCBALLOONACY .DMCW.RASTERTIME.DMCBLOBBY WALTZ.DMC DON'T GO .DMCHVSC TRANCE .DMC  SOME HANDY  STUFF TO GET  YOU STARTED  WITH TURBO ASS GAME.SRC(GAME.SPRITES GAME.FONT GAME.MUSICGAME.SCOREGAME.SCREEN  DEMO.DATALDEMO.SRC  DEMO 2.SRCASS-BMP! ASS-COL ASS-VID CHARSET MUSIC SCROLL1 SCROLL2SPRITESSTILLTEXT SOME HANDY C64TASS ROUTINES TO PLAY WITH!!  LLL/L> LBALLOONACY GAME MUSICS BY RICH!! ݍЭЍNԹԢ ;`    ԭ #` ;;L &(&L `8頰Ii, JL"JP }}}MH  KhԼM)(H)ShJJJJVIYJJJJ_be) P)I) H)#h) ԹL=MH)Jqh)twz} m!"A~ DG*G5m58i85}/8}2٧ELG585885}/8}2٧G/2A58LqqL})@o)L /}5$2i%$8ԭ%Խw0}w /2z /}5Խ2}8ԽPԽSԽ=` `HhL ->Gf{8Z}#S0pGG wah0ڏN`1ߥ>k<9cK E}ys|~ !#%'*,/258;?C ԙ`ԩԙ`  Lpn`&,`)))L7@@`@)@ @`LPu`t`  $$(,,0488<@DHLTX\dhpt|                     >tb`)b`)b`)b`)b`)b`)~AA~AAAeHD=HD=HFHD=HD=HFHD=HD=HFHD=HD=HFHD=<;:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZh5~55~5555~55~5555~55~555A~AA~AAA5~55~5555~55~5555~55~555A~AA~AAAi5~55~5555~55~5555~55~555A~AA~AAAh5~55~5555~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~b`)b`)b`)b`)b`)b`)b`)b`)b`'b`'b`'b`'b`'b`'b`'b`'`8~~~8~~~7~5~~~~~3~5~3~5~~~5~7~8~:~~~:~~~8~7~~~~~3~3~5~3~~~3~5~7~`1~~~1~~~3~5~~~~~5~7~5~8~~~5~7~8~:~~~:~~~8~7~~~~~5L@L>5 (-WASTING RASTERTIME BY RICHARD!- qԍ ԍԩB`HHBBL   ԭhh` L2}iLȱȱ}iLȱH h)LXȱCLXȱ LXȱ LXȱLXȱLX}L )H*H  @h) @LhhԽ&ȱ_pL0` ))L L~K}Vf)H)Ah) ȱ},Dȱ},G))DLȱ},GD)Lt>;) L">;I)L}L>)L },G/2>;)й58hk #  J)`) -` }) ԙԩ`L܍JކLN});  })bJ}Mb) ) Lu)}_\eP}\PSiSY-eP8\PSSVebb}) P K ʭ>m!"iLw)8Lh!5}58}8kkt$L58588kktLkhIhnwnt}tti,})=zɐ8鐍z8zL}G/2zLzɐ8鐍z8zLGKOTY^djpw~>t"""̣nn@@@ @@@-++ A 7 L7|L%I)Lɀ )?>)L LUUU ꈈ !( $DDDD*z3DC4(UUU(DDDD1 AAAAAAAA!!!!!!!A AAAAAAAAAAt b`)b`)b`)b`)b`)b`)b`)b`)b`)b`)d5~85~5855~85~5855~85~5855~85~5355~85~5855~85~5855~85~5855~85~5:7eHDAHDAHFHDAHDAHFHDAHDAHFHDAHDAHFHD?HD?HFHD?HD?HFHD?HD?HFHD?HD?HFfA~AA~AAAA~AA~AAAA~AA~AAAA~AA~AAAA~AA~AAAA~AA~AAAA~AA~AAAA~55~5555~55~555A~AA~AAAh5~55~A555~55~A555~55~A555~55~A555~55~A555~55~A555~55~A555~55~A55j~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~j~~~~~~~~~~~~~~~~~~~~~~~~~~~5~7~5~~~~~l5|8o[o58L58588}5=}8>o =L4L 58LmL/75}58}822?2/,2>,L58 }8Խ Խ#Խ=` ->Gf{8Z}#S0pGG wah0ڏN`1ߥ>k<9cK E}ys|~ !#%'*,/258;?CGKOTY^djpw~H  H>;74>;74>;74>;74>;74>;74>;74>;74(((( ?O?O?O?O?O?O?O?O$$$$<;74<;74<;74<;74<;74?????? ???????????????? ? ?? ?? ?? ?? ?? ?? ?? ?0770770707707707077077070770770707707707077077070 0WJ_tY@e= U    % AIIII AAAAAAAAAAAAAAAAAAAA    %(LLL/L>LL LTHE BLOBBY WALTZ BY RICHARD/TND! ݍЭЍNԹԢ ;` ԭ #` ;;L &(&Lҁ `8頰Ii,JL"JP }}}MH KhԼM)(H)ShJJJJVIYJJJJ_be) P)I) TH)#h) ԹUVWLɃ=MH)Jqh)twz}m!"A~ DG*G5m58i85}/8}2٧ELG585885}/8}2٧G/2A58LqqL})@o)L /}5$2i%$8ԭ%Խw0}w/2z /}5Խ2}8ԽPԽSԽ=` `HhL ->Gf{8Z}#S0pGG wah0ڏN`1ߥ>k<9cK E}ys|~ !#%'*,/258;?C;<,/258o>Lɐ Ƚ m #m#&i&)i)&&)]ɐ ȭmm;i;<i<;;<588222/8mi Լɐ )L}o A=951(LL }5 %G%A ((    <;74<;74<;74 ?O?O?O?O?O?O?O?O 76424/24 76424;97 ;9724474 ;9724;>; 76424/24 ??????????7707707299299294;;4;;4;4;;4;;4;4;;4;;4;4;;4;;4;4;;4;;4;4;;4;;4;4;;4;;4;4<<4<<4<0002 4 442 56" 3(E5 -A&ȱGNL0` ))L L~K}Vf)H)Ah) ȱ},Dȱ},G))DLȱ},GD)Lt>;) L">;I)L}Lڈ>)L },G/2>;)й58hk #  J)`) -` }) ԙԩ`L܍JކLN}); })bJ}Mb) ) Lu)}_\eP}\PSiSY-eP8\PSSVebb}) P K ʭ>mX!^" iLw)8Lh!5}58}8kkt$L58588kktLkhIhnwnt}tti,})=z̊ɐ8鐍z8zL}G/2zLz̊ɐ8鐍z8zLՆ GKOTY^djpw~  #}}TT  @XXA LLUDU L7|L%I)Lɀ )?>)L L HDDDHDDD(HDDD HDDDDwwwq7Fc3333(,/DDDD1ZDDDD5DDDD<%>DDDD<ce2AAAAAAAAAAAA!!!!!!!!AAAA  ~~qC~>C~EF~~FEC>~C>~AC~~CEFH~CH~JK~~KJHC~HC~FH~~HJKfm77g4m77fm77g4m77fm77g4m77fm77g4m77f"m<C~CEFHJ~MJ~HJ~JHF~H~CH~CHJH~C~H~JH~JH~~HFEpF~> LLL/L>55 LHVSC TRANCE BY RICHARD BAYLISS!! ݍЭЍNԹmnԢ ;`    ԭ #` ;;L &(&L `8頰Ii,JL"JP }}}MH  KhԼM)(H)ShJJJJVIYJJJJ_be) P)I) H)#h) ԹL=MH)Jqh)twz}m!"A~ DG*G5m58i85}/8}2٧ELG585885}/8}2٧G/2A58LqqL})@o)L /}5$2i%$8ԭ%Խw0}w/J2z /}5Խ2}8ԽPԽSԽ=` `HhL ->Gf{8Z}#S0pGG wah0ڏN`1ߥ>k<9cK E}ys|~ !#%'*,/258;?C ԙ`ԩԙ` mn Lpn`&,`)))L7@@`@)@ @`LPu`t`  $$(,,0488<@DHLTX\dhpt|R(A! AA !!!!!!!!!!!!!!!!!!!!!AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe      hFX5~5~5~5~5~5~5~5~5~5~5~5~5~j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555j5u555l~5}~~~~~e44444444444444444444444444444444444444444444444:i85<585<585<585<585<585<585<585<585<585<585<585<585?585? ԙ`ԩԙ`  Lpn`&,`)))L7@@`@)@ @`LPu`t`  $$(,,0488<@DHLTX\dhpt|AAA AQ!!!AAAAAA!A   t f  a~~~~~~~~~~~~~~~~~~~~~~pC~>C~>~F~EC~E~CJ~~~~~H~CH~CHCHJK~K~JK~JH~~~~~lL~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"{&ȱpL0` ))L L~K}Vf)H)Ah) ȱ},Dȱ},G))DLȱ},GD)Lt>;) L">;I)L}L>)L },G/2>;)й58hk #  J)`) -` }) ԙԩ`L܍JކLN});  })bJ}Mb) ) Lu)}_\eP}\PSiSY-eP8\PSSVebb}) P K ʭ>m!"iLw)8Lh!5}58}8kkt$L58588kktLkhIhnwnt}tti,})=zɐ8鐍z8zLJ}G/2zLzɐ8鐍z8zLGKOTY^djpw~hijR` ng2}  7BQ[OA!5] L7|L%I)Lɀ )?>)L L7w&p7w&rP!DDDD@A7w&q7w&#q 7w&p7w&p7w&rkErJz UcC3C$ C3C$ C3C$ 'C3C$ .C3C$ 2C3C$ 6:DDDD<DDDDR(PDDDD                )K`~~~~~~~~~~~~l~5}~~~~~~~~~~~~~~5}~~~~~~~~~~~~~`~~~~~~~~~~~~j5~5~5~ 585?585?5v~~~~~~~~~~~~~~~t~~~~~~~t~~~~~~~t~~~~~~~~~~~~~~~~~~~~~~~v~~~~~~~i=585=585=585=585=585=585=585=585=585=585=585=585A858A858A858A858j?`)j?`)j?`)j?`)j?`)j?`)j?`)j?`)j?`)j?`)j?`)j?`)j?`'j?`'j=`'j=`'j;`%~11~3~33~3k1131~1315531~1315578~<:8::87~787j?`)e5`)j?`)e?`)j?`)e?`)j?`)e?`)j?`)e?`)j?`)e?`)j?`'e?`'j=`'e=`'uc7z> (0``nff<fff~fff l|flxpxlf````x`~f~~fffff`~f|~ffffff~fffff<ffff~~fBf<|~>00000000 88p88p<~~~~<6>````````~<<~<~ff~<ff<>>0000>v66ÙÙÙÙÙÙÙÙϟσϝÁÙ???????Ǐ???????Áɀ<Á<Á癙????L@L JhE>",(8-MUSIC BY ZONIX! PLAYER BY JCH!- (.+1 4 4y4m  + =5, .1;G ?`HHL[GL#GLGi+ .(1+LL[JG>LUDS ԼPHJJJJMh)PQSRH)Yh)\VT7eh8kJnb9 >b >b_N8ԝO8ԝ L[S=VY}SY\i\P! 0 8_ bnkn}8YԽ\ԭ Խ ԽԽԽ A=L[0Lhh`'8K_s-NqBtZ,{'Q77 W N nhn9F "$'^)+r.81&4B7:j;`%j;`%j;`%j;`%j;`%j;`%j;`%j;`%j;`%j;`%j;`%j=`'j=`'j;`'j=`'g5~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~k8~75~~35~~35~~578~7~5~35~~~~~~5~l5~55~5~55~~55~5~5~55~5~55~n3~33~3n1~11~1~11~~11~1~1~11~1>AEI NRW\pbLhnu|p@p@xXȹĘ0 .,H (D" &AA /  @00  #&),/< (D (D ڮȪڥAAAAAAAAAAA.ffffffff>`<|bf 0fF`f~|ff|fff~~`|f|f<00`0~~p  p (+ȱ`|;0NB~4>8ԩԝhekJn}uzn>d>ZH)ɀhH)>h)J;Ўɠ h ;L+h)? qH)th)wz};;-;(i(+ Y8SY\\MVIV     e>D0D Lb} }h iDADzDw}q}tL8qt } }Le0KeLn0" }_ }bn(kIn  A @ Ȁ@ ~     A @@@@~/N0<<0023532320+0+.0232.0532.00235023502350235 +++++++++&&&&''')) 0cKrDb'rDcKrDb>~~@~~~@~~@~AA~~kA:}:A=?A=6}6:<=:?8}8<=?=}~~~~~m:~s~~<<<~<:<~<~<<=~~:<<<~<~<~=~~~m:~5~}~~~:~5~~}~~:~5~~~~8888~:~<~:~kA:}:A=?A=6}6:<=:?8}8<=?=}~~~~~~~ai~a~~i~~~~~a"dQk.b+kdQk"b+kdQk.b-kdQk"b+kC':000000   :5  :01 0     * *              *        1((ȱ0@@      7x"*Mz+h+gx$$$$"""" ~~~~~ ~~ƒ~~~  ~~ƒ~~~~ $ł~$~~&$&'~~+)''()()~'()$"+.0.0357'()()~'()++.+.05320" "     +.        )Ə~~,Ǐ~~~ȏ~~,Ǐ~~~@@@~ A @@@@~/``` @  023502350235023575353.0<0<<0<0<<0<0<00<0'&$"ċą  00  0000000.......i~a~~i~~~~~ai~a~~i~~~~~ai~a~~i~~~~~p.~~~~~~~q.~~~~~~~r8~~~~~~~}~~~~~m:~ai~a~~i~~~~~ai~a~~i~~~~~ai~a~~i~~~~~c~~~~~~b+kdQk"b+kdQk.b+kdQk"b+kdQk.b+kdQk"b+kdQk.b+kdQk"b+kdQk.b/kdQk"b+k ;SSEMBLE T - UTORIAL ;---------------------- ;RODUCING A DEMO WHICH USES A 1X2 ;SCROLLTEXT USING SOURCES LIKE A ;SPLIT UP BITMAP PICTURE, COLOUR ;ROLLING AND ALSO PLAY MUSIC MESSAGE = $5000 SOFT = $05 FISHPOS = $0370 *= $4800  SEI LDA #$00 STA $D020 LDA #$07 STA $D021 ;REPARE SPRITES LDA #$FF ;TURN 'EM ON STA $D015 ;NO. OF SPRITES = 8 STA $D01C ;MULTICOLOUR LDA #$00 ;DISABLE EXPANDED  *   *   *    *     *     *    *   *    ,,D)= STA $D017 ;SPRITES STA $D01D ; LDA #$FE ; STA $07F8 ; STA $07FA ; STA $07FC ; STA $07FE ; LDA #$FF ; STA $07F9 ; STA $07FB ; STA $07FD ; STAÆ'+)7'+*.$,:$*.$,:$*.&))5&)',$,8$',$,8$',     " "     0+.0+.753575352353235302353202" "   "" "" "  2353235 BNE COPYDAT ;ELSE LOOP ;LEAR BOTTOM BIT SO YOU GET NO MESS ;WHEN YOU START A SCROLLTEXT LDX #$00 BLANK LDA #$20 STA $0798,X INX CPX #$50 BNE BLANK ;NITIALISE THE SCROLLTEXT LDA #MESSAGE STA READ+2 JMP READ SETPT STA $07BF CLC ADC #$80 E *-5 ;THE COLOUR ROLLING LDY #$0C ;SCROLLTEXT. DEY BNE *-4 LDA #$1B ;CHAR MODE STA $D011 ; LDA #$12 ; STA $D018 ;CHAR AT $0800-$1000 LDA SOFT ;SMOOTH SCROLL STP1 LDA #$FD ;OUR SECOND SPLIT CMP $D012 ; BNE *-5 LDA #$3B ;BITMAP MODE STA $D011 LDA #$18 ;CHARSET FOR THE STA $D018 ;BITMAP AND TURN STA $D016 ;ON SCREEN ;THIS SECTION. ROLLOOP LDA COLOURS+$01,X;ITS A LOOP STA COLOURS+$00,X;THAT WILL INX ;SCROLL DATA CPX #$0F ;TABLES. BNE ROLLOOP ; RTS ; ;MOVE THOSE SPRITES AND EXPAN $07FF ; LDA #$0D STA $D025 ;MULTICOLOUR MODE1 LDA #$0B STA $D026 ;MULTICOLOUR MODE2 LDA #$05 STA $D027 ;THE MAIN COLOUR FOR STA $D028 ;THE SPRITES. STA $D029 ; STA $ CPX #$10 BNE POSLOOP ;HE FIRST THING WHICH WE ARE GOING ;TO DO IS FILL THE SCREEN WITH THE ;DATA FOR THE VIDEO AND THE ;COLOUR OF THE BITMAP PICTURE LDX #$00 COPYDAT LDA $4000,X ;HIS PART HERE STA $0400,X TA $D800,X ;ALL THE DATA LDA $4500,X ;FROM $4400 AND STA $D900,X ;THEN PASTES ALL LDA $4600,X ;DATA INTO THE STA $DA00,X ; LDA $46E8,X STA $DAE8,X INX ;OUNT 256 TIMES  STA READ+1 LDA #>MESSAGE STA READ+2 ;REPARE AND INITIALISE THE RASTER ;INTERRUPT LDA #INT STA $0315 LDA #$00 STA $D012 ;INIT RASTERLINE  RASTER ;INTERRUPT TO GET SOME EFFECTS. INT LDA $D019 AND #$01 STA $D019 BNE IRQ JMP $EA81 ;HE MAIN LOOPS TO CALL OUR ;ROUTINES TO SLIDE THE SCROLL, DISPLAY ;THE BITMAP, MOVE SPRITES AND ALSO ;PROPERLY PL CODING CHAPTER SCROLLTEXT LDA SOFT SEC SBC #$02 ;CROLL SPEED AND #$07 STA SOFT BCS ENDSCR LDX #$00 WRAP LDA $0799,X STA $0798,X LDA $07C1,X STA $07C0,X INX STA $07E7 INC READ+1 LDA READ+1 CMP #$00 BNE ENDSCR INC READ+2 ENDSCR RTS ;OW WE DO THE RASTER SPLITS FOR THE ;DEMO. SPLITS LDA #$E6 ;BOTTOM OF SCREEN CMP $D012 ;RASTER SPLIT FOR BNA $D016 ;IS SET LDX #$00 LOOP1 LDY TIMING,X ;A SPECIAL LOOP2 DEY ;ROUTINE THAT BNE LOOP2 ;MAKES THOSE NICE LDA COLOURS,X ;MULTICOLOUR BARS STA $D021 INX CPX #$10 BNE LOO MULTIC LDA #$07 ;YELLOW BCKGROUND STA $D021 ;(FISH PIC'S EYE) ;ROLL THOSE COLOURDATAS SO WE CAN HAVE A ;COOL COLOUR SCROLL. COLROLL LDA COLOURS+$00 ;YOU SHOULD STA COLOURS+$0F ;ALREADY KNOW LDX #$00 D THE ;SPRITE POSITION MOVEFISH LDA FISHPOS+$00 ;YOU SHOULD BE CLC ;FAMILIAR WITH ADC #$01 ;THIS THING STA FISHPOS+$00 ;HOPEFULLY LDA FISHPOS+$02 ; SEC ;SUBTRACT 1 SBC D02A ; STA $D02B ; STA $D02C ; STA $D02D ; STA $D02E ; ;ALL A LOOP TO SET START POSITION FOR ;ALL FISH ACCORDINGLY TO THE TABLE LDX #$00 POSLOOP LDA POS+$00,X STA FISHPOS+$00,X INX  ;READS ALL DATA LDA $4100,X ;FROM $4000 AND STA $0500,X ;PASTES ALL THE LDA $4200,X ;DATA TO THE STA $0600,X ; IN BANK LDA $42E8,X ;3 STA $06E8,X LDA $4400,X ;HIS PART READS S SHPOS+$06 ;TO SPEED LDA FISHPOS+$08 CLC ADC #$03 ;ADD 3 TO SPEED STA FISHPOS+$08 LDA FISHPOS+$0A SEC ;SUBTRACT 3 TO SBC #$03 ;SPEED STA FISHPOS+$0A   ? .TEXT " " _3S .BYTE $00 _  #$00 ; TAKE A LOOK EXPPOS LDA FISHPOS+$01,X ; AT THE STA $D001,X ; MISSILE LDA FISHPOS+$00,X ; BLASTA CODE ASL A ; TO REALLY ROR $D010 ; UNDERSTAND STA $D000,X ; WHAT STAND TO REALLY0@( BLASTA CODE)Л MISSILE00@( AT THE( TAKE A LOOKPIXELS.SO THAT THEY CAN MOVE MORE THAN 256EXPAND THE POSITIONING OF THE SPRITES0@((80@(0@( i(0@( 0@( (SPEED8SUBTRACT 3 TO0@( 0@(i(ADD 3 TO SPEE0E,$03,$01 .BYTE $03,$0E,$06,$00 .BYTE $02,$0A,$07,$01 .BYTE $07,$0A,$02,$00 TIMING .BYTE $0C,$0C,$0C,$0C .BYTE $0C,$0C,$0C,$0C .BYTE $0C,$0C,$0C,$0C .BYTE $0C,$0C,$0C,$0C FISHPD .BYTE $01,$02, DATA0@(THAT WILL00@(ITS A LOOP(THIS SECTION.0@(ALREADY KNOW00@(YOU SHOULDCOOL COLOUR SCROLL.ROLL THOSE COLOURDATAS SO WE CAN HAVE A)!З(FISH PIC'S EYE)(YELLOW BCKGROUND)ЗON SCREEN MULTIC)ЗBITMAP AND TURN(CHARSET FOR TG)ДRASTER SPLIT FOR0 (BOTTOM OF SCREENDEMO.OW WE DO THE RASTER SPLITS FOR THE0`0@*8(0@*0@*)i(0)L80@*D80@*E88(0)8(()))0)(88)((CROLL SPEED80 8THE INTRO CODING CHAPTEROU SHORUPT TO GET SOME EFFECTS.OW PLAY AND RUN THE RASTER0 L8 XCLEAR IRQ FLAG )(NITIALISE THE MUSIC AT $1000)Ѝ)Щ() ܩ()ГINIT RASTERLINE()D8)E8INTERRUPTREPARE AND INITIALISE THE RASTER0@*D80@*E8NITIALISE #$01 ;TO SPEED STA FISHPOS+$02 LDA FISHPOS+$04 CLC ;ADD 2 ADC #$02 ;TO SPEED STA FISHPOS+$04 LDA FISHPOS+$06 SEC SBC #$02 ;SUBTRACT 2 STA FI) IN BANK)BDATA TO THE)PASTES ALL THE)AFROM $4000 AND)READS ALL DATA0)@HIS PART HERE(COLOUR OF THE BITMAP PICTUREDATA FOR THE VIDEO AND THETO DO IS FILL THE SCREEN WITH THEHE FIRST THING WHICH WE ARE GOING8( LDA FISHPOS+$0C CLC ADC #$02 STA FISHPOS+$0C LDA FISHPOS+$0E SEC SBC #$02 STA FISHPOS+$0E ;EXPAND THE POSITIONING OF THE SPRITES ;SO THAT THEY CAN MOVE MORE THAN 256 ;PIXELS. LDX ((((((((((`((p0((@((P((((0((((( ( ( ( ( ( ( ( ( ( ( ( 0( ( ( ( (( (((( ((((((0((((TIMING OF THE COLOURSCROLLDATA TABLES FOR THE COLOUR SCROLL AND`8( DOES ROUTINE)Л WHAT THISn)Л UNDER THIS INX ; ROUTINE INX ; DOES CPX #$10 ; BNE EXPPOS ; RTS ; ;DATA TABLES FOR THE COLOUR SCROLL AND ;TIMING OF THE COLOURSCROLL COLOURS .BYTE $06,$D0@(0@(TO SPEED(SUBTRACT 280@(0@(i(TO SPEEDADD 20@(0@((TO SPEED8SUBTRACT 10@(0@(HOPEFULLYi(THIS THINGFAMILIAR WITH0 0@(YOU SHOULD BESPRITE POSITIONMOVE THOSE SPRITES AND EXPAND THE`8(TABLES.SCROLL$03,$02 .BYTE $FF,$FE,$FF,$FD POS .BYTE $00,$40,$00,$50 .BYTE $00,$60,$00,$70 .BYTE $00,$80,$00,$90 .BYTE $00,$A0,$00,$B0 HE)Щ(;BITMAP MODE%A*)З(OUR SECOND SPLIT8()!н8MULTICOLOUR BARS8MAKES THOSE NICE0ROUTINE THAT08A SPECIAL()ДIS SET8SMOOTH SCROLL)ДCHAR AT $0800-$1000()Д(CHAR MODE%A*( SCROLLTEXT.%A*THE COLOUR ROLLINULD ALREADY KNOW THIS BIT FROMSCROLLTEXT.HE USUAL ROUTINE FOR CALLING AL) ) 8 8 8 )0 (PROPERLY PLAY THE MUSIC.THE BITMAP, MOVE SPRITES AND ALSOROUTINES TO SLIDE THE SCROLL, DISPLAYHE MAIN LOOPS TO CALL OURL)8 ))(0)ЀINTER THE SCROLLTEXT8(P)0( (WHEN YOU START A SCROLLTEXTLEAR BOTTOM BIT SO YOU GET NO MESS8ELSE LOOPOUNT 256 TIMES)ڽ)F)ڕ ͽ)FDATA INTO THE)ٕTHEN PASTES ALL)EFROM $4400 AND)ؕALL THE DATA)DHIS PART READS))B3 0@(00@((ALL FISH ACCORDINGLY TO THE TABLEALL A LOOP TO SET START POSITION FOR).Д)-Д),Д)+Д)*Д))Д)(ДTHE SPRITES.)'ДTHE MAIN COLOUR FOR()&ДMULTICOLOUR MODE2( )%ДMULTICOLOUR MODE1( ))))())) A DEMO WHICH USES A 1X2----------------------SSEMBLE T - UTORIALTURBO" &"Ȇ#"!Փ$ń&  ƃ&"ń &ŁƄ OPOSLOOPOCOPYDABLANREAINHOLIRMOVEFISSCROLLTEXSPLITENDSCWRASETPLOOPTIMINLOOPCOLOURCOLROLROLLOOEXPPOFISHPSTATUINHOLENDGAMEXPANMVPLAYEBULLETMSHIPCOMISSILANIMATBULLCOCHKHIRANDOCOLROLEXPLPLXLOOUDOWSETULEFSETDOWRIGH