paradist/PARADIST.S

5568 lines
126 KiB
ArmAsm
Executable File

; 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