// zpuromgen.c // // Program to turn a binary file into a VHDL lookup table. // by Adam Pierce // 29-Feb-2008 // // This software is free to use by anyone for any purpose. // #include #include typedef uint8_t BYTE; main(int argc, char **argv) { BYTE opcode[4]; int fd; int addr = 0; ssize_t s; // Check the user has given us an input file. if(argc < 2) { printf("Usage: %s \n\n", argv[0]); return 1; } // Open the input file. fd = open(argv[1], 0); if(fd == -1) { perror("File Open"); return 2; } while(1) { // Read 32 bits. s = read(fd, opcode, 4); if(s == -1) { perror("File read"); return 3; } if(s == 0) break; // End of file. // Output to STDOUT. printf("%6d => x\"%02x%02x%02x%02x\",\n", addr++, opcode[0], opcode[1], opcode[2], opcode[3]); } close(fd); return 0; }