![Commodore Amiga A1000 Hardware Reference Manual Download Page 116](http://html1.mh-extra.com/html/commodore/amiga-a1000/amiga-a1000_hardware-reference-manual_2643377116.webp)
SELECTING A DMA CHANNEL AND SETTING THE POINTERS
In deciding which DMA channel to use, you should take into consideration the colors
assigned to the sprite and the sprite's video priority.
The sprite DMA channel uses two pointers to read in sprite data and control words. During
the vertical blanking interval before the first display of the sprite, you need to write the
sprite's memory address into these pointers. The pointers for each sprite are called
SPRxPTH and SPRxPTL, where "x" is the number of the sprite DMA channel. SPRxPTH
contains the high three bits of the memory address of the first word in ,the sprite and
SPRxPTL contains the low sixteen bits. The least significant bit of SPRxPTL is ignored, as
sprite data must be word aligned. Thus, only fifteen bits of SPRxPTL are used. As usual,
you can write a long word into SPRxPTH.
In the following example the processor initializes the data pointers for sprite 0. Normally,
this is done by the Copper. The sprite is at address $20000.
MOVE.L #$20000,CUSTOM ;Write S20000 to sprite 0 pointer...
These pointers are dynamic; they are incremented by the sprite DMA channel to point first
to the control words, then to the data words, and finally to the end-of-data words. After
reading in the sprite control information and storing it in other registers, they proceed to
read in the color descriptor words. The color descriptor words are stored in sprite data
registers, which are used by the sprite DMA channel to display the data on screen. For
more information about how the sprite DMA channels handle the display, see the
"Hardware Details" section below.
RESETTING THE ADDRESS POINTERS
For one single display field, the system will automatically read the data structure and
produce the sprite on-screen in the colors that are specified in the sprite's color registers.
If you want the sprite to be displayed in subsequent display fields, you must rewrite the
contents of the sprite pointers during each vertical blanking interval. This is necessary
because during the display field, the pointers are incremented to point to the data which is
being fetched as the screen display progresses.
The rewrite becomes part of the vertical blanking routine, which can be handled by
instructions in the Copper lists.
- Sprite Hardware 107 -
Summary of Contents for Amiga A1000
Page 1: ...AMIGA HARDWARE REFERENCE MANUAL 1992 Commodore Business Machines Amiga 1200 PAL...
Page 20: ...Figure 1 1 Block Diagram for the Amiga Computer Family Introduction 11...
Page 21: ...12 Introduction...
Page 72: ...Figure 3 12 A dual Playfield display Playfield Hardware 63...
Page 87: ...Figure 3 24 Horizontal Scrolling 78 playfield hardware...
Page 101: ...92 Playfield Hardware...
Page 199: ...Figure 6 9 DMA time slot allocation 190 Blitter hardware...
Page 203: ...Figure 6 13 Blitter Block Diagram 194 Blitter Hardware...
Page 229: ...220 System Control Hardware...
Page 246: ...Figure 8 8 Chinon Timing diagram cont Interface Hardware 237...
Page 265: ...256 Interface Hardware...
Page 289: ...280 Appendix A...
Page 297: ...288 Appendix B...
Page 298: ...APPENDIX C CUSTOM CHIP PIN ALLOCATION LIST NOTE Means an active low signal Appendix C 289...
Page 302: ...APPENDIX D SYSTEM MEMORY MAP Appendix D 293...
Page 343: ...334 Appendix F...
Page 351: ...342 Appendix G...
Page 361: ...352 Appendix H...
Page 367: ...358 Appendix I...