X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2F16_mm.h;h=4516571d4f4492ef43ae7cea00b6c7c6f354cb32;hb=050d28da3358d5c1434fda542ec11adbee182ea5;hp=2a344aee724eb2e6f078d79e9d3865d3a32ebcc8;hpb=bd35bd7d97646cc726bd40cc54c9a158af008b4d;p=16.git
diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h
index 2a344aee..4516571d 100755
--- a/src/lib/16_mm.h
+++ b/src/lib/16_mm.h
@@ -1,38 +1,39 @@
-/* Catacomb Apocalypse Source Code
- * Copyright (C) 1993-2014 Flat Rock Software
+/* Project 16 Source Code~
+ * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover
*
- * This program is free software; you can redistribute it and/or modify
+ * This file is part of Project 16.
+ *
+ * Project 16 is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * Project 16 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see , or
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301 USA.
+ *
*/
// ID_MM.H
-#ifndef __16_EXMM__
-#define __16_EXMM__
+#ifndef __16_MM__
+#define __16_MM__
#include
-#include
#include "src/lib/16_head.h"
#include "src/lib/16_hc.h"
#include "src/lib/16_tail.h"
-//++++mh #include "src/lib/16_in.h"
#ifdef __DEBUG__ // 1 == Debug/Dev ; 0 == Production/final
#define OUT_OF_MEM_MSG "MM_GetPtr: Out of memory!\nYou were short :%lu bytes\n"
-extern boolean dbg_debugpm;
#else
-#define OUT_OF_MEM_MSG "\npee\n"
+#define OUT_OF_MEM_MSG "\n"
#endif
//#define GETNEWBLOCK {if(!(mmnew=mmfree))Quit("MM_GETNEWBLOCK: No free blocks!") ;mmfree=mmfree->next;}
@@ -40,19 +41,19 @@ extern boolean dbg_debugpm;
#define FREEBLOCK(x) {*x->useptr=NULL;x->next=gvar->mm.mmfree;gvar->mm.mmfree=x;}
-#define SAVENEARHEAP 0x200 // space to leave in data segment
-#define SAVEFARHEAP 0//x400 // space to leave in far heap
+#define SAVENEARHEAP 0x400 // space to leave in data segment
+#define SAVEFARHEAP 0 // space to leave in far heap
#define BUFFERSIZE 0x1000 // miscelanious, allways available buffer
-//moved to typdefst
+//moved to 16_tdef.h
//#define MAXBLOCKS 1024
-
//--------
#define EMS_INT 0x67
+#define EMM_INT 0x21
#define EMS_STATUS 0x40
#define EMS_GETFRAME 0x41
@@ -105,7 +106,7 @@ extern boolean dbg_debugpm;
extern void (* beforesort) (void);
extern void (* aftersort) (void);
-extern void (* XMSaddr) (void); // far pointer to XMS driver
+//extern void (* XMSaddr) (void); // far pointer to XMS driver
extern dword XMSDriver;
extern word XMSVer;
@@ -136,7 +137,6 @@ extern word XMSVer;
word blob; //for data larger than 64k
unsigned attributes;
memptr *useptr; // pointer to the segment start
- //huge struct mmblockstruct huge *next;
struct mmblockstruct far *next;
} mmblocktype;
@@ -145,7 +145,6 @@ typedef struct
{
memptr bufferseg;
boolean mmstarted, bombonerror, mmerror;
- //huge void huge *farheap;
void far *farheap;
#ifdef __BORLANDC__
void *nearheap;
@@ -158,7 +157,6 @@ typedef struct
unsigned int EMSVer;
word numUMBs,UMBbase[MAXUMBS];
//dword numUMBs,UMBbase[MAXUMBS];
- //huge mmblocktype huge mmblocks[MAXBLOCKS],huge *mmhead,huge *mmfree,huge *mmrover,huge *mmnew;
mmblocktype far mmblocks[MAXBLOCKS],far *mmhead,far *mmfree,far *mmrover,far *mmnew;
} mminfo_t;*/
@@ -184,13 +182,13 @@ typedef struct
boolean MML_CheckForEMS(void);
//byte MML_SetupEMS(mminfo_t *mm);
//void MML_ShutdownEMS(mminfo_t *mm);
-byte MM_MapEMS(global_game_variables_t *gvar);
+//byte MM_MapEMS(global_game_variables_t *gvar);
//byte MM_MapXEMS(global_game_variables_t *gvar);
boolean MML_CheckForXMS(void);
//void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi);
//void MML_ShutdownXMS(mminfo_t *mm);
-void MML_UseSpace(word segstart, dword seglength, global_game_variables_t *gvar);
-void MML_ClearBlock(global_game_variables_t *gvar);
+ void MML_UseSpace (unsigned segstart, unsigned seglength, global_game_variables_t *gvar);
+ void MML_ClearBlock (global_game_variables_t *gvar);
void MM_Startup(global_game_variables_t *gvar);
void MM_Shutdown(global_game_variables_t *gvar);