1
0
mirror of https://github.com/cc65/cc65.git synced 2024-05-31 22:41:32 +00:00

dont use that silly buffer

This commit is contained in:
mrdudz 2015-11-29 21:15:10 +01:00
parent b39a8b7a61
commit 4d1dc55138

View File

@ -2,28 +2,36 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
unsigned char buffer[512 * 1024]; FILE *in;
unsigned len; unsigned int n, i, c;
FILE *in, *out;
int n, i; void usage(char *arg)
{
printf("usage: %s [file]\n", arg);
exit(-1);
}
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
if (argc < 3) { if (argc < 2) {
usage(argv[0]);
exit(-1); exit(-1);
} }
in = fopen(argv[1], "rb");
out = fopen(argv[2], "wb"); if (!(in = fopen(argv[1], "r+b"))) {
if (!in || !out) { fprintf(stderr, "couldnt open: '%s'\n", argv[1]);
exit(-1); exit(-1);
} }
len = fread(buffer, 1, 512 * 1024, in); /* read 0x1000 bytes from 0x7000-0x7fff (offset 0x1000) */
n = 0; for (i = 0x1000; i < 0x2000; i++) { fseek(in, 0x1000, SEEK_SET);
n += buffer[i]; n = 0; for (i = 0; i < 0x1000; i++) {
c = fgetc(in);
n += c;
} }
buffer[0] = n & 0xff; /* write checksum to header */
buffer[1] = (n >> 8) & 0xff; fseek(in, 0, SEEK_SET);
fwrite(buffer, 1, len, out); fputc(n & 0xff, in);
fputc((n >> 8) & 0xff, in);
fclose(in); fclose(in);
fclose(out);
return (0); return (0);
} }