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:
parent
b39a8b7a61
commit
4d1dc55138
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user