First commit 09/04/1995
This commit is contained in:
90
XMSDEMO.CPP
Normal file
90
XMSDEMO.CPP
Normal file
@ -0,0 +1,90 @@
|
||||
/**************************************************************************/
|
||||
/* Demostracion de la Clase XmsSupp */
|
||||
/* */
|
||||
/* Compilar en Modo Compact, Large o Huge */
|
||||
/* Linkar con XMSSUPP.OBJ */
|
||||
/**************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
#include <dos.h>
|
||||
#include <io.h>
|
||||
#include <FCNTL.H>
|
||||
#include <SYS\STAT.H>
|
||||
#include <malloc.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "XMSSUPP.H"
|
||||
|
||||
void SetVideoMode(unsigned char Mode)
|
||||
{
|
||||
_asm{
|
||||
mov ah,0x00;
|
||||
mov al,Mode;
|
||||
int 0x10;
|
||||
}
|
||||
}
|
||||
void main()
|
||||
{
|
||||
|
||||
XmsSupp TestXms; // Clase de Soporte XMS.
|
||||
unsigned char *Pantalla; // Puntero a Memoria Convencional.
|
||||
int Cnt; // Contador para bucle
|
||||
|
||||
while(kbhit()) getch();
|
||||
// Errores en Inicializacion XMS.
|
||||
TestXms.lError=0; // Indicador de Error a cero
|
||||
InitXms(&TestXms); // Inicializa XMS.
|
||||
|
||||
GetInfo(&TestXms); // Informe de estado.
|
||||
while(!kbhit());
|
||||
getch();
|
||||
// Xms_Init(&TestXms);
|
||||
if(TestXms.lError)
|
||||
{
|
||||
printf("%s\n",TestXms.cError);
|
||||
return;
|
||||
}
|
||||
// Reservamos 64K. Si hay Error lo Visualizamos.
|
||||
AllocXms(64, &TestXms);
|
||||
if(TestXms.lError)
|
||||
printf("%s\n",TestXms.cError);
|
||||
|
||||
// Reservamos Memoria Convencional.
|
||||
if(!(Pantalla=new unsigned char [64000]))
|
||||
printf("ERROR en Reserva de Memoria Convencional.\n");
|
||||
else
|
||||
{
|
||||
// Construimos Pantalla
|
||||
for(Cnt=0;Cnt<200;Cnt++)
|
||||
memset((Pantalla+(Cnt*320)),Cnt,320);
|
||||
// Asignamos Puntero a Memoria convencional y miramos si
|
||||
// hay ERROR.
|
||||
SetConPntr(Pantalla, &TestXms);
|
||||
if(TestXms.lError)
|
||||
printf("%s\n",TestXms.cError);
|
||||
// Movemos a XMS y si hay ERROR lo Visualizamos.
|
||||
Move2Xms(&TestXms);
|
||||
if(TestXms.lError)
|
||||
printf("%s\n",TestXms.cError);
|
||||
SetConPntr(MK_FP(0xA000,0), &TestXms);
|
||||
// Activamos Video MCGA.
|
||||
SetVideoMode(0x13);
|
||||
// Movemos a Convencional y si hay ERROR lo Visualizamos.
|
||||
Move2Con(&TestXms);
|
||||
if(TestXms.lError)
|
||||
{
|
||||
SetVideoMode(0x3);
|
||||
printf("%s\n",TestXms.cError);
|
||||
}
|
||||
getch();
|
||||
SetVideoMode(0x3);
|
||||
// Liberamos XMS si hay ERROR lo Visualizamos.
|
||||
FreeXms(&TestXms);
|
||||
if(TestXms.lError)
|
||||
printf("%s\n",TestXms.cError);
|
||||
}
|
||||
// Liberamos Memoria Convencional.
|
||||
delete Pantalla;
|
||||
return;
|
||||
}
|
Reference in New Issue
Block a user