trunk/src/emu/cpu/es5510/es5510.c
| r20727 | r20728 | |
| 424 | 424 | break; |
| 425 | 425 | |
| 426 | 426 | case 0x80: /* Read select - GPR + INSTR */ |
| 427 | | logerror("ES5510: Read INSTR+GPR %02x (%s): %012" I64FMT "x %06x (%d)\n", data, REGNAME(data & 0xff), instr[data] & 0xffffffffffffL, gpr[data] & 0xffffff, gpr[data]); |
| 427 | logerror("ES5510: Read INSTR+GPR %02x (%s): %012" I64FMT "x %06x (%d)\n", data, REGNAME(data & 0xff), instr[data] & U64(0xffffffffffff), gpr[data] & 0xffffff, gpr[data]); |
| 428 | 428 | |
| 429 | 429 | /* Check if an INSTR address is selected */ |
| 430 | 430 | if (data < 0xa0) { |
| r20727 | r20728 | |
| 444 | 444 | |
| 445 | 445 | case 0xc0: /* Write select - INSTR */ |
| 446 | 446 | DESCRIBE_INSTR(buf, instr_latch, gpr[data]); |
| 447 | | logerror("ES5510: Write INSTR %02x %012" I64FMT "x: %s\n",data, instr_latch&0xffffffffffffL, buf); |
| 447 | logerror("ES5510: Write INSTR %02x %012" I64FMT "x: %s\n",data, instr_latch&U64(0xffffffffffff), buf); |
| 448 | 448 | if (data < 0xa0) { |
| 449 | | instr[data] = instr_latch&0xffffffffffffL; |
| 449 | instr[data] = instr_latch&U64(0xffffffffffff); |
| 450 | 450 | } |
| 451 | 451 | break; |
| 452 | 452 | |
| r20727 | r20728 | |
| 587 | 587 | if (mulacc.write_result) { |
| 588 | 588 | mulacc.product = (mulacc.cValue * mulacc.dValue) << mulshift; |
| 589 | 589 | mulacc.result = (mulacc.accumulate ? machl : 0) + mulacc.product; |
| 590 | | INT32 tmp = (mulacc.result & 0x0000ffffff000000) >> 24; |
| 590 | INT32 tmp = (mulacc.result & U64(0x0000ffffff000000)) >> 24; |
| 591 | 591 | if (mulacc.dst & SRC_DST_REG) { |
| 592 | 592 | machl = mulacc.result; |
| 593 | 593 | write_reg(mulacc.cReg, tmp); |