1 #ifndef LIBRARIES_XFDMASTER_H
    2 #define LIBRARIES_XFDMASTER_H
    3 
    4 /*
    5 **	$VER: xfdmaster.h 39.5 (31.08.2002)
    6 **
    7 **	Copyright © 1994-2002 by Georg Hörmann, Dirk Stöcker
    8 **	All Rights Reserved.
    9 */
   10 
   11 #ifndef EXEC_LIBRARIES_H
   12 #include <exec/libraries.h>
   13 #endif
   14 
   15 #pragma pack(2)
   16 
   17 /*********************
   18 *                    *
   19 *    Library Base    *
   20 *                    *
   21 *********************/
   22 
   23 struct xfdMasterBase {
   24   struct Library LibNode;
   25   ULONG			xfdm_SegList;      /* PRIVATE! */
   26   struct DosLibrary *	xfdm_DosBase;      /* May be used for I/O etc. */
   27   struct xfdSlave *	xfdm_FirstSlave;   /* List of available slaves */
   28   struct xfdForeMan *	xfdm_FirstForeMan; /* PRIVATE! */
   29   ULONG			xfdm_MinBufferSize;/* (V36) Min. BufSize for xfdRecogBuffer() */
   30   ULONG			xfdm_MinLinkerSize;/* (V36) Min. BufSize for xfdRecogLinker() */
   31   struct ExecBase *	xfdm_ExecBase;     /* (V38.2) Cached for fast access */
   32 };
   33 
   34 #define XFDM_VERSION	39		/* for OpenLibrary() */
   35 #define XFDM_NAME	"xfdmaster.library"
   36 
   37 /***************************
   38 *                          *
   39 *    Object Types (V36)    *
   40 *                          *
   41 ***************************/
   42 
   43 #define XFDOBJ_BUFFERINFO	1	/* xfdBufferInfo structure */
   44 #define XFDOBJ_SEGMENTINFO	2	/* xfdSegmentInfo structure */
   45 #define XFDOBJ_LINKERINFO	3	/* xfdLinkerInfo structure */
   46 #define XFDOBJ_SCANNODE		4	/* (V37) xfdScanNode structure */
   47 #define XFDOBJ_SCANHOOK		5	/* (V37) xfdScanHook structure */
   48 #define XFDOBJ_MAX		5	/* PRIVATE! */
   49 
   50 /********************
   51 *                   *
   52 *    Buffer Info    *
   53 *                   *
   54 ********************/
   55 
   56 struct xfdBufferInfo {
   57   APTR		   xfdbi_SourceBuffer;	  /* Pointer to source buffer */
   58   ULONG		   xfdbi_SourceBufLen;	  /* Length of source buffer */
   59   struct xfdSlave *xfdbi_Slave;		  /* PRIVATE! */
   60   STRPTR	   xfdbi_PackerName;	  /* Name of recognized packer */
   61   UWORD		   xfdbi_PackerFlags;	  /* Flags for recognized packer */
   62   UWORD		   xfdbi_Error;		  /* Error return code */
   63   APTR		   xfdbi_TargetBuffer;	  /* Pointer to target buffer */
   64   ULONG		   xfdbi_TargetBufMemType;/* Memtype of target buffer */
   65   ULONG		   xfdbi_TargetBufLen;	  /* Full length of buffer */
   66   ULONG		   xfdbi_TargetBufSaveLen;/* Used length of buffer */
   67   ULONG		   xfdbi_DecrAddress;	  /* Address to load decrunched file */
   68   ULONG		   xfdbi_JmpAddress;	  /* Address to jump in file */
   69   APTR		   xfdbi_Special;	  /* Special decrunch info (eg. password) */
   70   UWORD		   xfdbi_Flags;		  /* (V37) Flags to influence recog/decr */
   71   UWORD		   xfdbi_Reserved0;	  /* (V38) PRIVATE! */
   72   ULONG		   xfdbi_MinTargetLen;	  /* (V38) Required length of target buffer */
   73   ULONG		   xfdbi_FinalTargetLen;  /* (V38) Final length of decrunched file */
   74   APTR		   xfdbi_UserTargetBuf;	  /* (V38) Target buffer allocated by user */
   75   ULONG		   xfdbi_UserTargetBufLen;/* (V38) Target buffer length */
   76   ULONG		   xfdbi_MinSourceLen;	  /* (V39) minimum source length (tested by
   77   					     master library */
   78 };
   79 
   80 #define xfdbi_MaxSpecialLen xfdbi_Error	/* Max. length of special info */
   81 
   82 /*********************
   83 *                    *
   84 *    Segment Info    *
   85 *                    *
   86 *********************/
   87 
   88 struct xfdSegmentInfo {
   89   ULONG		   xfdsi_SegList;	/* BPTR to segment list */
   90   struct xfdSlave *xfdsi_Slave;		/* PRIVATE! */
   91   STRPTR	   xfdsi_PackerName;	/* Name of recognized packer */
   92   UWORD		   xfdsi_PackerFlags;	/* Flags for recognized packer */
   93   UWORD		   xfdsi_Error;		/* Error return code */
   94   APTR		   xfdsi_Special;	/* Special decrunch info (eg. password) */
   95   UWORD		   xfdsi_RelMode;	/* (V34) Relocation mode */
   96   UWORD		   xfdsi_Flags;		/* (V37) Flags to influence recog/decr */
   97 };
   98 
   99 #define xfdsi_MaxSpecialLen xfdsi_Error	/* Max. length of special info */
  100 
  101 /**************************
  102 *                         *
  103 *    Linker Info (V36)    *
  104 *                         *
  105 **************************/
  106 
  107 struct xfdLinkerInfo {
  108 	APTR	xfdli_Buffer;		/* Pointer to buffer */
  109 	ULONG	xfdli_BufLen;		/* Length of buffer */
  110 	STRPTR	xfdli_LinkerName;	/* Name of recognized linker */
  111 	APTR	xfdli_Unlink;		/* PRIVATE! */
  112 	UWORD	xfdli_Reserved;		/* Set to NULL */
  113 	UWORD	xfdli_Error;		/* Error return code */
  114 	ULONG	xfdli_Hunk1;		/* PRIVATE! */
  115 	ULONG	xfdli_Hunk2;		/* PRIVATE! */
  116 	ULONG	xfdli_Amount1;		/* PRIVATE! */
  117 	ULONG	xfdli_Amount2;		/* PRIVATE! */
  118 	APTR	xfdli_Save1;		/* Pointer to first unlinked file */
  119 	APTR	xfdli_Save2;		/* Pointer to second unlinked file */
  120 	ULONG	xfdli_SaveLen1;		/* Length of first unlinked file */
  121 	ULONG	xfdli_SaveLen2;		/* Length of second unlinked file */
  122 };
  123 
  124 /************************
  125 *                       *
  126 *    Scan Node (V37)    *
  127 *                       *
  128 ************************/
  129 
  130 struct xfdScanNode {
  131   struct xfdScanNode *xfdsn_Next;	/* Pointer to next xfdScanNode or NULL */
  132   APTR		      xfdsn_Save;	/* Pointer to data */
  133   ULONG		      xfdsn_SaveLen;	/* Length of data */
  134   STRPTR	      xfdsn_PackerName;	/* Name of recognized packer */
  135   UWORD		      xfdsn_PackerFlags;/* Flags for recognized packer */
  136 };
  137 
  138 /************************
  139 *                       *
  140 *    Scan Hook (V37)    *
  141 *                       *
  142 ************************/
  143 
  144 struct xfdScanHook {
  145   BOOL	(* xfdsh_Entry)(void);	/* Entrypoint of hook code */
  146   APTR	   xfdsh_Data;		/* Private data of hook */
  147   ULONG	   xfdsh_ToDo;		/* Bytes still to scan (READ ONLY) */
  148   ULONG	   xfdsh_ScanNode;	/* Found data right now (or NULL) (READ ONLY) */
  149 };
  150 
  151 /********************
  152 *                   *
  153 *    Error Codes    *
  154 *                   *
  155 ********************/
  156 
  157 #define XFDERR_OK		0x0000	/* No errors */
  158 
  159 #define XFDERR_NOMEMORY		0x0001	/* Error allocating memory */
  160 #define XFDERR_NOSLAVE		0x0002	/* No slave entry in info structure */
  161 #define XFDERR_NOTSUPPORTED	0x0003	/* Slave doesn't support called function */
  162 #define XFDERR_UNKNOWN		0x0004	/* Unknown file */
  163 #define XFDERR_NOSOURCE		0x0005	/* No sourcebuffer/seglist specified */
  164 #define XFDERR_WRONGPASSWORD	0x0006	/* Wrong password for decrunching */
  165 #define XFDERR_BADHUNK		0x0007	/* Bad hunk structure */
  166 #define XFDERR_CORRUPTEDDATA	0x0008	/* Crunched data is corrupted */
  167 #define XFDERR_MISSINGRESOURCE	0x0009	/* (V34) Missing resource (eg. library) */
  168 #define XFDERR_WRONGKEY		0x000a	/* (V35) Wrong 16/32 bit key */
  169 #define XFDERR_BETTERCPU	0x000b	/* (V37) Better CPU required */
  170 #define XFDERR_HOOKBREAK	0x000c	/* (V37) Hook caused break */
  171 #define XFDERR_DOSERROR		0x000d	/* (V37) Dos error */
  172 #define XFDERR_NOTARGET		0x000e	/* (V38) No user target given */
  173 #define XFDERR_TARGETTOOSMALL	0x000f	/* (V38) User target is too small */
  174 #define XFDERR_TARGETNOTSUPPORTED 0x0010 /* (V38) User target not supported */
  175 
  176 #define XFDERR_UNDEFINEDHUNK	0x1000	/* (V34) Undefined hunk type */
  177 #define XFDERR_NOHUNKHEADER	0x1001	/* (V34) File is not executable */
  178 #define XFDERR_BADEXTTYPE	0x1002	/* (V34) Bad hunk_ext type */
  179 #define XFDERR_BUFFERTRUNCATED	0x1003	/* (V34) Unexpected end of file */
  180 #define XFDERR_WRONGHUNKAMOUNT	0x1004	/* (V34) Wrong amount of hunks */
  181 #define XFDERR_NOOVERLAYS	0x1005	/* (V36) Overlays not allowed */
  182 
  183 #define XFDERR_UNSUPPORTEDHUNK	0x2000	/* (V34) Hunk type not supported */
  184 #define XFDERR_BADRELMODE	0x2001	/* (V34) Unknown XFDREL_#? mode */
  185 
  186 /*******************************
  187 *                              *
  188 *    Relocation Modes (V34)    *
  189 *                              *
  190 *******************************/
  191 
  192 #define XFDREL_DEFAULT		0x0000	/* Use memory types given by hunk_header */
  193 #define XFDREL_FORCECHIP	0x0001	/* Force all hunks to chip ram */
  194 #define XFDREL_FORCEFAST	0x0002	/* Force all hunks to fast ram */
  195 
  196 /*************************************
  197 *                                    *
  198 *    Values for xfd??_PackerFlags    *
  199 *                                    *
  200 *************************************/
  201 
  202 /* Bit numbers */
  203 #define XFDPFB_RELOC	0	/* Relocatible file packer */
  204 #define XFDPFB_ADDR	1	/* Absolute address file packer */
  205 #define XFDPFB_DATA	2	/* Data file packer */
  206 
  207 #define XFDPFB_PASSWORD	4	/* Packer requires password */
  208 #define XFDPFB_RELMODE	5	/* (V34) Decruncher supports xfdsi_RelMode */
  209 #define XFDPFB_KEY16	6	/* (V35) Packer requires 16 bit key */
  210 #define XFDPFB_KEY32	7	/* (V35) Packer requires 32 bit key */
  211 
  212 #define	XFDPFB_RECOGLEN	8	/* (V38) slave recognizes target lengths */
  213 #define	XFDPFB_USERTARGET 9	/* (V38) slave supports user target buffer */
  214 
  215 #define XFDPFB_EXTERN	15	/* (V37) PRIVATE */
  216 
  217 /* Bit masks */
  218 #define XFDPFF_RELOC	(1<<XFDPFB_RELOC)
  219 #define XFDPFF_ADDR	(1<<XFDPFB_ADDR)
  220 #define XFDPFF_DATA	(1<<XFDPFB_DATA)
  221 
  222 #define XFDPFF_PASSWORD	(1<<XFDPFB_PASSWORD)
  223 #define XFDPFF_RELMODE	(1<<XFDPFB_RELMODE)
  224 #define XFDPFF_KEY16	(1<<XFDPFB_KEY16)
  225 #define XFDPFF_KEY32	(1<<XFDPFB_KEY32)
  226 
  227 #define XFDPFF_RECOGLEN	(1<<XFDPFB_RECOGLEN)
  228 #define XFDPFF_USERTARGET (1<<XFDPFB_USERTARGET)
  229 
  230 #define XFDPFF_EXTERN	(1<<XFDPFB_EXTERN)
  231 
  232 /************************************
  233 *                                   *
  234 *    Values for xfd??_Flags (V37)   *
  235 *                                   *
  236 ************************************/
  237 
  238 /* Bit numbers */
  239 #define XFDFB_RECOGEXTERN	0	/* xfdRecog#?() uses external slaves */
  240 #define	XFDFB_RECOGTARGETLEN	1	/* (V38) xfdRecogBuffer() uses only slaves
  241 					   that recognize target lengths */
  242 #define	XFDFB_RECOGUSERTARGET	2	/* (V38) xfdRecogBuffer() uses only slaves
  243 					   that support user targets */
  244 #define	XFDFB_USERTARGET	3	/* (V38) xfdbi_DecrunchBuffer() decrunchs
  245 					   to given xfdbi_UserTarget */
  246 #define XFDFB_MASTERALLOC	4	/* (V39) master allocated decrunch buffer */ 
  247 
  248 /* Bit masks */
  249 #define XFDFF_RECOGEXTERN	(1<<XFDFB_RECOGEXTERN)
  250 #define XFDFF_RECOGTARGETLEN	(1<<XFDFB_RECOGTARGETLEN)
  251 #define XFDFF_RECOGUSERTARGET	(1<<XFDFB_RECOGUSERTARGET)
  252 #define XFDFF_USERTARGET	(1<<XFDFB_USERTARGET)
  253 #define XFDFF_MASTERALLOC	(1<<XFDFB_MASTERALLOC)
  254 
  255 /****************************************************
  256 *                                                   *
  257 *    Flags for xfdTestHunkStructureFlags() (V36)    *
  258 *                                                   *
  259 ****************************************************/
  260 
  261 /* Bit numbers */
  262 #define XFDTHB_NOOVERLAYS	0	/* Abort on hunk_overlay */
  263 
  264 /* Bit masks */
  265 #define XFDTHF_NOOVERLAYS	(1<<XFDTHB_NOOVERLAYS)
  266 
  267 /****************************************
  268 *                                       *
  269 *    Flags for xfdStripHunks() (V36)    *
  270 *                                       *
  271 ****************************************/
  272 
  273 /* Bit numbers */
  274 #define XFDSHB_NAME	0	/* Strip hunk_name */
  275 #define XFDSHB_SYMBOL	1	/* Strip hunk_symbol */
  276 #define XFDSHB_DEBUG	2	/* Strip hunk_debug */
  277 
  278 /* Bit masks */
  279 #define XFDSHF_NAME	(1<<XFDSHB_NAME)
  280 #define XFDSHF_SYMBOL	(1<<XFDSHB_SYMBOL)
  281 #define XFDSHF_DEBUG	(1<<XFDSHB_DEBUG)
  282 
  283 /**************************************
  284 *                                     *
  285 *    Flags for xfdScanData() (V37)    *
  286 *                                     *
  287 **************************************/
  288 
  289 /* Bit numbers */
  290 #define XFDSDB_USEEXTERN 0	/* Use external slaves for scanning */
  291 #define XFDSDB_SCANODD	1	/* Scan at odd addresses too */
  292 
  293 /* Bit masks */
  294 #define XFDSDF_USEEXTERN (1<<XFDSDB_USEEXTERN)
  295 #define XFDSDF_SCANODD	(1<<XFDSDB_SCANODD)
  296 
  297 /****************
  298 *               *
  299 *    Foreman    *
  300 *               *
  301 ****************/
  302 
  303 struct xfdForeMan {
  304   ULONG 	   xfdf_Security;	/* moveq #-1,d0 ; rts */
  305   ULONG 	   xfdf_ID;		/* Set to XFDF_ID */
  306   UWORD	           xfdf_Version;	/* Set to XFDF_VERSION */
  307   UWORD 	   xfdf_Reserved;	/* Not used by now, set to NULL */
  308   ULONG		   xfdf_Next;		/* PRIVATE! */
  309   ULONG		   xfdf_SegList;	/* PRIVATE! */
  310   struct xfdSlave *xfdf_FirstSlave;	/* First slave (see below) */
  311 };
  312 
  313 #define XFDF_ID		(('X'<<24)|('F'<<16)|('D'<<8)|('F'))
  314 #define XFDF_VERSION	1
  315 
  316 /**************
  317 *             *
  318 *    Slave    *
  319 *             *
  320 **************/
  321 
  322 struct xfdSlave {
  323   struct xfdSlave *xfds_Next;		/* Next slave (or NULL) */
  324   UWORD		   xfds_Version;	/* Set to XFDS_VERSION */
  325   UWORD 	   xfds_MasterVersion;	/* Minimum XFDM_VERSION required */
  326   STRPTR	   xfds_PackerName;	/* Name of packer ('\0' terminated) */
  327   UWORD 	   xfds_PackerFlags;	/* Flags for packer */
  328   UWORD 	   xfds_MaxSpecialLen;	/* Max. length of special info (eg. password) */
  329   BOOL		(* xfds_RecogBuffer)(void);    /* buffer recognition code (or NULL) */
  330   BOOL		(* xfds_DecrunchBuffer)(void); /* buffer decrunch code (or NULL) */
  331   BOOL		(* xfds_RecogSegment)(void);   /* segment recognition code (or NULL) */
  332   BOOL		(* xfds_DecrunchSegment)(void);/* segment decrunch code (or NULL) */
  333   UWORD		   xfds_SlaveID;	/* (V36) Slave ID (only internal slaves) */
  334   UWORD		   xfds_ReplaceID;	/* (V36) ID of slave to be replaced */
  335   ULONG		   xfds_MinBufferSize;	/* (V36) Min. BufSize for RecogBufferXYZ() */
  336 };
  337 
  338 #define xfds_ScanData xfds_RecogSegment		/* (V37) XFDPFB_DATA: Scan code (or NULL) */
  339 #define xfds_VerifyData xfds_DecrunchSegment	/* (V37) XFDPFB_DATA: Verify code (or NULL) */
  340 
  341 #define XFDS_VERSION	2
  342 
  343 /*********************************************
  344 *                                            *
  345 *    Additional Recognition Results (V38)    *
  346 *                                            *
  347 *********************************************/
  348 
  349 struct xfdRecogResult {
  350 	ULONG	xfdrr_MinTargetLen;	/* Min. required length of target buffer */
  351 	ULONG	xfdrr_FinalTargetLen;	/* Final length of decrunched file */
  352 	ULONG	xfdrr_MinSourceLen;	/* (V39) minimum size of source file */
  353 };
  354 
  355 /*********************************
  356 *                                *
  357 *    Internal Slave IDs (V36)    *
  358 *                                *
  359 *********************************/
  360 
  361 #define XFDID_BASE	0x8000
  362 
  363 #define XFDID_PowerPacker23		(XFDID_BASE+0x0001)
  364 #define XFDID_PowerPacker30		(XFDID_BASE+0x0003)
  365 #define XFDID_PowerPacker30Enc		(XFDID_BASE+0x0005)
  366 #define XFDID_PowerPacker30Ovl		(XFDID_BASE+0x0007)
  367 #define XFDID_PowerPacker40		(XFDID_BASE+0x0009)
  368 #define XFDID_PowerPacker40Lib		(XFDID_BASE+0x000a)
  369 #define XFDID_PowerPacker40Enc		(XFDID_BASE+0x000b)
  370 #define XFDID_PowerPacker40LibEnc	(XFDID_BASE+0x000c)
  371 #define XFDID_PowerPacker40Ovl		(XFDID_BASE+0x000d)
  372 #define XFDID_PowerPacker40LibOvl	(XFDID_BASE+0x000e)
  373 #define XFDID_PowerPackerData		(XFDID_BASE+0x000f)
  374 #define XFDID_PowerPackerDataEnc	(XFDID_BASE+0x0010)
  375 #define XFDID_ByteKiller13		(XFDID_BASE+0x0011)
  376 #define XFDID_ByteKiller20		(XFDID_BASE+0x0012)
  377 #define XFDID_ByteKiller30		(XFDID_BASE+0x0013)
  378 #define XFDID_ByteKillerPro10		(XFDID_BASE+0x0014)
  379 #define XFDID_ByteKillerPro10Pro	(XFDID_BASE+0x0015)
  380 #define XFDID_DragPack10		(XFDID_BASE+0x0016)
  381 #define XFDID_TNMCruncher11		(XFDID_BASE+0x0017)
  382 #define XFDID_HQCCruncher20		(XFDID_BASE+0x0018)
  383 #define XFDID_RSICruncher14		(XFDID_BASE+0x0019)
  384 #define XFDID_ANCCruncher		(XFDID_BASE+0x001a)
  385 #define XFDID_ReloKit10			(XFDID_BASE+0x001b)
  386 #define XFDID_HighPressureCruncher	(XFDID_BASE+0x001c)
  387 #define XFDID_STPackedSong		(XFDID_BASE+0x001d)
  388 #define XFDID_TSKCruncher		(XFDID_BASE+0x001e)
  389 #define XFDID_LightPack15		(XFDID_BASE+0x001f)
  390 #define XFDID_CrunchMaster10		(XFDID_BASE+0x0020)
  391 #define XFDID_HQCCompressor100		(XFDID_BASE+0x0021)
  392 #define XFDID_FlashSpeed10		(XFDID_BASE+0x0022)
  393 #define XFDID_CrunchManiaData		(XFDID_BASE+0x0023)
  394 #define XFDID_CrunchManiaDataEnc	(XFDID_BASE+0x0024)
  395 #define XFDID_CrunchManiaLib		(XFDID_BASE+0x0025)
  396 #define XFDID_CrunchManiaNormal		(XFDID_BASE+0x0026)
  397 #define XFDID_CrunchManiaSimple		(XFDID_BASE+0x0027)
  398 #define XFDID_CrunchManiaAddr		(XFDID_BASE+0x0028)
  399 #define XFDID_DefJamCruncher32		(XFDID_BASE+0x0029)
  400 #define XFDID_DefJamCruncher32Pro	(XFDID_BASE+0x002a)
  401 #define XFDID_TetraPack102		(XFDID_BASE+0x002b)
  402 #define XFDID_TetraPack11		(XFDID_BASE+0x002c)
  403 #define XFDID_TetraPack21		(XFDID_BASE+0x002d)
  404 #define XFDID_TetraPack21Pro		(XFDID_BASE+0x002e)
  405 #define XFDID_TetraPack22		(XFDID_BASE+0x002f)
  406 #define XFDID_TetraPack22Pro		(XFDID_BASE+0x0030)
  407 #define XFDID_DoubleAction10		(XFDID_BASE+0x0031)
  408 #define XFDID_DragPack252Data		(XFDID_BASE+0x0032)
  409 #define XFDID_DragPack252		(XFDID_BASE+0x0033)
  410 #define XFDID_FCG10			(XFDID_BASE+0x0034)
  411 #define XFDID_Freeway07			(XFDID_BASE+0x0035)
  412 #define XFDID_IAMPacker10ATM5Data	(XFDID_BASE+0x0036)
  413 #define XFDID_IAMPacker10ATM5		(XFDID_BASE+0x0037)
  414 #define XFDID_IAMPacker10ICEData	(XFDID_BASE+0x0038)
  415 #define XFDID_IAMPacker10ICE		(XFDID_BASE+0x0039)
  416 #define XFDID_Imploder			(XFDID_BASE+0x003a)
  417 #define XFDID_ImploderLib		(XFDID_BASE+0x003b)
  418 #define XFDID_ImploderOvl		(XFDID_BASE+0x003c)
  419 #define XFDID_FileImploder		(XFDID_BASE+0x003d)
  420 #define XFDID_MasterCruncher30Addr	(XFDID_BASE+0x003f)
  421 #define XFDID_MasterCruncher30		(XFDID_BASE+0x0040)
  422 #define XFDID_MaxPacker12		(XFDID_BASE+0x0041)
  423 #define XFDID_PackIt10Data		(XFDID_BASE+0x0042)
  424 #define XFDID_PackIt10			(XFDID_BASE+0x0043)
  425 #define XFDID_PMCNormal			(XFDID_BASE+0x0044)
  426 #define XFDID_PMCSample			(XFDID_BASE+0x0045)
  427 #define XFDID_XPKPacked			(XFDID_BASE+0x0046)
  428 #define XFDID_XPKCrypted		(XFDID_BASE+0x0047)
  429 #define XFDID_TimeCruncher17		(XFDID_BASE+0x0048)
  430 #define XFDID_TFACruncher154		(XFDID_BASE+0x0049)
  431 #define XFDID_TurtleSmasher13		(XFDID_BASE+0x004a)
  432 #define XFDID_MegaCruncher10		(XFDID_BASE+0x004b)
  433 #define XFDID_MegaCruncher12		(XFDID_BASE+0x004c)
  434 #define XFDID_ProPack			(XFDID_BASE+0x004d)
  435 #define XFDID_ProPackData		(XFDID_BASE+0x004e)
  436 #define XFDID_ProPackDataKey		(XFDID_BASE+0x004f)
  437 #define XFDID_STCruncher10		(XFDID_BASE+0x0050)
  438 #define XFDID_STCruncher10Data		(XFDID_BASE+0x0051)
  439 #define XFDID_SpikeCruncher		(XFDID_BASE+0x0052)
  440 #define XFDID_SyncroPacker46		(XFDID_BASE+0x0053)
  441 #define XFDID_SyncroPacker46Pro		(XFDID_BASE+0x0054)
  442 #define XFDID_TitanicsCruncher11	(XFDID_BASE+0x0055)
  443 #define XFDID_TitanicsCruncher12	(XFDID_BASE+0x0056)
  444 #define XFDID_TryItCruncher101		(XFDID_BASE+0x0057)
  445 #define XFDID_TurboSqueezer61		(XFDID_BASE+0x0058)
  446 #define XFDID_TurboSqueezer80		(XFDID_BASE+0x0059)
  447 #define XFDID_TurtleSmasher200		(XFDID_BASE+0x005a)
  448 #define XFDID_TurtleSmasher200Data	(XFDID_BASE+0x005b)
  449 #define XFDID_StoneCracker270		(XFDID_BASE+0x005c)
  450 #define XFDID_StoneCracker270Pro	(XFDID_BASE+0x005d)
  451 #define XFDID_StoneCracker292		(XFDID_BASE+0x005e)
  452 #define XFDID_StoneCracker299		(XFDID_BASE+0x005f)
  453 #define XFDID_StoneCracker299d		(XFDID_BASE+0x0060)
  454 #define XFDID_StoneCracker300		(XFDID_BASE+0x0061)
  455 #define XFDID_StoneCracker300Data	(XFDID_BASE+0x0062)
  456 #define XFDID_StoneCracker310		(XFDID_BASE+0x0063)
  457 #define XFDID_StoneCracker310Data	(XFDID_BASE+0x0064)
  458 #define XFDID_StoneCracker311		(XFDID_BASE+0x0065)
  459 #define XFDID_StoneCracker400		(XFDID_BASE+0x0066)
  460 #define XFDID_StoneCracker400Data	(XFDID_BASE+0x0067)
  461 #define XFDID_StoneCracker401		(XFDID_BASE+0x0068)
  462 #define XFDID_StoneCracker401Data	(XFDID_BASE+0x0069)
  463 #define XFDID_StoneCracker401Addr	(XFDID_BASE+0x006a)
  464 #define XFDID_StoneCracker401BetaAddr	(XFDID_BASE+0x006b)
  465 #define XFDID_StoneCracker403Data	(XFDID_BASE+0x006c)
  466 #define XFDID_StoneCracker404		(XFDID_BASE+0x006d)
  467 #define XFDID_StoneCracker404Data	(XFDID_BASE+0x006e)
  468 #define XFDID_StoneCracker404Addr	(XFDID_BASE+0x006f)
  469 #define XFDID_ChryseisCruncher09	(XFDID_BASE+0x0070)
  470 #define XFDID_QuickPowerPacker10	(XFDID_BASE+0x0071)
  471 #define XFDID_GNUPacker12		(XFDID_BASE+0x0072)
  472 #define XFDID_GNUPacker12Seg		(XFDID_BASE+0x0073)
  473 #define XFDID_GNUPacker12Data		(XFDID_BASE+0x0074)
  474 #define XFDID_TrashEliminator10		(XFDID_BASE+0x0075)
  475 #define XFDID_MasterCruncher30Data	(XFDID_BASE+0x0076)
  476 #define XFDID_SuperCruncher27		(XFDID_BASE+0x0077)
  477 #define XFDID_UltimatePacker11		(XFDID_BASE+0x0078)
  478 #define XFDID_ProPackOld		(XFDID_BASE+0x0079)
  479 #define XFDID_SACFPQCruncher		(XFDID_BASE+0x007a) /* disabled */
  480 #define XFDID_PowerPackerPatch10	(XFDID_BASE+0x007b)
  481 #define XFDID_CFP135			(XFDID_BASE+0x007c)
  482 #define XFDID_BOND			(XFDID_BASE+0x007d)
  483 #define XFDID_PowerPackerLoadSeg	(XFDID_BASE+0x007e)
  484 #define XFDID_StoneCracker299b		(XFDID_BASE+0x007f)
  485 #define XFDID_CrunchyDat10		(XFDID_BASE+0x0080)
  486 #define XFDID_PowerPacker20		(XFDID_BASE+0x0081)
  487 #define XFDID_StoneCracker403		(XFDID_BASE+0x0082)
  488 #define XFDID_PKProtector200		(XFDID_BASE+0x0083)
  489 #define XFDID_PPbk			(XFDID_BASE+0x0084)
  490 #define XFDID_StoneCracker292Data	(XFDID_BASE+0x0085)
  491 #define XFDID_MegaCruncherObj		(XFDID_BASE+0x0086)
  492 #define XFDID_DeluxeCruncher1		(XFDID_BASE+0x0087)
  493 #define XFDID_DeluxeCruncher3		(XFDID_BASE+0x0088)
  494 #define XFDID_ByteKiller97		(XFDID_BASE+0x0089)
  495 #define XFDID_TurboSqueezer51		(XFDID_BASE+0x008A)
  496 #define XFDID_SubPacker10		(XFDID_BASE+0x008B)
  497 #define XFDID_StoneCracker404Lib	(XFDID_BASE+0x008C)
  498 #define XFDID_ISC_Pass1			(XFDID_BASE+0x008D)
  499 #define XFDID_ISC_Pass2			(XFDID_BASE+0x008E)
  500 #define XFDID_ISC_Pass3			(XFDID_BASE+0x008F)
  501 #define XFDID_PCompressFALH		(XFDID_BASE+0x0090)
  502 #define XFDID_PCompressHILH		(XFDID_BASE+0x0091)
  503 #define XFDID_SMF			(XFDID_BASE+0x0092)
  504 #define XFDID_DefJamCruncher32T		(XFDID_BASE+0x0093)
  505 
  506 #pragma pack()
  507 
  508 #endif /* LIBRARIES_XFDMASTER_H */