]> Shamusworld >> Repos - thunder/blobdiff - src/dis6808.cpp
Removed useless cruft, fixed off-by-one bug in screen render.
[thunder] / src / dis6808.cpp
diff --git a/src/dis6808.cpp b/src/dis6808.cpp
deleted file mode 100644 (file)
index 97f20c4..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-// 6808 disassembler
-//
-// by James Hammons
-//
-// (c) 2004, 2014 Underground Software
-//
-
-#include "dis6808.h"
-
-#include <stdio.h>
-#include <string>
-#include "v6808.h"
-#include "log.h"
-
-using namespace std;
-
-// External shit
-
-#warning "THIS ISN'T GENERIC ENOUGH... !!! FIX !!!"
-/*extern*/ V6808REGS soundCPU;//Hm.
-
-// Private globals variables
-
-static char op_mat[256] = {
-  0, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-  5, 5, 0, 0, 0, 0, 5, 5, 0, 5, 0, 5, 0, 0, 0, 0,
-  3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
-  5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5, 0, 0, 5, 5,
-  5, 0, 0, 5, 5, 0, 5, 5, 5, 5, 5, 0, 5, 5, 0, 5,
-  5, 0, 0, 5, 5, 0, 5, 5, 5, 5, 5, 0, 5, 5, 0, 5,
-  7, 0, 0, 7, 7, 0, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7,
-  2, 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2,
-  8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 8, 9, 3, 9, 0,
-  1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
-  7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
-  2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-  8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 8, 0, 0, 9, 0,
-  1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1,
-  7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7,
-  2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2
-};
-
-static char mnemonics[256][6] = {
-  "???  ","NOP  ","???  ","???  ","???  ","???  ","TAP  ","TPA  ",
-  "INX  ","DEX  ","CLV  ","SEV  ","CLC  ","SEC  ","CLI  ","SEI  ",
-  "SBA  ","CBA  ","???  ","???  ","???  ","???  ","TAB  ","TBA  ",
-  "???  ","DAA  ","???  ","ABA  ","???  ","???  ","???  ","???  ",
-  "BRA  ","???  ","BHI  ","BLS  ","BCC  ","BCS  ","BNE  ","BEQ  ",
-  "BVC  ","BVS  ","BPL  ","BMI  ","BGE  ","BLT  ","BGT  ","BLE  ",
-  "TSX  ","INS  ","PULA ","PULB ","DES  ","TXS  ","PSHA ","PSHB ",
-  "???  ","RTS  ","???  ","RTI  ","???  ","???  ","WAI  ","SWI  ",
-  "NEGA ","???  ","???  ","COMA ","LSRA ","???  ","RORA ","ASRA ",
-  "ASLA ","ROLA ","DECA ","???  ","INCA ","TSTA ","???  ","CLRA ",
-  "NEGB ","???  ","???  ","COMB ","LSRB ","???  ","RORB ","ASRB ",
-  "ASLB ","ROLB ","DECB ","???  ","INCB ","TSTB ","???  ","CLRB ",
-  "NEG  ","???  ","???  ","COM  ","LSR  ","???  ","ROR  ","ASR  ",
-  "ASL  ","ROL  ","DEC  ","???  ","INC  ","TST  ","JMP  ","CLR  ",
-  "NEG  ","???  ","???  ","COM  ","LSR  ","???  ","ROR  ","ASR  ",
-  "ASL  ","ROL  ","DEC  ","???  ","INC  ","TST  ","JMP  ","CLR  ",
-  "SUBA ","CMPA ","SBCA ","???  ","ANDA ","BITA ","LDAA ","???  ",
-  "EORA ","ADCA ","ORAA ","ADDA ","CPX  ","BSR  ","LDS  ","???  ",
-  "SUBA ","CMPA ","SBCA ","???  ","ANDA ","BITA ","LDAA ","STAA ",
-  "EORA ","ADCA ","ORAA ","ADDA ","CPX  ","???  ","LDS  ","STS  ",
-  "SUBA ","CMPA ","SBCA ","???  ","ANDA ","BITA ","LDAA ","STAA ",
-  "EORA ","ADCA ","ORAA ","ADDA ","CPX  ","JSR  ","LDS  ","STS  ",
-  "SUBA ","CMPA ","SBCA ","???  ","ANDA ","BITA ","LDAA ","STAA ",
-  "EORA ","ADCA ","ORAA ","ADDA ","CPX  ","JSR  ","LDS  ","STS  ",
-  "SUBB ","CMPB ","SBCB ","???  ","ANDB ","BITB ","LDAB ","???  ",
-  "EORB ","ADCB ","ORAB ","ADDB ","???  ","???  ","LDX  ","???  ",
-  "SUBB ","CMPB ","SBCB ","???  ","ANDB ","BITB ","LDAB ","STAB ",
-  "EORB ","ADCB ","ORAB ","ADDB ","???  ","???  ","LDX  ","STX  ",
-  "SUBB ","CMPB ","SBCB ","???  ","ANDB ","BITB ","LDAB ","STAB ",
-  "EORB ","ADCB ","ORAB ","ADDB ","???  ","???  ","LDX  ","STX  ",
-  "SUBB ","CMPB ","SBCB ","???  ","ANDB ","BITB ","LDAB ","STAB ",
-  "EORB ","ADCB ","ORAB ","ADDB ","???  ","???  ","LDX  ","STX  "
-};
-
-//
-// Display bytes in mem in hex
-//
-static void DisplayBytes(uint16_t src, uint32_t dst)
-{
-       WriteLog("%04X: ", src);
-       uint8_t cnt = 0;                                                                                // Init counter...
-
-       if (src > dst)
-               dst += 0x10000;                                                                 // That should fix the FFFF bug...
-
-       for(uint32_t i=src; i<dst; i++)
-       {
-               WriteLog("%02X ", soundCPU.RdMem(i));
-               cnt++;                                                                                  // Bump counter...
-       }
-
-       for(int i=cnt; i<5; i++)                                                        // Pad the leftover spaces...
-               WriteLog("   ");
-}
-
-//
-// Decode a 6808 instruction
-//
-int Decode6808(uint16_t pc)
-{
-       char outbuf[80];
-
-       uint16_t addr = pc, offset;
-       uint8_t opcode = soundCPU.RdMem(addr++);                                // Get the opcode
-
-       switch (op_mat[opcode])                                                         // Decode the addressing mode...
-       {
-       case 0:                                                                                         // Illegal
-               sprintf(outbuf, "???          ");
-               break;
-       case 1:                                                                                         // Zero page
-               sprintf(outbuf, "%s $%02X    ", mnemonics[opcode], soundCPU.RdMem(addr++));
-               break;
-       case 2:                                                                                         // Absolute
-//             sprintf(outbuf, "%s $%04X", mnemonics[opcode], (soundCPU.RdMem(addr++) << 8) | soundCPU.RdMem(addr++));
-               offset = (soundCPU.RdMem(addr + 0) << 8) | soundCPU.RdMem(addr + 1);
-               addr += 2;
-               sprintf(outbuf, "%s $%04X  ", mnemonics[opcode], offset);
-               break;
-       case 3:                                                                                         // Relative
-//             sprintf(outbuf, "%s $%04X", mnemonics[opcode], ++addr + (int16_t)(int8_t)soundCPU.RdMem(addr));
-               offset = addr + 1 + (int16_t)(int8_t)soundCPU.RdMem(addr);
-               addr++;
-               sprintf(outbuf, "%s $%04X  ", mnemonics[opcode], offset);
-               break;
-       case 5:                                                                                         // Inherent
-               sprintf(outbuf, "%s        ", mnemonics[opcode]);
-               break;
-       case 7:                                                                                         // Indexed
-               sprintf(outbuf, "%s $%02X,X  ", mnemonics[opcode], soundCPU.RdMem(addr++));
-               break;
-       case 8:                                                                                         // Immediate
-               sprintf(outbuf, "%s #$%02X   ", mnemonics[opcode], soundCPU.RdMem(addr++));
-               break;
-       case 9:                                                                                         // Long Immediate
-//             sprintf(outbuf, "%s #$%04X", mnemonics[opcode], (soundCPU.RdMem(addr++) << 8) | soundCPU.RdMem(addr++));
-               offset = (soundCPU.RdMem(addr + 0) << 8) | soundCPU.RdMem(addr + 1);
-               addr += 2;
-               sprintf(outbuf, "%s #$%04X ", mnemonics[opcode], offset);
-               break;
-       }
-
-       DisplayBytes(pc, addr);                                                         // Show bytes
-       WriteLog("%s", outbuf);                                                         // Display opcode & addressing, etc.
-
-       return addr - pc;
-}