// SCANCODE.C - For MS Quick C v2.5 // (c) 1996 - E-mail: shawkie@geocities.com // This program converts keyboard scan codes to ASCII text // For use with KEYSMEG.COM and DUMP.COM #include #include void main(int argc, char *argv[]) { int Ch; char Byte[]="1234567890-=QWERTYUIOP[]ASDFGHJKL;'`?#\ZXCVBNM,./"; //FILE *stdin; //if(argc!=2) //{ // printf("Scancode.EXE - Converts keyboard scan codes (from KEYSMEG.COM)\n"); // printf(" to ASCII text\nSyntax:\n"); // printf(" SCANCODE[.EXE] filename [>outfile]\n\n"); //} //else //{ // if((stdin=fopen(argv[1],"rb"))==NULL) // printf("Unable to open file: %s\n",argv[1]); // else // { while(feof(stdin)==0) { Ch=getc(stdin); if(Ch==0x01) fputs("{Esc}",stdout); if(Ch>0x01 && Ch<0x0E) putc(Byte[Ch-2],stdout); if(Ch==0x0E) fputs("{Backspace}",stdout); if(Ch==0x0F) fputs("{Tab}",stdout); if(Ch>0x0F && Ch<0x1C) putc(Byte[Ch-4],stdout); if(Ch==0x1C) { putc(13,stdout); putc(10,stdout); } if(Ch==0x1D) fputs("{Ctrl}",stdout); if(Ch>0x1D && Ch<0x2A) putc(Byte[Ch-6],stdout); if(Ch==0x2A) fputs("{L Shift}",stdout); if(Ch>0x2A && Ch<0x36) putc(Byte[Ch-6],stdout); if(Ch==0x36) fputs("{R Shift}",stdout); if(Ch==0x37) fputs("{Num Pad}*",stdout); if(Ch==0x38) fputs("{Alt}",stdout); if(Ch==0x39) putc(32,stdout); if(Ch==0x3A) fputs("{Caps}",stdout); if(Ch==0x9D) fputs("{/Ctrl}",stdout); if(Ch==0xAA) fputs("{/L Shift}",stdout); if(Ch==0xB6) fputs("{/R Shift}",stdout); if(Ch==0xB8) fputs("{/Alt}",stdout); if(Ch==0x56) putc(92,stdout); if(Ch>0x3A && Ch<0x45) { putc('{',stdout); putc('F',stdout); putc(Ch-10,stdout); putc('}',stdout); } if(Ch==0x47) fputs("{Num Pad}7",stdout); if(Ch==0x48) fputs("{Num Pad}8",stdout); if(Ch==0x49) fputs("{Num Pad}9",stdout); if(Ch==0x4A) fputs("{Num Pad}-",stdout); if(Ch==0x4B) fputs("{Num Pad}4",stdout); if(Ch==0x4C) fputs("{Num Pad}5",stdout); if(Ch==0x4D) fputs("{Num Pad}6",stdout); if(Ch==0x4E) fputs("{Num Pad}+",stdout); if(Ch==0x4F) fputs("{Num Pad}1",stdout); if(Ch==0x50) fputs("{Num Pad}2",stdout); if(Ch==0x51) fputs("{Num Pad}3",stdout); if(Ch==0x52) fputs("{Num Pad}0",stdout); if(Ch==0x53) fputs("{Num Pad}.",stdout); if(Ch==0x46) fputs("{Scrll}",stdout); if(Ch==-1) fputs("{Eof}",stdout); }; // } //} }