summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/unsp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/unsp')
-rw-r--r--src/devices/cpu/unsp/unsp_fxxx.cpp50
1 files changed, 46 insertions, 4 deletions
diff --git a/src/devices/cpu/unsp/unsp_fxxx.cpp b/src/devices/cpu/unsp/unsp_fxxx.cpp
index 8a62d05476b..eed523c5568 100644
--- a/src/devices/cpu/unsp/unsp_fxxx.cpp
+++ b/src/devices/cpu/unsp/unsp_fxxx.cpp
@@ -102,13 +102,55 @@ inline void unsp_device::execute_fxxx_001_group(uint16_t op)
if (d)
{
- logerror("%s ds:[%04x],%d\n", bitops[bitop], imm16, offset);
- unimplemented_opcode(op);
+ switch (bitop)
+ {
+ case 0x0: // tstb
+ logerror("tstb ds:[%04x],%d\n", imm16, offset);
+ unimplemented_opcode(op);
+ break;
+
+ case 0x1: // setb
+ logerror("setb ds:[%04x],%d\n", imm16, offset);
+ unimplemented_opcode(op);
+ break;
+
+ case 0x2: // clrb
+ logerror("clrb ds:[%04x],%d\n", imm16, offset);
+ unimplemented_opcode(op);
+ break;
+
+ case 0x3: // invb
+ logerror("invb ds:[%04x],%d\n", imm16, offset);
+ unimplemented_opcode(op);
+ break;
+ }
}
else
{
- logerror("%s [%04x],%d\n", bitops[bitop], imm16, offset);
- unimplemented_opcode(op);
+ switch (bitop)
+ {
+ case 0x0: // tstb
+ logerror("tstb [%04x],%d\n", imm16, offset);
+ unimplemented_opcode(op);
+ break;
+
+ case 0x1: // setb (bkrankp uses this)
+ {
+ uint16_t temp = read16(imm16);
+ temp |= (1 << offset);
+ write16(imm16, temp);
+ break;
+ }
+ case 0x2: // clrb
+ logerror("clrb [%04x],%d\n", imm16, offset);
+ unimplemented_opcode(op);
+ break;
+
+ case 0x3: // invb
+ logerror("invb [%04x],%d\n", imm16, offset);
+ unimplemented_opcode(op);
+ break;
+ }
}
return;