
#c2pWindowStructSize=4 ; LSL for 16 bytes
#ChunkyResourceStructSize=6 ; LSL for 64 bytes
#ChunkyQueueStructSize=4 ; LSL for 16 bytes
#ChunkyQueueListStructSize=4 ; LSL for 16 bytes
#ChunkyTableStructSize=4 ; LSL for 16 bytes

;c2pWindow structure, 16 bytes
c2p0_Pixels:    Dc.w 0 ;0 Number of pixels per row
c2p0_RowsStore: Dc.w 0 ;2 Row counter
c2p0LaceOffsetA:Dc.w 0 ;4 Interlace bytes to add to source pointer in odd frames
c2p0LaceOffsetB:Dc.w 0 ;6 Interlace bytes to add to dest pointer in odd frames
c2p0_Pmod:      Dc.w 0 ;8 Planar line modulo
c2p0_Cmod:      Dc.w 0 ;10 Chunky line modulo
c2p0Lace:       Dc.b 0 ;12 Same as Row-Lacing yes/no. Tells if rowlace was on when object was created
c2p0Pad0:       Dc.b 0 ;13
c2p0Pad1:       Dc.w 0 ;14

;ChunkyResource structure, 64 bytes (bitmaps and shapes)
CRsrc_Width:    Dc.w 0 ;0  Width of the chunky resource in pixels (=bytes)
CRsrc_Height:   Dc.w 0 ;2  Height of the chunky resource in pixels (=lines) Must be positioned directly after Width
CRsrc_LineMod:  Dc.w 0 ;4  Horizontal line modulo - bytes to add at end of line to get to start of next line (usually zero)
CRsrc_Clipping: Dc.b 0 ;6  Clip window active/deactive. 0=Off, <>0=On
CRsrc_Wrapping: Dc.b 0 ;7  X&Y Handle-wrapping active/deactive. 0=Normal, <>0=MemoryWrap (add WrapBytes to base address)
CRsrc_Data:     Dc.l 0 ;8  Pointer to move16-aligned memory containing resource's graphic
CRsrc_Stencil:  Dc.l 0 ;12 Pointer to move16-aligned memory containing resource's stencil/mask/cookie
CRsrc_XHandle:  Dc.w 0 ;16 X-Handle coordinate horizontal offset
CRsrc_YHandle:  Dc.w 0 ;18 Y-Handle coordinate verticle offset
CRsrc_DMem:     Dc.l 0 ;20 Actual base pointer of memory reserved for data (before move16-alignment)
CRsrc_DBytes:   Dc.l 0 ;24 Total number of bytes in the resource's graphic mem (before align)
CRsrc_SMem:     Dc.l 0 ;28 Actual base pointer of memory reserved for stencil (before move16-alignment)
CRsrc_SBytes:   Dc.l 0 ;32 Total number of bytes in the resource's stencil/mask/cookie (before align)
CRsrc_DHere:    Dc.b 0 ;36 Graphic data here. 0=Cludged, <>0=CRsrc_DMem is base address
CRsrc_SHere:    Dc.b 0 ;37 Stencil data here. 0=Cludged, <>0=CRsrc_SMem is base address
CRsrc_ClipLMod: Dc.w 0 ;38 Clip window horizontal line modulo in bytes compared with bitmap width (additional to LineMod)
CRsrc_ClipLeft: Dc.w 0 ;40 Clip window's left-edge X coordinate offset
CRsrc_ClipTop:  Dc.w 0 ;42 Clip window's top-edge Y coordinate offset
CRsrc_ClipWidth:Dc.w 0 ;44 Clip window's width in pixels
CRsrc_ClipHight:Dc.w 0 ;46 Clip window's height in pixels
CRsrc_ClipBytes:Dc.l 0 ;48 Clip window bytes to add to addresses to find topleft corner of clip window
CRsrc_WrapBytes:Dc.l 0 ;52 Handle bytes to add to base addresses to find topleft XHandle,Yhandle offset
CRsrc_Pad1:     Dc.l 0 ;56
CRsrc_Pad2:     Dc.l 0 ;60

;ChunkyQueue structure, 16 bytes
CQueue_LMem:    Dc.l 0 ;0  Pointer to memory used to store the list. 0=Queue doesn't exist
CQueue_LBytes:  Dc.l 0 ;4  Bytes of mem reserved
CQueue_MaxItems:Dc.w 0 ;8  Maximum number of items in the queue
CQueue_Items:   Dc.w 0 ;10 Actual number of items in the queue
CQueue_ItemAddr:Dc.l 0 ;12 Memory address of the current item

;ChunkyQueueListItem structure, 16 bytes
CQList_DestAddr:Dc.l 0 ;0  Address of top-left corner of destination
CQList_OpWidth: Dc.w 0 ;4  Width of the operation in pixels or bytes
CQList_OpHeight:Dc.w 0 ;6  Height of the operation in pixels, lines or rows
CQList_DestLMod:Dc.l 0 ;8  Destination linemodulo to support object width
CQList_XYBytes: Dc.l 0 ;12 Bytes needed to be added to base address to point to coordinates, not including wrapped origin

;ChunkyTable structure, 16 bytes
ChunkyTables
CTable_LMem:    Dc.l 0 ;0  Pointer to memory used to store the list. 0=Table doesn't exist
CTable_LBytes:  Dc.l 0 ;4  Bytes of mem reserved. Also maximum number of items
CTable_Items:   Dc.l 0 ;8  Actual number of items in the table
CTable_ItemAddr:Dc.l 0 ;12 Memory address of the current item
