ER SAMPLE CODE BY GPZ/HIT€---------------------------------------ÿTURBO(((&%( (''$'((#((ƒ( '(„†„†–†ƒƒÅƒ‘’““ƒƒ˜š™˜ƒƒƒńń(( •Žƒ•ƒ–ƒ˜ ƒ•ƒ–ƒ˜˜š`Éÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÿÿ¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿ÿÿÿ}Éÿÿÿÿÿÿÿÿÿƒ LO ­ÝE ­ÝJ ­Ý )…µ©JJJJ…¶­Ý)ûÝ­Ý) µ…µ©ÿ Ü­ Ý𥶠…¶©Ý©Ý`©Ý©Ý©Ý©Ý©Ü©Ü©QÜ©ÿ Ü`9 êêêêêêêêêêê`$›  êêêêêêêêêêêêêêêêêêêêêêêêêêêêê`ÿÿÿÿÿÿÿÿÿÿÿÿìÿÿÿÿ‹Ž2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIRÑCIASAVE±CIASAVE²TEMÐJOY3REÇJOY4REÇREADADAPTEÒDISPLAYBITÓSKIÐSKIP²SKIP±LOOÐSCREEÎROLÁNOFIRÅFIRÅJUMÐSETUÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ÿÿÿÿÿÿ-ÿÿÿÿÿÿÿÿÿÿNÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹Ž,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿASAVE±CIASAVE²TEMÐJOY3REÇJOY4REÇREADADAPTEÒDISPLAYBITÓSKIÐSKIP²SKIP±LOOÐSCREEÎROLÁNOFIRÅFIRÅJUMÐSETUÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ÿÿÿÿÿÿ-ÿÿÿÿÿÿÿÿÿÿ ~ìQ’xìR’c¾ ’ Z ëöKö§ qAN{m@*FfGnKrä>R^ƒèõ @ö tCNcmB6äBR=Ü{%åJN}mE>Enê¶Bf@fFn@hFlEzÞ_¯R¤”[×-0J*f’2G†³ . ˆpç$ž…gKæT~Ë¡,VzSjVv´WL mV0’æZ›/î‡Êm-nFÙ’+N?m*"çV^âmì½CV9+‘Y XVÛ'àèp‘„Àdlhï_/*r 4dnú é´ía‰.çcîdRÖ|Î ~nÆs¨8™’5X»kì¿Ü¦fl“Êo¦hn¦iihhhkkkjjeeddggfa``cbû×ó~yxzuwvprMOIJDFC\YZWS,($#?:1ò[íîæþñÈÂÔ©½°‡•…Ñ´®é‘øµ-½3²]Ô{Á8›z§qRôk¹È—ôh²TUP‰“ SERIAL PORT: INPUT“ FORCED LOAD“ CONTINOUS“ TIMER: START)Ý“ CONTROL REGISTER A©,)Ý“ TIMER A HIGHBYTE©()Ý“ TIMER A LOWBYTE©()Ý“ => INPUT©(“ PORT B DIRECTION‰‰ CIA 2 SETUP‰€---------------------------------------0€---------‰®Fa+Š®J®ùR‡VÕÆŽª¸¦ú–¸ªŽÆj bv:Ìâ”»ˆ*€ûBÑD”Öž!üª|uQ&J"Qu¶ŠÈVÈãGC៊åN°¾ªˆÉˆªd—" ^ vv††ˆb®>µˆÀ€€n FÎ(EX³¸'5 H‚D zz……IŽ ¾µ. „±¾W¶zƒqa©©`—Œ¦'(Av¸Ð½¾±¸ …¼¶Â"°µII"µ€S®®®NNY•D¡²F}²¹­Cµœ¤£Eæ«·µ±¹©‰°EC¿¶v£LRdÓE’«¶6vVFNJÙa¾ß‰pµ‚ƒ±ø‰©¹±µ·¶ÉÉÉ}» ),˜CHECK BIT 2­)ݘREAD CIA 2 P.Á)ݘ=> BIT 2 INPUT),û˜DATA DIRECTION­)ݘCIA 2 PORT A‰‰ READ BUTTON JOY 3‰8JJJJ0©(8)(0@*­)Ý“READ CIA 2 PORT B‰‰ READ DIRECTIONS JOY 3+JOY 4‰0@*­)Ý0@*­)݉‰ SAVE CIA 2 REGISTERS‰€---------------------   ô­¶~¶¢Ii´kÞ;¶k±&©BkPÀž™·l:ÓÊN`ÚG²žØBN`žGÏžÐÉÐ … C&«á’qÜÜ(Ü&›¶jŸÔNf±0ƒÖ¸*HÛ Ãì5È?n–~ ú6 —Ñn¾o;n%n”n¤o!n+n0”2•»µ o '”|€üºNÉÄ·žŸ¦F–f¯JØ9ß(µLy˜6EÖˆ»õ îp(” ÎáÇÐÖ ¥Pi€ŸERZ¨ÎºÚŠ„†ÎÚ“°ÈpXH`AÀÙØ<Ô€Uh+*ØP<¥'úuDî°Ä„S•†¤¨ð Š8娰ÆH8…G¥ü娰Æý…ü±Gˆ‘üÐùÄ©ðŒ±GÆýÆHÆ©íÏ‚ž 2072 MDGPACKERØx©0…¢w½S]ŠüFÊô¢-ð ¹Ê4Im8xøxx @€  ¾é4Ç&¹•&™ ÈÐ÷ UðF UÐ0 TiÉ'Ð UiÐ SiÉ ÐÈ Si ÉР Viêêêê…¨¦þ¥ÿ ¸¥H…ÿ¥G…þ U…ð ,©…¨ SAMES" !€THIS IS THE DRIVER THAT I USED TO PATCH€---------------------------------------€USUAL ($DC00/$DC01) ONES.€THAT CAN BE PROCESSED EXACTLY LIKE THE€POSE 2 'VIRTUAL' JOYSTICK-REGISTERS€ADDITIONAL 2 JOYSTICKS AND HOW TO COM-€THIS CODE DEMONSTRATES HOWM“Šl(n,l.nYSÊ X`jSj)pn’’å]NUm_*ÝKå^LímX,ZnTnu=BL]m]&è³,nÂQlTlZlXl’g-f-hLkLhük j éw­|­~­yMxMÈ|~bw-v-Dq=p”Ø{-e-`-b/›Ac¬b¬l¸êLlün oˆcŒbŒ£ƒ-u-Êz=u=’¸ša-h\lª}ªoLoüi Ú}Št,t>Ä"òm|õ+Z’Œ…Ám-ÅTPŠí_íÒÅÄO‚L’dn¬ ±LLõ¨LKì²B“t… 4&¤,obìì¢D,j82¥õe]MCÜ; áòËÑmM- íÍ­¦j¤Î¦eÉX‰Ü¤¥¥ùm€s .CX.ÈïEhfqzg€tõrï÷ã-u¡y› ›ï0Ú*ô|nü´‹iøÁîLcÁ H2A˜„eÚ‘rÁrlwAuF„*Yë.Š:]4…«_º ¹Y¬XΉ­ˆDÅŒmØÂzÑgA ݺÖmJî?a ‚L4‚xl~lxT ÙyÅê`8}l)ÎxîÖw}|g²>TBu›Cµ_É]KlóB£oG VfO’(])RîGqì’}lcl}nqè¾ì’î}ìW’`’COUNT SIGNALS AT CNT1’CIA TO OUTPUT SOME) Ü’=> WRITING $FF CAUSES©(ÿ’SERIAL DATA REGISTER“ SERIAL PORT: OUTPUT“ FORCED LOAD“ CONTINOUS“ TIMER: START)Ü“ CONTROL REGISTER A©,Q)Ü“ TIMER A HIGHBYTE©()Ü“ TIMER A LOWBYTE©(‰‰ CIA 1 SEÈFD“‰8 &u¹¨ÖÔtxaQÂË‚½gÄTfÄBà‘T hAPL'''ðµd-ðbÔp§›®Eڌţû¯uÄúoµgà{¹JbwMˆQ%O®œžšioM¬Eñ’ϹñlmR½9j}#³ƒ}$“ ¬Ð±ÊDn⢮—2 øU”\RÝu³©½~‰Oe«q§˜)ýh“JFÝm“9Ôv§Ù ½eFì°­“ЯɑÔw§è‘†7-yu=@ȯ ð!讚ZâQÛ§}Àuý~“P^ÝcU&ˆ‘ðyÝn³5™“nÈ‘Db°¬½`ÄmðF¬$$lðŽ­------------------------------`)Ý0©()Ý0©(‰‰ RESTORE CIA 2 REGISTERS‰08 ,­8ð8“BUTTON PRESS IF ZERO­) Ý“READ CIA 2 SERIAL IN’COUNT SIGNALS AT CNT1’CIA TO OUTPUT SOME) Ü’=> WRITING $FF CAUSES©(ÿ’SERIAL DATA REGISTER‰‰ READ BUTTON JOY 4‰8 8ÎkÄüï J'vx±V(64HH}³¶HJNFVv6}IÅø d¶}¶¶¶±Ss<¦M%¥=uÍ­àynáxnÞc±…ãw½5 ƒt½MLá»\‡Ïm£âª]aM™DM!H¯¦ÜÄr·ý/-\ÁR­…³Ô]!!K_Šràuë\µ %MàïÏóHa —Ïoi®(8¾¦£æ§}Œ kmu,|LmºÃimd{glÑΆ¾Ã²M-£ Ô›J»¤8² LÇ£ ý.ùÄ“)´Mõ­!ê¬mjct}Vö7±ù M¤Íý{º.Ý‹+L1°9---2AŽ:gð#«EH ÝÐéé¥ÐècS'uÆ››gi ------------------€ ADDITIONAL VIRTUAL JOYSTICK-REGISTERS€ READS ADAPTER AND COMPOSES THE€---------------------------------------L8) €---------------------------------------0(¶0(µ€---------------------------------------€"BOMBMANIA" BY "CLASSICAL Gppp`HXp͈™¨ÖÒ,RâN¨X†ƒ+µÐÚÎÆÖö³…³º :P'®@0h†ÈȆÑÅÛR˜(Ðpˆ‚IË«Š_¯ ÔÐãÐð$ŠŽÑÐõªóD[‹ܶ𠺺c‰Q Iu¥H¬’xˆÊ§Ø°Ævb¼ØÀÀ'"ÎÜFqº¨©¥- ª?Öh†¸t€‡ˆ.ÊwÈ ,eK@ˆÞìЈ*žÊû!CdŽŽ¶ŽI…¸®†Ö†®XI# ÈnÆ®º! Æаºá³4“³-C ±Ë,¶¾Ép­†‘ó´Hn ´µ‰ÕÔ²>` °°Ì¶‹ÖÖÖ‰¶övJpuûJýF@¦Ði ðš Uðé TiÉâÐ TiÐÙ  Vi Éð ÉÐÊ  Vi.ÐÁ Ðõ TO READ THE€---------------------------------------€ MAY TOAST YOUR CIA'S !€ YOU ARE DOING! WRONG CIA SETUP€ UNLESS YOU REALLY KNOW WHAT€WARNING: DO NOT MESS AROUND WITH THIS€---------------------------------------€4 PLAYER ADAPT,¾’ìÏ0¨Ü¨¨8©¨«ª«¨K«ì÷ª¦k¥mÈʨÒQ_ëd³`L^ž#²Ðö4øÓ‰g^z"meb*ò{le5|e¨ZoÄiel, Û}kSd¦imni]d-|\](9ßCKh,dgV=mJk<,]â_=ez¦hmdå,5Mñ›Hd¢|î_ï }¦l¦¦dm¦mmmiÈÈÈ©…§¦û0 ú*&§ÆûˆÐòª`H¡ÿ…ú¢†ûäÿ¦þÐÆÿÆþhÝàçÐÙ†©4….XL…ª´é V¦uËH¥§uبХРhÉЩÐÞheüª˜eý…H  úž2061¢ÿx𨠣ý Pý ý [ÿX Sä ¿ã "ä© Ð!І Då¢G©ؽKàÊòLàx©4…¢½“èÐ÷îéîì­ìÉÿÐêL      KC() x©é…-ê깕'™ËÈÐ÷L™eʈÀÿÐóÎ4Î9ÊÐ ä×Çe ž†-„.L´‚/ ûûç{èüi·të‹úhЍhPéà~¨¡oØ~p“ {.‹ÒuZ'ƒ`ËF± i2¿c.ne.}Mhc¥ ŒohMo¨±jeX­rQhlEb%l˜ln[¼kMndjlhyyh~«h htM.ed~y`l~MybMtÞaaAMlciMabbfÑ{yàMbxMkbyenu+dcjM}bixnydbcM)(?}‡#,9"?>M_MCCC¦NM’æDïFìŽÂÃv@íÏ99%¹*>«u¶)I8ªØHjª’+Å"¼jc­½šüPä¹ìI·˜åG¢ à „7«ÄD:VñÃgò”Ÿ½Üc£2W%—)¨ºOkAîïê,Â3½ÑC)é'_Ø¥Ïæè q y…„‡Á„ºm™Ìniƒ glfa§ïŸú¿PBÿ{zkuhkjt£-wvkqpsrLv­IHKJrsEDGONFIAK@CB]\_OII^YX[ZUTWVQPSR-d"¿’.?+*%$'&,/! #"=<ùø98;.:/547561032yù ‘¶ Ì     ¦=M¦E ù×®(îéèÊ8Ìä¸çæáXÒ…âýü•þùøû¢úõïô÷ñöñÿìììðóf“òÍÌÏ ÍÎÉÀÈËøÊÀÖÅ8ÄǦ`ëÆÁAöÀÀà 4.(æƒ,¤.“›s«—Ù~Ûqƈpâ_iÒ€â~«ÒzæR«óó÷¦Ò‹ánl"‡åVæCŽÄXŒÄZsPÈG2‡8Ì!7s-È42‡¤)hr—J¶2‚‹Å—JýNƒ²c‹BªX%7BE‹µ0*²\‹˜•V¥‹£µAB7íq¦DÄ$¤¢zö‘Ò„Z †, hU²J‹ë²I‹÷²H‹ó²O‹ÿ²j‹^²ê‹9²f‹*²æ‹²v‹²7‹ [{wí‘ß%[ŽmÒ†ön²Ì?ˆ²b‹r\å¶l0Üx•Š•[…m67šq¦ËÀå–ȳ‹“µi, ²S‹ F¶m`Ë´º¢—}–À|½]– ÏKÐ@×ðéVзðüŠEVðÔ´Ð©ðŒ´§}ˆ£Õ¬ÀPx¤hýeÄdp{!E~Äbà [¼ýxñÕ´À´à´¢–Ö(mã‚.g^y|êSg‡0s-'KdebjQ©l=aîkjbŠßm>„(|^{¼ì¦|k¦xcl`k/fÿìrfhnÒçC”&8N*lsOš@lkþ— etjå˜jþyjgfdˆ.g{Œ9ÔѦdÄm¹õckÅè%%DDD*+(n·6FÂÃÀÁÆ*ÊËÈÃÉÎÈÏÌÍÒÓÐøRÑÖ×ÔÕÄÚÇÄÅÛÃÄ?Ù¸Oæ^36Þ„ÐQ,Û(þ@KÇ;pZ<ö42ÛQa!˜˜V ûU؉Oºˆq2ÂÙAº;üŒnßñ¬ö6ymÅ™îª|aý_¨¡«kà‘´e’­hwi‰ÇÄñS°R’Q]\§>ö’b,ÒÚš98zxÑÇÈZ´>ò+ŠS««Göâ:F¤ G–emFy‹oŠ”8¼ˆÓQÂ’ Ç»¸œE|)øâ”2À“”Æll ˆAçˆ÷¦k‹ÉUȶˆÓ•!( ;$$Y’ú!Ò’Püü‹Š¤2ä«^FSÇ4åøÇÙ¹S$‡SÅbŸÈ”X’îXQ6øs¤ˆ—ˆÒà4K[n)ÆSò·WE½›fºçÛ*rµ˜øZM±‚”¼ vNÐMärlW’.MS}+'™4L­Àl±¤‚½Mx&|ƒMì’‘MX3r 5!mI6öEÁ±Šs™ÃÐBG•Îc±àc°•*±A`°M„IJvà‹ù5 ŽDm‡Ø\ÑYÕ¸$B÷†m…],Äf‡4âm¡Ä«c ÚÚ‡VuºMM25Ñ…Ÿq÷;jÜÚà"ĨWlÄcBmÏCh‡Ã*~Ñ•~à°#áþ?a ,Ú‘m¯#Ûœ‡Äµà{½:VÂL«ƒk­PÑúEàO½áN½Ñûyo+ý±]½„Äæ]]ˆ¬]aHÂ:m+(IÖwh/2É=niÕa]­§ ¤7 ƒÂOhÒ{ö¨b…¯ -dö d+ ÄÒbn{[Üi[ço[‰m7Ôj7Ûr7]޾sg[…l‹€²x‹=RDöÿkÖmÂú_Öl`þ^[']þSÞ_cã3I]¦uýyïóM_]Z_M )*=,.&(?G¿ùsµÄ]èlÏÐ?I0oIðä§}™ÏguÍMÔ•K$¶ô¤@å­’½ž£^I£UI§½‡Ï¤Ä/¿ë@éC!mlÙïB`ÝŠ…‘Ú†æ—wçÅ=„jÅ̵ÌÿKCæ¿7JÉ 'ò‹½””xŽà«î;ìôž(ÃõE„ˆŽuô¬ª>gŠrœŠ¢ò¢Šœa–[ð’⊞=5âð”ž Š’®ôüüòô®’¦bz‰²‚˜ØP °4ÿVB$ÁQ –&kÇÈÛD2²EZ1Ò2#¼ÈÑØd ZŠš”I¾%!–c ÝË8æU š%[IžbD@"­M…¥’9Ö72¡$ER%Ùæ”b$&§Ò!7×ËtZ†"-U‰)9Ÿ¦gx –ª8&Z¾ˆ·j7hQ† ’U¶¨-‰DILT b¶„˜ia‹›p¥¼,]Hj fØ! P `þĈ)Y,yCÈÑ–¿¤6=˜ –¾è‡©Š0µ¢†ƒl ¼{ʵ·‡èÙLò`˜¥½¹§…6„º'#¥ü€ ´¸ºáM‚–·%³Ó;‚´¹–ß·„–––»Øºö–€–´£¢Míº¸–¼¹¯…}–·Þ¢ËfÞ‘ƒ?24C8– —f83¹?*¶o¡läAl?’²Å‹§³ ¶³hÕ ^¤+^°Ø{aØ;H×¹ÿ%;L”ˆMIG;¬[o³£¥Fjšˆì¢F®;®I$E0´š>îô uÝ·8¢¿Æu÷½`„9Éf@– K­tú¶xi@;Mð†M›‹åb;§Æ*É»iüø@3­Û¥0ØV]añ¹çUëjÔƒ,-(îñëÖ+åÆÇgÑ $*ɳ½-iùê‚Í× $A€2-³9Þb%u¦mme]¦êüÒ‰”¬xÁƹ”ŠI¦¤ü£©çÍ º‘)¤ Ñ껩{TîŸþ»Z¾"GªîZ’ü[®r }¸"Í!YÈ–cåùññPî%YQ¼‰NãáJä^^îžT~å£ X¸¶.G Ç¢NA‡ƒ0K.™ñùù¤¤õN…‡û…V“ÖÞàË\‡ðÖ{,em»5îTLLLRî]ÖM≵+•ŽÄRRQ¬jb`þ]Õï«;(@büW~UBñc»p× ç·°Ý]ôrK°ÉŽ÷aÐÇ»Qr¦_ý»~FyF'yF#²·‹,²¨‹²(‹)Ê>‹67ur[ñv·á‹Æœ[RDæ~±«ŽÈÛæ"ö®7†wÒLþz#7™‡[–nåkÒg.[ÆbH*YøÄßÛ¦ñævŒ- .¨dõ¯¤@Þ¬7ƒoóKöþv9ñj…[«õ™ã9Rk1vƒ^x£Â…¢'¡æ“¡“«ŠõÕ¢õù"õ?õèõgZ)ÙÆ{Cæ{'i³Œ[Ä`ÒxöJÕºíö{9­ J‚pöc«Öc`öm«]Uõ`Ç£ 0>ÂpÝ„#ÜߦgëÞÙdØ|çàìæ!fÛ8ÚÕšëêå8Ô<ë÷¦h쬗pëצkìàãëëëØ­­­™™”‚‚W( Æ=—g;<<=ÄÄMMë¦ùé\KÃY2}/¨˜5@pUgxFC*1V®™$p83 #1~â’*chzókóe`wV•13‡oò7ËYM=altP,M8~1'}ŸPM,iòÄ~|íMé¦*oé% ÄRef)Ϧ*M(unS; I%\”âLI#š`<†eµ ±wxp~»eêdnlkR«z}ÄfW~d`}¥0‘xû¥ºadÅea'*da•2¬¤T‹¿C’z¶Àf‹Çµ&7Bpd²Ö·höz°ÖeC–Õöò©Õ†pÆ—wöÃpÖº]_ÒJ¤ª.“¬Üe8_ÄC¤ò{Ò—ŠQÕ„p±×«óÊ]êSók‚Þ]cSþ]Þ\Pú6\ÞSc…pÈþdR{þR±°û7{tcK3ë[K;+{{{~¾ð‹Z0„‹e²òý²ý‹`²ñ‹]²Ü.c²ð‹X²ó‹_²÷‹Rñ¹| À– {'zÐÙy7w•° pµg`[´*d3…‚!…G¥b`¥Z«7”mÑÖKbR«Ïñ²þÔ}GÌ«>Êø~`[G7¿äçžmBlˆy¬«6ØÙÄÞßÜÝãâWæçäåÝÜêëèàáéæîäïìíòóðàææñö÷ôõúûøùþÿüý‚2‘_†‡„…Š‹ˆ‰ƒ€ŽŒ’“‘–—”•€š›˜š™žŸœÉB~—à/§É=ª¬éZCÏz¯¬££­«¢«²Ôö\Â|£¤¥£³¢£ ° ’â êâ+ûºâ1t‘ayаÀÓ²ÀÒr­„ð°g®©à¨ƒ«<ªá ¥û*¤§H«ÀÑÿ|¡à £8¢‰ï½ Ÿ¼¿‚¾>¹ð¸3»L¥ºµ ’´·¶’ðª\\]R¨œœ4«¬TR]õB|_–èËMÎ|Äày–%}àxæŽ_à½#t½!Ñ“¹~‚츈ÃÐÜ8‡%u=Áéô’"•¤H%I:ô.õ~¤ô ¥}ø“©ô!• ÄäÅ~д~ðµ~¢öÀj½‚¥Ô yàÂ~Ôhxà²~ƒô}€¤e$G,rV‘¤]øDeà-ɳÍBÐí´}yÐÝ~ô-y…å} Áß¡jMùå½—ÚMÀÂ*D.ëÐl> £ À¤Ò‰JĪà˜}ÏmÐ4kð5k…J½˜À w¤íÝ{¤M½od-àkƒò+À`ޏ8" z2<–71–3=Ú=Æ& –;%–'!j@(5?‡sÎ9#}›¥ pŽa±é†ÅCtº·¯³ƒjØ»š*}¼öÄ¥žqžŒÈ‚0œöØä–ÛŽ–±¸²}+–]Q–ØO^°¸¢öË}¬P*”žÐFÀ‘?»Ps¹äNž†ÚµÃýÊñ¯°· ¼4²ïW¥àÁØH$í#Gó`&–\aû@„7¤+ãêŒ;ƒ!\IÀ‘ôŠTÌTI<˜`7Ä)2]ÄéXB(*YÄ`¯y¥.¡piÑ êJ¶°ººUIYë(«0&8ø*Ä{œh|ÄÄOð€:”+JLÄøP7õ&‚”¥78777jõÈÈÈøøøG¬È€æŠ@ïÇÈ„-8¾.")†Ì*|M9%" ,>h6&"#.$#,hV9:"?&WM,?#)9MHø($9&, =9{û@§‡1ãá'ã<“{/i^z¼hÐm˜E˜Ð…uð…¿š½ˆy„ððmµð•·Xeðu´Ÿ“½ƒ9¡%Y¾8 ñM;¹+.¶»j8µk8®b|8´ë±ù‰è#Q3·™3Y“;²'ö;³j7;»QÉŸ6¿§;¸ˆÕ1¿ã¨˜ ‰£Iíf÷*A©†K/¢µ>‰»"A–¢îÖ}§¶½]CL¶¢¹½àòµ¸°å·;9£8;£:=·H¶W"‹>£ #£;?£–TJ]¶ø¯fö.£B;ÄùX‚–£œ;¤f¶;ΣÀ÷Ͷ½+¶õÓön^fAõþ!ŸM¥¡ÅkŸ²f¿@&RI;ºjºkÚl,œ­4±]k;+J8¥ :R ˜ ¸<¼ ¥lôòê ÚŒ”R»Wé0À¶QBPhQœ®ÞHtôþê‰~t’bM¥òð¸T|lDŽzTtdL\ =2·öòòb ¬Iþ¬nà‰îþôqÒ$⪜I<‰›‚ãB´ ©DITTDl|Ýš.9Q’QQ0õ×V•lTŠ ôlÙ¢]ž€¢î¢ðn™=°fžO°Þõ"‚¢íí¢‚ØnŠ®®$àD´’鉂lþþé¬ò®”îµvT^nôT’ªþúäN^ärˆ’’_ ¨! Fž<Œ¢mžTìÂá%d `²¦d’¢¢Gí‘v{Ъì䡊…™ãŠ|À¢ôP[ÞŽøAœŒ¤ôí5sìÏAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàóüÿ ðÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-HIT- 4JOY -DXS-  1999!    ÿÂ4P-USERPORT /DXS"Â4P-EXAMPLE /TASSÁ4P-EXAMPLE /SEQ‚B.M. PATCH /TASS B.M. PATCH /SEQ ‚BM-PATCH1       ‚BM-PATCH2       ‚BM-PATCH3        §{YYC ÿþvÿ½ìÿÿÿÿÿm€m€m€m€m€m€m€m€m€m€Z]Ÿÿÿÿÿÿÿÿÿÿÿÿÿ_‘3456789012345_# _16789012345_3456789012345_3456789012345ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ LDA #$FF ;SERIAL DATA REGISTER ÿÿÿÿÿÿÿÿÿÿÿŸÿÿÿ ----------------------------------`)Ý0©()Ý0©(‰‰ RESTORE CIA 2 REGISTERS‰08 ,­8ð8“BUTTON PRESS IF ZERO­) Ý“READ CIA 2 SERIAL IN’COUNT SIGNALS AT CNT1’CIA TO OUTPUT SOME) Ü’=> WRITING $FF CAUSES©(ÿ’SERIAL DATA REGISTER‰‰ READ BUTTON JOY 4‰8 -------------------€ ADDITIONAL VIRTUAL JOYSTICK-REGISTERS€ READS ADAPTER AND COMPOSES THE€---------------------------------------L)¼þî)Ð) Щ( 8­8¢J"(B"K@* 8­8¢J"(B"K@* 8­)Ü¢J"(B"K@* 8­)Ü¢J"(B"K@*î) Ð 8î) Ð0€------------------------- Ü“ CONTROL REGISTER A©,Q)Ü“ TIMER A HIGHBYTE©()Ü“ TIMER A LOWBYTE©(‰‰ CIA 1 SETUP‰“ SERIAL PORT: INPUT“ FORCED LOAD“ CONTINOUS“ TIMER: START)Ý“ CONTROL REGISTER A©,)Ý“ TIMER A HIGHBYTE©()Ý“ TIMER A LOWBYTE©()Ý“ => INPUT©(-----------------------€USUAL ($DC00/$DC01) ONES.€THAT CAN BE PROCESSED EXACTLY LIKE THE€POSE 2 'VIRTUAL' JOYSTICK-REGISTERS€ADDITIONAL 2 JOYSTICKS AND HOW TO COM-€THIS CODE DEMONSTRATES HOW TO READ THE€---------------------------------------€ MA-ÿTURBO(((&%( (''$'(((„„„„ƒ„ƒ„ƒ„ƒ„ ƒƒ„ƒƒ •Žƒ•ƒ–ƒ˜ ƒ•ƒ–ƒ˜˜š‚((„ƒ„‹„ƒ‹„ƒ‹ƒƒ‹ƒƒƒ„„„( '(„†„†–ƒƒƒƒƒ‘’““ƒƒ˜š™˜ƒƒƒńń(((ƒƒƒƒƒ„ƒƒ„ƒƒ( (@ÿÿÿÿÿÿ-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÿÿ¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;--------------------------------------- ;4 PLAYER ADAPTER SAMPLE CODE BY GPZ/HIT ;--------------------------------------- ;WARNING: DO NOT MESS AROUND WITH THIS ; UNLESS YOU REALLY KNOW WHAT ; YOU ARE DOING! WRONG CIA SETUP ; MAY------------------------------- JOY3REG = $02 JOY4REG = $03 TEMP = $04 ;--------------------------------------- ; MAIN ;--------------------------------------- *= $1000 ; ; USUAL IRQ SETUP ; SEI  ; LDX #$00 LOOP .VAR * LDA SCREEN,X JSR $FFD2 INX CPX #22 BNE LOOP ; ; CIA 2 SETUP ; LDA #$00 ; PORT B DIRECTION STA $DD03 ; => INPUT €--------------------------------------- 4  3  2  1  “JOY BRLDU 0 €---------------------------------------`Ð8 À(Èè0 )©.*0 L8 )©.-8 .80 - (8***0€---------------------------------------€ DISPLAYS 5 LOWEST BITS OF JOYSTICK-REG€----- 8 ),˜CHECK BIT 2­)ݘREAD CIA 2 P.Á)ݘ=> BIT 2 INPUT),û˜DATA DIRECTION­)ݘCIA 2 PORT A‰‰ READ BUTTON JOY 3‰8JJJJ­88)(8­)Ý“READ CIA 2 PORT B‰‰ READ DIRECTIONS JOY 3+JOY 4‰0@*­)Ý0@*­)݉‰ SAVE CIA 2 REGISTERS‰0€----------------------------------€ INTERUPT CALLS OTHER ROUTINES€---------------------------------------L-X’COUNT SIGNALS AT CNT1’CIA TO OUTPUT SOME) Ü’=> WRITING $FF CAUSES©(ÿ’SERIAL DATA REGISTER“ SERIAL PORT: OUTPUT“ FORCED LOAD“ CONTINOUS“ TIMER: START)“ PORT B DIRECTION‰‰ CIA 2 SETUP‰Ð8 à*è )Òÿ½8 0 -¢(‰‰ PRINT INFO‰)Щ()Щ(ÿ) Ü©()Щ()©E8)©D8x‰‰ USUAL IRQ SETUP‰)€---------------------------------------€ MAIN€---------------------------------------0(0(0(€----------------Y TOAST YOUR CIA'S !€ YOU ARE DOING! WRONG CIA SETUP€ UNLESS YOU REALLY KNOW WHAT€WARNING: DO NOT MESS AROUND WITH THIS€---------------------------------------€4 PLAYER ADAPTER SAMPLE CODE BY GPZ/HIT€--------------------------------------`Éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìÿÿÿÿ‹Ž2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIRÑCIASAVE±CIASAVE²TEMÐJOY3REÇJOY4REÇREADADAPTEÒDISPLAYBITÓSKIÐSKIP²SKIP±LOOÐSCREEÎROLÁNOFIRÅFIRÅÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtÿÿÿÿ¿ÿÿÿ}Éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹Ž,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ TOAST YOUR CIA'S ! ;--------------------------------------- ;THIS CODE DEMONSTRATES HOW TO READ THE ;ADDITIONAL 2 JOYSTICKS AND HOW TO COM- ;POSE 2 'VIRTUAL' JOYSTICK-REGISTERS ;THAT CAN BE PROCESSED EXACTLY LIKE THE ;USUAL ($DC00/$DC01) ONES. ;-------- LDA #>IRQ STA $0315 LDA # BIT 2 INPUT LDA $DD00 ;READ CIA 2 P.Á AND #%00000100 ;CHECK BIT 2 ASL A ASL A  LDA $DD0C ;READ CIA 2 SERIAL IN BEQ FIRE ;BUTTON PRESS IF ZERO LDA JOY4REG ORA #%00010000 STA JOY4REG FIRE ; ; RESTORE CIA 2 REGISTERS ; CIASAVE1 LDA #$00 STA $DD00 CIASAVE2 DY #$00 LOOP .VAR * ROL TEMP BCC SKIP1 LDA #"-" STA $0400,X JMP SKIP2 SKIP1 LDA #"*" STA $0400,X SKIP2 INX INY CPY #$05 BNE LOOP RTS ;----;--------------------------------------- ;4 PLAYER ADAPTER SAMPLE CODE BY GPZ/HIT ;--------------------------------------- ;WARNING: DO NOT MESS AROUND WITH THIS ; UNLESS YOU REALLY KNOW WHAT ; YOU ARE DOING! WRONG CIA SETUP ; MAY------------------------------- ;THIS IS THE DRIVER THAT I USED TO PATCH ;"BOMBMANIA" BY "CLASSICAL GAMES" ! ;--------------------------------------- JOY3REG = $B5 JOY4REG = $B6 ;--------------------------------------- *= $0900 JMASAVE1+1 LDA $DD02 STA CIASAVE2+1 ; ; READ DIRECTIONS JOY 3+JOY 4 ; LDA $DD01 ;READ CIA 2 PORT B STA TEMP+1 AND #$0F STA JOY3REG TEMP LDA #$00 LSR A  ; FORCED LOAD ; SERIAL PORT: INPUT ; ; CIA 1 SETUP ; LDA #$01 STA $DC04 ; TIMER A LOWBYTE LDA #$00 STA $DC05 ; TIMER A HIGHBYTE LDA #%01010001=> WRITING $FF CAUSES ;CIA TO OUTPUT SOME ;COUNT SIGNALS AT CNT1 CLI JMP * ;--------------------------------------- ; INTERUPT CALLS OTHER ROUTINES ;--------------------------------------- IRQ  DISPLAYBITS LDX #(40*4)+4 LDA JOY4REG JSR DISPLAYBITS LDA #$00 STA $D020 INC $D019 JMP $FEBC ;--------------------------------------- ; READS ADAPTER AND COMPOSES THE ; ADDITIONAL VIRTUA JOY 3+JOY 4 ; LDA $DD01 ;READ CIA 2 PORT B STA TEMP AND #$0F STA JOY3REG LDA TEMP LSR A LSR A LSR A LSR A STA JOY4REG ; ; READ BUTTO ORA JOY3REG STA JOY3REG ; ; READ BUTTON JOY 4 ; LDA #$FF ;SERIAL DATA REGISTER STA $DC0C;=> WRITING $FF CAUSES ;CIA TO OUTPUT SOME ;COUNT SIGNALS AT CNT1 LDA #$00 STA $DD02 RTS ;--------------------------------------- ; DISPLAYS 5 LOWEST BITS OF JOYSTICK-REG ;--------------------------------------- DISPLAYBITS ROL A ROL A ROL A STA TEMP LÈ----------------------------------- SCREEN .TEXT "“JOY BRLDU " .TEXT " 1 " .TEXT " 2 " .TEXT " 3 " .TEXT " 4 " ;---------------------------------------  TOAST YOUR CIA'S ! ;--------------------------------------- ;THIS CODE DEMONSTRATES HOW TO READ THE ;ADDITIONAL 2 JOYSTICKS AND HOW TO COM- ;POSE 2 'VIRTUAL' JOYSTICK-REGISTERS ;THAT CAN BE PROCESSED EXACTLY LIKE THE ;USUAL ($DC00/$DC01) ONES. ;-------- P SETUP ;--------------------------------------- ; READS ADAPTER AND COMPOSES THE ; ADDITIONAL VIRTUAL JOYSTICK-REGISTERS ;--------------------------------------- ; ; SAVE CIA 2 REGISTERS ; LDA $DD00 STA CI LSR A LSR A LSR A STA JOY4REG ; ; READ BUTTON JOY 3 ; LDA $DD02 ;CIA 2 PORT A AND #%11111011 ;DATA DIRECTION STA $DD02 ;=> BIT 2 INPUT LDA $DD00  AUSES ;CIA TO OUTPUT SOME ;COUNT SIGNALS AT CNT1 LDA $DD0C ;READ CIA 2 SERIAL IN BEQ FIRE ;BUTTON PRESS IF ZERO LDA JOY4REG ORA #%00010000 STA JOY4REG FIRE ;  TUP ; LDA #$00 ; PORT B DIRECTION STA $DD03 ; => INPUT LDA #$01 STA $DD04 ; TIMER A LOWBYTE LDA #$00 STA $DD05 ; TIMER A HIGHBYTE LDA #%00010001 STA $DD0E ; CONTROL REGI OWBYTE LDA #$00 STA $DC05 ; TIMER A HIGHBYTE LDA #%01010001 STA $DC0E ; CONTROL REGISTER A ; TIMER: START ; CONTINOUS ; FORCED LOAD  ;READ CIA 2 P.Á AND #%00000100 ;CHECK BIT 2 ASL A ASL A ORA JOY3REG STA JOY3REG ; ; READ BUTTON JOY 4 ; LDA #$FF ;SERIAL DATA REGISTER STA $DC0C;=> WRITING $FF C ; RESTORE CIA 2 REGISTERS ; CIASAVE1 LDA #$00 STA $DD00 CIASAVE2 LDA #$00 STA $DD02 RTS ;--------------------------------------- SETUP ;--------------------------------------- ; ; CIA 2 SESTER A ; TIMER: START ; CONTINOUS ; FORCED LOAD ; SERIAL PORT: INPUT ; ; CIA 1 SETUP ; LDA #$01 STA $DC04 ; TIMER A LÌ ; SERIAL PORT: OUTPUT LDA #$FF ;SERIAL DATA REGISTER STA $DC0C;=> WRITING $FF CAUSES ;CIA TO OUTPUT SOME ;COUNT SIGNALS AT CNT1 RTS ; LDA #$01 STA $DC04 ; TIMER A L