paradist/PARADIST.S

6728 lines
155 KiB
ArmAsm
Executable File

; The Paralax distorter by Gunstick from Unlimited Matricks
parallax equ 0
parallay equ 0
bus equ 10
digitest equ 10
; config:
def_version equ 0
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 psginit
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
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:
bsr.s exit
move.l old_408(pc),a0
jmp (a0)
endc
exit:
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\font.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
; 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
; 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
add.w #55*2,other_mfp
mfp_is_ok:
ifeq bus
moveq #57,d0
lea endprg,a0
memtest:
move.l #-1,(a0)+
dbf d0,memtest
endc
;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
;**********************************************************
; Distorted scroller by Gunstick
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 wavetab,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 #ecran-230*20,cpybufdest
move.w #$007,$ffff8240.w
; bra kaka
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
lea font,a0
lea buffer,a1
moveq #25,d0 ;init all unshiftet linebuffers
testinitbuff:
move.l (a0),(a1)+
move.l 4(a0),(a1)+
move.l 32*8(a0),(a1)+
move.l 32*8+4(a0),(a1)+
move.l 32*8*2(a0),(a1)+
move.l 32*8*2+4(a0),(a1)+
move.l 32*8*3(a0),(a1)+
move.l 32*8*3+4(a0),(a1)+
move.l 32*8*4(a0),(a1)+
move.l 32*8*4+4(a0),(a1)+
move.l 32*8*5(a0),(a1)+
move.l 32*8*5+4(a0),(a1)+
move.l 32*8*6(a0),(a1)+
move.l 32*8*6+4(a0),(a1)+
move.l 32*8*7(a0),(a1)+
move.l 32*8*7+4(a0),(a1)+
move.l 32*8*8(a0),(a1)+
move.l 32*8*8+4(a0),(a1)+
move.l 32*8*9(a0),(a1)+
move.l 32*8*9+4(a0),(a1)+
move.l 32*8*10(a0),(a1)+
move.l 32*8*10+4(a0),(a1)+
move.l 32*8*11(a0),(a1)+
move.l 32*8*11+4(a0),(a1)+
move.l 32*8*12(a0),(a1)+
move.l 32*8*12+4(a0),(a1)+
move.l 32*8*13(a0),(a1)+
move.l 32*8*13+4(a0),(a1)+
move.l 32*8*14(a0),(a1)+
move.l 32*8*14+4(a0),(a1)+
move.l 32*8*15(a0),(a1)+
move.l 32*8*15+4(a0),(a1)+
move.l 32*8*16(a0),(a1)+
move.l 32*8*16+4(a0),(a1)+
move.l 32*8*17(a0),(a1)+
move.l 32*8*17+4(a0),(a1)+
move.l 32*8*18(a0),(a1)+
move.l 32*8*18+4(a0),(a1)+
move.l 32*8*19(a0),(a1)+
move.l 32*8*19+4(a0),(a1)+
move.l 32*8*20(a0),(a1)+
move.l 32*8*20+4(a0),(a1)+
move.l 32*8*21(a0),(a1)+
move.l 32*8*21+4(a0),(a1)+
move.l 32*8*22(a0),(a1)+
move.l 32*8*22+4(a0),(a1)+
move.l 32*8*23(a0),(a1)+
move.l 32*8*23+4(a0),(a1)+
move.l 32*8*24(a0),(a1)+
move.l 32*8*24+4(a0),(a1)+
move.l 32*8*25(a0),(a1)+
move.l 32*8*25+4(a0),(a1)+
addq.l #8,a0
lea linebuffend-linebuffbegin-208(a1),a1
dbf d0,testinitbuff
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
lea mdistadjust,a4
move.l mdistcurvptr,a3
looop:
; bsr waitvbl
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
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_mfp: equ *+2
bra my_mfp
my_mfp:
dcb blaf-4-1-20-3,$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
; move.w #$007,$ffff8240.w
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
not.w $ffff8240.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
not.w $ffff8240.w
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 ;-4*2,$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
ifne bus
move.l d0,screenadr-nextscrn(a2);~16
endc
ifeq bus
dcb 4,$4e71
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:
dcb 0,$4e71
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 ;digi,$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 ;digi,$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 ;digi,$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 ;digi,$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 ;digi,$4e71
lea back12(pc),a1 ;2
digi2
jmp do_all ;3
back12:
dcb 41-2-2-3,$4e71
dcb 25-22 ;digi,$4e71
lea back22(pc),a1 ;2
digi1
jmp do_all ;3
back22:
dcb 41-2-2-3,$4e71
dcb 25-22 ;digi,$4e71
lea back32(pc),a1 ;2
digi2
jmp do_all ;3
back32:
dcb 41-2,$4e71
dcb 25-22 ;digi,$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 ;digi,$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 ;digi,$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 ;digi,$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 ;digi,$4e71
lea back14(pc),a1 ;2
digi1
jmp do_all ;3
back14:
dcb 41-2-2-3,$4e71
dcb 25-22 ;digi,$4e71
lea back24(pc),a1 ;2
digi2
jmp do_all ;3
back24:
dcb 41-2-2-3,$4e71
dcb 25-22 ;digi,$4e71
lea back34(pc),a1 ;2
digi1
jmp do_all ;3
back34:
dcb 41-2,$4e71
dcb 25-22 ;digi,$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 ;digi,$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 ;digi,$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 ;digi,$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 ;digi,$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:
;write first buffer
movem.w d_0/d_1/d_2/d_3,(a_1) ;~24
lea 26*8(a_1),a_1 ;~8
dcb 5,$4e71
dcb 25-22,$4e71
digi2
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
dcb 25-13,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
dcb 8-3,$4e71
dcb 25-22,$4e71
digi1
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
dcb 25-13,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
dcb 8-3,$4e71
dcb 25-22,$4e71
digi2
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
dcb 25-13,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
swap d_1 ;~4
addx.w d1,d1 ;~4 ;a out
swap d_1 ;~4
addx.l d0,d0 ;~8 ;a in and d out
addx.l d3,d3 ;~8 ;d in and c out
addx.l d2,d2 ;~8 ;c in and b out
addx.w d1,d1 ;~4 ;b in
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8
; dcb 8-3,$4e71
dcb 2,$4e71
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 ;digi,$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 $4E71,2
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:
;write first buffer
movem.w d_0/d_1/d_2/d_3,(a_1) ;~24
lea 26*8(a_1),a_1 ;~8
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 5,$4e71
dcb 25-18,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13+18-22,$4e71
digi1
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 8-3,$4e71
dcb 25-18,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13+18-22,$4e71
digi2
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 8-3,$4e71
dcb 25-18,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13+18-22,$4e71
digi1
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
; dcb 8-3,$4e71
dcb 2,$4e71
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 ;digi,$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 $4E71,2
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:
;write first buffer
movem.w d_0/d_1/d_2/d_3,(a_1) ;~24
lea 26*8(a_1),a_1 ;~8
dcb 5,$4e71
dcb 25-22,$4e71
digi1
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 8-3,$4e71
dcb 25-22,$4e71
digi2
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 8-3,$4e71
dcb 25-22,$4e71
digi1
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
; dcb 8-3,$4e71
dcb 2,$4e71
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 ;digi,$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 $4E71,2
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:
;write first buffer
movem.w d_0/d_1/d_2/d_3,(a_1) ;~24
lea 26*8(a_1),a_1 ;~8
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 5,$4e71
dcb 25-18,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13+18-22,$4e71
digi2
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 8-3,$4e71
dcb 25-18,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13+18-22,$4e71
digi1
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 8-3,$4e71
dcb 25-18,$4e71
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 25-13+18-22,$4e71
digi2
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb 8-2,$4e71
do_mdist2
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
swap d_1
addx.w d1,d1
swap d_1
addx.l d0,d0
addx.l d3,d3
addx.l d2,d2
addx.w d1,d1
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1
dcb 2,$4e71
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 ;digi,$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 $4E71,2
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 ;digi,$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 ;digi,$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,a7 ;;a1
move.l (a7,d1),o_goto ;;a1
lea downthere+512,a7
; dcb 22 ;digi,$4e71
digi2
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
dcb 6-1-2,$4e71
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 *
*****************************************
; 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
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 #57,d0
bne.s no_key
myexit:
;restore digisound
move.w #(256+512/4)-1,d0
lea domino,a0
lea downthere,a1
restdigi:
move.l (a0)+,(a1)+
dbf d0,restdigi
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
asl.w #6,d0
adda.w d0,a5
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
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:
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:
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 70,$4e71
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
move.w #911,$ffff8240.w
move.b #0,$fffffa0b.w ;clr pending
no_int:
tst.b $fffffa0b.w
beq.s no_int
move.w #$00,$ffff8240.w
bra loop
;--------------------------------------------------------------
jsr waitvbl
movem.l black,d0-d7
movem.l d0-d7,$ffff8240.w
movem.l hwpalette,d2-d7/a2-a3
lea $ffff8209.w,a1
moveq #10,d1
movea.l tabentry,a0 ;get back tablepos
move.w #1500,d0
opentopwait2:
dbra d0,opentopwait2
dcb 196-72-2,$4e71
move.b #0,$ffff820a.w
move.w #$007,$ffff8240.w
dcb 8,$4e71
move.b #2,$ffff820a.w
d0todeza3:
movem.l d0-d1/a3,-(sp)
addq.w #1,a3
moveq #3,d1
divu #10000,d0
beq.s smallone
hexdezinit:
move.b #"0",-(a3)
dbra d1,hexdezinit
bsr.s hextodez
addq.w #4,a3
smallone:
swap d0
bsr.s hextodez
movem.l (sp)+,d0-d1/a3
rts
hextodez:
movem.l d1/a3,-(sp)
move.w d0,d1
nexthextodez:
divu #10,d1
swap d1
add.b #"0",d1
move.b d1,-(a3)
clr.w d1
swap d1
bne.s nexthextodez
movem.l (sp)+,d1/a3
rts
;**********************************************************
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:
;This is the famous domino-table. Try to understand it !
dc.w $0000,$0000,$0004,$0000,$0008,$0000,$0010,$0000,$0020,$0000,$0040,$0000,$0080,$0000,$0100,$0000
dc.w $0200,$0000,$0300,$0000,$0380,$0000,$03C0,$0000,$03E0,$0000,$03F0,$0000,$03F8,$0000,$03FC,$0004
dc.w $0004,$0008,$0004,$0010,$0004,$0020,$0004,$0040,$0004,$0080,$0004,$0100,$0004,$0200,$0004,$0300
dc.w $0004,$0380,$0004,$03C0,$0004,$03E0,$0004,$03F0,$0004,$03F8,$0004,$03FC,$0008,$0008,$0010,$0008
dc.w $0020,$0008,$0040,$0008,$0080,$0008,$0100,$0008,$0200,$0008,$0300,$0008,$0380,$0008,$03C0,$0008
dc.w $03E0,$0008,$03F0,$0008,$03F8,$0008,$03FC,$0010,$0010,$0020,$0010,$0040,$0010,$0080,$0010,$0100
dc.w $0010,$0200,$0010,$0300,$0010,$0380,$0010,$03C0,$0010,$03E0,$0010,$03F0,$0010,$03F8,$0010,$03FC
dc.w $0020,$0020,$0040,$0020,$0080,$0020,$0100,$0020,$0200,$0020,$0300,$0020,$0380,$0020,$03C0,$0020
dc.w $03E0,$0020,$03F0,$0020,$03F8,$0020,$03FC,$0040,$0040,$0080,$0040,$0100,$0040,$0200,$0040,$0300
dc.w $0040,$0380,$0040,$03C0,$0040,$03E0,$0040,$03F0,$0040,$03F8,$0040,$03FC,$0080,$0080,$0100,$0080
dc.w $0200,$0080,$0300,$0080,$0380,$0080,$03C0,$0080,$03E0,$0080,$03F0,$0080,$03F8,$0080,$03FC,$0100
dc.w $0100,$0200,$0100,$0300,$0100,$0380,$0100,$03C0,$0100,$03E0,$0100,$03F0,$0100,$03F8,$0100,$03FC
dc.w $0200,$0200,$0300,$0200,$0380,$0200,$03C0,$0200,$03E0,$0200,$03F0,$0200,$03F8,$0200,$03FC,$0300
dc.w $0300,$0380,$0300,$03C0,$0300,$03E0,$0300,$03F0,$0300,$03F8,$0300,$03FC,$0380,$0380,$03C0,$0380
dc.w $03E0,$0380,$03F0,$0380,$03F8,$0380,$03FC,$03C0,$03C0,$03E0,$03C0,$03F0,$03C0,$03F8,$03C0,$03FC
dc.w $03E0,$03E0,$03F0,$03E0,$03F8,$03E0,$03FC,$03F0,$03F0,$03F8,$03F0,$03FC,$03F8,$03F8,$03FC,$03FC
voltab:
; Soundtable from 68000 ST-Magazin
dc.w $0800,$0900
dc.w $0801,$0900
dc.w $0802,$0900
dc.w $0801,$0901
dc.w $0802,$0901
dc.w $0801,$0902
dc.w $0802,$0902
dc.w $0803,$0903
dc.w $0804,$0901
dc.w $0805,$0900
dc.w $0805,$0901
dc.w $0805,$0902
dc.w $0805,$0902
dc.w $0806,$0900
dc.w $0806,$0901
dc.w $0805,$0903
dc.w $0806,$0902
dc.w $0807,$0900
dc.w $0807,$0901
dc.w $0806,$0904
dc.w $0806,$0904
dc.w $0806,$0904
dc.w $0806,$0905
dc.w $0806,$0905
dc.w $0806,$0905
dc.w $0806,$0906
dc.w $0806,$0906
dc.w $0806,$0906
dc.w $0807,$0905
dc.w $0807,$0905
dc.w $0807,$0906
dc.w $0807,$0906
dc.w $0807,$0906
dc.w $0807,$0906
dc.w $0807,$0907
dc.w $0807,$0907
dc.w $0807,$0907
dc.w $0807,$0907
dc.w $0808,$0906
dc.w $0808,$0906
dc.w $0808,$0906
dc.w $0808,$0906
dc.w $0808,$0907
dc.w $0808,$0907
dc.w $0808,$0907
dc.w $0808,$0907
dc.w $0809,$0906
dc.w $0809,$0906
dc.w $0809,$0906
dc.w $0809,$0906
dc.w $0809,$0906
dc.w $0809,$0907
dc.w $0809,$0907
dc.w $0809,$0907
dc.w $0809,$0907
dc.w $080A,$0902
dc.w $080A,$0903
dc.w $080A,$0904
dc.w $080A,$0904
dc.w $080A,$0904
dc.w $080A,$0905
dc.w $080A,$0905
dc.w $080A,$0906
dc.w $080A,$0906
dc.w $080A,$0906
dc.w $080A,$0906
dc.w $080A,$0907
dc.w $080A,$0907
dc.w $080A,$0907
dc.w $080A,$0907
dc.w $080A,$0907
dc.w $080A,$0907
dc.w $080A,$0907
dc.w $080A,$0908
dc.w $080A,$0908
dc.w $080B,$0904
dc.w $080B,$0904
dc.w $080B,$0905
dc.w $080B,$0905
dc.w $080B,$0905
dc.w $080B,$0906
dc.w $080B,$0906
dc.w $080B,$0906
dc.w $080B,$0906
dc.w $080B,$0906
dc.w $080B,$0906
dc.w $080B,$0907
dc.w $080B,$0907
dc.w $080B,$0907
dc.w $080B,$0907
dc.w $080B,$0907
dc.w $080B,$0908
dc.w $080B,$0908
dc.w $080B,$0908
dc.w $080B,$0908
dc.w $080B,$0908
dc.w $080B,$0908
dc.w $080B,$0908
dc.w $080B,$0909
dc.w $080B,$0909
dc.w $080B,$0909
dc.w $080B,$0909
dc.w $080B,$0909
dc.w $080B,$0909
dc.w $080B,$0909
dc.w $080C,$0900
dc.w $080C,$0901
dc.w $080C,$0902
dc.w $080C,$0903
dc.w $080C,$0903
dc.w $080C,$0904
dc.w $080C,$0904
dc.w $080C,$0904
dc.w $080C,$0905
dc.w $080C,$0905
dc.w $080C,$0906
dc.w $080C,$0906
dc.w $080C,$0906
dc.w $080C,$0906
dc.w $080C,$0906
dc.w $080C,$0907
dc.w $080C,$0907
dc.w $080C,$0907
dc.w $080C,$0907
dc.w $080C,$0907
dc.w $080C,$0908
dc.w $080C,$0908
dc.w $080C,$0908
dc.w $080C,$0908
dc.w $080C,$0908
dc.w $080C,$0908
dc.w $080C,$0908
dc.w $080C,$0908
dc.w $080C,$0909
dc.w $080C,$0909
dc.w $080C,$0909
dc.w $080C,$0909
dc.w $080C,$0909
dc.w $080C,$0909
dc.w $080C,$0909
dc.w $080C,$0909
dc.w $080C,$0909
dc.w $080C,$090A
dc.w $080C,$090A
dc.w $080C,$090A
dc.w $080C,$090A
dc.w $080C,$090A
dc.w $080C,$090A
dc.w $080C,$090A
dc.w $080C,$090A
dc.w $080D,$0900
dc.w $080D,$0901
dc.w $080D,$0901
dc.w $080D,$0902
dc.w $080D,$0902
dc.w $080D,$0903
dc.w $080D,$0903
dc.w $080D,$0904
dc.w $080D,$0904
dc.w $080D,$0905
dc.w $080D,$0905
dc.w $080D,$0906
dc.w $080D,$0906
dc.w $080D,$0907
dc.w $080D,$0907
dc.w $080D,$0907
dc.w $080D,$0907
dc.w $080D,$0907
dc.w $080D,$0908
dc.w $080D,$0908
dc.w $080D,$0908
dc.w $080D,$0908
dc.w $080D,$0908
dc.w $080D,$0908
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$0909
dc.w $080D,$090A
dc.w $080D,$090A
dc.w $080D,$090A
dc.w $080D,$090A
dc.w $080D,$090A
dc.w $080D,$090A
dc.w $080D,$090A
dc.w $080D,$090A
dc.w $080C,$090C
dc.w $080C,$090C
dc.w $080C,$090C
dc.w $080C,$090C
dc.w $080C,$090C
dc.w $080C,$090C
dc.w $080C,$090C
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090B
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080D,$090C
dc.w $080E,$0906
dc.w $080E,$0906
dc.w $080E,$0907
dc.w $080E,$0907
dc.w $080E,$0907
dc.w $080E,$0908
dc.w $080E,$0908
dc.w $080E,$0908
dc.w $080E,$0908
dc.w $080E,$0908
dc.w $080E,$0909
dc.w $080E,$0909
dc.w $080E,$0909
dc.w $080E,$090A
;**********************************************************
; Distorted scroller by Gunstick
mdistgraph equ *+2*16 ;the scroller graphics buffer -> bss
rept 100/14
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$114,$007,$007
dc.w $113,$114,$225,$447,$447,$114,$007,$007
dc.w $113,$114,$225,$447,$447,$114,$007,$007
dc.w $113,$114,$225,$447,$447,$114,$007,$007
dc.w $113,$114,$225,$447,$114,$007,$113,$007
dc.w $113,$114,$225,$447,$114,$007,$113,$007
dc.w $113,$114,$225,$447,$114,$007,$113,$007
dc.w $113,$114,$225,$447,$114,$007,$113,$007
dc.w $113,$114,$225,$114,$007,$113,$114,$007
dc.w $113,$114,$225,$114,$007,$113,$114,$007
dc.w $113,$114,$225,$114,$007,$113,$114,$007
dc.w $113,$114,$225,$114,$007,$113,$114,$007
dc.w $113,$114,$114,$007,$113,$225,$114,$007
dc.w $113,$114,$114,$007,$113,$225,$114,$007
dc.w $113,$114,$114,$007,$113,$225,$114,$007
dc.w $113,$114,$114,$007,$113,$225,$114,$007
dc.w $113,$114,$007,$113,$225,$447,$114,$007
dc.w $113,$114,$007,$113,$225,$447,$114,$007
dc.w $113,$114,$007,$113,$225,$447,$114,$007
dc.w $113,$114,$007,$113,$225,$447,$114,$007
dc.w $113,$007,$113,$225,$447,$447,$114,$007
dc.w $113,$007,$113,$225,$447,$447,$114,$007
dc.w $113,$007,$113,$225,$447,$447,$114,$007
dc.w $113,$007,$113,$225,$447,$447,$114,$007
dc.w $003,$113,$225,$447,$447,$447,$114,$007
dc.w $003,$113,$225,$447,$447,$447,$114,$007
dc.w $003,$113,$225,$447,$447,$447,$114,$007
dc.w $003,$113,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
dc.w $113,$114,$225,$447,$447,$447,$114,$007
endr
dc.w $300,$400,$600,$700,$700,$700,$600,$300
dc.w $300,$400,$600,$700,$700,$700,$600,$300
dc.w $300,$400,$600,$700,$700,$700,$600,$300
dc.w $300,$400,$600,$700,$700,$700,$600,$300
rept 100/5
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$070,$000,$000,$000
dc.w $700,$000,$000,$000,$070,$000,$000,$000
dc.w $700,$000,$000,$000,$070,$000,$000,$000
dc.w $700,$000,$000,$000,$070,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
dc.w $700,$000,$000,$000,$000,$000,$000,$000
endr
dc.w $300,$400,$600,$700,$700,$700,$600,$300
dc.w $300,$400,$600,$700,$700,$700,$600,$300
dc.w $300,$400,$600,$700,$700,$700,$600,$300
dc.w $300,$400,$600,$700,$700,$700,$600,$300
rept 100/4
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
dc.w $005,$006,$007,$337,$337,$007,$006,$005
endr
mdistcurv:
rept 35
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:
dc.w 2*0,2*0,2*1,2*0,2*1,2*1,2*2,2*1,2*2,2*2
dc.w 2*3,2*3,2*3,2*4,2*4,2*5,2*6,2*5,2*4,2*4
dc.w 2*3,2*3,2*3,2*2,2*2,2*1,2*2,2*1,2*1,2*1
dc.w -1
hwbounceptr: dc.l hwbouncetab
hwbouncetab:
; dc.w 0,0,0,0,0,0,-1
; dc.w 0,0,230,230,230*2,230,230,0,0,-1
; dc.w 230*12,230*12
; dc.w 230*12,230*12
; dc.w 230*12
; dc.w 230*12
; dc.w 230*12
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 -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
wavetab:
; dc.l byteschief,0
dc.l wordschief
dc.l wordschief
dc.l wordschief
dc.l byteschief
dc.l _nix
dc.l wordhinher
dc.l _nix
dc.l _nix
dc.l hacker,hacker,hacker
dc.l dreieck
dc.l dreieck
dc.l slowdist,slowdist,slowdist,slowdist
dc.l hacker,hacker,hacker
dc.l sinus
dc.l sinus
dc.l sinschief
dc.l sinschief
dc.l bigsin
dc.l bigsin
dc.l sinschief
dc.l sinschief
dc.l sinus
dc.l sinus
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l bytezurueck
dc.l wordschief
dc.l wordschief
dc.l wordschief
dc.l 0 ;end
mwavetab:
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 slowdist
dc.l slowdist
dc.l slowdist
dc.l wordschief
dc.l 0 ;end
hacker:
dc.w 2-1,-2,2,-2,2,-2,2,-2-1
dc.w 4,-4,4,-4,4,-4,4,-4-1
dc.w 6,-6,6,-6,6,-6,6,-6-1
dc.w 8,-8,8,-8,8,-8,8,-8-3
dc.w 12,-12,12,-12,12,-12,12,-12-1
dc.w 14,-14,14,-14,14,-14,14,-14-1
dc.w 16,-16,16,-16,16,-16,16,-16
dc.w 16,-16,16,-16,16,-16,16,-16+1
dc.w 14,-14,14,-14,14,-14,14,-14+1
dc.w 12,-12,12,-12,12,-12,12,-12+3
dc.w 8,-8,8,-8,8,-8,8,-8+1
dc.w 6,-6,6,-6,6,-6,6,-6+1
dc.w 4,-4,4,-4,4,-4,4,-4+1
dc.w 2,-2,2,-2,2,-2,2,-2+1
dc.w 128
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,16
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,-16
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,16
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,-16
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
bytezurueck:
dc.w -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
dc.w -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
dc.w -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
dc.w -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
dc.w -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
dc.w 128
sinschief:
dc.w 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1
dc.w 0,0,1,0,0,1,0,0,2,0,0,1,0,0,1,0,0,2,0,0,2,0,0,2,0,0,2,0,0,1,0,0,1
dc.w 0,0,2,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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
wordschief:
dc.w 2,2,2,2,2,2,2,2
dc.w 2,2,2,2,2,2,2,2
dc.w 2,2,2,2,2,2,2,2
dc.w 2,2,2,2,2,2,2,2
dc.w 2,2,2,2,2,2,2,2
dc.w 2,2,2,2,2,2,2,2
dc.w 2,2,2,2,2,2,2,2
dc.w 2,2,2,2,2,2,2,2
dc.w 2,2,2,2,2,2,2,128
dc.w 0
dc.w 3,2,2,2,2,2,2,2,128
byteschief:
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,128
hops1: dc.w 1
_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
sinus:
dc.w 1,0,0,1,0,0,1,0,0,1,0,0,2,0,0,1,0,0,2,0,0,1,0,0,2,0,0,2
dc.w 0,0,2,0,0,2,0,0,3,0,0,2,0,0,3,0,0,2,0,0,3,0,0,3,0,0,3,0,0,3
dc.w 2,0,0,3,0,0,2,0,0,3,0,0,2,0,0,2,0,0,2,0,0,2,0,0,1,0,0,2,0,0,1,0,0,1,0,0,1,0,0,1
dc.w 0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,0,0,0,0,-1
dc.w -1,0,0,-1,0,0,-1,0,0,-2,0,0,-1,0,0,-2,0,0,-1,0,0,-2,0,0,-2,0,0,-2,0,0,-3,0,0,-2
dc.w -3,0,0,-3,0,0,-3,0,0,-2,0,0,-3,0,0,-2,0,0,-2,0,0,-2,0,0,-1,0,0,-2,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,0,-1,0,0,0,0,0,0
dc.w 128
bigsin: dc.w 1,0,0,1,0,0,1,1,1,2,1,1,2,1,1,2,2,2,3,2,2,3,3,3,3,3,3
dc.w 3,3,3,3,3,3,3,3,2,3,3,2,2,2,1,2,2,1,1,1,0
dc.w 0,0,0,-1,0,0,-1,-1,-1,-2,-1,-1,-2,-2,-2,-3,-2,-2,-3,-3,-3
dc.w -3,-3,-3,-3,-3,-3
dc.w -3,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,0,-1,0,0,0,0,0,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
zero equ 1
one equ 3
two equ 5
three equ 7
four equ 9
five equ 11
six equ 13
seven equ 15
eight equ 17
nine equ 19
dp equ 21
sp equ 23
ka equ 25
mi equ 27
kz equ 29
fz equ 31
az equ 33
a equ 35
b equ 37
c equ 39
d equ 41
e equ 43
f equ 45
g equ 47
h equ 49
i equ 51
j equ 53
k equ 55
l equ 57
m equ 59
n equ 61
o equ 63
p equ 65
q equ 67
r equ 69
s equ 71
t equ 73
u equ 75
v equ 77
w equ 79
x equ 81
y equ 83
z equ 85
space equ 87
;Panic buffer for scrolltext
dc.b 01,0,0,0,0,0,0,0,0,01,0,0,01,0,0,01,0,0,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01
dc.b r,r+1,e,e+1,s,s+1,p,p+1,e,e+1,c,c+1,t,t+1,a,a+1,b,b+1,l,l+1,e,e+1,s,s+1,space,ka,ka+1,h,h+1,a,a+1,v,v+1,e,e+1,space,i,i+1,space
dc.b g,g+1,o,o+1,t,t+1,space,t,t+1,h,h+1,e,e+1,space,n,n+1,a,a+1,m,m+1,e,e+1,space,r,r+1,i,i+1,g,g+1,h,h+1,t,t+1,fz,fz+1,kz,kz+1,space
dc.b e,e+1,n,n+1,o,o+1,u,u+1,g,g+1,h,h+1,space,f,f+1,o,o+1,r,r+1,space,n,n+1,o,o+1,w,w+1,space,space,space,space
dc.b b,b+1,y,y+1,e,e+1,space,az,az+1
dc.b space
scrolltext:
; dc.b zero,zero,zero,zero,zero,zero,zero,zero,0
dc.b space,space,space,h,h+1,e,e+1,l,l+1,l,l+1,o,o+1,space,space
dc.b t,t+1,h,h+1,i,i+1,s,s+1,space,space,i,i+1,s,s+1,space,space
dc.b g,g+1,u,u+1,n,n+1,s,s+1,t,t+1,i,i+1,c,c+1,k,k+1,space,s,s+1
dc.b space,space,space,r,r+1,e,e+1,v,v+1,o,o+1,l,l+1,u,u+1,t,t+1,i,i+1,o,o+1
dc.b n,n+1,a,a+1,r,r+1,y,y+1,space,space,f,f+1,u,u+1,l,l+1,l,l+1,mi,mi+1
dc.b s,s+1,c,c+1,r,r+1,e,e+1,e,e+1,n,n+1,mi,mi+1,s,s+1,c,c+1,r,r+1,e,e+1,e,e+1,n,n+1
dc.b space,az,az+1,az,az+1,space,space,space
dc.b n,n+1,o,o+1,b,b+1,o,o+1,d,d+1,y,y+1
dc.b space,space,c,c+1,a,a+1,n,n+1,space,space,b,b+1,e,e+1,a,a+1,t,t+1
dc.b space,space,u,u+1,space,l,l+1,space,m,m+1,space,az,az+1,az,az+1,az,az+1
dc.b t,t+1,h,h+1,i,i+1,s,s+1,space,s,s+1,c,c+1,r,r+1,e,e+1,e,e+1,n,n+1,space,n,n+1,e,e+1,e,e+1,d,d+1,e,e+1,d,d+1,space
dc.b o,o+1,v,v+1,e,e+1,r,r+1,space,one,one+1,space,m,m+1,o,o+1,n,n+1,t,t+1,h,h+1,space
dc.b f,f+1,u,u+1,l,l+1,l,l+1,t,t+1,i,i+1,m,m+1,e,e+1,space,c,c+1,o,o+1,d,d+1,i,i+1,n,n+1,g,g+1,az,az+1,space
dc.b b,b+1,u,u+1,t,t+1,space,b,b+1,e,e+1,c,c+1,a,a+1,u,u+1,s,s+1,e,e+1,space,o,o+1,f,f+1,space
dc.b t,t+1,h,h+1,e,e+1,space,s,s+1,c,c+1,h,h+1,o,o+1,o,o+1,l,l+1,space,i,i+1,t,t+1,space
dc.b t,t+1,o,o+1,o,o+1,k,k+1,space,m,m+1,e,e+1,space,h,h+1,a,a+1,l,l+1,f,f+1,space
dc.b a,a+1,space,y,y+1,e,e+1,a,a+1,r,r+1,az,az+1,space,i,i+1,space,h,h+1,o,o+1,p,p+1,e,e+1,space
dc.b i,i+1,t,t+1,space,w,w+1,i,i+1,l,l+1,l,l+1,space,b,b+1,e,e+1,space,t,t+1,h,h+1,e,e+1,space
dc.b b,b+1,e,e+1,s,s+1,t,t+1,space,f,f+1,u,u+1,l,l+1,l,l+1,s,s+1,c,c+1,e,e+1,n,n+1,space
dc.b d,d+1,i,i+1,s,s+1,t,t+1,o,o+1,r,r+1,t,t+1,e,e+1,r,r+1,space,e,e+1,v,v+1,e,e+1,r,r+1,space,d,d+1,o,o+1,n,n+1,e,e+1,space,az,az+1,space,space
dc.b g,g+1,r,r+1,e,e+1,e,e+1,t,t+1,i,i+1,n,n+1,g,g+1,s,s+1,space,t,t+1,o,o+1,space,m,m+1,y,y+1,space
dc.b b,b+1,e,e+1,s,s+1,t,t+1,space,f,f+1,r,r+1,i,i+1,e,e+1,n,n+1,d,d+1,s,s+1,dp,dp+1,space
dc.b t,t+1,h,h+1,e,e+1,space,l,l+1,o,o+1,s,s+1,t,t+1,space,b,b+1,o,o+1,y,y+1,s,s+1,space
dc.b ka,ka+1,g,g+1,i,i+1,v,v+1,e,e+1,space,m,m+1,e,e+1,space,a,a+1,l,l+1,l,l+1,space
dc.b y,y+1,o,o+1,u,u+1,r,r+1,space,s,s+1,l,l+1,o,o+1,w,w+1,space,r,r+1,o,o+1,u,u+1,t,t+1,i,i+1,n,n+1,e,e+1,s,s+1,space
dc.b i,i+1,space,w,w+1,i,i+1,l,l+1,l,l+1,space,o,o+1,p,p+1,t,t+1,i,i+1,m,m+1,i,i+1,z,z+1,e,e+1,space,t,t+1,h,h+1,e,e+1,m,m+1,kz,kz+1,space
dc.b r,r+1,e,e+1,s,s+1,p,p+1,e,e+1,c,c+1,t,t+1,a,a+1,b,b+1,l,l+1,e,e+1,s,s+1,space,ka,ka+1,h,h+1,a,a+1,v,v+1,e,e+1,space,i,i+1,space
dc.b g,g+1,o,o+1,t,t+1,space,t,t+1,h,h+1,e,e+1,space,n,n+1,a,a+1,m,m+1,e,e+1,space,r,r+1,i,i+1,g,g+1,h,h+1,t,t+1,fz,fz+1,kz,kz+1,space
dc.b e,e+1,n,n+1,o,o+1,u,u+1,g,g+1,h,h+1,space,f,f+1,o,o+1,r,r+1,space,n,n+1,o,o+1,w,w+1,space,space,space,space
dc.b b,b+1,y,y+1,e,e+1,space,az,az+1
dc.b space,space,space
dc.b 0
even
;**********************************************************
;**********************************************************
prt:
dc.b 27,"Y",32+20,32+1," 000"
str: dc.b "0 ",0
even
psginittab:dc.b 0,$ff,1,$ff,2,$ff,3,$ff,4,$ff,5,$ff,6,0
dc.b 7,$7f,8,7,9,7,10,7,$ff,0
even
hwpalette:
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
message:
dc.b 0
even
lowbyte:
dc.b 0
hwscrolldat:
incbin "includes\hwscroll.dat"
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
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