paradist/PARADIST.S

3899 lines
93 KiB
ArmAsm

backport equ 10
overscan:equ 0
; Double Megadistorter by Gunstick (c) ULM 1990
; we know! it's long, but it works ! And it's from ULM !!!
parallax equ 0
parallay equ 0
bus equ 10
pea start(pc)
move.w #38,-(sp)
trap #14
addq.l #6,sp
clr.w -(sp)
trap #1
noswreset:
rts
start:
move #$2700,sr
move.l #noswreset,$46e.w
bsr waitvbl
lea $ffff8240.w,a2
lea oldpal,a3
movem.l (a2),d0-d7
movem.l d0-d7,(a3)
movem.l hwpalette,d0-d7
movem.l d0-d7,(a2)
lea $ffff8201.w,a0
movep.w 0(a0),d0
lea screenad1,a2
move.w d0,(a2)
move.l #screen,d0
add.l #255,d0
and.l #$ffff00,d0
lea screenad2,a2
move.l d0,(a2)
movea.l d0,a2
ror.l #8,d0
movep.w d0,0(a0)
move.w #0,-(sp)
move.l a2,-(sp)
move.l a2,-(sp)
move.w #5,-(sp)
trap #14
lea 12(sp),sp
move.l screenad2,d0
sub.l #160*6,d0
move.l d0,screenadr
; addi.l #8*5-64,screenadr
movea.l screenad2,a0
move.l #9999,d0
clear_loop:
clr.l (a0)+
dbra d0,clear_loop
movea.l screenad2,a0
; movem.l graphic,d6-d7
movem.l black,d6-d7
move.w #285,d2
allline:
ifne overscan
move.w #20,d1
endc
ifeq overscan
move.w #27,d1
endc
alles:
move.l d6,(a0)+
move.l d7,(a0)+
dbra d1,alles
ifeq overscan
addq.l #6,a0
endc
dbra d2,allline
pea message
move.w #9,-(sp)
; trap #1
addq.w #6,sp
bsr psginit
lea oldres,a0
move.b $ffff8260.w,(a0)
bsr waitvbl
move.b #0,$ffff8260.w
move.b #18,$fffffc02.w
bsr waitvbl
move.b #26,$fffffc02.w
move.l usp,a0
move.l a0,savusp
bsr screen2
move.l savusp,a0
move.l a0,usp
move.b #20,$fffffc02.w
bsr.s waitvbl
move.b #8,$fffffc02.w
bsr.s waitvbl
move.b #2,$ffff820a.w
bsr.s waitvbl
move.b #2,$ffff820a.w
move.b oldres,$ffff8260.w
lea $ffff8201.w,a0
moveq #0,d0
move.w screenad1,d0
movep.w d0,0(a0)
lsl.l #8,d0
move.w #0,-(sp)
move.l d0,-(sp)
move.l d0,-(sp)
move.w #5,-(sp)
trap #14
lea 12(sp),sp
bsr.s psginit
lea oldpal,a0
lea $ffff8240.w,a1
movem.l (a0),d0-d7
movem.l d0-d7,(a1)
bsr.s waitvbl
move #$2300,sr
rts
savusp: ds.l 1
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
rts
psginit:
lea psginittab,a0
nextinit:
move.b (a0)+,d0
cmp.b #$ff,d0
beq.s initend
move.b (a0)+,d1
move.b d0,$ffff8800.w
move.b d1,$ffff8802.w
bra.s nextinit
initend:
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,$ffff8240.w ;mdist
; dcb $4e71,9
move.b #2,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d6,$ffff824c.w ;mdist
; dcb $4e71,4
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,$ffff8240.w ;mdist
; dcb $4e71,9
move.b #2,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l a2,$ffff824c.w ;mdist
; dcb $4e71,4
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,$ffff8240.w ;mdist
; dcb $4e71,9
move.b #2,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d6,$ffff824c.w ;mdist
; dcb $4e71,4
ENDM
dcb $4e71,17-1-11
moveq #0,d7
; megadistorter test
; lea 0(a0,d7),a0
movem.l (a0),d4/d5/d6/d7
screen2:
;free d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 a3 a4 a5 a6 usp
move sr,-(sp)
move #$2700,sr
move.l sp,stack
; clr.b lowbyte
moveq #57,d0
lea endprg,a0
memtest:
move.l #-1,(a0)+
dbf d0,memtest
;**********************************************************
; Distorted scroller by Gunstick
lea linebuffbegin,a0
moveq #25,d0 ;26 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 #scrnadrs,nextscrn
move.l #screen-230*20,cpybufdest
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 lowbyte,3(a2)
bsr waitvbl ;lower border
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 mdistgraph,a5
lea mdistadjust,a4
lea mdistcurv,a3
looop:
bsr waitvbl
movem.l black,d0-d7
movem.l d0-d7,$ffff8240.w
;blaf equ 174-55
blaf equ 174
move.w #1500-30,d0
opentopwait:
dbra d0,opentopwait
dcb $4e71,90+122-16-blaf
loop:
dcb $4e71,blaf-8*0
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
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 $4e71,23 ;-4*2
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 $4e71,9
move.b #2,$ffff8260.w
move.b #0,$ffff8260.w
cont1:
dcb $4e71,28
intoall:
tst.b (a0)+
bne.s mitte
dcb $4e71,6
bra.s cont3
mitte:
move.b #2,$ffff8260.w
move.b #0,$ffff8260.w
cont3:
move.b #asd,$fffffa19.w
dcb $4e71,28
tst.b (a0)+
bne.s rechts1
tst.b (a0)+
bne.s rechts2
dcb $4e71,6
bra.s cont4
rechts1:
move.b #0,$ffff820a.w
addq.w #1,a0
dcb $4e71,3
bra.s cont4
rechts2:
dcb $4e71,4
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 $4e71,3
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 a3 a4 a5 a6 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 #screen-(20*230)+160*6,cpybufdest-nextscrn(a2);~24
dcb $4e71,6
_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 $4e71,4
endc
;free: d0-a6/usp
dcb $4e71,2
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
bra.s cont6
scrnok:
dcb $4e71,3-1+6
bra _scrnok ;~12
hwbounceok:
dcb $4e71,0
bra _hwbounceok ;~12
cont6:
dcb $4e71,5-2
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
a_3 equr a3
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 $4e71,25-5
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
do_mdist
dcb $4e71,27
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-d7/a2/a4-a6/usp
calc_mdist2
dcb $4e71,25 ;digi
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
bra.s cont
notnextwavetab: ;~12 time adjust
dcb $4e71,20
bra.s _notnextwavetab ;~12
notendwavetab: ;~12
bra.s _notendwavetab ;~12
cont:
move.w (a_0)+,d_1 ;~8
dcb $4e71,3-2
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-a6/usp
dcb $4e71,24 ;digi
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
move.l a_0,distwaveptr ;~20
dcb $4e71,3-2
do_mdist2
move.w d_3,distcalc ;~16
scrhigh equ 20
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*8),count ;~20 scroll has 18 lines
distcalcloop: ;(~12)
;free: d0/d3-d7/a1-a2/a4-a6/usp cpy:d0/d3/a1/a2
move.w (a_2)+,d_1 ;~8
move.l a_2,usp
dcb $4e71,4
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
dcb $4e71,4-2
moveq #7,d_2
noshift:
nop
;free: d0/d3-d7/a1-a2/a4-a6/usp cpy:d0/d3/a1/a2
dcb $4e71,25 ;digi
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
do_mdist
dcb $4e71,41-4
dbf d_2,noshift
indistcalcloop:
;free: d0/d3-d7/a1-a2/a4-a6/usp cpy:d0/d3/a1/a2
dcb $4e71,25 ;digi
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
do_mdist
dcb $4e71,4
move.l usp,a_2
lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line
addq.w #8,count ;~4
bne distcalcloop ;~12
dcb $4e71,41-20+5
;free: d0-a6/usp
dcb $4e71,25 ;digi
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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 $4e71,41-4-33
dcb $4e71,25 ;digi
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 $4e71,8-2
do_mdist
bra copydistscroll
;=-| read the new distortions and shift the buffers
; letters of font must be 256 bytes !!!!!!!!
;-> 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 $4e71,2
dcb $4e71,25 ;digi
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 $4e71,5-2
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
movep.w 0(a_1),d_1 ;~16 previous letter : C
movep.w 1(a_1),d_2 ;~16 act letter : K
tst.b d_1 ;~4 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
clr.b d_2 ;~4 K
lea font+(scrhigh*8),a_1 ;~8
add.w count,a_1 ;~20
lea (a_1,d_1),a_2 ;~12 C
; lea (a_1),a_2 ;C
movem.l (a_1,d_2),d_1/d_3 ;~36 K
; movem.w 256(a_1),d_0/d_1/d_2/d_3 ;K
;d0:xxxxxxxxxxxxxxxx
;d1:aaaaaaaabbbbbbbb
;d2:xxxxxxxxxxxxxxxx
;d3:ccccccccdddddddd
move.w d_1,d_2 ;~4
move.w d_3,d_0 ;~4
;d0:xxxxxxxxdddddddd
;d1:aaaaaaaabbbbbbbb
;d2:xxxxxxxxbbbbbbbb
;d3:ccccccccdddddddd
swap d_0 ;~4
swap d_2 ;~4
;d0:ddddddddxxxxxxxxx
;d1:aaaaaaaabbbbbbbbb
;d2:bbbbbbbbxxxxxxxxx
;d3:ccccccccddddddddd
move.l bufptr-shift(a_0),a_1 ;~16
;prepare shifter
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
;uff one line of the 2 letters is in d0-d3
;d0 dddddddd|AAAAAAAA
;d1 aaaaaaaa|BBBBBBBB
;d2 bbbbbbbb|CCCCCCCC
;d3 cccccccc|DDDDDDDD
dcb $4e71,6
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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 $4e71,9-5
vorbufnok:
dcb $4e71,5
dcb $4e71,2
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 $4e71,5
***************************************************
dcb $4e71,25
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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 $4e71,25-13
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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 $4e71,8-3
;---------------------------------------
dcb $4e71,25
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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 $4e71,25-13
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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 $4e71,8-3
;---------------------------------------
dcb $4e71,25
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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 $4e71,25-13
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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 $4e71,8-3
dcb $4e71,2
bra indistcalcloop ;~12 26 nops before right borde
;---------------------------------------
***************************************************
dcb $4e71,25
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
do_mdist
dcb $4e71,38
bra indistcalcloop ;~12 26 nops before right borde
;-< back this line by one word
rueckwaerts:
add.w #16,d_2 ;~8
move.w d_2,(a_0) ;~8 write back new shift
dcb $4e71,2+7
dcb $4e71,25 ;digi
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 $4e71,5-2
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
dcb $4e71,7
;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
movep.w -27(a_1),d_1 ;~16 previous letter : E
movep.w -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
clr.b d_1 ;~4 E
clr.b d_2 ;~4 A
lea font+(scrhigh*8),a_1 ;~12
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
;d0:xxxxxxxxxxxxxxxx
;d1:aaaaaaaabbbbbbbb
;d2:xxxxxxxxxxxxxxxx
;d3:ccccccccdddddddd
calc_mdist02
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,8-2
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
;d0:xxxxxxxxdddddddd
;d1:aaaaaaaabbbbbbbb
;d2:xxxxxxxxbbbbbbbb
;d3:ccccccccdddddddd
swap d_0 ;~4
swap d_2 ;~4
;d0:ddddddddxxxxxxxxx
;d1:aaaaaaaabbbbbbbbb
;d2:bbbbbbbbxxxxxxxxx
;d3:ccccccccddddddddd
;prepare shifter
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
;uff one line of the 2 letters is in d0-d3
; A E
;d0 dddddddd|AAAAAAAA
;d1 aaaaaaaa|BBBBBBBB
;d2 bbbbbbbb|CCCCCCCC
;d3 cccccccc|DDDDDDDD
;write first buffer
dcb $4e71,5
bra call_shifter
copydistscroll:
;**** Copy all the buffers to the screen ****
;loop needs : d0-d6 : copy
; (a6+usp),a2,a1,a0:ptr
; d7:digi sample
; a7:digi sampleptr
; a6: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
lea openlowtab,a1
dcb $4e71,21-1
dcb $4e71,22 ;digi
lea buffer,a6
move.l a6,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
dcb $4e71,8-2
do_mdist
dcb $4e71,11
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(a6),d1
add.w d1,d1
move.w mul208(pc,d1),d1
lea (a6,d1),a2
move.w bufcnt-buffer(a6),d1
;; move.l a0,d0 ;;weg!!
lea cpyjsr,a6 ;;a1
move.l (a6,d1),goto ;;a1
;; move.l d0,a0 ;;weg
;; nop
lea mul208,a6 ;voltab (.w ?)
dcb $4e71,22 ;digi
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
dcb $4e71,6-1-2
goto equ *+2
jmp $00000000 ;(a2)+ -> (a0) uses d1-a1
endcpy:
move.l usp,a6
lea 230(a0),a0
dcb $4e71,2-2
do_mdist
; move.b #2,$ffff820a.w ;sicher is sicher: 50Hz
lea linebuffend-linebuffbegin(a6),a6
move.l a6,usp
nop
nop
nop
subq.w #1,count
bne scrollcpy
ifne backport
move.b #0,$fffffa19.w
move.b #80,$fffffa1f.w
move.b #32,$fffffa07.w
move.b #0,$fffffa0b.w
move.b #2,$fffffa19.w
endc
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
move.w #7,count
scrollcpy2:
move.w shift-buffer(a6),d1
mulu #208,d1
lea (a6,d1),a2
move.w bufcnt-buffer(a6),d1
lea cpyjsr2,a1
move.l (a1,d1),a1
lea mul208,a6 ;voltab (.w ?)
not.w $ffff8240.w
not.w $ffff8240.w
dcb $4e71,22-8 ;digi
jmp (a1) ;(a2)+ -> (a0) uses d1-a1
endcpy2:
move.l usp,a6
lea 230(a0),a0
lea linebuffend-linebuffbegin(a6),a6
move.l a6,usp
subq.w #1,count
bne scrollcpy2
;**********************************************************
;buffercopy
bbb
move.l cpybufdest,a0 ;write there
move.l a0,a2
add.l #230*280*4-230*20,a2 ;read here
rept 5
not.w $ffff8240.w
not.w $ffff8240.w
dcb $4e71,22-8 ;digi
movem.l (a2)+,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
endr
move.l a0,cpybufdest ;position to write during next vbl
cmp.l #scrnadrs+4,nextscrn
bne.s notreset
move.l #screen-(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
ifeq overscan
addi.l #-230,codmod+2
endc
ifne overscan
addi.l #-160,codmod+2
endc
not2:
cmpi.b #104,d0
bne.s not8
ifeq overscan
addi.l #230,codmod+2
endc
ifne overscan
addi.l #160,codmod+2
endc
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
movea.l stack,sp
move (sp)+,sr
rts
no_key:
lea screenadr,a3
codmod:
addi.l #0,(a3)
moveq #0,d0
move.b 3(a3),d0
lsr.l #1,d0
lea str,a3
move.l #"0000",-4(a3)
bsr d0todeza3
pea prt
move.w #9,-(sp)
; trap #1
addq.w #6,sp
;--------------------------------------------------------------
; bra looop
movem.l black,d0-d7
movem.l d0-d7,$ffff8240.w
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
lea mdistgraph,a5
move.l mdistadjustptr,a4
lea mdistcurv,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 #$fffc,d0
asl.w #4,d0
adda.w d0,a5
endc
lea 15*2(a4),a4
calc_mdist
movem.l d3/d4/d5/d6,hwpalette
lea 64(a5),a5
move.b #0,$fffffa0b.w ;clr pending
no_int:
tst.b $fffffa0b.w
beq.s no_int
; move.w #911,$ffff8240.w
move.w #$00,$ffff8240.w
bra loop
;--------------------------------------------------------------
bsr 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 $4e71,196-72-2
move.b #0,$ffff820a.w
move.w #$007,$ffff8240.w
dcb $4e71,8
move.b #2,$ffff820a.w
exit:
movea.l stack,sp
move (sp)+,sr
rts
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:
rept 30
; dc.l cpy00
endr
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
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #$0,$ffff8240.w
dcb $4e71,8-2
do_mdist
ENDM
swdigi MACRO
dcb $4e71,22 ;digi
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #$0,$ffff8240.w
dcb $4e71,8-2
do_mdist
ENDM
cpy00: ;7,9,9,9,9,9
do_mdist
move.b #2,$ffff820a.w
dcb $4e71,2
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 $4e71,0
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)
swdigi
dcb $4e71,2
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 $4e71,10-4
movem.l (a2)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*33(a0)
swdigi
move.b #2,$ffff820a.w
dcb $4e71,6-4
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
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
; dcb $4e71,25
; dcb $4e71,4
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)
;NODIGI
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)
;DIGI
move.l (a2)+,4*17(a0)
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
; dcb $4e71,25
; dcb $4e71,4
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)
;NODIGI
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)
;DIGI
move.l (a2)+,4*15(a0)
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
; dcb $4e71,25
; dcb $4e71,4
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)
;NODIGI
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)
;DIGI
move.l (a2)+,4*13(a0)
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
; dcb $4e71,25
; dcb $4e71,4
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)
;NODIGI
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)
;DIGI
move.l (a2)+,4*11(a0)
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
; dcb $4e71,25
; dcb $4e71,4
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)
;NODIGI
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)
;DIGI
move.l (a2)+,4*9(a0)
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
; dcb $4e71,25
; dcb $4e71,4
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 $4e71,5-4
;NODIGI
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
;DIGI
move.l (a2)+,4*7(a0)
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
; dcb $4e71,25
; dcb $4e71,4
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 $4e71,1
;NODIGI
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 $4e71,5-4
;DIGI
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
; dcb $4e71,25
; dcb $4e71,4
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 $4e71,1
;NODIGI
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 $4e71,5-4
;DIGI
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,5-4
;DIGI
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,10-4
;DIGI
swdigi
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)
;NODIGI
dcb $4e71,2
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,5-4
;NODIGI
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,1
;NODIGI
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,1+6-4
;NODIGI
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,1+6-4
;NODIGI
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,1
;NODIGI
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,1
;NODIGI
swnodigi
move.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)
;DIGI
dcb $4e71,10-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
swnodigi
move.b #2,$ffff820a.w
movem.l (a2)+,c0/c1/c2/c3/c4/c5
movem.l c0/c1/c2/c3/c4/c5,(a0)
;DIGI
dcb $4e71,10+5-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
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)
;DIGI
dcb $4e71,9-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
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)
;DIGI
dcb $4e71,9-4
swdigi
move.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)
;NODIGI+RETURN
dcb $4e71,6-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
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)
;DIGI
dcb $4e71,1+6+7-4
swdigi
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)
;NODIGI+RETURN
dcb $4e71,6+1-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
bra endcpy
cpy21: ;9,9,9,9,6+1,9
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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
swnodigi
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)
;DIGI
dcb $4e71,10-4
swdigi
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)
;NODIGI+RETURN
dcb $4e71,5-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
swnodigi
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)
;DIGI
dcb $4e71,10-4
swdigi
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)
;NODIGI+RETURN
dcb $4e71,5-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
swnodigi
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)
;DIGI
dcb $4e71,10-4
swdigi
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)
;NODIGI+RETURN
dcb $4e71,5-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
swnodigi
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)
;DIGI
dcb $4e71,10-4
swdigi
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)
;NODIGI+RETURN
dcb $4e71,1+6+4-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.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 $4e71,1
;NODIGI
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 $4e71,4-4
;DIGI
swdigi
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 $4e71,2
;NODIGI
swnodigi
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)
;DIGI
dcb $4e71,10-4
swdigi
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)
;NODIGI+RETURN
dcb $4e71,1+4-4
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b (a1)+,$ffff820a.w
; move.b #2,$ffff820a.w
; move.b #$7,$ffff8240.w
; move.b #0,$ffff8240.w
bra endcpy
;
;**********************************************************
section data
;**********************************************************
; Distorted scroller by Gunstick
digi:
; incbin "includes\telgraph.dmn"
mdistgraph equ *+2*16 ;the scroller graphics buffer -> bss
rept 300/13
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$227,$007,$007
dc.w $117,$227,$337,$447,$447,$227,$007,$007
dc.w $117,$227,$337,$447,$447,$227,$007,$007
dc.w $117,$227,$337,$447,$447,$227,$007,$007
dc.w $117,$227,$337,$447,$227,$007,$117,$007
dc.w $117,$227,$337,$447,$227,$007,$117,$007
dc.w $117,$227,$337,$447,$227,$007,$117,$007
dc.w $117,$227,$337,$447,$227,$007,$117,$007
dc.w $117,$227,$337,$227,$007,$117,$227,$007
dc.w $117,$227,$337,$227,$007,$117,$227,$007
dc.w $117,$227,$337,$227,$007,$117,$227,$007
dc.w $117,$227,$337,$227,$007,$117,$227,$007
dc.w $117,$227,$227,$007,$117,$337,$227,$007
dc.w $117,$227,$227,$007,$117,$337,$227,$007
dc.w $117,$227,$227,$007,$117,$337,$227,$007
dc.w $117,$227,$227,$007,$117,$337,$227,$007
dc.w $117,$227,$007,$117,$337,$447,$227,$007
dc.w $117,$227,$007,$117,$337,$447,$227,$007
dc.w $117,$227,$007,$117,$337,$447,$227,$007
dc.w $117,$227,$007,$117,$337,$447,$227,$007
dc.w $117,$007,$117,$337,$447,$447,$227,$007
dc.w $117,$007,$117,$337,$447,$447,$227,$007
dc.w $117,$007,$117,$337,$447,$447,$227,$007
dc.w $117,$007,$117,$337,$447,$447,$227,$007
dc.w $007,$117,$337,$447,$447,$447,$227,$007
dc.w $007,$117,$337,$447,$447,$447,$227,$007
dc.w $007,$117,$337,$447,$447,$447,$227,$007
dc.w $007,$117,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
dc.w $117,$227,$337,$447,$447,$447,$227,$007
endr
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
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
mdistcurv:
rept 35
dc.w 2,2,2,2,2,2,2,2
endr
dc.w 0,2,4,6,8,10,12,14
; 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
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,230*12
dc.w 230*12,230*12
dc.w 230*12,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 screen-scrbase*230+64400*0
dc.l screen-scrbase*230+64400*1
dc.l screen-scrbase*230+64400*2
dc.l screen-scrbase*230+64400*3
dc.l screen-scrbase*230+64400*0+230*20
dc.l screen-scrbase*230+64400*1+230*20
dc.l screen-scrbase*230+64400*2+230*20
dc.l screen-scrbase*230+64400*3+230*20
dc.l screen-scrbase*230+64400*0+230*40
dc.l screen-scrbase*230+64400*1+230*40
dc.l screen-scrbase*230+64400*2+230*40
dc.l screen-scrbase*230+64400*3+230*40
dc.l screen-scrbase*230+64400*0+230*60
dc.l screen-scrbase*230+64400*1+230*60
dc.l screen-scrbase*230+64400*2+230*60
dc.l screen-scrbase*230+64400*3+230*60
dc.l screen-scrbase*230+64400*0+230*80
dc.l screen-scrbase*230+64400*1+230*80
dc.l screen-scrbase*230+64400*2+230*80
dc.l screen-scrbase*230+64400*3+230*80
dc.l screen-scrbase*230+64400*0+230*100
dc.l screen-scrbase*230+64400*1+230*100
dc.l screen-scrbase*230+64400*2+230*100
dc.l screen-scrbase*230+64400*3+230*100
dc.l screen-scrbase*230+64400*0+230*120
dc.l screen-scrbase*230+64400*1+230*120
dc.l screen-scrbase*230+64400*2+230*120
dc.l screen-scrbase*230+64400*3+230*120
dc.l screen-scrbase*230+64400*0+230*140
dc.l screen-scrbase*230+64400*1+230*140
dc.l screen-scrbase*230+64400*2+230*140
dc.l screen-scrbase*230+64400*3+230*140
dc.l screen-scrbase*230+64400*0+230*160
dc.l screen-scrbase*230+64400*1+230*160
dc.l screen-scrbase*230+64400*2+230*160
dc.l screen-scrbase*230+64400*3+230*160
dc.l screen-scrbase*230+64400*0+230*180
dc.l screen-scrbase*230+64400*1+230*180
dc.l screen-scrbase*230+64400*2+230*180
dc.l screen-scrbase*230+64400*3+230*180
dc.l screen-scrbase*230+64400*0+230*200
dc.l screen-scrbase*230+64400*1+230*200
dc.l screen-scrbase*230+64400*2+230*200
dc.l screen-scrbase*230+64400*3+230*200
dc.l screen-scrbase*230+64400*0+230*220
dc.l screen-scrbase*230+64400*1+230*220
dc.l screen-scrbase*230+64400*2+230*220
dc.l screen-scrbase*230+64400*3+230*220
dc.l screen-scrbase*230+64400*0+230*240
dc.l screen-scrbase*230+64400*1+230*240
dc.l screen-scrbase*230+64400*2+230*240
dc.l screen-scrbase*230+64400*3+230*240
dc.l screen-scrbase*230+64400*0+230*260
dc.l screen-scrbase*230+64400*1+230*260
dc.l screen-scrbase*230+64400*2+230*260
; dc.l screen-scrbase*230+64400*3+230*260
; dc.l screen-scrbase*230+64400*0+230*280
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
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
even
font equ *-32*8
incbin "includes\font.bin"
even
wavetab:
; dc.l byteschief,0
dc.l wordschief
dc.l wordschief
dc.l wordschief
dc.l byteschief
dc.l nix
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
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,0,0,2,0,0,2,0,0,2,0,0,3,0,0,3,0,0,3,0,0,4,0,0,4,0,0,4
dc.w 5,0,0,5,0,0,5,0,0,4,0,0,4,0,0,3,0,0,3,0,0,2,0,0,2,0,0,1,0,0,1,0,0,0
dc.w 0,0,0,-1,0,0,-1,0,0,-2,0,0,-2,0,0,-3,0,0,-3,0,0,-4
dc.w -4,0,0,-5,0,0,-5,0,0,-4,0,0,-4,0,0,-4,0,0,-3,0,0,-3
dc.w -3,0,0,-2,0,0,-2,0,0,-2,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,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 space,az,az+1,az,az+1,space,space,space,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 space,space,space,space,space
scrolltext:
rept 10
dc.b space,space,space,space,space
endr
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,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 space,space,space
dc.b 0
dc.b 87,87
dc.b 01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20
dc.b 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40
dc.b 41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60
dc.b 61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80
dc.b 81,82,83,84,85,86,87
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 $0700,$0707,$0474,$0777,$0606,$0505,$0404,$303
dc.w $777,$666,$555,$444,$333,$222,$111,$002
graphic:
dc.w $d555,$3333,$0f0f,$ff
message:
dc.b 0
even
lowbyte:
dc.b 0
hwscrolldat:
incbin "includes\hwscroll.dat"
even
black:
ds.l 8
section bss
stack: ds.l 1
oldpal: ds.w 16
oldres: ds.w 1
screenad1:ds.w 1
screenad2:ds.l 1
screenadr:ds.l 1
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
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
ds.w 230*6
screen:
rept 5
ds.l 15700
endr
endprg:
end
screen:
;************** Digiplayer by GunsticK
;init
lea digi,a3
lea voltab,a4
move.w (a3)+,d3
lea $ffff8800,a5
loop:
btst #6,$fffffa0d.w
bne exit
;************** Domino Digiplayer by GunsticK
moveq #-1,d0 ;~1
move.b (a3),d0 ;~2
add.w d0,d0 ;~1
add.w (a4,d0),d3 ;~4
andi.w #$ff*4,d3 ;~2
move.l (a4,d3),d0 ;~5
movep.l d0,(a5) ;~7
not.w $ffff8240.w
not.w $ffff8240.w
dcb $4e71,128-22-8
moveq #-1,d0 ;~1
move.b (a3)+,d0 ;~2
add.w d0,d0 ;~1
add.w 2(a4,d0),d3 ;~4
andi.w #$ff*4,d3 ;~2
move.l (a4,d3),d0 ;~5
movep.l d0,(a5) ;~7
not.w $ffff8240.w
not.w $ffff8240.w
dcb $4e71,128-22-20-8
cmp.l #digiend,a3
blo.s contdigi
lea digi,a3
lea voltab,a4
move.w (a3)+,d3
_contdigi:
bra loop
contdigi:
bra.s _contdigi
exit:
movea.l $0600.w,a0
jmp (a0)
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
rts
;please leave all section indications unchanged...
;here starts the data section
black:
dc.l 0,0,0,0,0,0,0,0
dc.l 0,0,0,0,0,0,0,0
graphic:
dc.l %01010101010101010011001100110011
dc.l %00001111000011111111111111111111
pal:
dc.w $000,$0221,$0332,$0443,$0554,$0665,$0110,$20
entrylen = 4
even
digi:
dc.w entrylen*$a0
incbin "telgraph.dmn"
digiend:
;end of data section
section bss
;please leave all section indications unchanged...
bss_start: ;here starts the bss
stack: ds.l 1
screenad1: ds.l 1
screenmem: ds.l 14300
bss_end: ;here ends the bss