testbios.c revision 5bfd3ff4ec71e7a1dcbece7cf56c59177da30f99
/*
This is a little turbo C program that executes
several int10, and let you inspect the content
of the vgabios area
It is used to test the behavior of the vgabios
*/
#include <stdio.h>
#include <dos.h>
#include <conio.h>
typedef unsigned char Bit8u;
typedef unsigned short Bit16u;
typedef struct
} BIOSAREA;
{
}
{
printf("We are now at 24/17");
}
{
}
{
printf("We are now on page 2");
}
{
printf("Scrolled 2 up");
}
{
printf("Scrolled 2 down");
}
{
}
{
char attr;
printf("\n");
}
}
{
}
{
}
{unsigned char table[64];
int i;
for(i=0;i<64;i++)
}
printf("\n");
}
static unsigned char var[64];
}
{
}
{char c;
printf("--- Functions --------------------\n");
printf("a. int10 ax0003\t");
printf("b. int10 ax02\t");
printf("c. int10 ax03\t");
printf("d. int10 ax0501\n");
printf("e. int10 ax0602\t");
printf("f. int10 ax0702\t");
printf("g. int10 ax08\t");
printf("h. int10 ax09\t");
printf("i. int10 ax0a\n");
printf("j. int10 ax0f\t");
printf("k. int10 ax1b\t");
printf("l. int10 ax13\n");
printf("q. Quit\t");
printf("r. switch to 50 lines\n");
c=getche();
switch(c)
{case 'a':
break;
case 'b':
break;
case 'c':
break;
case 'd':
break;
case 'e':
break;
case 'f':
break;
case 'g':
break;
case 'h':
break;
case 'i':
break;
case 'j':
break;
case 'k':
break;
case 'l':
break;
case 'q':
break;
case 'r':
break;
default:
printf("No such function!\n");
}
if(c=='q')return 1;
while(kbhit()==0);
c=getch();
return 0;
}
{
}
{
printf("--- BIOS area --------------------\n");
printf("curpos : %04x %04x %04x %04x %04x %04x %04x %04x\n",
}
{
printf("--- Registers --------------------\n");
}
void reset_videomode()
{
}
void main()
{
directvideo=0;
while(1)
{
if(exec_function(®s)!=0)break;
}
}