Page 3 of 3
Posted: Tue Jun 19, 2007 6:33 pm
by Fonzie
I remember kaneda telling me that the DMA banking was 128KB...
I think 128KB is more probable than 64KB because the "DMA autoincrement address" might be 16bit and not 15bit, this do 64Kwords = 128KB.
Posted: Tue Jun 19, 2007 7:01 pm
by Stef
Fonzie wrote:I remember kaneda telling me that the DMA banking was 128KB...
I think 128KB is more probable than 64KB because the "DMA autoincrement address" might be 16bit and not 15bit, this do 64Kwords = 128KB.
Yep, that make sense. Tµee, is your address 128Kb boundary ?
Posted: Tue Jun 19, 2007 8:40 pm
by KanedaFr
ah ah yes!
I remember!! I lost so many hours before Charles came to rescue me on segadev list
I was stuk trying to load a full 320x240 bitmap on screen (I know, I know, pretty stupid but it was a first try!! 4 years ago)
Charles wrote:
> > From: Charles MacDonald
> >Subject: Re: DMA transfert again
> > > I'm back with the DMA transfert....
> > > there is something i don't understand....
> >
> >If you look at the 68000 address space as being divided into 128K
> >segments, you can only do DMA from within a segment to VRAM/CRAM/VSRAM.
> >For example, if you wanted to copy 32K of data starting at $01C000, it
> >would wrap back to $000000 as the 128K limit would be reached.
>
>
>so...if i DMA data from block not between
>0x000000=>0x01FFFF OR
>0x020000=>0x03FFFF OR
>0x040000=>0x05FFFF OR
>...
>something will go wrong ?
>
>
> >This limit is because the VDP seems to only increment the lower 16 bits
> >of the DMA source address while performing DMA. These bits select a word
> >address, so you have a range of 128K total. You'd have to manually
> >re-write the remaining bits in reg22. Sorry to say I didn't mention this
> >in my doc.
I don't remember if I don't put a check on KMod about that...at least I planned to do so...
Posted: Wed Jun 20, 2007 10:37 am
by TmEE co.(TM)
Yes Yes, it is 128K not 64K, why isn't it documented I wonder ?
As for Z80 and DMA, SEGA manual says this:
The 68K is stopped during memory to VRAM/CRAM/VSRAM DMA, but the Z80 continues to
run as long as it does not attempt access to the 68K memory space.
I guess everyone has misunderstood this, Z80 will not CRASH, but just HALTs until DMA is complete.