#ifndef COMPILE_H
#include "COMPILE.H"
#endif
#ifdef MEDIA643_A31E_X31J
/* Order of functions in jumptable in original MEM1.FTL
F2281_MEM1_05_ClearBytes
F9010_
F9013_MEM1_09_EmptyFunction
F9011_
F9012_MEM1_08_Available
F9015_MEM1_03_Expunge
F0007_MAIN_CopyBytes
main
AllocMem
AvailMem
FreeMem
F1065_SetExecBase
*/
/* MINE: recompilation of all modules after command "Remove objects" */
/* MINE no change                        or
MINE with defines uncommented above
F9013_MEM1_09_EmptyFunction
F9012_MEM1_08_Available
F9011_
F9010_
F2281_MEM1_05_ClearBytes
F0007_MAIN_CopyBytes
F9015_MEM1_03_Expunge
main
FreeMem
F1065_SetExecBase
AvailMem
AllocMem
*/
/* MINE WITH defines uncommented above, static keyword removed from associated functions (in both declaration and definition)
F9013_MEM1_09_EmptyFunction
F9015_MEM1_03_Expunge
F9012_MEM1_08_Available
main
F9010_
F0007_MAIN_CopyBytes
F9011_
F2281_MEM1_05_ClearBytes
FreeMem
F1065_SetExecBase
AvailMem
AllocMem
*/
/* MINE WITH static keyword removed from associated functions (in both declaration and definition)
F9013_MEM1_09_EmptyFunction
F9015_MEM1_03_Expunge
F9012_MEM1_08_Available
F2281_MEM1_05_ClearBytes
F9010_
F0007_MAIN_CopyBytes
F9011_
main
FreeMem
F1065_SetExecBase
AvailMem
AllocMem
*/

#ifdef MEDIA692_X31J
#define F9012_MEM1_08_Available         MEM1AVAIL
#define F9011_MEM1_07_Free              MEM1FREE
#define F9010_MEM1_06_Allocate          MEM1ALLOC
#define F2281_MEM1_05_ClearBytes        CLEARMEM
#define F7317_MEM1_04_CopyBytes         MOVEMEM
#define F9014_MEM1_Initialize           MEM1INIT
#endif

extern void F9013_MEM1_09_EmptyFunction();
extern long F9012_MEM1_08_Available();
extern void F9011_MEM1_07_Free();
extern unsigned char* F9010_MEM1_06_Allocate();
extern void F2281_MEM1_05_ClearBytes();
extern void F7317_MEM1_04_CopyBytes();
extern void F9015_MEM1_03_Expunge();
extern FTL_LIBRARY* F9014_MEM1_Initialize();

struct {
        void* Functions[9];
        MEM1_FTL_LIBRARY Data;
} G9009_s_MEM1Library = {
        { (void*)F9013_MEM1_09_EmptyFunction,   /* 09 -$24 */
          (void*)F9012_MEM1_08_Available,       /* 08 -$20 */
          (void*)F9011_MEM1_07_Free,            /* 07 -$1C */
          (void*)F9010_MEM1_06_Allocate,        /* 06 -$18 */
          (void*)F2281_MEM1_05_ClearBytes,      /* 05 -$14 */
          (void*)F7317_MEM1_04_CopyBytes,       /* 04 -$10 */
          (void*)F9015_MEM1_03_Expunge,         /* 03 -$0C */
          NULL,                                 /* 02 -$08 */
          NULL                                  /* 01 -$04 */
} };


void main(P3102_l_)
long P3102_l_;
{
        G9009_s_MEM1Library.Data.FTLLibrary.FTLNode.Name = FTL_MEM1;
        G9009_s_MEM1Library.Data.FTLLibrary.Version = 2;
        G9009_s_MEM1Library.Data.FTLLibrary.Unused1 = 0;
        F9014_MEM1_Initialize(P3102_l_, &G9009_s_MEM1Library.Data.FTLLibrary);
}
#endif
