[comp.sys.amiga.tech] Hardware Copper list

BBOURBIN@UMDD.BITNET (Brett S Bourbin) (05/16/88)

I am trying to write a color fade routine for a double ViewPort screen and
my first attempt was to do it the legal, "correct" way by creating a second
task to control the fade ins and outs.  The second task was to receice messages

from the controlling task and handle the LoadRGB4(), MakeVPort(), MrgCop() and
LoadView() calls since I wanted to fade the colors every 5 vertical blanks.

Creating the second task places a lot of overhead in terms of both memory and
time, which I REALLY need for a double-buffered 3-D perspective top ViewPort
so I must go to the Copper list directly during the VBLANK period to gain some
speed.

Here are my questions:
    o  Does MakeVPort() and LoadRGB4() create a Copper list for the color
       registers for ALL the colors in the ColorMap (ie. a 5 bitplane ViewPort
       has 32 colors, so will there be 32 'move #rgbval,colorregs?) or does
       only the color registers that are different from the previous ViewPort?
    o  To find the start of the executing Copper list, can I do a:
              lea       view,a0
              move.l    v_LOFCprList(a0),a0
              move.l    crl_start(a0),a1
       and to get the number of entries:
              move      crl_MaxCount(a0),d0 ?
    o  Will all of the color register Copper intructions be continuous in
       memory? (ie.:
              dc.w      $0180,xxxx     ; color register 00
              dc.w      $0182,xxxx     ; color register 01
              dc.w      $0184,xxxx     ; color register 02
                    etc.
       or could they be spread out in RAM?)

_-_-_-_-_-_
- Brett S Bourbin
- Instructional Computer Programs, University of Maryland
- College Park, MD 20742
- {bbourbin@umdd.BITNET | brett@rover.umd.edu}