This now starts to really look like a demo. Not yet fullscreen though.
CPU time is now completely used as a little routine got added to copy the scroll into double buffer. Could it be more optimized? Yes, but does it have to?master
parent
efdca8522d
commit
a9916c6901
47
PARADIST.S
47
PARADIST.S
|
@ -55,7 +55,8 @@ clear_loop:
|
||||||
dbra d0,clear_loop
|
dbra d0,clear_loop
|
||||||
|
|
||||||
movea.l screenad2,a0
|
movea.l screenad2,a0
|
||||||
movem.l graphic,d6-d7
|
; movem.l graphic,d6-d7
|
||||||
|
movem.l black,d6-d7
|
||||||
move.w #285,d2
|
move.w #285,d2
|
||||||
allline:
|
allline:
|
||||||
ifne overscan
|
ifne overscan
|
||||||
|
@ -122,7 +123,6 @@ alles:
|
||||||
movem.l d0-d7,(a1)
|
movem.l d0-d7,(a1)
|
||||||
|
|
||||||
bsr.s waitvbl
|
bsr.s waitvbl
|
||||||
move.b #0,$ffff820a.w
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -176,7 +176,9 @@ initdist:
|
||||||
move.l a0,distwaveptr
|
move.l a0,distwaveptr
|
||||||
move.l #disttable,disttableptr
|
move.l #disttable,disttableptr
|
||||||
move.l #scrnadrs,nextscrn
|
move.l #scrnadrs,nextscrn
|
||||||
|
move.l #screen-230*20,cpybufdest
|
||||||
|
|
||||||
|
bra kaka
|
||||||
lea font,a0
|
lea font,a0
|
||||||
lea buffer,a1
|
lea buffer,a1
|
||||||
moveq #25,d0 ;init all unshiftet linebuffers
|
moveq #25,d0 ;init all unshiftet linebuffers
|
||||||
|
@ -236,7 +238,7 @@ testinitbuff:
|
||||||
addq.l #8,a0
|
addq.l #8,a0
|
||||||
lea linebuffend-linebuffbegin-208(a1),a1
|
lea linebuffend-linebuffbegin-208(a1),a1
|
||||||
dbf d0,testinitbuff
|
dbf d0,testinitbuff
|
||||||
|
kaka:
|
||||||
;********************************************************
|
;********************************************************
|
||||||
|
|
||||||
lea screenadr,a3
|
lea screenadr,a3
|
||||||
|
@ -381,7 +383,8 @@ cont4:
|
||||||
bne scrnok ;~12
|
bne scrnok ;~12
|
||||||
lea scrnadrs-nextscrn(a3),a0 ;~12
|
lea scrnadrs-nextscrn(a3),a0 ;~12
|
||||||
move.l (a0)+,d0 ;~12
|
move.l (a0)+,d0 ;~12
|
||||||
move.l #screen-(20*230),cpybufdest-nextscrn(a3);~24
|
; move.l #screen-(20*230)+160*6,cpybufdest-nextscrn(a3);~24
|
||||||
|
dcb $4e71,6
|
||||||
_scrnok:
|
_scrnok:
|
||||||
move.l d0,logbase-nextscrn(a3) ;~20
|
move.l d0,logbase-nextscrn(a3) ;~20
|
||||||
move.l a0,(a3) ;~20
|
move.l a0,(a3) ;~20
|
||||||
|
@ -399,7 +402,7 @@ _hwbounceok:
|
||||||
ext.l d1 ;~4
|
ext.l d1 ;~4
|
||||||
add.l d1,d0 ;~8
|
add.l d1,d0 ;~8
|
||||||
move.l d0,screenadr-nextscrn(a3);~16
|
move.l d0,screenadr-nextscrn(a3);~16
|
||||||
; dcb $4e71,4
|
; dcb $4e71,4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1010,7 +1013,28 @@ endcpy:
|
||||||
|
|
||||||
;**********************************************************
|
;**********************************************************
|
||||||
;buffercopy
|
;buffercopy
|
||||||
|
bbb
|
||||||
|
move.l cpybufdest,a6 ;write there
|
||||||
|
move.l a6,a5
|
||||||
|
add.l #230*280*4-230*20,a5 ;read here
|
||||||
|
rept 5
|
||||||
|
movem.l (a5)+,d0-d7/a0-a4
|
||||||
|
movem.l d0-d7/a0-a4,(a6)
|
||||||
|
movem.l (a5)+,d0-d7/a0-a4
|
||||||
|
movem.l d0-d7/a0-a4,52(a6)
|
||||||
|
movem.l (a5)+,d0-d7/a0-a4
|
||||||
|
movem.l d0-d7/a0-a4,104(a6)
|
||||||
|
movem.l (a5)+,d0-d7/a0-a4
|
||||||
|
movem.l d0-d7/a0-a4,156(a6) ;4*13*4=208:1 line copied
|
||||||
|
lea 230(a6),a6 ;next line
|
||||||
|
lea 22(a5),a5
|
||||||
|
endr
|
||||||
|
|
||||||
|
move.l a6,cpybufdest ;position to write during next vbl
|
||||||
|
cmp.l #scrnadrs+4,nextscrn
|
||||||
|
bne.s notreset
|
||||||
|
move.l #screen-(15*230)+160*6,cpybufdest
|
||||||
|
notreset:
|
||||||
;**********************************************************
|
;**********************************************************
|
||||||
|
|
||||||
|
|
||||||
|
@ -1631,6 +1655,7 @@ cpy25: ;9,9,9,9,9,5+2
|
||||||
hwbounceptr: dc.l hwbouncetab
|
hwbounceptr: dc.l hwbouncetab
|
||||||
hwbouncetab:
|
hwbouncetab:
|
||||||
dc.w 230*16,230*16
|
dc.w 230*16,230*16
|
||||||
|
dc.w 0
|
||||||
dc.w 230*15,230*15
|
dc.w 230*15,230*15
|
||||||
dc.w 230*14,230*14
|
dc.w 230*14,230*14
|
||||||
dc.w 230*13,230*12
|
dc.w 230*13,230*12
|
||||||
|
@ -1644,7 +1669,6 @@ hwbouncetab:
|
||||||
dc.w 230*15,230*15
|
dc.w 230*15,230*15
|
||||||
dc.w 230*16,230*16
|
dc.w 230*16,230*16
|
||||||
dc.w 230*16,230*16
|
dc.w 230*16,230*16
|
||||||
dc.w 0
|
|
||||||
scrnadrs:
|
scrnadrs:
|
||||||
dc.l screen+64400*0
|
dc.l screen+64400*0
|
||||||
dc.l screen+64400*1
|
dc.l screen+64400*1
|
||||||
|
@ -1701,12 +1725,15 @@ scrnadrs:
|
||||||
dc.l screen+64400*0+230*260
|
dc.l screen+64400*0+230*260
|
||||||
dc.l screen+64400*1+230*260
|
dc.l screen+64400*1+230*260
|
||||||
dc.l screen+64400*2+230*260
|
dc.l screen+64400*2+230*260
|
||||||
dc.l screen+64400*3+230*260
|
; dc.l screen+64400*3+230*260
|
||||||
|
; dc.l screen+64400*0+230*280
|
||||||
dc.l 0
|
dc.l 0
|
||||||
font equ *-32*8
|
font equ *-32*8
|
||||||
incbin "font.bin"
|
incbin "font.bin"
|
||||||
even
|
even
|
||||||
wavetab:
|
wavetab:
|
||||||
|
; dc.l byteschief,0
|
||||||
|
dc.l hops1
|
||||||
dc.l nix
|
dc.l nix
|
||||||
dc.l nix
|
dc.l nix
|
||||||
dc.l nix
|
dc.l nix
|
||||||
|
@ -1722,6 +1749,7 @@ wavetab:
|
||||||
dc.l byteschief
|
dc.l byteschief
|
||||||
dc.l byteschief
|
dc.l byteschief
|
||||||
dc.l byteschief
|
dc.l byteschief
|
||||||
|
dc.l byteschief
|
||||||
dc.l nix
|
dc.l nix
|
||||||
dc.l nix
|
dc.l nix
|
||||||
dc.l wordhinher
|
dc.l wordhinher
|
||||||
|
@ -1779,6 +1807,7 @@ 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
|
dc.w 1,1,1,1,1,1,1,1,128
|
||||||
|
hops1: dc.w 1
|
||||||
nix: dc.w 0
|
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
|
||||||
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
|
||||||
|
@ -2003,7 +2032,7 @@ linebuffend:
|
||||||
ds.l 2*26*16+1+1+1
|
ds.l 2*26*16+1+1+1
|
||||||
endr
|
endr
|
||||||
|
|
||||||
|
ds.l 230*40
|
||||||
screen:
|
screen:
|
||||||
rept 5
|
rept 5
|
||||||
ds.l 8000
|
ds.l 8000
|
||||||
|
|
Loading…
Reference in New Issue