From fc68e5f82f8d822578a4a0ef2e3d7900fd791a49 Mon Sep 17 00:00:00 2001 From: Georges Kesseler Date: Sun, 19 Feb 2012 00:52:30 +0100 Subject: [PATCH] little changes --- PARADIST.S | 155 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 105 insertions(+), 50 deletions(-) diff --git a/PARADIST.S b/PARADIST.S index 2ae39ea..1d02d3a 100644 --- a/PARADIST.S +++ b/PARADIST.S @@ -376,7 +376,99 @@ cont4: ;INITIALISATIONS ;***** Calc next screenadress **** move.l screenadr,screenadr ;-9 - dcb $4e71,63 + + dcb $4e71,5 + + + + + ;***** 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 + + + movem.l disttable+16,d0-d7/a0-a3 ;copy disttab + movem.l d0-d7/a0-a3,disttable + + dcb $4e71,3 + + move.b #0,$ffff820a.w ;Open right border + move.b #2,$ffff820a.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,$ffff8240.w ;mdist + move.b #2,$ffff8260.w ;Open left border + move.b #0,$ffff8260.w + move.l d3,$ffff824e.w ;mdist + + + lea disttable+48,a_3 ;position to write new + move.l distwaveptr,a_0 ;position in the actual wave + moveq #7,d_0 ;read 8 + moveq #0,d_3 + move.w distcalc,d_2 + + dcb $4e71,27 + +distwaveread: + dcb $4e71,17 ;mdist + 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,17 + bra.s _notnextwavetab ;~12 +notendwavetab: ;~12 + bra.s _notendwavetab ;~12 + +cont: + dcb $4e71,5 + move.b #1,$ffff8260.w ;GunsticK's right border end switch + move.b #0,$ffff8260.w + movem.l d0/d1/d2,$ffff8240.w ;mdist + move.b #2,$ffff8260.w ;Open left border + move.b #0,$ffff8260.w + move.l d3,$ffff824e.w ;mdist + + move.w (a_0)+,d_1 ;~8 + cmp.w #128,d_1 ;~8 + bne.s notnextwavetab ;~8 + move.l wavetabptr,a_1 ;~20 next wave to be read + bne.s notendwavetab ;~8 + lea wavetab,a_1 ;~12 reset wavetabptr + nop +_notendwavetab: + move.l (a_1)+,a_0 ;~12 + move.w (a_0)+,d_1 ;~12 + move.l a_1,wavetabptr ;~20 +_notnextwavetab: + add.w d_1,d_3 ;~4 + add.w d_1,d_2 ;~4 + sub.w 16(a_3),d_2 ;~16 + move.w d_1,16(a_3) ;~12 + move.w d_2,(a_3)+ ;~8 write new curve + + dcb $4e71,1 + dbf d_0,distwaveread ;~12/16 + + move.l a_0,distwaveptr + move.w d_3,distcalc + + + + + ; move.w #221-16,d7 move.w #32,d7 move.b #0,$ffff820a.w ;Open right border @@ -398,53 +490,9 @@ overscanloop: move.b #0,$ffff8260.w - ;***** 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 asd - movem.l disttable+16,d0-d7/a0-a3 ;copy disttab - movem.l d0-d7/a0-a3,disttable - lea disttable+48,a_3 ;position to write new - move.l distwaveptr,a_0 ;position in the actual wave - moveq #7,d_0 ;read 8 - moveq #0,d_3 - move.w distcalc,d_2 -distwaveread: - move.w (a_0)+,d_1 - cmp.w #128,d_1 - bne.s notnextwavetab - move.l wavetabptr,a_1 ;next wave to be read - bne.s notendwavetab - lea wavetab,a_1 ;reset wavetabptr -notendwavetab: - move.l (a_1)+,a_0 - move.w (a_0)+,d_1 - move.l a_1,wavetabptr -_notnextwavetab: - add.w d_1,d_3 - add.w d_1,d_2 - sub.w 16(a_3),d_2 - move.w d_1,16(a_3) - move.w d_2,(a_3)+ ;write new curve -; move.w d_1,d_3 -; sub.w 16(a_3),d_1 ;sub old speed -; move.w d_3,16(a_3) ;save new speed -; add.w d_1,d_2 ;calc new pos -; add d_1,distcalc ;sum up for the next time - dbf d_0,distwaveread - move.l a_0,distwaveptr - move.w d_3,distcalc ;=-| read the new distortions and shift the buffers ; letters of font must be 256 bytes !!!!!!!! lea disttable+8,a_3 ;scroll begins 26 lines before end of screen @@ -464,9 +512,6 @@ indistcalcloop: addq.w #8,count bne.s distcalcloop bra copydistscroll -notnextwavetab: ;time adjust - dcb $4e71,1 - bra.s _notnextwavetab nottextend: lea 1(a_1),a_1 @@ -1320,10 +1365,19 @@ disttable: ds.w 26*2+100 ;adjusttable for the two distorters ds.w 1600 ;panic for table wavetab: -; dc.l dreieck - dc.l sinus + dc.l dreieck + dc.l dreieck +; dc.l sinus dc.l 0 ;end dreieck: + 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 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 @@ -2429,3 +2483,4 @@ black: ds.l 8 screen: ds.l 14300 end +