[atari7800] Re: Some questions..

  • From: "Dan Boris" <dboris@xxxxxxxxxxx>
  • To: <atari7800@xxxxxxxxxxxxx>
  • Date: Tue, 14 Sep 2004 18:14:57 -0400

I have never worked with a real 7800 so I can't give you definitive
answers but I will take some guesses...

It may be possible to reset the DLL by some tricky manipulation of the
registers but you really shouldn't need to. I don't think they intended
for someone to do a DL on every scanline, you usually assign DL's to
groups of 8 or 16 scanlines. This is really the way the system is setup
to work.

As for the timing, the Maria Specs document from atari-history.com has
different timings then the ones you showed which are from the 7800
Software Guide. The ones in the Maria Specs actually make more sense:

Short Header: 8 cycles
Long Header: 10 cycles

That comes out to 2 cycles per byte.

Graphics, per byte: 3 cycles
Indirect Map Fetch: 3 cycles (plus 1 or 2 graphics fetches)

The Maria Spec doesn't list the Character Map Access sperately, so I am
guessing the the 6 and 9 cycles specified in the Software Guide already
include the Character Map Access. This makes sense:

Direct graphics read: 3 cycles
Indirect/1 Byte: (Character read) 3 cycles + (Graphics read) 3 cycles =
6 cycles
Indirect/2 Bytes: (Character read) 3 cycles + (2 Graphics reads) 6
cycles = 9 cycles.

Hopefully someone with a real 7800 development environment can test
this.

Dan

> -----Original Message-----
> From: atari7800-bounce@xxxxxxxxxxxxx 
> [mailto:atari7800-bounce@xxxxxxxxxxxxx] On Behalf Of Andy Mucho
> Sent: Tuesday, September 14, 2004 5:23 AM
> To: atari7800@xxxxxxxxxxxxx
> Subject: [atari7800] Some questions..
> 
> 
> Newbie hat firmly in place, so bare with me :)
> 
> I've started tinkering with the 7800 now I've got some time 
> on my hands, and it's a lovely machine, but I've got a few 
> questions, that I could probably answer myself if I could run 
> on a real 7800, but I can't ;) I've just bought a PAL 7800, 
> but now need to obtain something to program the bugger with 
> and missed out on the CC2 by a mile, but that and my path to 
> making a dev kit are another story..
> 
> Firstly..
> Is there anyway at all I can force a DLL to restart from a 
> new address, even through using DLIs ? For some little tests 
> I've reached the point where I've got DLs for every scanline, 
> and I've reached the limit of the DLL not being able to be 
> longer than 512 bytes.. Is there anyway I can force the DLL 
> to restart ? Switching the DMA off, point it to new one, then 
> back on, or something ? Ideally being able to have 2 DLLs, 
> one for the top half of the screen, one for the bottom ?
> 
> Also, CharMap access.. I'm confused with the timings ?
> Am I correct in understanding that for example:
> 
>       2 byte wide chars of 20 characters:
>               12 Cycles - 5 byte header
>               20 * 3 Cycles - Character Map Access
>               9 * 20 Cycles - Character Data fetch
>               ---
>               252 Cycles
> 
>       1 byte wide chars of 40 characters:
>               12 Cycles - 5 byte Header
>               40 * 3 Cycles - Character Map Access
>               6 * 40 Cycles - Character Data fetch
>               ---
>               372 Cycles
> 
> These figure just don't seem right to me ? Though I guess 
> they are, but I'm just looking for clarification..
>               
> I've been looking through emulator sources but even then the 
> timings seem to be inconsistent ?
> 
> In general sprite usage I'm in love with this machine and the 
> way it renders
> :)
> 
> One last thing.. I recall seeing somewhere on Erics page that 
> he found the timings for Direct Graphic read from RAM were 2 
> cycles instead of the documented 3 cycles ? I can't find this 
> now, but I'm wondering if this is correct ? Does this apply 
> only to the internal RAM, or does it apply to cart RAM in the 
> case of a SuperCart with RAM ? Just curious..
> 
> Regards
> AndyM00
> 
> PS: On freelists.org trying to find the address to send mail 
> to the list, when you've not received yet any is a bit tricky 
> ;) Nowhere does it simply say atari7800@xxxxxxxxxxxxx! I'm 
> guessing this is the right address..
> 
> 
> 


Other related posts: