summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/hphybrid/hphybrid_dasm.cpp
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2015-12-30 08:18:51 +0100
committer Miodrag Milanovic <mmicko@gmail.com>2015-12-30 08:18:51 +0100
commit4afd75e2fd0fc40ae0e47ab6063e6228cd7eaabe (patch)
treea30d36789b6148002e09f8e65ff6266e21790396 /src/devices/cpu/hphybrid/hphybrid_dasm.cpp
parent3b0d814b9b9f890eb2ca1edc3f37c775be76ea88 (diff)
Cleanups and version bumpmame0169
Diffstat (limited to 'src/devices/cpu/hphybrid/hphybrid_dasm.cpp')
-rw-r--r--src/devices/cpu/hphybrid/hphybrid_dasm.cpp377
1 files changed, 188 insertions, 189 deletions
diff --git a/src/devices/cpu/hphybrid/hphybrid_dasm.cpp b/src/devices/cpu/hphybrid/hphybrid_dasm.cpp
index 3c6efb68f58..48b03b4afb4 100644
--- a/src/devices/cpu/hphybrid/hphybrid_dasm.cpp
+++ b/src/devices/cpu/hphybrid/hphybrid_dasm.cpp
@@ -20,151 +20,151 @@ typedef struct {
static void addr_2_str(char *buffer , UINT16 addr , bool indirect , bool is_3001)
{
- char *s = buffer + strlen(buffer);
+ char *s = buffer + strlen(buffer);
- s += sprintf(s , "$%04x" , addr);
-
- if (is_3001) {
- switch (addr) {
- case HP_REG_AR1_ADDR:
- strcpy(s , "(Ar1)");
- break;
+ s += sprintf(s , "$%04x" , addr);
- case HP_REG_AR1_ADDR + 1:
- strcpy(s , "(Ar1_2)");
- break;
+ if (is_3001) {
+ switch (addr) {
+ case HP_REG_AR1_ADDR:
+ strcpy(s , "(Ar1)");
+ break;
- case HP_REG_AR1_ADDR + 2:
- strcpy(s , "(Ar1_3)");
- break;
+ case HP_REG_AR1_ADDR + 1:
+ strcpy(s , "(Ar1_2)");
+ break;
- case HP_REG_AR1_ADDR + 3:
- strcpy(s , "(Ar1_4)");
- break;
+ case HP_REG_AR1_ADDR + 2:
+ strcpy(s , "(Ar1_3)");
+ break;
- case HP_REG_AR2_ADDR:
- strcpy(s , "(Ar2)");
- break;
+ case HP_REG_AR1_ADDR + 3:
+ strcpy(s , "(Ar1_4)");
+ break;
- case HP_REG_AR2_ADDR + 1:
- strcpy(s , "(Ar2_2)");
- break;
+ case HP_REG_AR2_ADDR:
+ strcpy(s , "(Ar2)");
+ break;
- case HP_REG_AR2_ADDR + 2:
- strcpy(s , "(Ar2_3)");
- break;
+ case HP_REG_AR2_ADDR + 1:
+ strcpy(s , "(Ar2_2)");
+ break;
- case HP_REG_AR2_ADDR + 3:
- strcpy(s , "(Ar2_4)");
- break;
+ case HP_REG_AR2_ADDR + 2:
+ strcpy(s , "(Ar2_3)");
+ break;
- case HP_REG_SE_ADDR:
- strcpy(s , "(SE)");
- break;
+ case HP_REG_AR2_ADDR + 3:
+ strcpy(s , "(Ar2_4)");
+ break;
- case HP_REG_R25_ADDR:
- strcpy(s , "(R25)");
- break;
-
- case HP_REG_R26_ADDR:
- strcpy(s , "(R26)");
- break;
-
- case HP_REG_R27_ADDR:
- strcpy(s , "(R27)");
- break;
-
- case HP_REG_R32_ADDR:
- strcpy(s , "(R32)");
- break;
-
- case HP_REG_R33_ADDR:
- strcpy(s , "(R33)");
- break;
-
- case HP_REG_R34_ADDR:
- strcpy(s , "(R34)");
- break;
-
- case HP_REG_R35_ADDR:
- strcpy(s , "(R35)");
- break;
-
- case HP_REG_R36_ADDR:
- strcpy(s , "(R36)");
- break;
-
- case HP_REG_R37_ADDR:
- strcpy(s , "(R37)");
- break;
- }
- }
-
- switch (addr) {
- case HP_REG_A_ADDR:
- strcpy(s , "(A)");
- break;
-
- case HP_REG_B_ADDR:
- strcpy(s , "(B)");
- break;
-
- case HP_REG_P_ADDR:
- strcpy(s , "(P)");
- break;
-
- case HP_REG_R_ADDR:
- strcpy(s , "(R)");
- break;
-
- case HP_REG_R4_ADDR:
- strcpy(s , "(R4)");
- break;
-
- case HP_REG_R5_ADDR:
- strcpy(s , "(R5)");
- break;
-
- case HP_REG_R6_ADDR:
- strcpy(s , "(R6)");
- break;
-
- case HP_REG_R7_ADDR:
- strcpy(s , "(R7)");
- break;
-
- case HP_REG_IV_ADDR:
- strcpy(s , "(IV)");
- break;
-
- case HP_REG_PA_ADDR:
- strcpy(s , "(PA)");
- break;
-
- case HP_REG_DMAPA_ADDR:
- strcpy(s , "(DMAPA)");
- break;
-
- case HP_REG_DMAMA_ADDR:
- strcpy(s , "(DMAMA)");
- break;
-
- case HP_REG_DMAC_ADDR:
- strcpy(s , "(DMAC)");
- break;
-
- case HP_REG_C_ADDR:
- strcpy(s , "(C)");
- break;
-
- case HP_REG_D_ADDR:
- strcpy(s , "(D)");
- break;
- }
-
- if (indirect) {
- strcat(s , ",I");
- }
+ case HP_REG_SE_ADDR:
+ strcpy(s , "(SE)");
+ break;
+
+ case HP_REG_R25_ADDR:
+ strcpy(s , "(R25)");
+ break;
+
+ case HP_REG_R26_ADDR:
+ strcpy(s , "(R26)");
+ break;
+
+ case HP_REG_R27_ADDR:
+ strcpy(s , "(R27)");
+ break;
+
+ case HP_REG_R32_ADDR:
+ strcpy(s , "(R32)");
+ break;
+
+ case HP_REG_R33_ADDR:
+ strcpy(s , "(R33)");
+ break;
+
+ case HP_REG_R34_ADDR:
+ strcpy(s , "(R34)");
+ break;
+
+ case HP_REG_R35_ADDR:
+ strcpy(s , "(R35)");
+ break;
+
+ case HP_REG_R36_ADDR:
+ strcpy(s , "(R36)");
+ break;
+
+ case HP_REG_R37_ADDR:
+ strcpy(s , "(R37)");
+ break;
+ }
+ }
+
+ switch (addr) {
+ case HP_REG_A_ADDR:
+ strcpy(s , "(A)");
+ break;
+
+ case HP_REG_B_ADDR:
+ strcpy(s , "(B)");
+ break;
+
+ case HP_REG_P_ADDR:
+ strcpy(s , "(P)");
+ break;
+
+ case HP_REG_R_ADDR:
+ strcpy(s , "(R)");
+ break;
+
+ case HP_REG_R4_ADDR:
+ strcpy(s , "(R4)");
+ break;
+
+ case HP_REG_R5_ADDR:
+ strcpy(s , "(R5)");
+ break;
+
+ case HP_REG_R6_ADDR:
+ strcpy(s , "(R6)");
+ break;
+
+ case HP_REG_R7_ADDR:
+ strcpy(s , "(R7)");
+ break;
+
+ case HP_REG_IV_ADDR:
+ strcpy(s , "(IV)");
+ break;
+
+ case HP_REG_PA_ADDR:
+ strcpy(s , "(PA)");
+ break;
+
+ case HP_REG_DMAPA_ADDR:
+ strcpy(s , "(DMAPA)");
+ break;
+
+ case HP_REG_DMAMA_ADDR:
+ strcpy(s , "(DMAMA)");
+ break;
+
+ case HP_REG_DMAC_ADDR:
+ strcpy(s , "(DMAC)");
+ break;
+
+ case HP_REG_C_ADDR:
+ strcpy(s , "(C)");
+ break;
+
+ case HP_REG_D_ADDR:
+ strcpy(s , "(D)");
+ break;
+ }
+
+ if (indirect) {
+ strcat(s , ",I");
+ }
}
static void param_none(char *buffer , offs_t pc , UINT16 opcode , bool is_3001)
@@ -337,77 +337,76 @@ static const dis_entry_t dis_table[] = {
};
static const dis_entry_t dis_table_emc[] = {
- // *** EMC Instructions ***
- {0xffff , 0x7200 , "MWA" , param_none , 0 },
- {0xffff , 0x7220 , "CMY" , param_none , 0 },
- {0xffff , 0x7260 , "CMX" , param_none , 0 },
- {0xffff , 0x7280 , "FXA" , param_none , 0 },
- {0xfff0 , 0x7300 , "XFR" , param_n16 , 0 },
- {0xffff , 0x7340 , "NRM" , param_none , 0 },
- {0xfff0 , 0x7380 , "CLR" , param_n16 , 0 },
- {0xffff , 0x73c0 , "CDC" , param_none , 0 },
- {0xffc0 , 0x74c0 , "SDS" , param_skip , 0 },
- {0xffc0 , 0x75c0 , "SDC" , param_skip , 0 },
- {0xffff , 0x7a00 , "FMP" , param_none , 0 },
- {0xffff , 0x7a21 , "FDV" , param_none , 0 },
- {0xffff , 0x7b00 , "MRX" , param_none , 0 },
- {0xffff , 0x7b21 , "DRS" , param_none , 0 },
- {0xffff , 0x7b40 , "MRY" , param_none , 0 },
- {0xffff , 0x7b61 , "MLY" , param_none , 0 },
- {0xffff , 0x7b8f , "MPY" , param_none , 0 },
- // *** END ***
- {0 , 0 , nullptr , nullptr , 0 }
+ // *** EMC Instructions ***
+ {0xffff , 0x7200 , "MWA" , param_none , 0 },
+ {0xffff , 0x7220 , "CMY" , param_none , 0 },
+ {0xffff , 0x7260 , "CMX" , param_none , 0 },
+ {0xffff , 0x7280 , "FXA" , param_none , 0 },
+ {0xfff0 , 0x7300 , "XFR" , param_n16 , 0 },
+ {0xffff , 0x7340 , "NRM" , param_none , 0 },
+ {0xfff0 , 0x7380 , "CLR" , param_n16 , 0 },
+ {0xffff , 0x73c0 , "CDC" , param_none , 0 },
+ {0xffc0 , 0x74c0 , "SDS" , param_skip , 0 },
+ {0xffc0 , 0x75c0 , "SDC" , param_skip , 0 },
+ {0xffff , 0x7a00 , "FMP" , param_none , 0 },
+ {0xffff , 0x7a21 , "FDV" , param_none , 0 },
+ {0xffff , 0x7b00 , "MRX" , param_none , 0 },
+ {0xffff , 0x7b21 , "DRS" , param_none , 0 },
+ {0xffff , 0x7b40 , "MRY" , param_none , 0 },
+ {0xffff , 0x7b61 , "MLY" , param_none , 0 },
+ {0xffff , 0x7b8f , "MPY" , param_none , 0 },
+ // *** END ***
+ {0 , 0 , nullptr , nullptr , 0 }
};
static offs_t disassemble_table(UINT16 opcode , offs_t pc , const dis_entry_t *table , bool is_3001 , char *buffer)
{
- const dis_entry_t *p;
-
- for (p = table; p->m_op_mask; p++) {
- if ((opcode & p->m_op_mask) == p->m_opcode) {
- strcpy(buffer , p->m_mnemonic);
- strcat(buffer , " ");
- p->m_param_fn(buffer , pc , opcode , is_3001);
- return 1 | p->m_dasm_flags | DASMFLAG_SUPPORTED;
- }
- }
-
- return 0;
+ const dis_entry_t *p;
+
+ for (p = table; p->m_op_mask; p++) {
+ if ((opcode & p->m_op_mask) == p->m_opcode) {
+ strcpy(buffer , p->m_mnemonic);
+ strcat(buffer , " ");
+ p->m_param_fn(buffer , pc , opcode , is_3001);
+ return 1 | p->m_dasm_flags | DASMFLAG_SUPPORTED;
+ }
+ }
+
+ return 0;
}
CPU_DISASSEMBLE(hp_hybrid)
{
- UINT16 opcode = ((UINT16)oprom[ 0 ] << 8) | oprom[ 1 ];
- offs_t res;
+ UINT16 opcode = ((UINT16)oprom[ 0 ] << 8) | oprom[ 1 ];
+ offs_t res;
- res = disassemble_table(opcode , pc , dis_table , false , buffer);
+ res = disassemble_table(opcode , pc , dis_table , false , buffer);
- if (res == 0) {
- // Unknown opcode
- strcpy(buffer , "???");
- res = 1 | DASMFLAG_SUPPORTED;
- }
+ if (res == 0) {
+ // Unknown opcode
+ strcpy(buffer , "???");
+ res = 1 | DASMFLAG_SUPPORTED;
+ }
- return res;
+ return res;
}
CPU_DISASSEMBLE(hp_5061_3001)
{
- UINT16 opcode = ((UINT16)oprom[ 0 ] << 8) | oprom[ 1 ];
- offs_t res;
+ UINT16 opcode = ((UINT16)oprom[ 0 ] << 8) | oprom[ 1 ];
+ offs_t res;
- res = disassemble_table(opcode , pc , dis_table_emc , true , buffer);
+ res = disassemble_table(opcode , pc , dis_table_emc , true , buffer);
- if (res == 0) {
- res = disassemble_table(opcode , pc , dis_table , true , buffer);
- }
+ if (res == 0) {
+ res = disassemble_table(opcode , pc , dis_table , true , buffer);
+ }
- if (res == 0) {
- // Unknown opcode
- strcpy(buffer , "???");
- res = 1 | DASMFLAG_SUPPORTED;
- }
+ if (res == 0) {
+ // Unknown opcode
+ strcpy(buffer , "???");
+ res = 1 | DASMFLAG_SUPPORTED;
+ }
- return res;
+ return res;
}
-