some tests
[megadrive.git] / testpico / fill.c
diff --git a/testpico/fill.c b/testpico/fill.c
new file mode 100644 (file)
index 0000000..d26f0d8
--- /dev/null
@@ -0,0 +1,45 @@
+#include <stdio.h>
+#include <arpa/inet.h>
+
+static uint32_t rom[0x400000 / 4];
+
+int main(int argc, char *argv[])
+{
+       size_t ret;
+       FILE *f;
+       int i;
+
+       if (argc != 2) {
+               fprintf(stderr, "usage:\n%s <bin>\n", argv[0]);
+               return 1;
+       }
+
+       f = fopen(argv[1], "r+");
+       if (!f) {
+               perror("fopen");
+               return 1;
+       }
+
+       for (i = 0; i < 0x400000; i += 4) {
+               uint32_t v = i;
+               v = (v << 8) | ((v >> 16) & 0xff);
+               rom[i / 4] = htonl(v);
+       }
+
+       ret = fread(rom, 1, sizeof(rom), f);
+       if (ret == 0) {
+               perror("fread");
+               fclose(f);
+               return 1;
+       }
+       rewind(f);
+
+       ret = fwrite(rom, 1, sizeof(rom), f);
+       fclose(f);
+       if (ret != sizeof(rom)) {
+               perror("fwrite");
+               return 1;
+       }
+
+       return 0;
+}