messing around

This commit is contained in:
hap 2015-03-17 21:34:00 +01:00
parent af0ead85bb
commit 5b170fd5ab
2 changed files with 45 additions and 25 deletions

View File

@ -570,6 +570,9 @@ void hmcs40_cpu_device::execute_run()
m_i = BITSWAP8(m_op,7,6,5,4,0,1,2,3) & 0xf; // reversed bit-order for immediate param m_i = BITSWAP8(m_op,7,6,5,4,0,1,2,3) & 0xf; // reversed bit-order for immediate param
increment_pc(); increment_pc();
// handle opcode
switch (m_op)
{
/* /*
op_ayy(); - op_ayy(); -
@ -585,42 +588,65 @@ op_alem(); - 324 124
op_blem(); - 267 024 op_blem(); - 267 024
op_lay(); - 118 op_lay(); - 118
*/ */
// handle opcode
switch (m_op)
{
case 0x118: case 0x118:
op_lay(); // probably lay op_lay(); // probably lay
break; break;
case 0x046:
op_daa();
break;
case 0x045:
op_das();
break;
case 0x267: case 0x267:
op_blem(); break; // bnem or blem op_blem(); // bnem or blem
break;
case 0x124: case 0x124:
op_alem(); // alem or anem op_alem(); // alem or anem
break; break;
case 0x324: case 0x324:
op_anem(); break; // " op_anem(); // "
break;
case 0x024: case 0x024:
//op_nega(); //op_nega();
//op_am(); //op_am();
op_illegal(); op_illegal();
break; break;
case 0x234:
// sm? case 0x04b:
#if 0 op_illegal();
m_a = ram_r() - m_a; //op_rec();
m_s = ~m_a >> 4 & 1;
m_a &= 0xf;
#else
op_am();
#endif
break; break;
case 0x04c: case 0x04c:
op_illegal(); op_rec();
//m_c ^= 1;
//op_lat();
break; break;
case 0x030:
op_amc();
break;
case 0x034:
//op_illegal();
op_amc(); // mirror?
break;
case 0x230:
op_smc();
break;
case 0x234:
//op_illegal();
op_smc(); // mirror?
break;
@ -637,15 +663,11 @@ op_lay(); - 118
/* ok */ op_lmiiy(); break; /* ok */ op_lmiiy(); break;
case 0x020: case 0x021: case 0x022: case 0x023: case 0x020: case 0x021: case 0x022: case 0x023:
op_lbm(); break; op_lbm(); break;
case 0x030:
op_amc(); break;
case 0x03c: case 0x03c:
op_lta(); break; op_lta(); break;
case 0x040: case 0x040:
/* ok */ op_lxa(); break; /* ok */ op_lxa(); break;
case 0x04b:
op_rec(); break;
case 0x04f: case 0x04f:
op_sec(); break; op_sec(); break;
case 0x050: case 0x050:
@ -751,8 +773,6 @@ op_lay(); - 118
/* ok */ op_rotr(); break; /* ok */ op_rotr(); break;
case 0x225: case 0x225:
/* ok */ op_rotl(); break; /* ok */ op_rotl(); break;
case 0x230:
op_smc(); break;
case 0x23c: case 0x23c:
op_lat(); break; op_lat(); break;

View File

@ -662,13 +662,13 @@ void hmcs40_cpu_device::op_p()
if (o & 0x100) if (o & 0x100)
{ {
// B3 B2 B1 B0 A0 A1 A2 A3 // B3 B2 B1 B0 A0 A1 A2 A3
m_a = BITSWAP8((UINT8)o,7,6,5,4,0,1,2,3) & 0xf; m_a = BITSWAP8(o,7,6,5,4,0,1,2,3) & 0xf;
m_b = o >> 4 & 0xf; m_b = o >> 4 & 0xf;
} }
if (o & 0x200) if (o & 0x200)
{ {
// R20 R21 R22 R23 R30 R31 R32 R33 // R20 R21 R22 R23 R30 R31 R32 R33
o = BITSWAP8((UINT8)o,0,1,2,3,4,5,6,7); o = BITSWAP8(o,0,1,2,3,4,5,6,7);
write_r(2, o & 0xf); write_r(2, o & 0xf);
write_r(3, o >> 4 & 0xf); write_r(3, o >> 4 & 0xf);
} }