/* Quick hack to replicate the dos debug utility in linux */ #include #include #include #include #define MAX_LEN 100 void main(int argc, char *argv[]) { char string[100]; unsigned int inAdd; unsigned int outAdd; unsigned char inByte; unsigned short inWord; unsigned int outByte; if (iopl(3) != 0) { perror("iopl"); exit(1); } while(strcmp(string, "q\n")){ printf("- "); fgets(string, MAX_LEN, stdin); if(string[0] == 'i') { sscanf(string, "i %x\n", &inAdd); inByte = inb(inAdd); printf("0x%02x\n", inByte); } else if(string[0] == 'n') { sscanf(string, "n %x\n", &inAdd); inWord = inw(inAdd); printf("0x%04x\n", inWord); } else if(string[0] == 'o') { sscanf(string, "o %x %x\n", &outAdd, &outByte); outb((unsigned char)outByte, outAdd); } else if(string[0] == 'q') exit(0); else if(string[0] == 'e') exit(0); else printf(" ^ERROR\n"); } }