home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / GameSmith1-Hisoft-System.DMS / in.adf / GDS_System.lha / include / display / copper.i < prev    next >
Encoding:
Text File  |  1994-08-23  |  4.5 KB  |  96 lines

  1. ;***************************************************************
  2. ; The user copper struct
  3. ;***************************************************************
  4.  
  5.     rsreset
  6. COPPER_LIST rs.l  1  ;pointer to list of copper instructions
  7. COPPER_CTRL rs.l  1  ;pointer to controlling struct for user copper lists (UCopList)
  8.                      ;This is NULL for 1st call & alloced by copper routines
  9.                      ;Additional calls to copper routines use same struct
  10. COPPER_DISPLAY rs.l  1  ;ptr to controlling Intuition Screen struct
  11. COPPER_SIZEOF rs.b   0  ;size of copper struct
  12.  
  13. ;***************************************************************
  14. ; The hardware copper struct (used with a GameSmith display)
  15. ;***************************************************************
  16.  
  17.     rsreset
  18. HCOP_DISPLAY  rs.l   1    ;ptr to GameSmith display structure already set up
  19. HCOP_LIST     rs.l   1    ;ptr to list of copper instructions (pnemonic list)
  20. HCOP_FLAGS    rs.l   1    ;hard copper flags
  21. ;  system only fields:
  22. HCOP_LOF_COP  rs.l   2    ;ptr to hardware copper list (long frame) pages 1 & 2
  23. HCOP_SHF_COP  rs.l   2    ;ptr to hardware copper list (short frame) pages 1 & 2
  24. HCOP_COPLEN   rs.l   1    ;length (in bytes) of hardware copper list
  25.  
  26. ; hard copper flags:
  27.  
  28. HCOPF_DOUBLE  EQU  $01    ;build two display lists for double buffered display
  29.  
  30. ; user copper instructions:
  31.  
  32. UC_END        EQU    0  ;marks end of user copper list.  MUST be last command in table
  33. UC_WAIT       EQU   1  ;wait for display beam position (y,x)
  34. UC_MOVE       EQU   2  ;move data to a hardware register (register,data)
  35. UC_NOSPRITES  EQU   3  ;turn sprites off (NOT SUPPORTED IN GS_VIEWPORT)
  36. UC_SPRITES    EQU   4  ;turn sprites back on (NOT SUPPORTED IN GS_VIEWPORT)
  37. UC_SETCOLOR   EQU   5  ;set a color register (color number,color value)
  38. ; the following are hardware copper instructions only, for use with gs_viewport
  39. UC_SETCOLORAGA EQU  6  ;set an AGA color register with 24 bit value
  40. UC_PVP        EQU   7  ;load a parallax viewport
  41. UC_SPVP       EQU   8  ;load a sliced parallac viewport
  42.  
  43. ;***************************************************************
  44. ; The parallax viewport struct
  45. ;***************************************************************
  46.  
  47.     rsreset
  48. PVP_NEXT      rs.l   1    ;(SYSTEM USE ONLY!) next parallax viewport this display
  49. PVP_HEIGHT    rs.l   1    ;height in scan lines
  50. PVP_WIDTH     rs.l   1    ;width in pixels
  51. PVP_DEPTH     rs.l   1    ;depth of viewport
  52. PVP_XOFF      rs.l   1    ;X offset within bitmap (system use only)
  53. PVP_YOFF      rs.l   1    ;Y offset within bitmap (system use only)
  54. PVP_FLAGS     rs.l   1    ;flags
  55. PVP_BITMAP    rs.l   2    ;ptr to bitmap(s) pages 1 & 2
  56. ; the following are system only fields.  Do not touch!
  57. PVP_BPLCON    rs.l   1    ;offset to horizontal shift load copper instruct
  58. PVP_BPLPTR    rs.l   1    ;offset to 1st bitplane pointer copper instruct
  59. PVP_SCROLL    rs.w   1    ;horizontal scroll value
  60. PVP_VP        rs.l   1    ;ptr to viewport this pvp belongs to
  61. PVP_LOF_PLANES1 rs.l 8    ;bitlane ptr temp hold for scroll reload
  62. PVP_SHF_PLANES1 rs.l 8    ;bitlane ptr temp hold for scroll reload
  63. PVP_LOF_PLANES2 rs.l 8    ;bitlane ptr temp hold for scroll reload
  64. PVP_SHF_PLANES2 rs.l 8    ;bitlane ptr temp hold for scroll reload
  65.  
  66. ; pvp flags:
  67.  
  68. PVPF_DPF      EQU  $01    ;dual playfield mode
  69. PVPF_DPF1     EQU  $02    ;only load/scroll playfield 1
  70. PVPF_DPF2     EQU  $04    ;only load/scroll playfield 2
  71. ;          NEVER set both PVPF_DPF1 & PVPF_DPF2
  72. PVPF_AGACOLOR EQU  $08    ;used only spvp, set AGA color regs
  73. PVPF_RELOAD   EQU  $10    ;SYSTEM FLAG: reload new scroll offsets
  74. PVPF_LINE1    EQU  $20    ;spvp only: load color regs line 1 only
  75.  
  76. ;***************************************************************
  77. ; The sliced parallax viewport struct
  78. ;***************************************************************
  79.  
  80.     rsreset
  81. SPVP_TOP      rs.l   1    ;top and bottom movement values for scroll ratio
  82. SPVP_BOTTOM   rs.l   1
  83. SPVP_HEIGHT   rs.l   1    ;height in scan lines
  84. SPVP_WIDTH    rs.l   1    ;width in pixels
  85. SPVP_DEPTH    rs.l   1    ;depth of viewport
  86. SPVP_FLAGS    rs.l   1    ;same as pvp
  87. SPVP_BITMAP   rs.l   2    ;ptr to bitmap to slice (pages 1 & 2)
  88. SPVP_CTABLE   rs.l   1    ;ptr to color table for color changes each line
  89. SPVP_CREGS    rs.l   1    ;ptr to list of color regs to modify each line
  90. SPVP_NREGS    rs.w   1    ;number of color regs in list
  91. SPVP_SCROLLTYPE rs.w 1    ;scroll type (0 through n), effects ratio setup & scroller
  92. SPVP_INC      rs.w   1    ;SYSTEM USE: Do Not Touch!
  93. SPVP_CARRY    rs.w   1    ;SYSTEM USE: Do Not Touch!
  94. SPVP_LIST     rs.l   1    ;SYSTEM USE: Do Not Touch!
  95.  
  96.