diff scn2k/gandump.cc @ 0:223b71206888

Initial import
author thib
date Fri, 01 Aug 2008 16:32:45 +0000
parents
children 6d1a5b7f0838
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/scn2k/gandump.cc
@@ -0,0 +1,45 @@
+#include<stdio.h>
+#include<string.h>
+
+char* ganname[6] = {"ptn", "x", "y", "time", "alpha", "?"};
+int main(int argc, char** argv) {
+	if (argc != 2) return 0;
+	FILE* f = fopen(argv[1],"rb");
+	if (f==0) return 0;
+	fseek(f,0,2); int sz=ftell(f); fseek(f,0,0);
+	char* buf = new char[sz];
+	char* bufo = buf;
+	fread(buf,1,sz,f);
+	fclose(f);
+
+	int i;
+	for (i=0; i<16; i++) {
+		printf("%02x ",int(buf[i])&0xff);
+	}
+	printf("\n");
+	buf+=16;
+	printf("file '%s'\n",buf);
+	buf += strlen(buf)+1;
+	printf("N1 = %3d\n", *(int*)buf); buf+=4;
+	int ptns = *(int*)buf; buf += 4;
+	for (i=0; i<ptns; i++) {
+		int j;
+		printf("\tN2 = %3d\n",*(int*)buf); buf += 4;
+		int n = *(int*)buf; buf += 4;
+		for (j=0; j<n; j++) {
+			printf("\t%3d: ",j);
+			int k; int d1,d2;
+			for (k=0; k<6; k++) {
+				d1 = *(int*)(buf+k*8);
+				d2 = *(int*)(buf+k*8+4);
+				if (d1 != 30100+k) printf("err: d1 %d\n",d1);
+				printf("%s: %5d, ",ganname[k],d2);
+			}
+			printf("\n");
+			buf += 6*8;
+			int d = *(int*)buf; buf += 4;
+			if (d != 999999) printf("err: dd %d\n",d);
+		}
+	}
+	if (buf != bufo+sz) { printf("orig sz %d read %d\n",sz,buf-bufo);}
+}