[atari7800] DMA TIMING

  • From: Christopher Tumber <christophertumber@xxxxxxxxxx>
  • To: atari7800@xxxxxxxxxxxxx
  • Date: Tue, 02 Nov 2004 11:27:15 -0500

Hey guys!!

Can somebody break this down for me, please?

          DMA startup            5-9      cycles
          Header (4 byte)        8        cycles
          Header (5 byte)        12       cycles
          Graphics Reads:
          Direct                 3        cycles
          Indirect/1 byte        6        cycles
          Indirect/2 byte        9        cycles
          Character Map access   3        cycles
          Shutdown Times:
          Last line of zone      10-13    cycles
          Other lines of zone    4 - 7    cycles

The overhead times seem straightforeward, however, what is meant by Direct, 
Indirect/1 byte and Indirect/2 byte? Is that actually Sprite/Character/2 byte 
Character?

If so, does this mean sprites are 3 cycles per byte while 1-byte characters are 
9 cycles per byte? (6 cycles for Indirect + 3 cycles Character Map access) and 
2-byte characters are 12 cycles per 2 bytes (9+3)?

Ouch!

Lastly, while the Software Guide states that all graphics data must be in RAM, 
my impression is that you can use ROM but at a cost of 1 cycle per byte. 
True/false? What about the DL and DLL? Could you leave those in ROM and if so 
what kind of a hit on the header read time would it entail?


Thanks!!

Chris...


Other related posts: