\r
*/\r
\r
-\r
#include <stdio.h>\r
#include <stdlib.h>\r
#include <mem.h>\r
+#include <conio.h>
\r
-#include "memory.h"\r
+#include "memory.h"
+
+#define PEMMDATAPAGENUM 4\r
\r
void TransformData(char *pEmmData, unsigned int len)\r
{\r
- while ( len )\r
- {\r
- (*pEmmData)++;\r
- pEmmData++;\r
+ while(len)\r
+ {\r
+ (*pEmmData)++;\r
+ pEmmData++;\r
\r
- len--;\r
- }\r
+ len--;\r
+ }\r
}\r
\r
int main(int argc, char *argv[])\r
byte *pEmmData;
int hEData;
unsigned long advi;
+ unsigned long i=0;
+ char huge *p =(char huge *)(GetEMMSeg0()*0x10000);
\r
if(OpenEMM() != SUCCESS)\r
- { // make sure we got EMM\r
+ { // make sure we got EMM\r
printf("EMM unavailable.\n");\r
exit(1);\r
}\r
else
- {\r
- printf("Emm %x available\n", EMVer());
- printf("EMS pages available are %lu\n", EMMCoreLeft());
- //printf("EMM Hardware Information %lu\n", EMInfo());
- }\r
+ {\r
+ printf("Emm %x available\n", EMVer());
+ printf("EMS pages available are %lu\n", EMMCoreLeft());
+ //printf("EMM Hardware Information %lu\n", EMInfo());
+ }\r
printf("b4 EMS pEmmData=%p\n", pEmmData);
//printf("b4 EMS *pEmmData=%s\n", *pEmmData);
printf("EMS pages available are %lu\n", EMMCoreLeft());
+
+
printf("Map 1st 4 pages\n");\r
- //MapEMM(hEData, 0, 4); // load 1st 4 pages into page frame: 0-3
- MapEMM(hEData, 0, EMMCoreLeft()); // load 1st 4 pages into page frame: 0-3\r
+ MapEMM(hEData, 0, PEMMDATAPAGENUM); // load 1st 4 pages into page frame: 0-3\r
//memset(pEmmData, 0x0e, 64000u);
- printf("(advi*EMMPAGESIZE)=%lu\n", advi);
- memset(pEmmData, atoi(argv[1]), advi);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE));
+//0000 printf("(advi*EMMPAGESIZE)=%lu\n", advi);
+ memset(pEmmData, atoi(argv[1]), 0xffff);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE));
+//qqqq memset(pEmmData+0x10000, atoi(argv[1]), 0xffff);//sizeof(atoi(argv[1])));//((EMMCoreLeft())*EMMPAGESIZE));
//---- UnmapEMM(hEData, 0, 4); // not absolutely necessary
- printf("*pEmmData=%c\n", *pEmmData);
+ printf("%p= %c %c %c %c %c %c %c %c\n", pEmmData,
+*pEmmData, *(pEmmData+1), *(pEmmData+2), *(pEmmData+3), *(pEmmData+4), *(pEmmData+5), *(pEmmData+6), *(pEmmData+7));
\r
/*printf("Map next 2 pages\n");\r
MapEMM(hEData, 4, 2); // map last 2 pages: 4-5\r
// do stuff with remaining 32K of data\r
TransformData(pEmmData, 32768UL);
printf("*pEmmData=%lu\n", *pEmmData);*/
- if(!atoi(argv[2]))
+ if(atoi(argv[2]))
+ {
+ while(p<(char huge *)((GetEMMSeg0()*0x10000)+0xffff) && !kbhit())
+ {
+ if((i%16)==0) printf("%p= %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c\n", p,
+*p, *(p+1), *(p+2), *(p+3), *(p+4), *(p+5), *(p+6), *(p+7),
+*(p+8), *(p+9), *(p+10), *(p+11), *(p+12), *(p+13), *(p+14), *(p+15));
+ // (*p)++;
+ i++;
+ p++;
+ }
+ }
+ /*if(atoi(argv[3]))
+ p =(char huge *)(GetEMMSeg0()*0x20000);
+ while(p<(char huge *)((GetEMMSeg0()*0x20000)+0xffff) && !kbhit())
+ {
+ if((i%16)==0) printf("%p= %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c\n", p,
+*p, *(p+1), *(p+2), *(p+3), *(p+4), *(p+5), *(p+6), *(p+7),
+*(p+8), *(p+9), *(p+10), *(p+11), *(p+12), *(p+13), *(p+14), *(p+15));
+ // (*p)++;
+ i++;
+ p++;
+ }
+ //free(p);
+ }*/
+ if(!atoi(argv[3]))
{\r
- UnmapEMM(hEData, 0, EMMCoreLeft(/*4*/)); // should unmap before freeing
- //printf("after EMS *pEmmData=%c\n", *pEmmData);
-\r
- printf("Close emm\n");\r
- EMMFree(hEData); // finished with the file data\r
- CloseEMM();
+ UnmapEMM(hEData, 0, PEMMDATAPAGENUM); // should unmap before freeing
+ //printf("after EMS *pEmmData=%c\n", *pEmmData);\r
+ printf("Close emm\n");\r
+ EMMFree(hEData); // finished with the file data\r
+ CloseEMM();
}
printf("after EMS pEmmData=%p\n", pEmmData);
printf("EMS pages available are %lu\n", EMMCoreLeft());
+ printf("GetEMMSeg0=%p\n", GetEMMSeg0()*0x10000);
//printf("EMMPAGESIZE=%d\n", EMMPAGESIZE);
return 0;
}\r