mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
messing around
This commit is contained in:
parent
af0ead85bb
commit
5b170fd5ab
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user