[阅读: 629] 2005-03-30 14:38:30
#define MINLINE 1
#define MINROW 1
#define MAXLINE 25
#define MAXROW 80
#define DisplayAddress 0xb8000000l
void myputchar(long x,long y,unsigned char *s,unsigned char color)
{
unsigned char far *p;
x-=MINLINE;
y-=MINROW;
p=(unsigned char far *)DisplayAddress+((x<<7)+(x<<5))+(y<<1);
*p++=*s;
*p=color;
}
void myputstring(long x,long y,unsigned char *s,unsigned char color)
{
unsigned char far *p;
x-=MINLINE;
y-=MINROW;
p=(unsigned char far *)DisplayAddress+((x<<7)+(x<<5))+(y<<1);
while(*s)
{
*p++=*s++;
*p++=color;
}
}
unsigned char mygetchar(int x,int y)
{
unsigned char c;
x-=MINLINE;
y-=MINROW;
c=*((unsigned char far *)DisplayAddress+((x<<7)+(x<<5))+(y<<1));
return c;
}
unsigned char mygetcharcolor(int x,int y)
{
unsigned char color;
x-=MINLINE;
y-=MINROW;
color=*((unsigned char far *)DisplayAddress+((x<<7)+(x<<5))+(y<<1)+1);
return color;
}
void cls(unsigned char color)
{
register x,y;
for(x=MINLINE;x<=MAXLINE;x++)
{
for(y=MINROW;y<=MAXROW;y++)
{
myputstring(x,y," ",color);
}
}
}