DOSvzpHI,xCYpNh,@)n&A2C8 N @*h">(&0<@2<N)@ @2< 't QA|dv./\p7A<oBH?AaV0-GGaC`@&( 0siA? .YZC (& @`@ (B44 22w2Ѓ <0 t%Nj , ^\@0N@hXH2OSdARW W@ >^^@At # `!'#Q ApRށDf d>H2 0dC0&F `?QHDQCh] `2? ~T@E࿁A! O#0@E?'p@`E.R@@f `;H0; nss38g< ࿸< @sQ`/`2)202e\008 :9@X 4YT NZJD8B #0CS??|Z> pe K>1 4ix:T4 0P}H@(8D x $&<84\H0H4 mfA5(OmSg02` u_UaPPwH< @xA` B8 ΁[ ?fq9yg@scv ہM`Pb~5E@"?8}ŋCBd 5 `2 L#)4" bT2 dfG0903@ a4 4 <"xAGcJ0(21Af4B0ͨ$P 0vd{)y #U<~HHgu4pS0# y?' P1nc02f) Ɨ{xA |pKh' 4q Y@N?` ~@(? ‚y< G#xٓL8a tw 0ZOډ?68YDsyr6Pu`agP@IB s>7<~CZo Ga0/aGz@BN# `ߎ‰`I2 '4"e&qЃ3 ~@ AwX1 v A001@3`(/{X98gh#p4sp `!@)@bO_ 9@`gg3=Pc B q+uzx?߀5Jx @L Bx'@ VD '_Q  ̎` w}@$8R" @.@(@J,' `JA"PS(2`c%}`+` PE$`>0(P3`a`#fAS lt X h#(R0 *x S? @&@?#fVcV0h %] /{bg7sΘ_C<`0Ops'0wD | (3 (A-_ @HC 7 !0o@|Lj~  1 a@ A =01 4f!8 *pw? 'Ua<0 7Cz n@ %Q PQ a0h5rc G@ 1  - @A#8hE<  S`,0? p%`+ 00@_p>@_`8@_(tHp20`b˸A{,> q0v9|@~1 { 7Ö`c$G^%hp'4@;@P3e i2E . ` ہO@|` ` `$ @;%ay& @y?}0/ @m\\9<?=pCt9Ma@G}wB,A_f)K,?Nm?O???o?W;*s( X/{,0O 5/ @+$B~> ^qy@A0s~V_! `x`"i8`BL e /2?|:bx g~ ñm?o` oXxi i /X{NmL1@bAnzna? 8ppsu`7 B@ƓT1`cH@AP_ | q<'5~07 L B A=@L4 `Ax C87S\0b_+$BcCY `Ar@CY9p? Dԧ )00t`> !/ +X 5?=6.'la_ a?^K> > 1Q^&*@I!8LGC/P- $g:lS#@|2 '#;  ࿸GwqJcß< 9H EAT0>&`+/!6xN8 (9p @Q ` `3 a0ppph?@`07Ifd@sa w2sa0NZ;6`8vqo000 wBTNJ@PG@#`,p `.)@L'`~ <@;vp q1o1vDBT(O6p8R.P@㟏yF! %pC0GӲAN8P8#7 M! 00 ar S'8wcr&& aЁh0A f `<0`a@` A`EP#|iEP @h@Kp䣁 p? D` x'J$y0d89!&0P# ~ /9= SJ{C L,ϐ[k|vƀS`%Aol-t '9 hC”J{ aPqBˀ$ #@dAg7 >@49֏? ~Bc_`??R@Oʀ? =g(q|CAUwdG $ ~@AAK (?00@? AgA= p0#| D0'@Q:@A<~;^Sڥ!3IJCm(X?9 w?vObH_v02Q~>9 t?ZRe0K_xp0F矃' | Ё7O``1B7 #hOf ~C < 8A@׀H ` Dvo  FOy?7@vI Q_w_wA9͟A`3tA@h~$U8Qd@Dbt〈sp"8p;>cx~@0 h<01ibqzp&{*x 4`@̅%#|w߀;$ ,$_a! 5e@: &./~TLo>n0KG X[S#OC<0`nF'1+g s0RP% P фhA0rV e4tPP0>T[*/ AH@A j> 9`|(PBhy`  /~ `fӲ@N733x3@. 17> aA703XAG`-0(0@H<`_?rţP<7~"@ 9 !7!@(8$0_K9>i|pc5.N w 88.V  )cA>C(x;Pc@#T8Lˠ0P6YHKyN"bZQ]0\' E0!04FA@`<+`М$@ dX , |#x d @nH? mP2HBaqNp`2  h;   e~ ǐ@`AC@, <\ѐ KW$ Z7L(q@| &t9],0  % ~\`)_h?Xd!9p2 - `~)z7 P Oj&> &0`@.C(0z   % .D( ?,d ?x? $V  P0$40p ,\p)|` 0?` ?L 0 oLL C >P0*@A:2`h řqvDp@t`9 Op<0X=iY6eg?Ari(Q?:nL Dx@!.JA@d?9O:2 RiL Lr1ay ouD0i '0;|G b@`@`4Cd01Dyq@C! &2P>6ς qs=~=^ll01` B/|8T8'b6@AC@H 48{la*CV.`0+7汀?P8 rbO?M'7Ϝ /8OP8?%Bľ"'0 * + $1tA G 2+(Np1 g0c9y 擞y}r, 0 y>:69 p0` fJH`4B(>pO $x@ 4 4# +4QBi?4H( 'IbdLS=3@țd$x[Csx `C|@!( dfx Ӂ?||.Qpb @H (O% 7+ $RD RF4 #`F$ iA@#!@"'A^Wh<ЃQ 3||tb? +hO &`aH*| ?<݁@G;x(7P86dvA`0 p1}-0P~p*`P3@8%/ NPq@|`x <&Bp  P?t\ )eDlMHD@  lB@8! (Ŷpvx` s1^`abY gm @ G( ң C`ˆ@ O??7̈́S  "8G @?` "Ps~ r ~ט?`f9P3u0 @]*tP0@~3k@qpZ@! +P3)Q*¨|;`P`w°$`Z7 6Yj@F < D=8ABoq!c$C00Gv@} ap0>&YmR<`d1 fRѸb`<!MAVpA0Ct T \`aԠ$ `9 #(.@ 3'RW9/~2Pb0 PҀ9q- ~ >)0'F3:!8w"HGE2~tP (`?@`p `0?  LPp4' * !D_HS @ >pAX3  Dds" >B`6 m  A>d(@nH?(ҁ@>BAxF)H\8_\Lb<痁8/D_lrA p3A0 #0p   #cp`so&?18Ðsț"p *!mPa~#6fAXC#B :gQ>A*g,zD":$$:(N.":NJg*g,x*z -|#F"<N:#*g,z":$<N#:*g~"$:&-|N.":NzJk^,x <:"<N:#"g@az,z":pbeZ$<&<N":\$< $v[N#BS@gA0#BB0":@$<N#:*g":$:& #JNzJkzt(z:J<Ԍ&BBS~ <x8, gl`8D":$ &NzJkXzv6CBSٹJ8GGf":tvNzJkz":z$:Z&:RNzJkz,zz":^N,x"z: <:N.,x*zD -|"zN.,x"z0 <N.JEf,z2":$<&< N`,z :#NACN :aAaA :aAC* :axAabA :aAC :aXAaBA :bfrab":$<&<N":n$<&< N,x"zvNbpNu 0gNu `Nux t&RdЃB0QNuvaQNu a aNuBB0 B:eBNu zC*$zGF(Jpr tJQg8B&B66ARBJQfTLQ5A>CG6p&H5@@6H6SCtopH6QR1J5BBM:I:C<#&#*p?r( QRAv6::K"zvI>p 2:::TLt4:lRB:****@@fI62XAp:T@fI:0246::::nE:|~?p*HAgH01H*AjJfJ-g2<` f-`|  f-:o:SD`^ f---`H  f -@c|@`2  f2<` g f- g` -gDD6Cft`4<G~[g B BnftB@HXJVMQz"gRF~?`Nudos.libraryX(\:bh-ED}hS@. xq NoisePacker V2.01 1990 Twins of Phenomena Module to load: Module to save: ERROR. OK. Old Length = ( =$ ) New Length = ( =$ ) Bytes won = ( =$ );B@'d bQmodules/mod.% *>Tfx@Pn((HL^dijpqonmlkjB] NPReplay1.spikgt* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * NoisePacker V2.01 PlayRoutine 1990 Twins of Phenomena. * * Used registers are d0-d7/a0-a6. It use lev6irq. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * np_data=$60000 np_init: lea np_data,a4 lea $dff000,a5 lea np_position(pc),a6 moveq #2,d0 moveq #0,d1 move.l a4,a3 np_init1: add (a4)+,a3 move.l a3,(a6)+ dbf d0,np_init1 move (a4)+,d0 add.l d0,a3 move.l $78.w,(a6)+ move.l #$01060100,il=(a6)+ move #$8200,(a6)+ move.l d1,(a6)+ move.l #np_portup,(a6)+ move.l #np_portdown,(a6)+ move.l #np_port,(a6)+ move.l #np_vib,(a6)+ move.l #np_port2,(a6)+ move.l #np_vib2,(a6)+ move.l #np_volslide,(a6)+ move.l #np_arp,(a6)+ move.l #np_songjmp,(a6)+ move.l #np_setvol,(a6)+ move.l #np_pattbreak,(a6)+ move.l #np_filter,(a6)+ move.l #np_setspeed,(a6)+ moveq #0,d0 move.l a4,a6 add -8(a4),a6 sub #12,a6 np_init2: move.l a3,(a4) move.l a3,a2 move 14(a4),d0 add d0,d0 im2 add.l d0,a2 move.l a2,8(a4) move 4(a4),d0 add d0,d0 add.l d0,a3 add #16,a4 cmp.l a4,a6 bne.s np_init2 bset #1,$bfe001 move d1,$a8(a5) move d1,$b8(a5) move d1,$c8(a5) move d1,$d8(a5) lea $bfd000,a0 move.b #$7d,$d00(a0) move.b d1,$e00(a0) move.b d1,$400(a0) move.b #$02,$500(a0) move.b #$81,$d00(a0) move #$2000,$9c(a5) move #$e000,$9a(a5) rts np_end: moveq #0,d0 lea $dff000,a5 move d0,$a8(a5) move d0,$b8(a5) move d0,$c8(a5) move d0,$d8(a5) bclr #1,$bfe001in move #$f,$96(a5) move #$2000,$9a(a5) move.l np_oldirq(pc),$78.w rts np_music: moveq #0,d6 lea $dff0d0,a4 lea np_block(pc),a6 subq.b #1,(a6) bhi np_nonew lea np_position(pc),a3 move.l (a3)+,a0 add 6(a6),a0 move (a0),d0 move.l (a3)+,a0 add d0,a0 move.l (a3)+,a1 add 8(a6),a1 lea np_voidat1(pc),a2 moveq #8,d0 moveq #0,d5 np_loop1: moveq #0,d1 move (a0)+,d1 lea (a1,d1.l),a3 move.b (a3)+,d1 move.b (a3)+,d3 move.b (a3)+,d4 move.b d3,d7 lsr.b #4,d7 move.b d1iot(&,d2 and #1,d2 beq.s np_loop2 moveq #$10,d2 np_loop2: lea np_data-8,a3 or.b d7,d2 bne.s np_loop3 move.b 1(a2),d2 lsl #4,d2 add d2,a3 bra.s np_loop4 np_loop3: move.b d2,1(a2) lsl #4,d2 add d2,a3 move 6(a3),4(a2) np_loop4: and #$f,d3 move.b d3,2(a2) move.b d4,3(a2) and #$fe,d1 beq.s np_loop5 move np_periods-2(pc,d1.w),d7 subq #3,d3 beq np_setport subq #2,d3 beq np_setport or d0,d5 move.b d1,(a2) move.b d6,49(a2) move d7,24(a2) move.l (a3)+,(a4) move (iqNca3)+,4(a4) addq #2,a3 move.l (a3)+,72(a2) move (a3)+,76(a2) subq #6,d3 bmi.s np_loop6 add d3,d3 add d3,d3 move.l 42(a6,d3.w),a3 jmp (a3) np_loop5: sub #11,d3 bmi.s np_loop6 add d3,d3 add d3,d3 move.l 42(a6,d3.w),a3 jmp (a3) np_periods: dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a dc.w $01fc,$01e0,$01c5,$01ac,$0194,$017d,$0168,$0153,$0140 dc.w $012e,$011d,$010d,$00fe,$00f0,$00e2,$00d6,$00ca,$00be dc.w $00b4,$00aa,$00a0,$0097,$008f,$0087,$007f,$0078,H㟣brvixs{B] Amiga DemosB]=TDOSigfZ$0071 np_loop6: move 24(a2),6(a4) np_loop7: move 4(a2),8(a4) addq #6,a2 sub #$10,a4 lsr #1,d0 bne np_loop1 move d5,$dff096 move.b d5,5(a6) move.b 1(a6),(a6) move.l #np_irq1,$78.w move.b #$19,$bfde00 move.l np_position(pc),a0 bset #0,2(a6) beq.s np_break addq #3,8(a6) cmp #192,8(a6) bne.s np_next np_break: move d6,8(a6) addq #2,6(a6) move 6(a6),d0 cmp -4(a0),d0 bne.s np_next move -2(a0),6(a6) np_next:rts np_setvol: move.b d4,5(a2) bra.s np_loop6 np_pattbrry~B\cps|B\sptu\u =T EDIT-BACKUPuence{t -*^df0:demo vwnwB\boot.txtpvH Where Amiga Memories Live On __ _____ (__) / _ \ _____ __ _________ / /_\ \ / \| |/ ___\__ \ / | \ Y Y \ / /_/ > __ \_ \____|__ /__|_| /__\___ (____ / xw_devspyz7zB\clsry|5 ?g $<Lv`$<Mv,yC@pN*@N"N"MNbpNudos.library Parameters are not required   / \| |/ ___\__ \ | | \| | _/ / | \ Y Y \ / /_/ > __ \_| ` \ | \ \____|__ /__|_| /__\___ (____ /_______ /______ / \/ \/ /_____/ \/ \/ \/ http{KtB\ JTp|}u> };B\startup-sequences|;ydf0:c/border on df0:c/climaxx -c -t df0:boot.txt df0:demo df0:demo  ;fontsp~7tB\borderr~HzHHI&TNJg,$! !N. n (gB" & @I<(X/BrQ >D@ Ư!RC":c4@g=3sUE_(ր`J`J7BkpS ЃaZ,o>܄U!H mp9Q>h@9*k7QGB G dmTQ ҫۮ[$E[5:!{a+Pă[Oҥ`*t4e$#> OJo"=@a1ܩ)7-$Ĥ@Z*1'ػ;/=I8 B[_`F<Brp;(uT{Ch9>6- F9X@#~lTNa"2S|w1 yd Qd=qh3a'1p@4Ґ $a*GB*1 p0p$0pI(40k 49@oyfMg\Al1 FF43xL3< <&͆o iac%yΆ>rJFOfLf90Mh1@ɋ|  IcE9BNo8ÙeQΆmq 'N8 SԹ[)tļ2@n䅽FxI)ɨ!Ii|%|HDR)Hћl:A9AІ@ZJ p_B\htyper ,`mmNUH720|&P~Cp$,KN$@ J gprAQA"M$v,JN+@JfN|"$N&`N+@ <rHA,KNT+@Jf,JN|"$N&`nr @1|!| m+A+A+HgR mHHHg@phfp+@`pnfp+@`(HH+@A"C$ ,JNF`zJgzJgSJjAn~+H`zA+m~+HJfd"m Y+H+I gPB"$-,JNJg*N|.ptЀf~+mAB"C$ NF`~Jf"m i"(,JN m+@"$<N+@-N|."-NJf m+HA"C$ NF` -g8Jf2"$<N+@JfN|.+mA"C$ NF`Z -g"N "- Ja.Jg "-,JN"-,JNBJf"-NJgN|.ptЀf~"-,JN` -g"A$,JNF`Jgm "t,JN& 0f~`~ -g",JN -g",JN"m,KNN"-,JN"J,KNb`0|"P ipz!@ LLN]Nudos.libraryFROM/A/M,TO/K,OPT/K,HEX/S,NUMBER/S$VER: type 37.2 (21.1.91) Option '%lc' ignored Type can't do both HEX and NUMBER 2No files to type TYPE can't open %s 0123456789ABCDEF%04lx: %s %5ld %sNUH72.,&Hp*+@",KN+@Rg2JfJf p m,zN8A`\9fNuRaC  gfBA"$<A",zhN+@g"tvN"-tvN+@ g,r,xN:+@g"-$-&- ,z N mB0"-,z NJg(Aca maAXa"m - ,xN.Nu m"h. iX (g"|0) 2) i,zN,zNNuJxgNur < ,xN: @(@C0< QNAp0RB RԈJfR RԈ 0fC,xNhr&Ё @"PrA 3@H@2B97A!xNuH瀀AHpR(T( V(X( Q9L3 Nsgraphics.library"<,xxN(N:JfNu  gSNu zg" -ff ( gJ(f NupNu"$vRJf,z0NAC!IC!I,xN+@pN+@C#mx;|"m) fJ iCg>EL" C8#A #AE#Jr#AE| #@(NAN+m -N -Nu1mCLIMax v1.0 0m33mby RIFF RAFF of UNITED FORCES 0mUsage: CLIMax [options] Options... -f Fullsize, -b Borderless, -c Clear window, -a Add21k, -t Type text, -s CLI Stars -n No Fastmem, -w Wait for mouse 0 p ptj borderrۤxsystem-configurationx p9y||x|ni`@ " ,EpsonX[CBM_MPS-1250]P BB\ >devspv; \/ \/ /_____/ \/DB https://AmigaDB.net --- YOUR PORTAL TO AMIGA HISTORY --- bwB\ jsystem-configurationxiS[eak: move d6,2(a6) bra.s np_loop6 np_songjmp: move d6,2(a6) move.b d4,7(a6) bra.s np_loop6 np_setspeed: move.b d4,1(a6) bra np_loop6 np_filter: and.b #$fd,$bfe001 or.b d4,$bfe001 bra np_loop6 np_setport: move.b d6,50(a2) move d7,26(a2) cmp 24(a2),d7 beq.s np_clrport bge np_loop7 move.b #1,50(a2) bra np_loop7 np_clrport: move d6,26(a2) bra np_loop7 np_nonew: lea np_voidat1(pc),a0 moveq #3,d0 np_lop1:moveq #0,d1 move.b 2(a0),d1 beq.s np_lop2 subq #8,d1 bhii $x.s np_lop2 addq #7,d1 add d1,d1 add d1,d1 move.l 10(a6,d1.w),a3 jmp (a3) np_lop2:addq #6,a0 sub #$10,a4 dbf d0,np_lop1 rts np_portup: moveq #0,d2 move.b 3(a0),d2 sub d2,24(a0) cmp #$71,24(a0) bpl.s np_portup2 move #$71,24(a0) np_portup2: move 24(a0),6(a4) bra.s np_lop2 np_portdown: moveq #0,d2 move.b 3(a0),d2 add d2,24(a0) cmp #$358,24(a0) bmi.s np_portdown2 move #$358,24(a0) np_portdown2: move 24(a0),6(a4) bra.s np_lop2 np_arp: moveq #0,d2 move.b (a6),d2 i h sub.b 1(a6),d2 neg.b d2 move.b np_arplist(pc,d2.w),d2 beq.s np_arp0 subq.b #2,d2 beq.s np_arp2 np_arp1:move.b 3(a0),d2 lsr #3,d2 and #$e,d2 bra.s np_arp3 np_arp2:move.b 3(a0),d2 and #$f,d2 add d2,d2 np_arp3:add.b (a0),d2 cmp #$48,d2 bls.s np_arp4 moveq #$48,d2 np_arp4:lea np_periods-2(pc),a3 move (a3,d2.w),6(a4) bra np_lop2 np_arp0:move 24(a0),6(a4) bra np_lop2 np_arplist: dc.b 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1 np_sin: dc.b $00,$18,$31i ;,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18 np_vib: move.b 3(a0),d3 beq.s np_vib2 move.b d3,48(a0) np_vib2: move.b 49(a0),d3 lsr.b #2,d3 and #$1f,d3 moveq #0,d2 move.b np_sin(pc,d3.w),d2 move.b 48(a0),d3 and #$f,d3 mulu d3,d2 lsr #7,d2 move 24(a0),d3 tst.b 49(a0) bmi.s np_vibsub add d2,d3 bra.s np_vib3 np_vibsub: sub d2,d3 np_vib3:move d3,6(a4) move.b 48(a0),d3 lsr.b #2,d3 and #$3c,d3 i x add.b d3,49(a0) cmp.b #20,d1 bne np_lop2 np_volslide: move.b 3(a0),d2 add.b d2,5(a0) bmi.s np_vol3 cmp.b #$40,5(a0) bmi.s np_vol2 move #$40,4(a0) np_vol2:move 4(a0),8(a4) bra np_lop2 np_vol3:move d6,4(a0) move 4(a0),8(a4) bra np_lop2 np_port:move.b 3(a0),d2 beq.s np_port2 move.b d2,29(a0) np_port2: move 26(a0),d2 beq.s np_rts move 28(a0),d3 tst.b 50(a0) bne.s np_sub add d3,24(a0) cmp 24(a0),d2 bgt.s np_portok move d2,24(a0) move d6,26(a0) np_portok: move i  rn24(a0),6(a4) np_rts: cmp.b #16,d1 beq.s np_volslide bra np_lop2 np_sub: sub d3,24(a0) cmp 24(a0),d2 blt.s np_portok move d2,24(a0) move d6,26(a0) move 24(a0),6(a4) cmp.b #16,d1 beq np_volslide bra np_lop2 np_irq1:tst.b $bfdd00 move.b #$19,$bfde00 move.l #np_irq2,$78.w move np_block+4(pc),$dff096 move #$2000,$dff09c rte np_irq2:tst.b $bfdd00 move.l a6,-(sp) lea np_voidat2(pc),a6 move.l (a6)+,$dff0d0 move (a6)+,$dff0d4 move.l (a6)+,$dff0c0 move (a6)+,$dff0c4 moi&Jve.l (a6)+,$dff0b0 move (a6)+,$dff0b4 move.l (a6)+,$dff0a0 move (a6)+,$dff0a4 move #$2000,$dff09c move.l np_oldirq(pc),$78.w move.l (sp)+,a6 rte np_position: dc.l 0 np_pattern: dc.l 0 np_voice: dc.l 0 np_oldirq: dc.l 0 np_block: blk.w 31,0 np_voidat1: blk.l 18,0 np_voidat2: blk.l 6,0 8ҳB]NP.txtp=", NoisePacker V2.01 1990 Twins of Phenomena --------------------------------------------- In this version some bugs are fixed. NP compiles your NT modules. NPs replay-routine is faster than NTs fastreplay-routine. USAGE: When NP asks for "Module to Load:" Just type the module to load. If the module doesnt exists, NP will search for "MOD.". And if that module doesnt exists either, NP search for "MODULES/MOD.". And if that module didnt exist, Youll haIҡve unlimited chances to spell it right. Just press return to exit NP. Then.. NP will ask for "Module to Save:" If you just press return, NP saves the module with the same filename as "Module to Load:" Otherwise. Just type the name you want the module to be saved as. If anything goes wrong NP exits with "ERROR." If everything goes great NP exits with "OK." Now.. place the replay-routine in your source. In the Init-routine type "bsr np_init" In the Exit-routine type "bsr np_end" ThdGen jump to "np_music" every verticalblanking. If you find any bugs then contact Phenomena. Enjoy this program !!!!!! Competition is none ------------------- NP = NoisePacker V2.01 NT = NoiseTracker V1.1 / V2.0 n) B] NPReplay2.spG^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * NoisePacker V2.01 PlayRoutine 1990 Twins of Phenomena. * * You must always have $dff000 in a5 to use this routine. * * Used registers are d0-d7/a0-a6. It use lev6irq. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * np_data=$60000 np_init: lea np_data,a4 lea np_position(pc),a6 moveq #2,d0 moveq #0,d1 move.l a4,a3 np_init1: add (a4)+,a3 move.l a3,(a6)+ dbf d0,np_init1 move (a4)+,d0 add.l d0,a3 move.l $78.w,(a6)+ move.l #$01060100,(a6)+ move #$8200,(a6)+ move.l d1,(a6)+ move.l #np_portup,(a6)+ move.l #np_portdown,(a6)+ move.l #np_port,(a6)+ move.l #np_vib,(a6)+ move.l #np_port2,(a6)+ move.l #np_vib2,(a6)+ move.l #np_volslide,(a6)+ move.l #np_arp,(a6)+ move.l #np_songjmp,(a6)+ move.l #np_setvol,(a6)+ move.l #np_pattbreak,(a6)+ move.l #np_filter,(a6)+ move.l #np_setspeed,(a6)+ moveq #0,d0 move.l a4,a6 add -8(a4),a6 sub #12,a6 np_init2: move.l a3,(aj#4) move.l a3,a2 move 14(a4),d0 add d0,d0 add.l d0,a2 move.l a2,8(a4) move 4(a4),d0 add d0,d0 add.l d0,a3 add #16,a4 cmp.l a4,a6 bne.s np_init2 bset #1,$bfe001 move d1,$a8(a5) move d1,$b8(a5) move d1,$c8(a5) move d1,$d8(a5) lea $bfd000,a0 move.b #$7d,$d00(a0) move.b d1,$e00(a0) move.b d1,$400(a0) move.b #$02,$500(a0) move.b #$81,$d00(a0) move #$2000,$9c(a5) move #$e000,$9a(a5) rts np_end: moveq #0,d0 move d0,$a8(a5) move d0,$b8(a5) move d0,$c8(a5) movez  d0,$d8(a5) bclr #1,$bfe001 move #$f,$96(a5) move #$2000,$9a(a5) move.l np_oldirq(pc),$78.w rts np_music: moveq #0,d6 lea $d0(a5),a4 lea np_block(pc),a6 subq.b #1,(a6) bhi np_nonew lea np_position(pc),a3 move.l (a3)+,a0 add 6(a6),a0 move (a0),d0 move.l (a3)+,a0 add d0,a0 move.l (a3)+,a1 add 8(a6),a1 lea np_voidat1(pc),a2 moveq #8,d0 moveq #0,d5 np_loop1: moveq #0,d1 move (a0)+,d1 lea (a1,d1.l),a3 move.b (a3)+,d1 move.b (a3)+,d3 move.b (a3)+,d4 move.b dZaE3,d7 lsr.b #4,d7 move.b d1,d2 and #1,d2 beq.s np_loop2 moveq #$10,d2 np_loop2: lea np_data-8,a3 or.b d7,d2 bne.s np_loop3 move.b 1(a2),d2 lsl #4,d2 add d2,a3 bra.s np_loop4 np_loop3: move.b d2,1(a2) lsl #4,d2 add d2,a3 move 6(a3),4(a2) np_loop4: and #$f,d3 move.b d3,2(a2) move.b d4,3(a2) and #$fe,d1 beq.s np_loop5 move np_periods-2(pc,d1.w),d7 subq #3,d3 beq np_setport subq #2,d3 beq np_setport or d0,d5 move.b d1,(a2) move.b d6,49(a2) move d7,24(a2)2lE move.l (a3)+,(a4) move (a3)+,4(a4) addq #2,a3 move.l (a3)+,72(a2) move (a3)+,76(a2) subq #6,d3 bmi.s np_loop6 add d3,d3 add d3,d3 move.l 42(a6,d3.w),a3 jmp (a3) np_loop5: sub #11,d3 bmi.s np_loop6 add d3,d3 add d3,d3 move.l 42(a6,d3.w),a3 jmp (a3) np_periods: dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a dc.w $01fc,$01e0,$01c5,$01ac,$0194,$017d,$0168,$0153,$0140 dc.w $012e,$011d,$010d,$00fe,$00f0,$00e2,$00d6,$00ca,$00be dc.w $00b4,$00aa,$00a0,$0[=K097,$008f,$0087,$007f,$0078,$0071 np_loop6: move 24(a2),6(a4) np_loop7: move 4(a2),8(a4) addq #6,a2 sub #$10,a4 lsr #1,d0 bne np_loop1 move d5,$96(a5) move.b d5,5(a6) move.b 1(a6),(a6) move.l #np_irq1,$78.w move.b #$19,$bfde00 move.l np_position(pc),a0 bset #0,2(a6) beq.s np_break addq #3,8(a6) cmp #192,8(a6) bne.s np_next np_break: move d6,8(a6) addq #2,6(a6) move 6(a6),d0 cmp -4(a0),d0 bne.s np_next move -2(a0),6(a6) np_next:rts np_setvol: move.b d4,5(a2) bra.s np_loop6 np_pattbreak: move d6,2(a6) bra.s np_loop6 np_songjmp: move d6,2(a6) move.b d4,7(a6) bra.s np_loop6 np_setspeed: move.b d4,1(a6) bra np_loop6 np_filter: and.b #$fd,$bfe001 or.b d4,$bfe001 bra np_loop6 np_setport: move.b d6,50(a2) move d7,26(a2) cmp 24(a2),d7 beq.s np_clrport bge np_loop7 move.b #1,50(a2) bra np_loop7 np_clrport: move d6,26(a2) bra np_loop7 np_nonew: lea np_voidat1(pc),a0 moveq #3,d0 np_lop1:moveq #0,d1 move.b 2(a0),d1 be [q.s np_lop2 subq #8,d1 bhi.s np_lop2 addq #7,d1 add d1,d1 add d1,d1 move.l 10(a6,d1.w),a3 jmp (a3) np_lop2:addq #6,a0 sub #$10,a4 dbf d0,np_lop1 rts np_portup: moveq #0,d2 move.b 3(a0),d2 sub d2,24(a0) cmp #$71,24(a0) bpl.s np_portup2 move #$71,24(a0) np_portup2: move 24(a0),6(a4) bra.s np_lop2 np_portdown: moveq #0,d2 move.b 3(a0),d2 add d2,24(a0) cmp #$358,24(a0) bmi.s np_portdown2 move #$358,24(a0) np_portdown2: move 24(a0),6(a4) bra.s np_lop2 np_arp:  {Z jmoveq #0,d2 move.b (a6),d2 sub.b 1(a6),d2 neg.b d2 move.b np_arplist(pc,d2.w),d2 beq.s np_arp0 subq.b #2,d2 beq.s np_arp2 np_arp1:move.b 3(a0),d2 lsr #3,d2 and #$e,d2 bra.s np_arp3 np_arp2:move.b 3(a0),d2 and #$f,d2 add d2,d2 np_arp3:add.b (a0),d2 cmp #$48,d2 bls.s np_arp4 moveq #$48,d2 np_arp4:lea np_periods-2(pc),a3 move (a3,d2.w),6(a4) bra np_lop2 np_arp0:move 24(a0),6(a4) bra np_lop2 np_arplist: dc.b 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0 ~,1 np_sin: dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18 np_vib: move.b 3(a0),d3 beq.s np_vib2 move.b d3,48(a0) np_vib2: move.b 49(a0),d3 lsr.b #2,d3 and #$1f,d3 moveq #0,d2 move.b np_sin(pc,d3.w),d2 move.b 48(a0),d3 and #$f,d3 mulu d3,d2 lsr #7,d2 move 24(a0),d3 tst.b 49(a0) bmi.s np_vibsub add d2,d3 bra.s np_vib3 np_vibsub: sub d2,d3 np_vib3:move d3,6(a4) move.b 48(a0),d 23 lsr.b #2,d3 and #$3c,d3 add.b d3,49(a0) cmp.b #20,d1 bne np_lop2 np_volslide: move.b 3(a0),d2 add.b d2,5(a0) bmi.s np_vol3 cmp.b #$40,5(a0) bmi.s np_vol2 move #$40,4(a0) np_vol2:move 4(a0),8(a4) bra np_lop2 np_vol3:move d6,4(a0) move 4(a0),8(a4) bra np_lop2 np_port:move.b 3(a0),d2 beq.s np_port2 move.b d2,29(a0) np_port2: move 26(a0),d2 beq.s np_rts move 28(a0),d3 tst.b 50(a0) bne.s np_sub add d3,24(a0) cmp 24(a0),d2 bgt.s np_portok move d2,24(a0) move xI d6,26(a0) np_portok: move 24(a0),6(a4) np_rts: cmp.b #16,d1 beq.s np_volslide bra np_lop2 np_sub: sub d3,24(a0) cmp 24(a0),d2 blt.s np_portok move d2,24(a0) move d6,26(a0) move 24(a0),6(a4) cmp.b #16,d1 beq np_volslide bra np_lop2 np_irq1:tst.b $bfdd00 move.b #$19,$bfde00 move.l #np_irq2,$78.w move np_block+4(pc),$96(a5) move #$2000,$9c(a5) rte np_irq2:tst.b $bfdd00 move.l a6,-(sp) lea np_voidat2(pc),a6 move.l (a6)+,$d0(a5) move (a6)+,$d4(a5) move.l (a6)+,$c0BaT(a5) move (a6)+,$c4(a5) move.l (a6)+,$b0(a5) move (a6)+,$b4(a5) move.l (a6)+,$a0(a5) move (a6)+,$a4(a5) move #$2000,$9c(a5) move.l np_oldirq(pc),$78.w move.l (sp)+,a6 rte np_position: dc.l 0 np_pattern: dc.l 0 np_voice: dc.l 0 np_oldirq: dc.l 0 np_block: blk.w 31,0 np_voidat1: blk.l 18,0 np_voidat2: blk.l 6,0 b(r? TC A# ^C*A-rms srjs srgssrhs srks srlrMrsrJrsrGrsrHrsrKrsrLr p p p rB rBsBq r rp rrr qmq B*NLGG*GGAG(GCAAC!A$AC*A- hdqqA qApfpA DZAZANC`AcAWCiAlA`CrAuqABBGrAJ erAd   BDBA A$A A*AA0AD6B6DEjzOAFAMWAT!A[eAb/AisAp=AwA~KAAYA`*jzAA pAAAA.jzA%A AAA1AAAA=A$AA*AIA0AAAAjz>b*A}#'%-75=GEMWU"]ge2mwuB}LT\drooAA A AAAAAAA"A%A(A+A.A1A4A7A:A=A@ACAFAIALAOARAUAXA[A^AaAdAgAjAmApAsAvAyA|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA  !%b+5)oo1A AAAAAAA A#A&A)A,A/A2A5A8A;A>AAADAGAJAMAPASAVAYA\A_AbAeAhAkAnAqAtAwAzA}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA "&*.26:>BFJNRVZ^bfjnoovA AAAAAAA A#A&A)A,A/A2A5A8A;A>AAADAGAJAMAPASAVAYA\A_AbooAiAlAoArAuAb,:xA{A~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuy}ooA AAAAAAA A#A&A)A,A/A2A5A8A;A>AAADAGAJAMAPASAVAYA\A_AbAeAhAkAnAqAtAwAzA}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAob-jqoA AAAAAAA A#A&A)A,A/A2A5A8A;A>AAADAGAJAMAPASAVAYA\A_AbAeAhAkAnAqAtAwAzA}AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA  !%)-159ooAA AAAAAAA A#A&A)A,A/A2A5A8A;A>AAADAGAJAMAPASAVAYA\A_AbAeAhAkAnAqAtAwAzAb.}AAAAAAAAAAAAAAAAAAAAAAAAxph`XPH@80(  |xtplhd`\XTPLHD@<840,($  fF&x=Ybnty{{zwtoic\RI?&ɕ %).3>V~obVJ>3'ϳxS\jw{uod]YRHA<5.(" dCt}sldYSKG=9/+% b/k63cm{|voiaZQLE<5+)# 7 666644;;~~~vvv;; <88>888888888888888>|x8|xb3Lx>* >>>**~~~ <88>> 888ppp```~<vvv~~~~~~vvv~<< <<b4;<|||~|<nnn888vvv~~~~|<vvv vvv~||pp0pppvvv~~~~~>ppp~||vvv~||~>ppp~||vvvvvv~<<~~>fff 888888~<vvv~<<vvvvvv~<<b5~<vvv~>>vvv~||  <88888ppp888>>>>>>>>>>>pp0888888ppp~|<vvv><<888888b6{~<vvvvvv~~~~>;;;?>>;;;{{{~~~>pppppppppppp??~>;;;;;;;;;{{{~~~>pppxxxpppppp???888888<<<xxxxxxxxx~>ppppppwwwwww??vv6vvb7ưvvvv~~~ <<<<<<<<<~~vv6vvv|||vvvpp0pppppppppppp??~~|<vvvvvvvvv~<vvvvvvvvvvvv~<<b8.?>;;;?>>xxxxxxxxx~<vvvvvvpppvvv~>>~|<vvv~||?888?{{{~~?<<<<<<<<<vv6vvvvvvvvvvvv~<<vv6vvvvvvvvv444cb9)K~~vv6vvv<<<vvv{{;{{{>>>?ogg<<<{ss? s??b:h0o??o7?hpx|;?~?b;q/??}|??}???w?q q0s8>~>?q?~}???w?b<V{wx :|v7{ww/7&4=?4=^)7?ǘE7˿i[b=<?<??~?o?x1sv?~???1?Ӡ_w=p[/=Po}/0t_o ?b>²)I_`*/ _  ;Jt Jw저_TW-zLz@*o b?X!H!c$B??g@0b@ww@@@@@@@@bA@@@@@@bBƎ@@@@bC{-@@@@@@bD z?????????bEWlbFbGbHbIbJbKbLbM bN bO bPbQbRbSbT bUbV bWbX bYbZb[b\b]b^b_b`babbbcbdbebf;6x8xxd =04B4 4=0bgl`