; The Paralax distorter by Gunstick from Unlimited Matricks parallax equ 0 parallay equ 10 bus equ 10 digitest equ 10 ; config: def_version equ 10 d0_for_mcp equ 0 mcp_adr equ $500 keyboard set 10 test equ 10 ifeq def_version opt d- org $2500 keyboard set 0 endc section text ifne def_version pea start(pc) move.w #38,-(sp) trap #14 addq.l #6,sp clr.w -(sp) trap #1 endc start: lea oldcpu(pc),a0 move.l sp,(a0)+ lea my_stack,sp move.w sr,(a0)+ move.w #$2700,sr move.l usp,a1 move.l a1,(a0)+ ifne def_version moveq #$12,d0 bsr ikbd_wrt moveq #$1a,d0 bsr ikbd_wrt move.l $408.w,old_408 move.l #exit_with_408,$408.w endc lea oldvideo(pc),a0 move.b $ffff8260.w,(a0)+ move.b $ffff820a.w,(a0)+ move.l $ffff8200.w,(a0)+ movem.l $ffff8240.w,d0-d7 movem.l d0-d7,(a0) movem.l black(pc),d0-d7 movem.l d0-d7,$ffff8240.w lea oldvectors(pc),a0 move.l $68.w,(a0)+ move.l $70.w,(a0)+ move.l $114.w,(a0)+ move.l $118.w,(a0)+ move.l $120.w,(a0)+ move.l $134.w,(a0)+ move.l #nix,$68.w move.l #nix,$70.w move.l #nix,$114.w ifeq keyboard move.l #nix,$118.w endc move.l #nix,$120.w move.l #nix,$134.w lea oldmfp(pc),a0 move.b $fffffa07.w,(a0)+ move.b $fffffa09.w,(a0)+ move.b $fffffa13.w,(a0)+ move.b $fffffa15.w,(a0)+ move.b $fffffa17.w,(a0)+ move.b $fffffa19.w,(a0)+ move.b $fffffa1b.w,(a0)+ move.b $fffffa1d.w,(a0)+ bclr #3,$fffffa17.w clr.b $fffffa07.w ifeq keyboard clr.b $fffffa09.w endc ifne keyboard move.b #%01000000,$fffffa09.w endc bsr waitvbl1 move.b #0,$ffff8260.w move.b #2,$ffff820a.w bsr psginit2 bsr mfp_test jmp screen back: lea my_stack,sp bsr psginit lea oldmfp(pc),a0 move.b (a0)+,$fffffa07.w move.b (a0)+,$fffffa09.w move.b (a0)+,$fffffa13.w move.b (a0)+,$fffffa15.w move.b (a0)+,$fffffa17.w move.b (a0)+,$fffffa19.w move.b (a0)+,$fffffa1b.w move.b (a0)+,$fffffa1d.w lea oldvectors(pc),a0 move.l (a0)+,$68.w move.l (a0)+,$70.w move.l (a0)+,$114.w move.l (a0)+,$118.w move.l (a0)+,$120.w move.l (a0)+,$134.w move.b #2,$ffff820a.w bsr.s waitvbl1 move.b #0,$ffff820a.w bsr.s waitvbl1 move.b #2,$ffff820a.w bsr.s waitvbl1 lea oldvideo(pc),a0 move.b (a0)+,$ffff8260.w move.b (a0)+,$ffff820a.w move.l (a0)+,$ffff8200.w movem.l (a0),d0-d7 movem.l d0-d7,$ffff8240.w ifne def_version moveq #$14,d0 bsr.s ikbd_wrt moveq #$8,d0 bsr.s ikbd_wrt endc lea oldcpu(pc),a0 move.l (a0)+,sp move.w (a0)+,sr move.l (a0)+,a1 move.l a1,usp ifne def_version move.l old_408(pc),$408.w rts endc ifeq def_version moveq #d0_for_mcp,d0 jsr mcp_adr+0.w endc psginit: moveq #10,d0 lea $ffff8800.w,a0 nextinit: move.b d0,(a0) move.b #0,2(a0) dbf d0,nextinit move.b #7,(a0) move.b #$7f,2(a0) move.b #14,(a0) move.b #$26,2(a0) rts waitvbl1: move.w #9000,d0 waitvbl2: dbf d0,waitvbl2 waitvbl: lea $ffff8209.w,a0 movep.w -8(a0),d0 waitvbl3: tst.b (a0) bne.s waitvbl3 movep.w -4(a0),d1 cmp.w d0,d1 bne.s waitvbl3 rts psginit2: moveq #15,d0 lea $ffff8800.w,a0 lea psginittab,a1 nextinit2: move.b (a1)+,(a0) move.b (a1)+,2(a0) dbf d0,nextinit2 rts ikbd_wrt: lea $fffffc00.w,a0 ik_wait: move.b (a0),d1 btst #1,d1 beq.s ik_wait move.b d0,2(a0) rts mfp_test: move.w #$2700,sr bsr.s waitvbl bsr.s waitvbl move.b #0,$fffffa19.w move.b #255,$fffffa1f.w move.b #$20,$fffffa07.w move.b #0,$fffffa13.w moveq #30,d1 lea $ffff8209.w,a0 check_mfp_s1: move.b (a0),d0 beq.s check_mfp_s1 sub.w d0,d1 lsl.w d1,d1 move.b #0,$fffffa0b.w move.b #1,$fffffa19.w moveq #-1,d0 mfp_test_loop: dbf d0,mfp_test_loop moveq #0,d0 move.b $fffffa1f.w,d0 move.b #0,$fffffa19.w cmp.w #$9b,d0 ble.s mfp_of_my_st move.w #-1,mfp_type mfp_of_my_st: rts ifne def_version dc.l 'XBRA' dc.l 'TFSY' old_408: dc.l 0 exit_with_408: lea my_stack,sp jsr myexit move.l old_408(pc),a0 jmp (a0) endc exit: move.l my_reset+2,$42a.w move.l $42a.w,my_reset+2 movem.l black(pc),d0-d7 movem.l d0-d7,$ffff8240.w bra back nix: rte oldcpu: ds.w 4 oldvideo: ds.w 19 oldvectors: ds.l 6 oldmfp: ds.w 5 mfp_type: ds.w 1 black: ds.l 16 **************************************************************** ;overscan:equ 0 ; Double Megadistorter by Gunstick (c) ULM 1990 ; we know! it's long, but it works ! And it's from ULM !!! ; dc.w $c8*4 ; dc.w 138*4 dc.w 195*4 ; dc.w 167*4 ; dc.w 197*4 ; dc.w 167*4 ; dc.w 255*4 dc.w 128*4 digisound: ; incbin "includes\telgraph.dmn" ; incbin "includes\jasy75.dmn" ; incbin "includes\senn_l1.dmn" ; incbin "includes\senn_l2.dmn" ; incbin "includes\luna.dmn" ; incbin "includes\luna2.dmn" ; incbin "includes\infinity.dmn" incbin "includes\you1.dmn" digiend: dc.w 159*4 digisound2: incbin "includes\you2.dmn" digiend2: even font: incbin "includes\font2.bin" even fontend: kotz: dc.l 0 noswreset: rts ;-------------------------------------------------------- calc_mdist MACRO move.w (a3)+,d6 sub.w (a4)+,d6 movem.l (a5,d6),d3/d4/d5/d6 ENDM do_mdist MACRO lea 64(a5),a5 move.b #1,$ffff8260.w ;GunsticK's right border end switch move.b #0,$ffff8260.w movem.l d3/d4/d5,$ffff8250.w ;mdist ; move.l buffer,buffer ; dcb 9,$4e71 move.b #2,$ffff8260.w ;Open left border move.b #0,$ffff8260.w move.l d6,$ffff825c.w ;mdist ; dcb 4,$4e71 ENDM calc_mdist2 MACRO move.w (a3)+,d6 sub.w (a4)+,d6 movem.l (a5,d6),d4/d5/d6/a2 ENDM do_mdist2 MACRO lea 64(a5),a5 move.b #1,$ffff8260.w ;GunsticK's right border end switch move.b #0,$ffff8260.w movem.l d4/d5/d6,$ffff8250.w ;mdist ; move.l buffer,buffer ; dcb 9,$4e71 move.b #2,$ffff8260.w ;Open left border move.b #0,$ffff8260.w move.l a2,$ffff825c.w ;mdist ; dcb 4,$4e71 ENDM calc_mdist02 MACRO move.w (a3)+,d6 sub.w (a4)+,d6 movem.l (a5,d6),d2/d4/d5/d6 ENDM do_mdist02 MACRO lea 64(a5),a5 move.b #1,$ffff8260.w ;GunsticK's right border end switch move.b #0,$ffff8260.w movem.l d2/d4/d5,$ffff8250.w ;mdist ; dcb 9,$4e71 move.b #2,$ffff8260.w ;Open left border move.b #0,$ffff8260.w move.l d6,$ffff825c.w ;mdist ; dcb 4,$4e71 ENDM dcb 17-1-11,$4e71 moveq #0,d7 ; megadistorter test ; lea 0(a0,d7),a0 movem.l (a0),d4/d5/d6/d7 digi1 MACRO ; not.w kotz ; bne.s *+4 ; illegal ifne digitest moveq #-1,d6 ;~1 move.b (a6),d6 ;~2 add.w d6,d6 ;~1 add.w (a7,d6),d7 ;~4 endc ifeq digitest move.w #$700,$ffff8240.w move.w #$200,$ffff8240.w endc andi.w #$ff*4,d7 ;~2 move.l (a7,d7),d6 movep.l d6,$ffff8800-512-downthere(a7) ;~7 ENDM digi2 MACRO ; not.w kotz ; beq.s *+4 ; illegal ifne digitest moveq #-1,d6 ;~1 move.b (a6)+,d6 ;~2 add.w d6,d6 ;~1 add.w 2(a7,d6),d7 ;~4 endc ifeq digitest move.w #$070,$ffff8240.w move.w #$020,$ffff8240.w endc andi.w #$ff*4,d7 ;~2 move.l (a7,d7),d6 ;~5 movep.l d6,$ffff8800-512-downthere(a7) ;~7 ENDM even screen: lea bss_start,a0 lea bss_end,a1 movem.l black,d1-d7/a2-a6 clear_loop: movem.l d1-d7/a2-a6,(a0) movem.l d1-d7/a2-a6,12*4(a0) movem.l d1-d7/a2-a6,24*4(a0) lea 36*4(a0),a0 cmp.l a0,a1 bpl.s clear_loop move.l #screenmem,d0 add.l #255,d0 and.l #$ffff00,d0 move.l d0,screenad ror.l #8,d0 lea $ffff8201.w,a0 movep.w d0,(a0) lea my_stack,sp jsr waitvbl ;free d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 -- -- -- a7 usp move sr,-(sp) move #$2700,sr move.l sp,stack tst.w mfp_type beq.s mfp_is_ok sub.w #54*2,other_mfp add.w #54*2,other_mfp2 mfp_is_ok: ifeq bus moveq #57,d0 lea endprg,a0 memtest: move.l #-1,(a0)+ dbf d0,memtest endc ;********************************************************** ; Distorted scroller by Gunstick ifeq 0;test lea buffer,a0 move.w #scrhigh-1,d0 ;init all linebuffers nextinitline: swap d0 move.w #15,d0 move.l #%01010101010101010011001100110011,d1 move.l #%00001111000011111111111111111111,d2 testinitbuff: move.l d1,d3 move.l d2,d4 move.l d1,d5 move.l d2,d6 move.l d1,d7 move.l d2,a1 move.l d1,a2 move.l d2,a3 move.l d1,a4 move.l d2,a5 movem.l d1-d7/a1-a5,(a0) lea 12*4(a0),a0 movem.l d1-d7/a1-a5,(a0) lea 12*4(a0),a0 movem.l d1-d7/a1-a5,(a0) lea 12*4(a0),a0 movem.l d1-d7/a1-a5,(a0) lea 12*4(a0),a0 movem.l d1-d4,(a0) lea 4*4(a0),a0 swap d1 rol.w d1 swap d1 rol.w d1 swap d2 rol.w d2 swap d2 rol.w d2 dbf d0,testinitbuff lea 12(a0),a0 ;jump datazone swap d0 dbf d0,nextinitline endc ;fill screen move.l #%01010101010101010011001100110011,d1 move.l #%00001111000011111111111111111111,d2 lea screenmem+40,a0 move.w #(5*4*15700)/230,d0 fillloop: move.w #25,d3 fillline: movem.l d1/d2,(a0) lea 8(a0),a0 dbf d3,fillline lea 22(a0),a0 dbf d0,fillloop lea linebuffbegin,a0 moveq #19,d0 ;20 lines are scrolled initdist: move.l #scrolltext,textptr-linebuffbegin(a0) move.l a0,a1 lea buffer-linebuffbegin(a1),a1 move.l a1,bufptr-linebuffbegin(a0) clr.w bufcnt-linebuffbegin(a0) clr.w shift-linebuffbegin(a0) lea linebuffend-linebuffbegin(a0),a0 dbf d0,initdist lea inwavetab,a0 move.l a0,wavetabptr move.l (a0),a0 move.l a0,distwaveptr move.l #disttable,disttableptr move.l #mdistadjust,mdistadjustptr move.l #mdistcurv,mdistcurvptr move.l #mwavetab,mnextcurv move.l mwavetab,mactcurv move.l #scrnadrs,nextscrn move.l scrnadrs,screenadr move.l #ecran-(15*230)+160*6,cpybufdest ; move.l #ecran-230*20,cpybufdest lea scrolltextend,a0 lea scrolltext+1-scrolltextend(a0),a1 moveq #40-1,d0 mkpanic: move.b -(a0),-(a1) dbf d0,mkpanic ;prepare digisound downthere equ $600 move.w #(256+512/4)-1,d0 lea domino,a0 lea downthere,a1 prepdigi: move.l (a0),d1 move.l (a1),(a0)+ move.l d1,(a1)+ dbf d0,prepdigi lea downthere+512,a7 lea digisound-2,a6 move.w (a6)+,d7 move.l a6,digiptr move.l $42a.w,my_reset+2 move.l #my_reset,$42a.w ifeq test lupo: move.w #74,d0 ll2: digi1 move.w #$070,$ffff8240.w dcb 512/2-22,$4e71 digi2 move.w #$700,$ffff8240.w dcb 512/2-22-3,$4e71 dbf d0,ll2 _digmod equ *+2 jmp _dig1 _dig1: cmp.l #digiend-75,a6 blo.s _digiok lea digisound2-2,a6 move.w (a6)+,d7 subq #1,digcount bhi.s _digiok move.w 2,digcount move.l #_dig2,_digmod bra.s _digiok _dig2: cmp.l #digiend2-75,a6 blo.s _digiok lea digisound-2,a6 subq #1,digcount bhi.s _digiok move.w (a6)+,d7 move.w 2,digcount move.l #_dig1,_digmod _digiok: move.w #$777,$ffff8240.w btst #0,$fffffc00.w beq lupo move.l a6,digiptr move.w #$707,$ffff8240.w bra kaka endc kaka: ;******************************************************** lea screenadr,a2 move.b $ffff8203.w,d0 lsl.w #8,d0 lea $ffff8207.w,a0 _no_vbl: movep.w 0(a0),d1 cmp.w d0,d1 bne.s _no_vbl move.w #4000,d0 firsttopwait: dbf d0,firsttopwait ;move.b #0,$ffff820a.w ;ULM Hardware Scrolling PART 1 ;THIS PART IS TO BE STARTED BEFORE THE BEGINNING OF THE VBL ;sets screen to adress contained in screenadr+(6 scanlines) lea screenadr,a2 ;~12 moveq #0,d1 ;~4 move.b 3(a2),d1 ;~12 move.w d1,d0 ;~4 add.w d1,d1 ;~4 add.w d0,d1 ;~4 add.w d1,d1 ;~4 add.w d1,d1 ;~4 *12 (24 byte per tabentry) lea $ffff8201.w,a1 ;~8 lea hwscrolldat,a0 ;~12 add.w d1,a0 ;~8 movep.w 1(a2),d1 ;~16 move.b 2(a2),d1 ;~12 move.b (a0)+,d0 ;~8 ext.w d0 ;~4 add.w d0,d1 ;~4 movep.w d1,0(a1) ;~16 move.l a0,tabentry-screenadr(a2) ;~16 save tablepos ;ULM Hardware Scrolling END OF PART 1 lea predigi,a6 lea mdistgraph,a5 move.w mbouncetab,d0 lsl.w #5,d0 add.w d0,a5 lea mdistadjust,a4 move.l mdistcurvptr,a3 looop: ; bsr waitvbl clr.w resync move.b $ffff8203.w,d0 lsl.w #8,d0 lea $ffff8207.w,a0 __no_vbl: movep.w 0(a0),d1 cmp.w d0,d1 bne.s __no_vbl movem.l black,d0-d6/a0 movem.l d0-d6/a0,$ffff8240.w ;blaf equ 174-55 blaf equ 174 move.w #1500-30,d0 opentopwait: dbra d0,opentopwait other_mfp: equ *+2 bra my_mfp dcb 55,$4e71 my_mfp: dcb 90+122-16-blaf,$4e71 loop: ifeq digitest move.w #$777,$ffff8240.w move.w #$333,$ffff8240.w nop nop endc ifne digitest move.l (a6)+,d1 ;~3 movep.l d1,$ffff8800-512-downthere(a7) ;~7 endc other_mfp2: equ *+2 bra my_mfp2 my_mfp2: dcb blaf-4-1-20-3+8,$4e71 move.w d7,digswitch movem.l hwpalette,d2-d7/a1-a2 move.l a1,usp lea $ffff8209.w,a1 moveq #10,d1 movea.l tabentry,a0 ;get back tablepos ifeq digitest move.w #$777,$ffff8240.w move.w #$333,$ffff8240.w nop nop endc ifne digitest move.l (a6)+,d0 ;~3 movep.l d0,$ffff8800-512-downthere(a7) ;~7 endc move.b #0,$ffff820a.w move.b #0,$fffffa19.w ;stop timer move.b #244,$fffffa1f.w ;244 asd equ 7 move.b #32,$fffffa07.w move.b #0,$fffffa0b.w ;clr pending move.b #2,$ffff820a.w ;ULM Hardware Scrolling PART 2 ;THIS PART IS TO BE STARTED BEFORE THE END OF THE VBL ;Sets colors to zero ;Sets screen to screenadr(+6 lines) ;Initializes colors with hwpalette ;Uses : d0-a3 sync: move.b (a1),d0 beq.s sync sub.w d0,d1 lsl.w d1,d1 moveq #5,d0 nop bra intoall switchloop: ; move.b #2,$ffff8260.w ;GunsticK's right border end switch ; move.b #0,$ffff8260.w tst.b (a0)+ bne.s links1 ; move.b #2,$ffff820a.w dcb 23,$4e71 bra.s cont1 links1: move.b #1,$ffff8260.w ;GunsticK's right border end switch move.b #0,$ffff8260.w ;links1: ; move.b #2,$ffff820a.w dcb 9,$4e71 move.b #2,$ffff8260.w move.b #0,$ffff8260.w cont1: dcb 28,$4e71 intoall: tst.b (a0)+ bne.s mitte dcb 6,$4e71 bra.s cont3 mitte: move.b #2,$ffff8260.w move.b #0,$ffff8260.w cont3: move.b #asd,$fffffa19.w ifeq digitest move.w #$777,$ffff8240.w move.w #$333,$ffff8240.w nop nop endc ifne digitest move.l (a6)+,d1 ;~3 movep.l d1,$ffff8800-512-downthere(a7) ;~7 endc dcb 28-10,$4e71 tst.b (a0)+ bne.s rechts1 tst.b (a0)+ bne.s rechts2 dcb 6,$4e71 bra.s cont4 rechts1: move.b #0,$ffff820a.w addq.w #1,a0 dcb 3,$4e71 bra.s cont4 rechts2: dcb 4,$4e71 move.b #0,$ffff820a.w cont4: move.b #2,$ffff820a.w dbra d0,switchloop ; move.b #2,$ffff820a.w ;HERE WE ARE SYNCHRON ;These lines are to be used if the screen uses left border move.l usp,a1 ;get back this color dcb 3,$4e71 move.b #1,$ffff8260.w ;GunsticK's right border end switch move.b #0,$ffff8260.w movem.l d2-d4,$ffff8240.w move.b #2,$ffff8260.w ;Open left border move.b #0,$ffff8260.w movem.l d5-d7/a1-a2,12+$ffff8240.w ;********************************************************** ; Distorted scroller by Gunstick ;INITIALISATIONS ;***** Calc next screenadress **** ;free: d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 -- -- -- -- a7 usp lea nextscrn,a2 ;~12 move.l (a2),a0 ;~20 move.l (a0)+,d0 ;~12 bne scrnok ;~12 lea scrnadrs-nextscrn(a2),a0 ;~12 move.l (a0)+,d0 ;~12 ; move.l #ecran-(20*230)+160*6,cpybufdest-nextscrn(a2);~24 dcb 6,$4e71 _scrnok: move.l d0,logbase-nextscrn(a2) ;~20 move.l a0,(a2) ;~20 ;do some hardwarebouncing move.l hwbounceptr-nextscrn(a2),a0 ;~20 move.w (a0)+,d1 ;~8 cmpi.w #-1,d1 bne.s hwbounceok ;~8 lea hwbouncetab-nextscrn(a2),a0 ;~8 move.w (a0)+,d1 ;~8 _hwbounceok: move.l a0,hwbounceptr-nextscrn(a2) ;~16 ext.l d1 ;~4 add.l d1,d0 ;~8 cheatit: ifne bus move.l d0,screenadr-nextscrn(a2);~16 endc ifeq bus clr.l d0 clr.l d0 endc ;free: d0-a7/usp addq.l #4,a6 ;no digi this line calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont6 scrnok: dcb 3-1+6,$4e71 bra _scrnok ;~12 hwbounceok: bra _hwbounceok ;~12 cont6: dcb 5-2,$4e71 do_mdist ;***** Do the 8 following distorter entrys **** ;; first copy the wave to the disttable ;Registerdefs: take care of the order. Modify also the addx.l !!!! d_0 equr d0 d_1 equr d1 d_2 equr d2 d_3 equr d3 a_0 equr a0 a_1 equr a1 a_2 equr a2 distspeed equ 5 disthigh equ 20 ;copy (disthigh-distspeed)/2 registers movem.l disttable+distspeed*2,d_0/d_1/d_2/d_3/a_0/a_1/a_2 ;copy disttab movem.l d_0/d_1/d_2/d_3/a_0/a_1/a_2,disttable move.l disttable+distspeed*2+7*4,disttable+7*4 dcb 25-5-10,$4e71 ifeq digitest move.w #$777,$ffff8240.w move.w #$333,$ffff8240.w nop nop endc ifne digitest move.l (a6)+,d6 ;~3 movep.l d6,$ffff8800-512-downthere(a7) ;~7 endc calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 6,$4e71 do_mdist move.w digswitch,d7 ; digi2 move.l a6,usp ;~1 move.l digiptr,a6 dcb 27-4-5-1,$4e71 lea disttable+disthigh*2-distspeed*2,a_1 ;position to write new move.l distwaveptr,a_0 ;position in the actual wave moveq #distspeed-1,d_0 ;read 8 moveq #0,d_3 move.w distcalc,d_2 distwaveread: ;free: d4-d5/usp dcb 25-10-2,$4e71 ; digi1 move.l usp,a2 ;~1 ifeq digitest move.w #$777,$ffff8240.w move.w #$333,$ffff8240.w nop nop endc ifne digitest move.l (a2)+,d6 ;~3 movep.l d6,$ffff8800-512-downthere(a7) ;~7 endc move.l a2,usp ;~1 calc_mdist2 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont notnextwavetab: ;~12 time adjust dcb 20,$4e71 bra.s _notnextwavetab ;~12 notendwavetab: ;~12 bra.s _notendwavetab ;~12 cont: move.w (a_0)+,d_1 ;~8 dcb 3-2,$4e71 do_mdist2 cmp.w #128,d_1 ;~8 bne.s notnextwavetab ;~8 move.l wavetabptr,a_2 ;~20 next wave to be read tst.l (a_2) ;~12 bne.s notendwavetab ;~8 lea wavetab,a_2 ;~12 reset wavetabptr nop _notendwavetab: move.l (a_2)+,a_0 ;~12 move.w (a_0)+,d_1 ;~12 move.l a_2,wavetabptr ;~20 _notnextwavetab: add.w d_1,d_3 ;~4 add.w d_1,d_2 ;~4 sub.w 16(a_1),d_2 ;~16 move.w d_1,16(a_1) ;~12 move.w d_2,(a_1)+ ;~8 write new curve dbf d_0,distwaveread ;~12/16 ;free: d1-d2/d4-d7/a0-a7/usp ; digi2 dcb 24-10-1-1,$4e71 move.l usp,a2 ;~1 ifeq digitest move.w #$777,$ffff8240.w move.w #$333,$ffff8240.w nop nop endc ifne digitest move.l (a2)+,d6 ;~3 movep.l d6,$ffff8800-512-downthere(a7) ;~7 endc move.l a2,usp calc_mdist2 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w move.l a_0,distwaveptr ;~20 dcb 3-2,$4e71 do_mdist2 move.w d_3,distcalc ;~16 scrhigh equ 20 fontpartlen equ (fontend-font)/scrhigh lea disttable+0,a_2 ;~12 scroll begins 18 lines before end of screen lea shift,a_0 ;~12 pointer to the shifts move.w #-(scrhigh*fontpartlen),count ;~20 -14400 distcalcloop: ;(~12) ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 move.w (a_2)+,d_1 ;~8 move.l a_2,usp dcb 4,$4e71 move.w (a_0),d_2 ;~8 ;read shift add.w d_1,d_2 ;~4 bmi rueckwaerts ;~12 sub.w #16,d_2 ;~8 bhs vorwaerts ;~12 add.w #16,d_2 ;~8 move.w d_2,(a_0) ;~8 ;write back new shift moveq #1,d_2 noshift: dcb 6-2-3,$4e71 ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 lea back1(pc),a1 ;2 digi1 jmp do_all ;3 do_all: calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 41,$4e71 dcb 25,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist jmp (a1) ;2 back1: dcb 41-2-2-3,$4e71 dcb 25-22,$4e71 lea back2(pc),a1 ;2 digi2 jmp do_all ;3 back2: dcb 41-4-2-2,$4e71 dbf d_2,noshift bra indistcalcloop+2 indistcalcloop: ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 dcb 25-22,$4e71 digi1 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 3,$4e71 move.l usp,a_2 lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line add.w #fontpartlen,count ;~4 bne distcalcloop2 ;~12 bra enddistcalc distcalcloop2: ;(~12) ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 move.w (a_2)+,d_1 ;~8 move.l a_2,usp dcb 4,$4e71 move.w (a_0),d_2 ;~8 ;read shift add.w d_1,d_2 ;~4 bmi rueckwaerts2 ;~12 sub.w #16,d_2 ;~8 bhs vorwaerts2 ;~12 add.w #16,d_2 ;~8 move.w d_2,(a_0) ;~8 ;write back new shift moveq #1,d_2 noshift2: dcb 6+22,$4e71 ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 41-2-3,$4e71 dcb 25-22,$4e71 lea back12(pc),a1 ;2 digi2 jmp do_all ;3 back12: dcb 41-2-2-3,$4e71 dcb 25-22,$4e71 lea back22(pc),a1 ;2 digi1 jmp do_all ;3 back22: dcb 41-2-2-3,$4e71 dcb 25-22,$4e71 lea back32(pc),a1 ;2 digi2 jmp do_all ;3 back32: dcb 41-2,$4e71 dcb 25-22,$4e71 digi1 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 41-2,$4e71 bra indistcalcloop2+2 indistcalcloop2: ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 dcb 25,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 3,$4e71 move.l usp,a_2 lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line add.w #fontpartlen,count ;~4 bne distcalcloop3 ;~12 bra enddistcalc distcalcloop3: ;(~12) ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 move.w (a_2)+,d_1 ;~8 move.l a_2,usp dcb 4,$4e71 move.w (a_0),d_2 ;~8 ;read shift add.w d_1,d_2 ;~4 bmi rueckwaerts3 ;~12 sub.w #16,d_2 ;~8 bhs vorwaerts3 ;~12 add.w #16,d_2 ;~8 move.w d_2,(a_0) ;~8 ;write back new shift moveq #1,d_2 noshift3: dcb 6-2-3,$4e71 ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 lea back13(pc),a1 ;2 digi2 jmp do_all ;3 back13: dcb 41-2-2-3,$4e71 dcb 25-22,$4e71 lea back23(pc),a1 ;2 digi1 jmp do_all ;3 back23: dcb 41-4-2-2,$4e71 dbf d_2,noshift3 bra indistcalcloop3+2 indistcalcloop3: ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 dcb 25-22,$4e71 digi2 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 3,$4e71 move.l usp,a_2 lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line add.w #fontpartlen,count ;~4 bne distcalcloop4 ;~12 bra enddistcalc distcalcloop4: ;(~12) ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 move.w (a_2)+,d_1 ;~8 move.l a_2,usp dcb 4,$4e71 move.w (a_0),d_2 ;~8 ;read shift add.w d_1,d_2 ;~4 bmi rueckwaerts4 ;~12 sub.w #16,d_2 ;~8 bhs vorwaerts4 ;~12 add.w #16,d_2 ;~8 move.w d_2,(a_0) ;~8 ;write back new shift moveq #1,d_2 noshift4: dcb 6+22,$4e71 ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 41-2-3,$4e71 dcb 25-22,$4e71 lea back14(pc),a1 ;2 digi1 jmp do_all ;3 back14: dcb 41-2-2-3,$4e71 dcb 25-22,$4e71 lea back24(pc),a1 ;2 digi2 jmp do_all ;3 back24: dcb 41-2-2-3,$4e71 dcb 25-22,$4e71 lea back34(pc),a1 ;2 digi1 jmp do_all ;3 back34: dcb 41-2,$4e71 dcb 25-22,$4e71 digi2 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 41-2,$4e71 bra indistcalcloop4+2 indistcalcloop4: ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 dcb 25,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist dcb 3,$4e71 move.l usp,a_2 lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line add.w #fontpartlen,count ;~4 bne distcalcloop ;~12 bra enddistcalc dcb 3,$4e71 enddistcalc: dcb 41-20+5-3,$4e71 ;free: d0-a7/usp dcb 25-22,$4e71 digi1 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist move.b #2,$ffff820a.w ;ULM Hardware Scrolling PART 1 ;THIS PART IS TO BE STARTED BEFORE THE BEGINNING OF THE VBL ;sets screen to adress contained in screenadr+(6 scanlines) lea screenadr,a_2 ;~12 moveq #0,d_1 ;~4 move.b 3(a_2),d_1 ;~12 move.w d_1,d_0 ;~4 add.w d_1,d_1 ;~4 add.w d_0,d_1 ;~4 add.w d_1,d_1 ;~4 add.w d_1,d_1 ;~4 *12 (24 byte per tabentry) lea $ffff8201.w,a_1 ;~8 lea hwscrolldat-screenadr(a_2),a_0 ;~8 add.w d_1,a_0 ;~8 movep.w 1(a_2),d_1 ;~16 move.b 2(a_2),d_1 ;~12 move.b (a_0)+,d_0 ;~8 ext.w d_0 ;~4 add.w d_0,d_1 ;~4 movep.w d_1,0(a_1) ;~16 move.l a_0,tabentry-screenadr(a_2) ;~16 save tablepos ;ULM Hardware Scrolling END OF PART 1 ; dcb 41-4-33,$4e71 dcb 25,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w ; move.b #$7,$ffff8240.w ; move.b #0,$ffff8240.w dcb 8-2,$4e71 do_mdist bra copydistscroll ;=-| read the new distortions and shift the buffers ;-> advance this line by one word vorwaerts: move.w d_2,(a_0) ;~8 write back new shift move.l textptr-shift(a_0),a_1 ;~16 dcb 2,$4e71 dcb 25-22,$4e71 digi1 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont2 nottextend: ;~12 addq.w #1,a_1 ;~8 bra _nottextend ;~12 cont2: dcb 5-2,$4e71 do_mdist ;movep : 5 nops weniger ;actual = if any bit of the letter appears in one buffer ; textptr ; | ;UNLIMITED MATRICKS a bit of C appears somewhere ;now we have to write a bit of K and C nop moveq #0,d_1 moveq #0,d_2 move.b (a_1),d_1 ;~8 previous letter : C move.b 1(a_1),d_2 ;~12 act letter : K tst.b 2(a_1) ;~12 test letter after act : S bne.s nottextend ;~8 lea scrolltext,a_1 ;~12 nop nop nop _nottextend: move.l a_1,textptr-shift(a_0) ;~16 textptr points to K ; clr.b d_1 ;~4 C dcb 6-2-2-2,$4e71 lsl.w #3,d_1 ;~8 ; clr.b d_2 ;~4 K lsl.w #3,d_2 ;~8 lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 C movem.l (a_1,d_2),d_1/d_3 ;~36 K move.w d_1,d_2 ;~4 move.w d_3,d_0 ;~4 swap d_0 ;~4 swap d_2 ;~4 move.l bufptr-shift(a_0),a_1 ;~16 move.w (a_2)+,d_0 ;~8 C move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 calc_mdist2 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist2 ;buffer gestion cmpi.w #25*4,bufcnt-shift(a_0) ;~16 blo.s vorbufok ;~8 clr.w bufcnt-shift(a_0) ;~16 screenwidth = 26 words subi.l #25*8,bufptr-shift(a_0) ;~20 bra.s vorbufnok ;~12 vorbufok: addq.w #4,bufcnt-shift(a_0) ;~16 addq.l #8,bufptr-shift(a_0) ;~16 dcb 9-5,$4e71 vorbufnok: dcb 5,$4e71 dcb 2,$4e71 call_shifter: incbin includes\shifter1.bin bra indistcalcloop ;~12 26 nops before right borde rueckwaerts: add.w #16,d_2 ;~8 move.w d_2,(a_0) ;~8 write back new shift dcb 2+7,$4e71 dcb 25-22,$4e71 digi1 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont5 rueckbufok: subq.l #8,bufptr-shift(a_0) ;~16 DCB 2,$4E71 bra.s _rueckbufok ;~12 cont5: dcb 5-2,$4e71 do_mdist subq.w #4,bufcnt-shift(a_0) ;~12 bhs.s rueckbufok ;~8 move.w #25*4,bufcnt-shift(a_0) ;~16 screenwidth = 26 words add.l #25*8,bufptr-shift(a_0) ;~32 _rueckbufok: move.l textptr-shift(a_0),a_1 ;~16 ;movep : 5 nops weniger ;actual = if any bit of the letter appears in one buffer ; textptr ; | | ;YEAH THIS IS UNLIMITED MATRICKS a bit of C appears somewhere ;a bit of A appears somewhere ;now we have to write a bit of E and A moveq #0,d_1 moveq #0,d_2 move.b -27(a_1),d_1 ;~12 previous letter : E move.b -26(a_1),d_2 ;~12 act letter : A lea -1(a_1),a_1 ;~8 move.l a_1,textptr-shift(a_0) ;~16 textptr points to I ; clr.b d_1 ;~4 E lsl.w #3,d_1 ;~8 dcb 7-2-2-2+2,$4e71 ; clr.b d_2 ;~4 A lsl.w #3,d_2 ;~8 lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 E movem.l (a_1,d_2),d_1/d_3 ;~36 A calc_mdist02 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist02 move.l bufptr-shift(a_0),a_1 ;~16 move.w d_1,d_2 ;~4 move.w d_3,d_0 ;~4 swap d_0 ;~4 swap d_2 ;~4 move.l bufptr-shift(a_0),a_1 ;~16 move.w (a_2)+,d_0 ;~8 E move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 dcb 5,$4e71 bra call_shifter vorwaerts2: move.w d_2,(a_0) move.l textptr-shift(a_0),a_1 dcb 2,$4e71 dcb 25-17-3-1-1,$4e71 moveq #0,d_1 moveq #0,d_2 move.b (a_1),d_1 ;~16 previous letter : C move.b 1(a_1),d_2 ;~16 act letter : K tst.b 2(a_1) ;~4 test letter after act : S bne.s nottextend2 ;~8 lea scrolltext,a_1 ;~12 nop nop nop _nottextend2: lsl.w #3,d_1 ;~8 nop calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont22 nottextend2: ;~12 addq.w #1,a_1 ;~8 bra _nottextend2 ;~12 cont22: dcb 5-2,$4e71 do_mdist move.l a_1,textptr-shift(a_0) ;~16 textptr points to K lsl.w #3,d_2 ;~8 lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 C movem.l (a_1,d_2),d_1/d_3 ;~36 K move.w d_1,d_2 ;~4 move.w d_3,d_0 ;~4 swap d_0 ;~4 swap d_2 ;~4 move.l bufptr-shift(a_0),a_1 ;~16 move.w (a_2)+,d_0 ;~8 C move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 dcb 23-22-1,$4e71 digi2 calc_mdist2 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist2 cmpi.w #25*4,bufcnt-shift(a_0) ;~16 blo.s vorbufok2 ;~8 clr.w bufcnt-shift(a_0) ;~16 screenwidth = 26 words subi.l #25*8,bufptr-shift(a_0) ;~20 bra.s vorbufnok2 ;~12 vorbufok2: addq.w #4,bufcnt-shift(a_0) ;~16 addq.l #8,bufptr-shift(a_0) ;~16 dcb 9-5,$4e71 vorbufnok2: dcb 5,$4e71 dcb 2,$4e71 call_shifter2: incbin includes\shifter2.bin bra indistcalcloop2 ;~12 26 nops before right borde rueckwaerts2: add.w #16,d_2 ;~8 move.w d_2,(a_0) ;~8 write back new shift dcb 2+7,$4e71 dcb 25-18-4,$4e71 subq.w #4,bufcnt-shift(a_0) ;~12 bhs.s rueckbufok2 ;~8 move.w #25*4,bufcnt-shift(a_0) ;~16 screenwidth = 26 words add.l #25*8,bufptr-shift(a_0) ;~32 _rueckbufok2: move.l textptr-shift(a_0),a_1 ;~16 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont52 rueckbufok2: subq.l #8,bufptr-shift(a_0) ;~16 DCB 2,$4E71 bra.s _rueckbufok2 ;~12 cont52: dcb 5-2,$4e71 do_mdist moveq #0,d_1 moveq #0,d_2 move.b -27(a_1),d_1 ;~16 previous letter : E move.b -26(a_1),d_2 ;~16 act letter : A lea -1(a_1),a_1 ;~8 move.l a_1,textptr-shift(a_0) ;~16 textptr points to I lsl.w #3,d_1 ;~8 lsl.w #3,d_2 ;~8 lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 E movem.l (a_1,d_2),d_1/d_3 ;~36 A dcb 7+18-22,$4e71 digi2 calc_mdist02 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist02 move.l bufptr-shift(a_0),a_1 ;~16 move.w d_1,d_2 ;~4 move.w d_3,d_0 ;~4 swap d_0 ;~4 swap d_2 ;~4 move.l bufptr-shift(a_0),a_1 ;~16 move.w (a_2)+,d_0 ;~8 E move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 dcb 5,$4e71 bra call_shifter2 vorwaerts3: move.w d_2,(a_0) move.l textptr-shift(a_0),a_1 dcb 2,$4e71 dcb 25-22,$4e71 digi2 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont23 nottextend3: ;~12 addq.w #1,a_1 ;~8 bra _nottextend3 ;~12 cont23: dcb 5-2,$4e71 do_mdist moveq #0,d_1 moveq #0,d_2 move.b (a_1),d_1 ;~16 previous letter : C move.b 1(a_1),d_2 ;~16 act letter : K tst.b 2(a_1) ;~4 test letter after act : S bne.s nottextend3 ;~8 lea scrolltext,a_1 ;~12 nop nop nop _nottextend3: move.l a_1,textptr-shift(a_0) ;~16 textptr points to K ; clr.b d_1 ;~4 C lsl.w #3,d_1 ;~8 ; clr.b d_2 ;~4 K dcb 6-2-2-1,$4e71 lsl.w #3,d_2 ;~8 lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 C movem.l (a_1,d_2),d_1/d_3 ;~36 K move.w d_1,d_2 ;~4 move.w d_3,d_0 ;~4 swap d_0 ;~4 swap d_2 ;~4 move.l bufptr-shift(a_0),a_1 ;~16 move.w (a_2)+,d_0 ;~8 C move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 calc_mdist2 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist2 cmpi.w #25*4,bufcnt-shift(a_0) ;~16 blo.s vorbufok3 ;~8 clr.w bufcnt-shift(a_0) ;~16 screenwidth = 26 words subi.l #25*8,bufptr-shift(a_0) ;~20 bra.s vorbufnok3 ;~12 vorbufok3: addq.w #4,bufcnt-shift(a_0) ;~16 addq.l #8,bufptr-shift(a_0) ;~16 dcb 9-5,$4e71 vorbufnok3: dcb 5,$4e71 dcb 2,$4e71 call_shifter3: incbin includes\shifter3.bin bra indistcalcloop3 ;~12 26 nops before right borde rueckwaerts3: add.w #16,d_2 ;~8 move.w d_2,(a_0) ;~8 write back new shift dcb 2+7,$4e71 dcb 25-22,$4e71 digi2 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont53 rueckbufok3: subq.l #8,bufptr-shift(a_0) ;~16 DCB 2,$4E71 bra.s _rueckbufok3 ;~12 cont53: dcb 5-2,$4e71 do_mdist subq.w #4,bufcnt-shift(a_0) ;~12 bhs.s rueckbufok3 ;~8 move.w #25*4,bufcnt-shift(a_0) ;~16 screenwidth = 26 words add.l #25*8,bufptr-shift(a_0) ;~32 _rueckbufok3: move.l textptr-shift(a_0),a_1 ;~16 moveq #0,d_1 moveq #0,d_2 move.b -27(a_1),d_1 ;~16 previous letter : E move.b -26(a_1),d_2 ;~16 act letter : A lea -1(a_1),a_1 ;~8 move.l a_1,textptr-shift(a_0) ;~16 textptr points to I lsl.w #3,d_1 ;~8 dcb 7-2-2,$4e71 lsl.w #3,d_2 ;~8 lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 E movem.l (a_1,d_2),d_1/d_3 ;~36 A calc_mdist02 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist02 move.l bufptr-shift(a_0),a_1 ;~16 move.w d_1,d_2 ;~4 move.w d_3,d_0 ;~4 swap d_0 ;~4 swap d_2 ;~4 move.l bufptr-shift(a_0),a_1 ;~16 move.w (a_2)+,d_0 ;~8 E move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 dcb 5,$4e71 bra call_shifter3 vorwaerts4: move.w d_2,(a_0) move.l textptr-shift(a_0),a_1 dcb 2,$4e71 dcb 25-17-3-1-1,$4e71 moveq #0,d_1 moveq #0,d_2 move.b (a_1),d_1 ;~16 previous letter : C move.b 1(a_1),d_2 ;~16 act letter : K tst.b 2(a_1) ;~4 test letter after act : S bne.s nottextend4 ;~8 lea scrolltext,a_1 ;~12 nop nop nop _nottextend4: lsl.w #3,d_1 ;~8 nop calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont24 nottextend4: ;~12 addq.w #1,a_1 ;~8 bra _nottextend4 ;~12 cont24: dcb 5-2,$4e71 do_mdist move.l a_1,textptr-shift(a_0) ;~16 textptr points to K lsl.w #3,d_2 ;~8 lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 C movem.l (a_1,d_2),d_1/d_3 ;~36 K move.w d_1,d_2 ;~4 move.w d_3,d_0 ;~4 swap d_0 ;~4 swap d_2 ;~4 move.l bufptr-shift(a_0),a_1 ;~16 move.w (a_2)+,d_0 ;~8 C move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 dcb 23-22-1,$4e71 digi1 calc_mdist2 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist2 cmpi.w #25*4,bufcnt-shift(a_0) ;~16 blo.s vorbufok4 ;~8 clr.w bufcnt-shift(a_0) ;~16 screenwidth = 26 words subi.l #25*8,bufptr-shift(a_0) ;~20 bra.s vorbufnok4 ;~12 vorbufok4: addq.w #4,bufcnt-shift(a_0) ;~16 addq.l #8,bufptr-shift(a_0) ;~16 dcb 9-5,$4e71 vorbufnok4: dcb 5,$4e71 dcb 2,$4e71 call_shifter4: incbin includes\shifter4.bin bra indistcalcloop4 ;~12 26 nops before right borde rueckwaerts4: add.w #16,d_2 ;~8 move.w d_2,(a_0) ;~8 write back new shift dcb 2+7,$4e71 dcb 25-18-4,$4e71 subq.w #4,bufcnt-shift(a_0) ;~12 bhs.s rueckbufok4 ;~8 move.w #25*4,bufcnt-shift(a_0) ;~16 screenwidth = 26 words add.l #25*8,bufptr-shift(a_0) ;~32 _rueckbufok4: move.l textptr-shift(a_0),a_1 ;~16 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w bra.s cont54 rueckbufok4: subq.l #8,bufptr-shift(a_0) ;~16 DCB 2,$4E71 bra.s _rueckbufok4 ;~12 cont54: dcb 5-2,$4e71 do_mdist moveq #0,d_1 moveq #0,d_2 move.b -27(a_1),d_1 ;~16 previous letter : E move.b -26(a_1),d_2 ;~16 act letter : A lea -1(a_1),a_1 ;~8 move.l a_1,textptr-shift(a_0) ;~16 textptr points to I lsl.w #3,d_1 ;~8 lsl.w #3,d_2 ;~8 lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 E movem.l (a_1,d_2),d_1/d_3 ;~36 A dcb 7+18-22,$4e71 digi1 calc_mdist02 move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w dcb 8-2,$4e71 do_mdist02 move.l bufptr-shift(a_0),a_1 ;~16 move.w d_1,d_2 ;~4 move.w d_3,d_0 ;~4 swap d_0 ;~4 swap d_2 ;~4 move.l bufptr-shift(a_0),a_1 ;~16 move.w (a_2)+,d_0 ;~8 E move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 dcb 5,$4e71 bra call_shifter4 copydistscroll: ;**** Copy all the buffers to the screen **** ;loop needs : d0-d6 : copy ; (a7+usp),a2,a1,a0:ptr ; d7:0digi sample ; a6:digi sampleptr ; a7:digi voltab ; a5,a4,a3: megadist move.l logbase,a0 ;put it there add.l #6*160+230*(280-20),a0 ;for hwscroll move.w #13,count ;scrollhigh:18 dcb 21-1+3-22,$4e71 digi2 dcb 22,$4e71 ; digi1 lea buffer,a7 move.l a7,usp calc_mdist move.b #0,$ffff820a.w ;Open right border move.b #2,$ffff820a.w ; move.b #$77,$ffff8240.w ; move.b #0,$ffff8240.w lea openlowtab,a1 dcb 8-2-3,$4e71 do_mdist dcb 11,$4e71 bra.s scrollcpy mul208: dc.w 0,208,208*2,208*3,208*4,208*5,208*6,208*7,208*8 dc.w 208*9,208*10,208*11,208*12,208*13,208*14,208*15 scrollcpy: move.w shift-buffer(a7),d1 add.w d1,d1 move.w mul208(pc,d1),d1 lea (a7,d1),a2 move.w bufcnt-buffer(a7),d1 ;; move.l a0,d0 ;;weg!! lea cpyjsr,a7 ;;a1 move.l (a7,d1),goto ;;a1 ;; move.l d0,a0 ;;weg ;; nop lea downthere+512,a7 ; dcb 22,$4e71 digi1 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w dcb 6-1-2,$4e71 goto equ *+2 jmp $00000000 ;(a2)+ -> (a0) uses d1-a1 endcpy: move.l usp,a7 lea 230(a0),a0 dcb 2-2,$4e71 do_mdist ; move.b #2,$ffff820a.w ;sicher is sicher: 50Hz lea linebuffend-linebuffbegin(a7),a7 move.l a7,usp nop nop nop subq.w #1,count bne o_scrollcpy bra endscrollcpy o_mul208: dc.w 0,208,208*2,208*3,208*4,208*5,208*6,208*7,208*8 dc.w 208*9,208*10,208*11,208*12,208*13,208*14,208*15 o_scrollcpy: move.w shift-buffer(a7),d1 add.w d1,d1 move.w o_mul208(pc,d1),d1 lea (a7,d1),a2 move.w bufcnt-buffer(a7),d1 lea o_cpyjsr(pc),a7 ;;a1 move.l (a7,d1),o_goto-o_cpyjsr(a7) ;;a1 move.b $ffff8207.w,d0 lea downthere+512.w,a7 ; dcb 22,$4e71 digi2 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w dcb 6-1-2-3,$4e71 move.b d0,$70.w o_goto equ *+2 jmp $00000000 ;(a2)+ -> (a0) uses d1-a1 o_endcpy: move.l usp,a7 lea 230(a0),a0 dcb 2-2,$4e71 do_mdist lea linebuffend-linebuffbegin(a7),a7 move.l a7,usp nop nop nop subq.w #1,count bne scrollcpy endscrollcpy: ***************************************** * end of the synchron part * ***************************************** moveq #0,d0 moveq #0,d1 moveq #0,d2 moveq #0,d3 moveq #0,d4 moveq #0,d5 moveq #0,d6 move.l d6,a3 movem.l d0-d6/a3,$ffff8240.w move.b $70.w,d0 cmp.b $ffff8207.w,d0 bne.s sok move.w #-1,resync sok: ; move.b #0,$fffffa19.w ;stop timer ; move.b #80,$fffffa1f.w ;244 ; move.b #32,$fffffa07.w ; move.b #0,$fffffa0b.w ;clr pending ; move.b #2,$fffffa19.w c0 equr d0 c1 equr d1 c2 equr d2 c3 equr d3 c4 equr d4 c5 equr d5 c6 equr d6 ;these ones if no megadist c7 equr a3 c8 equr a4 c9 equr a5 ;this one if no lower border to open c10 equr a1 ;let's copy the rest clr.w digswitch move.w #7,count scrollcpy2: move.w shift-buffer(a7),d1 add.w d1,d1 move.w _mul208(pc,d1),d1 lea (a7,d1),a2 move.w bufcnt-buffer(a7),d1 lea cpyjsr2(pc),a1 move.l (a1,d1),a1 lea downthere+512.w,a7 ;voltab (.w) not.w digswitch bne.s cpy_d2 digi1 jmp (a1) ;(a2)+ -> (a0) uses d1-a1 _mul208: dc.w 0,208,208*2,208*3,208*4,208*5,208*6,208*7,208*8 dc.w 208*9,208*10,208*11,208*12,208*13,208*14,208*15 cpy_d2: digi2 jmp (a1) ;(a2)+ -> (a0) uses d1-a1 endcpy2: move.l usp,a7 lea 230(a0),a0 lea linebuffend-linebuffbegin(a7),a7 move.l a7,usp subq.w #1,count bne scrollcpy2 lea downthere+512.w,a7 ;voltab (.w ?) ;********************************************************** ;buffercopy bbb move.l cpybufdest,a0 ;write there move.l a0,a2 add.l #230*280*4-230*20,a2 ;read here digi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,44(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,88(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,132(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,176(a0) ;4*11*4+8*4=208:1 line copied lea 230(a0),a0 ;next line lea 22(a2),a2 digi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,44(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,88(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,132(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,176(a0) ;4*11*4+8*4=208:1 line copied lea 230(a0),a0 ;next line lea 22(a2),a2 digi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,44(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,88(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,132(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,176(a0) ;4*11*4+8*4=208:1 line copied lea 230(a0),a0 ;next line lea 22(a2),a2 digi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,44(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,88(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,132(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,176(a0) ;4*11*4+8*4=208:1 line copied lea 230(a0),a0 ;next line lea 22(a2),a2 digi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,44(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,88(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,132(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,176(a0) ;4*11*4+8*4=208:1 line copied lea 230(a0),a0 ;next line lea 22(a2),a2 digi2 move.l a0,cpybufdest ;position to write during next vbl cmp.l #scrnadrs+4,nextscrn bne.s notreset move.l #ecran-(15*230)+160*6,cpybufdest notreset: ;********************************************************** btst #0,$fffffc00.w beq no_key move.b $fffffc02.w,d0 move.l cheatcodepos,a0 cmp.b (a0)+,d0 beq.s cheatok lea cheatcode,a0 cheatok: move.l a0,cheatcodepos tst.b (a0) bne.s notendcheat move.l #$42804280,cheatit notendcheat: cmpi.b #99,d0 bne.s notl addi.l #16,codmod+2 notl: cmpi.b #100,d0 bne.s notr addi.l #-16,codmod+2 notr: cmpi.b #107,d0 bne.s not5 move.l #0,codmod+2 not5: cmpi.b #110,d0 bne.s not2 addi.l #-230,codmod+2 not2: cmpi.b #104,d0 bne.s not8 addi.l #230,codmod+2 not8: cmpi.b #108,d0 bne.s not6 addi.l #-8,codmod+2 not6: cmpi.b #78,d0 bne.s notd ; add.l #-320,codmod+2 addi.b #-2,lowbyte lea screenadr,a3 move.b lowbyte,3(a3) notd: cmpi.b #106,d0 bne.s not4 addi.l #8,codmod+2 not4: cmpi.b #74,d0 bne.s notu ; add.l #320,codmod+2 addi.b #2,lowbyte lea screenadr,a3 move.b lowbyte,3(a3) notu: cmpi.b #1,d0 bne.s no_esc cheatcodmod: equ *+2 move.l #$2540ffe6,cheatit no_esc: cmpi.b #57,d0 bne.s no_key bra.s myexit my_reset: move.l #0,resetexit myexit: ;restore digisound move.w #(256+512/4)-1,d0 lea domino,a0 lea downthere,a1 restdigi: move.l (a0)+,(a1)+ dbf d0,restdigi resetexit: equ *+2 jmp exit no_key: lea screenadr,a3 codmod: addi.l #0,(a3) moveq #0,d0 move.b 3(a3),d0 lsr.l #1,d0 ;-------------------------------------------------------------- ; bra looop movem.l black,d0-d6/a0 movem.l d0-d6/a0,$ffff8240.w digi1 move.l mdistadjustptr,a4 sss equ 15 lea shift+sss*(linebuffend-linebuffbegin),a0 lea sss*2(a4),a4 moveq #4,d0 adjloop: move.w (a0),d1 lea linebuffend-linebuffbegin(a0),a0 ifeq parallax andi.w #110,d1 endc ifne parallax andi.w #111,d1 ;mod_16 to mod_8 add.w d1,d1 ;even endc move.w d1,14*20*2(a4) move.w d1,(a4)+ dbf d0,adjloop sub.w #sss*2,a4 cmp.l #mdistadjust+14*20*2,a4 blo.s adjok lea mdistadjust,a4 adjok: move.l a4,mdistadjustptr digi2 lea mdistgraph,a5 move.l mdistadjustptr,a4 move.l mdistcurvptr,a3 addq.l #2,a3 cmp.l #mdistcurv+300*2,a3 blo.s mcurvok lea mdistcurv,a3 mcurvok: move.l a3,mdistcurvptr move.l mactcurv,a0 move.w (a0)+,d0 cmp.w #128,d0 bne.s mcurvok2 move.l mnextcurv,a0 move.l (a0)+,d0 bne.s mnextok lea mwavetab,a0 move.l (a0)+,d0 mnextok: move.l a0,mnextcurv move.l d0,a0 move.w (a0)+,d0 mcurvok2: move.l a0,mactcurv add.w d0,mdistcurvval move.w mdistcurvval,d0 andi.w #7,d0 add.w d0,d0 move.w d0,(a3) move.w d0,300*2(a3) move.l hwbounceptr,a0 move.w -2(a0),d0 cmpi.w #-1,d0 bne.s bounceok move.w hwbouncetab,d0 bounceok: ext.l d0 divs #230/2,d0 adda.w d0,a4 ifeq parallay andi.w #$ffff,d0 add.w d0,d0 add.w d0,a3 lsl.w #5,d0 adda.w d0,a5 ;grafikadress endc ifne parallay move.l mbounceptr,a0 move.w (a0)+,d0 cmpi.w #-1,d0 bne.s mbounceok lea mbouncetab,a0 move.w (a0)+,d0 mbounceok: move.l a0,mbounceptr add.w d0,a3 lsl.w #5,d0 add.w d0,a5 endc lea 15*2(a4),a4 lea 2(a3),a3 calc_mdist movem.l d3/d4/d5/d6,hwpalette+16 lea 64(a5),a5 digmod equ *+2 jmp dig1 digcount dc.w 1 dig1: cmp.l #digiend-75,a6 blo.s digiok subq #1,digcount bmi.s mkdig2 bra.s contdig1 mkdig1: move.w #1,digcount move.l #dig1,digmod contdig1: move.l #hwbouncetab,hwbounceptr move.l #mbouncetab,mbounceptr lea digisound-2,a6 move.w (a6)+,d7 bra.s digiok dig2: cmp.l #digiend2-75,a6 blo.s digiok subq #1,digcount bmi.s mkdig1 bra.s contdig2 mkdig2: move.w #1,digcount move.l #dig2,digmod contdig2: move.l #hwbouncetab,hwbounceptr move.l #mbouncetab,mbounceptr lea digisound2-2,a6 move.w (a6)+,d7 digiok: digi1 lea predigi,a0 move.l a0,a1 moveq #1,d0 calcpredigi: rept 2 ;digi2 moveq #-1,d6 ;~1 move.b (a6)+,d6 ;~2 add.w d6,d6 ;~1 add.w 2(a7,d6),d7 ;~4 andi.w #$ff*4,d7 ;~2 move.l (a7,d7),(a0)+ move.l (a7,d7),(a0)+ ;digi1 moveq #-1,d6 move.b (a6),d6 add.w d6,d6 add.w (a7,d6),d7 andi.w #$ff*4,d7 move.l (a7,d7),(a0)+ move.l (a7,d7),(a0)+ endr ifeq digitest move.w #$777,$ffff8240.w move.w #$333,$ffff8240.w nop nop endc ifne digitest move.l (a1)+,d6 movep.l d6,$ffff8800-512-downthere(a7) ;~7 endc dbf d0,calcpredigi ;digi2 moveq #-1,d6 ;~1 move.b (a6)+,d6 ;~2 add.w d6,d6 ;~1 add.w 2(a7,d6),d7 ;~4 andi.w #$ff*4,d7 ;~2 move.l (a7,d7),(a0)+ move.l (a7,d7),(a0)+ ;digi1 moveq #-1,d6 move.b (a6),d6 add.w d6,d6 add.w (a7,d6),d7 andi.w #$ff*4,d7 move.l (a7,d7),(a0)+ move.l (a7,d7),(a0)+ ;digi2 moveq #-1,d6 ;~1 move.b (a6)+,d6 ;~2 add.w d6,d6 ;~1 add.w 2(a7,d6),d7 ;~4 andi.w #$ff*4,d7 ;~2 move.l (a7,d7),(a0)+ move.l (a7,d7),(a0)+ dcb 50,$4e71 tst.w $1f0.w bmi.s noend subq.w #1,$1f0.w beq myexit noend: move.l a6,digiptr move.l a1,a6 ifeq digitest move.w #$777,$ffff8240.w move.w #$333,$ffff8240.w nop nop endc ifne digitest move.l (a6)+,d6 ;~3 movep.l d6,$ffff8800-512-downthere(a7) ;~7 endc tst.w resync bne looop move.b #0,$fffffa0b.w ;clr pending no_int: tst.b $fffffa0b.w beq.s no_int nop nop nop nop bra loop ;-------------------------------------------------------------- cpyjsr2: dc.l cpy2_00,cpy2_01,cpy2_02,cpy2_03,cpy2_04 dc.l cpy2_05,cpy2_06,cpy2_07,cpy2_08,cpy2_09 dc.l cpy2_10,cpy2_11,cpy2_12,cpy2_13,cpy2_14 dc.l cpy2_15,cpy2_16,cpy2_17,cpy2_18,cpy2_19 dc.l cpy2_20,cpy2_21,cpy2_22,cpy2_23,cpy2_24 dc.l cpy2_25 cpy2_00: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*33(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,4*44(a0) bra endcpy2 cpy2_01: movem.l (a2)+,c0/c1 movem.l c0/c1,4*50(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*33(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*44(a0) bra endcpy2 cpy2_02: movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,4*48(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*33(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,4*44(a0) bra endcpy2 cpy2_03: movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*46(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*33(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,4*44(a0) bra endcpy2 cpy2_04: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,4*44(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*33(a0) bra endcpy2 cpy2_05: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9,4*42(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*33(a0) bra endcpy2 cpy2_06: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*40(a0) movem.l (a2)+,c0 movem.l c0,4*51(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*33(a0) bra endcpy2 cpy2_07: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*38(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*49(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*33(a0) bra endcpy2 cpy2_08: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*36(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*47(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*33(a0) bra endcpy2 cpy2_09: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*34(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*45(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0 movem.l c0,4*33(a0) bra endcpy2 cpy2_10: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*32(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*43(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9,4*22(a0) bra endcpy2 cpy2_11: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*30(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*41(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,4*22(a0) bra endcpy2 cpy2_12: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*28(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*39(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,4*50(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*22(a0) bra endcpy2 cpy2_13: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*26(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*37(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,4*48(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,4*22(a0) bra endcpy2 cpy2_14: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*24(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*35(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*46(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,4*22(a0) bra endcpy2 cpy2_15: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*33(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,4*44(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*11(a0) bra endcpy2 cpy2_16: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*20(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*31(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9,4*42(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*11(a0) bra endcpy2 cpy2_17: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*18(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*29(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*40(a0) movem.l (a2)+,c0 movem.l c0,4*51(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*11(a0) bra endcpy2 cpy2_18: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*16(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*27(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*38(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*49(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*11(a0) bra endcpy2 cpy2_19: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*14(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*25(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*36(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*47(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*11(a0) bra endcpy2 cpy2_20: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*12(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*23(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*34(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*45(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,(a0) movem.l (a2)+,c0 movem.l c0,4*11(a0) bra endcpy2 cpy2_21: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*10(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*21(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*32(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*43(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9,(a0) bra endcpy2 cpy2_22: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*8(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*19(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*30(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*41(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7 movem.l c0/c1/c2/c3/c4/c5/c6/c7,(a0) bra endcpy2 cpy2_23: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*6(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*17(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*28(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*39(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,4*50(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,(a0) bra endcpy2 cpy2_24: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*15(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*26(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*37(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,4*48(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) bra endcpy2 cpy2_25: movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*2(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*13(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*24(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10 movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10,4*35(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*46(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) bra endcpy2 ;********************************************************** ; Distorted scroller by Gunstick ;The 26 copyroutines cpyjsr: dc.l cpy00,cpy01,cpy02,cpy03,cpy04 dc.l cpy05,cpy06,cpy07,cpy08,cpy09 dc.l cpy10,cpy11,cpy12,cpy13,cpy14 dc.l cpy15,cpy16,cpy17,cpy18,cpy19 dc.l cpy20,cpy21,cpy22,cpy23,cpy24 dc.l cpy25 ;copy 208 bytes from (a2) to (a0) (52 registers) ;read/write: 24+16*n = 16*(1.5+n) swnodigi MACRO calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w dcb 8-2,$4e71 do_mdist ENDM swdigi1 MACRO digi1 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w dcb 8-2,$4e71 do_mdist ENDM swdigi2 MACRO digi2 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w dcb 8-2,$4e71 do_mdist ENDM cpy00: ;7,9,9,9,9,9 do_mdist move.b #2,$ffff820a.w dcb 2,$4e71 nop movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*5(a0) swnodigi move.b #2,$ffff820a.w dcb 0,$4e71 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a0) move.l (a2)+,4*19(a0) swdigi2 dcb 2,$4e71 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*20(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a0) swnodigi move.b #2,$ffff820a.w dcb 10-4,$4e71 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*33(a0) swdigi1 move.b #2,$ffff820a.w dcb 6-4,$4e71 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*40(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*47(a0) calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy01: ;2+5,7,7,9,9,9 do_mdist movem.l (a2)+,c0/c1 movem.l c0/c1,4*50(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*3(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a0) move.l (a2)+,4*17(a0) swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*18(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*24(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*31(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*38(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*45(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy02: ;4+3,9,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,4*48(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*3(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a0) move.l (a2)+,4*15(a0) swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*16(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*22(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*29(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*36(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*43(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy03: ;6+1,9,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*46(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*3(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a0) move.l (a2)+,4*13(a0) swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*14(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*20(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*27(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*34(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*41(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy04: ;8,8,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*44(a0) movem.l (a2)+,c0 movem.l c0,4*51(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a0) move.l (a2)+,4*11(a0) swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*12(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*18(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*25(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*32(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*39(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy05: ;9,1+6,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*42(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*49(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a0) move.l (a2)+,4*9(a0) swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*10(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*16(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*23(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*30(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*37(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy06: ;9,3+4,9,9,9,9 do_mdist move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*40(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*47(a0) dcb 5-4,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,(a0) nop move.l (a2)+,4*7(a0) swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*8(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*14(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*21(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*28(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*35(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy07: ;9,5+2,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*38(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*45(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0 movem.l c0,4*51(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,(a0) dcb 5-4,$4e71 swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*6(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*19(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*33(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy08: ;9,7,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*36(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*43(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*49(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) dcb 5-4,$4e71 swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*17(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*24(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*31(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy09: ;9,9,7,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*34(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*41(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*47(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) dcb 5-4,$4e71 swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*2(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*15(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*29(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy10: ;9,9,2+5,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*32(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*39(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*45(a0) dcb 10-4,$4e71 swdigi2 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*0(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*13(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*20(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*27(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy11: ;9,9,4+3,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*30(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*37(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*43(a0) move.l (a2)+,50*4(a0) dcb 4-4,$4e71 swdigi2 move.b #2,$ffff820a.w move.l (a2)+,51*4(a0) movem.l (a2)+,c1/c2/c3/c4 movem.l c1/c2/c3/c4,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a0) dcb 5-4,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*11(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*18(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*25(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy12: ;9,9,6+1,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*28(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*35(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*41(a0) move.l (a2)+,48*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,49*4(a0) movem.l (a2)+,c1/c2 movem.l c1/c2,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a0) dcb 1,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*9(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*16(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*23(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy13: ;9,9,8,8,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*33(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*39(a0) move.l (a2)+,46*4(a0) dcb 4-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,47*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,(a0) dcb 1+6-4,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*7(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*14(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*21(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy14: ;9,9,9,1+6,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*24(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*31(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*37(a0) move.l (a2)+,44*4(a0) dcb 4-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,45*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,(a0) dcb 1+6-4,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*5(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*19(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy15: ;9,9,9,3+4,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*29(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*35(a0) move.l (a2)+,42*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,43*4(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,50*4(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) dcb 1,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*3(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*17(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy16: ;9,9,9,5+2,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*20(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*27(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*33(a0) move.l (a2)+,40*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,41*4(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,48*4(a0) movem.l (a2)+,c0 movem.l c0,(a0) dcb 1,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*1(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*15(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy17: ;9,9,9,7,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*18(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*25(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*31(a0) move.l (a2)+,38*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,39*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,46*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,(a0) dcb 10+5-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*13(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy18: ;9,9,9,9,7,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*16(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*23(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*29(a0) move.l (a2)+,36*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,37*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,44*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1 movem.l c0/c1,50*4(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) dcb 9-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*11(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy19: ;9,9,9,9,2+5,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*14(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*21(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*27(a0) move.l (a2)+,34*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,35*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,42*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,48*4(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) dcb 9-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*9(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy20: ;9,9,9,9,4+3,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*19(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*25(a0) move.l (a2)+,32*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,33*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,40*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,46*4(a0) dcb 1+6+7-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*7(a0) dcb 6+1-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy21: do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*17(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*23(a0) move.l (a2)+,30*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,31*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,38*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,44*4(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0 movem.l c0,51*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*5(a0) dcb 5-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy22: ;9,9,9,9,8,8 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*15(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*21(a0) move.l (a2)+,28*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,29*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,36*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,42*4(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,49*4(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*3(a0) dcb 5-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy23: ;9,9,9,9,8,8 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*13(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*19(a0) move.l (a2)+,26*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,27*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,34*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,40*4(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,47*4(a0) movem.l (a2)+,c0 movem.l c0,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,1*4(a0) dcb 5-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy24: ;9,9,9,9,9,3+4 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*11(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*17(a0) move.l (a2)+,24*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,25*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,32*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,38*4(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,45*4(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) dcb 1+6+4-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy cpy25: ;9,9,9,9,9,5+2 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*9(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*15(a0) move.l (a2)+,22*4(a0) dcb 4-4,$4e71 swdigi2 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,23*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,30*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,36*4(a0) dcb 10-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,43*4(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,50*4(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) dcb 1+4-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra endcpy o_cpyjsr: dc.l o_cpy00,o_cpy01,o_cpy02,o_cpy03,o_cpy04 dc.l o_cpy05,o_cpy06,o_cpy07,o_cpy08,o_cpy09 dc.l o_cpy10,o_cpy11,o_cpy12,o_cpy13,o_cpy14 dc.l o_cpy15,o_cpy16,o_cpy17,o_cpy18,o_cpy19 dc.l o_cpy20,o_cpy21,o_cpy22,o_cpy23,o_cpy24 dc.l o_cpy25 ;copy 208 bytes from (a2) to (a0) (52 registers) ;read/write: 24+16*n = 16*(1.5+n) o_cpy00: ;7,9,9,9,9,9 do_mdist move.b #2,$ffff820a.w dcb 2,$4e71 nop movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*5(a0) swnodigi move.b #2,$ffff820a.w dcb 0,$4e71 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a0) move.l (a2)+,4*19(a0) swdigi1 dcb 2,$4e71 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*20(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a0) swnodigi move.b #2,$ffff820a.w dcb 10-4,$4e71 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*33(a0) swdigi2 move.b #2,$ffff820a.w dcb 6-4,$4e71 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*40(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*47(a0) calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy01: ;2+5,7,7,9,9,9 do_mdist movem.l (a2)+,c0/c1 movem.l c0/c1,4*50(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*3(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a0) move.l (a2)+,4*17(a0) swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*18(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*24(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*31(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*38(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*45(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy02: ;4+3,9,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,4*48(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*3(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a0) move.l (a2)+,4*15(a0) swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*16(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*22(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*29(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*36(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*43(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy03: ;6+1,9,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*46(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*3(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a0) move.l (a2)+,4*13(a0) swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*14(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*20(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*27(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*34(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*41(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy04: ;8,8,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*44(a0) movem.l (a2)+,c0 movem.l c0,4*51(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a0) move.l (a2)+,4*11(a0) swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*12(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*18(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*25(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*32(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*39(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy05: ;9,1+6,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*42(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*49(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a0) move.l (a2)+,4*9(a0) swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*10(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*16(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*23(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*30(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*37(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy06: ;9,3+4,9,9,9,9 do_mdist move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*40(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*47(a0) dcb 5-4,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,(a0) nop move.l (a2)+,4*7(a0) swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*8(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*14(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*21(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*28(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*35(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy07: ;9,5+2,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*38(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*45(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0 movem.l c0,4*51(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,(a0) dcb 5-4,$4e71 swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*6(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*19(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*33(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy08: ;9,7,9,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*36(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*43(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,4*49(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) dcb 5-4,$4e71 swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*17(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*24(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*31(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy09: ;9,9,7,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*34(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*41(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*47(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) dcb 5-4,$4e71 swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*2(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*15(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*29(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy10: ;9,9,2+5,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*32(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*39(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*45(a0) dcb 10-4,$4e71 swdigi1 movem.l (a2)+,c1/c2/c3/c4/c5/c6 movem.l c1/c2/c3/c4/c5/c6,4*0(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*13(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*20(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*27(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy11: ;9,9,4+3,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*30(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*37(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*43(a0) move.l (a2)+,50*4(a0) dcb 4-4,$4e71 swdigi1 move.b #2,$ffff820a.w move.l (a2)+,51*4(a0) movem.l (a2)+,c1/c2/c3/c4 movem.l c1/c2/c3/c4,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a0) dcb 5-4,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*11(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*18(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*25(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy12: ;9,9,6+1,9,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*28(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*35(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*41(a0) move.l (a2)+,48*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,49*4(a0) movem.l (a2)+,c1/c2 movem.l c1/c2,(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a0) dcb 1,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*9(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*16(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*23(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy13: ;9,9,8,8,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*33(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*39(a0) move.l (a2)+,46*4(a0) dcb 4-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,47*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,(a0) dcb 1+6-4,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*7(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*14(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*21(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy14: ;9,9,9,1+6,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*24(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*31(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*37(a0) move.l (a2)+,44*4(a0) dcb 4-4,$4e71 swdigi1 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,45*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,(a0) dcb 1+6-4,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*5(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*19(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy15: ;9,9,9,3+4,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*22(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*29(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*35(a0) move.l (a2)+,42*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,43*4(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,50*4(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) dcb 1,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*3(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*17(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy16: ;9,9,9,5+2,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*20(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*27(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*33(a0) move.l (a2)+,40*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,41*4(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,48*4(a0) movem.l (a2)+,c0 movem.l c0,(a0) dcb 1,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*1(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*15(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy17: ;9,9,9,7,9,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*18(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*25(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*31(a0) move.l (a2)+,38*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,39*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,46*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,(a0) dcb 10+5-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*13(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy18: ;9,9,9,9,7,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*16(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*23(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*29(a0) move.l (a2)+,36*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,37*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,44*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1 movem.l c0/c1,50*4(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) dcb 9-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*11(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy19: ;9,9,9,9,2+5,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*14(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*21(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*27(a0) move.l (a2)+,34*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,35*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,42*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,48*4(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) dcb 9-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*9(a0) dcb 6-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy20: ;9,9,9,9,4+3,9 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*19(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*25(a0) move.l (a2)+,32*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,33*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,40*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,46*4(a0) dcb 1+6+7-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*7(a0) dcb 6+1-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy21: do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*17(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*23(a0) move.l (a2)+,30*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,31*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,38*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,44*4(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0 movem.l c0,51*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*5(a0) dcb 5-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy22: ;9,9,9,9,8,8 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*15(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*21(a0) move.l (a2)+,28*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,29*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,36*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,42*4(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,49*4(a0) movem.l (a2)+,c0/c1/c2 movem.l c0/c1/c2,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,4*3(a0) dcb 5-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy23: ;9,9,9,9,8,8 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*13(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*19(a0) move.l (a2)+,26*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,27*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,34*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,40*4(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,47*4(a0) movem.l (a2)+,c0 movem.l c0,(a0) movem.l (a2)+,c0/c1/c2/c3/c4 movem.l c0/c1/c2/c3/c4,1*4(a0) dcb 5-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy24: ;9,9,9,9,9,3+4 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*11(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*17(a0) move.l (a2)+,24*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,25*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,32*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,38*4(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,45*4(a0) movem.l (a2)+,c0/c1/c2/c3 movem.l c0/c1/c2/c3,(a0) dcb 1+6+4-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy o_cpy25: ;9,9,9,9,9,5+2 do_mdist movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,4*9(a0) dcb 1,$4e71 nop swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,4*15(a0) move.l (a2)+,22*4(a0) dcb 4-4,$4e71 swdigi1 movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,23*4(a0) movem.l (a2)+,c0/c1/c2/c3/c4/c5 movem.l c0/c1/c2/c3/c4/c5,30*4(a0) dcb 2,$4e71 swnodigi move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,36*4(a0) dcb 10-4,$4e71 swdigi2 move.b #2,$ffff820a.w movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6 movem.l c0/c1/c2/c3/c4/c5/c6,43*4(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,50*4(a0) movem.l (a2)+,c0/c1 movem.l c0/c1,(a0) dcb 1+4-4,$4e71 calc_mdist move.b #0,$ffff820a.w ;Open right border move.b (a1)+,$ffff820a.w bra o_endcpy ; ;********************************************************** even section data domino: incbin includes\domino.bin voltab: ; Soundtable from 68000 ST-Magazin incbin includes\voltab.bin ;********************************************************** ; Distorted scroller by Gunstick mdistgraph equ *+2*16 ;the scroller graphics buffer -> bss incbin includes\colors2.bin mdistcurv: rept 35 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; dc.w 0,0,0,0,2,2,2,4,4,6,6,8,8,8,10,10,10,10,10,10,8,8,8,6,6,4,4,2,2,2,2,0 endr dc.w 0,2,4,6,8,10,12,14 mbounceptr: dc.l mbouncetab mbouncetab: ;do not use 0 ifeq 1 dc.w 2*24 dc.w 2*24 dc.w 2*24 dc.w 2*24,2*24 dc.w 2*22,2*22 dc.w 2*20,2*20 dc.w 2*18,2*18 dc.w 2*16,2*16 dc.w 2*14 dc.w 2*14 dc.w 2*12 dc.w 2*12 dc.w 2*10 dc.w 2*8 dc.w 2*6 dc.w 2*4 dc.w 0 dc.w 2*4 dc.w 2*6 dc.w 2*8 dc.w 2*10 dc.w 2*12,2*12 dc.w 2*14,2*14 dc.w 2*16,2*16 dc.w 2*18,2*18 dc.w 2*20,2*20 dc.w 2*22,2*22 dc.w 2*24,2*24 dc.w 2*24,2*24 dc.w 2*24 dc.w 2*24 dc.w 2*24,2*24 dc.w 2*22,2*22 dc.w 2*20,2*20 dc.w 2*18,2*18 dc.w 2*16,2*16 dc.w 2*14 dc.w 2*14 dc.w 2*12 dc.w 2*12 dc.w 2*10 dc.w 2*8 dc.w 2*6 dc.w 2*4 dc.w 0 dc.w 2*4 dc.w 2*6 dc.w 2*8 dc.w 2*10 dc.w 2*12,2*12 dc.w 2*14,2*14 dc.w 2*16,2*16 dc.w 2*18,2*18 dc.w 2*20,2*20 dc.w 2*22,2*22 dc.w 2*24,2*24 dc.w 2*24,2*24 endc dc.w 2*24 dc.w 2*24 dc.w 2*24 dc.w 2*23,2*23 dc.w 2*22,2*21 dc.w 2*20,2*19 dc.w 2*18,2*17 dc.w 2*16,2*15 dc.w 2*14 dc.w 2*13 dc.w 2*12 dc.w 2*11 dc.w 2*10 dc.w 2*8 dc.w 2*6 dc.w 2*4 dc.w 2 dc.w 2*4 dc.w 2*6 dc.w 2*8 dc.w 2*10 dc.w 2*11,2*12 dc.w 2*13,2*14 dc.w 2*15,2*16 dc.w 2*17,2*18 dc.w 2*19,2*20 dc.w 2*21,2*22 dc.w 2*23,2*23 dc.w 2*24,2*24 dc.w 2*24 dc.w 2*24 dc.w 2*23,2*23 dc.w 2*22,2*21 dc.w 2*20,2*19 dc.w 2*18,2*17 dc.w 2*16,2*15 dc.w 2*14 dc.w 2*13 dc.w 2*12 dc.w 2*11 dc.w 2*10 dc.w 2*8 dc.w 2*6 dc.w 2*4 dc.w 2 dc.w 2*4 dc.w 2*6 dc.w 2*8 dc.w 2*10 dc.w 2*11,2*12 dc.w 2*13,2*14 dc.w 2*15,2*16 dc.w 2*17,2*18 dc.w 2*19,2*20 dc.w 2*21,2*22 dc.w 2*23,2*23 dc.w 2*24,2*24 dc.w -1 hwbounceptr: dc.l hwbouncetab hwbouncetab: dc.w 230*12 dc.w 230*12 dc.w 230*12 dc.w 230*12,230*12 dc.w 230*11,230*11 dc.w 230*10,230*10 dc.w 230*9,230*9 dc.w 230*8,230*8 dc.w 230*7 dc.w 230*7 dc.w 230*6 dc.w 230*6 dc.w 230*5 dc.w 230*4 dc.w 230*3 dc.w 230*2 dc.w 0 dc.w 230*2 dc.w 230*3 dc.w 230*4 dc.w 230*5 dc.w 230*6,230*6 dc.w 230*7,230*7 dc.w 230*8,230*8 dc.w 230*9,230*9 dc.w 230*10,230*10 dc.w 230*11,230*11 dc.w 230*12,230*12 dc.w 230*12,230*12 dc.w 230*12 dc.w 230*12 dc.w 230*12,230*12 dc.w 230*11,230*11 dc.w 230*10,230*10 dc.w 230*9,230*9 dc.w 230*8,230*8 dc.w 230*7 dc.w 230*7 dc.w 230*6 dc.w 230*6 dc.w 230*5 dc.w 230*4 dc.w 230*3 dc.w 230*2 dc.w 0 dc.w 230*2 dc.w 230*3 dc.w 230*4 dc.w 230*5 dc.w 230*6,230*6 dc.w 230*7,230*7 dc.w 230*8,230*8 dc.w 230*9,230*9 dc.w 230*10,230*10 dc.w 230*11,230*11 dc.w 230*12,230*12 dc.w 230*12,230*12 dc.w -1 scrbase equ 0 scrnadrs: dc.l ecran-scrbase*230+64400*0 dc.l ecran-scrbase*230+64400*1 dc.l ecran-scrbase*230+64400*2 dc.l ecran-scrbase*230+64400*3 dc.l ecran-scrbase*230+64400*0+230*20 dc.l ecran-scrbase*230+64400*1+230*20 dc.l ecran-scrbase*230+64400*2+230*20 dc.l ecran-scrbase*230+64400*3+230*20 dc.l ecran-scrbase*230+64400*0+230*40 dc.l ecran-scrbase*230+64400*1+230*40 dc.l ecran-scrbase*230+64400*2+230*40 dc.l ecran-scrbase*230+64400*3+230*40 dc.l ecran-scrbase*230+64400*0+230*60 dc.l ecran-scrbase*230+64400*1+230*60 dc.l ecran-scrbase*230+64400*2+230*60 dc.l ecran-scrbase*230+64400*3+230*60 dc.l ecran-scrbase*230+64400*0+230*80 dc.l ecran-scrbase*230+64400*1+230*80 dc.l ecran-scrbase*230+64400*2+230*80 dc.l ecran-scrbase*230+64400*3+230*80 dc.l ecran-scrbase*230+64400*0+230*100 dc.l ecran-scrbase*230+64400*1+230*100 dc.l ecran-scrbase*230+64400*2+230*100 dc.l ecran-scrbase*230+64400*3+230*100 dc.l ecran-scrbase*230+64400*0+230*120 dc.l ecran-scrbase*230+64400*1+230*120 dc.l ecran-scrbase*230+64400*2+230*120 dc.l ecran-scrbase*230+64400*3+230*120 dc.l ecran-scrbase*230+64400*0+230*140 dc.l ecran-scrbase*230+64400*1+230*140 dc.l ecran-scrbase*230+64400*2+230*140 dc.l ecran-scrbase*230+64400*3+230*140 dc.l ecran-scrbase*230+64400*0+230*160 dc.l ecran-scrbase*230+64400*1+230*160 dc.l ecran-scrbase*230+64400*2+230*160 dc.l ecran-scrbase*230+64400*3+230*160 dc.l ecran-scrbase*230+64400*0+230*180 dc.l ecran-scrbase*230+64400*1+230*180 dc.l ecran-scrbase*230+64400*2+230*180 dc.l ecran-scrbase*230+64400*3+230*180 dc.l ecran-scrbase*230+64400*0+230*200 dc.l ecran-scrbase*230+64400*1+230*200 dc.l ecran-scrbase*230+64400*2+230*200 dc.l ecran-scrbase*230+64400*3+230*200 dc.l ecran-scrbase*230+64400*0+230*220 dc.l ecran-scrbase*230+64400*1+230*220 dc.l ecran-scrbase*230+64400*2+230*220 dc.l ecran-scrbase*230+64400*3+230*220 dc.l ecran-scrbase*230+64400*0+230*240 dc.l ecran-scrbase*230+64400*1+230*240 dc.l ecran-scrbase*230+64400*2+230*240 dc.l ecran-scrbase*230+64400*3+230*240 dc.l ecran-scrbase*230+64400*0+230*260 dc.l ecran-scrbase*230+64400*1+230*260 dc.l ecran-scrbase*230+64400*2+230*260 dc.l 0 openlowtab: ; dc.b 2,2,2,2,2,2 ; dc.b 2,2,2,2,2,2 ; dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2 dc.b 2,2,2,0,2,2 ;old dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2 dc.b 2,0,2,2,2,2 ;new dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2 ; dc.b 2,2,2,2,2,2 ;nynyyy dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2 ;super-full: 222202 dc.b 2,2,2,2,2,2 even inwavetab: dc.l _nix dc.l _nix dc.l _nix dc.l _nix dc.l slowsin dc.l slowsin dc.l slowsin dc.l slowsin dc.l slowsin dc.l slowsin dc.l slowsin dc.l slowsin dc.l _nix dc.l boink dc.l _nix wavetab: dc.l _nix dc.l wordhinher dc.l _nix dc.l _nix dc.l fast dc.l fast dc.l fast dc.l fast dc.l dreieck dc.l dreieck dc.l slowsin dc.l slowsin dc.l slowsin dc.l slowsin dc.l slowdist,slowdist,slowdist,slowdist dc.l sinschief dc.l sinschief dc.l bigsin dc.l bigsin dc.l sinschief dc.l sinschief dc.l slowdist,slowdist,slowdist,slowdist dc.l fast dc.l bigsin dc.l bigsin dc.l bigsin dc.l _nix dc.l _nix dc.l _nix dc.l _nix dc.l _nix dc.l _nix dc.l _nix dc.l 0 ;end mwavetab: dc.l _nix,_nix,_nix,_nix dc.l _nix,_nix,_nix,_nix dc.l _nix,_nix,_nix,_nix dc.l sinschief dc.l sinschief dc.l bigsin dc.l fuzzy,fuzzy,fuzzy,fuzzy dc.l bigsin dc.l bigsin dc.l bigsin dc.l bigsin dc.l slowdist dc.l slowdist dc.l slowdist dc.l 0 ;end boink: incbin includes\boink.bin dc.w 128 slowsin: incbin includes\slowsin.bin dc.w 128 slowdist: dc.w 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 dc.w 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 dc.w 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 dc.w 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 dc.w 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 dc.w 1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2 dc.w 1,2,1,2,1,2,1,2,2,2,2,2,2,2,2,2 dc.w 2,2,2,3,2,2,2,3,2,3,2,3,2,3,2,3 dc.w 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 dc.w 2,3,2,3,2,3,2,3,2,2,2,3,2,2,2,3 dc.w 2,2,2,2,2,2,2,2,1,2,1,2,1,2,1,2 dc.w 1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2 dc.w 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 dc.w 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 dc.w 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 dc.w 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 dc.w 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,-1,0,0,0,-1 dc.w 0,0,0,-1,0,0,0,-1 dc.w 0,-1,0,-1,0,-1,0,-1 dc.w 0,-1,0,-1,0,-1,0,-1 dc.w -1,-1,-1,-1,-1,-1,-1,-1 dc.w -1,-1,-1,-2,-1,-1,-1,-2 dc.w -1,-2,-1,-2,-2,-2,-2,-2 dc.w -2,-2,-2,-3,-2,-3,-2,-3 dc.w -3,-3,-3,-3,-3,-3,-3,-3 dc.w -2,-3,-2,-3,-2,-2,-2,-3 dc.w -2,-2,-2,-2,-1,-2,-1,-2 dc.w -1,-1,-1,-2,-1,-1,-1,-2 dc.w -1,-1,-1,-1,-1,-1,-1,-1 dc.w 0,-1,0,-1,0,-1,0,-1 dc.w 0,-1,0,-1,0,-1,0,-1 dc.w 0,0,0,-1,0,0,0,-1 dc.w 0,0,0,-1,0,0,0,-1 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 128 fast: incbin includes\fast.bin dc.w 128 sinschief: incbin includes\sisi.bin dc.w 128 wordhinher: dc.w 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 dc.w -2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,128 _nix: dc.w 0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,128 dreieck: dc.w 1,0,1,0,1,0,1,0 dc.w 1,0,1,0,1,0,1,0 dc.w 1,0,1,0,1,0,1,0 dc.w 1,0,1,0,1,0,1,0 dc.w 1,1,1,1,1,1,1,1 dc.w -1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1 dc.w -1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,128 dc.w 2,2,2,2,2,2,2,2 dc.w 1,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0 dc.w 0,0,0,1,0,0,0,0 dc.w 0,0,-3,-2,-1,0,1,2 dc.w 1,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,-1 dc.w -1,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,1 dc.w 2,2,2,2,2,2,2,2 dc.w 3,3,3,3,3,3,3,3 dc.w 3,3,3,3,3,3,3,3 dc.w 4,4,4,4,4,4,4,4 dc.w 4,4,4,4,4,4,4,4 dc.w 5,5,5,5,5,5,5,5 dc.w 5,5,5,5,5,5,5,5 dc.w 5,5,5,5,5,5,5,5 dc.w 5,5,5,5,5,5,5,5 dc.w 5,5,5,5,5,5,5,5 dc.w 4,4,4,4,4,4,4,4 dc.w 4,4,4,4,4,4,4,4 dc.w 4,4,4,4,4,4,4,4 dc.w 3,3,3,3,3,3,3,3 dc.w 3,3,3,3,3,3,3,3 dc.w 2,2,2,2,2,2,2,2 dc.w 2,2,2,2,2,2,2,2 dc.w 1,1,1,1,1,1,1,1 dc.w 0,0,0,0,0,0,0,0 dc.w -1,-1,-1,-1,-1,-1,-1,-1 dc.w -2,-2,-2,-2,-2,-2,-2,-2 dc.w -3,-3,-3,-3,-3,-3,-3,-3 dc.w -3,-3,-3,-3,-3,-3,-3,-3 dc.w -4,-4,-4,-4,-4,-4,-4,-4 dc.w -4,-4,-4,-4,-4,-4,-4,-4 dc.w -4,-4,-4,-4,-4,-4,-4,-4 dc.w -4,-4,-4,-4,-4,-4,-4,-4 dc.w -4,-4,-4,-4,-4,-4,-4,-4 dc.w -3,-3,-3,-3,-3,-3,-3,-3 dc.w -3,-3,-3,-3,-3,-3,-3,-3 dc.w -2,-2,-2,-2,-2,-2,-2,-2 dc.w -1,-1,-1,-1,-1,-1,-1,-1 dc.w 0,0,0,0,0,0,0,0,128 dc.w 16,16,16,16,16,16,16,16 dc.w 1,1,1,1,1,1,1,1 dc.w 1,1,1,1,1,1,1,1 dc.w 1,1,1,1,1,1,1,1 dc.w 1,1,1,1,1,1,1,1 dc.w 1,1,1,1,1,1,1,1 dc.w 1,1,1,1,1,1,1,1 dc.w 128 bigsin: incbin includes\sinbig.bin dc.w 128 fuzzy dc.w 0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7 dc.w 8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13 dc.w 14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18 dc.w 19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23 dc.w 128 panic: ds.w 20 scrolltext: dc.b 20,20 incbin includes\text.bin scrolltextend: dc.b 0 even ;********************************************************** ;********************************************************** even psginittab:dc.b 0,$ff,1,$ff,2,$ff,3,$ff,4,$ff,5,$ff,6,0 dc.b 7,%11111011,8,0,9,0,10,0,11,5,12,100,13,2,$ff,0 even hwpalette: dc.w $000,$227,$005,$654,$543,$432,$321,$777 ; dc.w $000,$227,$005,$740,$730,$720,$710,$777 dc.w $777,$666,$555,$444,$333,$222,$111,$002 dc.w $0700,$0707,$0474,$0777,$0606,$0505,$0404,$303 graphic: dc.w $d555,$3333,$0f0f,$ff cheatcodepos: dc.l cheatcode cheatcode: ; B U S cr dc.b 48,22,48+$80,31,22+$80,28,31+$80,28+$80,0 even lowbyte: dc.b 0 even hwscrolldat: incbin "includes\hwdat.bin" even section bss bss_start: ;here starts the bss screenad: ds.l 1 ds.l 20 my_stack: stack: ds.l 1 oldpal: ds.w 16 oldres: ds.w 1 screenad1:ds.w 1 screenad2:ds.l 1 screenadr:ds.l 1 resync: ds.w 1 digswitch: ds.w 1 ;use digi1 or digi2 logbase: ds.l 1 ;screen where to put scroll tabentry: ds.l 1 ;for hwscroll cpybufdest: ds.l 1 ;copy from (this+4buffers-1scroll) to (this) shiftcnt: ds.w 1 ;counter for shifter count: ds.l 1 ;for some dbf without register nextscrn: ds.l 1 ;points to next screenadress to be used distcalc: ds.w 1 distwaveptr: ds.l 1 ;pointer in one distwave wavetabptr: ds.l 1 ;pointer to the next wave to be played disttableptr: ds.l 1 ;pointer to scrolldisttable disttable: ds.w 20*2 ;scrolldisttable digiptr: ds.l 1 ;ptr to begin digi after vbl predigi: ds.l 40 ;40 lines predigitized (20*2 values) mactcurv: ds.l 1 ;ptr in active curve mnextcurv: ds.l 1 ;next mdist curv mdistcurvval: ds.w 1 ;curve mdistcurvptr: ds.l 1 mdistadjustptr: ds.l 1 ;pointer to the distorter adjust table mdistadjust: ds.w 300*2 ;adjusttable for the two distorters linebuffbegin: textptr: ds.l 1 ;letter not completly copied into buffer (forward) bufptr: ds.l 1 ;pos where graphic is added in preshift 0 bufcnt: ds.w 1 ;which one of the 26 routs to be used to copy shift: ds.w 1 ;which preshift to copy buffer: ds.l 2*26*16 ;16 shifts of the 1st line of the scrolling linebuffend: rept scrhigh-1 ;18 lines scroll ; ds.l 1 ; ds.l 1 ; ds.w 1 ; ds.w 1 ds.l 2*26*16+1+1+1 endr screenmem: ds.w 230*6 ecran: rept 5 ds.l 15700 endr endprg: bss_end: ;here ends the bss end