case NO_OPERANDS : // for NOP
strcpy(parm_str, "");
break;
- case C_BIT :
- strcpy(parm_str, "C_BIT");
+ case CY_BIT :
+ sprintf(parm_str, "C,%s",
+ get_bit_name(((code&0x0003)<<8) + get_mem(MEM_ROM, addr+2)));
+ break;
+ case BIT_CY :
+ sprintf(parm_str, "%s,C",
+ get_bit_name(((code&0x0003)<<8) + get_mem(MEM_ROM, addr+2)));
break;
case REG_DATA4 :
strcpy(parm_str, "REG_DATA4");
break;
+ case REG_DATA5 :
+ strcpy(parm_str, "REG_DATA5");
+ break;
case IREG_DATA4 :
strcpy(parm_str, "IREG_DATA4");
break;
get_bit_name((code&0x0003)<<8) + get_mem(MEM_ROM, addr+2),
((signed char)get_mem(MEM_ROM, addr+3)*2+addr+len)&0xfffe);
break;
+ case DATA4:
+ sprintf(parm_str, "#0x%02x", code&0x0f);
+ break;
case ADDR24 :
- strcpy(parm_str, "ADDR24");
+ sprintf(parm_str, "0x%06x",
+ (get_mem(MEM_ROM, addr+3)<<16) +
+ (get_mem(MEM_ROM, addr+1)<<8) +
+ get_mem(MEM_ROM, addr+2));
+ break;
break;
case REG_REL8 :
sprintf(parm_str, "%s,0x%04x",
get_mem(MEM_ROM, addr+2)),
((signed char)get_mem(MEM_ROM, addr+2)*2+addr+len)&0xfffe);
break;
-
+ case REG_USP:
+ sprintf(parm_str, "REG_USP");
+ break;
+ case USP_REG:
+ sprintf(parm_str, "USP_REG");
+ break;
case REL8 :
sprintf(parm_str, "0x%04x",
((signed char)get_mem(MEM_ROM, addr+1)*2+addr+len)&0xfffe);
((signed char) get_mem(MEM_ROM, addr+immed_offset+1) * 2) & 0xfffe );
break;
case REG_DATA8_REL8 :
- sprintf(parm_str, "%s,#0x%04x,0x%02x",
+ sprintf(parm_str, "%s,#0x%02x,0x%02x",
reg_strs[((code >> 4) & 0xf)],
- get_mem(MEM_ROM, addr+immed_offset),
- ((signed char)get_mem(MEM_ROM, addr+immed_offset+1) * 2) & 0xfffe );
+ get_mem(MEM_ROM, addr+immed_offset+1),
+ ((signed char)get_mem(MEM_ROM, addr+immed_offset) * 2) & 0xfffe );
break;
case REG_DATA16_REL8 :
- sprintf(parm_str, "%s,#0x%02x,0x%02x",
- w_reg_strs[((code >> 4) & 0x7)*2],
- get_mem(MEM_ROM, addr+immed_offset+1) +
- (get_mem(MEM_ROM, addr+immed_offset+0)<<8),
- ((signed char)get_mem(MEM_ROM, addr+immed_offset+2) * 2) & 0xfffe );
+ sprintf(parm_str, "%s,#0x%04x,0x%02x",
+ w_reg_strs[(code >> 4) & 0xf],
+ get_mem(MEM_ROM, addr+immed_offset+2) +
+ (get_mem(MEM_ROM, addr+immed_offset+1)<<8),
+ ((signed char)get_mem(MEM_ROM, addr+immed_offset) * 2) & 0xfffe );
break;
case IREG_DATA8_REL8 :
- sprintf(parm_str, "[%s],#0x%04x,0x%02x",
+ sprintf(parm_str, "[%s],#0x%02x,0x%02x",
reg_strs[((code >> 4) & 0x7)],
- get_mem(MEM_ROM, addr+immed_offset),
- ((signed char)get_mem(MEM_ROM, addr+immed_offset+1) * 2) & 0xfffe );
+ get_mem(MEM_ROM, addr+immed_offset+1),
+ ((signed char)get_mem(MEM_ROM, addr+immed_offset) * 2) & 0xfffe );
break;
case IREG_DATA16_REL8 :
- sprintf(parm_str, "[%s],#0x%02x,0x%02x",
- w_reg_strs[((code >> 4) & 0x7)*2],
- get_mem(MEM_ROM, addr+immed_offset+1) +
- (get_mem(MEM_ROM, addr+immed_offset+0)<<8),
- ((signed char)get_mem(MEM_ROM, addr+immed_offset+2) * 2) & 0xfffe );
+ sprintf(parm_str, "[%s],#0x%04x,0x%02x",
+ w_reg_strs[(code >> 4) & 0x7],
+ get_mem(MEM_ROM, addr+immed_offset+2) +
+ (get_mem(MEM_ROM, addr+immed_offset+1)<<8),
+ ((signed char)get_mem(MEM_ROM, addr+immed_offset) * 2) & 0xfffe );
break;
case A_APLUSDPTR :
strcpy(parm_str, "A, [A+PC]");
break;
+ case REG_REGOFF8 :
+ sprintf(parm_str, "%s,%s+0x%02x",
+ w_reg_strs[(code >> 4) & 0x7],
+ w_reg_strs[code & 0x7],
+ get_mem(MEM_ROM, addr+immed_offset));
+ break;
+
+ case REG_REGOFF16 :
+ sprintf(parm_str, "%s,%s+0x%02x",
+ w_reg_strs[(code >> 4) & 0x7],
+ w_reg_strs[code & 0x7],
+ get_mem(MEM_ROM, addr+immed_offset+1) +
+ (get_mem(MEM_ROM, addr+immed_offset+0)<<8));
+ break;
+
+ case A_PLUSDPTR :
+ strcpy(parm_str, "[A+DPTR]");
+ break;
+
+ case IIREG :
+ sprintf(parm_str, "[[%s]]",
+ w_reg_strs[(code & 0x7)]);
+ break;
+
default:
strcpy(parm_str, "???");
break;