Metropoli BBS
VIEWER: frmi.h MODE: TEXT (ASCII)
/****************************************************************************/

 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);

/****************************************************************************/
[ RETURN TO DIRECTORY ]