// understanding ivt table
#include
#include
main()
{
	unsigned long far *address = (unsigned long far *)0x00000000;
	unsigned long intadd[256];
	unsigned int segment, offset;
	int i;
	FILE *fp;
	fp = fopen("IVT.txt", "wb");
	for(i = 0; i < 256; i++)
	{
		intadd[i] = *(address++);
		segment = FP_SEG(intadd[i]);
		offset = FP_OFF(intadd[i]);
		fprintf(fp, "interrupt %3X : vector %Fp(hex) : %lu(dec)
",
				i, intadd[i], (unsigned long)segment * 16 + offset);
	}
	fclose(fp);
}