X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_mm.c;h=1800c7d5bde45ba148ad6cf03dcce2460a66a0b9;hb=d45a99ed2ea331a9d2f19b20494fec509fc0efb5;hp=398fd082d173cc1a3b382ed2ef4c835269c2c229;hpb=cbb194e786dae622f090290e4b59ed9c76420d9b;p=16.git diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index 398fd082..1800c7d5 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -83,10 +83,11 @@ static char *ParmStringsexmm[] = {"noems","noxms",""}; boolean MML_CheckForEMS(void) { boolean emmcfems; - char emmname[] = "EMMXXXX0"; + static char emmname[] = "EMMXXXX0"; //fix by andrius4669 // mov dx,OFFSET emmname __asm { - LEA DX, emmname //fix by andrius4669 + //LEA DX, emmname //fix by andrius4669 + mov dx,OFFSET emmname //fix by andrius4669 mov ax,0x3d00 int 0x21 // try to open EMMXXXX0 device jc error @@ -423,6 +424,7 @@ void MML_ShutdownXMS(mminfo_t *mm) void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm) { mmblocktype huge *scan,huge *last; + word segm; dword oldend; dword extra; @@ -439,11 +441,12 @@ void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm) } //find out how many blocks it spans! - /*++++if(seglength>0xffffu) + if(seglength>0xffffu) { - scan->sega=(word)seglength/0xffffu; +// segm=seglength/0x4000u; + segm=seglength/0xffffu; } - else scan->sega=1;*/ + else segm=1; // // take the given range out of the block @@ -451,7 +454,7 @@ void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm) oldend = scan->start + scan->length; extra = oldend - (segstart+seglength); //++++emsver stuff! - if(extra>0xfffflu) + if(segm>1/*extra>0xfffflu*/) { /*__asm { @@ -460,7 +463,7 @@ void MML_UseSpace(/*d*/word segstart, dword seglength, mminfo_t *mm) inc ax mov ds,ax }*/ -//++++printf("sega=%u ", scan->sega); +printf("segm=%u ", segm); printf("ex=%lu ", extra); printf("len=%u ", scan->length); printf("segsta=%x ", segstart); @@ -653,7 +656,7 @@ emsskip: if(MML_CheckForXMS(mm)) { printf("XMS!\n"); - MML_SetupXMS(mm, mmi); // allocate as many UMBs as possible + //MML_SetupXMS(mm, mmi); // allocate as many UMBs as possible } //