wolf3d

The original open source release of Wolfenstein 3D
Log | Files | Refs

ID_MM.H (2025B)


      1 // ID_MM.H
      2 
      3 #ifndef __ID_CA__
      4 
      5 #define __ID_CA__
      6 
      7 #define SAVENEARHEAP	0x400		// space to leave in data segment
      8 #define SAVEFARHEAP		0			// space to leave in far heap
      9 
     10 #define	BUFFERSIZE		0x1000		// miscelanious, allways available buffer
     11 
     12 #define MAXBLOCKS		700
     13 
     14 
     15 //--------
     16 
     17 #define	EMS_INT			0x67
     18 
     19 #define	EMS_STATUS		0x40
     20 #define	EMS_GETFRAME	0x41
     21 #define	EMS_GETPAGES	0x42
     22 #define	EMS_ALLOCPAGES	0x43
     23 #define	EMS_MAPPAGE		0x44
     24 #define	EMS_FREEPAGES	0x45
     25 #define	EMS_VERSION		0x46
     26 
     27 //--------
     28 
     29 #define	XMS_INT			0x2f
     30 #define	XMS_CALL(v)		_AH = (v);\
     31 						asm call [DWORD PTR XMSDriver]
     32 
     33 #define	XMS_VERSION		0x00
     34 
     35 #define	XMS_ALLOCHMA	0x01
     36 #define	XMS_FREEHMA		0x02
     37 
     38 #define	XMS_GENABLEA20	0x03
     39 #define	XMS_GDISABLEA20	0x04
     40 #define	XMS_LENABLEA20	0x05
     41 #define	XMS_LDISABLEA20	0x06
     42 #define	XMS_QUERYA20	0x07
     43 
     44 #define	XMS_QUERYFREE	0x08
     45 #define	XMS_ALLOC		0x09
     46 #define	XMS_FREE		0x0A
     47 #define	XMS_MOVE		0x0B
     48 #define	XMS_LOCK		0x0C
     49 #define	XMS_UNLOCK		0x0D
     50 #define	XMS_GETINFO		0x0E
     51 #define	XMS_RESIZE		0x0F
     52 
     53 #define	XMS_ALLOCUMB	0x10
     54 #define	XMS_FREEUMB		0x11
     55 
     56 //==========================================================================
     57 
     58 typedef void _seg * memptr;
     59 
     60 typedef struct
     61 {
     62 	long	nearheap,farheap,EMSmem,XMSmem,mainmem;
     63 } mminfotype;
     64 
     65 //==========================================================================
     66 
     67 extern	mminfotype	mminfo;
     68 extern	memptr		bufferseg;
     69 extern	boolean		mmerror;
     70 
     71 extern	void		(* beforesort) (void);
     72 extern	void		(* aftersort) (void);
     73 
     74 //==========================================================================
     75 
     76 void MM_Startup (void);
     77 void MM_Shutdown (void);
     78 void MM_MapEMS (void);
     79 
     80 void MM_GetPtr (memptr *baseptr,unsigned long size);
     81 void MM_FreePtr (memptr *baseptr);
     82 
     83 void MM_SetPurge (memptr *baseptr, int purge);
     84 void MM_SetLock (memptr *baseptr, boolean locked);
     85 void MM_SortMem (void);
     86 
     87 void MM_ShowMemory (void);
     88 
     89 long MM_UnusedMemory (void);
     90 long MM_TotalFree (void);
     91 
     92 void MM_BombOnError (boolean bomb);
     93 
     94 void MML_UseSpace (unsigned segstart, unsigned seglength);
     95 
     96 #endif