NNNNNNĕp NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNN^\]_a!cAeagikmoq!sAuawy{}!Aa!Aa!A]_a!cAeagikmoq!sAuawy{}!Aa!Aa!ACROLLV NEO'}INTAB DAT+"MILE DAT-#WSPRITEMUS/$nONST2 PRGC)[YSTARS S G@zENST2 PRGHVOGOSINEDATa| AIN5 S dXEMOLOGODAT@EMOSCL2S !ONT NEO}ENST2 INFZACKSINEDATdOX DATOLLPIC7S BLTARPAWSMUS LTARPAWSS OUS DATfUSIC DAT<MEGATETMUS iUNGEON NEO/(}OLLPIC8S HzKINTRO2 PRG[+IS DATtIKE DAT!NDINTROS Y)wD3pP@T"3DUf"{"x*>  6 ("p ""{    <xsȼ?"",>?>yϼp>|-(" )wqxx<*/""rb (wqxx (("qx yϼ(>r/h  (?s </""(  HwqÀ>>' wqÀ""9À""ǜs9q<" #n"kX #= '>c?( |ڀ0"R<'<| 0"K `>>ss "x  2 9*pppED@&}D@" DD@" DGC<q"Ȁ@"<o>(*"&q@K'"" @R؅ (<@c<( @R ((xND xK""EQlQ yT ȀȼQQD ʀ((",MQD<@*> @"-(")}9<@>Ȁ'(QE @"}Px">"r/sy"Ǣ`E0 (("  0E<</  0" R h(  0}x"ȼ>#r/ryǢ `AD"yQx&"1yȀA1P"2$(",2(}L/cAb B"AchC"y2((B { ""3"0$" >`&"$"8O|""'gPN'q>{"A?h"" 8?>!/ȼ|Gx#(,D@@#߃w8D@|#h)߻w/ (߻w= E߻wAH (Ds߻wAH C "@߻wADH (@FȀ """"@߻w=3<DG( ">o>#"@߃w p؂"*"""@<99"#x~@D@Er'8|@ E #(('"I>pD@Eʾ"/"(R"xD@8"`*#a>r/ɀ"(P ">}ND"(Kp"AQD""yQT6"r'"x@l*"$"2|GND""($*"$b&D|xr'"xEDAˀ}xA{ $"x} byYDAȜ>#DxȢ #s>SD@@<(Qx|@R `ȼq# z <{||8ro>=/KA[@PD</KyUx| ={AQ@D<{||D={>>9<?E@"?ELy?EADa",?>93<a 0p"*?{ 0")?{!?{?{r/< q?{` ` ( y ph` </& q<;<{<<8;<8;<|!<@Y!Q<;2'"y0xU <>;(2(0@S @Q</c`@<@^<*((y9yE0{;EEd@x` ǀ{;s"EWET@{;( EEL@ 9yD@#gD=EADMDDE==$G j  "#%((&+.0369|x`J``/A _NuHA a`"z@@M:fXM~,"hMv,"hMn,"h M>,"hM.,"hM8,"h,M2PM<NuAJgCGG|?```G]LH@NuS(&jh'&"h" fp&h4$Pf!E$Prj,j*B Bf B(` f B;BAA&z^&Sr!K" ` f Q'Y&`x fQ'Y&!I"Nu@A AgY!I"!E8Jkt( A($zAA$R!ERZrZ|@.BBZ!J @g($zAA$R!J!E0EENu~G J(gS(`"h0 g f)?!@0"h fB|R0` f.    T0` f$)@@@"z "Q!I!G0`l fiT0`B fG*i T0`< f|*R0` f |*R0` fV0ii"h0Q+R0J(gS(`NS(fHh"h  f Ti` g f)?[!@`Q-R(+k((,@C@20(!(*fVC`. f"VCh (+j D ` ( `VCJ( g(  C(.J(gS(`V((Jjf&f(dr`(eA dAeAdA G.( g~2(H$(8v ԁ!B8HBB(-((jrNuAB. ,R pACzE~!I BB(-B(B( !IB0||B(BBhB( CCZ! z!zv4ݨ4ר4ߐא!| &PAA(zR(Tf!L"B&|*k,B(+kB((+A Af +A(B(-B8, ~wpjd^YTOKGC?;852/,*'%#!COSO@xxTFMX ?@x~*$ 旓束䕝  29EL^t                   69\8_ Cflr                           @"@@@@@@@@@@@@ $.0 30 . 0 0 $<<<<<<<<<       @      @@@@     @@@@ @. .+- )+$0+.+0+.+.  .+-+.+-+)+)')'$'" 0+.+0+.+0+2+3+5+6 0+.+0+2+3+5+3+2+ $.0 30 . 0 3 .$ $ $                               ? `[x` APMONST2 (C) HiSoft 1988 o,hO(HC[B" ( ШШ//Bg?<JNAO JfZ N0<BQ-LPtAJfPK?a/fxA|a0"a0JAqXmX!X"=XfHx~?<HNA\Jf ?B+F`5GdLE:|>|Fa5|`8xGLE:6|>DFa5\'nLB`8hGxLE:|>DFBBa52`8D/ Ga2GLn$_a5PP`5D f@eeepNupNuHLfe dNu<NuJ.kgH@Ga1BQkLNua|k^aز< gP<gԲ|bg|qg<AeA4ggTH`&nN` .g&@ag`a6`az .g&@<Zg<:ea`~0a6`r/ Ga0GL nta,V$_A C p0QPPa4a6aak<gag`a6`<Zgal`HzT kH|H8g4|Hg2|Pg0|P2g|Kg(|Mg&Jng< gXrNuNNNN N NkNuB kHNrNu<AgH<Bg<Egl<FgT<Lgb<Og<Pg6<Rg²<Sg<TgNu +>g +>gA7aMf'BB`a/a/Jnf +>ga5`a*p :+7@@a"GaJ.gGa Gda`apP .g@őkk0+H7@PQa2z`|/ vA7aMa1fNJgJ$Lg<=fC$ SBa&\fH(Ja bLf /a4$aJnfa&_Nua4&_Nu/ GJkfa&_Nua&_Nu+><gr<g<gNu + ?a.~`/ vA7aLa0TfdJg`ag aNJI`*tJg.<,f<?gB<*gN<=gT<-fJgZafJf,a4 $v"EaIfaJ&_Nua3&_NuaJf/ a3(_v`Jfa3v`Jf|a3vt`a3"EaIfaJ`a.tfA7&`LxP aQ NuJnfp +>gh +>g`/ vA7 aKa/dfHpJg LJf$"LSBa$f ?a3F0&_P?a 4gaJnf/ aD&_`a3&_NuJnfJ.gz+><g& +Fg<fbIKn#fTxE`IKNn#fr<gr<grJgr'nBA>BkLa1a a+`NuQQa.A  C3j+><gC3P<gC3|f| BPP`.ABvDGHHI`LpMbNOP >R S UDV>Wv> r <aJxa`Jf +>f"kBHzaFgGtv`FjNua@.Of$nLafaJz`ENuA3tYaIfaF`A5dtYaIgK(NuJDg&.Of$nLadfNua2aJ.J`NXA3 `IaJaJ"nLaFFfN hfN|`N^aJa"JvtaEfaI`N>Nuaa-JLtLa"`JDgvA2aH>a+fg aDg I``//a/"_tvaEZgLNuvaGA2a nrT (>g@vL a)ajk<g߲<Bg<Wg<Lg <Tg<IfA a*a IBxa+fjK <IgD<Tg>B-af <Bg<Wg*`:`Jg<,gaHI`A ` Lf SB.@ a.`Bn `.Gra, n$hB(><g G vg<ga<If2``ReedNuʲNu$|NuSz` af(J`(REgaf(JJg Kag fSf`$L` n(FYd -L-LB`-L .g-LaN``F Tfavg J< gfHRSCg gL `L &n'JB`(J` ga "JE aIʳ gE aaBg*J/ a3p. SCA g< f`JgHS@VLg $_aa`(_`.<g GaFaFxa*a,2`Nuv Lg a(QJ, gv Aga(zQNuJ$gbE0ma(n$|g>Rg$, a`aDaaPJ, gRFkfa|<g|a&rB`afa,VNuJgJ.n na BA.af-K-KnhJ.g#g GNa+`bGa+IKNEx`(LE.|>DFa('nB`,A.)vaDBa'f+Jg+Atg<,f(H/a _g Ia'`B a.f-K-K-KBS-K` NuvaCa'Zf^JgZt/a+VaEBKa h _f./a r f/?<HNA\Jg&@ @a ~a aDpNup?a aD0aDpNua+pNuv A.aCrA.J.la:gZlA.J.ma*gZmA.J.!agZ!A.J."a gvZ"`nVaHrNJgrYa&RSka4ak<gD< g6߲<Yg<Nf?a&$a02<ONuvL a$rNuaa`X`*@A.ZaaI\r2.fEC:a&BIaZIa&fafe洼d=BfaA.aaI".a/&BIaa%f~a@gI`-BarA.aDa@ak߲<YfLaC|BgHz.?<`aA8?a0`@`'va?A,/aaa<g߲<Gg<Ug <Ig<Sf?a"a2<GgT<SgT<Ug.I".ga,BIa^Ia# fPaf-B~`"I ha@I ha"f2aNf~`a&`~aA+J.oa$gZo?a6`F2`&( JfɌSDNuE+aA'HHaaja|`a&`a xET2a$a@a$a $a2a(RD|fra~I2,gZ$aatJ.gt agaRa$Ta\ lfat ar?a!E ga!`aaIHQNuA*v a>VBn`a?Ia!faTf<,fR-Ba>fԴo-B$Baf$nafaJraa@B.x`a?lIa!^fQJgFaf-BBJg<,fafJfƴe-B$.f affR. BBaraaK *xB.`a>Ia fJg^azf<,f*alfشopJg <,f߲<Bgp<Wg<Lf"R*R*:7|a`BaHra a>B.xIa bfJga>N Labga=`a=a$*nJ.gBn4a|f(* gSg Xm`Tm`Rm`a*t`P*nJnfafQ Qa#A'ba<`P aa6Q Qa#JnfNuE * gm lpNuE `pNuoNuJ. jafz/ I(DC.BS* g@S@gL x"a(,\`:W x2a(,\`B xa(^,\| (_` Ha)tL( aNAX .gT/?<HNA\-@$ n/(,/ / ?<?<KNAO&j`p"a: `:-CPPhBg/ ?<=NAP>kHnHx??<?NAO f .gpЮЮBg?/?<BNAO .$gR-@$//.??<?NAO fp n$ .S@"nPa`X( d> e: e6 $) e$) e$) dը B( (H W fS@`PB( QBPNu??<>NAX$nPPAT .dЮh}-@l"n%i$"nPC-IBvta5O(B/.PB?<?<KNAO-@Qh nP/(,a\ _aXBDa9>GaBA"7a (PkJg.J.j(BGNJkg +>f|>aaa`/?<INA\NuJTgLCBQB/ B/<KNAOJk.&@"<ҬҬҬ ғdA И И kC ,ЬSe0Qd , Ser Qd k$r gհg<f`Ё`"k-IBtva4,O(Ph-KPCAT .dЮh}-@lJg,A-H$J,fP ,US@"KaB/ B/<KNAOOa7`hGtJkg?a44NQNuGtJkg?WPa a 4NQNuB kHN`` ````NqrNu>+$kBa aa")a+@fa`a&arAaar:a$i$ a+?aaR<8fra4.JaNqa8.Ja+@+@ araz$.Da$nD+?aara\$.Laax$nLQtatgFra6$.xan$nxp.v;8a`J.ug ra6$.|aH$n|p.v;a:Pta`$A4arS frUataQNug`R`TXNZVC`` ````NqrNu$kB<+J+?ft a f $ at`$ aa +?a ga Barr Lfrana/ a@at$_SfNuaPU'JBpNuaDT``` ``L`B``0+@HBpNu +BR$@<+ajSf'JBrNu +BR$@NuaaJ`aa,H`HQQaLA JfJkLgWS7@Lg>|e$|Dd@HrAQ@drDP@0 `C PYf ! BP` tLata XB|HfNuApJhg:2(LAf2|Lf (>g."6 Bg!ABH/AB4a _LANQNuH"nL (BR$@m<(WFe/ aJgQ"_" LM`"_LM`$kB<+SFaWfJFk aaQNug " fg " fRpNupNu``(`8``N``$kBag/ aDaJ$_'JBanpNu$kB4+SBaW`$kB4+SBag^t<:d<0dd~af0CtRBa|gaf$`/ a"_gx(It`~`"~ g <>f~ ` ~`~ f~ R _L`NutS~`<0e޲<:dԂ ЀЀԀ0ԁ<:d<0d~`DHtpGN`v`,`N``p< gfg`Se`0ef<d`Ԃej0eJ<e`B0eB< dld8H`tr n$Jg g g J( g`(f LNuJ.fNue dH@J.k( n"g fLpNuJgl!@B` n"gܰfAB( LH"a HBA LNu @pg&a4SWgJ(gp \pg aSWNuNu/J$gBB Opnfo4.fJ."f~S|epQ(& n$gZRgFfBf0 gS@BQ`<ae <{dNu n$8|oxSD6C g`RgD0/C (aIJf2Q0j J(f$Jf `0J(g\afQnfgJg _J(g` _2`*2`@Bg/?<NAXNuH HBp@@"npJDN0+7@`N` ``aA'H Nu  !()0189@AHIPQXY`ahipqxy  !$%(),-014589<=@ADEHILMPQTUXY\]`adehilmpqtuxy|}j"Qp`"ip7@'iLC'I&A'H Nu``@`h`` ``l|gp"i`p"Q'iL7@r2+7ANu/ $k r"J4+SBQQ$IAQ$_Nu"k k1p2<QNu"k SAkCrpQpNuk$k p2 4+SB|g*0<2<Jf QNuFQNuHA0@A2IIA8z-|JVg~D/4+SB0<2<+)+ QLJg 0+FS@fNu2<k"k p1 `/6+SCSC4+SB2<$k J@j Sx8AQ6Q(Nu0+S@S@ Sx8A`Q6Q(Nu"ip`k"ip7@'iLC'IP&Nu`t`>``` ``D|g p"i` p"i'iL7@Nu4+SB"H2QQAPQNuP4+FAPSBfNuP4+SB0<rPJf QNuFQNuPp2<PQNuPp@QpNu6+SCSC4+SBrP"SJ@j$IA0QCPQNu0+S@A$HC0QAQNu$k6+SC SN$k S"kAN$k SN SSC$kN SSC$kN B"np0+$kN$kNpa0+S@7@BkNupaBNuJ. fH :+4+2+RA6+AoSCgx?a4RBSEfL0Nu?.?<a8XJ@Nu=CA (-HNua46.`< far a`A "nf?a 2`-INu .A (g Hn (/?.?<@NAO g `J. jBaˊf `4JnfA??.?<a o \f?< ?.?<az\LNuHJ. g 0< dr `HJ. f< g 0+kgL Rk~a@LNuNqBk0+k`x LJf*SEaa6+tDP4@aak< g<g<g\<gt|Gg|Kg4|Mg8Jgƺn g0REDg AP`S@fal@RDB4Pax`JDgaXSD`DgaNRD`JDgaD0Dg A@XS@fSDSE`0DgdA@XS@fSE`a< Nua8Bxz`.?tD6+Q4@a,2Nu?+ Lar a7_Nu?+4. a7_Nu/ ntn8.a`$_A p W| BA 'HHBkL~P/ (KG4,6,nr Jg J,Fgr0,FH0aL RBA gH1Jfr azLRB`2,SA4,6,H0azL 2,lajLSB6,af2,4,l6,aR&L(_Nu-Ip nt0<?BQ<ng 4<(6<x`4<P6<x` 4<P6<2xprG ntaB0+R@=@pABhNQBL&<nL(gL.H=E =F Nu N;N;&uNN 2 5 25NN X2 5X 25&& X&&B.#Iz<n IgIaa(aDpLQaba^LHLHGJg/ &nJkgQPa&_-KPP`6<8 .g&t|8f6<CNJv0fQNuG0`GdtJkg+FgNQNuHHz*aQQaJBkGJkgPPa2`4LNur2+p+>@|(NNu``&`D`h A|erA?A'HHNuAn'HHtv |(dtvB@C?NuA&dr<dr<erA?A'HHNu|?Ab'HHNuPC:SR:A7'Divide by zeroCHK exceptionTRAPV exceptionPrivilege violationTraceBad interruptInvalid TRAPIllegal exceptionBreakpointD:A:Searching...Address errorBus error ; , Text: Data: BSS : Current Breakpoints: Data start,end<,size>Cross-reference listFilenameDisassemblyMemoryMonST 2.01 HiSoft 1988RegistersSource code ESC to abort Window start address?[Return] Filename to loadSource file to loadExecutable file to loadCommand lineProgram terminatedRegister=valueTOS error: 12345Cannot runIn ROM!It's odd!Cannot write!Too many breakpoints!Run until PC=Kill all breakpoints Y/N?Breakpoint address<,param>HistorySearch for B/W/L/T/I? Printer not respondingRegister to lockEnter expressionSymbolsPREFERENCESScreen timer Y/N? Follow traps Y/N? Relative offsets Y/N? Ignore case Y/N? Symbol lengthTop of RAMBDOS BreakpointCopy start,end,toFill start,end,withSet current drive/directorySave binary, filenamestart address,endRun: Go,Until,Instruction,Slow Watch Y/N? HelpDisassemble start,endRe-install exceptionsSave preferences Y/N? MONST2.INFJj-D`JAj-DA` a`fB d0Nu$p/t?fJgP²< o^02Q$NuH@ @pgQJ(g\p gQLNuA0g NuTFHILSCCCSNEEQVCVSPLMIGELTGTLEAH.P NuBWL?AH NuTST CHG CLR SET 0NuH@00NBSQNu>B.uA BR4XXfBA Sg`IUeQa BNuA:EMaNuXFB0@P&Fb,|XX0`a#Jf2a"`<g"a.`2a,?<a8B#2aJ,x=0fxe`: < mE;P`?xa>.t-nx|Qt?,2< iA4JBx?a0J.tgJgPuLxAHxNu@tNu2`0Nua,#2`aA`,USP G< e1 0Nu$<.gRa4`z.xd<Jg:<Pg2x=`,zxa$,`Dzxa,`@ a?xla|v<,pVQQ6[<DaJgJg/6<AJg$pg@|7JgSg*Jf -7NuSf-|6/` Jg`/SdSNu RaJ<48< f2ar,x4aD|vNuaR`zxa.OO0,DNuzxda< 2i,A`&2IaD0," 4H҂Ү $`2IAanBx=`a#2IIAfra,x?`0@2II<@g<Hg&<g2??NuDa,D`Aax,A`Daf,A`2Ig <ga`S(BRA `S(BSR g|.S HHҍҮ $` 2HU`a,D2II`p 4Xfa4JJg$-(AaA(aa)NuDa,D`),-(AaP<fI`02(AazAa2IIah)+Nu)+,(AA:M`R:::ZZZ R(CMPAaxa,A2II` Aaaxa,D`CMPAaaDa,x=`EOR0@|@g |Hg|fI(EXG `<gNaT0@fxa^,D2II`xD2IIaj,0@x?|g*8<<`":MRaxa,A2II`(2<g< aHa2IIf#Afra,D`D`Ia  zx<`AAв<fXrLpfrRNuASLSRORO2`CagNuI>(/a| [ _"(0(|g4|g*|g?C pgQ..`*`=aJ]NuNu2A4J<A` 2bpLgD`gJgA`gtf0@@-v$xEv(Aa)Nugja+Nug\-.tfaEp;PxNug42Htfp@@ 6$Ё-@xEvJ$gV . "g&TeJ\dD0H/RaLgaz`.J.!g$<g0H/tJж $$apgaP`a`,H0X@< 6 fH-HxEvNug~8tf 0@@ v$aa(Aa,JDkD`A2 < iax<WDg<L.)NuA``FTz??Nug2Haa6.WNutf-AxEvNug"a` g2HҍTҮ $aaA`(PC) g<8HHҍTҮ $aAaJFk D` (PC, A2p ia.FgL`W)tgNuA`g$#<f2`H<f"`V2`H?Nu8  @ 0@0JJNpNqNrNsNuNvNwH@HHNPNXN`NhN@@DFHJNNHL@H@@BDFJAAPPPQ`p080@0MOVEP.ORIANDISUBIADDIBEORICMPIBMOVE.B MOVEA.L MOVE.L MOVEA.W MOVE.W !DC.W "ILLEGALRESETNOPSTOP #RTERTSTRAPVRTRSWAP DEXT.W DEXT.L D LINK AUNLK A MOVE.L A MOVE.L USP,A TRAP # MOVE SR,. MOVE.B MOVE.W  NBCD . TAS . JSR . JMP .MOVEMMOVEM PEA . NEGX CLR NEG NOT TSTCHK LEA DBSADDQSUBQBMOVEQ #SBCD DIVU DIVS ORSUBASUBXSUBCMPMEXG ABCD MULU MULS ANDADDAADDXADD !DC.W H/.$B$/ xK$MafBTMHa6L f*C<[g <?g< fXp-_$$ML8JNuQ*_UMp`-JLJ` Al <f/A f _` aJEf 1Q2J QJEf !B1CpNu JapNupAf JhgpNuHQpNupAa HQNuJhgBh"P QJf2Nu-I|=Q2JNuA-HhpBFJQNu nhCp Q D0J LChfA-HhNuEa |?aA'HHa$ja`Ja2<YNux}x~ .|tg4-@x=x@=xBx`1@1B`uvNu=|pa6`=|pa,`yz1@1BNu 8ffgNu..fNuJ.lg=|(pNuaFx@aFx@Nu-_-xA!NM!/.Nu-_-xA!NN`AG0gHh/??<NMP& _`QiPjzDl=|r=|p@|Hzz?<E?<NMP-@F-xA!=|rHz?<!?<NM-@PNuG~0gHk/ ??<NMP&_`A!Hz?<!?<NMPNuAFG0gHh/??<NMP _`/.?<E?<NMP!/.?<!?<NMPNu\^  #$%&'()*+,/\/p`/p/,zlPjH?-_<-_\6=_J-_L-ODO?.Of($nLEa,fE a"fTpbWf-JL0`\/p `,/p`&/p` /p`/p`/p`/p`/p U/,zPjH?-_<-_=_J-_L-ODONh-H@/.8"nL< g8<g<||BB.n"nL?a˜aatGa\2aPk-_`aJf.ngA"Lgp nx (@<gn<gJ.og(agl nx (@||a$aaa nx (@J.mgh.J<gJ`PB.nJ`BI ha2fJfJg nx (@x ` Sfr` nB"P2J0.J@n=@JjJ.ng`Hnvgp|gzPabfZHaL0(|g>|g(|gI Ha͚LfTJfPJgL`R`DSg`<2Bhx ``x `Z-nxLafx`J2p-@| n"P2JaH.Of$nLaf"JagJJnJj&.Of$nLafJ.mf0@|N@gQj.nD n@N`/.L?.JLNs0(@|N@g0.J@=@-H2J`2-HaJ`|NuB//,zJ.ig@/AeAe _QiJ.ngB.n` _QiJ.ngB.n`o 0.pkS@faVp=@p/n,_ Nua.axCnJ`H` z/< !xA!NMX zt!LgPiNu hNBH瀀 zN0(rk:J(jf4/ f&/NhP _f"U z(1|rB(nLX`&og/hLNuAMP OPT O+,OW- VSYNC MACRO MOVE.L D0,-(A7) MOVE.W SYNC,D0 .VLP\@ CMP.W SYNC,D0 BEQ .VLP\@ MOVE.L (A7)+,D0 ENDM ; START OF PROGRAM BSR INIT LEA NWPAL,A0 LEA $FF8240,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) BSR RANDGEN BSR ON CONT2 VSYNC ;BSR STARFIELD ;BSR SWAPSCR ;BSR TOGSCR ;MOVE.W #$606,$FF8240 CMPI.B #$39,$FFFC02 BNE CONT2 BSR FLUSH BRA OUT FLUSH BTST.B #0,$FFFC00 BEQ FLUSH2 MOVE.B $FFFC02,D0 BRA FLUSH FLUSH2 RTS INIT DC.W $A00A CLR.L -(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP MOVE.L D0,SSP MOVE.B #$12,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) MOVE.W #2,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,PBASE MOVE.W #3,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,LBASE MOVE.W #4,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.W D0,RES CLR.B $FF8260 MOVE.L #SCREENS,D0 ADD.L #512,D0 AND.L #$FFFFFF00,D0 MOVE.L D0,SCREENA ADD.L #$B000,D0 MOVE.L D0,SCREENB MOVE.W #1,TOGGLE MOVE.L SCREENB,SCREENW MOVE.L SCREENA,A0 MOVE.W #($16000/4),D0 MOVEQ #0,D1 CLRLOOP MOVE.L D1,(A0)+ DBRA D0,CLRLOOP MOVEQ #1,D0 BSR MUSIC RTS OUT BSR OFF BSR SOUNDOFF MOVE.B #$8,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) MOVE.W RES,-(SP) MOVE.L LBASE,-(SP) MOVE.L PBASE,-(SP) MOVE.W #5,-(SP) TRAP #14 ADD.L #12,SP DC.W $A009 MOVE.L SSP,-(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP CLR.W -(SP) TRAP #1 SOUNDOFF MOVEQ #0,D0 JSR MUSIC MOVE.B #7,$FFFFF8800 MOVE.B #-1,$FFFF8802 RTS NSTARS EQU 100 STARFIELD LEA OLDPOS,A0 MOVE.L (A0),D0 MOVE.L 4(A0),A0 MOVE.L D0,4(A0) MOVE.L OLDPOS,A0 MOVE.W #(NSTARS/4)-1,D0 MOVEQ #0,D1 MOVE.L SCREENW,D2 CLEARLP MOVEM.L (A0)+,A1-A4 MOVE.L D1,(A1) MOVE.L D1,(A2) MOVE.L D1,(A3) MOVE.L D1,(A4) DBF D0,CLEARLP FIRSTPLOT LEA NEWPOS,A0 MOVE.L OLDPOS,A1 MOVE.W #NSTARS-1,D0 MOVE.L SCREENW,D1 MOVEQ #0,D3 PLOTSTAR MOVE.L (A0),A2 MOVE.L (A2)+,D2 BEQ.S RESET MOVE.L D1,A3 ADD.W (A2)+,A3 MOVE.L A3,(A1)+ OR.L D2,(A3) MOVE.L A2,(A0) LEA $308(A0),A0 DBF D0,PLOTSTAR RTS RESET LEA 4(A0),A2 MOVE.L A2,(A0) LEA $308(A0),A0 DBF D0,PLOTSTAR RTS RAND MOVEM.L D1-D2/A0-A2,-(A7) MOVE.W #$11,-(A7) TRAP #14 ADD.L #2,A7 LSR.L #8,D0 LSR.L #8,D0 MOVEM.L (A7)+,D1-D2/A0-A2 RTS RANDGEN LEA NEWPOS,A0 LEA SINTAB,A2 LEA $80+SINTAB,A3 MOVE.W #NSTARS-1,D1 SLOOP2 LEA 4(A0),A1 MOVE.L A1,(A0) BSR RAND LSR.L #2,D0 MOVE.W D0,A6 BSR RAND LSR.L #2,D0 MOVE.L D0,D3 BSR RAND MOVE.W D0,D4 MOVE.W #$7F,D7 LEA RADIUS,A4 BSR RAND LSR.W #3,D0 ADDA.W D0,A4 SLOOP MOVEQ #0,D0 MOVE.B (A4)+,D0 ADD.W D0,D3 MOVE.L D3,D5 MOVE.L D3,D6 MOVE.W D4,D0 ADD.W D0,D0 MULS 0(A3,D0.W),D5 ADD.L D5,D5 SWAP D5 ADDI.W #$A0,D5 MULS 0(A2,D0.W),D6 ADD.L D6,D6 SWAP D6 ADDI.W #$64,D6 SUBQ.B #1,D4 CMP.W #320,D5 BCC.S OFFSCR CMP.W #0,D5 BCS.S OFFSCR CMP.W #200,D6 BCC.S OFFSCR CMP.W #0,D6 BCS.S OFFSCR MOVE.W D5,D0 ANDI.W #$F,D0 MOVE.W A6,D2 ADD.W D3,D2 LSR.W #5,D2 ADD.W D2,D2 ADD.W D2,D2 LEA STARTAB,A5 MOVE.L (A5,D2.W),D2 ROR.L D0,D2 MOVE.L D2,(A1)+ MOVE.W D6,D0 MULU #$A0,D0 MOVE.W D5,D2 ANDI.W #$FFF0,D2 LSR.W #1,D2 ADD.W D2,D0 MOVE.W D0,(A1)+ DBF D7,SLOOP OFFSCR CLR.L (A1)+ LEA $308(A0),A0 DBF D1,SLOOP2 BSR FIRSTPLOT RTS ON LEA MFPSTORE,A0 MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $134.W,(A0)+ CLR.B $FFFFFA1B.W CLR.B $FFFFFA19.W MOVE.B #$21,$FFFFFA07.W CLR.B $FFFFFA09.W MOVE.B #$21,$FFFFFA13.W CLR.B $FFFFFA15.W BCLR.B #3,$FFFFFA17.W MOVE.L #TOPBORD,$134.W MOVE.L #BOTTOM,$120.W MOVE.L #VBLANK,$70.W MOVE #$2300,SR RTS OFF MOVE #$2700,SR LEA MFPSTORE,A0 MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA21.W MOVE.L (A0)+,$68.W MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$134.W BSET.B #3,$FFFFFA17.W MOVE #$2300,SR RTS SWAPSCR CMP.W #1,TOGGLE BEQ SWP1 BNE SWP2 SWP1 MOVE.L SCREENB,SCREENW MOVE.W #2,TOGGLE RTS SWP2 MOVE.L SCREENA,SCREENW MOVE.W #1,TOGGLE RTS TOGSCR CMP.W #2,TOGGLE BEQ TOG1 BNE TOG2 TOG1 MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOG2 MOVE.L SCREENA,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOPBORD MOVE #$2100,SR STOP #$2100 CLR.B $FFFFFA19.W DCB.W 78,$4E71 ;78 NOPS CLR.B $FFFF820A.W DCB.W 18,$4E71 ;18 NOPS MOVE.B #2,$FFFF820A.W RTE PHBL RTE BOTTOM MOVE D0,-(SP) DCB.W 32,$4e71 CLR D0 .syncb MOVE.B $ffff8209.w,D0 NEG.B D0 ADD.B #64+128,D0 LSL.B D0,D0 MOVE #18,D0 .wait DBF D0,.wait ;101 nops! MOVE.B #0,$FF820A DCB.W 12,$4E71 MOVE.B #2,$FF820A MOVE.w (SP)+,D0 RTE HBLANK1 MOVE.W #$001,$FFF8240 MOVE.W #$300,$FFF8240+(7*2) CLR.B $FFFFFA1B.W MOVE.L #HBLANK2,$120 MOVE.B #7,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W RTE HBLANK2 MOVE.W #$002,$FFF8240 MOVE.L #HBLANK3,$120 RTE HBLANK3 MOVE.W #$003,$FFF8240 MOVE.L #HBLANK4,$120 RTE HBLANK4 MOVE.W #$004,$FFF8240 MOVE.L #HBLANK5,$120 RTE HBLANK5 MOVE.W #$005,$FFF8240 MOVE.L #HBLANK6,$120 RTE HBLANK6 MOVE.W #$006,$FFF8240 MOVE.L #HBLANK7,$120 RTE HBLANK7 MOVE.W #$007,$FFF8240 MOVE.L #HBLANK8,$120 RTE HBLANK8 MOVE.W #$555,$FFF8240 CLR.B $FFFFFA1B.W RTE VBLANK ;CLR.B $FFFFFA19.W ;MOVE.B #100,$FFFFFA1F.W ;MOVE.B #4,$FFFFFA19.W ;CLR.B $FFFFFA1B.W ;MOVE.B #228,$FFFFFA21.W ;MOVE.B #8,$FFFFFA1B.W ;MOVE.L #PHBL,$68.W ;CLR.B $FFFFFA1B.W ;MOVE.L #HBLANK1,$120 ;MOVE.B #100,$FFFFFA21.W ;MOVE.B #8,$FFFFFA1B.W CLR.W $FF8240 MOVEM.L D0-D7/A0-A5,-(SP) BSR STARFIELD BSR SWAPSCR NOT.S SYNC JSR MUSIC+8 BSR TOGSCR MOVEM.L (SP)+,D0-D7/A0-A5 RTE RADIUS DC.B 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 DC.B 0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1 DC.B 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DC.B 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,0 DC.B 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DC.B 2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3 DC.B 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DC.B 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 DC.B 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 DC.B 4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5 DC.B 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 DC.B 5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6 STARTAB DC.W $8000,$0000,$8000,$0000 DC.W $0000,$8000,$0000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 NWPAL DC.W 0,$222,$444,$777,0,0,0,0 DC.W 0,0,0,0,0,0,0,0 MUSIC INCBIN SWSPRITE.MUS SINTAB INCBIN SINTAB.DAT OLDPOS DC.L OLDPOS1,OLDPOS2 SECTION BSS OLDPOS1 DS.L NSTARS OLDPOS2 DS.L NSTARS EVEN RES DS.W 1 LBASE DS.L 1 PBASE DS.L 1 PALETTE DS.W 16 SSP DS.L 1 SYNC DS.L 1 MESPOS DS.L 1 SDIREC DS.W 1 SPOS DS.L 1 SCREENW DS.L 1 SCREEND DS.L 1 TOGGLE DS.W 1 SCREENA DS.L 1 SCREENB DS.L 1 MFPSTORE DS.L 7 SCREENS DS.B $16000 NEWPOS DS.B (NSTARS+1)*6*128 ``J2.00`S*O*m,mO - ЭЭ// ??<JNA-MfJ-Vja"L` CzA"A"A"A"AB"Nu=n=@Az"psNBNuCDA"A\B BBBB"A"A"A"AB"Nu=@@ Ap=@0=@N-@-@=@@s-@ =@l=@-@a;ba0LHz>-OlCvAp2QQqPrBna1(n-La0a4a*z nZg nZg nZga-`a4< g < g<g<g<g%*<g *<d< dز<g<gҲ<g<g><g8:<g<g<g<g<<gd<g<g²<g<gH<g<g<gB<g<gJ<g``JFg SFa/`J.tgJGg SGa h`Jng@Sna6a7`J.tg*?a hL@k  fn$g"a a4a5 H:>.$a-n$gREagLa,` a4`|a,a ?aL@kr&IR  fJgaa4`a-I .g".gd Psa3`.sQsJf`aj-I` .gJgdNuC Xa1l` What blocks!aa,/ &n".a6fZaDB&.ցBQsa+2"_egd"K`(Ia?a <a+`alBnpa:Pf&n".g.q?pa.0@qBnp`aaX&I".a f nSe`a*`J gah&I". a f n `a".&na5`aڳedC`Nu Invalid block .g a/ (na&L(naa4(_Nu/ (na&L(n`0.\|f.0.^nf=@=| =@piaa.t=|d`|fF2.^|g(|4g|8gԲ|g| fa`HzJ.gza`|fj0.`2.bn&dpn4n"dbn$bZn<Gg dDASASGaQ`SAafRGQa*$`(|g|fT0.nfLPa=n=|Hpiaaa*a5Ba)a=|d(n`Ȱ|f@J.f LP`p2.a7LHQp2.a7L`~|f20.nfp0.fpSx8kVfRDa`J|gT|f0.nfp0.fpS@ሀ|e0<@ng=@<gFHa.La(` tn"2.YnfBeBdr|0``0ee`/ CnPqPrxRD ) fIn`a,La" nZgr< g <gz<g4<dL< eD|d??ag jE/ a("_82A0A`QRDRFa'< f ?aa'8?a/8`jJFgL?ak,8SA@ S@AXQaSD?a/8`0S8|f|a'x`&WgtRB  f&W L(Wa.L0R@  f|dS2SAa Sn(Wa"_JGfSada/8Sn-L`TSGa'"SaH`?ak8  g`:`8`?"otRB  f&o2a(oa.2(_<f a#`ar&IJ.og Ld< g< fR`af Sg SA LQ/ Rna.|n$gRGa-a<"_aa.b`Rn/ (na -L(_a-`Sg $ fRNu d  fNu(@JNuCxzREfNu< g RE< fn 0Ee:Ee`R<Nu8:DpNuH xzf <a%L0Nu< g< fn 0Ec:`RE`.\AJAe<dAA00g Hp _N`C a*v`Command not recognised X 6Jf$ p TRZ~N Rx< g0e< d AAhpNuxag2Nu`F.oNuafJ.jgQj`a3$fa3fzaa% .ЁeBna)Ra%`'/QqPra/(n-LBnBna*`"g&nSaf'Ra%QqBnҮ-A A aaa#TBn|`* nt ` pgRggf`|?` Nua:a2\faa$&n".Rpa&NuHEApaLNuHACB.pJgVg<\fE`B f B.p\`Ap"J/ g <.f$H`"_*. fB`fLNur2.lg8&Latf0CnSA LQRnJGfa*`SGa#a*RGa#a+`8HAlp< gR@<f 0LNu what errors!no more errorsAJXgJXkY6<tC` BnNuCAJPg4nRB6<0gTHBcCd6"H`|gb/ x8aa&>a'a/"_AJ.EL2(0!j @2(E@S@gJfS@fga-`ga-`a/z=|dNuC8`'Error: Warning: af>a,dQqPra"BnBn(n-La'BnpBnBna"=|a!NuNuCDa2f,JDg((nvCgRCaZgSCJkC a&`$Nu End of fileGoto:x|`x|`e0.R@G4@e 0Gn$dB`!,SC=C~-La' `!$L(nvgRCa`(J`ag6.0g~a8nRDA2UC  gRNvdL< fRDNvfJCk H 4Nv@NvVLfS(IaN6/ a4"_`C`%<ae <{d Nu Not found6.0ga48nRDA2UCNv!cNv< fSDfJCkH R4Nv@NvVLf`bA04SBe0 Nv@1 NvVNuafafaaa'`NuANEn2&ISAe Q2.N4.0aXPqPrCNur2.0a"KNuJn0gFaTxSRd< fa&f`a\faRD`JDgH a%$La,a(NuBnpa-fFa.2f@ .Ёe`f&La2f"b/a ,$agҌ&A"aaVPqa$BnpNu .Ёe / C a#"_pNuOut of memory!aPqPr . nH@@RCRa LӮpNu"@@D@@ N                QNuAg*e?A2a>2`?BaFgTONu2SAe AnQNuAaXJgdӐNuPqPrDaD .g KH@@CRaL ne-H Nu"@@D@@ NQNu//p`//pHA`//p/< o^0a)"Q" Nu"LAxz|er < fPRENu< fn 0EcS@r PREQ`PRE`H2ta4r a(LNuHr a(2ta`H/r a(|"taB`&<'pfJgJk f<`P0a(FHA QNuHA>(prRdؘJf Jkfr`P0a(Q"L&<p`;B@' Line: Col: Mem: B.pACa*XfApa/?<ANA\J@ga8`/AAfxdJ.BjA4aSDfHA?`A-aSDf6A? C i/ g<%fgSESfS` "_Sp _NuAC.gC< g`NuAn-Hfp|a>gBgHnn?<=NAP6kpNupNu[1][Could not find MonST2][ OK ]MONST2.PRGCafHnnHx??<?NAO f .pag|-@ //.p??<?NAO pfT??<>NAX n hAPf:PBgHzR?<=NAP&k$ n Hh/<d??<?NAO ??<>NAXpNu/. ?<INA\apNuC r` FMONST2.INFafgJ g nf!|AMPM!@` nf!|AMPCnBQ/ . g((@J.fa`a'Lafa?N0ja((_ nfB`'>a'$PPQtaHaRB B J.gaJg0a'Cjra -|3A2-Hp an=|2p aba&pNuF.=|4J.V@=@A2-Hp`4[1][No program in memory][ Cancel ]XaHg8J.fa`a&daf nfBH(n CnBQa$LN`Cra ` . g @JPNuB/ B/<KNAOJk&@"<ҬҬҬ ғdA И И kC ,ЬSe0Qd , Ser Qd k$r gհg<f`Ё` kC*!IB/ B/<KNAO/+, Ka _aNuBgNAXA-xda |ga:/=g0C8a8|dxz:r aLf pa`-@ BPE ix AJfABfD-QTp0. < e 0H@0:-fL:-f2:-fC:.=gD:.IgX:.mgB`:.gOA9f| -:/ygM:.fBP:/f2A:.fH`/<!NNXLVgV: *-fUA i B"nfC"AMP"$n "E$"" ""HA=fNJNONAME.CONPRNAUX/ (Haf a?N0(_Hz |gJ@kHaHaF`Xa xf nfBhAag"A*BB.pA=Ma$f\ApaaCpPRGfBQa6` afa4f$nf/*,/ /Bg?<KNAO?N0j |ga`bHGLtHBnpda0=@ k`a=n pea=|pNaBnBn=|pa=|pkaBnpkararva`?/<NM\NupLNua=|pka=|pkaBnBn=|pa@a&=n pfapga~=|pNara!`-nBnp`ZHpGaBn=|=|=n0<aLt6UCrH=|Bnpraa=n=|pha-n-npfaBnpkapaLpNua-|BBnpiap a=@a>=|pka=n-n-npeaa a -n=|p`l=|3p=@=@=@=@=@BnA~-Hpa>gNu?<NNTr.BRfr?/./?<NNO Nu . g @aB  . g @aB Nu/ parA"_eT nf/(,/ B?<?<KNAOJk6 @!LC!IB/B?<?<K(HNAO(/,, Laz _av HJNuEoCtJfAf<.`NONAMEg <.gRB`AnNuag/pae  @Nu _apNu/?<HNA\ @JNu/?<INA\NupMapAr 0Q0Bn=| =npdaކ0.f x=@0.R@=@H=@0.R@=@?<NNTS@@BBn=|phaގLHtA=C|Nuz G. KBn-H/pra`Rn _( AgQNu !#$%P&&'***aݸaap a$=@aaZ=|pka aaa*aJg"a`aBgHn ?<NAX0k |gp` QAC -Ifp|aJgBgHn ?<=NAP6kHnnHx??<?NAO ftAn :zfh=X C@"XC>XoXC*"CNa(Ca"CaC aC >aXXXtX`pg  Nu??<>NAXNuGENST2.INFA"z8"QBxd/ aaa"_SDfxg 0AA`NuAC nNuvgH1| 3| AxdaC0|fBQNu0F0gn|g =n@`^2.0HJgA4tXWf2( `B|G7gJ.g4<ge.<pd(|jg|lg;g`r`r` <g<g< d <,zga8a=|ZLNu<;e&<ud <bg;@AZ0`|H\`:<e<3d@ n<0<Eg|<Sf v.f.@\=|ZaLNuK4M6H8P2)(_'gb0.~| gB|g0|g|g|g|g|g|g|g=|ZLNu=|*~`g/.azLf2H@n*exn.dpn,ehn0d`=|Z=|\=@`=Ab`J.pgj?Ca"Qp2NuH?.da=_dLQpNuHpp 2.a0.LnNu nZgNuH0.~|gT|*f,A:a,jA;a$k=@=|A~-H0(p aϜLNu-Hp `όSAVED! SAVED 0.nf=|pkadH?.d=|dp 2.a0.ngH=|=|=nPLSBSCAajf@AH0<aθ<.ap `Bnpkaa dafa|a=_dLa`40.nf0.; fp`|Q\`L=n=|-np!aΆaf6.A00gD< e@\``tCLSWIQFNPREGTBAXDMKJHC6<HC-C\=|Z`=|Z=n^=@\`lAMP!Nup nR@  feng=@PNu=|Bn=|=|B.0.$R@|e0<ng=@=n=|=@pia͆0.R@ng=@=n=| =@piaXNu4SBa QNuHa <LNu?<?<NMXJ@g /<NMXNu0."Q@4.2Be6JBg|e,@dj0`0nn&=@0n(=@ Nunneng&n"dabL4TB0.aXaza 2n`n@@d0.Bg&n"d4a6L0U@4. aa4a 2n`TH=|=|=nP0<aNuHaLNu|>`HCJfC@=n=|-IpiaLNua J*K/ /?.r?<?NAO M"HrJg0kJ 0f v x ff(gRSf/?.r?<>NAXa Pr"pNu ar`/Sp$< K  fRQd(Юe"Nu"X/AS&(K < f HSHQꒂd( K ЄUav L"/S$<< gQd k`Ha :F:gjApEaCaf8??<>NAXAa Af I|.BAKBHn?<ANA\ApaHn/Bg?<VNAO JApadBg/?<NAXNuJ@fp/D@=@p5aɒ Nu///?.r?<@NAO "JkfpNupNua =n& =|dC0aBn&Bn(B*P.a Ha j?.d=|d8RDnn(g Qr=D(ax8RDn&gr=D&af(.*g:rn&=A -D*"taV *dr ax '*dr ah0.n.g=@.a=_daLNun&=A `ތR@|e0<A000pi`brC`f[1][There is not enough memory|in the edit buffer to load|that file][Cancel]a`zHp ?.d/ aa*"_aa8Pp=_dLNu0. n&=@ apa=n 0..n=@ 0.T@=@ n=@=|Bnpra:=|da`PpJ.BjpT.p`NuHa(=|=|=|=|paFaLNu?<?<NAXJfNua?annn aa2`"0.8R@=@ n=@-|praNu< gT0.dI=|=|A=ABn<f 0.l`=l=l pa:0.lLNu`a`0.n =n&NuAa< fr aLNu??=|Bn0.=@n=@ 0. n:=@ n=@Sn prapa`4Bn=|=@p aNuBn`HBnBnp{afLNu=|HBn=|pzaF`Hp=@pNaLNuHp` =@=AphahNuCLraj=|dahBpea=npfa(XK XPXT XX( Xe Xo  X( X{ X X X (X{X XX T Vr (X (X{X X X Yh (Yq Yv  &X;XY#W& PP& R R R  R  R  /   R R RRRRR R RRSSS+SS<SMSS^ S Sl ( ' !S}"S#S$S%S&S'SS/).*S+S,T-T%.S(T808 1TK2T^3Tq4T5T6T7T8T/ T Desk File Search Options Program About GenST2...-------------------- Clear C Load... L----------------- Save S Save As... S Print Block W Insert file I Delete file Quit Q Find F------------------- Find Next N Find Previous P Replace R Replace All Goto line... G------------------- Goto Top T Goto Bottom B Preferences...^T Assemble A Run X Debug D MonST M Run with GEM K------------------- Jump to error J Run Other... OUUU  10Max:___k9U,U/U?12Tab setting: __9U^UeUy100000Text buffer: ______9UUU%OHNJOHNJOHNJOHNJOHNJOHNJOHNFind :____________________________XUVV:%ARYMARYMARYMARYJOHNJOHNJOHNReplace:____________________________XVXV^Vo2345Goto line: _____9VVVOHNJOHNJOHNJOHNJOHN123456789_____________________________XVWW*Written by Andy Pennell in 100% assemblerW1WlW::!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!_________________________________________________________XWWX%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!____________________________________XAssembleCancel Assembly OptionsYesNoOKProgram typeExecGSTDRISymbols caseDependentIndependentNoneDebug infoNormalExtended Output toMemoryDisk:stuffListDiskScreenPrinter Editor PreferencesNumeric padNumbersCursorBackupsAuto indentSaveCursorFlashStillLoad MonSTNextPreviousUPPER & lower caseSameDifferentAssemblyFastSlowEnd of lineStopWrapCommand line: JOHNJOHN.PRG HiSoft GenST Editor/Assembler Cursor Blocks^R Page Up F1 Block Start^C Page Down F2 Block End^A Word Left F3 Block Save^F Word Right F4 Block Copy^Y Delete Line F4 Block Remember F5 Block PasteF5 Block DeleteCopyright HiSoft 1988HiSoft, The Old School, Greenfield Bedford, MK45 5DE, EnglandTOS Free memory: 9999000Load a fileSave a fileInsert a fileSave a blockRun Other ProgramWarning - DELETE a file`UpCKGenST (C) HiSoft 1985,88ajaRDpaOAhjCp?"QA0<\BXQQQaQCB-I\CB-ITa/a5BB.FBnQBn|ajfdQ-n .g2 @aLg*p aO, np(B0AaS2aO$|`"a8A&-HpaNn+P+Qa"f aa`J. flaQ+QpaNn+P+QamPaJ.+PgQPJg naKhfIzaf aaD`aZaAaAaW4J.gaOTQ+QaQDaW:aLaNlr. aNp . fRaN@r2.aNpaN0".aNp aN"aTpJ.gpaNpaN r2.gaNp aMp2.aNxpaMal&.gaoBaP>`mp=@=@-n-@-@-@D-@L-@=@=@-@@@@ P@ -@=@=@-@-@p-@PP=|aLfQQQQQQ|.| a?TABP`kzJnfNup0`Haa@ a@*aK:a aT BNutJ.gJnW&n\&SCda,AhaAtaAa .pѮ|Nu(gRRNuJg/ &Sa&_ + f$kaJg / &ka&_NuJg/ $Ra$_BJg / $ja$_NuJf J.f>JfT nڱlNupNuJ.g 0.nb"n nf i`$n"j jf"i i`"n$i jd  gS`pD`FJinclude_longmacjNupN`FJ.fRnJ.f-Jf1"J.fr 4<RnJf((nڹl L-Lf  gS-HpNupNu"n i(hd  fR`pt -L$LgSfb(<*| !JpNub  gS!JpNu"(EfP$(g&H @S"LE!JQL"(aH`E!J"(Ef aHgJ`E=h Bh $)g / al("_B-i`PJ.g<+g<-g r PNur NuS.`R.ZNuPr J.gQPNuJ.f:J.fJ.g `,J.gJ.fJ.gJ.fJ.fQB.QNuQaN*`Nu-O*n-MBB.< g< g8< g0PAB(a9f<<:f<:fP< g< g< g:HAaJ0g<=g7<;g<*g`DEC&#< #< H6~t< g,H6~<Ae<[dQ`<.g < g< fa7L(JAa8fC$n\( H a:zL8g)`(D,<:fCCJfCBa IB(`hJ.f "hNu(E"\HSfNuB`a9fC@ fC2. ) fC&fC&).gA-HDNu(.AJf,Nu.fPNuAJg(.g aPzA(.J.fa9hgB. (.g HzEL` EDJgB"j n8d HaJ>L$n*""Jp%@%@%DC 5@@ n6%@( PSf Rn8Ѯ*Nun8e HaIL /a*n8 n8Ѯ*NuABPABPa:xHajLJnfJnfNup`B(+-*/()~= & ! ^$%@'"(>bfjVZ^A0TX1za<f<e<d<fA0PX!!`Ⱦ<g<eξ<dƺ<fR<gF<gD<g <f.`6$.v. <gR. J.fJ.gp.6Ad԰`~`~EA0<02`2plTX1`az`z`,a A0PX!!JCjp)a@޾<gp`@zREa`<g(H,EA0Jpga`UnAQP0$0&0Nu`ZAQPe0$0&0?CUQ221<dQ`e0,0 0BCCXA21N20 PX!!NuԀF<g <g<NuJ. fJ.gpa@ PvNup`0F@JFk<fU. g<ga<@Nua8`aarvNuCk<fNua/aLfNuJ.f`Ā`؄`Ա```ȴWHH¼fdCkvvNu]`洀^`F|fDNuD`,JnDJnD&HCH@JCgH@`J@gHCH@ԀJjDNuJgJ,//JjDJjD|.pއUFDFЀeRQ,jD,jDBNup;Nu LNu~< g< g< g<,gH`/ ~<Ae<[e8<ae<{e,Ahg fJk~`<<gt<:d<0d,Aa3^g~`~ <|__f6H@|RSg(|G2g|LKgf tJ.g4.RB`$<*pNu$.`NutJ.g"n4)`~<#Wf J.V (f atfv`LJ.fa2gtPvJ(g2`0$)v) ) f&<g<g<<fvHC6)HC,`PHC6)a4hHC,J.gC`J.fJ)g.6)gP`a1V,<#fJf) g ) g$)v) J.f<f^p)Ad԰`) fh<f:.6)fR. `CPa3`"HAE Q @SSf~`pvPa:`p`aJ.gJCkNuPp`:a<gJ. g:Nu WT` WT:0?gax0`a|0 nP<0e*<:e<z<.g(Sg>Sg J.gJ.gJCkE<faE*NuJ.gJ.gJCkEa.4:NuJ.gJ.gJCk a. B:Nu`E/afa<)fL. g$Jf Jfz$a;Vfp `8/z($J.gJCkE:J.f-Nu<,f6z0af6HC$<.g<\fH6~<Wg <Lf6f<)fHCJ.gJCkDJ.f-PNuH6~<Pf6$H6~<Cf6$<)f>z:J.g0J.gJCkD8<f :`-J. fp a5:Nu<,f5z;/af5<.g<\fH6~<Wg <Lf5$J.g6J.gJCk J. f<f Ra,p` aC`p a5l²<)fNurCTJ1gNua`aa@xg < fEE<,f4?a@x_fE]E:NuTaƲ<,f4?a8 nx<gL<a]E:Nua0x<fENua<,f1*a gkl<,f'a fx n1DNuxagHAH@af4$nTHPaDL8 f" ) f()J.g) gPpNupLNu<-gIJ</gpNuaVgp7`'h?aFf6eRRf`a<,f'a n.g<g <f&Nu.ǰ<g&а<f@afJJfBZB<,f&t<(gaaʲ<(fX6a쐌<)fH::Nut<(gaa<(f*6ab<)f<,f&^a@BZB`p.`&j<#f&HaJ.g4apJ.gJCkBHHgea&` .gpa&<,f%appNu/<,f%app$`4LaRa*=Nu< g< f`t< g<*g <;ga/a$C-I2#BB)-BA&-H| ,Nua/a4&Lf-BA3-H,PNupC`%X< gʲ< g< gH6~Ae<dHA0;gN<,gNup8`%Nn"|p>`$A<+g<-fJNua&f|e|dRB=BaVNuaW@NuaV NuaWNuaWNuaWNuaWNuaWNuaWNut_agt.BNu nfjJ.fJ<+g(<-g1eH|bP=@`Q`PBn"n2 n.Ba,NuC <-g4<+g2H6~<Wg,1e<dagNuNuQ`PNuaWNu<0e.<9b(t0<0e<:d 0AA`pNuAFtJgr Nu< g< g< gR<Rfr BNuaaxdNuJ.gaGr PNuat ed =B-`PNupI`"a$afxt4$nTAH J.faTL8g"xva,Nuaf>?a 2<,gNu(.gJ.galf) f  g+lNup+`aAaf(.g0v .fv??a Lg "nPxaa2<,gNup*`) f2) f*) f").g f n.Rh3hNu0<*`lp.nj;Nu@@p5`R<"g<'f$L< gfg( SD<,f<'g<"fSDe gNup AfRpNuaW`aV`aga4fJ.g) g@<@NuAafaW`pAafaV`^aDJ.gJCk <fJfNup<`~a|=-BNup1`j0<2`Pa^`a\`a]`a_` aW`aVRnJgr Nua>.ajfapghJgELSEf\IFfTng`LENDCgENDMf"J.g6 nhc,`0.Sn@f`HA|IFfHAA`0g@fRna|`< g< g.< g(<*g<;gx< gp< g < g<:f< gV< g< g<*gD<;g>A&BBp`< g"< g< g<.gH6~QpNuLpNuJngSnr Nup/``"<=A>a#2-H:Nup4`J.fJfa $n\H aRVL0J.fJgjvBaHi n: n>da"_"BC !I!H -I:n>&Ha:afa0ag첼ENDMfJf k !n:r .=gSn>R:Nu n>d4 k !n:a("k #H'H C BBp Ѯ:n> n:"Lr f-H:$ n>NuJf ) f f|aՈafRagENDMfJfr Nu"<@=Aa!-HNupL`x nDeH@@a(LJ.g ) g4pW< g< g< g <.fp nQ -H1n "i!I!Q1nCBQAfS< g< g < g`B< g|<*gv<;gp< g< f`RQ<,gF< g@<f<>f"`g< g< g < g<,fB<,f < f`$ R/.-@nPPRnNuHaLfΰ<&fHaapLf<&gpDa< g< g`60.nbat L$nCt`jJf$n"j jf "i%I Qp (Ht\gf`Jg 0.nc%H-LpNuC$SBg"0 LS@f A< g~<@g<fJ.fPSn$n n-J0*nn=@ -@fQr Nup3`p9`Jf6a-Bn0ataf>agJf겼REPTg ENDRfr NupE` n: n>dav-H?.>BC !I!H -I:n>&HaBaςf-Kaa~gⲼENDRfJfaP k !n:.=gSn>R:J.g=nSe8-KC-Ia frHa Lg ENDRfJgPa`04.>Jgp@n>Hծ:BA#B-Hr NupF`"n nf "i-I Q(Hp f-H-LpNu"<e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶e≶eCNuAV2< Ct2Q8<Ct&a.Jq0j30B QNup`VNEEQCNCDNDGTGLLTLELEA AƀRTS Nu^BRA `>BSR a4TST JbJMP N脀JSR NzEQU \ADDQP&SUBQQADD SUB CMP ᮀAND rOR hEOR ^CLR BNOT FDBF QDBRAQ؀TRAPN@BEQ g߀BNE fvBCC dlBCS ebBPL jXBMI kNBHI bDBLS c:DC xEXG 匀EXT H؀NEG DJADDISUBI؀CMPI ΀ADDAޖSUBAތCMPAނANDIORI EORI LINKNPPUNLKNX6BTST߸BCLRBSETBCHG@ASL ASR LSL zLSR pROXLfROXR\ROL RROR HSWAPH@DBEQW\DBNEVRDBCCTHDBCSU>DBPLZ4DBMI[*DBHIR DBLSSADDX~SUBXtNEGX@BVC hݪBVS iݠBGE lݖBLT m݌BGT n݂BLE oxDBVCXಀDBVSY਀DBGE\DBLT]DBGT^DBLE_DBT PvSTOPNrST PZSF QPSNE VFSEQ W<SCC T2SCS U(SPL ZSMI [SVC X SVS YSGE \SLT ]SGT ^SLE _؀SHI R΀SLS SĀCHK A0MULU&MULSDIVUDIVSABCDSBCDNBCDHNNOP NqDRTE Ns:CMPMިRTR Nw&PEA H@΀TAS JENDMIFEQIFNEENDCIFD IFND DS RS LIST@END @EQUR|SET OPT "@EVENȀIFGTIFGEIFLTIFLEIFC @IFNC>SPC @PLEN@LLEN"@TTL P@FAIL@CNOPݺXDEF@XREF@PAGE@ORG JIDNT2DCB LREG RORGbREPTԀENDRBHS dڊBLO eڀDBHSTݺDBLOUݰSHS T잀SLO U씀IIF zTEXTDATABSS AMP!亀MOVEQ p笀MOVEM H圀MACRO MOVEA @栀MOVEP ȀINCLUDE @RESET NpڀTRAPV Nv̀NOLIST P@MEXIT MODULE SECTION LISTCHARR@RSRESET @RSSET ~@INCBIN ILLEGAL JNELSEIF "@OFFSET >OUTPUT @COMMENT @SUBTTL ~@FORMAT @INCDIR @NuA`4<e&.AMOVEg(aNA000kAHfXJ.g J.ga,p<.fNH6~p<Bg.p<Wg&p<Lgp<Sg< g< f f pS< g< f < g< g< g@<6HzZHp04?gaȼ` gaȖ2Nu:r NuLAt vg Q`fX`( nBNв< g< g< g<*g <;gpa JfJg".BӮӮBNu" -Ag$.ӮӮJ.gJ.fNup,` :a6f"P(t.R`gSf("LpNu"L((H,pNuAE)J2g(jhH6~<Wg<Lf,J2or.`Fr.`H<:dBC$L<$g <:d(<0d(J @E SSfpNuBp(NuJ.f.AC rJ2o ne0.S@pNuC tH6~rJ2nRjtJ2oBpNup<"g <'gtS< g<g8< g< fJg(<,f g-L`fH6~Rjp~CR Nu?RA?rl??????H .Dg $@a&g-IH$nLag-IP$nTag-IXpL8Nu g>"@(*P)ebG(M ebSfNu g"@` )g"@`XIpNu"JpNu gDg>`* H@J@g4R@g0`<gH`<g0HfNup`pJ. gNu<gNu LI/a"Ivah(_NuANON_MODULE TEXT BDAv a~$n\HaVL8J.fJgxv aŒ-I.C-ILNuJfa`p `HC BDABa$$n.EHaVL8J.f2Jgxa6 n.S( ( a8@-I2-ii6`Jg`"n2#n`fJ.f&NuJ.g nfD)")<g<gp apNuBSSfpNu)pTEXTg DATAfp NuA*BP-H*Q Nu/ n*0++0-H*BP _Nu/) n*0++P`/ n*1|-- _Nuline malformedout of memoryundefined symboladditional symbol on pass 2symbol defined twicephasing errorlocal not allowedINTERNAL:invalid hashinginstruction not recognisedinvalid sizeduplicate MODULE nameforward referenceinvalid section name, TEXT assumedgarbage following instructionaddressing mode not recognisedaddress register expectedaddressing mode not allowedexpression mismatchmissing close bracketimported label not allowedillegal type combinationinvalid numbernumber too largemisuse of labelinclude file read errorfile not foundrepeated include filedata too largerelative not allowedcomma expected.W or .L expected as index sizeabsolute not allowedwrong processorodd addressimmediate data expecteddata register expectedBSS or OFFSET section cannot contain dataduring writing binary filecannot create binary filesymbol expectedXREFs not allowed within bracketscannot import symbolcannot export symbolnot yet implementedregister expectedinvalid MOVEP addressing modespurious ENDCmissing ENDCinvalid IF expression, ignoredsource expired prematurelyspurious ENDM or MEXITcannot nest MACRO definitions or define in REPTsmissing quoteuser errorinvalid register listinvalid optionfatally bad conditionalrelocation not alloweddivision by zeroabsolute expression MUST evaluateillegal BSR.Soption must be at startINTERNAL:invalid optimisationexecutable code onlyprogram buffer fulllinker format restrictionORG not allowedINTERNAL:invalid multi-line macro callcannot nest repeat loopsspurious ENDRinvalid numeric expansionduring listing outputinvalid printer parameterinvalid FORMAT parameterINTERNAL:bad sectionINTERNAL:macro memoryinvalid INCDIRassembly interruptedp'`PpA`La'fNua8p&`p `:p `6p `2p `.p`*p%`&p`p`p`p#`Q+Q| a `Nu.nJ.fP .d|Hp?paAR. t0J@g"Jf"n@2JYgSAf` 3n2YBQS@ap ar2.a&Jg p a"nt)UCaQaPLNuJ.gJ.g .d|Hp?paBA 4<`\short branch converted to NOPsign extended operandrelative cannot be relocatedinvalid LINK displacement68010 instruction, converted to MOVE SRsize should be .Wdirective ignoredbranch made shortoffset removedJ.g?@;HnRn0J.fNu$n\HaVL8J.fJf/ iJh _f.`txv <vЀajB/ a$ "_fV$<a%X#D#n-I/ &a"W#HC!C!I 1n Bn"_P``Jf#n-IJ)g&/ a#"_f#D i1n BnE `$ i1n BnE pNu  J` "(A$)H@a#Lf,Eg * f * g i!JR)pNupNupNupNuv E`$(gBHa#DLNu .\g @ g @Jg/ Pa _Jg( fNJg / ha _NuJg""iJg/ "Qa"_NJg / "ia"_Nu/ &JEa"nTJg"Qa&_Nu) gNNuJg""iJg/ "Qa"_aJg / "ia"_Nu) gNNuJ.f"<a -H+D-H+HBBPNu n+H0(A-H+L n+D-H+HpJhgBh (-@+@Nu ЮJ.fD/ n+HX0|g!!P@1pNuH``"<a"n+H"-H+HBBXpL`̰+@f2 n+HX0g ?p?a60P@|g1@+Lg-P+@pNu n+HJg P-H+H\Hp`p-@+@pNuABJ@gJfS@`r `ar HaLNu?HAa2?Ia2?Ia2A;`0123456789ABCDEFvt/AfJgP;N"QA;NEA2tpve RdҘ`Jj P0ANAQ0N;B@'d pa$nTI$abv E"I`F + f+`a`H/paJ.g WAaSnaa _EaLNu gp gl$@A` ~NuJ.gJ.gDJng V` hJ.g0Jng ` N . gJ.gJ.gtJng ` &p%`0 . gJ.gJng `NuJ.gJng 0` . gJ.gJng $`rOa`JfjJfH`AFafP-BLNu$.rBӮӮJ.gJ.g abga4*n-MNuA&-H". . gJ.gJng`BNuJ.gJng`J.gJ.gJng `` Nu$.gaBNu/ <32dЁr N/"a"f$NuJng >` Jng 8` j<gPJng ` Jng ` 8Jng ` ,Jng ` Jng ` J.gp:`H`P ЮHzJ.gJng` LNup.6"J.gJng<` .NuJfj"<Үh$<a-A.&-A.*aL-H."-H..-H"<Үt$<ax-A.:-A.>a -H.6-H.Bp-@.Jp-@.2Юh-@.FNurҮ-A."-A..-A$.h-A.&-A.*҂-nt.:-nt.>-A.6-A.BrҮhҮtd"nBY"h"t"BBNu .6Nu.6g<< f& Ё.>o4H`ahC.6"..FaLЁ.Jo-@.JӮ.F`> Ё.*n ӮSfNuH`a(C.""..2aLЁ.Jo-@.JӮ.2gR`np.6g < g2` .*dӮNuJfaC.""..2a4Ӯ.*Nu .>dӮNuJfaC.6"..FaӮ.>Nu g%a n-HNuJf/ .Jo/.JӮ.Ja""W#A$a"_ Q" -Hө/)/a" .Jo-@.JNuAdp.6$.Δ.Rհ! NuJ.g.6g< gNu-A..Nu-A.BNu-n.RNuJ.g.6g< g Nu-n..Nu-n.BNuJf,aC.""..2*n..a&C.6"..F*n.Ba..Mg rA&BaB.NJ.fJ.g(n."(..&E"n.aa`) <f2<)g2<<g2<)AJ.j@< e:tlaXtQ<H8( HI/ BBBBdQ(_NutlatSWSBkBQ8(NuJfH"..&gӮ.N n."(HaL(..&Nu&n."(..&B`&n."(..&a` .lxfBNuvQClJf CxP&.h"QA t2i Ѓ&YSBg$"҃*o/ra4rҁҟ`a* `Jg"QA t2i`JfPCx&.hJfrSgNuJf>H n."" &Ha0(..&LNuataA&0` h t  .NBBBXA&r`t(.htJ.g4(nIht/E"n.a$g nTUe!B&nGhta n0`Nu$"n2p)<gLJ.fNu/ Cl$QJf(a$H%H`0H`"<aL"B1|2Nu jJhf"Ha%Hp2h@@Sh! $_NuJ.gJ.g<g< gӮ.*`Ӯ.><fpNupNurTJg rD< grBa<`HA NuANuexecutable.PRGfSNu"<@$<a~-A.V-A.^a&-H.Z-H.bNu$n.braASa-J.bEvxS-O iaNO) f"nL"Q$n.b ga-J.bNuJg/ "Qa"_) gaJg / "ia"_Nura.2)a:A`D$n.braAa02)a2) a )H ) fra-J.bNu(gNuH$n.bra(HaASa-J.bL.n`,$n.b"..V.^fJf-n.Z.b-n.V.^Nurat-J.bNuJ.g$n.bra^.6Hah-J.bNuNuC.n-I.fBC.-I.jNuJ.gD n.f .j0-H.fB n.j/"OT+P6-H.jXNupNu$n.bra Ia-J.bNuJ.g$J.g$n.bra"HAaHAa-J.bpNu$n.b&..^Sea<fa `-C.^-J.bNuSeNuR-C.^a&..^`$n.b"n&..^tJ.nfVSe gSf-C.^-J.bNuSfa`R-C.^ad&..^`R.^aVS.^eNuT.^aDU.^eNuT.^a0U.^e?TNuaHH.^l.^S.^SfNuHa n.Z"..V.^ax$n.Z-n.V.^LNu`p<f.pT`*p`p `p`p ` p)S`p*`<f ?pa60 n.f 6 .j0-H.fB n.j/"OC*J. g +P60g >`-H.jXNu/A.n(g@aLHP"X&n.j0Jg&h( o -C.^a &..^SfL H`(a -C.^(-J.bNuJg AaHDNuar.`A NuANuGST linkable.BIN".hҁda-H."-H..-H".ha".tҁda-H.6-H.B".tSep0QdNuJ.g .htJ.6g .tt;;NuӮSfNuӮNuNupNu|fAH6~fSBfPNuPASCALXpB`J.g*$.hJ.6g$.tA*0|++f0jNuS@@@@NuXNu*ak;(;(Nu;(a&;(Nu:ak;(Nu:ak;(NuJg < gpNupNupNug*J.g$H@ҁavL/ E00Sf _ҁNuaBA&0` h t BBBpJ.g0?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~A??<NAXNu///??<@NAO "NuJCk|d ??<>NAXNu&_*o -eFCe>,m-M2O~A-H3*A32-H3&B3"// Bg?<JNAO JfQ2N??< NA\`Hz ?<&NN\Nu 8Nu bytes used out of , took secondsEnter command line: Press a key to exitInvalid command line - see manual J.2g,Hz?< NA\/<NAXJ@f>NA< g< e.H??<LNAp///?<NNO @ h (#WH??<*NAT2A4JBJgAaN/2aF/2YAAPa4  ?<,NAT2YAa:2IA?a :2AAHABAHA 0HA0NuR Ю3&3*d n3&-H3"Ӯ3&pNupNu3"f-H3&B3"NuApCB/ /a _g "n2$fA2(Bg/?<=NAP"_ (k(?<?B?<BNAO /Bg?B?<BNAO "pNu??<>NAXNu//??<?NAO "`Bg/?<=NAPJk*6?<?B?<BNAO /Bg?B?<BNAO $pNu??<>NAXNu//??<?NAO NuCg<.f&$ JfSDJfa亴<RgRfABg/?<<:864321000000123468:<>A}CzFxIuLqOnRkVhYe\a_^cZfWiTmQpNsJvHyE|B~?=;9754211000001124579;=?~B|EyGvJsNpQmTiWfZc^`a\eYhVkRnOqLuIwFzC}A><:864321000000123468:<>A}CzFxIuLqOnRkVhYe\a_^cZfWiTmQpNsJvHyE|B~?=;9754211000001124579;=?~B|EyGvJsNpQmTiWfZc^``abcdefghijklmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlkjihgfedcba``ejosx}}xsoje`ZUPLGB=840+'#  #'+/48=BGLPUZ_ejosx}}xsoje`ZUPLGB=840+'#  #'+/48=BGLPUZ_; THE DEMO CLUB INTRO BY MIKE ; DISTRIBUTE THIS SOURCE UPON PAIN ; OF DEATH, OR EVEN WORSE, HARD DISK ; ERASURE. ; ; SIMPLY ADD YOUR TEXT ABOVE MINE, ; SOMEWHERE TOWARDS THE END OF THE ; PROGRAM. ; ; I WOULD APPRECIATE IT IF YOU WOULD ; FINISH YOURS IN SUCH A WAY THAT IT ; 'FLOWED' INTO MINE NEATLY! ; ; THEN ASSEMBLE TO DISK (CALL IT ; INTRO.PRG OR SOMETHING), AND THEN ; PACK IT USING AUTOMATION 1.3 OR ; GREATER (THIS OFFERS SOME DEGREE ; OF PROTECTION FROM THE CASUAL ; HACKER!) ; ; CHEAR'S JOHN - YOU OWE ME A DRINK! ; (OR MANY JUST A FEW DISKS!) ; ; BYE-BYE! OPT O+,OW- VSYNC MACRO MOVE.L D0,-(A7) MOVE.W SYNC,D0 .VLP\@ CMP.W SYNC,D0 BEQ .VLP\@ MOVE.L (A7)+,D0 ENDM ; START OF PROGRAM BSR INIT BSR RANDGEN BSR SHIFTLOGO BSR SFTSMILE BSR CLEARBUF LEA $FF8240,A0 LEA NWPAL,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) BSR ON CONT2 VSYNC BSR DLOGO BSR SMILEY BSR BARS ;MOVE.W #$606,$FF8240 CMPI.B #$39,$FFFC02 BNE CONT2 BSR FLUSH BRA OUT FLUSH BTST.B #0,$FFFC00 BEQ FLUSH2 MOVE.B $FFFC02,D0 BRA FLUSH FLUSH2 RTS INIT DC.W $A00A CLR.L -(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP MOVE.L D0,SSP MOVE.B #$12,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) MOVE.W #2,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,PBASE MOVE.W #3,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,LBASE MOVE.W #4,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.W D0,RES CLR.B $FF8260 MOVE.L #SCREENS,D0 ADD.L #512,D0 AND.L #$FFFFFF00,D0 MOVE.L D0,SCREENA ADD.L #$B000,D0 MOVE.L D0,SCREENB MOVE.W #1,TOGGLE MOVE.L SCREENB,SCREENW MOVE.L SCREENA,A0 MOVE.W #($16000/4),D0 MOVEQ #0,D1 CLRLOOP MOVE.L D1,(A0)+ DBRA D0,CLRLOOP MOVE.L #BARDAT,BARPOS MOVE.L #LWAVE,WAVE ;LOGO MOVE.L #SWAVE,WAVE2 ;SMILEY MOVEQ #1,D0 BSR MUSIC RTS OUT BSR OFF BSR SOUNDOFF MOVE.B #$8,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) MOVE.W RES,-(SP) MOVE.L LBASE,-(SP) MOVE.L PBASE,-(SP) MOVE.W #5,-(SP) TRAP #14 ADD.L #12,SP DC.W $A009 MOVE.L SSP,-(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP CLR.W -(SP) TRAP #1 SOUNDOFF MOVEQ #0,D0 JSR MUSIC MOVE.B #7,$FFFFF8800 MOVE.B #-1,$FFFF8802 RTS ;DIST CODE SHIFTLOGO LEA LOGOCOPY,A1 MOVE.L #15,D0 SHIFT3 LEA LOGO,A0 MOVE.W #76,D1 SHIFT2 MOVE.W #7,D2 CLR.W 0(A1) CLR.W 2(A1) CLR.W 4(A1) CLR.W 6(A1) SHIFT1 MOVEQ #0,D3 MOVEQ #0,D4 MOVEQ #0,D5 MOVEQ #0,D6 MOVE.W 0(A0),D3 MOVE.W 2(A0),D4 MOVE.W 4(A0),D5 MOVE.W 6(A0),D6 LSL.L D0,D3 LSL.L D0,D4 LSL.L D0,D5 LSL.L D0,D6 MOVE.W D3,$8(A1) MOVE.W D4,$A(A1) MOVE.W D5,$C(A1) MOVE.W D6,$E(A1) SWAP D3 SWAP D4 SWAP D5 SWAP D6 OR.W D3,0(A1) OR.W D4,2(A1) OR.W D5,4(A1) OR.W D6,6(A1) LEA 8(A0),A0 LEA 8(A1),A1 DBRA D2,SHIFT1 LEA 8(A1),A1 DBRA D1,SHIFT2 DBRA D0,SHIFT3 LEA XTABLE,A0 MOVE.L #0,D0 MOVE.W #19,D2 XT2 MOVE.W #15,D1 XT1 MOVE.L D0,(A0)+ DBRA D1,XT1 ADD.L #8,D0 DBRA D2,XT2 RTS DLOGO LEA LOGOTAB,A0 LEA XTABLE,A1 LEA XADDR,A2 MOVE.L SCREENW,A3 MOVE.W #76,D0 MOVEQ #0,D2 ;YPOS MOVE.L WAVE,A4 MOVEQ #0,D1 ENDRET1 MOVE.W (A4)+,D1 BMI ENDWAVE1 MOVE.L A4,WAVE DISTLP LSL.L #2,D1 MOVE.L (A0,D1.L),D7 ADD.L D2,D7 ADD.L #LOGOCOPY,D7 MOVE.L D7,(A2)+ MOVE.L (A1,D1.L),D7 ADD.L A3,D7 ADD.L #($A0*15),D7 ;HPOS MOVE.L D7,(A2)+ LEA $A0(A3),A3 ADD.L #72,D2 MOVEQ #0,D1 ENDRET2 MOVE.W (A4)+,D1 BMI ENDWAVE2 DBRA D0,DISTLP LEA XADDR,A4 MOVEQ #0,D7 OFFSET SET $4B00+($A0*10) REPT 38 ;18 REG NEEDED MOVE.L (A4)+,A0 MOVE.L (A4)+,A1 MOVE.L D7,-8(A1) MOVE.L D7,-4(A1) MOVEM.L (A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,(A1) MOVEM.L 36(A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,36(A1) MOVE.L D7,72(A1) MOVE.L D7,76(A1) MOVE.L (A4)+,A0 MOVE.L (A4)+,A1 MOVE.L D7,-8(A1) MOVE.L D7,-4(A1) MOVE.L D7,-8+OFFSET(A1) MOVE.L D7,-4+OFFSET(A1) MOVEM.L (A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,(A1) MOVEM.L D0-D6/A2-A3,OFFSET(A1) MOVEM.L 36(A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,36(A1) MOVEM.L D0-D6/A2-A3,36+OFFSET(A1) MOVE.L D7,72(A1) MOVE.L D7,76(A1) MOVE.L D7,72+OFFSET(A1) MOVE.L D7,76+OFFSET(A1) OFFSET SET OFFSET-($A0*3) ENDR MOVE.L (A4)+,A0 MOVE.L (A4)+,A1 MOVE.L D7,-8(A1) MOVE.L D7,-4(A1) MOVEM.L (A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,(A1) MOVEM.L 36(A0),D0-D6/A2-A3 MOVEM.L D0-D6/A2-A3,36(A1) MOVE.L D7,72(A1) MOVE.L D7,76(A1) RTS ENDWAVE1 MOVE.L #LWAVE,A4 BRA ENDRET1 ENDWAVE2 MOVE.L #LWAVE,A4 BRA ENDRET2 ;SMILE CODE SFTSMILE LEA SMILE,A0 LEA SMILEROT,A1 MOVE.L A1,A2 MOVE.W #31,D0 ROTLP4 MOVE.L (A0)+,(A2)+ MOVE.L #0,(A2)+ DBRA D0,ROTLP4 MOVE.L A1,A0 MOVE.L A2,A1 MOVE.W #30,D0 ROTLP3 MOVE.W #31,D1 ROTLP2 MOVE.L (A0),(A1) MOVE.L 4(A0),4(A1) ROXR.W (A1) ROXR.W 2(A1) ROXR.W 4(A1) ROXR.W 6(A1) ADDQ.L #8,A0 ADDQ.L #8,A1 DBRA D1,ROTLP2 DBRA D0,ROTLP3 RTS SMILEY LEA SMILETAB,A0 LEA SMILEROT,A1 LEA BOX,A5 MOVE.L SCREENW,A3 CMP.W #0,SDIREC2 BEQ SMDOWN SUB.L #$A0,SPOS2 CMP.L #($A0*170),SPOS2 BNE SMOKAY1 MOVE.W #0,SDIREC2 BRA SMOKAY1 SMDOWN ADD.L #$A0,SPOS2 CMP.L #($A0*228),SPOS2 BNE SMOKAY1 MOVE.W #1,SDIREC2 SMOKAY1 ADD.L SPOS2,A3 MOVEQ #0,D1 COUNT SET 0 REPT 20 MOVE.W D1,(-$A0+COUNT)(A3) COUNT SET COUNT+8 ENDR MOVE.W #31,D0 MOVE.L WAVE2,A4 SMILELP MOVEQ #0,D1 DRET1 MOVE.W (A4)+,D1 BMI DENDWAVE1 LSL.L #2,D1 MOVE.L (A0,D1.L),D7 MOVE.L A1,A2 ADD.L D7,A2 MOVE.W (A2),D1 MOVE.W 2(A2),D2 MOVE.W 4(A2),D3 MOVE.W 6(A2),D4 MOVE.W D1,$08(A3) MOVE.W D2,$10(A3) MOVE.W D3,$18(A3) MOVE.W D4,$20(A3) MOVE.W D1,$78(A3) MOVE.W D2,$80(A3) MOVE.W D3,$88(A3) MOVE.W D4,$90(A3) MOVE.W (A5)+,$28(A3) MOVE.W (A5)+,$30(A3) MOVE.W (A5)+,$38(A3) MOVE.W (A5)+,$40(A3) MOVE.W (A5)+,$48(A3) MOVE.W (A5)+,$50(A3) MOVE.W (A5)+,$58(A3) MOVE.W (A5)+,$60(A3) MOVE.W (A5)+,$68(A3) MOVE.W (A5)+,$70(A3) ADDQ.L #8,A1 LEA $A0(A3),A3 DBRA D0,SMILELP MOVE.L WAVE2,A4 MOVEQ #0,D1 DRET2 MOVE.W (A4)+,D1 BMI DENDWAVE2 MOVE.L A4,WAVE2 RTS DENDWAVE1 MOVE.L #SWAVE,A4 BRA DRET1 DENDWAVE2 MOVE.L #SWAVE,A4 BRA DRET2 CLEARBUF MOVE.W #(20*$A0),D0 LEA SCBUF1,A0 CLBUF1 MOVE.L #0,(A0)+ DBRA D0,CLBUF1 MOVE.L #MESSAGE,MESPOS MOVE.L #FONT+$88,CHARADDR ; SPACE MOVE.L #(225*$A0),SPOS MOVE.W #0,SDIREC MOVE.L #(225*$A0),SPOS2 MOVE.W #1,SDIREC2 RTS SCROLL CMP.W #0,SDIREC BEQ SCDOWN SUB.L #$A0,SPOS CMP.L #($A0*202),SPOS BNE SOKAY1 MOVE.W #0,SDIREC BRA SOKAY1 SCDOWN ADD.L #$A0,SPOS CMP.L #($A0*260),SPOS BNE SOKAY1 MOVE.W #1,SDIREC SOKAY1 MOVE.W SCROLLX,D0 ADDQ.W #2,SCROLLX CMP.W #$54,SCROLLX BLT.S SCOK1 CLR.W SCROLLX SCOK1 MOVE.W D0,D1 ANDI.W #3,D0 ADD.W D0,D0 ADD.W D0,D0 ;=0,8 MOVE.W D0,NSHIFTS LEA SCRTABLE(PC),A0 MOVE.L (A0,D0.W),A1 ANDI.W #$FFFC,D1 ADD.W D1,D1 ADD.W D1,A1 ;ADD OFFSET OT BUF ADDR TST.W D0 BNE SCRSKIP CMPI.W #2,CHARCNT BNE LETOK MOVEQ #0,D1 MOVE.W D1,CHARCNT ;GETLET MOVE.L MESPOS,A2 TRYAGAIN MOVE.B (A2)+,D1 BPL.S SCOK2 LEA MESSAGE,A2 BRA TRYAGAIN SCOK2 MOVE.L A2,MESPOS CMP.B #32,D1 BLT TRYAGAIN SUB.B #32,D1 ADD.W D1,D1 LEA CHARTAB,A2 MOVE.W (A2,D1),D1 MOVE.L #FONT+128,CHARADDR ADD.L D1,CHARADDR BRA SCRCONT LETOK ADDQ.L #8,CHARADDR SCRCONT ADDQ.W #1,CHARCNT SCRSKIP MOVE.L CHARADDR,A0 MOVE.L A1,A2 ; BUF ADDR MOVEQ #31,D1 ; HEIGHT MOVE.W NSHIFTS,D2 UPDATE MOVEQ #0,D0 MOVE.W (A0),D0 LSL.L D2,D0 MOVE.W D0,$08(A2) MOVE.W D0,$B0(A2) SWAP D0 OR.W D0,$00(A2) OR.W D0,$A8(A2) MOVEQ #0,D0 MOVE.W 2(A0),D0 LSL.L D2,D0 MOVE.W D0,$0A(A2) MOVE.W D0,$B2(A2) SWAP D0 OR.W D0,$02(A2) OR.W D0,$AA(A2) MOVEQ #0,D0 MOVE.W 4(A0),D0 LSL.L D2,D0 MOVE.W D0,$0C(A2) MOVE.W D0,$B4(A2) SWAP D0 OR.W D0,$04(A2) OR.W D0,$AC(A2) MOVEQ #0,D0 MOVE.W 6(A0),D0 LSL.L D2,D0 MOVE.W D0,$0E(A2) MOVE.W D0,$B6(A2) SWAP D0 OR.W D0,$06(A2) OR.W D0,$AE(A2) LEA $A0(A0),A0 LEA $150(A2),A2 DBRA D1,UPDATE ;NOTE A1 ADDR, A0=DEST MOVE.L SCREENW,A0 ADD.L SPOS,A0 LEA 16(A1),A1 ;$150 BYTES/ROW OFFSET SET $28B0 LEA BLANK,A2 MOVEM.L (A2),D0-D7/A2-A6 MOVE.L D0,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) REPT 32 MOVE.L $9C+OFFSET(A1),-(A0) MOVEM.L $68+OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L $34+OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) ;LEA -$A0(A0),A0 OFFSET SET OFFSET-$150 ENDR LEA BLANK,A2 MOVEM.L (A2),D0-D7/A2-A6 MOVEM.L D0-D1,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) RTS BARS MOVEQ #0,D0 MOVEQ #0,D1 MOVEQ #0,D2 MOVE.B #$8,$FF8800 MOVE.B $FF8800,D1 MOVE.B #$9,$FF8800 MOVE.B $FF8800,D0 MOVE.B #$A,$FF8800 MOVE.B $FF8800,D2 MOVE.B #14,$FF8800 MOVE.B $FF8800,D7 ;CMP.B #14,D0 ;BHI AON ;BSET #1,D7 ;BRA AOK AON ;BCLR #1,D7 AOK ;CMP.B #14,D1 ;BHI BON ;BSET #2,D7 ;BRA BOK BON ;BCLR #2,D7 BOK ;MOVE.B D7,$FF8802 MOVE.L SCREENW,A1 ADD.L #(100*$A0+8*5+6),A1 MOVE.L #0,BAR11 MOVE.L #0,BAR21 MOVE.L #0,BAR31 MOVE.L BARPOS,A0 MOVE.L (A0),D3 ADD.L #4,BARPOS CMP.L #BAREND,BARPOS BNE BARPOSOK MOVE.L #BARDAT,BARPOS BARPOSOK MOVE.W #16,D7 BARLP CMP.B D0,D7 BNE NB1 MOVE.L D3,BAR11 NB1 CMP.B D1,D7 BNE NB2 MOVE.L D3,BAR21 NB2 CMP.B D2,D7 BNE NB3 MOVE.L D3,BAR31 NB3 MOVE.W BAR11,$00(A1) MOVE.W BAR12,$08(A1) MOVE.W BAR21,$20(A1) MOVE.W BAR22,$28(A1) MOVE.W BAR31,$40(A1) MOVE.W BAR32,$48(A1) MOVE.W BAR11,$140(A1) MOVE.W BAR12,$148(A1) MOVE.W BAR21,$160(A1) MOVE.W BAR22,$168(A1) MOVE.W BAR31,$180(A1) MOVE.W BAR32,$188(A1) LEA $A0*4(A1),A1 DBRA D7,BARLP RTS NSTARS EQU 100 STARFIELD LEA OLDPOS,A0 MOVE.L (A0),D0 MOVE.L 4(A0),A0 MOVE.L D0,4(A0) MOVE.L OLDPOS,A0 MOVE.W #(NSTARS/4)-1,D0 MOVEQ #0,D1 CLEARLP MOVEM.L (A0)+,A1-A4 MOVE.W D1,(A1) MOVE.W D1,(A2) MOVE.W D1,(A3) MOVE.W D1,(A4) DBF D0,CLEARLP FIRSTPLOT LEA NEWPOS,A0 MOVE.L OLDPOS,A1 MOVE.W #NSTARS-1,D0 MOVE.L SCREENW,D1 ADD.L #6,D1 MOVEQ #0,D3 PLOTSTAR MOVE.L (A0),A2 MOVE.L (A2)+,D2 BEQ.S RESET MOVE.L D1,A3 ADD.W (A2)+,A3 MOVE.L A3,(A1)+ OR.W D2,(A3) MOVE.L A2,(A0) LEA $308(A0),A0 DBF D0,PLOTSTAR RTS RESET LEA 4(A0),A2 MOVE.L A2,(A0) LEA $308(A0),A0 DBF D0,PLOTSTAR RTS RAND MOVEM.L D1-D2/A0-A2,-(A7) MOVE.W #$11,-(A7) TRAP #14 ADD.L #2,A7 LSR.L #8,D0 LSR.L #8,D0 MOVEM.L (A7)+,D1-D2/A0-A2 RTS RANDGEN LEA NEWPOS,A0 LEA SINTAB,A2 LEA $80+SINTAB,A3 MOVE.W #NSTARS-1,D1 SLOOP2 LEA 4(A0),A1 MOVE.L A1,(A0) BSR RAND LSR.L #2,D0 MOVE.W D0,A6 BSR RAND LSR.L #2,D0 MOVE.L D0,D3 BSR RAND MOVE.W D0,D4 MOVE.W #$7F,D7 LEA RADIUS,A4 BSR RAND LSR.W #3,D0 ADDA.W D0,A4 SLOOP MOVEQ #0,D0 MOVE.B (A4)+,D0 ADD.W D0,D3 MOVE.L D3,D5 MOVE.L D3,D6 MOVE.W D4,D0 ADD.W D0,D0 MULS 0(A3,D0.W),D5 ADD.L D5,D5 SWAP D5 ADDI.W #$A0,D5 MULS 0(A2,D0.W),D6 ADD.L D6,D6 SWAP D6 ADDI.W #100,D6 SUBQ.B #1,D4 LSR.W #1,D6 CMP.W #320,D5 BCC.S OFFSCR CMP.W #0,D5 BCS.S OFFSCR CMP.W #100,D6 BCC.S OFFSCR CMP.W #0,D6 BCS.S OFFSCR MOVE.W D5,D0 ANDI.W #$F,D0 MOVE.W A6,D2 ADD.W D3,D2 LSR.W #5,D2 ADD.W D2,D2 ADD.W D2,D2 LEA STARTAB,A5 MOVE.L (A5,D2.W),D2 ROR.L D0,D2 MOVE.L D2,(A1)+ MOVE.W D6,D0 MULU #$A0,D0 MOVE.W D5,D2 ANDI.W #$FFF0,D2 LSR.W #1,D2 ADD.W D2,D0 MOVE.W D0,(A1)+ DBF D7,SLOOP OFFSCR CLR.L (A1)+ LEA $308(A0),A0 DBF D1,SLOOP2 BSR FIRSTPLOT RTS ON LEA MFPSTORE,A0 MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $134.W,(A0)+ CLR.B $FFFFFA1B.W CLR.B $FFFFFA19.W MOVE.B #$21,$FFFFFA07.W CLR.B $FFFFFA09.W MOVE.B #$21,$FFFFFA13.W CLR.B $FFFFFA15.W BCLR.B #3,$FFFFFA17.W MOVE.L #TOPBORD,$134.W MOVE.L #BOTTOM,$120.W MOVE.L #VBLANK,$70.W MOVE #$2300,SR RTS OFF MOVE #$2700,SR LEA MFPSTORE,A0 MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA21.W MOVE.L (A0)+,$68.W MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$134.W BSET.B #3,$FFFFFA17.W MOVE #$2300,SR RTS SWAPSCR CMP.W #1,TOGGLE BEQ SWP1 BNE SWP2 SWP1 MOVE.L SCREENB,SCREENW MOVE.W #2,TOGGLE RTS SWP2 MOVE.L SCREENA,SCREENW MOVE.W #1,TOGGLE RTS TOGSCR CMP.W #2,TOGGLE BEQ TOG1 BNE TOG2 TOG1 MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOG2 MOVE.L SCREENA,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOPBORD MOVE #$2100,SR STOP #$2100 CLR.B $FFFFFA19.W DCB.W 78,$4E71 ;78 NOPS CLR.B $FFFF820A.W DCB.W 18,$4E71 ;18 NOPS MOVE.B #2,$FFFF820A.W RTE PHBL RTE BOTTOM MOVE D0,-(SP) DCB.W 32,$4e71 CLR D0 .syncb MOVE.B $ffff8209.w,D0 NEG.B D0 ADD.B #64+128,D0 LSL.B D0,D0 MOVE #18,D0 .wait DBF D0,.wait ;101 nops! MOVE.B #0,$FF820A DCB.W 12,$4E71 MOVE.B #2,$FF820A MOVE.W (SP)+,D0 RTE HBLANK1 MOVE.W #$001,$FFF8240 MOVE.W #$300,$FFF8240+(7*2) CLR.B $FFFFFA1B.W MOVE.L #HBLANK1B,$120 MOVE.B #7,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVE.L D0,-(SP) MOVE.L #$07000700,D0 MOVE.L D0,$FFF8250 MOVE.L D0,$FFF8254 MOVE.L D0,$FFF8258 MOVE.L D0,$FFF825C MOVE.L (SP)+,D0 RTE HBLANK1B MOVE.W #$002,$FFF8240 MOVE.L #HBLANK2,$120 MOVE.L D0,-(SP) MOVE.L #$00700070,D0 MOVE.L D0,$FFF8250 MOVE.L D0,$FFF8254 MOVE.L D0,$FFF8258 MOVE.L D0,$FFF825C MOVE.L (SP)+,D0 RTE HBLANK2 MOVE.W #$003,$FFF8240 MOVE.L #HBLANK3,$120 RTE HBLANK3 MOVE.W #$004,$FFF8240 MOVE.L #HBLANK4,$120 RTE HBLANK4 MOVE.W #$005,$FFF8240 MOVE.L #HBLANK5,$120 RTE HBLANK5 MOVE.W #$006,$FFF8240 MOVE.L #HBLANK6,$120 RTE HBLANK6 MOVE.W #$007,$FFF8240 MOVE.L #HBLANK7,$120 RTE HBLANK7 MOVE.W #$227,$FFF8240 MOVE.L #HBLANK8,$120 RTE HBLANK8 MOVE.W #$777,$FFF8240 MOVE.L #HBLANK9,$120 CLR.B $FFFFFA1B.W MOVE.B #3,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W RTE HBLANK9 MOVE.W #$666,$FFF8240 MOVE.L #HBLANKA,$120 RTE HBLANKA MOVE.W #$555,$FFF8240 MOVE.L #HBLANKB,$120 RTE HBLANKB MOVE.W #$444,$FFF8240 MOVE.L #HBLANKF,$120 RTE HBLANKF MOVE.W #$0,$FFF8240 CLR.B $FFFFFA1B.W MOVE.L #BOTTOM,$120 MOVE.B #60,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVEM.L D0-D6/A0-A1,-(SP) LEA FONT+6,A0 LEA $FF8242,A1 MOVEM.L 2(A0),D0-D6 MOVEM.L D0-D6,2(A1) MOVE.W (A0),(A1) MOVEM.L (SP)+,D0-D6/A0-A1 RTE VBLANK CLR.B $FFFFFA19.W MOVE.B #100,$FFFFFA1F.W MOVE.B #4,$FFFFFA19.W CLR.B $FFFFFA1B.W MOVE.B #100,$FFFFFA21.W MOVE.L #HBLANK1,$120 MOVE.B #8,$FFFFFA1B.W MOVE.L #PHBL,$68.W CLR.W $FF8240 MOVEM.L D0-D7/A0-A5,-(SP) BSR STARFIELD BSR SWAPSCR LEA $FF8240,A0 LEA NWPAL,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) NOT.S SYNC BSR MUSIC+8 BSR SCROLL BSR TOGSCR MOVEM.L (SP)+,D0-D7/A0-A5 RTE NWPAL DC.W $000,$012,$056,$045,$034,$023,$067,$500 DC.W $555,$555,$555,$555,$555,$555,$555,$555 SCROLLX DC.W 0 CHARCNT DC.W 0 NSHIFTS DC.W 0 CHARADDR DC.L 0 BLANK DC.L 0,0,0,0,0,0,0,0,0,0,0,0,0 LOGOTAB REPT 20 DC.L $15A8*0,$15A8*1,$15A8*2,$15A8*3,$15A8*4,$15A8*5,$15A8*6,$15A8*7 DC.L $15A8*8,$15A8*9,$15A8*10,$15A8*11,$15A8*12,$15A8*13,$15A8*14,$15A8*15 ENDR EVEN WIDTH EQU $100 SMILETAB DC.L WIDTH*00,WIDTH*01,WIDTH*02,WIDTH*03,WIDTH*04,WIDTH*05,WIDTH*06,WIDTH*07 DC.L WIDTH*08,WIDTH*09,WIDTH*10,WIDTH*11,WIDTH*12,WIDTH*13,WIDTH*14,WIDTH*15 DC.L WIDTH*16,WIDTH*17,WIDTH*18,WIDTH*19,WIDTH*20,WIDTH*21,WIDTH*22,WIDTH*23 DC.L WIDTH*24,WIDTH*25,WIDTH*26,WIDTH*27,WIDTH*28,WIDTH*29,WIDTH*30,WIDTH*31 BARDAT DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %00111111111111111111111111111100 DC.L %00011111111111111111111111111000 DC.L %00001111111111111111111111110000 DC.L %00000111111111111111111111100000 DC.L %00000011111111111111111111000000 DC.L %00000001111111111111111110000000 DC.L %00000000111111111111111100000000 DC.L %00000000011111111111111000000000 DC.L %00000000000111111111100000000000 DC.L %00000000000011111111000000000000 DC.L %00000000000000111100000000000000 DC.L %00000000000000011000000000000000 DC.L %00000000000000111100000000000000 DC.L %00000000000011111111000000000000 DC.L %00000000000111111111100000000000 DC.L %00000000011111111111111000000000 DC.L %00000000111111111111111100000000 DC.L %00000001111111111111111110000000 DC.L %00000011111111111111111111000000 DC.L %00000111111111111111111111100000 DC.L %00001111111111111111111111110000 DC.L %00011111111111111111111111111000 DC.L %00111111111111111111111111111100 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 BAREND ;NOTE USE ; ;/ FOR RIGHT HAND " ;& FOR ' ;MAY ALSO USE !,.;?-"() MESSAGE ;PUT YOUR TEXT HERE, JOHN. DC.B ' ........ ' DC.B 'HELLO, GOODEVENING AND WELCOME, AND THANKS FOR READING THIS FAR INTO THE SCROLL! ' DC.B 'THIS IS THE SECOND DEMO SCREEN I&VE WRITTEN - AND IT AIN&T BAD - (BUT THEN I&M BIASED! ) ' DC.B 'THE GREAT MUSIX IS BY MAD MAX, AND THIS FONT WAS PINCHED FROM AN EARLY OVERLANDERS SCREEN. ' DC.B 'WELL, MEMORY IS SHORT, AND IF THIS IS TO RUN ON A 520 MACHINE, I HAD BETTER GET ON WITH IT, AS I DON&T KNOW HAVE MUCH HAS BEEN WRITTEN BEFORE THIS! ' DC.B '(PROBABLY TOO MUCH!). SO, ONTO ' DC.B 'THE BORING BIT; A FEW GREETINGS .. ' DC.B 'SPECIAL GREATING TO STALIN OF FLEXIBLE FRONT, I&M GLAD YOU&S STILL CODING GREAT DEMOS. ' DC.B 'ALSO TO GRIFF OF THE RESISTANCE, I&M IMPROVING NO? ' DC.B 'HI TO JUST ABOUT EVERBODY ELSE IN THE ST WORLD, INCLUDING TCB, ALL MEMBERS OF THE UNION, OVERLANDERS, ALLIENCE, AND OF COURSE INNER CIRCLE. ' DC.B 'WELL, THAT WAS QUICK! ' DC.B 'IF YOU WANT TO TALK TO ME, AND PLEASE (PLEASE) DO, THE ' DC.B 'CONTACT ADDRESS IS ' DC.B 'M I K E, 7 F I N C H D A L E C L O S E, ' DC.B 'C A R T E R T O N, O X F O R D S H I R E, ' DC.B 'O X 8 3 B T, E N G L A N D. ' DC.B 'AND ONCE AGAIN ....... ' DC.B 'M I K E, 7 F I N C H D A L E C L O S E, ' DC.B 'C A R T E R T O N, O X F O R D S H I R E, ' DC.B 'O X 8 3 B T, E N G L A N D. ' DC.B ' WELL, THE TIME HAS COME TO DO WHAT ALL SCROLLERS MUST EVENTUALLY DO, ' DC.B ' WRAP .. (DOES ANYBODY ACTUALLY READ THESE THINGS? OBVIOUSLY!) BYE BYE ..... ' DC.B $FF EVEN SCRTABLE DC.L SCBUF1,SCBUF1,SCBUF2,SCBUF2 CHARTAB DC.W $0010,$0080,$0000 DC.W $0010,$0010,$0010,$0040,$0040,$0050,$0060,$0070,$0080,$2850 DC.W $1400,$1410,$0090,$1430,$1440,$1450,$1460,$1470,$1480,$1490 DC.W $2800,$2810,$2820,$2830,$2840,$2850,$2860,$2870,$2880,$2890 DC.W $3C00,$3C10,$3C20,$3C30,$3C40,$3C50,$3C60,$3C70,$3C80,$3C90 DC.W $5000,$5010,$5020,$5030,$5040,$5050,$5060,$5070,$5080,$5090 DC.W $6400,$6410,$6420,$6430,$6440,$6450,$6460,$6470,$6480,$6490 RADIUS DC.B 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 DC.B 0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1 DC.B 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DC.B 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,0 DC.B 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DC.B 2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3 DC.B 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DC.B 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 DC.B 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 DC.B 4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5 DC.B 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 DC.B 5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6 STARTAB DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 SINTAB INCBIN SINTAB.DAT OLDPOS DC.L OLDPOS1,OLDPOS2 MUSIC INCBIN SWSPRITE.MUS LOGO INCBIN DEMOLOGO.DAT LWAVE INCBIN LOGOSINE.DAT DC.L $FFFFFFFF SMILE INCBIN SMILE.DAT SWAVE INCBIN BACKSINE.DAT DC.L $FFFFFFFF BOX INCBIN BOX.DAT FONT INCBIN FONT.NEO ; END OF STORED 0DATA SECTION BSS EVEN RES DS.W 1 LBASE DS.L 1 PBASE DS.L 1 PALETTE DS.W 16 SSP DS.L 1 SYNC DS.L 1 WAVE DS.L 1 WAVE2 DS.L 1 BARPOS DS.L 1 BAR11 DS.W 1 BAR12 DS.W 1 BAR21 DS.W 1 BAR22 DS.W 1 BAR31 DS.W 1 BAR32 DS.W 1 MESPOS DS.L 1 SDIREC DS.W 1 SPOS DS.L 1 SDIREC2 DS.W 1 SPOS2 DS.L 1 SCREENW DS.L 1 SCREEND DS.L 1 TOGGLE DS.W 1 SCREENA DS.L 1 SCREENB DS.L 1 MFPSTORE DS.L 7 XADDR DS.L (77*2) XTABLE DS.L (320) SMILEROT DS.B WIDTH*32 LOGOCOPY DS.B (8*77*9*16) ;$15A8 SCBUF1 DS.B $150*32 SCBUF2 DS.B $150*32 DS.L 100 OLDPOS1 DS.L NSTARS OLDPOS2 DS.L NSTARS NEWPOS DS.B (NSTARS+1)*6*128 SCREENS DS.B $16000 q fr0?q`@f3&?w ?  N8a,,`A?M?'? `???#a7#>0??OagOߞ?9??߼.Oq ????_?7__??'?????_8??? /?`o?? ? O7?? _ Sa?0` d##~>< ?O x9g8xq<>`xfrn`@?``x<p3&N@0 03`p ?d#?O?9g?x9?q< N  N q 3c < `{@ `{@f0?s a,Ax ;Ā ;Ā N8?w4 A?M' `  ??`_ ___ ?? 灇x c??`?_??`_ _ ` 0_OC_x ?ap( c9_ooO7O7SawSad#p>>0d#<9?G|9?`????? ? OPT O+,OW- VSYNC MACRO MOVE.L D0,-(A7) MOVE.W SYNC,D0 .VLP\@ CMP.W SYNC,D0 BEQ .VLP\@ MOVE.L (A7)+,D0 ENDM ; START OF PROGRAM BSR INIT BSR CLEARBUF BSR ON CONT2 VSYNC BSR SCROLL ;MOVE.W #$606,$FF8240 CMPI.B #$39,$FFFC02 BNE CONT2 BSR FLUSH BRA OUT FLUSH BTST.B #0,$FFFC00 BEQ FLUSH2 MOVE.B $FFFC02,D0 BRA FLUSH FLUSH2 RTS INIT DC.W $A00A CLR.L -(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP MOVE.L D0,SSP MOVE.B #$12,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) MOVE.W #2,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,PBASE MOVE.W #3,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,LBASE MOVE.W #4,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.W D0,RES CLR.B $FF8260 MOVE.L #SCREENS,D0 ADD.L #512,D0 AND.L #$FFFFFF00,D0 MOVE.L D0,SCREENA ADD.L #$B000,D0 MOVE.L D0,SCREENB MOVE.W #1,TOGGLE MOVE.L SCREENB,SCREENW MOVE.L SCREENA,A0 MOVE.W #($16000/4),D0 MOVEQ #0,D1 CLRLOOP MOVE.L D1,(A0)+ DBRA D0,CLRLOOP MOVEQ #1,D0 BSR MUSIC RTS OUT BSR OFF BSR SOUNDOFF MOVE.B #$8,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) MOVE.W RES,-(SP) MOVE.L LBASE,-(SP) MOVE.L PBASE,-(SP) MOVE.W #5,-(SP) TRAP #14 ADD.L #12,SP DC.W $A009 MOVE.L SSP,-(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP CLR.W -(SP) TRAP #1 SOUNDOFF MOVEQ #0,D0 JSR MUSIC MOVE.B #7,$FFFFF8800 MOVE.B #-1,$FFFF8802 RTS CLEARBUF MOVE.W #(20*$A0),D0 LEA SCBUF1,A0 CLBUF1 MOVE.L #0,(A0)+ DBRA D0,CLBUF1 MOVE.L #MESSAGE,MESPOS MOVE.L #FONT+$88,CHARADDR ; SPACE MOVE.L #(125*$A0),SPOS MOVE.W #0,SDIREC RTS SCROLL CMP.W #0,SDIREC BEQ SCDOWN SUB.L #$A0,SPOS CMP.L #($A0*66),SPOS BNE SOKAY1 MOVE.W #0,SDIREC BRA SOKAY1 SCDOWN ADD.L #$A0,SPOS CMP.L #($A0*260),SPOS BNE SOKAY1 MOVE.W #1,SDIREC SOKAY1 MOVE.W SCROLLX,D0 ADDQ.W #2,SCROLLX CMP.W #$54,SCROLLX BLT.S SCOK1 CLR.W SCROLLX SCOK1 MOVE.W D0,D1 ANDI.W #3,D0 ADD.W D0,D0 ADD.W D0,D0 ;=0,8 MOVE.W D0,NSHIFTS LEA SCRTABLE(PC),A0 MOVE.L (A0,D0.W),A1 ANDI.W #$FFFC,D1 ADD.W D1,D1 ADD.W D1,A1 ;ADD OFFSET OT BUF ADDR TST.W D0 BNE SCRSKIP CMPI.W #2,CHARCNT BNE LETOK MOVEQ #0,D1 MOVE.W D1,CHARCNT ;GETLET MOVE.L MESPOS,A2 TRYAGAIN MOVE.B (A2)+,D1 BPL.S SCOK2 LEA MESSAGE,A2 BRA TRYAGAIN SCOK2 MOVE.L A2,MESPOS CMP.B #32,D1 BLT TRYAGAIN SUB.B #32,D1 ADD.W D1,D1 LEA CHARTAB,A2 MOVE.W (A2,D1),D1 MOVE.L #FONT+128,CHARADDR ADD.L D1,CHARADDR BRA SCRCONT LETOK ADDQ.L #8,CHARADDR SCRCONT ADDQ.W #1,CHARCNT SCRSKIP MOVE.L CHARADDR,A0 MOVE.L A1,A2 ; BUF ADDR MOVEQ #31,D1 ; HEIGHT MOVE.W NSHIFTS,D2 UPDATE MOVEQ #0,D0 MOVE.W (A0),D0 LSL.L D2,D0 MOVE.W D0,$08(A2) MOVE.W D0,$B0(A2) SWAP D0 OR.W D0,$00(A2) OR.W D0,$A8(A2) MOVEQ #0,D0 MOVE.W 2(A0),D0 LSL.L D2,D0 MOVE.W D0,$0A(A2) MOVE.W D0,$B2(A2) SWAP D0 OR.W D0,$02(A2) OR.W D0,$AA(A2) MOVEQ #0,D0 MOVE.W 4(A0),D0 LSL.L D2,D0 MOVE.W D0,$0C(A2) MOVE.W D0,$B4(A2) SWAP D0 OR.W D0,$04(A2) OR.W D0,$AC(A2) MOVEQ #0,D0 MOVE.W 6(A0),D0 LSL.L D2,D0 MOVE.W D0,$0E(A2) MOVE.W D0,$B6(A2) SWAP D0 OR.W D0,$06(A2) OR.W D0,$AE(A2) LEA $A0(A0),A0 LEA $150(A2),A2 DBRA D1,UPDATE ;NOTE A1 ADDR, A0=DEST MOVE.L SCREENW,A0 ADD.L SPOS,A0 LEA 16(A1),A1 ;$150 BYTES/ROW OFFSET SET $28B0 LEA BLANK,A2 MOVEM.L (A2),D0-D7/A2-A6 MOVE.L D0,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) REPT 32 MOVE.L $9C+OFFSET(A1),-(A0) MOVEM.L $68+OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L $34+OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L OFFSET(A1),D0-D7/A2-A6 MOVEM.L D0-D7/A2-A6,-(A0) ;LEA -$A0(A0),A0 OFFSET SET OFFSET-$150 ENDR LEA BLANK,A2 MOVEM.L (A2),D0-D7/A2-A6 MOVEM.L D0-D1,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) MOVEM.L D0-D7/A2-A6,-(A0) RTS SCROLLX DC.W 0 CHARCNT DC.W 0 NSHIFTS DC.W 0 CHARADDR DC.L 0 BLANK DC.L 0,0,0,0,0,0,0,0,0,0,0,0,0 ON LEA MFPSTORE,A0 MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $134.W,(A0)+ CLR.B $FFFFFA1B.W CLR.B $FFFFFA19.W MOVE.B #$21,$FFFFFA07.W CLR.B $FFFFFA09.W MOVE.B #$21,$FFFFFA13.W CLR.B $FFFFFA15.W BCLR.B #3,$FFFFFA17.W MOVE.L #TOPBORD,$134.W MOVE.L #BOTTOM,$120.W MOVE.L #VBLANK,$70.W MOVE #$2300,SR RTS OFF MOVE #$2700,SR LEA MFPSTORE,A0 MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA21.W MOVE.L (A0)+,$68.W MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$134.W BSET.B #3,$FFFFFA17.W MOVE #$2300,SR RTS SWAPSCR CMP.W #1,TOGGLE BEQ SWP1 BNE SWP2 SWP1 MOVE.L SCREENB,SCREENW MOVE.W #2,TOGGLE RTS SWP2 MOVE.L SCREENA,SCREENW MOVE.W #1,TOGGLE RTS TOGSCR CMP.W #2,TOGGLE BEQ TOG1 BNE TOG2 TOG1 MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOG2 MOVE.L SCREENA,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOPBORD MOVE #$2100,SR STOP #$2100 CLR.B $FFFFFA19.W DCB.W 78,$4E71 ;78 NOPS CLR.B $FFFF820A.W DCB.W 18,$4E71 ;18 NOPS MOVE.B #2,$FFFF820A.W RTE PHBL RTE BOTTOM MOVE D0,-(SP) DCB.W 32,$4e71 CLR D0 .syncb MOVE.B $ffff8209.w,D0 NEG.B D0 ADD.B #64+128,D0 LSL.B D0,D0 MOVE #18,D0 .wait DBF D0,.wait ;101 nops! MOVE.B #0,$FF820A DCB.W 12,$4E71 MOVE.B #2,$FF820A MOVE.w (SP)+,D0 RTE HBLANK1 MOVE.W #$001,$FFF8240 MOVE.W #$300,$FFF8240+(7*2) CLR.B $FFFFFA1B.W MOVE.L #HBLANK2,$120 MOVE.B #7,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W RTE HBLANK2 MOVE.W #$002,$FFF8240 MOVE.L #HBLANK3,$120 RTE HBLANK3 MOVE.W #$003,$FFF8240 MOVE.L #HBLANK4,$120 RTE HBLANK4 MOVE.W #$004,$FFF8240 MOVE.L #HBLANK5,$120 RTE HBLANK5 MOVE.W #$005,$FFF8240 MOVE.L #HBLANK6,$120 RTE HBLANK6 MOVE.W #$006,$FFF8240 MOVE.L #HBLANK7,$120 RTE HBLANK7 MOVE.W #$007,$FFF8240 MOVE.L #HBLANK8,$120 RTE HBLANK8 MOVE.W #$555,$FFF8240 CLR.B $FFFFFA1B.W RTE VBLANK CLR.B $FFFFFA19.W MOVE.B #100,$FFFFFA1F.W MOVE.B #4,$FFFFFA19.W CLR.B $FFFFFA1B.W MOVE.B #228,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVE.L #PHBL,$68.W ;CLR.B $FFFFFA1B.W ;MOVE.L #HBLANK1,$120 ;MOVE.B #100,$FFFFFA21.W ;MOVE.B #8,$FFFFFA1B.W CLR.W $FF8240 MOVEM.L D0-D7/A0-A5,-(SP) JSR SWAPSCR LEA $FF8240,A0 LEA FONT+4,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) NOT.S SYNC JSR MUSIC+8 JSR TOGSCR MOVEM.L (SP)+,D0-D7/A0-A5 RTE MESSAGE DC.B 'HELLO GOODEVENING AND WELCOME ' DC.B $FF EVEN SCRTABLE DC.L SCBUF1,SCBUF1,SCBUF2,SCBUF2 CHARTAB DC.W $0010,$0000,$0000 DC.W $0000,$0010,$0020,$0030,$0040,$0050,$0060,$0070,$0080,$0090 DC.W $1400,$1410,$1420,$1430,$1440,$1450,$1460,$1470,$1480,$1490 DC.W $2800,$2810,$2820,$2830,$2840,$2850,$2860,$2870,$2880,$2890 DC.W $3C00,$3C10,$3C20,$3C30,$3C40,$3C50,$3C60,$3C70,$3C80,$3C90 DC.W $5000,$5010,$5020,$5030,$5040,$5050,$5060,$5070,$5080,$5090 DC.W $6400,$6410,$6420,$6430,$6440,$6450,$6460,$6470,$6480,$6490 MUSIC INCBIN SWSPRITE.MUS FONT INCBIN FONT.NEO ; END OF STORED DATA SECTION BSS EVEN RES DS.W 1 LBASE DS.L 1 PBASE DS.L 1 PALETTE DS.W 16 SSP DS.L 1 SYNC DS.L 1 MESPOS DS.L 1 SDIREC DS.W 1 SPOS DS.L 1 SCREENW DS.L 1 SCREEND DS.L 1 TOGGLE DS.W 1 SCREENA DS.L 1 SCREENB DS.L 1 MFPSTORE DS.L 7 SCBUF1 DS.B $150*32 SCBUF2 DS.B $150*32 SCREENS DS.B $16000 UUU U0UAURUcU T,*7`0$H?!߀q`o )!` v@a x@!So~? >`)&p_(c ` ?`g'8`yg< `^A?^o/z7_8`0`/z7_ 0yg<3x< @0` `g8)&p8P9_(c10`!O h n>v@a)@70 !߀ $~H?0`?0`   p~;~2@?  bf  ~ `~ @98F ` \t  `:  h``S/  "? ||À<x 08À<x `x?~"{ˆ:hx?& ?> vN܁0`.?0 :88  h x-<` ,<hx @@pD@C?wwppp;cÀDF~~$na""! 0?Dpp7?@D?GD?G ~~0%0@n ?>?>)&p>@>8As $c8c@~IsB>IsB>yg|aGA6? A8?$?px~ppE`~=0sCzׄ?3Cxׄ?ogzC~C~ `p~0w`BC`|v8 v v!Hd7x 00#?{l"=;";"!߀  |~1F ``3p0  @ 8~bF~s8`s8`>#p!>6+$>"!!0"!!07p 0!>>0r 0?``??) 7$9&0Fop`>618x?> ?  ? 2?<\b0M'rx70r@?DlCc<dCc<d&\?<|:00t> 0O8\?\ ~\ ~}0? S/ 0#0 ??0~0~#0?8"?>0;> a`a?8w~w~8D?0?8?|jnR߽ 9?s>?x|"6 z"6 zvOqϏ~7? Dz?>#>#>"!>"?""!>8>`>@?>?MԼ:w?wvpd8{ @>>>] >>?%r?%\pkIv?~ +Iv~0?%v?%vv<y*Kw؁8iK^wځ<`69.69. .?7@7Lpc gc2g?c0(7`7`09><`:><3Gx?8Gx?89>?<9>?<0 q  |۹?";>; ??p!?DB~wBp??cÀpD@C?;< ;7?@$na~Gr??Dppn ~~00@N@8c)&p>@>8A8&g$c A8?yg|aA4?A6?3Cxׄ?E`~C|x׀?sCzׄ?BC` `p~<}dw`{!Hd7x #!#?1F!߀  1q ~` hxbww@qF  8~!>6"#!߀~͜ ~@  0?`^ݾ>A >`!>>0r6188p &fD:7 Fop`>70r\xb"vg  M'rx 0O8ů;x 480 t>0 S1>p>>9?s||j!<;|?xÀ<~n~?x x xxÀ<xXXz?>z<8 <8 s8#>8??( ??( &?>@??%r k?<v<8000.?7@2 |s |s  9><`0}}? q  |>0##!? ?~pww{x~"?4x|~~7xwrpzwwpv&q ă10#v">>""&!=""!#l `^:^_: ^:YW>>>%>ɰs?B8ɰs?p s@8ɓP?sF8sF8s@8ɀD~sD<<YGpY?h ?tYG9?r9?rt v~Gvp=|=?|x==C~=C~ x<>=xxM|xw?ĄÄ  `0  π# 80@wxsg`">{??@8ٟ0ٟ0 >p>&apwzG8`? B `B `?0G!D {x 0 ;8ǀ"888ǀD@( ?&?0&@#0b@H#!dw݀#c`ccc `w`|Cb>0bX9 a~F@9~xƀ8zB9B99!?0tF\00~/0 ~F/~.x`/`//x?ܔ 0~!>~a~π~ >x! > ! >  > x>0~1@ ~쇔݀ AxA8A8Ax| ~<=€=À=À=€=P0 ÀÀ<À=>=€=€=À=À << >>z >Db"a|8><@vOqϏ~ll>8>D9``>D?G>8>>9v99:?"!>DDC>>>?< >x?MҼ:?MҼ8>?Mм8A?MԼ:?Mм<>v?%H?%v?%p?%p>?%p?%\p?%x8.y܀y(y*y,xy.*y*9 ~r77v7p7v7p7Lpc~7` 9><9><9><9><π9><:><309>@<@װD>||q??!?D|?۹?D"0ğ?CB~;@~sDB~nvw"~pD@C?{x~pD@C?w x~wwpv&q"vL? ?D$naă10$naF@?"p=D?G""!#l _@'$߀&% ~~0^: ~~0&!?>%>ɀ?@8 pHF B8 <)&p>@>8Aɰs?B8)&p>@>8AHpIsB>sD<؀?t  ??p?yg|aYGpyg|avxxpGvx}C/0z?E`~=|E`~>8zC~=x x `  _`x?x `p~M|x `p~ ? vx!`'!f!d_!Hd7x b!Hd7x x`;"!t{!t"!!߀  bC߀!߀  <|a0 `gx2 ~`3π`@>  Ѐx p!gx |f c !>π ` `0Oϐ>FO8D@@? s8`@>;81sg`">?"!!0"! 1?@&apw 9?@0?70`8 ?9  @Ͽ& 9&G!D {9l&q 8? ? ? )!`CbC ݀#] bb\b@#0b@\Qbn⇜KD?>Cc<d >`8xƄ8~<?@:X9 a~:~?\ ~'8` /P. ~0?zS//0 ~S//0~80``!?0!?0~x"?>!>~"?>^!@w~ 0@`@@݀  zΖx|j1@@xφ|-j@x`"6 z10`Ï< `Ã<?À<~<À<)yf~0)70@ Ç<<0>Ã<?<À<ÀÀ<À<887<0?0`~ 8z>> >?>?><` >2? @94D?G>~>8>#>8#>?@>> 8>x?><-<>?>@M1~>>> >Ev< p3?%r>?%r5 >?%v`x5. 3y(8*z,v<8v< *69.@p7v~pp.?7@~.?7@@ 7` 9><19><`9><`~9>?<`ހ| q  |װ q  |@@?v?``ğ?Cb!?!?"? "wb~~wwpv&qv"D0 D0 ""!#l d_1&%0' 0%> @8ɀ?B8 ~pIF B8IF B8sD<[t ؀?p8*0?p0?pGv|B50z>v}? z}? z=xLx  _`x?> ?`x ?`xx&g!b~>'b?'b?c!t>>at{at{| ~`gxÃ<!30g0x!30g0x` d gx Ã<|gx`|gx`wppF>Nό` zF8F8  #{<!?0~@@A?ǀP. ~<0?$9 Ƅ8~@@,`f\C<] b@\9 9 \_\_ \ /P/0@000?~!>>@@0@?@~~ Oϐ>  ΀`   C` `ß<!gx```0 Á<`gx,<,33  23?!t 8< _ǹ1 0f!d840>8483""0C?  _`x? m8c? ?wv ?%p?}C/0z?,p3??%v9?py0*y0y(6~HF B8 ` p`7v9>?0'$߀p9><AL? р!>рD|~pGENS 100        ?r^8}/$J($s$I (q^/=Ì=qpR"R*!$JP HÒ-rPpR"R$%$(JP H="La=.IH{rpd|x{`A$J%HU)@B`ys=©HU.p[` $I%HU)@J/{q%)pdDx{`? OPT O+,OW- VSYNC MACRO MOVE.L D0,-(A7) MOVE.W SYNC,D0 .VLP\@ CMP.W SYNC,D0 BEQ .VLP\@ MOVE.L (A7)+,D0 ENDM ; START OF PROGRAM MOVE.L A7,A5 CLR.L -(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP MOVE.L D0,SSP MOVE.L #MYSTACK,A7 MOVE.L 4(A5),A5 MOVE.L $C(A5),D0 ADD.L $14(A5),D0 ADD.L $1C(A5),D0 ADD.L #$100,D0 MOVE.L D0,-(SP) MOVE.L A5,-(SP) MOVE.W #0,-(SP) MOVE.W #$4A,-(SP) TRAP #1 LEA 12(SP),SP TST.L D0 BNE OUT2 BSR INIT BSR CLEARBUF BSR ON BSR FADEOUT MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 MOVE.L SCREENB,SCREENW LEA PIC+4,A1 BSR FADEIN MOVE.L #VBLANK,$70 LEA PIC+4,A0 LEA NWPALF,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) MOVEQ #0,D0 LEA PIC,A0 MOVE.W #31,D1 CLLP2 MOVE.L D0,(A0)+ DBRA D1,CLLP2 ;REL TO SCREEN: ;D3,A3,A1 REDO MOVE.L #PIC+128-(41*$A0),D2 MOVE.L D2,A2 MOVE.L #$1E00+(36*$A0),A0 SUB.L #(41*$A0),A0 ;INITIAL YPOS OF ROLL MOVE.L A0,DD3 MOVE.L A0,AA3 ADD.L #((200+41-36)*$A0),A0 MOVE.L A0,ENDCHK MOVE.L #PIC+128+((111-41-5)*$A0),D5 ;BIT THATS ROLLED MOVE.L #0,A4 MOVEQ #0,D7 MOVE.W #8,RPOS CONT VSYNC BSR SWAPSCR MOVEM.L D0-D7/A0-A5,-(SP) BSR SCROLL BSR BARS MOVEM.L (SP)+,D0-D7/A0-A5 BSR DISP MOVEQ #0,D7 BSR LINE BSR TOGSCR ADDI.L #$A0,D2 ADDI.L #$A0,D5 ADDI.L #$A0,DD3 ADDQ.W #2,RPOS ;BSR TOGSCR CMPI.B #$39,$FFFC02 BEQ FINI MOVE.L DD3,A0 CMP.L ENDCHK,A0 BNE CONT ;MOVE.L #(41+36)*$A0,A1 MOVE.L #(7+36)*$A0,A1 MOVE.L A1,ENDCHK CONTB VSYNC BSR SWAPSCR MOVEM.L D0-D7/A0-A5,-(SP) BSR SCROLL BSR BARS MOVEM.L (SP)+,D0-D7/A0-A5 BSR DISPB MOVEQ #0,D7 BSR LINE BSR TOGSCR SUBI.L #$A0,D2 SUBI.L #$A0,DD3 SUBI.L #$A0,D5 SUBQ.W #2,RPOS CMPI.B #$39,$FFFC02 BEQ FINI MOVE.L DD3,A0 CMP.L ENDCHK,A0 BNE CONTB BRA REDO FINI JSR FLUSH BRA OUT INIT DC.W $A00A MOVE.B #$12,$FFFFFC02.W CLR.W $452 MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) MOVE.W #2,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,PBASE MOVE.W #3,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,LBASE MOVE.W #4,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.W D0,RES CLR.B $FF8260 MOVE.L #SCREENS,D0 ADD.L #512,D0 AND.L #$FFFFFF00,D0 MOVE.L D0,SCREENA ADD.L #$B000,D0 MOVE.L D0,SCREENB MOVE.W #1,TOGGLE MOVE.L SCREENB,SCREENW MOVE.L SCREENA,A0 MOVE.W #($16000/4),D0 MOVEQ #0,D1 CLRLOOP MOVE.L D1,(A0)+ DBRA D0,CLRLOOP MOVE.L #BARDAT,BARPOS MOVEQ #1,D0 BSR MUSIC RTS CLEARBUF MOVE.W #(20*$A0),D0 LEA SCBUF1,A0 CLBUF1 MOVE.L #0,(A0)+ DBRA D0,CLBUF1 MOVE.L #MESSAGE,MESPOS MOVE.L #PIC+$88,CHARADDR ; SPACE RTS FLUSH BTST.B #0,$FFFC00 BEQ FLUSH2 MOVE.B $FFFC02,D0 BRA FLUSH FLUSH2 RTS OUT BSR OFF MOVEQ #0,D0 BSR MUSIC BSR SOUNDOFF MOVE.B #$8,$FFFFFC02.W MOVE.W #1,$452 MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) MOVE.W RES,-(SP) MOVE.L LBASE,-(SP) MOVE.L PBASE,-(SP) MOVE.W #5,-(SP) TRAP #14 ADD.L #12,SP DC.W $A009 OUT2 MOVE.L SSP,-(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP CLR.W -(SP) TRAP #1 SOUNDOFF MOVE.B #7,$FFFFF8800 MOVE.B #-1,$FFFF8802 RTS FADEIN MOVE #$8240,A0 MOVEQ #6,D5 FADELP MOVEQ.W #3,D4 FADEWT VSYNC DBRA D4,FADEWT MOVEQ #15,D4 COLLP MOVE (A0),D0 MOVE (A1)+,D1 MOVE D0,D2 MOVE D1,D3 AND #$700,D2 AND #$700,D3 CMP D2,D3 BLE.S RDONE ADD #$100,D0 RDONE MOVE D0,D2 MOVE D1,D3 AND #$070,D2 AND #$070,D3 CMP D2,D3 BLE.S GDONE ADD #$010,D0 GDONE MOVE D0,D2 MOVE D1,D3 AND #$007,D2 AND #$007,D3 CMP D2,D3 BLE.S BDONE ADDQ #$001,D0 BDONE MOVE D0,(A0)+ DBF D4,COLLP LEA -32(A0),A0 LEA -32(A1),A1 DBF D5,FADELP RTS FADEOUT MOVE #$8240,A0 MOVEQ #6,D5 FADELP2 MOVE.W #3,D4 FADEWT2 VSYNC DBRA D4,FADEWT2 MOVEQ #15,D4 COLLP2 MOVE.W (A0),D0 MOVE.W D0,D2 AND.W #$700,D2 CMP.W #0,D2 BEQ.S RDONE2 SUB.W #$100,D0 RDONE2 MOVE.W D0,D2 AND.W #$070,D2 CMP.W #0,D2 BEQ.S GDONE2 SUB #$010,D0 GDONE2 MOVE.W D0,D2 AND.W #$007,D2 CMP.W #0,D2 BEQ.S BDONE2 SUB.W #$001,D0 BDONE2 MOVE.W D0,(A0)+ DBF D4,COLLP2 LEA -32(A0),A0 DBF D5,FADELP2 RTS DISP MOVE.L D2,A2 ;COPY FIRST LINE MOVE.L DD3,AA3 CMP.L #$1E00+(36*$A0),AA3 BGE DISPS LEA BLANK,A2 DISPS MOVE.L SCREENA,A3 ADD.L AA3,A3 MOVEM.L D0-D7,-(SP) MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVE.L SCREENB,A3 ADD.L AA3,A3 MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVEM.L (SP)+,D0-D7 RTS DISPB MOVE.L DD3,AA3 LEA BLANK,A2 MOVE.L SCREENA,A3 ADD.L AA3,A3 ADD.L #($A0*41),A3 MOVEM.L D0-D7,-(SP) MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVE.L SCREENB,A3 ADD.L AA3,A3 ADD.L #($A0*41),A3 MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVEM.L (SP)+,D0-D7 RTS LINE LEA TABLE,A4 ADDQ.L #2,D7 MOVEQ #0,D6 MOVE.W (A4,D7.L),D6 SUB.L D6,D5 MOVEA.L D5,A2 ADD.L #$A0,AA3 BSR DISP2 CMP.L #80,D7 BNE LINE ADD.L #(70*$A0),D5 RTS DISP2 CMP.L #(199*$A0+$1E00+36*$A0),AA3 BGT DSKIP MOVE.L SCREENW,A3 ADD.L AA3,A3 MOVEM.L D0-D7,-(SP) MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVEM.L (SP)+,D0-D7 DSKIP RTS TABLE DC.W $A0,$3C0,$280,$1E0,$1E0,$140,$140,$140 DC.W $A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0 DC.W $A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0 DC.W $A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0 DC.W $A0,$A0 DC.W $140,$140,$140,$1E0,$1E0,$280,$3C0,$A0 DISSOLVE MOVE.W #7,D7 MOVE.L #DISDAT,A1 MOVE.L #DISDAT2,A2 CLR.L D6 Z0 MOVE.W #35,D0 CLR.L D2 CLR.L D3 CLR.L D4 CLR.L D5 Z1 MOVE.W D0,D1 MOVE.W D7,D6 MOVE.W #79,D2 Z2 CLR.L D4 CLR.L D3 MOVE.B (A1,D2.W),D4 MOVE.B 80(A1,D1.W),D3 MOVE.L D3,D5 LSR.W #1,D5 MULU #$A0,D4 ADD.L A0,D4 LSL.W #3,D5 ADD.L D5,D4 AND.L #1,D3 CMP #0,D3 BEQ Z5 ADD.L #1,D4 Z5 MOVE.L D4,A4 MOVE.B (A2,D6),D4 BCLR.B D4,(A4) ADDQ.W #1,D6 CMP.W #8,D6 BNE Z6 MOVE.W #0,D6 Z6 SUBQ.W #1,D1 CMP #-1,D1 BNE Z4 MOVE.W #35,D1 Z4 MOVE.L #$1F,D4 Z7 DBRA D4,Z7 DBRA D2,Z2 DBRA D0,Z1 DBRA D7,Z0 RTS DISDAT ;INCBIN DIS.DAT DISDAT2 DC.B 4,6,2,7,0,3,1,5 SCROLL MOVE.W SCROLLX,D0 ADDQ.W #2,SCROLLX CMP.W #$54,SCROLLX BLT.S SCOK1 CLR.W SCROLLX SCOK1 MOVE.W D0,D1 ANDI.W #3,D0 ADD.W D0,D0 ADD.W D0,D0 ;=0,8 MOVE.W D0,NSHIFTS LEA SCRTABLE(PC),A0 MOVE.L (A0,D0.W),A1 ANDI.W #$FFFC,D1 ADD.W D1,D1 ADD.W D1,A1 ;ADD OFFSET OT BUF ADDR TST.W D0 BNE SCRSKIP CMPI.W #2,CHARCNT BNE LETOK MOVEQ #0,D1 MOVE.W D1,CHARCNT ;GETLET MOVE.L MESPOS,A2 TRYAGAIN MOVE.B (A2)+,D1 BPL.S SCOK2 LEA MESSAGE,A2 BRA TRYAGAIN SCOK2 MOVE.L A2,MESPOS CMP.B #32,D1 BLT TRYAGAIN SUB.B #32,D1 ADD.W D1,D1 LEA CHARTAB,A2 MOVE.W (A2,D1),D1 MOVE.L #PIC+128,CHARADDR ADD.L D1,CHARADDR BRA SCRCONT LETOK ADDQ.L #8,CHARADDR SCRCONT ADDQ.W #1,CHARCNT SCRSKIP MOVE.L CHARADDR,A0 MOVE.L A1,A2 ; BUF ADDR MOVEQ #31,D1 ; HEIGHT MOVE.W NSHIFTS,D2 UPDATE MOVEQ #0,D0 MOVE.W (A0),D0 LSL.L D2,D0 MOVE.W D0,$08(A2) MOVE.W D0,$B0(A2) SWAP D0 OR.W D0,$00(A2) OR.W D0,$A8(A2) MOVEQ #0,D0 MOVE.W 2(A0),D0 LSL.L D2,D0 MOVE.W D0,$0A(A2) MOVE.W D0,$B2(A2) SWAP D0 OR.W D0,$02(A2) OR.W D0,$AA(A2) MOVEQ #0,D0 MOVE.W 4(A0),D0 LSL.L D2,D0 MOVE.W D0,$0C(A2) MOVE.W D0,$B4(A2) SWAP D0 OR.W D0,$04(A2) OR.W D0,$AC(A2) MOVEQ #0,D0 MOVE.W 6(A0),D0 LSL.L D2,D0 MOVE.W D0,$0E(A2) MOVE.W D0,$B6(A2) SWAP D0 OR.W D0,$06(A2) OR.W D0,$AE(A2) LEA $A0(A0),A0 LEA $150(A2),A2 DBRA D1,UPDATE ;NOTE A1 ADDR, A0=DEST MOVE.L SCREENW,A0 ADD.L #(36*$A0),A0 LEA 16(A1),A1 ;$150 BYTES/ROW OFFSET SET $28B0 REPT 32 MOVE.L $9C+OFFSET(A1),-(A0) MOVEM.L $6C+OFFSET(A1),D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,-(A0) MOVEM.L $3C+OFFSET(A1),D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,-(A0) MOVEM.L $C+OFFSET(A1),D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,-(A0) MOVEM.L OFFSET(A1),D0-D2 MOVEM.L D0-D2,-(A0) ;LEA -$A0(A0),A0 OFFSET SET OFFSET-$150 ENDR RTS SCROLLX DC.W 0 CHARCNT DC.W 0 NSHIFTS DC.W 0 CHARADDR DC.L 0 BARS MOVEQ #0,D0 MOVEQ #0,D1 MOVEQ #0,D2 MOVE.B #$8,$FF8800 MOVE.B $FF8800,D1 MOVE.B #$9,$FF8800 MOVE.B $FF8800,D0 MOVE.B #$A,$FF8800 MOVE.B $FF8800,D2 MOVE.B #14,$FF8800 MOVE.B $FF8800,D7 ;CMP.B #14,D0 ;BHI AON ;BSET #1,D7 ;BRA AOK AON ;BCLR #1,D7 AOK ;CMP.B #14,D1 ;BHI BON ;BSET #2,D7 ;BRA BOK BON ;BCLR #2,D7 BOK ;MOVE.B D7,$FF8802 MOVE.L SCREENW,A1 ADD.L #(120*$A0+8*5),A1 MOVE.L #0,BAR11 MOVE.L #0,BAR21 MOVE.L #0,BAR31 MOVE.L BARPOS,A0 ADD.L #4,BARPOS CMP.L #BAREND,BARPOS BNE BARPOSOK MOVE.L #BARDAT,BARPOS BARPOSOK MOVE.W #16,D7 BARLP MOVE.L (A0)+,D3 CMP.L #BAREND,A0 BNE BARPOSOK2 MOVE.L #BARDAT,A0 BARPOSOK2 CMP.B D0,D7 BGT NB1 MOVE.L D3,BAR11 NB1 CMP.B D1,D7 BGT NB2 MOVE.L D3,BAR21 NB2 CMP.B D2,D7 BGT NB3 MOVE.L D3,BAR31 NB3 MOVE.W BAR11,$00(A1) MOVE.W BAR12,$08(A1) MOVE.W BAR21,$20(A1) MOVE.W BAR22,$28(A1) MOVE.W BAR31,$40(A1) MOVE.W BAR32,$48(A1) MOVE.W BAR11,$140(A1) MOVE.W BAR12,$148(A1) MOVE.W BAR21,$160(A1) MOVE.W BAR22,$168(A1) MOVE.W BAR31,$180(A1) MOVE.W BAR32,$188(A1) LEA $A0*4(A1),A1 DBRA D7,BARLP RTS ON LEA MFPSTORE,A0 MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $134.W,(A0)+ CLR.B $FFFFFA1B.W CLR.B $FFFFFA19.W MOVE.B #$21,$FFFFFA07.W CLR.B $FFFFFA09.W MOVE.B #$21,$FFFFFA13.W CLR.B $FFFFFA15.W BCLR.B #3,$FFFFFA17.W MOVE.L #TOPBORD,$134.W MOVE.L #BOTTOM,$120.W MOVE.L #VBLANK2,$70.W MOVE #$2300,SR RTS OFF MOVE #$2700,SR LEA MFPSTORE,A0 MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA21.W MOVE.L (A0)+,$68.W MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$134.W BSET.B #3,$FFFFFA17.W MOVE #$2300,SR RTS SWAPSCR CMP.W #1,TOGGLE BEQ SWP1 BNE SWP2 SWP1 MOVE.L SCREENB,SCREENW MOVE.W #2,TOGGLE RTS SWP2 MOVE.L SCREENA,SCREENW MOVE.W #1,TOGGLE RTS TOGSCR CMP.W #2,TOGGLE BEQ TOG1 BNE TOG2 TOG1 MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOG2 MOVE.L SCREENA,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOPBORD MOVE #$2100,SR STOP #$2100 CLR.B $FFFFFA19.W DCB.W 78,$4E71 ;78 NOPS CLR.B $FFFF820A.W DCB.W 18,$4E71 ;18 NOPS MOVE.B #2,$FFFF820A.W CLR.B $FFFFFA19.W RTE PHBL RTE BOTTOM MOVE.W (A6)+,$FF8240 MOVE D0,-(SP) DCB.W 32,$4e71 CLR D0 .syncb MOVE.B $ffff8209.w,D0 NEG.B D0 ADD.B #64+128,D0 LSL.B D0,D0 MOVE #18,D0 .wait DBF D0,.wait ;101 nops! MOVE.B #0,$FF820A DCB.W 12,$4E71 MOVE.B #2,$FF820A MOVE.W (SP)+,D0 MOVE.L #HBLANK2,$120 BCLR #0,$FFFA0F RTE VBLANK2 NOT SYNC RTE VBLANK CLR.B $FFFFFA19.W MOVE.B #100,$FFFFFA1F.W MOVE.B #4,$FFFFFA19.W MOVE.L #PHBL,$68.W LEA RASDAT,A6 CLR.B $FFFFFA1B.W MOVE.L #HBLANKB,$120 MOVE.B #34,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVEM.L D0-D7/A0-A5,-(SP) LEA NWPALF,A0 LEA $FF8240,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) NOT SYNC ;BSR SWAPSCR LEA RASTER,A0 LEA RASDAT,A1 ADD.W RPOS,A1 MOVEM.L (A0)+,D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,(A1) MOVEM.L (A0)+,D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,48(A1) MOVE.L A6,-(SP) BSR MUSIC+8 MOVE.L (SP)+,A6 MOVEM.L (SP)+,D0-D7/A0-A5 ;BSR TOGSCR RTE HBLANK2 MOVE.W (A6)+,$FF8240 CMP.L #RASEND,A6 BEQ HBLANK3 BCLR #0,$FFFA0F RTE HBLANK3 MOVE.L #BOTTOM,$120 BCLR #0,$FFFA0F RTE HBLANKB CLR.B $FFFFFA1B.W MOVE.L #HBLANKB2,$120 MOVE.B #1,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W RTE MOVEM.L D0-D7/A0-A3,-(A7) MOVEQ #0,D0 LEA $FF8240,A0 LEA BDATA,A1 LEA $FF8209,A2 LEA SYNCHRO,A3 MOVEQ #0,D7 WAITSYNC MOVE.B (A2),D7 BEQ.S WAITSYNC MOVEQ #$3F,D6 SUB.B D7,D6 LSL D6,D7 JMP (A3,D7.L) SYNCHRO NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RASDISP MOVE.W (A1)+,D1 MOVE.W (A1)+,D2 MOVE.W (A1)+,D3 MOVE.W (A1)+,D4 MOVE.W (A1)+,D5 MOVE.W (A1)+,D6 ;#12 OFFSET MOVE.W D0,(A0) ;58 MOVE.W D1,(A0) ;$308X WHERE X=DATA REG MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D2,(A0) MOVE.W D1,(A0) MOVE.W D0,(A0) MOVE.W D1,(A0) MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D2,(A0) MOVE.W D1,(A0) MOVE.W D0,(A0) MOVE.W D1,(A0) MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D2,(A0) MOVE.W D1,(A0) MOVE.W D0,(A0) MOVE.W D1,(A0) MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D2,(A0) MOVE.W D1,(A0) MOVE.W D0,(A0) MOVE.W D1,(A0) MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D0,(A0) MOVEM.L (A7)+,D0-D7/A0-A3 MOVE.B #8,$FFFFFA1B.W RTE BDATA DC.W $222,$333,$444,$555,$666,$777 HBLANKB2 MOVE.L NWPALS+$00,$FFFFF8240.W MOVE.L NWPALS+$04,$FFFFF8244.W MOVE.L NWPALS+$08,$FFFFF8248.W MOVE.L NWPALS+$0C,$FFFFF824C.W MOVE.L NWPALS+$10,$FFFFF8250.W MOVE.L NWPALS+$14,$FFFFF8254.W MOVE.L NWPALS+$18,$FFFFF8258.W MOVE.L NWPALS+$1C,$FFFFF825C.W MOVE.L #HBLANK2,$120 RTE ;24 WORDS = 12 LONGS RASTER DC.W 0,0,$000,$111,$111,$222,$222,$333 DC.W $333,$333,$444,$444,$444,$555 DC.W $555,$555,$555,$666 DC.W $666,$666,$777,$777,$777 DC.W $777,$777,$777,$777,$666,$666 DC.W $666,$555,$555,$555 DC.W $555,$444,$444,$444,$333,$333 DC.W $333,$222,$222,$111,$111,$000 DC.W 0,0,0 RASDAT DS.W 192 RASEND DS.W 100 NWPALF DS.W 16 NWPALS DC.W $0,$700,$300,$077,$300,$077,$600,$077 DC.W $101,$077,$222,$222,$444,$444,$666,$000 MUSIC INCBIN SWSPRITE.MUS RES DS.W 1 RPOS DS.B 1 BPOS DS.B 1 LBASE DS.L 1 PBASE DS.L 1 PALETTE DS.W 16 SSP DS.L 1 SYNC DS.W 1 AA3 DS.L 1 DD3 DS.L 1 MFPSTORE DS.L 7 TOGGLE DS.W 1 SCREENA DS.L 1 SCREENB DS.L 1 SCREENW DS.L 1 ENDCHK DS.L 1 MESPOS DS.L 1 BARDAT DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %00111111111111111111111111111100 DC.L %00011111111111111111111111111000 DC.L %00001111111111111111111111110000 DC.L %00000111111111111111111111100000 DC.L %00000011111111111111111111000000 DC.L %00000001111111111111111110000000 DC.L %00000000111111111111111100000000 DC.L %00000000011111111111111000000000 DC.L %00000000000111111111100000000000 DC.L %00000000000011111111000000000000 DC.L %00000000000000111100000000000000 DC.L %00000000000000011000000000000000 DC.L %00000000000000111100000000000000 DC.L %00000000000011111111000000000000 DC.L %00000000000111111111100000000000 DC.L %00000000011111111111111000000000 DC.L %00000000111111111111111100000000 DC.L %000000010111111111111111110000000 DC.L %00000011111111111111111111000000 DC.L %00000111111111111111111111100000 DC.L %00001111111111111111111111110000 DC.L %00011111111111111111111111111000 DC.L %00111111111111111111111111111100 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 BAREND BARPOS DS.L 1 BAR11 DS.W 1 BAR12 DS.W 1 BAR21 DS.W 1 BAR22 DS.W 1 BAR31 DS.W 1 BAR32 DS.W 1 MESSAGE DC.B 'HELLO GOODEVENING AND WELCOME ' DC.B $FF EVEN SCRTABLE DC.L SCBUF1,SCBUF1,SCBUF2,SCBUF2 CHARTAB DC.W $0010,$0000,$0000 DC.W $0000,$0010,$0020,$0030,$0040,$0050,$0060,$0070,$0080,$0090 DC.W $1400,$1410,$1420,$1430,$1440,$1450,$1460,$1470,$1480,$1490 DC.W $2800,$2810,$2820,$2830,$2840,$2850,$2860,$2870,$2880,$2890 DC.W $3C00,$3C10,$3C20,$3C30,$3C40,$3C50,$3C60,$3C70,$3C80,$3C90 DC.W $5000,$5010,$5020,$5030,$5040,$5050,$5060,$5070,$5080,$5090 DC.W $6400,$6410,$6420,$6430,$6440,$6450,$6460,$6470,$6480,$6490 DCB.B $A0*10,0 PIC INCBIN FONT.NEO ; END OF STORED DATA SECTION BSS EVEN DCB.B $A0*60,0 SCREENS DS.B $1B200 DS.L 99 MYSTACK DS.L 1 SCBUF1 DS.B $150*32 SCBUF2 DS.B $150*32 BLANK DCB.B 160,0 N N Hy ,?<&NN\NuHy ?<&NN\Nu y g N/Nu3 | <0$@њњњXђ&Z~ћQђ&Z~#ћQњ |3Hј |3јјјN/#&ZNuB9,B## # Nu////( (/////////c'e M / gaw GGp0S#}Y8{eQ>, ~wpjd^YTOKGC?;852/,*'%#!""""""""""""""""#""""""### #######'##+#/#3#7#;#?#C#G#K#[#O#S#_#c#g#k#$ $_$             !"#$%&'()*+()*+,-./0Ў   !c "" .  QQ@ 3`"" " !@!c$"" . Q Q`$9 f S9&Rj&RN&R9&X3J9,g&D&ES9&Bf* |%"a |%a |%a&C&B |%"a3, ,  |%a3, ,  |%a3, ,  &E J9,f0< | Q? 99? 9 |!0< Q3wNu))l)v)).)`)\()N)D(())( ()' B(`N|.` ( $hR fj? ` f B9,` f&S` f $h <!@ p@"y,"q ( `F(/9&F&F|-` (/9&F&F|-6|@7`(/89&F&F|-`(/ 9&F9&F|-`1|YY`,``zY3`j|,``|@,&D`N|,`D`<6Y9h98`|6`S(fb|."h0<kl6@y&DAJ(-g&Dy&DA(/89&F&F|-A&D$h J(.f $h$$ !J R(Rhhh20J(.f|1(>g1||H|(>g |(>g@!| F!hFB(>g@!| F!hFB(>g@!| F!hFBh45h98!I|07J(.f!hNufNu(3g(Nu(Nu e> eNePd0`H$|!!R!R$hj4h45Nu &C`2R@`(@H$y,$r!J$j0j2j+j>j)j*j*az(>g1||H|(>gR|`(>g@!| F!hFB(>g@!| F!hFB(>g@!| F!hFB`J@H$|'$rN043H(PgS(Rg hSRS((@gTB$hB f @` f0(/9&F&F|-&D`d f*(/ 9&F9&F|-&D`4 f,(/89&F&F|-A&D><g.S(d h$h *g R j(h((9,S(5d2h45"h f"h fCR!I(?N0V"|!0(,g (1g S(0dx|1() (+g f6f(*d",2<`(*e ,A+ dAe IdA g.(Sf <<(jFh1FF`D 9&Ff9&D &E<(6gT(7 (@7k67&D9 (/ (6g*S(8d"h98( b 6`S((NuB,,H&y0&S"|%" K><||,B)?$X#J#| p@&y0&s#K|S`Q&B,,#0, |4&C,B9&X9` f 9&CNu9&X(>gg (>g( g (NuBY THE EXCEPTIONS!!! &6FVfv&6FVfv /Oo%     $ @& %%#&#$ #                         $0<HT`lxll !#%')+135=?ACEHK (2<X_ew8F`j~ ,?VbH:6H:H6::H6:H:66$$$$$$$$''''''''77<>?ACCCDC?AAACA>?>?><>;>?>;75""""""""   447045580577:078;758;>?BABA?>GGFFDDAA??>4848;>@DGJLPSV449479=@CEILOQUX[][9<47:=@CFILORU@@778:?ABBABA=???A?;>=>=:6:>?>;75HFDCFDCADCA?CA?>A?><:><:8<:87:875DCA?CA?>A?><:><:8<:87:875875375325320<:8<:87<:87<:87:875:875:875:87587538753875387535320532053205320337788:<9532000..003532-.0$$$$7<8<=<;87<8<: @fz~M4< C M0,>(RGGM$,>(RGGM ,>(RG<( M,~>( RG M,>(RG,M<M<NuAJg>S(j8PRh0( @ f BA0`Al0ACE>M:KrJmgB."B.&B.*LHNuS]f;ANaAaAaKBA2a?_@A"AZa?_@ A&Aa?_@A*0-g@?Aat"h  )fBm>CGG|?```G]LHNuz|>:"h"&@ @gh(ft&h4$Pf!E$Prj,j*B fB<` f B;B!E&&z!K" "h"&AJAgz!E8A&IJ&fkQ JkXA($za!ERZAZ|@.@@Z!J $za!J!E0EET&Nu~G J(gS(`"h0 g f)?!@0"h fB|R0` f.    T0` f)@@"z!I!G0`t fiT0`J fG*i T0`< f|*R0` f |*R0` fV0ii"h0Q+R0J(gS(`NS(fHh"h  f Ti` g f)?[!@`Q-R(+k((,@C@20(!(*fVC`. f"VCh (+j D ` ( `VCJ( g(  C(.J(gS(`V((Jjf&f(dr`(eA dAeAdA G.( g~2(H$(8v ԁ!B8HBB(-(Q(A0BhNu4:2:JBgtAzKBA!B(|z@$z`!ERZ@Zt|@.BBZ!J $zl`!J!E0B(B(RA;ANu " &*@ M / gaw GGp0S#}Y8{eQ>, ~wpjd^YTOKGC?;852/,*'%#! TFMXg@旒00+0++$+$$$   枟唔           "$&(*,.,*(&$" 束䕞喗 旔                                                                                      <08<?D?<808<?D?<80+022 203207535707<?C?<707<?C?<7355 532023532000000000++++++00000457542424542((((((-----02020/020/-+$$$$$$)))))-/0/0/-/020/&&&&&&+++++/020/,,,,,,/////245775+0+0+0+0+0+(-(-(-(-(-($)$)$)$)$)$&+&+&+&+&+&,/,/,/,/,/,00243 5798 420, -04559<A<>>             0 $$$$$0'&"$..')$$ $$$$$$$$$$$$$$$$$$            02375353003232357:<3 53 53 3753530.000.+3 52 33 575357:<H0.+.): <: <: :75753. 3 53 53 5303563 53 53 53057:<A7777:<: <> ?: <> ?? ACA ? A? A? ?<:?<:?: 0 0 . O<M<K<H<F<H<A<C<047049047049047007407407409409400000000000    00000037038037038037000000000000000                            78:<::8337 000777777        07<@C@<707<@C@<707<@CFC@07<@C@<7000777777                            V  V  V  V  V  V  db g V                         ! !"  /"  /#  0#  0$  /$  /%  0% ! 0"/"/#0#0$/$/%0%!0"  /"  /#  0#  0$  /$  /%  0 % ! 0 "  /"  /#  0#  0$  /$  /%  0% ! 037: 3 34> 35 36 37 34935:36:37<;49;5:;6:;7<;49;5:;6:;7<;;;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?@;?A;?B ;?C ;?@;?A;?D ;?E;?F ;?G ;?D ;?E;?F ;?H ;?D;?E;?K ;?I ;?J ;?L;?K ;?I ;?J ;?M;?N ;?O ;?P ;?Q ;?N ;?O ;?P ;?Q ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?R ;?@;?A;?B ;?C ;?@;?A;?D ;?E;?@;?A;?B;?C;?@;?A;?D;?E;?];?];?];?];?];?];?];?] ;?];?];?];?];?];?];?];?];49;5:;6:;7<_49_5:_6:_7<#%TV EűŬŶŤűŮűŦŪűšŶűűũŶţűŢŬŭرűűŲŤũűũűűŪɶŬŢűŮűŤŧŬŲũűŦűţűţŦšūŤŤŬšůŢűŭŵ˶űűŮűţűŨŭŤţŭ٣ůŭŬŤţŪűŮűŨŶ٧ŶŲŠŦŧŶŭŲŭűŦšرŲűŦŪűűŭŭűŶŬŶŭűūŦšŲŭżŵűŤŵŪŠšŤŨţŪűţŶŦŧŧŶŲŦŧŨ٤ŬŲŨţŤũšŪŶŧŬŲŵŤŶ˲ŤŶŤţŨţŷţűŷŭŷűؠŵŢűūŦŵũŨšũŤŠűūţŦŠũŨšũŤţŵŤŵŦŦŦؠŵŵتŢŴűųšŧŦųūŶŧŵŲšŤŧŮűŷűŢŤŶűűŪŨŪŨ˦˶٨ɧŧɯŮɢɫŤŪŦŶűŪŨŪűŤűŧŵٲŤŶżšŲūŷŤűţŦŶŷŢŠ٦ŧšجųټűűűŰŤűŤŤŪŬسţũضŲxxxxxxxxx8~vv>>>88????@?????????00 00 00 00 00 ?????,,((``HaBLNuHaLNuAaf"z@@M<0aNuAa:J@g.S@hd"z02Mx<:xf|~MP< C ML,>(RGGM@,>(RGGM(,>(RG<( M ,~>( RG M,>(RG,M<M<NuMAJhgB."B.&B.*LHNuSPf0AaAaA aKAa;@mmA"Aa;@m mA&Aaf;@mmA*0-gD?AaB"h  )fBm>C GG|;@```G]LHNuz|>:"h"&@ @gh(fD&h4$Pf!E$Prj,j!E&&z!K" "h"&AJAgt!E8A&IJ&fkQ JkRA($zBa!ERZAZp|@.@@Z!J $za!J!E0T&Nu~G J(gS(`"h0 g f)?!@0"h fB|R0` f)@@"z!I!G0` fiT0` fG*i T0`& f|*R0`V f |*R0Nq"h0Q+R0J(gS(`RS(fLh"h  fTi` g f)?[!@`Q-R(+k((,@C@20(!(*fVC`. f"VCh (+j D ` ( `VCJ( g(  C(.J(gS(`V((Jjf&f(dr`(eA dAeAdA G.( g~2(H$(8v ԁ!B8HBB(-Nu. ,R pACPET!I B|-B(B( !IB0||B(B(B(B(B(BhB( CCZ! @!z<4ݨ4ר4ߐא!| &P4:(z!L"B&|*k,B(+kB(-Bh8, ~wpjd^YTOKGC?;852/,*'%#!TFMX  @朞唕旕土      傄 圚                                            0 0 0 0 0 0 77> ><<            0 0 5<  0 * 0 `J``/A _NuHA a`"z@@M:tfXMp,"hMh,"hM`,"h M0,"hM ,"hM*,"h,M$PM<NuAJgCGG|?```G]LH@NuS(&jh'&"h" fn&h4$Pf!E$Prj,j*B Bf B(` f B;BA&zR6sf!K" ` f Q'Y&`z fQ'Y&!I"Nu@A AgY!I"!E8Jkp( A($zA4r!ERZrZ|@.BBZ!J @g($zA4r!J!E0EENu~G J(gS(`"h0 g f)?!@0"h fB|R0` f.    T0` f")@@"z2q!I!G0`n fiT0`D fG*i T0`< f|*R0` f |*R0` fV0ii"h0Q+R0J(gS(`NS(fHh"h  f Ti` g f)?[!@`Q-R(+k((,@C@20(!(*fVC`. f"VCh (+j D ` ( `VCJ( g(  C(.J(gS(`V((Jjf&f(dr`(eA dAeAdA G.( g~2(H$(8v ԁ!B8HBB(-((jrNuAB. ,R pACtEx!I BB(-B(B( !IB0||B(BBhB( CCZ! t!zp4ݨ4ר4ߐא!| &PA(zN8tb!L"B&|*k,B(+kB((+A Af +A(B(-B8, ~wpjd^YTOKGC?;852/,*'%#!COSO@))^TFMX/-@  ,0:DNW[iow-BR`kq(", 2 梠 攌桞䔜        效斟䓞       揝僄       哌        刍       $,8@Me{  4CKSh~%0F]n+=Sjw                                     ! " #    $ % & ' (  ) *  + ,  0  0P  . /  %Sz   ? `  # 8 A J   ) @ S f } 1 T w 5 p s z Aj K~ BSb>bEry3v0w :Ux+Pu@'tAl .Y|X]binsz 00000+@0.@0:@)@+@7@.@'@3@00<00+@7@.@.@:@)@+@7@.@'@3@000000+@.@00000+@.@0   42454+-54200/               0000000 00@ 0A 0B 0@ 0A 0@ 0A 0B 2@ 2A 2B 2@ 2A 2@ 2A 2B 0@ 0A 0B 0@ 0A /@/A /B-@-A-B-@-A-@-A -B 42454+-54200/    42454+-54200 / 0/-4240247><72<720720+20+&/+&#+&#&## 0/-97 52 020240+440+457205<505<54774477405:505:5-494-49405500550-292-292/38;/38;+/22+/22,/33,/33/27;/27;     !     ! @/+2/72;2/+2/72;2/,3/83;3/,3/83;3 +- /23/2/2383//    $ 3//                 44244774440       444 422447400++         ..00++.00344$$$@$A$$$@$$$$@$A$$$@$999 9<995500255..0 00++.++*))7777276555503 40...000+..0030077:77:<<?@@ 00++..00"3 "0077:;; <<<<<<<<77665533..CCC C>>AACC>>CCBBCCC C>>AACC>>AABB<<<<<<<<<<77665533..<<<<                           $$$"$&')+,)+000++2++0++2++3+2+0++2++0++2++3+2+             0 0 0 0 0 0 0 0 0Y0Y0Y0Y         @@@0 0 0 .Y.Y.Y    @@@@@@"@$0000++.0066553005330..0000++..00*))''$$**))''$$ @ @@ @ @ @ @@ @ @@ @ @ @ @@ @@  @ @ @@@@$$0202357858 53.00+'2+'3+'0+'2+.+0+'2+'3+'0+'2+.00+(0+(0+(0+(0+(0/+(/+(/+(/+(/+(/-)$-)$-)$-)$-)$-/+&/+&/+&/+&/+&/     P           ( (&((&++(++(++-----++)-+ +( (+0//-//-//-----++)-+ +& &&& 0 &## !$#$&$&( ++0/+(&()-059<;7272/2/+/+&+&#&+@+@+@+@+@((@((@(@)@)@)@)@)@+@+@+@+@+@' (+---++((($$ $$$""$$" $$$""$$&((+))$)))''$$""$$$$$"" (0(0(0$0(00035785753023557875770357857530235320.3.00                                  302352320+.022353233+02352320+.000.++0+++$$$$$$$$$@$@$@$@$@$@$@$@       0000+..00+.+55335330000.....),.....0200000+.00<<7:653        $@$@$@$@$@$@$@$@&&&&&&&&         $$$$$$$$$$$$$$$$0$2&3'2&3'57+5)3'2&3'2$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@0$2&4(2&4(57+5)4(2&4(200+.,)+',+'$&             0.+),+'+)'$ &                                                  *(')*(+')+*(+')+*(,'),*(-')-*(.').*(.'):*(0')/13023/19 029 /14025/16028/14025/16027/13023/19 029 /14 025 /16 02; /14 025 /16 027 /ACABECDEAFECGEABECJEABECDEAHECIEABECJEALECMEAKECNECOEAPECQEAECEAECEAECEAERRRSRSRSTRSURSURSURSVRSWRSXRSYR[ZR[ZR[ZR[ZR\ZR\Z]\Z]\Z]\Z]\Z]\Z]\Z]\Z ]\Z ]\Z ]\Z ]\Z ]\Z ]\Z ^`_a^`bc^`d_ae^`f_ag^`d _ae ^`f _ag ^hd_ie^hf_ig^`d_ag^`j_a^`k^`l^`m^`l^`n^`o^`o^`p^`p^`p^`p^hp^hp^`p^`p^`p^`p^`o^`^`o^`^ho^h^`o^`^`o^`^`o^`^ho^hq^`o^`trustvruwszxr}ys|xr{ysz xr} ys| xr{ ys~xrysxrysxr ysxr ysxr ysxr ys<<==<<<<<<<><>=>=><><><>=><><>            CD_`~  ,#* % 4! ",#$%7&-'<(-)/*/+$,Seven Gates of Jambala........Music Ripped By TheCaped Crusader 8/3/90K r+HB2ҭ+A B2ҭ+A;P ;XBmC d0<B2ҭ#A#AE F#J E ?#J#J#J#JBi0Bi*3|,3|(|/6QNuF#HK Smf0- mgeSm `Rm ;mA &m (m4<(/gSh(f"h BN`0` ```X`H`(```/`/`/`fH1@(!I /`H1@*`Sh,fl$h0| d@N`2`"``1Z0`;Z;R;Z`B(/B(%`8$h`rg2Э"@1A,!I!J`"h`Q$Y%` 04Э$@R#Z"!J!J`/03Э$@Z !J!J`@.JBg H(/f81@&BfH1@((.fh$%!hh"#!hh !!I /S(#f&"h<g<f"h`(%h"#!IS(!f("h<g<f"h`Hh&h !!I6QvprAapr AapA (/ga`vaaA$(/g"3 4`>(/faf`"Jg-g' ÈmL?NuNqNqNq(/fHatˆg4(&-gh*S@(/gz;BˆKNu44(2;BS@ˆKNu(/f(%- <jBB5Nu<dJB5Nu<B5Nuh0B " KNuh0@1{&`gL2  f M 5   w ` I 3   n Y D /   { h U B /  y h W E 4 #  qaRB3$wi\NA3& vj^SG;0%yoe[QG>4*!yph`XPH@81)! yslf`YSMGA;5/)$ ~yuplgc^ZVQMIE@<840,($   ~{xvspnkifca^\YWTROMKHFDA?=:8641/-+)'$"   ~}|{zyxwwvutsrrqponnmlkjjihggfeddcbba`__^]]\[[ZYYXXWVVUTTSSRQQPPOONMMLLKKJJIIHHGGFFEEDDCCBBAA@@??>>===<<;;:::99888776665544433322211000///...---,,,++++***)))(((('''&&&&%%%%$$$$####""""!!!!  9Z     H)` r     <n     7M J S      LhZH`````````0Р           !!!!!!!!!!!!!!!! 99099990955-5555-577/7777/744+4444+455-5555-577/7777/755-5555-5777/7777/7 404 4<;000 049;0; ;<>7@9@404 4<;000 049;0; ;<>707 79;<09 9;<>0; ;<>A0A A@<>@ >@  9@5@4 9@5@4  Q@EEEEL@4444 9@>>@>9@>@>@7><<><7><<><9@>>@>9@>@>@7><<><77;<;>  99 79@979757547@757545429@979757547@7@9@979757547@757545429@979757547@ 7@ !!!!!!!!! !!!!! 99E999@999E999@977C777>777C777>799E999@999E999@977C777>777C777>7 99E999@999E999@977C777>777C777>755A555<555A555<577C777>777C777>7 -42242-42424+20020+20020-42242-42424+20020++/0/2-42242-42424+20020+20020)0..0.)0..0.+20020++/0/2 99@@99@@99< < ;;<<;;>>;;>>;;7 7 44//99@@99@@99< < ;;<<> > >>;;@ @ @;74 !!!!!!!!  -($!- !(-0-)!!-$$0)5 +&#+ &+/+ 999904995555)-05##//&&22>;72  ##//((44+/27;>CG9999E@<940-(5555A<950-)$7777C>;72/+&4444@;74/+(#9999E@<940-(5555A<950-)$7777C>;72/+&4444#(+/+/27    !#$#!!#! -----/0()-02A950-)$!+++++-/&44444;74;74/ Q@Q@M@M@O@O@L@L@ - `   rrr uu  ` 0 M ' '  `  8888 888 ' ' =[ [ 0 #*06;@EHKZgo6E6a5NuNu0<Ac.zF|`pxAcPz&|` pdAcrz|2v2vF0w*#vAjRhg1E3vA777C777>799E999@999E999@977C777>777C777>7 99E999@999E999@977C777>777C777>755A555<555A555<577C777>777C777>7h h g r cC!O  ]      ( /2  0  +  N S4U$b AH ,4 5  # =  K2@T  G= O 1 9 ::D-- U P  %', -+ 4+!8 9"8 .3 1 ! !HUI xD\  +eU2Uf ;SR7,D` / gj@@xx xD\  +eU2Uf ;SR7,D` / gj@@ l@% 5UjU**z*'U'UU@J))*RU*WU*U"H   ' 0p`H @%5תܪz*UUUJ))RխWկխՄ   '0H"#+  <800` ^ >QS7_k?WSKK+UWWSC_WW߫WKUnRnR  @' 8 `  8p`@`XOA@BBBBB" x"#+ ? 0>???QS7_k?WSKK+UWWSC_WW߫WKUnRnR  @' 8 `   COkU+?)/?)Z5Z*UJ 5 aXPQ<x a! 99yr 3#cGN    ??3$D>Ff bB@@ p O__W|@` >|<y ?>~ h8:Bx  $@ G`w <<<`??sCOkU+ )$/()TZ5Z@*UJ 5 aXQV8 ?O/> ~\<<yZ?O__W|@`  `0@????@TU"U/_/_/+H0(0 _ s0<3p @ 0p0 ު@T@;3A@z@@*U@*T0 @_9?^ @ 0p0 @`?;ϰ# B !U +_//_/_/)4??1s@ 7\р @ A@@@*U@*T?@@@)VW@@`U1OCD D?@LGQPHGQRZ~^V@Q]?ݿ ]Y??? ] YU*?g?} ????os_;ߪ"0OGQ???@MM͟ş͟ɀIE MIEMLH?8| )VW_qbCoA/TA8 08 38 08>??~?>62?2? 2 : 2 6 : 2 6 : 2 3 7@?@|}o_?ߪ"0P@U@u`pX>PR(izCI N?CC#Ї  ><%)𜱘;xx|A/$>'~/7 ?(|h@0` CCC @ pN``^``` ( ((  (( ؁    $  $ $ $     ++++++++++ ##!!!$!!$!## !$!!$!##!!##           @   4@ / /+/+ 7@4 ##  2@-269*@& -*-*  9@49<@0@9404; @   7;@C4@/47;(@69>B2@-626-*@049<9@49<@0@7  (((&#**+-0@ ;@ (((#(* +--0-/+/ +*(  (4(4(*@-9-9-/@(4(4(*@-9-9-2@ (+/4*-26-049/ 27(4(4(*-26-90<4@9E2@  (((&#**+-0@ ;@ (((#(* +--0-/+/ +*  ( @@ @@@@@@ /+(@####((0/+(@####((((((  /+(@####((0/+(@####((((((   424 ;9; <;<5407424 ;72;72<;<9@;74@;74 ! - /+/20/@(@! - /+/20/$@/ ;;;;  424 ;9; <;<5407424 ;72;72<;<9@;74@;74 ! - /+/20/@(@! - /+/20/$@/ ;;;;  <9:;<9;@9567954@  <9:;<9;@95679<;<@  <;94940-0/-(-($!;97272/+/-+&+&#975050-)-+)$)$!764/4/+(+*(#(#<;94940-0/-(-($!;97272/+/-+&+&#975050-)-+)$)$!#(+(+-/+/47479;   424 ;9; <;<5407424 ;72;72<;<9@;74@;74 ! - /+/20/@(@! - /+/20/$@/ ;;;;  <9:;<9;@9567954@  <9:;<9;@95679<;<@  @@@ @@@;;7744@@@ @@@;;   424/6 79<;<9; 76 424/6 79<@32023202 4@6@9@32023202 4@6@9@;@ L@  +(/(4(7( 2222220-4-9-<-777777/+4+7+;+2222224090<0@0777777  4@2@9@7@ 4444442@9999997@4444442222229999997777774444442222229999997 ++++   4 /+(22-*&9 40-7@4 /+(22-*&9 40-;@    $   $   $   $     h  P ` 16 }    [[6!(,147CemrzA0<?BQ AVC4pr0AQA Q`E9F|_D||=yNEEFmQQAPAEU}L^U^y9EQmEPETAEQEE@_D|yyN ? @@ ?   UP ` k * @UTPUMuwUUU_UGrwU* `(uwUUUPU/G''?/( WW?/ ''UU_OT(| WWOo(| ''| WW UUTXʪ%U(|OUUUUUQU]EUeUEUHT@UUU]eU(OAUQUT*EUXEU%UTJ@Ҿ**UW_ʪ*U|Oj@ @T p@p5?UU`UUT%j?VB R STMwpg` UUUUUUTU`꠿UUUUEET`@EUuuEAT@aÏ Pppp  ҪP88%RTTO$TTBPruUUGwyxx?>~|~??? ? @@ ?AAA UP ` k * @UTPUMuwUW_UGrwU*P `(uwUPPU/G''?( WW ''>}}GUUT WWՠ>z}W(| ''>| WW`8`8 A `4Xʪ%U(|OUUUAjU]EUeUEUHT@U*]U]eU(OAUQEUXEU%UTJ@ҿ_ʪ*U|OjPU@ @T p@@ pU`5?P `%jZZUB R W?_UMwpg` UP*`O?`@ @5O@a_(|Pppp  ЪQ  P(PUUWUUU!UUUVUTUUUUUUBHP|rBT(|qUUVUPUUG|||  | UUUUUBUUMTUUVUWUU(OUUQEUUUTH| P  R֪UUVUUUMππsyxx?>~|~???AB( B( B(Ap2¿G{a{<݀B0 UHhhvPqxw`a;?@n wހ8PӺ, @/`BB=< @@><! p9=>اX~0VZRvmoF9#   _B<0*0|~p_p?@@G ` ? @x   08>||@" / @ $WÀ`s AN>@8|x`gK=5   `g 8@?(?@|  9كppp2 7u WWW?P`+8?ihh`08sBPU@@L?3108B@-``` wP2D8L__@? (k<@x>p *+  3 w wayT@2N74$L|UP+{pp??;?=> xbWWWݨ T.?,Zb *_ 0  0<<3|xg8 /PQ.>< z_@4@DF>X` <<>?` p <2p:]ru#\#D$@ 0 8UUrhp?<?}x 2<{ m??U@P ``x cq3 lvF@  T$|߂<<00@ ⁌~`t<4Ԁ TDLLGD  J(^߀| ?@# @0 3T>7׀߀8@pp&ۀ0@Q`O< p px?'0034Ȉ;k10 ?3 L@ `ӰO?8`>8 ?3 ??88>L??_+[9?go o@@@<_ _'?<~<=?<@@GG <`3 ?B<0?<>@p<<(%< q~'1|8a89 pp<^L1ˮ0qL?Ǡ`nGO@?`}:?`  W_͏0p>O)fn$ O30o!f ?@?~p<<0+/} 5OMT@A &6A oo` p?_@@@``p`3 !  @>?@(А |#8u ?Hi@ G8` f[0;DaaAξ  P Ā < |0~ ;!qq ps@=p@A>w00(? ! $$ppv`d|  G3h>k04BP!@@ ZB<8`߸ 9@  <?O(ǀ sz?w(@? ~ooo  0a$ 0nʾ1x5*UQUT8 ~7H77 @@nA@+(qxa˥c80 O?6@v`@>'o"v""xJs߁ @W0 0`??pɃ 0@?0S`p?13&$ c<>@?@?6 8`p@@@xo|]j nF0 < >@~8 p`p"Oҋ/4 p??.LDM]@(0 ~?@p~0h&07B@@@aOpjTuUUFb fx?}x  4D` `@pVUjUU3@ll. }p  d##?P?pjTUUU X C30&~6~ ):11gEPpVuJUU,P@4` :xb_Ln@` T3PpjTUUUR(Vspp@P `@?0@3x} 8VuJUU*UUT} wwW``(n `ـd:|jTUUUUU*UV <8` @w0`b h?{a 3 VUjUU*UUUT`_?Md M<}:'`yx9? ` |t >K>?~`0 @@ W??~L $/@p  C!4@??*UX/Op%7P p P0Ff700~p/UUPUQ*PO1>@ <<$ <8H8H `888 ?UUT*UXR06` P44PX&UUPUQ*P?0 8 22p@$b~ 7``UUT*UXTx(00X+??8`  @@u( ǀ4``UUPUQ*@@(8<  ,0H  &SðUUT*UXHjFπ13  @@ 80X` f Eaο*UUPUQ*@5`13`@0( @_?_9?U*T*UX@?:  WO?@_T`PA` >ʪUPUQ*A $?}_]BflPEH`O?WU Tꨕ*UX@c q~Z: ~d@X*C#UPUQ*?K?FxO"4y ͌687!8R <??<]Tꨕ*UX?@_?"t ֝< ((@JG^d & /?tS`?`W@?xɨ0oG0+8!xp $Y __??nXQ`1??U0IJJ ?#  9?@??R]"hhK[?jԏD&@ x7obgS`<??*9XG@?/ϥB@e@C`m;  ? 0ʊ e81. ! ߀*UT O*3TϘ}Nze.UVp10q0~`gWUU[*_o ??$jόD@ ?wG{?w7 p @ rV hրq0`` *UP̪jj YG~ab,+"@TX )?TpUU UU@WJU]*U$G?p@jˁ?=ߏsv@@)<~$`** T*U@((" _j*oOU~b/?R`P`Y0K" 0??-`ીTW UY*P+ "/UJw!A5}GC@Q`(@ FH ' a`?[?/`?*U`)h h~ywR`~8VƇ4c?pA858?U7*xoHਵ׊UQJA,9K FQE3'xp@}f L?F??`Տ"?~'?T31>?U+a X}3pp@ ndQ/8@M?U''@AxT*f˹ (v T 5?? UWUWG?TT*Etx/Deoj?`r@/_}8)ce`y{h(j?@? 0g@?Ȁ:aooT/Q~U}UU? ‹wTob~ʩB! @ A@ nّ6~t?Y!~U*?|]\ 4@ u=qT( )`+@|_P_VJX ˜ a~8@xM?Z (HbqV3ob#hx__UY`{ b~}ԁ]q*̀  6 $@q+Gx_P j*͠;C~}j)O?jf|&I a‚W`U!SU]3 3UYˁ|_U]* O?  A~T$@ l (@/OZaS3 3j*`x+*?@-U<j6Ơ@ ` ,@@^wAPw] UYZ//9x0J8@@b8q `BP ??A_j*__ sx`,ѓpIG@ _Wo0(0d@4  ) ^??/@P jտkxW \p /C$ *@`<0@O_Ds )Sx `~`Khw \3>AZ8s7H _I.Q+x?`@tww"B@(=@¼ @te/. q !Sx*Lq`ũ:7*@d<@~zhS/??;**A#xQxćy`@B3> B85}$UU@*Cpw9oe;|vAsb00ƒ/UTT@ ( `g%O?"e9d@@@Ap0  -U*_   EEDC?x%O?oQ_T@8Dp ^?O UPP@ |9@?or89PT` =@@UJ  EE9@?wPXW!0 ^?@@]<`,2=+$ @ Y@@0Ъ%%  AA <`/3a=n! z ?@UNN@ <7ph."=*W" @/OYPPc@ AA?. >p? Pci}j g@_z/;;@@ ?_@? >0?Pfy @zP<@/] YTTUUA_A_? @~ۀ8\>h_Z¯=PA ??^ /B??D@?DeO8@< >=PWkh ??@<@_@_#^'zW  7azz@@Y>>d?++Ԫ UU[=KT =B@ t_P@_@_E??r~__UUXh__gU%P >Bz@//9@8I8am?*W|} /0@W@WA><xj~xIx a mUUYepju*| _`@//"]>0B=pIp l a, DPX  Կ`U* 別UUUUqIqHeUUY|ZWWP0++kUU`a6IdUUUUK,@A-TW//U* ~sr6 Dd__U e# __ k{ K 2M,`?//KU_G@/RX7???6Xaol:e!U ]P~_ ?>>M./?ɾA`o ?*@W"??K@`??>\_?@Ɵ 6`{c{l:Ye_jW*!~??~'@ ?<4@Pɧ6X\`\li , 5P*|=BK@HP`00`b @e? ip:r 8c8lYW}@:E=k=P 2??1@&> >lbK@@,POTB_t -% qAп@rʜ0!h?~?!!gK _U%!WP|v@!H~ &?@dH??K  )! ˌd'/ ?*@W -߰ 9  bߝ h$!$/H6_y^BAle$e j_ UZB V&3L?_=7lM./"QXqs ٛd8t ? P*/"_FZ~H$ l\$_ߠA`a6hidEYa^W|Wxa@HfQs10 l 4I@'ihig}A,/ЏT / Bǿ8@jc06~ lip=Dg 6@c@lE XGUP_hSB5ZHDBBnT u{ l$H  6alb@K(@ @@@Rprt `||@lh  6 dhV? E_z_: !^#@T(1*lK  #EX8P& `d/P?@@K?E 03Pl  Jl LD(d^LXL_L_##d`d\/W@ ''9999 @\@  <G^^P@O O0g'w9w9w9w9,PFFL@L` A_A_x ]b ''w9w9w9w9*R,//_" "oWx@@ ` ,W /""o!!(4WW+ @|@ *`  G=qqo8G8h11(4p@ @OM0? OPT O+,OW- VSYNC MACRO MOVE.L D0,-(A7) MOVE.W SYNC,D0 .VLP\@ CMP.W SYNC,D0 BEQ .VLP\@ MOVE.L (A7)+,D0 ENDM ; START OF PROGRAM MOVE.L A7,A5 CLR.L -(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP MOVE.L D0,SSP MOVE.L #MYSTACK,A7 MOVE.L 4(A5),A5 MOVE.L $C(A5),D0 ADD.L $14(A5),D0 ADD.L $1C(A5),D0 ADD.L #$100,D0 MOVE.L D0,-(SP) MOVE.L A5,-(SP) MOVE.W #0,-(SP) MOVE.W #$4A,-(SP) TRAP #1 LEA 12(SP),SP TST.L D0 BNE OUT2 BSR INIT BSR CLEARBUF BSR ON BSR FADEOUT MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 MOVE.L SCREENB,SCREENW LEA PIC+4,A1 BSR FADEIN MOVE.L #VBLANK,$70 ;REL TO SCREEN: ;D3,A3,A1 REDO MOVE.L #PIC+128-(41*$A0),D2 MOVE.L D2,A2 MOVE.L #$1E00+(32*$A0),A0 SUB.L #(41*$A0),A0 ;INITIAL YPOS OF ROLL MOVE.L A0,DD3 MOVE.L A0,AA3 ADD.L #((200+41-32)*$A0),A0 MOVE.L A0,ENDCHK MOVE.L #PIC+128+((111-41-5)*$A0),D5 ;BIT THATS ROLLED MOVE.L #0,A4 MOVEQ #0,D7 MOVE.W #4,RPOS CONT VSYNC BSR SWAPSCR MOVEM.L D0-D7/A0-A5,-(SP) BSR SCROLL BSR BARS MOVEM.L (SP)+,D0-D7/A0-A5 BSR DISP MOVEQ #0,D7 BSR LINE BSR TOGSCR ADDI.L #$A0,D2 ADDI.L #$A0,D5 ADDI.L #$A0,DD3 ADDQ.W #2,RPOS ;BSR TOGSCR CMPI.B #$39,$FFFC02 BEQ FINI MOVE.L DD3,A0 CMP.L ENDCHK,A0 BNE CONT MOVE.L #(7+32)*$A0,A1 MOVE.L A1,ENDCHK CONTB VSYNC BSR SWAPSCR MOVEM.L D0-D7/A0-A5,-(SP) BSR SCROLL BSR BARS MOVEM.L (SP)+,D0-D7/A0-A5 BSR DISPB MOVEQ #0,D7 BSR LINE BSR TOGSCR SUBI.L #$A0,D2 SUBI.L #$A0,DD3 SUBI.L #$A0,D5 SUBQ.W #2,RPOS CMPI.B #$39,$FFFC02 BEQ FINI MOVE.L DD3,A0 CMP.L ENDCHK,A0 BNE CONTB BRA REDO FINI JSR FLUSH BRA OUT INIT DC.W $A00A MOVE.B #$12,$FFFFFC02.W CLR.W $452 MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) MOVE.W #2,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,PBASE MOVE.W #3,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,LBASE MOVE.W #4,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.W D0,RES CLR.B $FF8260 MOVE.L #SCREENS,D0 ADD.L #512,D0 AND.L #$FFFFFF00,D0 MOVE.L D0,SCREENA ADD.L #$B000,D0 MOVE.L D0,SCREENB MOVE.W #1,TOGGLE MOVE.L SCREENB,SCREENW MOVE.L SCREENA,A0 MOVE.W #($16000/4),D0 MOVEQ #0,D1 CLRLOOP MOVE.L D1,(A0)+ DBRA D0,CLRLOOP MOVE.L #BARDAT,BARPOS MOVEQ #1,D0 BSR MUSIC RTS CLEARBUF MOVE.W #(20*$A0),D0 LEA SCBUF1,A0 CLBUF1 MOVE.L #0,(A0)+ DBRA D0,CLBUF1 MOVE.L #MESSAGE,MESPOS MOVE.L #PIC+$88,CHARADDR ; SPACE RTS FLUSH BTST.B #0,$FFFC00 BEQ FLUSH2 MOVE.B $FFFC02,D0 BRA FLUSH FLUSH2 RTS OUT BSR OFF MOVEQ #0,D0 BSR MUSIC BSR SOUNDOFF MOVE.B #$8,$FFFFFC02.W MOVE.W #1,$452 MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) MOVE.W RES,-(SP) MOVE.L LBASE,-(SP) MOVE.L PBASE,-(SP) MOVE.W #5,-(SP) TRAP #14 ADD.L #12,SP DC.W $A009 OUT2 MOVE.L SSP,-(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP CLR.W -(SP) TRAP #1 SOUNDOFF MOVE.B #7,$FFFFF8800 MOVE.B #-1,$FFFF8802 RTS FADEIN MOVE #$8240,A0 MOVEQ #6,D5 FADELP MOVEQ.W #3,D4 FADEWT VSYNC DBRA D4,FADEWT MOVEQ #15,D4 COLLP MOVE (A0),D0 MOVE (A1)+,D1 MOVE D0,D2 MOVE D1,D3 AND #$700,D2 AND #$700,D3 CMP D2,D3 BLE.S RDONE ADD #$100,D0 RDONE MOVE D0,D2 MOVE D1,D3 AND #$070,D2 AND #$070,D3 CMP D2,D3 BLE.S GDONE ADD #$010,D0 GDONE MOVE D0,D2 MOVE D1,D3 AND #$007,D2 AND #$007,D3 CMP D2,D3 BLE.S BDONE ADDQ #$001,D0 BDONE MOVE D0,(A0)+ DBF D4,COLLP LEA -32(A0),A0 LEA -32(A1),A1 DBF D5,FADELP RTS FADEOUT MOVE #$8240,A0 MOVEQ #6,D5 FADELP2 MOVE.W #3,D4 FADEWT2 VSYNC DBRA D4,FADEWT2 MOVEQ #15,D4 COLLP2 MOVE.W (A0),D0 MOVE.W D0,D2 AND.W #$700,D2 CMP.W #0,D2 BEQ.S RDONE2 SUB.W #$100,D0 RDONE2 MOVE.W D0,D2 AND.W #$070,D2 CMP.W #0,D2 BEQ.S GDONE2 SUB #$010,D0 GDONE2 MOVE.W D0,D2 AND.W #$007,D2 CMP.W #0,D2 BEQ.S BDONE2 SUB.W #$001,D0 BDONE2 MOVE.W D0,(A0)+ DBF D4,COLLP2 LEA -32(A0),A0 DBF D5,FADELP2 RTS DISP MOVE.L D2,A2 ;COPY FIRST LINE MOVE.L DD3,AA3 CMP.L #$1E00+(32*$A0),AA3 BGE DISPS LEA BLANK,A2 DISPS MOVE.L SCREENA,A3 ADD.L AA3,A3 MOVEM.L D0-D7,-(SP) MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVE.L SCREENB,A3 ADD.L AA3,A3 MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVEM.L (SP)+,D0-D7 RTS DISPB MOVE.L DD3,AA3 LEA BLANK,A2 MOVE.L SCREENA,A3 ADD.L AA3,A3 ADD.L #($A0*41),A3 MOVEM.L D0-D7,-(SP) MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVE.L SCREENB,A3 ADD.L AA3,A3 ADD.L #($A0*41),A3 MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVEM.L (SP)+,D0-D7 RTS LINE LEA TABLE,A4 ADDQ.L #2,D7 MOVEQ #0,D6 MOVE.W (A4,D7.L),D6 SUB.L D6,D5 MOVEA.L D5,A2 ADD.L #$A0,AA3 BSR DISP2 CMP.L #80,D7 BNE LINE ADD.L #(70*$A0),D5 RTS DISP2 CMP.L #(199*$A0+$1E00+32*$A0),AA3 BGT DSKIP MOVE.L SCREENW,A3 ADD.L AA3,A3 MOVEM.L D0-D7,-(SP) MOVEM.L (A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,(A3) MOVEM.L 40(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,40(A3) MOVEM.L 80(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,80(A3) MOVEM.L 120(A2),D0-D7/A4-A5 MOVEM.L D0-D7/A4-A5,120(A3) MOVEM.L (SP)+,D0-D7 DSKIP RTS TABLE DC.W $A0,$3C0,$280,$1E0,$1E0,$140,$140,$140 DC.W $A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0 DC.W $A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0 DC.W $A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0 DC.W $A0,$A0 DC.W $140,$140,$140,$1E0,$1E0,$280,$3C0,$A0 DISSOLVE MOVE.W #7,D7 MOVE.L #DISDAT,A1 MOVE.L #DISDAT2,A2 CLR.L D6 Z0 MOVE.W #35,D0 CLR.L D2 CLR.L D3 CLR.L D4 CLR.L D5 Z1 MOVE.W D0,D1 MOVE.W D7,D6 MOVE.W #79,D2 Z2 CLR.L D4 CLR.L D3 MOVE.B (A1,D2.W),D4 MOVE.B 80(A1,D1.W),D3 MOVE.L D3,D5 LSR.W #1,D5 MULU #$A0,D4 ADD.L A0,D4 LSL.W #3,D5 ADD.L D5,D4 AND.L #1,D3 CMP #0,D3 BEQ Z5 ADD.L #1,D4 Z5 MOVE.L D4,A4 MOVE.B (A2,D6),D4 BCLR.B D4,(A4) ADDQ.W #1,D6 CMP.W #8,D6 BNE Z6 MOVE.W #0,D6 Z6 SUBQ.W #1,D1 CMP #-1,D1 BNE Z4 MOVE.W #35,D1 Z4 MOVE.L #$1F,D4 Z7 DBRA D4,Z7 DBRA D2,Z2 DBRA D0,Z1 DBRA D7,Z0 RTS DISDAT ;INCBIN DIS.DAT DISDAT2 DC.B 4,6,2,7,0,3,1,5 SCROLL MOVE.W SCROLLX,D0 ADDQ.W #2,SCROLLX CMP.W #$54,SCROLLX BLT.S SCOK1 CLR.W SCROLLX SCOK1 MOVE.W D0,D1 ANDI.W #3,D0 ADD.W D0,D0 ADD.W D0,D0 ;=0,8 MOVE.W D0,NSHIFTS LEA SCRTABLE(PC),A0 MOVE.L (A0,D0.W),A1 ANDI.W #$FFFC,D1 ADD.W D1,D1 ADD.W D1,A1 ;ADD OFFSET OT BUF ADDR TST.W D0 BNE SCRSKIP CMPI.W #2,CHARCNT BNE LETOK MOVEQ #0,D1 MOVE.W D1,CHARCNT ;GETLET MOVE.L MESPOS,A2 TRYAGAIN MOVE.B (A2)+,D1 BPL.S SCOK2 LEA MESSAGE,A2 BRA TRYAGAIN SCOK2 MOVE.L A2,MESPOS CMP.B #32,D1 BLT TRYAGAIN SUB.B #32,D1 ADD.W D1,D1 LEA CHARTAB,A2 MOVE.W (A2,D1),D1 MOVE.L #FONT+128,CHARADDR ADD.L D1,CHARADDR BRA SCRCONT LETOK ADDQ.L #8,CHARADDR SCRCONT ADDQ.W #1,CHARCNT SCRSKIP MOVE.L CHARADDR,A0 MOVE.L A1,A2 ; BUF ADDR MOVEQ #31,D1 ; HEIGHT MOVE.W NSHIFTS,D2 UPDATE MOVEQ #0,D0 MOVE.W (A0),D0 LSL.L D2,D0 MOVE.W D0,$08(A2) MOVE.W D0,$B0(A2) SWAP D0 OR.W D0,$00(A2) OR.W D0,$A8(A2) MOVEQ #0,D0 MOVE.W 2(A0),D0 LSL.L D2,D0 MOVE.W D0,$0A(A2) MOVE.W D0,$B2(A2) SWAP D0 OR.W D0,$02(A2) OR.W D0,$AA(A2) MOVEQ #0,D0 MOVE.W 4(A0),D0 LSL.L D2,D0 MOVE.W D0,$0C(A2) MOVE.W D0,$B4(A2) SWAP D0 OR.W D0,$04(A2) OR.W D0,$AC(A2) MOVEQ #0,D0 MOVE.W 6(A0),D0 LSL.L D2,D0 MOVE.W D0,$0E(A2) MOVE.W D0,$B6(A2) SWAP D0 OR.W D0,$06(A2) OR.W D0,$AE(A2) LEA $A0(A0),A0 LEA $150(A2),A2 DBRA D1,UPDATE ;NOTE A1 ADDR, A0=DEST MOVE.L SCREENW,A0 ADD.L #(36*$A0),A0 LEA 16(A1),A1 ;$150 BYTES/ROW OFFSET SET $28B0 REPT 32 MOVE.L $9C+OFFSET(A1),-(A0) MOVEM.L $6C+OFFSET(A1),D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,-(A0) MOVEM.L $3C+OFFSET(A1),D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,-(A0) MOVEM.L $C+OFFSET(A1),D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,-(A0) MOVEM.L OFFSET(A1),D0-D2 MOVEM.L D0-D2,-(A0) ;LEA -$A0(A0),A0 OFFSET SET OFFSET-$150 ENDR RTS SCROLLX DC.W 0 CHARCNT DC.W 0 NSHIFTS DC.W 0 CHARADDR DC.L 0 BARS MOVEQ #0,D0 MOVEQ #0,D1 MOVEQ #0,D2 MOVE.B #$8,$FF8800 MOVE.B $FF8800,D1 MOVE.B #$9,$FF8800 MOVE.B $FF8800,D0 MOVE.B #$A,$FF8800 MOVE.B $FF8800,D2 MOVE.B #14,$FF8800 MOVE.B $FF8800,D7 ;CMP.B #14,D0 ;BHI AON ;BSET #1,D7 ;BRA AOK AON ;BCLR #1,D7 AOK ;CMP.B #14,D1 ;BHI BON ;BSET #2,D7 ;BRA BOK BON ;BCLR #2,D7 BOK ;MOVE.B D7,$FF8802 MOVE.L SCREENW,A1 ADD.L #(120*$A0+8*5),A1 MOVE.L #0,BAR11 MOVE.L #0,BAR21 MOVE.L #0,BAR31 MOVE.L BARPOS,A0 ADD.L #4,BARPOS CMP.L #BAREND,BARPOS BNE BARPOSOK MOVE.L #BARDAT,BARPOS BARPOSOK MOVE.W #16,D7 BARLP MOVE.L (A0)+,D3 CMP.L #BAREND,A0 BNE BARPOSOK2 MOVE.L #BARDAT,A0 BARPOSOK2 CMP.B D0,D7 BGT NB1 MOVE.L D3,BAR11 NB1 CMP.B D1,D7 BGT NB2 MOVE.L D3,BAR21 NB2 CMP.B D2,D7 BGT NB3 MOVE.L D3,BAR31 NB3 MOVE.W BAR11,$00(A1) MOVE.W BAR12,$08(A1) MOVE.W BAR21,$20(A1) MOVE.W BAR22,$28(A1) MOVE.W BAR31,$40(A1) MOVE.W BAR32,$48(A1) MOVE.W BAR11,$140(A1) MOVE.W BAR12,$148(A1) MOVE.W BAR21,$160(A1) MOVE.W BAR22,$168(A1) MOVE.W BAR31,$180(A1) MOVE.W BAR32,$188(A1) LEA $A0*4(A1),A1 DBRA D7,BARLP RTS ON LEA MFPSTORE,A0 MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $134.W,(A0)+ CLR.B $FFFFFA1B.W CLR.B $FFFFFA19.W MOVE.B #$21,$FFFFFA07.W CLR.B $FFFFFA09.W MOVE.B #$21,$FFFFFA13.W CLR.B $FFFFFA15.W BCLR.B #3,$FFFFFA17.W MOVE.L #TOPBORD,$134.W MOVE.L #BOTTOM,$120.W MOVE.L #VBLANK2,$70.W MOVE #$2300,SR RTS OFF MOVE #$2700,SR LEA MFPSTORE,A0 MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA21.W MOVE.L (A0)+,$68.W MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$134.W BSET.B #3,$FFFFFA17.W MOVE #$2300,SR RTS SWAPSCR CMP.W #1,TOGGLE BEQ SWP1 BNE SWP2 SWP1 MOVE.L SCREENB,SCREENW MOVE.W #2,TOGGLE RTS SWP2 MOVE.L SCREENA,SCREENW MOVE.W #1,TOGGLE RTS TOGSCR CMP.W #2,TOGGLE BEQ TOG1 BNE TOG2 TOG1 MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOG2 MOVE.L SCREENA,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOPBORD MOVE #$2100,SR STOP #$2100 CLR.B $FFFFFA19.W DCB.W 78,$4E71 ;78 NOPS CLR.B $FFFF820A.W DCB.W 18,$4E71 ;18 NOPS MOVE.B #2,$FFFF820A.W CLR.B $FFFFFA19.W RTE PHBL RTE BOTTOM MOVE.W (A6)+,$FF8240 MOVE D0,-(SP) DCB.W 32,$4e71 CLR D0 .syncb MOVE.B $ffff8209.w,D0 NEG.B D0 ADD.B #64+128,D0 LSL.B D0,D0 MOVE #18,D0 .wait DBF D0,.wait ;101 nops! MOVE.B #0,$FF820A DCB.W 12,$4E71 MOVE.B #2,$FF820A MOVE.W (SP)+,D0 MOVE.L #HBLANK2,$120 BCLR #0,$FFFA0F RTE VBLANK2 NOT SYNC RTE VBLANK CLR.B $FFFFFA19.W MOVE.B #100,$FFFFFA1F.W MOVE.B #4,$FFFFFA19.W MOVE.L #PHBL,$68.W LEA RASDAT,A6 CLR.B $FFFFFA1B.W MOVE.L #HBLANKB,$120 MOVE.B #34,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVEM.L D0-D7/A0-A5,-(SP) LEA FONT+4,A0 LEA $FF8240,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) NOT SYNC ;BSR SWAPSCR LEA RASTER,A0 LEA RASDAT,A1 ADD.W RPOS,A1 MOVEM.L (A0)+,D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,(A1) MOVEM.L (A0)+,D0-D7/A2-A5 MOVEM.L D0-D7/A2-A5,48(A1) MOVE.L A6,-(SP) BSR MUSIC+8 MOVE.L (SP)+,A6 MOVEM.L (SP)+,D0-D7/A0-A5 ;BSR TOGSCR RTE HBLANK2 MOVE.W (A6)+,$FF8240 CMP.L #RASEND,A6 BEQ HBLANK3 BCLR #0,$FFFA0F RTE HBLANK3 MOVE.L #BOTTOM,$120 BCLR #0,$FFFA0F RTE HBLANKB CLR.B $FFFFFA1B.W MOVE.L #HBLANKB2,$120 MOVE.B #1,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W RTE MOVEM.L D0-D7/A0-A3,-(A7) MOVEQ #0,D0 LEA $FF8240,A0 LEA BDATA,A1 LEA $FF8209,A2 LEA SYNCHRO,A3 MOVEQ #0,D7 WAITSYNC MOVE.B (A2),D7 BEQ.S WAITSYNC MOVEQ #$3F,D6 SUB.B D7,D6 LSL D6,D7 JMP (A3,D7.L) SYNCHRO NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RASDISP MOVE.W (A1)+,D1 MOVE.W (A1)+,D2 MOVE.W (A1)+,D3 MOVE.W (A1)+,D4 MOVE.W (A1)+,D5 MOVE.W (A1)+,D6 ;#12 OFFSET MOVE.W D0,(A0) ;58 MOVE.W D1,(A0) ;$308X WHERE X=DATA REG MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D2,(A0) MOVE.W D1,(A0) MOVE.W D0,(A0) MOVE.W D1,(A0) MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D2,(A0) MOVE.W D1,(A0) MOVE.W D0,(A0) MOVE.W D1,(A0) MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D2,(A0) MOVE.W D1,(A0) MOVE.W D0,(A0) MOVE.W D1,(A0) MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D2,(A0) MOVE.W D1,(A0) MOVE.W D0,(A0) MOVE.W D1,(A0) MOVE.W D2,(A0) MOVE.W D3,(A0) MOVE.W D4,(A0) MOVE.W D5,(A0) MOVE.W D6,(A0) MOVE.W D5,(A0) MOVE.W D4,(A0) MOVE.W D3,(A0) MOVE.W D0,(A0) MOVEM.L (A7)+,D0-D7/A0-A3 MOVE.B #8,$FFFFFA1B.W RTE BDATA DC.W $222,$333,$444,$555,$666,$777 HBLANKB2 MOVE.W PIC+4+$02,$FFFFF8242.W MOVE.L PIC+4+$04,$FFFFF8244.W MOVE.L PIC+4+$08,$FFFFF8248.W MOVE.L PIC+4+$0C,$FFFFF824C.W MOVE.L PIC+4+$10,$FFFFF8250.W MOVE.L PIC+4+$14,$FFFFF8254.W MOVE.L PIC+4+$18,$FFFFF8258.W MOVE.L PIC+4+$1C,$FFFFF825C.W MOVE.L #HBLANK2,$120 RTE ;24 WORDS = 12 LONGS RASTER DC.W 0,0,$000,$111,$111,$222,$222,$333 DC.W $333,$333,$444,$444,$444,$555 DC.W $555,$555,$555,$666 DC.W $666,$666,$777,$777,$777 DC.W $777,$777,$777,$777,$666,$666 DC.W $666,$555,$555,$555 DC.W $555,$444,$444,$444,$333,$333 DC.W $333,$222,$222,$111,$111,$000 DC.W 0,0,0 RASDAT DS.W 192 RASEND DS.W 100 MUSIC INCBIN SWSPRITE.MUS RES DS.W 1 RPOS DS.B 1 BPOS DS.B 1 LBASE DS.L 1 PBASE DS.L 1 PALETTE DS.W 16 SSP DS.L 1 SYNC DS.W 1 AA3 DS.L 1 DD3 DS.L 1 MFPSTORE DS.L 7 TOGGLE DS.W 1 SCREENA DS.L 1 SCREENB DS.L 1 SCREENW DS.L 1 ENDCHK DS.L 1 MESPOS DS.L 1 BARDAT DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %00111111111111111111111111111100 DC.L %00011111111111111111111111111000 DC.L %00001111111111111111111111110000 DC.L %00000111111111111111111111100000 DC.L %00000011111111111111111111000000 DC.L %00000001111111111111111110000000 DC.L %00000000111111111111111100000000 DC.L %00000000011111111111111000000000 DC.L %00000000000111111111100000000000 DC.L %00000000000011111111000000000000 DC.L %00000000000000111100000000000000 DC.L %00000000000000011000000000000000 DC.L %00000000000000111100000000000000 DC.L %00000000000011111111000000000000 DC.L %00000000000111111111100000000000 DC.L %00000000011111111111111000000000 DC.L %00000000111111111111111100000000 DC.L %000000010111111111111111110000000 DC.L %00000011111111111111111111000000 DC.L %00000111111111111111111111100000 DC.L %00001111111111111111111111110000 DC.L %00011111111111111111111111111000 DC.L %00111111111111111111111111111100 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %01111111111111111111111111111110 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 DC.L %11111111111111111111111111111111 BAREND BARPOS DS.L 1 BAR11 DS.W 1 BAR12 DS.W 1 BAR21 DS.W 1 BAR22 DS.W 1 BAR31 DS.W 1 BAR32 DS.W 1 MESSAGE DC.B 'HELLO GOODEVENING AND WELCOME ' DC.B $FF EVEN SCRTABLE DC.L SCBUF1,SCBUF1,SCBUF2,SCBUF2 CHARTAB DC.W $0010,$0000,$0000 DC.W $0000,$0010,$0020,$0030,$0040,$0050,$0060,$0070,$0080,$0090 DC.W $1400,$1410,$1420,$1430,$1440,$1450,$1460,$1470,$1480,$1490 DC.W $2800,$2810,$2820,$2830,$2840,$2850,$2860,$2870,$2880,$2890 DC.W $3C00,$3C10,$3C20,$3C30,$3C40,$3C50,$3C60,$3C70,$3C80,$3C90 DC.W $5000,$5010,$5020,$5030,$5040,$5050,$5060,$5070,$5080,$5090 DC.W $6400,$6410,$6420,$6430,$6440,$6450,$6460,$6470,$6480,$6490 DCB.B $A0*10,0 FONT INCBIN FONT.NEO PIC INCBIN DUNGEON.NEO ; END OF STORED DATA SECTION BSS EVEN DCB.B $A0*60,0 SCREENS DS.B $1B200 DS.L 99 MYSTACK DS.L 1 SCBUF1 DS.B $150*32 SCBUF2 DS.B $150*32 BLANK DCB.B 160,0 *32 BLANK DCB.B 160,0 `*-*OB?< NA#'.|*m - ЭЭ// ?<?<JNAO Jfaraa0a< 9(HH@#((C6a#:p$<$B |2#'#'#( *<R(|~3'/09'y'g a\Haa bL?a~a*av'Ty' 99g y'( f"|`#( /09'y'g a Ha2a L?a$~aa'Uy' 99g y'( f`N` ByR |@"|'LH?<NNT#'?<NNT#'?<NNT3'B9` <P2#(#(3(#(( y(0<"|$|B0<#BBBB2<4<OBB1 1P*M؈M؅|g(D2` RF|f<<SA|f2<#(<QQQQNu09 HTy H yT HmBy H2@@@3 LA"""pAAJ@fd y JfLr3 J$y($jE(`#($< m AE(22#02 Nӹ N`P NRy J y N$Ir49 Lp05@5@H@Rjp0(5@ 5@H@jjp0(5@ 5@H@jjp0(5@5@H@jjAEPQ y(C!))LL<)H<&(f |((n#(n#(n#(2(3y(3y( 3y((3y(@3y(H3y(@3y(H3y(`3y(h3y(3y(CQfNuA' ! h p  4B8B8!B8 !B8!4! !2pF#NuF'A' !!h!p! !4F#Nu y(gf#((3(Nu#((3(Nu y(gf 9(HH@Nu 9(HH@NuF!Nr!B8NqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqB8 NqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNq B8NsNs3@?NqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqB@8 D(0<Q NqNqNqNqNqNqNqNqNqNqNqNq 0# NsFy'NsB8d!hMB8# "!HA/C@LHFy'AC'LH!BL!FP!JT!NX!R\# Ns""333DDDUUUUfffwwwwwwwfffUUUUDDD333""`J``/A _NuHA a`"z@@M:fXM~,"hMv,"hMn,"h M>,"hM.,"hM8,"h,M2PM<NuAJgCGG|?```G]LH@NuS(&jh'&"h" fp&h4$Pf!E$Prj,j*B Bf B(` f B;BAA&z^&Sr!K" ` f Q'Y&`x fQ'Y&!I"Nu@A AgY!I"!E8Jkt( A($zAA$R!ERZrZ|@.BBZ!J @g($zAA$R!J!E0EENu~G J(gS(`"h0 g f)?!@0"h fB|R0` f.    T0` f$)@@@"z "Q!I!G0`l fiT0`B fG*i T0`< f|*R0` f |*R0` fV0ii"h0Q+R0J(gS(`NS(fHh"h  f Ti` g f)?[!@`Q-R(+k((,@C@20(!(*fVC`. f"VCh (+j D ` ( `VCJ( g(  C(.J(gS(`V((Jjf&f(dr`(eA dAeAdA G.( g~2(H$(8v ԁ!B8HBB(-((jrNuAB. ,R pACzE~!I BB(-B(B( !IB0||B(BBhB( CCZ! z!zv4ݨ4ר4ߐא!| &PAA(zR(Tf!L"B&|*k,B(+kB((+A Af +A(B(-B8, ~wpjd^YTOKGC?;852/,*'%#!COSO@xxTFMX ?@x~*$ 旓束䕝  29EL^t                   69\8_ Cflr                           @"@@@@@@@@@@@@ $.0 30 . 0 0 $<<<<<<<<<       @      @@@@     @@@@ @. .+- )+$0+.+0+.+.  .+-+.+-+)+)')'$'" 0+.+0+.+0+2+3+5+6 0+.+0+2+3+5+3+2+ $.0 30 . 0 3 .$ $ $                               ? ??HELLO GOODEVENING AND WELCOME -- 0@P`p 0@P`p((( (0(@(P(`(p((<<< <0<@`)&p_(c ` ?`g'8`yg< `^A?^o/z7_8`0`/z7_ 0yg<3x< @0` `g8)&p8P9_(c10`!O h n>v@a)@70 !߀ $~H?0`?0`   p~;~2@?  bf  ~ `~ @98F ` \t  `:  h``S/  "? ||À<x 08À<x `x?~"{ˆ:hx?& ?> vN܁0`.?0 :88  h x-<` ,<hx @@pD@C?wwppp;cÀDF~~$na""! 0?Dpp7?@D?GD?G ~~0%0@n ?>?>)&p>@>8As $c8c@~IsB>IsB>yg|aGA6? A8?$?px~ppE`~=0sCzׄ?3Cxׄ?ogzC~C~ `p~0w`BC`|v8 v v!Hd7x 00#?{l"=;";"!߀  |~1F ``3p0  @ 8~bF~s8`s8`>#p!>6+$>"!!0"!!07p 0!>>0r 0?``??) 7$9&0Fop`>618x?> ?  ? 2?<\b0M'rx70r@?DlCc<dCc<d&\?<|:00t> 0O8\?\ ~\ ~}0? S/ 0#0 ??0~0~#0?8"?>0;> a`a?8w~w~8D?0?8?|jnR߽ 9?s>?x|"6 z"6 zvOqϏ~7? Dz?>#>#>"!>"?""!>8>`>@?>?MԼ:w?wvpd8{ @>>>] >>?%r?%\pkIv?~ +Iv~0?%v?%vv<y*Kw؁8iK^wځ<`69.69. .?7@7Lpc gc2g?c0(7`7`09><`:><3Gx?8Gx?89>?<9>?<0 q  |۹?";>; ??p!?DB~wBp??cÀpD@C?;< ;7?@$na~Gr??Dppn ~~00@N@8c)&p>@>8A8&g$c A8?yg|aA4?A6?3Cxׄ?E`~C|x׀?sCzׄ?BC` `p~<}dw`{!Hd7x #!#?1F!߀  1q ~` hxbww@qF  8~!>6"#!߀~͜ ~@  0?`^ݾ>A >`!>>0r6188p &fD:7 Fop`>70r\xb"vg  M'rx 0O8ů;x 480 t>0 S1>p>>9?s||j!<;|?xÀ<~n~?x x xxÀ<xXXz?>z<8 <8 s8#>8??( ??( &?>@??%r k?<v<8000.?7@2 |s |s  9><`0}}? q  |>0##!? ?~pww{x~"?4x|~~7xwrpzwwpv&q ă10#v">>""&!=""!#l `^:^_: ^:YW>>>%>ɰs?B8ɰs?p s@8ɓP?sF8sF8s@8ɀD~sD<<YGpY?h ?tYG9?r9?rt v~Gvp=|=?|x==C~=C~ x<>=xxM|xw?ĄÄ  `0  π# 80@wxsg`">{??@8ٟ0ٟ0 >p>&apwzG8`? B `B `?0G!D {x 0 ;8ǀ"888ǀD@( ?&?0&@#0b@H#!dw݀#c`ccc `w`|Cb>0bX9 a~F@9~xƀ8zB9B99!?0tF\00~/0 ~F/~.x`/`//x?ܔ 0~!>~a~π~ >x! > ! >  > x>0~1@ ~쇔݀ AxA8A8Ax| ~<=€=À=À=€=P0 ÀÀ<À=>=€=€=À=À << >>z >Db"a|8><@vOqϏ~ll>8>D9``>D?G>8>>9v99:?"!>DDC>>>?< >x?MҼ:?MҼ8>?Mм8A?MԼ:?Mм<>v?%H?%v?%p?%p>?%p?%\p?%x8.y܀y(y*y,xy.*y*9 ~r77v7p7v7p7Lpc~7` 9><9><9><9><π9><:><309>@<@װD>||q??!?D|?۹?D"0ğ?CB~;@~sDB~nvw"~pD@C?{x~pD@C?w x~wwpv&q"vL? ?D$naă10$naF@?"p=D?G""!#l _@'$߀&% ~~0^: ~~0&!?>%>ɀ?@8 pHF B8 <)&p>@>8Aɰs?B8)&p>@>8AHpIsB>sD<؀?t  ??p?yg|aYGpyg|avxxpGvx}C/0z?E`~=|E`~>8zC~=x x `  _`x?x `p~M|x `p~ ? vx!`'!f!d_!Hd7x b!Hd7x x`;"!t{!t"!!߀  bC߀!߀  <|a0 `gx2 ~`3π`@>  Ѐx p!gx |f c !>π ` `0Oϐ>FO8D@@? s8`@>;81sg`">?"!!0"! 1?@&apw 9?@0?70`8 ?9  @Ͽ& 9&G!D {9l&q 8? ? ? )!`CbC ݀#] bb\b@#0b@\Qbn⇜KD?>Cc<d >`8xƄ8~<?@:X9 a~:~?\ ~'8` /P. ~0?zS//0 ~S//0~80``!?0!?0~x"?>!>~"?>^!@w~ 0@`@@݀  zΖx|j1@@xφ|-j@x`"6 z10`Ï< `Ã<?À<~<À<)yf~0)70@ Ç<<0>Ã<?<À<ÀÀ<À<887<0?0`~ 8z>> >?>?><` >2? @94D?G>~>8>#>8#>?@>> 8>x?><-<>?>@M1~>>> >Ev< p3?%r>?%r5 >?%v`x5. 3y(8*z,v<8v< *69.@p7v~pp.?7@~.?7@@ 7` 9><19><`9><`~9>?<`ހ| q  |װ q  |@@?v?``ğ?Cb!?!?"? "wb~~wwpv&qv"D0 D0 ""!#l d_1&%0' 0%> @8ɀ?B8 ~pIF B8IF B8sD<[t ؀?p8*0?p0?pGv|B50z>v}? z}? z=xLx  _`x?> ?`x ?`xx&g!b~>'b?'b?c!t>>at{at{| ~`gxÃ<!30g0x!30g0x` d gx Ã<|gx`|gx`wppF>Nό` zF8F8  #{<!?0~@@A?ǀP. ~<0?$9 Ƅ8~@@,`f\C<] b@\9 9 \_\_ \ /P/0@000?~!>>@@0@?@~~ Oϐ>  ΀`   C` `ß<!gx```0 Á<`gx,<,33  23?!t 8< _ǹ1 0f!d840>8483""0C?  _`x? m8c? ?wv ?%p?}C/0z?,p3??%v9?py0*y0y(6~HF B8 ` p`7v9>?0'$߀p9><AL? р!>рD|~p !!2CCTU `@w .  WT@@@@ 5Q ?@` J`   @@D@ @2<< uuu@ AUdP0| 0?s??*"ppp "|SCUP@@@~Ȁ $$ |a|x π`{  p Rlpss 0_y0yU@|$||`?8||0Н P`u `>¿G{a{<݀B0 UHhhvPqxw`a;?@n wހ8PӺ, @/`BB=< @@><! p9=>اX~0VZRvmoF9#   _B<0*0|~p_p?@@G ` ? @x   08>||@" / @ $WÀ`s AN>@8|x`gK=5   `g 8@?(?@|  9كppp2 7u WWW?P`+8?ihh`08sBPU@@L?3108B@-``` wP2D8L__@? (k<@x>p *+  3 w wayT@2N74$L|UP+{pp??;?=> xbWWWݨ T.?,Zb *_ 0  0<<3|xg8 /PQ.>< z_@4@DF>X` <<>?` p <2p:]ru#\#D$@ 0 8UUrhp?<?}x 2<{ m??U@P ``x cq3 lvF@  T$|߂<<00@ ⁌~`t<4Ԁ TDLLGD  J(^߀| ?@# @0 3T>7׀߀8@pp&ۀ0@Q`O< p px?'0034Ȉ;k10 ?3 L@ `ӰO?8`>8 ?3 ??88>L??_+[9?go o@@@<_ _'?<~<=?<@@GG <`3 ?B<0?<>@p<<(%< q~'1|8a89 pp<^L1ˮ0qL?Ǡ`nGO@?`}:?`  W_͏0p>O)fn$ O30o!f ?@?~p<<0+/} 5OMT@A &6A oo` p?_@@@``p`3 !  @>?@(А |#8u ?Hi@ G8` f[0;DaaAξ  P Ā < |0~ ;!qq ps@=p@A>w00(? ! $$ppv`d|  G3h>k04BP!@@ ZB<8`߸ 9@  <?O(ǀ sz?w(@? ~ooo  0a$ 0nʾ1x5*UQUT8 ~7H77 @@nA@+(qxa˥c80 O?6@v`@>'o"v""xJs߁ @W0 0`??pɃ 0@?0S`p?13&$ c<>@?@?6 8`p@@@xo|]j nF0 < >@~8 p`p"Oҋ/4 p??.LDM]@(0 ~?@p~0h&07B@@@aOpjTuUUFb fx?}x  4D` `@pVUjUU3@ll. }p  d##?P?pjTUUU X C30&~6~ ):11gEPpVuJUU,P@4` :xb_Ln@` T3PpjTUUUR(Vspp@P `@?0@3x} 8VuJUU*UUT} wwW``(n `ـd:|jTUUUUU*UV <8` @w0`b h?{a 3 VUjUU*UUUT`_?Md M<}:'`yx9? ` |t >K>?~`0 @@ W??~L $/@p  C!4@??*UX/Op%7P p P0Ff700~p/UUPUQ*PO1>@ <<$ <8H8H `888 ?UUT*UXR06` P44PX&UUPUQ*P?0 8 22p@$b~ 7``UUT*UXTx(00X+??8`  @@u( ǀ4``UUPUQ*@@(8<  ,0H  &SðUUT*UXHjFπ13  @@ 80X` f Eaο*UUPUQ*@5`13`@0( @_?_9?U*T*UX@?:  WO?@_T`PA` >ʪUPUQ*A $?}_]BflPEH`O?WU Tꨕ*UX@c q~Z: ~d@X*C#UPUQ*?K?FxO"4y ͌687!8R <??<]Tꨕ*UX?@_?"t ֝< ((@JG^d & /?tS`?`W@?xɨ0oG0+8!xp $Y __??nXQ`1??U0IJJ ?#  9?@??R]"hhK[?jԏD&@ x7obgS`<??*9XG@?/ϥB@e@C`m;  ? 0ʊ e81. ! ߀*UT O*3TϘ}Nze.UVp10q0~`gWUU[*_o ??$jόD@ ?wG{?w7 p @ rV hրq0`` *UP̪jj YG~ab,+"@TX )?TpUU UU@WJU]*U$G?p@jˁ?=ߏsv@@)<~$`** T*U@((" _j*oOU~b/?R`P`Y0K" 0??-`ીTW UY*P+ "/UJw!A5}GC@Q`(@ FH ' a`?[?/`?*U`)h h~ywR`~8VƇ4c?pA858?U7*xoHਵ׊UQJA,9K FQE3'xp@}f L?F??`Տ"?~'?T31>?U+a X}3pp@ ndQ/8@M?U''@AxT*f˹ (v T 5?? UWUWG?TT*Etx/Deoj?`r@/_}8)ce`y{h(j?@? 0g@?Ȁ:aooT/Q~U}UU? ‹wTob~ʩB! @ A@ nّ6~t?Y!~U*?|]\ 4@ u=qT( )`+@|_P_VJX ˜ a~8@xM?Z (HbqV3ob#hx__UY`{ b~}ԁ]q*̀  6 $@q+Gx_P j*͠;C~}j)O?jf|&I a‚W`U!SU]3 3UYˁ|_U]* O?  A~T$@ l (@/OZaS3 3j*`x+*?@-U<j6Ơ@ ` ,@@^wAPw] UYZ//9x0J8@@b8q `BP ??A_j*__ sx`,ѓpIG@ _Wo0(0d@4  ) ^??/@P jտkxW \p /C$ *@`<0@O_Ds )Sx `~`Khw \3>AZ8s7H _I.Q+x?`@tww"B@(=@¼ @te/. q !Sx*Lq`ũ:7*@d<@~zhS/??;**A#xQxćy`@B3> B85}$UU@*Cpw9oe;|vAsb00ƒ/UTT@ ( `g%O?"e9d@@@Ap0  -U*_   EEDC?x%O?oQ_T@8Dp ^?O UPP@ |9@?or89PT` =@@UJ  EE9@?wPXW!0 ^?@@]<`,2=+$ @ Y@@0Ъ%%  AA <`/3a=n! z ?@UNN@ <7ph."=*W" @/OYPPc@ AA?. >p? Pci}j g@_z/;;@@ ?_@? >0?Pfy @zP<@/] YTTUUA_A_? @~ۀ8\>h_Z¯=PA ??^ /B??D@?DeO8@< >=PWkh ??@<@_@_#^'zW  7azz@@Y>>d?++Ԫ UU[=KT =B@ t_P@_@_E??r~__UUXh__gU%P >Bz@//9@8I8am?*W|} /0@W@WA><xj~xIx a mUUYepju*| _`@//"]>0B=pIp l a, DPX  Կ`U* 別UUUUqIqHeUUY|ZWWP0++kUU`a6IdUUUUK,@A-TW//U* ~sr6 Dd__U e# __ k{ K 2M,`?//KU_G@/RX7???6Xaol:e!U ]P~_ ?>>M./?ɾA`o ?*@W"??K@`??>\_?@Ɵ 6`{c{l:Ye_jW*!~??~'@ ?<4@Pɧ6X\`\li , 5P*|=BK@HP`00`b @e? ip:r 8c8lYW}@:E=k=P 2??1@&> >lbK@@,POTB_t -% qAп@rʜ0!h?~?!!gK _U%!WP|v@!H~ &?@dH??K  )! ˌd'/ ?*@W -߰ 9  bߝ h$!$/H6_y^BAle$e j_ UZB V&3L?_=7lM./"QXqs ٛd8t ? P*/"_FZ~H$ l\$_ߠA`a6hidEYa^W|Wxa@HfQs10 l 4I@'ihig}A,/ЏT / Bǿ8@jc06~ lip=Dg 6@c@lE XGUP_hSB5ZHDBBnT u{ l$H  6alb@K(@ @@@Rprt `||@lh  6 dhV? E_z_: !^#@T(1*lK  #EX8P& `d/P?@@K?E 03Pl  Jl LD(d^LXL_L_##d`d\/W@ ''9999 @\@  <G^^P@O O0g'w9w9w9w9,PFFL@L` A_A_x ]b ''w9w9w9w9*R,//_" "oWx@@ ` ,W /""o!!(4WW+ @|@ *`  G=qqo8G8h11(4p@ @OM0?D  <6    @2nT 68<>      v    XD  ,$ 8r!IH7;:"K 5N( * ) L8=6O03BC9>1E+ 2? J<-DG/,.%'@4&$MA#F$ !" % #    >C`K ɯWPW\> h܀?#?Ee?U ,` h{XhD@(l xy? NJ '`($<: pPH807O8R_@p\ z߈'Bx|f? B,T__ @*@5@@@>!($/ t  x[?!]/($ +_ xר$mB؏ 5U Wb_@>o` ,"c;7_p(DH?^@ \Bժnpe%xBD{@@+T0.`@ C@| 8^ǀQ/!& ʵ _C@_ @yr1 =VBvxTR x!%@{KkԴ\Y>gg0_ǀP%+# ;LDmpHD @?@yϷqNrN$~  TQ;>  h׏S UTTԪu J =Cϐlmo*0d9HB6< Kt J-RW^Z8MV%rU|U&U OYf TTTTj`aj`ЕHjr!;oL*eKx,0ZBY#M[Zp8|Hy jFi |nq";/`0xPP5'8 *#/ r`!^f.<$ 8qN@ Hü:(4|87` \lxm ԓ  p$SsHq 9lP{`FY R;P!>:FlPsn;/`x@6(I 0{  { Vj<.+ 8WWKW,NqmCЂ˰`$,@賜7|87pLt8~ $  `G90Ua Ѓ{x zVj3<,.@ \ Y!p0?""(@س07;pLtx2  `O)8Uqps 1HtZOQ @I\, &@O <+3;`P t8{ `G)<]a cpI $~>ۂ. <Ug,8$vy+fT0+83f8w`P|<^O` O4_a{p:B~w#x'@mSsX7#&`"$|k`wn;/p`0D|epKPD0HC  +p 6^<ˢn |Uv[-@8/ 8-ij0|870\8 Up^u8_a;p# Bnw x&y' ~\bT{TTg0L%XlHs";/0`D|`L`ŐF0 s p3 Bnwx &'I^NP! `kghkgS%8`?IJnq";/`D|?NRpCÄ sp! &V<۪n (Ĉ06;l2 ? /{"@+0f8` L?9: ?<˰B缁$[ex{)BJ#x'Xht~ !> hzeߟ a1qx mp#?opET߭!A~ϟ~ g栰^CGs z!L|MKex|YoPo, !T>z  @JϠr 8RπU%+' pČxS`a  zvŠވ-jL<0 t/ &P@ E* pb81& Hhxx|hA>O5Ժ+E-lxkj*@5jj@j׀5 @' ppDxJ@%%XYX2  z@Jq@ J $ɸ0UTTԪ?jhil@; .@P`@UյJJPJ  PTj0 QQQUTUJP ITTTT*jhjhJJ 5U @JHJJ  PXZ OPT O+,OW- VSYNC MACRO MOVE.L D0,-(A7) MOVE.W SYNC,D0 .VLP\@ CMP.W SYNC,D0 BEQ .VLP\@ MOVE.L (A7)+,D0 ENDM ; START OF PROGRAM BSR INIT LEA NWPAL,A0 LEA $FF8240,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) BSR SHIFTLOGO BSR RANDGEN BSR ON CONT2 VSYNC BSR STARFIELD BSR SWAPSCR BSR DLOGO BSR TOGSCR ;MOVE.W #$606,$FF8240 CMPI.B #$39,$FFFC02 BNE CONT2 BSR FLUSH BRA OUT FLUSH BTST.B #0,$FFFC00 BEQ FLUSH2 MOVE.B $FFFC02,D0 BRA FLUSH FLUSH2 RTS INIT DC.W $A00A CLR.L -(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP MOVE.L D0,SSP MOVE.B #$12,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A0),D0-D7 MOVEM.L D0-D7,(A1) MOVE.W #2,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,PBASE MOVE.W #3,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.L D0,LBASE MOVE.W #4,-(SP) TRAP #14 ADDQ.L #2,SP MOVE.W D0,RES CLR.B $FF8260 MOVE.L #SCREENS,D0 ADD.L #512,D0 AND.L #$FFFFFF00,D0 MOVE.L D0,SCREENA ADD.L #$B000,D0 MOVE.L D0,SCREENB MOVE.W #1,TOGGLE MOVE.L SCREENB,SCREENW MOVE.L SCREENA,A0 MOVE.W #($16000/4),D0 MOVEQ #0,D1 CLRLOOP MOVE.L D1,(A0)+ DBRA D0,CLRLOOP MOVEQ #1,D0 BSR MUSIC MOVE.L #LWAVE,WAVE RTS OUT BSR OFF BSR SOUNDOFF MOVE.B #$8,$FFFFFC02.W MOVE.L #$FF8240,A0 MOVE.L #PALETTE,A1 MOVEM.L (A1),D0-D7 MOVEM.L D0-D7,(A0) MOVE.W RES,-(SP) MOVE.L LBASE,-(SP) MOVE.L PBASE,-(SP) MOVE.W #5,-(SP) TRAP #14 ADD.L #12,SP DC.W $A009 MOVE.L SSP,-(SP) MOVE.W #$20,-(SP) TRAP #1 ADD.L #6,SP CLR.W -(SP) TRAP #1 SOUNDOFF MOVEQ #0,D0 JSR MUSIC MOVE.B #7,$FFFFF8800 MOVE.B #-1,$FFFF8802 RTS SHIFTLOGO LEA LOGOCOPY,A1 MOVE.L #15,D0 SHIFT3 LEA MIKELOGO,A0 MOVE.W #27,D1 ; HEIGHT SHIFT2 MOVE.W #19,D2 ;WIDTH CLR.W 0(A1) CLR.W 2(A1) CLR.W 4(A1) CLR.W 6(A1) SHIFT1 MOVEQ #0,D3 MOVEQ #0,D4 MOVEQ #0,D5 MOVEQ #0,D6 MOVE.W 0(A0),D3 MOVE.W 2(A0),D4 MOVE.W 4(A0),D5 MOVE.W 6(A0),D6 LSL.L D0,D3 LSL.L D0,D4 LSL.L D0,D5 LSL.L D0,D6 MOVE.W D3,$8(A1) MOVE.W D4,$A(A1) MOVE.W D5,$C(A1) MOVE.W D6,$E(A1) SWAP D3 SWAP D4 SWAP D5 SWAP D6 OR.W D3,0(A1) OR.W D4,2(A1) OR.W D5,4(A1) OR.W D6,6(A1) LEA 8(A0),A0 LEA 8(A1),A1 DBRA D2,SHIFT1 ;LEA 8(A1),A1 DBRA D1,SHIFT2 DBRA D0,SHIFT3 LEA XTABLE,A0 MOVE.L #0,D0 MOVE.W #19,D2 XT2 MOVE.W #15,D1 XT1 MOVE.L D0,(A0)+ DBRA D1,XT1 ADD.L #8,D0 DBRA D2,XT2 RTS DLOGO LEA LOGOTAB,A0 LEA XTABLE,A1 LEA XADDR,A2 MOVE.L SCREENW,A3 MOVE.W #27,D0 ;NUMBER OF LINES MOVEQ #0,D2 ;YPOS MOVE.L WAVE,A4 MOVEQ #0,D1 ENDRET1 MOVE.W (A4)+,D1 BMI ENDWAVE1 MOVE.L A4,WAVE DISTLP LSL.L #2,D1 MOVE.L (A0,D1.L),D7 ADD.L D2,D7 ADD.L #LOGOCOPY,D7 MOVE.L D7,(A2)+ MOVE.L (A1,D1.L),D7 ADD.L A3,D7 ADD.L #($A0*15),D7 ;HPOS MOVE.L D7,(A2)+ LEA $A0(A3),A3 ADD.L #$A0,D2 MOVEQ #0,D1 ENDRET2 MOVE.W (A4)+,D1 BMI ENDWAVE2 DBRA D0,DISTLP LEA XADDR,A5 MOVEQ #0,D7 REPT 28 ;40 REG NEEDED MOVE.L (A5)+,A0 MOVE.L (A5)+,A1 ;MOVE.L D7,-8(A1) ;MOVE.L D7,-4(A1) MOVEM.L (A0),D0-D6/A2-A4 MOVEM.L D0-D6/A2-A4,(A1) MOVEM.L 40(A0),D0-D6/A2-A4 MOVEM.L D0-D6/A2-A4,40(A1) MOVEM.L 80(A0),D0-D6/A2-A4 MOVEM.L D0-D6/A2-A4,80(A1) MOVEM.L 120(A0),D0-D6/A2-A4 MOVEM.L D0-D6/A2-A4,120(A1) ;MOVE.L D7,72(A1) ;MOVE.L D7,76(A1) ENDR RTS ENDWAVE1 MOVE.L #LWAVE,A4 BRA ENDRET1 ENDWAVE2 MOVE.L #LWAVE,A4 BRA ENDRET2 NSTARS EQU 24 STARFIELD LEA OLDPOS,A0 MOVE.L (A0),D0 MOVE.L 4(A0),A0 MOVE.L D0,4(A0) MOVE.L OLDPOS,A0 MOVE.W #(NSTARS/4)-1,D0 MOVEQ #0,D1 MOVE.L SCREENW,D2 CLEARLP MOVEM.L (A0)+,A1-A4 MOVE.L D1,(A1) MOVE.L D1,(A2) MOVE.L D1,(A3) MOVE.L D1,(A4) DBF D0,CLEARLP FIRSTPLOT LEA NEWPOS,A0 MOVE.L OLDPOS,A1 MOVE.W #NSTARS-1,D0 MOVE.L SCREENW,D1 MOVEQ #0,D3 PLOTSTAR MOVE.L (A0),A2 MOVE.L (A2)+,D2 BEQ.S RESET MOVE.L D1,A3 ADD.W (A2)+,A3 MOVE.L A3,(A1)+ OR.L D2,(A3) MOVE.L A2,(A0) LEA $308(A0),A0 DBF D0,PLOTSTAR RTS RESET LEA 4(A0),A2 MOVE.L A2,(A0) LEA $308(A0),A0 DBF D0,PLOTSTAR RTS RAND MOVEM.L D1-D2/A0-A2,-(A7) MOVE.W #$11,-(A7) TRAP #14 ADD.L #2,A7 LSR.L #8,D0 LSR.L #8,D0 MOVEM.L (A7)+,D1-D2/A0-A2 RTS RANDGEN LEA NEWPOS,A0 LEA SINTAB,A2 LEA $80+SINTAB,A3 MOVE.W #NSTARS-1,D1 SLOOP2 LEA 4(A0),A1 MOVE.L A1,(A0) BSR RAND LSR.L #2,D0 MOVE.W D0,A6 BSR RAND LSR.L #2,D0 MOVE.L D0,D3 BSR RAND MOVE.W D0,D4 MOVE.W #$7F,D7 LEA RADIUS,A4 BSR RAND LSR.W #3,D0 ADDA.W D0,A4 SLOOP MOVEQ #0,D0 MOVE.B (A4)+,D0 ADD.W D0,D3 MOVE.L D3,D5 MOVE.L D3,D6 MOVE.W D4,D0 ADD.W D0,D0 MULS 0(A3,D0.W),D5 ADD.L D5,D5 SWAP D5 ADDI.W #$A0,D5 MULS 0(A2,D0.W),D6 ADD.L D6,D6 SWAP D6 ADDI.W #$64,D6 SUBQ.B #1,D4 CMP.W #320,D5 BCC.S OFFSCR CMP.W #0,D5 BCS.S OFFSCR CMP.W #200,D6 BCC.S OFFSCR CMP.W #0,D6 BCS.S OFFSCR MOVE.W D5,D0 ANDI.W #$F,D0 MOVE.W A6,D2 ADD.W D3,D2 LSR.W #5,D2 ADD.W D2,D2 ADD.W D2,D2 LEA STARTAB,A5 MOVE.L (A5,D2.W),D2 ROR.L D0,D2 MOVE.L D2,(A1)+ MOVE.W D6,D0 MULU #$A0,D0 MOVE.W D5,D2 ANDI.W #$FFF0,D2 LSR.W #1,D2 ADD.W D2,D0 MOVE.W D0,(A1)+ DBF D7,SLOOP OFFSCR CLR.L (A1)+ LEA $308(A0),A0 DBF D1,SLOOP2 BSR FIRSTPLOT RTS ON LEA MFPSTORE,A0 MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $134.W,(A0)+ CLR.B $FFFFFA1B.W CLR.B $FFFFFA19.W MOVE.B #$21,$FFFFFA07.W CLR.B $FFFFFA09.W MOVE.B #$21,$FFFFFA13.W CLR.B $FFFFFA15.W BCLR.B #3,$FFFFFA17.W MOVE.L #TOPBORD,$134.W MOVE.L #BOTTOM,$120.W MOVE.L #VBLANK,$70.W MOVE #$2300,SR RTS OFF MOVE #$2700,SR LEA MFPSTORE,A0 MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA21.W MOVE.L (A0)+,$68.W MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$134.W BSET.B #3,$FFFFFA17.W MOVE #$2300,SR RTS SWAPSCR CMP.W #1,TOGGLE BEQ SWP1 BNE SWP2 SWP1 MOVE.L SCREENB,SCREENW MOVE.W #2,TOGGLE RTS SWP2 MOVE.L SCREENA,SCREENW MOVE.W #1,TOGGLE RTS TOGSCR CMP.W #2,TOGGLE BEQ TOG1 BNE TOG2 TOG1 MOVE.L SCREENB,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOG2 MOVE.L SCREENA,D0 LSR.W #8,D0 MOVE.B D0,$FF8203 SWAP D0 MOVE.B D0,$FF8201 RTS TOPBORD MOVE #$2100,SR STOP #$2100 CLR.B $FFFFFA19.W DCB.W 78,$4E71 ;78 NOPS CLR.B $FFFF820A.W DCB.W 18,$4E71 ;18 NOPS MOVE.B #2,$FFFF820A.W RTE PHBL RTE BOTTOM MOVE D0,-(SP) DCB.W 32,$4e71 CLR D0 .syncb MOVE.B $ffff8209.w,D0 NEG.B D0 ADD.B #64+128,D0 LSL.B D0,D0 MOVE #18,D0 .wait DBF D0,.wait ;101 nops! MOVE.B #0,$FF820A DCB.W 12,$4E71 MOVE.B #2,$FF820A MOVE.w (SP)+,D0 RTE HBLANK1 MOVE.W #$001,$FFF8240 MOVE.W #$300,$FFF8240+(7*2) CLR.B $FFFFFA1B.W MOVE.L #HBLANK2,$120 MOVE.B #7,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W RTE HBLANK2 MOVE.W #$002,$FFF8240 MOVE.L #HBLANK3,$120 RTE HBLANK3 MOVE.W #$003,$FFF8240 MOVE.L #HBLANK4,$120 RTE HBLANK4 MOVE.W #$004,$FFF8240 MOVE.L #HBLANK5,$120 RTE HBLANK5 MOVE.W #$005,$FFF8240 MOVE.L #HBLANK6,$120 RTE HBLANK6 MOVE.W #$006,$FFF8240 MOVE.L #HBLANK7,$120 RTE HBLANK7 MOVE.W #$007,$FFF8240 MOVE.L #HBLANK8,$120 RTE HBLANK8 MOVE.W #$555,$FFF8240 CLR.B $FFFFFA1B.W RTE VBLANK ;CLR.B $FFFFFA19.W ;MOVE.B #100,$FFFFFA1F.W ;MOVE.B #4,$FFFFFA19.W ;CLR.B $FFFFFA1B.W ;MOVE.B #228,$FFFFFA21.W ;MOVE.B #8,$FFFFFA1B.W ;MOVE.L #PHBL,$68.W ;CLR.B $FFFFFA1B.W ;MOVE.L #HBLANK1,$120 ;MOVE.B #100,$FFFFFA21.W ;MOVE.B #8,$FFFFFA1B.W CLR.W $FF8240 MOVEM.L D0-D7/A0-A5,-(SP) ;BSR STARFIELD ;BSR SWAPSCR NOT.S SYNC JSR MUSIC+8 ;BSR TOGSCR MOVEM.L (SP)+,D0-D7/A0-A5 RTE RADIUS DC.B 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 DC.B 0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1 DC.B 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DC.B 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,0 DC.B 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 DC.B 2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3 DC.B 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DC.B 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 DC.B 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 DC.B 4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5 DC.B 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 DC.B 5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6 STARTAB DC.W $8000,$0000,$8000,$0000 DC.W $0000,$8000,$0000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 DC.W $8000,$8000,$8000,$8000 ;MOVE.L #$00000211,$FF8240 ;MOVE.L #$07770776,$FF8244 ;MOVE.L #$01000665,$FF8248 ;MOVE.L #$06540422,$FF824C ;MOVE.L #$04320111,$FF8250 ;MOVE.L #$03110322,$FF8254 ;MOVE.L #$05430532,$FF8258 ;MOVE.L #$03210765,$FF825C NWPAL DC.W 0,$211,$777,$776,$100,$665,$654,$422 DC.W $432,$111,$311,$322,$543,$532,$321,$765 MUSIC INCBIN SWSPRITE.MUS SINTAB INCBIN SINTAB.DAT MIKELOGO INCBIN MIKE.DAT LWAVE INCBIN LOGOSINE.DAT DC.L $FFFFFFFF LOGOTAB REPT 20 DC.L $1180*0,$1180*1,$1180*2,$1180*3,$1180*4,$1180*5,$1180*6,$1180*7 DC.L $1180*8,$1180*9,$1180*10,$1180*11,$1180*12,$1180*13,$1180*14,$1180*15 ENDR EVEN OLDPOS DC.L OLDPOS1,OLDPOS2 SECTION BSS OLDPOS1 DS.L NSTARS OLDPOS2 DS.L NSTARS EVEN RES DS.W 1 LBASE DS.L 1 PBASE DS.L 1 PALETTE DS.W 16 SSP DS.L 1 SYNC DS.L 1 MESPOS DS.L 1 SDIREC DS.W 1 SPOS DS.L 1 SCREENW DS.L 1 SCREEND DS.L 1 TOGGLE DS.W 1 SCREENA DS.L 1 SCREENB DS.L 1 MFPSTORE DS.L 7 WAVE DS.L 1 XADDR DS.L (28*2) XTABLE DS.L (320) LOGOCOPY DS.B ($1180*16) ; 28 lines SCREENS DS.B $16000 NEWPOS DS.B (NSTARS+1)*6*128