#include <stdio.h>
#include <dos.h>


main(int argc, char **argv)
{
       unsigned int far *vecbase = MK_FP(0x0000, 0x0000);
       int int_num;

       if(argc == 1) {
               printf("INTVEC  Shows interrupt vector for an interrupt\n");
               printf("usage: intvec <IntNum | X>\n");
               printf("X shows all 256 interrupt vectors\n");
               exit(0);
       }

       if((argv[1][0] == 'x') || (argv[1][0] == 'X')) {
               for(int_num = 0; int_num < 256; int_num++) {
                       printf("INT %02Xh vector = ", int_num);
                       printf("%04X:%04X\n",vecbase[int_num * 2 + 1],vecbase[int_num * 2]);
               }
       } else {
               if(sscanf(argv[1],"%X", &int_num)) {
                       printf("INT %02Xh vector = ", int_num);
                       printf("%04X:%04X\n", vecbase[int_num * 2 + 1], vecbase[int_num * 2]);
               } else
                       printf("Error: bad number\n");
       }
}