dump.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. class GDTransport {
  2. FILE *dumpfile;
  3. int counter;
  4. void hose(void) {
  5. char fn[2048];
  6. sprintf(fn, "%04d.cmd", counter);
  7. dumpfile = fopen(fn, "wb");
  8. if (!dumpfile) {
  9. perror(fn);
  10. exit(1);
  11. }
  12. }
  13. public:
  14. void begin(void) {
  15. counter = 0;
  16. ft8xx_model = 1;
  17. hose();
  18. }
  19. static void hostcmd(byte a) {}
  20. void cmdbyte(byte x) {
  21. putc(x, dumpfile);
  22. }
  23. void cmd32(uint32_t x) {
  24. putc(x & 0xff, dumpfile);
  25. putc((x >> 8) & 0xff, dumpfile);
  26. putc((x >> 16) & 0xff, dumpfile);
  27. putc((x >> 24) & 0xff, dumpfile);
  28. }
  29. void cmd_n(byte *s, size_t n) {
  30. while (n--)
  31. putc(*s++, dumpfile);
  32. }
  33. uint8_t rd(uint32_t a) { return 0xff; }
  34. void wr(uint32_t a, uint8_t v) { }
  35. uint16_t rd16(uint32_t a) { return 0xff; }
  36. void wr16(uint32_t a, uint16_t v) { }
  37. uint32_t rd32(uint32_t a) { return 0xff; }
  38. void rd_n(byte *dst, uint32_t addr, uint16_t n) { }
  39. void wr_n(uint32_t addr, byte *src, uint16_t n) { }
  40. void wr32(uint32_t a, uint32_t v) { }
  41. void flush() { }
  42. void finish() { }
  43. void __end() { }
  44. uint32_t getwp(void) { return 0; }
  45. void bulk(uint32_t addr) {}
  46. void resume(void) {}
  47. void swap() {
  48. fclose(dumpfile);
  49. counter++;
  50. hose();
  51. }
  52. };