Some code moving around. Not sure what this did, but the assembled result

has now vertical bars instead of scroll text. Hmm vertical bars... playfield.
master
Georges Kesseler 2012-02-19 00:48:22 +01:00
parent 9a76b1d84d
commit 63d9ec0d8a
1 changed files with 146 additions and 78 deletions

View File

@ -174,7 +174,7 @@ initdist:
move.l a0,wavetabptr move.l a0,wavetabptr
move.l (a0),a0 move.l (a0),a0
move.l a0,distwaveptr move.l a0,distwaveptr
move.l #megadistadjusttable,megadistadjust move.l #disttable,disttableptr
lea font,a0 lea font,a0
@ -364,11 +364,6 @@ cont4:
;HERE WE ARE SYNCHRON ;HERE WE ARE SYNCHRON
;These lines are to be used if the screen uses left border ;These lines are to be used if the screen uses left border
ifne overscan
dcb $4e71,4
movem.l d2-d7/a2-a3,$ffff8240.w
endc
ifeq overscan
dcb $4e71,3 dcb $4e71,3
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
@ -376,35 +371,35 @@ cont4:
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
movem.l d5-d7/a2-a3,12+$ffff8240.w movem.l d5-d7/a2-a3,12+$ffff8240.w
dcb $4e71,72-3 ;**********************************************************
; move.w #221-16,d0 ; Distorted scroller by Gunstick
move.w #32,d0 ;INITIALISATIONS
overscanloop: ;***** Calc next screenadress ****
nop move.l screenadr,screenadr ;-9
nop dcb $4e71,63
nop ; move.w #221-16,d7
move.w #32,d7
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
dcb $4e71,8 dcb $4e71,8
overscanloop:
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
dcb $4e71,9 movem.l d0/d1/d2,$ffff8240.w ;mdist
move.b #2,$ffff8260.w ;Open left border move.b #2,$ffff8260.w ;Open left border
move.b #0,$ffff8260.w
move.l d3,$ffff824e.w ;mdist
dcb $4e71,83
move.b #0,$ffff820a.w ;Open right border
move.b #2,$ffff820a.w
dcb $4e71,5
dbra d7,overscanloop
move.b #1,$ffff8260.w ;GunsticK's right border end switch
move.b #0,$ffff8260.w move.b #0,$ffff8260.w
dcb $4e71,84-3
dbra d0,overscanloop
nop
endc
;**********************************************************
; Distorted scroller by Gunstick
;***** Calc next screenadress ****
move.l screenadr,screenadr ;wow!
;***** Do the 8 following distorter entrys **** ;***** Do the 8 following distorter entrys ****
;; first copy the wave to the megadistadjusttable ;; first copy the wave to the disttable
;Registerdefs: take care of the order. Modify also the addx.l !!!! ;Registerdefs: take care of the order. Modify also the addx.l !!!!
d_0 equr d0 d_0 equr d0
@ -415,11 +410,14 @@ a_0 equr a0
a_1 equr a1 a_1 equr a1
a_2 equr a2 a_2 equr a2
a_3 equr a3 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 move.l distwaveptr,a_0 ;position in the actual wave
move.l megadistadjust,a_3 ;position in the adjust table
add #274,a_3 ;new: behind
moveq #7,d_0 ;read 8 moveq #7,d_0 ;read 8
moveq #0,d_3
move.w distcalc,d_2
distwaveread: distwaveread:
move.w (a_0)+,d_1 move.w (a_0)+,d_1
cmp.w #128,d_1 cmp.w #128,d_1
@ -432,20 +430,24 @@ notendwavetab:
move.w (a_0)+,d_1 move.w (a_0)+,d_1
move.l a_1,wavetabptr move.l a_1,wavetabptr
_notnextwavetab: _notnextwavetab:
move.w d_1,(-274-8)*2(a_3) ;before add.w d_1,d_3
move.w d_1,(a_3)+ ;behind 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 dbf d_0,distwaveread
move.l a_0,distwaveptr move.l a_0,distwaveptr
; add.w #8*2,a_3 move.w d_3,distcalc
cmp.l #megadistadjusttable+276*4,a_3
bmi.s ok
; lea (-274-8)*2(a_3),a_3
ok:
; move.l a_3,megadistadjust
;=-| read the new distortions and shift the buffers ;=-| read the new distortions and shift the buffers
; letters of font must be 256 bytes !!!!!!!! ; letters of font must be 256 bytes !!!!!!!!
lea -12*2(a_3),a_3 ;scroll begins 32 lines before end of screen lea disttable+8,a_3 ;scroll begins 26 lines before end of screen
lea shift,a_0 ;pointer to the shifts lea shift,a_0 ;pointer to the shifts
move.w #-(26*8),count ;scroll has 26 lines move.w #-(26*8),count ;scroll has 26 lines
distcalcloop: distcalcloop:
@ -538,7 +540,7 @@ _nottextend:
movem.w d_0/d_1/d_2/d_3,(a_1) ;~28 movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8 lea 26*8(a_1),a_1 ;~8
endr endr
asd:
cmp.w #25*4,bufcnt-shift(a_0) cmp.w #25*4,bufcnt-shift(a_0)
blo.s vorbufok blo.s vorbufok
move.w #0,bufcnt-shift(a_0) ;screenwidth = 26 words move.w #0,bufcnt-shift(a_0) ;screenwidth = 26 words
@ -552,7 +554,8 @@ vorbufok:
;-< back this line by one word ;-< back this line by one word
rueckbufok: rueckbufok:
dcb $4e71,1 ; subq.w #4,bufcnt-shift(a_0)
sub.l #8,bufptr-shift(a_0)
bra.s _rueckbufok bra.s _rueckbufok
rueckwaerts: rueckwaerts:
add.w #16,d_2 add.w #16,d_2
@ -577,34 +580,54 @@ _rueckbufok:
clr.b d_1 ;E clr.b d_1 ;E
clr.b d_2 ;A clr.b d_2 ;A
lea font,a_1 lea font,a_1
lea font+(26*8),a_1
add.w count,a_1
lea (a_1,d_1),a_2 ;E lea (a_1,d_1),a_2 ;E
movem.w (a_1,d_2),d_0/d_1/d_2/d_3 ;A movem.l (a_1,d_2),d_1/d_3 ;A
;write first buffer ;d0:xxxxxxxxxxxxxxxx
;d1:aaaaaaaabbbbbbbb
;d2:xxxxxxxxxxxxxxxx
;d3:ccccccccdddddddd
move.l bufptr-shift(a_0),a_1 move.l bufptr-shift(a_0),a_1
movem.w d_0/d_1/d_2/d_3,(a_1) move.w d_1,d_2
;prepare shifter move.w d_3,d_0
;d0:xxxxxxxxdddddddd
;d1:aaaaaaaabbbbbbbb
;d2:xxxxxxxxbbbbbbbb
;d3:ccccccccdddddddd
swap d_0 swap d_0
swap d_1
swap d_2 swap d_2
swap d_3 ;d0:ddddddddxxxxxxxxx
move.w (a_2)+,d_3 ;E ;d1:aaaaaaaabbbbbbbbb
;d2:bbbbbbbbxxxxxxxxx
;d3:ccccccccddddddddd
move.l bufptr-shift(a_0),a_1
;prepare shifter
move.w (a_2)+,d_0 move.w (a_2)+,d_0
move.w (a_2)+,d_1 move.w (a_2)+,d_1
move.w (a_2)+,d_2 move.w (a_2)+,d_2
move.w (a_2)+,d_3 ;E
;uff one line of the 2 letters is in d0-d3 ;uff one line of the 2 letters is in d0-d3
; A E ; A E
;d0 bbbbbbbb|AAAAAAAA ;d0 dddddddd|AAAAAAAA
;d1 cccccccc|BBBBBBBB ;d1 aaaaaaaa|BBBBBBBB
;d2 dddddddd|CCCCCCCC ;d2 bbbbbbbb|CCCCCCCC
;d3 aaaaaaaa|DDDDDDDD ;d3 cccccccc|DDDDDDDD
;write first buffer
movem.w d_0/d_1/d_2/d_3,(a_1)
lea 26*8(a_1),a_1 ;~8
rept 15 rept 15
swap d_3 ;~4 move #0,ccr
addx.w d3,d3 ;~4 ;got a bit for A swap d_1 ;~4
swap d_3 ;~4 addx.w d1,d1 ;~4 ;a out
addx.l d0,d0 ;~8 ;a in and b out swap d_1 ;~4
addx.l d1,d1 ;~8 ;b in and c out addx.l d0,d0 ;~8 ;a in and d out
addx.l d2,d2 ;~8 ;c in and d out addx.l d3,d3 ;~8 ;d in and c out
addx.w d3,d3 ;~4 ;d in 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 movem.w d_0/d_1/d_2/d_3,(a_1) ;~28
lea 26*8(a_1),a_1 ;~8 lea 26*8(a_1),a_1 ;~8
endr endr
@ -630,7 +653,7 @@ scrollcpy:
move.w bufcnt-buffer(a4),d1 move.w bufcnt-buffer(a4),d1
lea cpyjsr,a0 lea cpyjsr,a0
move.l (a0,d1),a0 move.l (a0,d1),a0
jsr (a0) ;(a5)+ -> (a6) ; jsr (a0) ;(a5)+ -> (a6)
lea 230(a6),a6 lea 230(a6),a6
lea linebuffend-linebuffbegin(a4),a4 lea linebuffend-linebuffbegin(a4),a4
dbf d0,scrollcpy dbf d0,scrollcpy
@ -1284,43 +1307,77 @@ font equ *-32*8
even even
count: count:
dc.l 0 ;for some dbf without register dc.l 0 ;for some dbf without register
distcalc:
dc.w 0
distwaveptr: distwaveptr:
dc.l 0 ;pointer in one distwave dc.l 0 ;pointer in one distwave
wavetabptr: wavetabptr:
dc.l 0 ;pointer to the next wave to be played dc.l 0 ;pointer to the next wave to be played
megadistadjust: disttableptr:
dc.l 0 ;pointer to the distorter adjust table dc.l 0 ;pointer to the distorter adjust table
ds.w 1600 ;panic for table ds.w 1600 ;panic for table
megadistadjusttable: disttable:
dcb 3,274*2+100 ;adjusttable for the two distorters ds.w 26*2+100 ;adjusttable for the two distorters
ds.w 1600 ;panic for table ds.w 1600 ;panic for table
wavetab: wavetab:
dc.l dreieck ; dc.l dreieck
dc.l sinus
dc.l 0 ;end dc.l 0 ;end
; !!!!!! negativ = normal scroll direction !!!!!!
dreieck: 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,1,1,1,1,1,1,1
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 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 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 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 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 1,1,1,1,1,1,1,1
dc.w 1,1,1,1,1,1,1,1
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,0 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 0,0,0,0,0,0,0,0,128
dc.w 16,16,16,16,16,16,16,16 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 -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 1,1,1,1,1,1,1,1 dc.w 1,1,1,1,1,1,1,1
@ -1328,8 +1385,19 @@ dreieck:
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 dc.w 128
sinus:
; dc.w 1,0,0,0,1,0,0,0,-1,0,0,-1,0,0,0,128
; dc.w 1,1,1,1,2,0,0,0,3,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0
; dc.w -1,0,0,0,-2,0,0,0,-2,0,0,0,-1,0,0,0,0,0,0,0,128
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
;Panic buffer for scrolltext ;Panic buffer for scrolltext
dc.b 01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01 dc.b 01,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 01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01 dc.b 01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01
scrolltext: scrolltext:
dc.b 87,87 dc.b 87,87