Mercurial > repos > blastem
comparison dis.c @ 2:5df303bf72e6
Improve 68K instruction decoding. Add simple disassembler.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 03 Nov 2012 21:38:28 -0700 |
parents | |
children | 23b83d94c633 |
comparison
equal
deleted
inserted
replaced
1:5a2c1da6dd0f | 2:5df303bf72e6 |
---|---|
1 #include "68kinst.h" | |
2 #include <stdio.h> | |
3 #include <stdlib.h> | |
4 | |
5 int main(int argc, char ** argv) | |
6 { | |
7 long filesize; | |
8 unsigned short *filebuf; | |
9 char disbuf[1024]; | |
10 m68kinst instbuf; | |
11 unsigned short * cur; | |
12 FILE * f = fopen(argv[1], "rb"); | |
13 fseek(f, 0, SEEK_END); | |
14 filesize = ftell(f); | |
15 fseek(f, 0, SEEK_SET); | |
16 filebuf = malloc(filesize); | |
17 fread(filebuf, 2, filesize/2, f); | |
18 fclose(f); | |
19 for(cur = filebuf; cur - filebuf < (filesize/2); ++cur) | |
20 { | |
21 //printf("%x:", *cur); | |
22 *cur = (*cur >> 8) | (*cur << 8); | |
23 //printf("%x\n", *cur); | |
24 } | |
25 for(cur = filebuf; (cur - filebuf) < (filesize/2); ++cur) | |
26 { | |
27 printf("cur: %p: %x\n", cur, *cur); | |
28 cur = m68K_decode(cur, &instbuf); | |
29 m68k_disasm(&instbuf, disbuf); | |
30 puts(disbuf); | |
31 } | |
32 return 0; | |
33 } |