/****************************************************************************/ typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long XPTR; /****************************************************************************/ #define CPU_8086 0 #define CPU_80286 2 #define CPU_80386 3 #define CPU_80386p 4 #define MAX_EMB 32 #define CF_SET (_FLAGS & 1) #define CF_CLR !(_FLAGS & 1) /****************************************************************************/ enum PM { PM_NA=0xFF, PM_OK=0, PM_V86, PM_DPMS, PM_PHAR_LAP, PM_DOS4GW, PM_DOSX, PM_DPMI }; enum XMS_INIT_ERR { XMS_NOT_INSTALLED=0, XMS_BAD_VERSION, XMS_BAD_A20 }; enum GET_RAM_ERR { NO_FREE_RAM=0, NO_FREE_EMB, CANT_LOCK_XMS }; /****************************************************************************/ extern pascal unsigned char CPU; /****************************************************************************/ extern pascal WORD FRMI_START(void); extern pascal WORD TEST_CPU(void); extern pascal WORD XMS_INIT(void); extern pascal WORD XMS_LOCAL_ENABLE_A20(void); extern pascal WORD XMS_QUERY_FREE(void); extern pascal WORD XMS_ALLOC(WORD KBYTES); extern pascal WORD XMS_FREE(WORD HANDLE); extern pascal XPTR XMS_LOCK(WORD HANDLE); extern pascal WORD XMS_UNLOCK(WORD HANDLE); extern pascal WORD XMS_REALLOC(WORD HANDLE, WORD NEW_SIZE); extern pascal WORD QUERY_FREE_RAM(void); extern pascal XPTR GET_RAM(WORD KBYTES); extern pascal void FREE_RAM(XPTR ADDRESS); /****************************************************************************/