|
Message
From: Adam Pierce<adam@d...>
Date: Sat Mar 1 06:25:57 CET 2008
Subject: [oc] ZPU
I've got another step further, I noticed that the Java "MakeRam" utility tends to leave a few bytes off the end. I'm not much of a Java person so I re-wrote it in C. Here it is. You could include it in the ZPU CVS if you think it useful.
My code unfortunately still doesn't run.
// 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 <unistd.h> #include <stdio.h>
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 <binary_file>\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; }
-- __ __ _______ __/ \____________________________/ \__ _______ \_____ | \ o \ Adam Pierce / o / | _____/ \___ | \ o \________________________/ o / | ___/ \__|____\ o www.doctort.org/adam o /____|__/ \__\____________________________/__/ ~~~~~~~\____________/~~~~~~~ \______/ \/
|
 |