home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.6
/
ffcollection-1-6-1993-02.iso
/
ff_disks
/
211-240
/
ff_237
/
ilbmlib
/
ilbminterface.asm
< prev
next >
Wrap
Assembly Source File
|
1989-08-20
|
19KB
|
917 lines
; 1). Set your editor's TAB width to 3.
; 2). Delete the following 2 directives if not using MANX. If using LATTICE,
; make sure that you assemble this module with large CODE and DATA
; model.
far code ;for Manx only, it means large code, large data (int = 32 bits)
far data ;this module must be assembled expecting passed ints as 32 bits
; 3). Alter the following equates to only include the ilbm lib routines that
; you expect to call. This will make your application smaller.
;change the following equates to a 0 if you don't need that lib routine
DecompBODY equ 1
SetupBitmap equ 1
ScaleImage equ 1
SearchPROP equ 1
GetPROPStruct equ 1
FreePROPStruct equ 1
CopyILBMProp equ 1
DecodeVKPlane equ 1
DecompDLTA equ 1
MakeYTable equ 1
SaveANIM equ 1
OpenRIFF equ 1
FileLength equ 1
OpenRGroup equ 1
CloseRGroup equ 1
IFFReadBytes equ 1
GetChunkHdr equ 1
GetFChunkHdr equ 1
GetF1ChunkHdr equ 1
GetPChunkHdr equ 1
GetCMAP equ 1
GetBODY equ 1
UnPackRow equ 1
HandleCCRT equ 1
HandleCRNG equ 1
HandleCAMG equ 1
LoadIFF equ 1
LoadILBM equ 1
LoadIFFToWindow equ 1
SaveWindowToIFF equ 1
SaveILBM equ 1
IFFWriteBytes equ 1
PackRow equ 1
PutBODY equ 1
PutCMAP equ 1
OpenWIFF equ 1
OpenWGroup equ 1
StartWGroup equ 1
PutCkHdr equ 1
PutCk equ 1
PutCkEnd equ 1
EndWGroup equ 1
CloseWGroup equ 1
InitBMHdr equ 1
GetIFFPMsg equ 1
BlankPointer equ 1
; 4). Assemble this module and link it with your C application modules.
INCLUDE "IFF.i" ;supplies the LVO offsets
XDEF _ILBMBase ;ilbm.library opened from C code, and base stored there
SECTION ilbmcode,CODE
IF GetIFFPMsg=1
XDEF _GetIFFPMsg,__GetIFFPMsg
_GetIFFPMsg:
movea.l _ILBMBase,a6
__GetIFFPMsg:
move.l 4(sp),d0
jmp _LVOGetIFFPMsg(a6)
ENDC
IF BlankPointer=1
XDEF _BlankPointer,__BlankPointer
_BlankPointer:
movea.l _ILBMBase,a6
__BlankPointer:
movea.l 4(sp),a0
jmp _LVOBlankPointer(a6)
ENDC
;######################## IFF READER ROUTINES ##########################
;***********************************************************************
;BOOL = LoadIFFToWindow(fileName, ILBMFrame)
; d0 d1 a1
IF LoadIFFToWindow=1
XDEF _LoadIFFToWindow,__LoadIFFToWindow
_LoadIFFToWindow:
movea.l _ILBMBase,a6
__LoadIFFToWindow:
move.l 4(sp),d1
movea.l 8(sp),a1
jmp _LVOLoadIFFToWindow(a6)
ENDC
;**************************** LoadIFF() *********************************
; IFFP = LoadIFF(fileHandle, Vectors, masterFrame)
; d0 d1 a0 a1
IF LoadIFF=1
XDEF _LoadIFF,__LoadIFF
_LoadIFF:
movea.l _ILBMBase,a6
__LoadIFF:
movem.l 4(sp),d1/a0/a1
bsr.s SetVectors
jmp _LVOLoadIFF(a6)
ENDC
;**************************** ScaleImage() *********************************
;BOOL ScaleImage(dest_rectangle,source_rectangle,dest_rport,source_bitmap)
; a0 a1 a2 a4
IF ScaleImage=1
XDEF _ScaleImage,__ScaleImage
_ScaleImage:
movea.l _ILBMBase,a6
__ScaleImage:
movem.l a2/a4,-(sp)
movem.l 12(sp),a0/a1/a2/a4
jsr _LVOScaleImage(a6)
movem.l (sp)+,a2/a4
rts
ENDC
;**************************** SetupBitmap() *********************************
; SetupBitmap(raster, Bitmap, BMHD)
; d0 a0 a1
IF SetupBitmap=1
XDEF _SetupBitmap,__SetupBitmap
_SetupBitmap:
movea.l _ILBMBase,a6
__SetupBitmap:
movem.l 4(sp),d0/a0/a1
jmp _LVOSetupBitmap(a6)
ENDC
;**************************** DecompBODY() *********************************
; DecompBODY(BODY, BMHD, Bitmap)
; a0 a1 a2
; Decompresses the BODY chunk into the passed BitMap's planes based on the
; passed BMHD's w, h, numPlanes, and pageWidth. This is used for the first
; frame of the ANIM (ANHD's opmode = 0). BODY is the address of the loaded
; BODY chunk of the first frame of the ANIM file (minus the 8 byte header).
IF DecompBODY=1
XDEF _DecompBODY,__DecompBODY
_DecompBODY:
movea.l _ILBMBase,a6
__DecompBODY:
move.l a2,-(sp)
movem.l 8(sp),a0/a1/a2
jsr _LVODecompBODY(a6)
movea.l (sp)+,a2
rts
ENDC
;**************************** LoadILBM() *********************************
; IFFP = LoadILBM(fileHandle, Vectors, ILBMFrame)
; d0 d1 a0 a1
IF LoadILBM=1
XDEF _LoadILBM,__LoadILBM
_LoadILBM:
movea.l _ILBMBase,a6
__LoadILBM:
movem.l 4(sp),d1/a0/a1
bsr.s SetVectors
jmp _LVOLoadILBM(a6)
ENDC
SetVectors:
movem.l a0/a2/a3,-(sp)
;---Setup CInterface to PROP handler
lea PROPVector,a3
move.l (a0)+,(a3)+
beq.s noPROP
lea PropHandler,a2
move.l a2,-4(a0)
noPROP:
;---Setup CInterface to FORM handler
move.l (a0)+,(a3)+
beq.s noFORM
lea FormHandler,a2
move.l a2,-4(a0)
noFORM:
;---Setup CInterface to Chunk handler
move.l (a0)+,(a3)+
beq.s noChunk
lea ChunkHandler,a2
move.l a2,-4(a0)
noChunk:
;---Setup CInterface to Non-ILBM FORM handler
move.l (a0),(a3)
beq.s noNon
lea NONILBM,a2
move.l a2,(a0)
noNon:
movem.l (sp)+,a0/a2/a3
rts
; Calls C PROP routine as follows:
; IFFP = PropRoutine(chunkID,PropID,Context,Vectors,Frame,PROPList)
PropHandler:
movem.l d0/d2/a0/a2/a3/a4,-(sp)
movea.l PROPVector,a1
jsr (a1)
movem.l (sp)+,d1/d2/a0/a2/a3/a4
rts
; Calls C FORM routine as follows:
; IFFP = FormRoutine(chunkID,Context,Vectors,Frame,PROPList)
FormHandler:
movea.l FORMVector,a1
do_hand:
movem.l d0/a0/a2/a3/a4,-(sp)
jsr (a1)
movem.l (sp)+,d1/a0/a2/a3/a4
rts
; An Unknown chunk in an ILBM (i.e. DLTA, ANHD, DEST, GRAB...)
ChunkHandler:
movea.l ChunkVector,a1
bra.s do_hand
; A Non-ILBM FORM
NONILBM:
movea.l NonILBMVector,a1
bra.s do_hand
;*************************** GetPROPStruct() *****************************
; PropStruct = GetPROPStruct(size, PropID, PROPList)
; d0 d0 d1 a1
IF GetPROPStruct=1
XDEF _GetPROPStruct,__GetPROPStruct
_GetPROPStruct:
movea.l _ILBMBase,a6
__GetPROPStruct:
movem.l 4(sp),d0/d1/a1
jmp _LVOGetPROPStruct(a6)
ENDC
;*************************** SearchPROP() *****************************
; PropStruct = SearchPROP(PropID, PROPList)
; d0 d0 a1
IF SearchPROP=1
XDEF _SearchPROP,__SearchPROP
_SearchPROP:
movea.l _ILBMBase,a6
__SearchPROP:
movem.l 4(sp),d0/a1
jmp _LVOSearchPROP(a6)
ENDC
;*************************** CopyILBMProp() *****************************
; CopyILBMProp(FromFrame, ToFrame)
; d0 a1
IF CopyILBMProp=1
XDEF _CopyILBMProp,__CopyILBMProp
_CopyILBMProp:
movea.l _ILBMBase,a6
__CopyILBMProp:
movem.l 4(sp),d0/a1
jmp _LVOCopyILBMProp(a6)
ENDC
;*************************** FreePROPStruct() *****************************
; FreePROPStruct(PROPList)
; a1
IF FreePROPStruct=1
XDEF _FreePROPStruct,__FreePROPStruct
_FreePROPStruct:
movea.l _ILBMBase,a6
__FreePROPStruct:
movea.l 4(sp),a1
jmp _LVOFreePROPStruct(a6)
ENDC
;*************************** HandleCAMG() *******************************
; HandleCAMG(Context,ILBMFrame)
; a0 a1
IF HandleCAMG=1
XDEF _HandleCAMG,__HandleCAMG
_HandleCAMG:
movea.l _ILBMBase,a6
__HandleCAMG:
movem.l 4(sp),a0/a1
jmp _LVOHandleCAMG(a6)
ENDC
;*************************** HandleCRNG() *******************************
; HandleCRNG(Context,ILBMFrame)
; a0 a1
IF HandleCRNG=1
XDEF _HandleCRNG,__HandleCRNG
_HandleCRNG:
movea.l _ILBMBase,a6
__HandleCRNG:
movem.l 4(sp),a0/a1
jmp _LVOHandleCRNG(a6)
ENDC
;*************************** HandleCCRT() *******************************
; HandleCCRT(Context,ILBMFrame)
; a0 a1
IF HandleCCRT=1
XDEF _HandleCCRT,__HandleCCRT
_HandleCCRT:
movea.l _ILBMBase,a6
__HandleCCRT:
movem.l 4(sp),a0/a1
jmp _LVOHandleCCRT(a6)
ENDC
;**************************** OpenRIFF() *******************************
; IFFP = OpenRIFF(fileHandle, newContext, Frame)
; d0 d1 a0 a1
IF OpenRIFF=1
XDEF _OpenRIFF,__OpenRIFF
_OpenRIFF:
movea.l _ILBMBase,a6
__OpenRIFF:
movem.l 4(sp),d1/a0/a1
jmp _LVOOpenRIFF(a6)
ENDC
;**************************** FileLength() *****************************
;FileSize = FileLength(fileHandle)
; d0 d1
IF FileLength=1
XDEF _FileLength,__FileLength
_FileLength:
movea.l _ILBMBase,a6
__FileLength:
move.l 4(sp),d1
move.l a6,-(sp)
jsr _LVOFileLength(a6)
movea.l (sp)+,a6
rts
ENDC
;********************** OpenRGroup() *****************************
; IFFP = OpenRGroup(parent, new) passed 2 Context structures
; d0 a0 a1
IF OpenRGroup=1
XDEF _OpenRGroup,__OpenRGroup
_OpenRGroup:
movea.l _ILBMBase,a6
__OpenRGroup:
movea.l 4(sp),a0
movea.l 8(sp),a1
jmp _LVOOpenRGroup(a6)
ENDC
;***************************** CloseRGroup ******************************
; IFFP = CloseRGroup(context)
; d0 a0
IF CloseRGroup=1
XDEF _CloseRGroup,__CloseRGroup
_CloseRGroup:
movea.l _ILBMBase,a6
__CloseRGroup:
movea.l 4(sp),a0
jmp _LVOCloseRGroup(a6)
ENDC
;*************************** SkipFwd() **********************************
; IFFP = SkipFwd(context, bytes)
; d0 a0 d1
IF SkipFwd=1
XDEF _SkipFwd,__SkipFwd
_SkipFwd:
movea.l _ILBMBase,a6
_SkipFwd:
movea.l 4(sp),a0
move.l 8(sp),d1
jmp _LVOSkipFwd(a6)
ENDC
;*************************** GetChunkHdr *******************************
; ID = GetChunkHdr(context)
; d0 a0
IF GetChunkHdr=1
XDEF _GetChunkHdr,__GetChunkHdr
_GetChunkHdr:
movea.l _ILBMBase,a6
__GetChunkHdr:
movea.l 4(sp),a0
jmp _LVOGetChunkHdr(a6)
ENDC
;************************** IFFReadBytes ********************************
; IFFP = IFFReadBytes(nBytes, context, buffer)
; d0 d0 a0 a1
IF IFFReadBytes=1
XDEF _IFFReadBytes,__IFFReadBytes
_IFFReadBytes:
movea.l _ILBMBase,a6
__IFFReadBytes:
movem.l 4(sp),d0/a0/a1
jmp _LVOIFFReadBytes(a6)
ENDC
;************************* GetFChunkHdr() ******************************
; ID = GetFChunkHdr(context)
; d0 a0
IF GetFChunkHdr=1
XDEF _GetFChunkHdr,__GetFChunkHdr
_GetFChunkHdr:
movea.l _ILBMBase,a6
__GetFChunkHdr:
movea.l 4(sp),a0
jmp _LVOGetFChunkHdr(a6)
ENDC
;************************* GetF1ChunkHdr() ******************************
; ID = GetF1ChunkHdr(context)
; d0 a0
IF GetF1ChunkHdr=1
XDEF _GetF1ChunkHdr,__GetF1ChunkHdr
_GetF1ChunkHdr:
movea.l _ILBMBase,a6
__GetF1ChunkHdr:
movea.l 4(sp),a0
jmp _LVOGetF1ChunkHdr(a6)
ENDC
;**************************** GetPChunkHdr ****************************
; ID = GetPChunkHdr(context)
; d0 a0
IF GetPChunkHdr=1
XDEF _GetPChunkHdr,__GetPChunkHdr
_GetPChunkHdr:
movea.l _ILBMBase,a6
__GetPChunkHdr:
movea.l 4(sp),a0
jmp _LVOGetPChunkHdr(a6)
ENDC
;**************************** GetCMAP() *******************************
; IFFP = GetCMAP(Context, colorMap, pNColorRegs)
; d0 d0 a0 a1
IF GetCMAP=1
XDEF _GetCMAP,__GetCMAP
_GetCMAP:
movea.l _ILBMBase,a6
__GetCMAP:
movem.l 4(sp),d0/a0/a1
jmp _LVOGetCMAP(a6)
ENDC
;****************************** GetBODY() *******************************
; IFFP = GetBODY(bitmap, mask, context, BMHD)
; d0 d0 d1 a0 a1
IF GetBODY=1
XDEF _GetBODY,__GetBODY
_GetBODY:
movea.l _ILBMBase,a6
__GetBODY:
movem.l 4(sp),d0/d1/a0/a1
jmp _LVOGetBODY(a6)
ENDC
;*********************************************************************
;BOOL = UnPackRow(dstBytes0, srcBytes0, Source, Dest)
; d0 d1 d3 a2 a3
IF UnPackRow=1
XREF _UnPackRow,__UnPackRow
_UnPackRow:
movea.l _ILBMBase,a6
__UnPackRow:
movem.l d3/a2/a3,-(sp)
movem.l 16(sp),d1/d3/a2/a3
jsr _LVOUnPackRow(a6)
movem.l (sp)+,d3/a2/a3
rts
ENDC
;****************************** DecompDLTA() *******************************
; DecompDLTA(DLTA,bitmap)
; a0 a2
IF DecompDLTA=1
XDEF _DecompDLTA,__DecompDLTA
_DecompDLTA:
movea.l _ILBMBase,a6
__DecompDLTA:
move.l a2,-(sp)
movem.l 8(sp),a0/a2
jsr _LVODecompDLTA(a6)
movea.l (sp)+,a2
rts
ENDC
;****************************** DecodeVKPlane() *******************************
; DecodeVKPlane(linebytes, ytable, in, out)
; d0 d1 a0 a1
IF DecodeVKPlane=1
XDEF _DecodeVKPlane,__DecodeVKPlane
_DecodeVKPlane:
movea.l _ILBMBase,a6
__DecodeVKPlane:
movem.l 4(sp),d0/d1/a0/a1
jmp _LVODecodeVKPlane(a6)
ENDC
;****************************** MakeYTable() *******************************
; MakeYTable(width, height, table)
; d0 d1 a0
IF MakeYTable=1
XDEF _MakeYTable,__MakeYTable
_MakeYTable:
movea.l _ILBMBase,a6
__MakeYTable:
movem.l 4(sp),d0/d1/a0
jmp _LVOMakeYTable(a6)
ENDC
;######################## IFF WRITER ROUTINES #########################
;*************************************************************************
; IFFP = SaveWindowToIFF(fileName, window)
; d0 d1 a0
IF SaveWindowToIFF=1
XDEF _SaveWindowToIFF,__SaveWindowToIFF
_SaveWindowToIFF:
movea.l _ILBMBase,a6
__SaveWindowToIFF:
movem.l 4(sp),d1/a0
jmp _LVOSaveWindowToIFF(a6)
ENDC
;******************************* SaveILBM() ******************************
;IFFP = SaveILBM(ViewModes,Compress,fhandle,Mask,CTable,BitMap,xyPnt,Handler)
; d0 d0 d1 d2 d3 a0 a1 a2 a3
IF SaveILBM=1
XREF _SaveILBM,__SaveILBM
_SaveILBM:
movea.l _ILBMBase,a6
__SaveILBM:
movem.l d2/d3/a2/a3,-(sp)
movem.l 20(sp),d0/d1/d2/d3/a2/a3
move.l a3,C_Vector1
beq.s noCHand
lea C_Handler1,a3
noCHand:
jsr _LVOSaveILBM(a6)
movem.l (sp)+,d2/d3/a2/a3
rts
C_Handler1:
move.l a0,-(sp) ;pass Context to C routine
movea.l C_Vector1,a1
jsr (a1)
movea.l (sp)+,a0
rts
ENDC
;******************************* SaveANIM() ******************************
;IFFP = SaveANIM(Modes,Compress,fhandle,Mask,CTable,BitMap,xyPnt,Handler,ANHD)
; d0 d0 d1 d2 d3 a0 a1 a2 a3 a4
IF SaveANIM=1
XREF _SaveANIM,__SaveANIM
_SaveANIM:
movea.l _ILBMBase,a6
__SaveANIM:
movem.l d2/d3/a2/a3/a4,-(sp)
movem.l 24(sp),d0/d1/d2/d3/a2/a3/a4
move.l a3,C_Vector2
beq.s noCHand2
lea C_Handler2,a3
noCHand2:
jsr _LVOSaveANIM(a6)
movem.l (sp)+,d2/d3/a2/a3/a4
rts
C_Handler2:
movem.l a0/a1,-(sp) ;pass Context and Parent to C routine
movea.l C_Vector2,a1
jsr (a1)
movem.l (sp)+,a0/a1
rts
ENDC
;**************************** OpenWIFF() *****************************
;IFFP = OpenWIFF(limit, fileHandle, newContext)
; d0 d0 d1 a0
IF OpenWIFF=1
XDEF _OpenWIFF,__OpenWIFF
_OpenWIFF:
movea.l _ILBMBase,a6
__OpenWIFF:
movem.l 4(sp),d0/d1/a0
jmp _LVOOpenWIFF(a6)
ENDC
;*************************** StartWGroup() ********************************
;IFFP = StartWGroup(groupType, groupSize, subtype, parent, new)
; d0 d0 d1 d2 a0 a1
IF StartWGroup=1
XDEF _StartWGroup,__StartWGroup
_StartWGroup:
movea.l _ILBMBase,a6
__StartWGroup:
move.l d2,-(sp)
movem.l 8(sp),d0/d1/d2/a0/a1
jsr _LVOStartWGroup(a6)
move.l (sp)+,d2
rts
ENDC
;*************************** OpenWGroup() *******************************
;IFFP = OpenWGroup(parent, new)
; d0 a0 a1
IF OpenWGroup=1
XDEF _OpenWGroup,__OpenWGroup
_OpenWGroup:
movea.l _ILBMBase,a6
__OpenWGroup:
movea.l 4(sp),a0
movea.l 8(sp),a1
jmp _LVOOpenWGroup(a6)
ENDC
;***************************** EndWGroup() ********************************
;IFFP = EndWGroup(old)
; d0 a0
IF EndWGroup=1
XDEF _EndWGroup,__EndWGroup
_EndWGroup:
movea.l _ILBMBase,a6
__EndWGroup:
movea.l 4(sp),a0
jmp _LVOEndWGroup(a6)
ENDC
;************************ CloseWGroup *********************************
;IFFP = CloseWGroup(old)
; d0 a0
IF CloseWGroup=1
XDEF _CloseWGroup,__CloseWGroup
_CloseWGroup:
movea.l _ILBMBase,a6
__CloseWGroup:
movea.l 4(sp),a0
jmp _LVOCloseWGroup(a6)
ENDC
;******************************* PutCk **********************************
;IFFP = PutCk(ckID, ckSize, context, data)
; d0 d0 d1 a0 a1
IF PutCk=1
XDEF _PutCk,__PutCk
_PutCk:
movea.l _ILBMBase,a6
__PutCk:
movem.l 4(sp),d0/d1/a0/a1
jmp _LVOPutCk(a6)
ENDC
;******************************* PutCkHdr() ****************************
;IFFPreturn = PutCkHdr(chunkID, chunkSize, context)
; d0 d1 a0
IF PutCkHdr=1
XDEF _PutCkHdr,__PutCkHdr
_PutCkHdr:
movea.l _ILBMBase,a6
__PutCkHdr:
movem.l 4(sp),d0/d1/a0
jmp _LVOPutCkHdr(a6)
ENDC
;*************************** IFFWriteBytes() ***************************
;IFFP IFFWriteBytes(nBytes, context, data)
; d0 a0 a1
IF IFFWriteBytes=1
XDEF _IFFWriteBytes,__IFFWriteBytes
_IFFWriteBytes:
movea.l _ILBMBase,a6
__IFFWriteBytes:
movem.l 4(sp),d0/a0/a1
jmp _LVOIFFWriteBytes(a6)
ENDC
;****************************** PutCkEnd() ******************************
;IFFP = PutCkEnd(context)
; d0 a0
IF PutCkEnd=1
XDEF _PutCkEnd,__PutCkEnd
_PutCkEnd:
movea.l _ILBMBase,a6
__PutCkEnd:
move.l 4(sp),a0
jmp _LVOPutCkEnd(a6)
ENDC
;*************************** InitBMHdr() ********************************
;IFFP InitBMHdr(masking, compression, transparentColor,
; d0 d1 d2
; pageWidth, pageHeight, BMHD, bitmap)
; d3 d4 a0 a1
IF InitBMHdr=1
XDEF _InitBMHdr,__InitBMHdr
_InitBMHdr:
movea.l _ILBMBase,a6
__InitBMHdr:
movem.l d2/d3/d4,-(sp)
movem.l 16(sp),d0/d1/d2/d3/d4/a0/a1
jsr _LVOInitBMHdr(a6)
movem.l (sp)+,d2/d3/d4
rts
ENDC
;**************************** PutCMAP() *********************************
;IFFP PutCMAP(depth, context, colorTable)
; d0 a0 a1
IF PutCMAP=1
XDEF _PutCMAP,__PutCMAP
_PutCMAP:
movea.l _ILBMBase,a6
__PutCMAP:
movem.l 4(sp),d0/a0/a1
jmp _LVOPutCMAP(a6)
ENDC
;******************************** PutBODY() ******************************
;IFFP = PutBODY(mask, context, bmHdr, bitmap)
; d0 d0 d1 a0 a1
IF PutBODY=1
XDEF _PutBODY,__PutBODY
_PutBODY:
movea.l _ILBMBase,a6
__PutBODY:
movem.l 4(sp),d0/d1/a0/a1
jmp _LVOPutBODY(a6)
ENDC
;============================ PackRow ===========================
;bytes = PackRow(rowSize, pSource, pDest)
; d0 d0 a0 a1
IF PackRow=1
XDEF _PackRow,__PackRow
_PackRow:
movea.l _ILBMBase,a6
__PackRow:
movem.l 4(sp),d0/a0/a1
jsr _LVOPackRow(a6)
move.l a6,d1
lea _sourceptr,a6
move.l a0,(a6)+
move.l a1,(a6)
movea.l d1,a6
rts
ENDC
SECTION ilbmdata,DATA
IF SaveANIM=1
C_Vector2 dc.l 0
ENDC
IF SaveILBM=1
C_Vector1 dc.l 0
ENDC
IF PackRow=1
XDEF _sourceptr,_destptr
_sourceptr: dc.l 0
_destptr dc.l 0
ENDC
PROPVector dc.l 0
FORMVector dc.l 0
ChunkVector dc.l 0
NonILBMVector dc.l 0