@@ -1013,7 +1013,7 @@ void upd7810_device::MOV_ANM_A()
1013
1013
/* 4d c9: 0100 1101 1100 1001 */
1014
1014
void upd7810_device::MOV_SMH_A ()
1015
1015
{
1016
- SMH = A ;
1016
+ write_smh (A) ;
1017
1017
}
1018
1018
1019
1019
/* 4d ca: 0100 1101 1100 1010 */
@@ -4093,7 +4093,10 @@ void upd7810_device::MVI_ANM_xx()
4093
4093
/* 64 81: 0110 0100 1000 0001 xxxx xxxx */
4094
4094
void upd7810_device::MVI_SMH_xx ()
4095
4095
{
4096
- RDOPARG ( SMH );
4096
+ uint8_t imm;
4097
+
4098
+ RDOPARG ( imm );
4099
+ write_smh (imm);
4097
4100
}
4098
4101
4099
4102
/* 64 83: 0110 0100 1000 0011 xxxx xxxx */
@@ -4125,7 +4128,7 @@ void upd7810_device::ANI_SMH_xx()
4125
4128
uint8_t imm;
4126
4129
4127
4130
RDOPARG ( imm );
4128
- SMH &= imm;
4131
+ write_smh ( SMH & imm) ;
4129
4132
SET_Z (SMH);
4130
4133
}
4131
4134
@@ -4169,7 +4172,7 @@ void upd7810_device::XRI_SMH_xx()
4169
4172
uint8_t imm;
4170
4173
4171
4174
RDOPARG ( imm );
4172
- SMH ^= imm;
4175
+ write_smh ( SMH ^ imm) ;
4173
4176
SET_Z (SMH);
4174
4177
}
4175
4178
@@ -4213,7 +4216,7 @@ void upd7810_device::ORI_SMH_xx()
4213
4216
uint8_t imm;
4214
4217
4215
4218
RDOPARG ( imm );
4216
- SMH |= imm;
4219
+ write_smh ( SMH | imm) ;
4217
4220
SET_Z (SMH);
4218
4221
}
4219
4222
@@ -4263,7 +4266,7 @@ void upd7810_device::ADINC_SMH_xx()
4263
4266
tmp = SMH + imm;
4264
4267
4265
4268
ZHC_ADD ( tmp, SMH, 0 );
4266
- SMH = tmp;
4269
+ write_smh ( tmp) ;
4267
4270
SKIP_NC;
4268
4271
}
4269
4272
@@ -4371,7 +4374,7 @@ void upd7810_device::SUINB_SMH_xx()
4371
4374
RDOPARG ( imm );
4372
4375
tmp = SMH - imm;
4373
4376
ZHC_SUB ( tmp, SMH, 0 );
4374
- SMH = tmp;
4377
+ write_smh ( tmp) ;
4375
4378
SKIP_NC;
4376
4379
}
4377
4380
@@ -4469,7 +4472,7 @@ void upd7810_device::ADI_SMH_xx()
4469
4472
tmp = SMH + imm;
4470
4473
4471
4474
ZHC_ADD ( tmp, SMH, 0 );
4472
- SMH = tmp;
4475
+ write_smh ( tmp) ;
4473
4476
}
4474
4477
4475
4478
/* 64 c3: 0110 0100 1100 0011 xxxx xxxx */
@@ -4562,7 +4565,7 @@ void upd7810_device::ACI_SMH_xx()
4562
4565
tmp = SMH + imm + (PSW & CY);
4563
4566
4564
4567
ZHC_ADD ( tmp, SMH, (PSW & CY) );
4565
- SMH = tmp;
4568
+ write_smh ( tmp) ;
4566
4569
}
4567
4570
4568
4571
/* 64 d3: 0110 0100 1101 0011 xxxx xxxx */
@@ -4653,7 +4656,7 @@ void upd7810_device::SUI_SMH_xx()
4653
4656
RDOPARG ( imm );
4654
4657
tmp = SMH - imm;
4655
4658
ZHC_SUB ( tmp, SMH, 0 );
4656
- SMH = tmp;
4659
+ write_smh ( tmp) ;
4657
4660
}
4658
4661
4659
4662
/* 64 e3: 0110 0100 1110 0011 xxxx xxxx */
@@ -4746,7 +4749,7 @@ void upd7810_device::SBI_SMH_xx()
4746
4749
RDOPARG ( imm );
4747
4750
tmp = SMH - imm - (PSW & CY);
4748
4751
ZHC_SUB ( tmp, SMH, (PSW & CY) );
4749
- SMH = tmp;
4752
+ write_smh ( tmp) ;
4750
4753
}
4751
4754
4752
4755
/* 64 f3: 0110 0100 1111 0011 xxxx xxxx */
@@ -8746,7 +8749,7 @@ void upd7810_device::SETB()
8746
8749
MKL |= (1 << bit);
8747
8750
break ;
8748
8751
case 0x19 : /* SMH */
8749
- SMH |= (1 << bit);
8752
+ write_smh ( SMH | (1 << bit) );
8750
8753
break ;
8751
8754
case 0x1b : /* EOM */
8752
8755
EOM |= (1 << bit);
@@ -8796,7 +8799,7 @@ void upd7810_device::CLR()
8796
8799
MKL &= ~(1 << bit);
8797
8800
break ;
8798
8801
case 0x19 : /* SMH */
8799
- SMH &= ~(1 << bit);
8802
+ write_smh ( SMH & ~(1 << bit) );
8800
8803
break ;
8801
8804
case 0x1b : /* EOM */
8802
8805
EOM &= ~(1 << bit);
0 commit comments