From 90e3c6f54fddf8762f7349414211a8c0f94bf594 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Sat, 10 Oct 2015 01:51:33 +0300 Subject: Initial commit --- src/dumpmiles/dumpmiles.cc | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/dumpmiles/dumpmiles.cc (limited to 'src/dumpmiles') diff --git a/src/dumpmiles/dumpmiles.cc b/src/dumpmiles/dumpmiles.cc new file mode 100644 index 0000000..2715d16 --- /dev/null +++ b/src/dumpmiles/dumpmiles.cc @@ -0,0 +1,40 @@ +//#ifdef __MINGW32__ +//typedef struct vswprintf {} swprintf; +//#endif +#include +#include + +static void LoadMiles(const char* fn) +{ + FILE* fp = fopen(fn, "rb"); + fseek(fp, 0, SEEK_END); + std::vector data(ftell(fp)); + rewind(fp); + fread(&data[0], 1, data.size(), fp), + fclose(fp); + + for(unsigned a=0; a<500; ++a) + { + unsigned gmnumber = data[a*6+0]; + unsigned gmnumber2 = data[a*6+1]; + unsigned offset = *(unsigned*)&data[a*6+2]; + + if(gmnumber == 0xFF) break; + int gmno = gmnumber2==0x7F ? gmnumber+0x80 : gmnumber; + unsigned length = data[offset] + data[offset+1]*256; + signed char notenum = data[offset+2]; + + printf("%02X %02X ", gmnumber,gmnumber2); //, offset); + for(unsigned b=0; b 3 && (b-3)%11 == 0) printf("\n "); + printf("%02X ", data[offset+b]); + } + printf("\n"); + } +} + +int main(int argc, const char* const* argv) +{ + LoadMiles(argv[1]); +} -- cgit v1.2.3