======================
*/
-void MML_UseSpace(/*d*/word segstart, /*d*/word seglength, mminfo_t *mm)
+void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm)
{
mmblocktype huge *scan,huge *last;
- /*d*/word oldend;
+ dword oldend;
/*d*/word fat=0;
word segm=0;
- /*d*/word extra;
+ dword extra;
scan = last = mm->mmhead;
mm->mmrover = mm->mmhead; // reset rover to start of memory
MML_SetupEMS(mm); // allocate space
printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug!
//TODO: EMS4! AND EMS 3.2 MASSIVE DATA HANDLMENT!
- MML_UseSpace(mm->EMSpageframe,(/*mm->EMSpagesmapped*/4)*0x4000lu, mm);
+ MML_UseSpace(mm->EMSpageframe,(mm->EMSpagesmapped)*0x4000lu, mm);
//printf("EMS3\n");
MM_MapEMS(mm); // map in used pages
//printf("EMS4\n");
- mmi->EMSmem = (/*mm->EMSpagesmapped*/4)*0x4000lu;
+ mmi->EMSmem = (mm->EMSpagesmapped)*0x4000lu;
}
//
x->next=mm->mmfree;
mm->mmfree=x;
}
+
+void MM_seguin(void)
+{
+ __asm
+ {
+ push ds
+ inc ds
+ }
+}
+
+void MM_segude(void)
+ __asm
+ {
+ pop ds
+ }
+}
+
+/*
+pull data from far and put it into ds var
+mov ax,es:si
+mov x,ax
+*/
+/*
+ss stack segment
+sp top of stack
+bp bottem of stack
+*/
{
word start,length;
//dword start,length;
+ //word start;
+ //dword length;
unsigned attributes;
memptr *useptr; // pointer to the segment start
struct mmblockstruct huge *next;
boolean MML_CheckForXMS(mminfo_t *mm);
void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi);
void MML_ShutdownXMS(mminfo_t *mm);
-void MML_UseSpace(/*d*/word segstart, /*d*/word seglength, mminfo_t *mm);
+void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm);
void MML_ClearBlock(mminfo_t *mm);
void MM_Startup(mminfo_t *mm, mminfotype *mmi);