Added some code which plays the digit without anything else. Press any key

to start the demo and listen to the difference. That's how it sounds when
you don't play a sample every time. It's only 7.5kHz.
master
Georges Kesseler 2012-02-21 21:47:30 +01:00
parent 4b6672abcf
commit bd02f08380
1 changed files with 61 additions and 44 deletions

View File

@ -1,9 +1,4 @@
backport equ 10
;********* what to do :
; read predigi in hwscroll and distcalc loops
overscan:equ 0
; Double Megadistorter by Gunstick (c) ULM 1990
; we know! it's long, but it works ! And it's from ULM !!!
@ -265,11 +260,13 @@ digi1 MACRO
; bne.s *+4
; illegal
moveq #-1,d6
move.b (a6),d6
add.w d6,d6
add.w (a7,d6),d7
andi.w #$ff*4,d7
moveq #-1,d6 ;~1
move.b (a6),d6 ;~2
add.w d6,d6 ;~1
add.w (a7,d6),d7 ;~4
; move.w #$700,$ffff8240.w
; move.w #$007,$ffff8240.w
andi.w #$ff*4,d7 ;~2
move.l (a7,d7),d6
movep.l d6,$ffff8800-512-downthere(a7) ;~7
@ -286,6 +283,8 @@ digi2 MACRO
move.b (a6)+,d6 ;~2
add.w d6,d6 ;~1
add.w 2(a7,d6),d7 ;~4
; move.w #$070,$ffff8240.w
; move.w #$007,$ffff8240.w
andi.w #$ff*4,d7 ;~2
move.l (a7,d7),d6 ;~5
@ -296,7 +295,7 @@ digi2 MACRO
screen2:
;free d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 a3 a4 a5 a7 usp
;free d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 -- -- -- a7 usp
move sr,-(sp)
move #$2700,sr
move.l sp,stack
@ -322,7 +321,7 @@ prepdigi:
lea downthere+512,a7
lea digisound-2,a6
move.w (a6)+,d7
move.l a6,digiptr
;**********************************************************
; Distorted scroller by Gunstick
@ -349,16 +348,16 @@ initdist:
move.l #scrnadrs,nextscrn
move.l #screen-230*20,cpybufdest
bra kaka
; bra kaka
lupo:
move.w #74,d0
ll2:
digi1
dcb $4e71,256
dcb $4e71,512/2-22
digi2
dcb $4e71,256
dcb $4e71,512/2-22-3
dbf d0,ll2
@ -371,7 +370,8 @@ ll2:
_digiok:
btst #0,$fffffc00.w
beq lupo
bra exit
move.l a6,digiptr
bra kaka
@ -479,7 +479,7 @@ firsttopwait:
move.l a0,tabentry-screenadr(a2) ;~16 save tablepos
;ULM Hardware Scrolling END OF PART 1
lea predigi,a6
lea mdistgraph,a5
lea mdistadjust,a4
move.l mdistcurvptr,a3
@ -506,7 +506,7 @@ opentopwait:
dcb $4e71,90+122-16-blaf
loop:
dcb $4e71,blaf-4
dcb $4e71,blaf-4-1
move.w d7,digswitch
movem.l hwpalette,d2-d7/a1-a2
move.l a1,usp
@ -574,7 +574,9 @@ mitte:
move.b #0,$ffff8260.w
cont3:
move.b #asd,$fffffa19.w
dcb $4e71,28
move.l (a6)+,d1 ;~3
movep.l d1,$ffff8800-512-downthere(a7) ;~7
dcb $4e71,28-10
tst.b (a0)+
bne.s rechts1
tst.b (a0)+
@ -611,7 +613,7 @@ cont4:
;INITIALISATIONS
;***** Calc next screenadress ****
;free: d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 a3 a4 a5 a7 usp
;free: d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 -- -- -- -- a7 usp
lea nextscrn,a2 ;~12
move.l (a2),a0 ;~20
move.l (a0)+,d0 ;~12
@ -646,7 +648,7 @@ _hwbounceok:
;free: d0-a7/usp
dcb $4e71,2
addq.l #4,a6 ;no digi this line
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
@ -674,7 +676,6 @@ 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
@ -684,16 +685,21 @@ disthigh equ 20
move.l disttable+distspeed*2+7*4,disttable+7*4
dcb $4e71,25-5
dcb $4e71,25-5-10
move.l (a6)+,d6 ;~3
movep.l d6,$ffff8800-512-downthere(a7) ;~7
calc_mdist
calc_mdist
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,6
do_mdist
move.w digswitch,d7
; digi2
dcb $4e71,27-4
move.l a6,usp ;~1
move.l digiptr,a6
dcb $4e71,27-4-5-1
lea disttable+disthigh*2-distspeed*2,a_1 ;position to write new
move.l distwaveptr,a_0 ;position in the actual wave
@ -703,10 +709,15 @@ disthigh equ 20
distwaveread:
;free: d4-d7/a2/a4-a7/usp
;free: d4-d5/usp
dcb $4e71,25-10-2 ;digi
; digi1
move.l usp,a2 ;~1
move.l (a2)+,d6 ;~3
move.l a2,usp ;~1
movep.l d6,$ffff8800-512-downthere(a7) ;~7
dcb $4e71,25 ;digi
; digi1
calc_mdist2
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
@ -744,7 +755,11 @@ _notnextwavetab:
;free: d1-d2/d4-d7/a0-a7/usp
; digi2
dcb $4e71,24
move.l usp,a2 ;~1
dcb $4e71,24-10-1-1
move.l (a2)+,d6 ;~3
move.l a2,usp
movep.l d6,$ffff8800-512-downthere(a7) ;~7
calc_mdist2
@ -778,8 +793,8 @@ distcalcloop: ;(~12)
noshift:
dcb $4e71,6-2-3
;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2
digi1
lea back1(pc),a1 ;2
digi1
jmp do_all ;3
do_all:
calc_mdist
@ -797,9 +812,9 @@ do_all:
jmp (a1) ;2
back1:
dcb $4e71,41-2-2-3
digi2
dcb $4e71,25-22 ;digi
lea back2(pc),a1 ;2
digi2
jmp do_all ;3
back2:
dcb $4e71,41-4-2-2
@ -849,20 +864,20 @@ noshift2:
do_mdist
dcb $4e71,41-2-3
dcb $4e71,25-22 ;digi
digi2
lea back12(pc),a1 ;2
digi2
jmp do_all ;3
back12:
dcb $4e71,41-2-2-3
digi1
dcb $4e71,25-22 ;digi
lea back22(pc),a1 ;2
digi1
jmp do_all ;3
back22:
dcb $4e71,41-2-2-3
dcb $4e71,25-22 ;digi
digi2
lea back32(pc),a1 ;2
digi2
jmp do_all ;3
back32:
dcb $4e71,41-2
@ -911,14 +926,14 @@ distcalcloop3: ;(~12)
noshift3:
dcb $4e71,6-2-3
;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2
digi2
lea back13(pc),a1 ;2
digi2
jmp do_all ;3
back13:
dcb $4e71,41-2-2-3
digi1
dcb $4e71,25-22 ;digi
lea back23(pc),a1 ;2
digi1
jmp do_all ;3
back23:
dcb $4e71,41-4-2-2
@ -970,20 +985,20 @@ noshift4:
do_mdist
dcb $4e71,41-2-3
dcb $4e71,25-22 ;digi
digi1
lea back14(pc),a1 ;2
digi1
jmp do_all ;3
back14:
dcb $4e71,41-2-2-3
digi2
dcb $4e71,25-22 ;digi
lea back24(pc),a1 ;2
digi2
jmp do_all ;3
back24:
dcb $4e71,41-2-2-3
dcb $4e71,25-22 ;digi
digi1
lea back34(pc),a1 ;2
digi1
jmp do_all ;3
back34:
dcb $4e71,41-2
@ -2533,7 +2548,7 @@ endscrollcpy:
move.b #0,$fffffa0b.w
move.b #2,$fffffa19.w
endc
c0 equr d0
c1 equr d1
c2 equr d2
@ -2886,13 +2901,13 @@ calcpredigi:
andi.w #$ff*4,d7 ;~2
move.l (a7,d7),(a0)+
move.l (a7,d7),(a0)+
move.l a6,digiptr
; endc
dcb $4e71,150
move.l (a1)+,d6
move.l a1,a6
move.l (a6)+,d6 ;~3
movep.l d6,$ffff8800-512-downthere(a7) ;~7
move.w #911,$ffff8240.w
move.b #0,$fffffa0b.w ;clr pending
no_int:
@ -6368,6 +6383,8 @@ disttableptr:
ds.l 1 ;pointer to scrolldisttable
disttable:
ds.w 20*2 ;scrolldisttable
digiptr:
ds.l 1 ;ptr to begin digi after vbl
predigi:
ds.l 20 ;20 lines predigitized (10*2 values)
mactcurv: