Temporarly copy less lines as there's not enough CPU time left.

Some marcros added to ease integration.
8 copy routines have been integrated: nicely aligned colors.
digisound player code pasted after "end" is inactive.
master
Georges Kesseler 2012-02-20 01:09:14 +01:00
parent 408425066d
commit f2459fb737
1 changed files with 631 additions and 117 deletions

View File

@ -1,5 +1,5 @@
overscan:equ 0 overscan:equ 0
;line 800 ;cpy8: adjust all offsets by -2
; Double Megadistorter by Gunstick (c) ULM 1990 ; Double Megadistorter by Gunstick (c) ULM 1990
;free d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 a3 a4 a5 a6 a7 usp ;free d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 a3 a4 a5 a6 a7 usp
@ -1245,25 +1245,27 @@ copydistscroll:
move.l logbase,a6 ;put it there move.l logbase,a6 ;put it there
add.l #6*160+230*(280-20),a6 ;for hwscroll add.l #6*160+230*(280-20),a6 ;for hwscroll
lea buffer,a4 lea buffer,a4
moveq #18,d0 ;scrollhigh:18 moveq #18-5,d0 ;scrollhigh:18
dcb $4e71,25 dcb $4e71,25
dcb $4e71,25 ;digi dcb $4e71,25 ;digi
dcb $4e71,17 ;mdist dcb $4e71,17 ;mdist
; move.b #0,$ffff820a.w ;Open right border move.b #0,$ffff820a.w ;Open right border
; move.b #2,$ffff820a.w move.b #2,$ffff820a.w
move.b #$70,$ffff8240.w ; move.b #$77,$ffff8240.w
move.b #0,$ffff8240.w ; move.b #0,$ffff8240.w
dcb $4e71,8 dcb $4e71,8
move.b #1,$ffff8260.w ;GunsticK's right border end switch ; move.b #1,$ffff8260.w ;GunsticK's right border end switch
move.b #0,$ffff8260.w ; move.b #0,$ffff8260.w
move.b #7,$ffff8240.w
move.b #0,$ffff8240.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist ; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9 dcb $4e71,9
move.b #2,$ffff8260.w ;Open left border move.b #2,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist move.l d3,$ffff824e.w ;mdist
dcb $4e71,11
scrollcpy: scrollcpy:
move.w shift-buffer(a4),d1 move.w shift-buffer(a4),d1
mulu #208,d1 mulu #208,d1
@ -1280,13 +1282,20 @@ scrollcpy:
dcb $4e71,17 ;mdist dcb $4e71,17 ;mdist
; move.b #0,$ffff820a.w ;Open right border ; move.b #0,$ffff820a.w ;Open right border
; move.b #2,$ffff820a.w ; move.b #2,$ffff820a.w
move.b #$70,$ffff8240.w move.b #$77,$ffff8240.w
move.b #0,$ffff8240.w move.b #7,$ffff8240.w
dcb $4e71,8 dcb $4e71,6
NOT.W $FFFF8240.W ; NOT.W $FFFF8240.W
jmp (a0) ;(a5)+ -> (a6) uses d1-a1 jmp (a0) ;(a5)+ -> (a6) uses d1-a1
endcpy: endcpy:
NOT.W $FFFF8240.W ; NOT.W $FFFF8240.W
move.b #1,$ffff8260.w ;GunsticK's right border end switch
move.b #0,$ffff8260.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
lea 230(a6),a6 lea 230(a6),a6
lea linebuffend-linebuffbegin(a4),a4 lea linebuffend-linebuffbegin(a4),a4
dbf d0,scrollcpy dbf d0,scrollcpy
@ -1488,7 +1497,7 @@ nexthextodez:
;The 26 copyroutines ;The 26 copyroutines
cpyjsr: cpyjsr:
rept 30 rept 30
dc.l cpy00 ;dc.l cpy07
endr endr
dc.l cpy00,cpy01,cpy02,cpy03,cpy04 dc.l cpy00,cpy01,cpy02,cpy03,cpy04
dc.l cpy05,cpy06,cpy07,cpy08,cpy09 dc.l cpy05,cpy06,cpy07,cpy08,cpy09
@ -1509,7 +1518,94 @@ c6 equr d6
c7 equr d7 c7 equr d7
c8 equr a0 c8 equr a0
swnodigi MACRO
dcb $4e71,17 ;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
move.b #1,$ffff8260.w ;GunsticK's right border end switch
move.b #0,$ffff8260.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
ENDM
swdigi MACRO
dcb $4e71,22 ;digi
dcb $4e71,17 ;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
move.b #1,$ffff8260.w ;GunsticK's right border end switch
move.b #0,$ffff8260.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
ENDM
cpy00: ;7,9,9,9,9,9 cpy00: ;7,9,9,9,9,9
; move.b #1,$ffff8260.w ;GunsticK's right border end switch
; move.b #0,$ffff8260.w
move.b #$70,$ffff8240.w
move.b #0,$ffff8240.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*5(a6)
dcb $4e71,6
;NODIGI
nop
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a6)
;DIGI
move.l (a5)+,4*19(a6)
dcb $4e71,10-6
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*20(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*33(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*40(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*47(a6)
;NODIGI+RETURN
dcb $4e71,6
dcb $4e71,17 ;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,25
; dcb $4e71,4
dcb $4e71,6
dcb $4e71,3
bra endcpy
; move.b #1,$ffff8260.w ;GunsticK's right border end switch ; move.b #1,$ffff8260.w ;GunsticK's right border end switch
; move.b #0,$ffff8260.w ; move.b #0,$ffff8260.w
@ -1536,133 +1632,453 @@ cpy00: ;7,9,9,9,9,9
bra endcpy bra endcpy
cpy01: ;2+5,9,9,9,9,9 cpy01: ;2+5,7,7,9,9,9
; move.b #1,$ffff8260.w ;GunsticK's right border end switch
; move.b #0,$ffff8260.w
move.b #$70,$ffff8240.w
move.b #0,$ffff8240.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
movem.l (a5)+,c0/c1 movem.l (a5)+,c0/c1
movem.l c0/c1,4*50(a6) movem.l c0/c1,4*50(a6)
movem.l (a5)+,c0/c1/c2
movem.l c0/c1/c2,(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*3(a6)
;NODIGI
nop
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*10(a6)
;DIGI
move.l (a5)+,4*17(a6)
dcb $4e71,10-6
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*18(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*24(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*31(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*38(a6)
movem.l (a5)+,c0/c1/c2/c3/c4 movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,(a6) movem.l c0/c1/c2/c3/c4,4*45(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 ;NODIGI+RETURN
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*5(a6) dcb $4e71,6
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 dcb $4e71,17 ;mdist
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*14(a6) ; move.b #0,$ffff820a.w ;Open right border
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 ; move.b #2,$ffff820a.w
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*23(a6) move.b #$7,$ffff8240.w
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.b #0,$ffff8240.w
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*32(a6) ; dcb $4e71,25
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 ; dcb $4e71,4
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*41(a6) dcb $4e71,6
dcb $4e71,3
bra endcpy bra endcpy
cpy02: ;4+3,9,9,9,9,9 cpy02: ;4+3,9,9,9,9,9
; move.b #1,$ffff8260.w ;GunsticK's right border end switch
; move.b #0,$ffff8260.w
move.b #$70,$ffff8240.w
move.b #0,$ffff8240.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
movem.l (a5)+,c0/c1/c2/c3 movem.l (a5)+,c0/c1/c2/c3
movem.l c0/c1/c2/c3,4*48(a6) movem.l c0/c1/c2/c3,4*48(a6)
movem.l (a5)+,c0/c1/c2 movem.l (a5)+,c0/c1/c2
movem.l c0/c1/c2,(a6) movem.l c0/c1/c2,(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*3(a6) movem.l c0/c1/c2/c3/c4,4*3(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 ;NODIGI
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*12(a6) nop
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 swnodigi
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*21(a6) movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l c0/c1/c2/c3/c4/c5/c6,4*8(a6)
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*30(a6) ;DIGI
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.l (a5)+,4*15(a6)
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*39(a6) dcb $4e71,10-6
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*16(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*22(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*29(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*36(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*43(a6)
;NODIGI+RETURN
dcb $4e71,6
dcb $4e71,17 ;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,25
; dcb $4e71,4
dcb $4e71,6
dcb $4e71,3
bra endcpy bra endcpy
cpy03: ;6+1,9,9,9,9,9 cpy03: ;6+1,9,9,9,9,9
; move.b #1,$ffff8260.w ;GunsticK's right border end switch
; move.b #0,$ffff8260.w
move.b #$70,$ffff8240.w
move.b #0,$ffff8240.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
movem.l (a5)+,c0/c1/c2/c3/c4/c5 movem.l (a5)+,c0/c1/c2/c3/c4/c5
movem.l c0/c1/c2/c3/c4/c5,4*46(a6) movem.l c0/c1/c2/c3/c4/c5,4*46(a6)
movem.l (a5)+,c0 movem.l (a5)+,c0/c1/c2
movem.l c0,(a6) movem.l c0/c1/c2,(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l (a5)+,c0/c1/c2
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*1(a6) movem.l c0/c1/c2,4*3(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 ;NODIGI
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*10(a6) nop
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 swnodigi
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*19(a6) movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l c0/c1/c2/c3/c4/c5/c6,4*6(a6)
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*28(a6) ;DIGI
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.l (a5)+,4*13(a6)
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*37(a6) dcb $4e71,10-6
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*14(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*20(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*27(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*34(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*41(a6)
;NODIGI+RETURN
dcb $4e71,6
dcb $4e71,17 ;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,25
; dcb $4e71,4
dcb $4e71,6
dcb $4e71,3
bra endcpy bra endcpy
cpy04: ;8,8,9,9,9,9
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7
movem.l c0/c1/c2/c3/c4/c5/c6/c7,4*44(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7
movem.l c0/c1/c2/c3/c4/c5/c6/c7,(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*8(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*17(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*26(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*35(a6)
cpy04: ;8,8,9,9,9,9
; move.b #1,$ffff8260.w ;GunsticK's right border end switch
; move.b #0,$ffff8260.w
move.b #$70,$ffff8240.w
move.b #0,$ffff8240.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*44(a6)
movem.l (a5)+,c0
movem.l c0,4*51(a6)
movem.l (a5)+,c0/c1/c2/c3
movem.l c0/c1/c2/c3,(a6)
;NODIGI
nop
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*4(a6)
;DIGI
move.l (a5)+,4*11(a6)
dcb $4e71,10-6
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*12(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*18(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*25(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*32(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*39(a6)
;NODIGI+RETURN
dcb $4e71,6
dcb $4e71,17 ;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,25
; dcb $4e71,4
dcb $4e71,6
dcb $4e71,3
bra endcpy bra endcpy
cpy05: ;9,1+6,9,9,9,9 cpy05: ;9,1+6,9,9,9,9
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 ; move.b #1,$ffff8260.w ;GunsticK's right border end switch
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*42(a6) ; move.b #0,$ffff8260.w
movem.l (a5)+,c0 move.b #$70,$ffff8240.w
movem.l c0,4*51(a6) move.b #0,$ffff8240.w
movem.l (a5)+,c0/c1/c2/c3/c4/c5 ; movem.l d0/d1/d2,$ffff8250.w ;mdist
movem.l c0/c1/c2/c3/c4/c5,(a6) dcb $4e71,9
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.b #0,$ffff8260.w ;Open left border
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*6(a6) move.b #0,$ffff8260.w
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.l d3,$ffff824e.w ;mdist
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*15(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*24(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*33(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*42(a6)
movem.l (a5)+,c0/c1/c2
movem.l c0/c1/c2,4*49(a6)
movem.l (a5)+,c0/c1
movem.l c0/c1,(a6)
;NODIGI
nop
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*2(a6)
;DIGI
move.l (a5)+,4*9(a6)
dcb $4e71,10-6
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*10(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*16(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*23(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*30(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*37(a6)
;NODIGI+RETURN
dcb $4e71,6
dcb $4e71,17 ;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,25
; dcb $4e71,4
dcb $4e71,6
dcb $4e71,3
bra endcpy bra endcpy
cpy06: ;9,3+4,9,9,9,9 cpy06: ;9,3+4,9,9,9,9
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 ; move.b #1,$ffff8260.w ;GunsticK's right border end switch
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*40(a6) ; move.b #0,$ffff8260.w
movem.l (a5)+,c0/c1/c2 move.b #$70,$ffff8240.w
movem.l c0/c1/c2,4*49(a6) move.b #0,$ffff8240.w
movem.l (a5)+,c0/c1/c2/c3 ; movem.l d0/d1/d2,$ffff8250.w ;mdist
movem.l c0/c1/c2/c3,(a6) dcb $4e71,9
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.b #0,$ffff8260.w ;Open left border
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*4(a6) move.b #0,$ffff8260.w
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.l d3,$ffff824e.w ;mdist
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*13(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*22(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*31(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*40(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*47(a6)
dcb $4e71,5
;NODIGI
nop
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,(a6)
nop
;DIGI
move.l (a5)+,4*7(a6)
dcb $4e71,10-6
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*8(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*14(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*21(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*28(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*35(a6)
;NODIGI+RETURN
dcb $4e71,6
dcb $4e71,17 ;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,25
; dcb $4e71,4
dcb $4e71,6
dcb $4e71,3
bra endcpy bra endcpy
cpy07: ;9,5+2,9,9,9,9 cpy07: ;9,5+2,9,9,9,9
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 ; move.b #1,$ffff8260.w ;GunsticK's right border end switch
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*38(a6) ; move.b #0,$ffff8260.w
movem.l (a5)+,c0/c1/c2/c3/c4 move.b #$70,$ffff8240.w
movem.l c0/c1/c2/c3/c4,4*47(a6) move.b #0,$ffff8240.w
movem.l (a5)+,c0/c1 ; movem.l d0/d1/d2,$ffff8250.w ;mdist
movem.l c0/c1,(a6) dcb $4e71,9
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.b #0,$ffff8260.w ;Open left border
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*2(a6) move.b #0,$ffff8260.w
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 move.l d3,$ffff824e.w ;mdist
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*11(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*20(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*29(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*38(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5
movem.l c0/c1/c2/c3/c4/c5,4*45(a6)
dcb $4e71,1
;NODIGI
nop
swnodigi
movem.l (a5)+,c0
movem.l c0,4*51(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5
movem.l c0/c1/c2/c3/c4/c5,(a6)
dcb $4e71,5
;DIGI
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*6(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*19(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*33(a6)
;NODIGI+RETURN
dcb $4e71,6
dcb $4e71,17 ;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,25
; dcb $4e71,4
dcb $4e71,6
dcb $4e71,3
bra endcpy bra endcpy
cpy08: ;9,7,9,9,9,9 cpy08: ;9,7,9,9,9,9
; move.b #1,$ffff8260.w ;GunsticK's right border end switch
; move.b #0,$ffff8260.w
move.b #$70,$ffff8240.w
move.b #0,$ffff8240.w
; movem.l d0/d1/d2,$ffff8250.w ;mdist
dcb $4e71,9
move.b #0,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*38(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*45(a6)
dcb $4e71,5
;NODIGI
nop
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,(a6)
nop
;DIGI
move.l (a5)+,4*5(a6)
dcb $4e71,10-6
swdigi
movem.l (a5)+,c1/c2/c3/c4/c5/c6
movem.l c1/c2/c3/c4/c5/c6,4*6(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*12(a6)
;NODIGI
dcb $4e71,2
swnodigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*19(a6)
;DIGI
dcb $4e71,10
swdigi
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
movem.l c0/c1/c2/c3/c4/c5/c6,4*26(a6)
movem.l (a5)+,c0/c1/c2/c3/c4
movem.l c0/c1/c2/c3/c4,4*33(a6)
;NODIGI+RETURN
dcb $4e71,6
dcb $4e71,17 ;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,25
; dcb $4e71,4
dcb $4e71,6
dcb $4e71,3
bra endcpy
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8 movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6/c7/c8
movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*36(a6) movem.l c0/c1/c2/c3/c4/c5/c6/c7/c8,4*36(a6)
movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6 movem.l (a5)+,c0/c1/c2/c3/c4/c5/c6
@ -1995,7 +2411,7 @@ cpy25: ;9,9,9,9,9,5+2
digi: digi:
; incbin "d:\telgraph.dmn" ; incbin "telgraph.dmn"
hwbounceptr: dc.l hwbouncetab hwbounceptr: dc.l hwbouncetab
hwbouncetab: hwbouncetab:
@ -2086,7 +2502,7 @@ scrnadrs:
; dc.l screen+64400*0+230*280 ; dc.l screen+64400*0+230*280
dc.l 0 dc.l 0
font equ *-32*8 font equ *-32*8
incbin "d:\font.bin" incbin "font.bin"
even even
wavetab: wavetab:
; dc.l byteschief,0 ; dc.l byteschief,0
@ -2407,11 +2823,12 @@ space equ 87
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,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 dc.b space,space
scrolltext: scrolltext:
; dc.b space,space,space,space,space,space,space
; dc.b space,space,space,space,space,space,space
; dc.b space,space,space,space,space,space,space,0
rept 10
dc.b space,space,space,space,space,space,space dc.b space,space,space,space,space,space,space
dc.b space,space,space,space,space,space,space endr
dc.b space,space,space,space,space,space,space
dc.b space,space,space,space,space,space,space,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 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 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 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
@ -2460,7 +2877,7 @@ lowbyte:
hwscrolldat: hwscrolldat:
incbin "d:\hwscroll.dat" incbin "hwscroll.dat"
even even
section bss section bss
stack: ds.l 1 stack: ds.l 1
@ -2522,3 +2939,100 @@ screen:
endr endr
end 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
move.b (a3),d0
add.w d0,d0
add.w (a4,d0),d3
andi.w #$ff*4,d3
move.l (a4,d3),d0
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