View Single Post
Old 24 May 2019, 14:13   #18
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
So, another lunch time used constructively figuring out this lovely little language :-)

I've managed to get rid of my dirty lines, which has inevitably caused some more questions. Here's what I did first though:

As Graeme pointed out, I put the calculation for the blittersize into memory:

Code:
BlitterSize: dc.l h*bpls*64+bpl/2
and used it thus:

Code:
ClearScreen:
  bsr WaitBlitter
  clr.w BLTDMOD(a6)
  move.l #$01000000,BLTCON0(a6)
  move.l a1,BLTDPTH(a6)
  move.w BlitterSize,BLTSIZE(a6)
  rts
I also changed the DDFSTOP value:

Code:
dc.w DDFSTOP,$b0
I based this off the size of the fetches in 4x mode, basically it fetches 64bits instead of the normal 16bits (hence the 4x).

However, I know this is short of the full display width using my rudimentary table:

Code:
Address Locations: $38 $40 $48 $50 $58 $60 $68 $70 $78 $80 $88 $90 $98 $a0 $a8 $b0 $b8 $c0 $c8 $d0 $d8 $e0 $e8 $f0
x1 fetch mode: SRT|       |       |       |       |       |       |       |       |       |       |STP
x4 fethc mode: SRT|                               |                               |                               |
So the fetch (for DMA?) is 32bits short?

Shoot me down for the stupid assumptions and questions but:

1. How do I ensure that the fetch actually fetches to the end of the screen. I've already determined stopping later causes issues. Do we use $98?

2. I had a look at the BLTSIZV and BLTSIZH register documentation but couldn't find any examples. Can someone explain how they work? I think one is the width, and one the height. But in what? I'm assuming bits?

Thanks again for any help!
DanielAllsopp is offline  
 
Page generated in 0.04877 seconds with 11 queries