From 9f6c0de566d7bd3fcc956809ae4c80acf128fb3d Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sun, 30 Jun 2024 17:43:02 +1000 Subject: [PATCH] Cleaned up various stuff. * sony_news.xml: Added proper compatibility flags for different generations. * cpu/pic16x8x: This is very much a derivative work. * cpu/tms32025.cpp: Allow stack push/pop to be inlined. * tecmo/bombjack.cpp: Avoid needing to remove and replace devices in machine configuration. * Various other cleanup. --- hash/sony_news.xml | 4 +- plugins/hiscore/hiscore.dat | 1 + src/devices/bus/hp_dio/hp98544.cpp | 6 +- src/devices/bus/hp_dio/hp98603a.cpp | 2 +- src/devices/bus/hp_dio/hp98603b.cpp | 2 +- src/devices/bus/hp_dio/hp98620.cpp | 1 - src/devices/bus/hp_dio/hp98624.cpp | 21 +- src/devices/bus/hp_dio/hp98644.cpp | 3 +- src/devices/cpu/f2mc16/f2mc16.cpp | 840 +++++++++++++------------- src/devices/cpu/pic16x8x/16x8xdsm.cpp | 2 +- src/devices/cpu/pic16x8x/16x8xdsm.h | 2 +- src/devices/cpu/pic16x8x/pic16x8x.cpp | 2 +- src/devices/cpu/pic16x8x/pic16x8x.h | 2 +- src/devices/cpu/tms32025/tms32025.cpp | 171 +++--- src/devices/cpu/tms32025/tms32025.h | 60 +- src/devices/cpu/z80/z80.lst | 2 +- src/devices/imagedev/floppy.cpp | 22 +- src/devices/machine/cxd1185.cpp | 16 +- src/devices/machine/cxd1185.h | 2 +- src/emu/debug/debugcmd.cpp | 12 +- src/emu/emucore.h | 2 +- src/lib/formats/fs_coco_rsdos.cpp | 6 +- src/mame/benesse/challenge_gear.cpp | 4 +- src/mame/hp/hp98x6.cpp | 30 +- src/mame/hp/hp98x6_upi.cpp | 377 ++++++------ src/mame/hp/hp98x6_upi.h | 24 +- src/mame/igs/igs_fear.cpp | 15 +- src/mame/igs/pgmcrypt.cpp | 6 +- src/mame/konami/ksys573.cpp | 2 +- src/mame/layout/pickytlk.lay | 2 +- src/mame/msx/msx2.cpp | 2 +- src/mame/sega/segac2.cpp | 168 +++--- src/mame/sinclair/chloe.cpp | 18 +- src/mame/sinclair/screen_ula.h | 2 +- src/mame/sony/dmac_0448.cpp | 2 +- src/mame/sony/news_r3k.cpp | 2 +- src/mame/sony/news_r4k.cpp | 2 +- src/mame/taito/mlanding.cpp | 2 +- src/mame/tch/wheelfir.cpp | 16 +- src/mame/tecmo/bombjack.cpp | 139 +++-- src/mame/ussr/bk.cpp | 17 +- src/mame/ussr/bk.h | 40 +- src/mame/vsystem/aerofgt.cpp | 20 +- src/mame/vsystem/pspikes.cpp | 4 +- 44 files changed, 1047 insertions(+), 1028 deletions(-) diff --git a/hash/sony_news.xml b/hash/sony_news.xml index eca2bb13846..8a3c9edf2fa 100644 --- a/hash/sony_news.xml +++ b/hash/sony_news.xml @@ -10,7 +10,7 @@ license:CC0-1.0 1991 Sony The floppies can boot on both CISC and RISC systems due to some bootloader magic, but the MO image is only for the first wave of RISC NEWS machines (NWS-3000 series) - + diff --git a/plugins/hiscore/hiscore.dat b/plugins/hiscore/hiscore.dat index 68fd4c5263e..96315ad875e 100644 --- a/plugins/hiscore/hiscore.dat +++ b/plugins/hiscore/hiscore.dat @@ -8093,6 +8093,7 @@ lupin3: @:maincpu,program,20dc,03,00,00 @delay=0.25 + invrvnge: invrvngea: invrvngeb: diff --git a/src/devices/bus/hp_dio/hp98544.cpp b/src/devices/bus/hp_dio/hp98544.cpp index 80159b1001f..ddf47683d1a 100644 --- a/src/devices/bus/hp_dio/hp98544.cpp +++ b/src/devices/bus/hp_dio/hp98544.cpp @@ -10,9 +10,11 @@ #include "emu.h" #include "hp98544.h" -#include "screen.h" + #include "video/topcat.h" -#include "hp_dio.h" + +#include "screen.h" + #define HP98544_SCREEN_NAME "98544_screen" #define HP98544_ROM_REGION "98544_rom" diff --git a/src/devices/bus/hp_dio/hp98603a.cpp b/src/devices/bus/hp_dio/hp98603a.cpp index 3230b795905..6b10d9281fd 100644 --- a/src/devices/bus/hp_dio/hp98603a.cpp +++ b/src/devices/bus/hp_dio/hp98603a.cpp @@ -8,7 +8,7 @@ #include "emu.h" #include "hp98603a.h" -#include "hp_dio.h" + #define HP98603A_ROM_REGION "98603a_rom" diff --git a/src/devices/bus/hp_dio/hp98603b.cpp b/src/devices/bus/hp_dio/hp98603b.cpp index ff91eb05e8b..e8f6f822f80 100644 --- a/src/devices/bus/hp_dio/hp98603b.cpp +++ b/src/devices/bus/hp_dio/hp98603b.cpp @@ -8,7 +8,7 @@ #include "emu.h" #include "hp98603b.h" -#include "hp_dio.h" + #define HP98603B_ROM_REGION "98603b_rom" diff --git a/src/devices/bus/hp_dio/hp98620.cpp b/src/devices/bus/hp_dio/hp98620.cpp index 67d8507d3ea..0c4b03fb06f 100644 --- a/src/devices/bus/hp_dio/hp98620.cpp +++ b/src/devices/bus/hp_dio/hp98620.cpp @@ -8,7 +8,6 @@ #include "emu.h" #include "hp98620.h" -#include "hp_dio.h" #define VERBOSE 0 #include "logmacro.h" diff --git a/src/devices/bus/hp_dio/hp98624.cpp b/src/devices/bus/hp_dio/hp98624.cpp index d8037d00363..2cfb4a9e884 100644 --- a/src/devices/bus/hp_dio/hp98624.cpp +++ b/src/devices/bus/hp_dio/hp98624.cpp @@ -8,9 +8,9 @@ #include "emu.h" #include "hp98624.h" -#include "machine/tms9914.h" + #include "bus/ieee488/ieee488.h" -#include "hp_dio.h" +#include "machine/tms9914.h" //#define VERBOSE 1 #include "logmacro.h" @@ -42,6 +42,7 @@ protected: required_device m_tms9914; required_device m_ieee488; required_ioport m_switches; + private: void update_gpib_irq(); void update_gpib_dma(); @@ -101,17 +102,17 @@ dio16_98624_device::dio16_98624_device(const machine_config &mconfig, device_typ { } -#define REG_SWITCHES_SC 0x01 -#define REG_SWITCHES_REMOTE 0x02 +constexpr unsigned REG_SWITCHES_SC = 0x01; +constexpr unsigned REG_SWITCHES_REMOTE = 0x02; -#define REG_SWITCHES_INT_LEVEL_MASK 3 -#define REG_SWITCHES_INT_LEVEL_SHIFT 2 +constexpr unsigned REG_SWITCHES_INT_LEVEL_MASK = 3; +constexpr unsigned REG_SWITCHES_INT_LEVEL_SHIFT = 2; -#define REG_SWITCHES_SELECT_CODE_MASK 31 -#define REG_SWITCHES_SELECT_CODE_SHIFT 4 +constexpr unsigned REG_SWITCHES_SELECT_CODE_MASK = 31; +constexpr unsigned REG_SWITCHES_SELECT_CODE_SHIFT = 4; -#define REG_SWITCHES_GPIB_ADDR_MASK 31 -#define REG_SWITCHES_GPIB_ADDR_SHIFT 9 +constexpr unsigned REG_SWITCHES_GPIB_ADDR_MASK = 31; +constexpr unsigned REG_SWITCHES_GPIB_ADDR_SHIFT = 9; static INPUT_PORTS_START(hp98624_port) PORT_START("switches") diff --git a/src/devices/bus/hp_dio/hp98644.cpp b/src/devices/bus/hp_dio/hp98644.cpp index 731ca67a246..ec78a13be1f 100644 --- a/src/devices/bus/hp_dio/hp98644.cpp +++ b/src/devices/bus/hp_dio/hp98644.cpp @@ -8,9 +8,10 @@ #include "emu.h" #include "hp98644.h" + #include "bus/rs232/rs232.h" #include "machine/ins8250.h" -#include "hp_dio.h" + namespace { diff --git a/src/devices/cpu/f2mc16/f2mc16.cpp b/src/devices/cpu/f2mc16/f2mc16.cpp index e01b02e24e8..fdfac5d16cd 100644 --- a/src/devices/cpu/f2mc16/f2mc16.cpp +++ b/src/devices/cpu/f2mc16/f2mc16.cpp @@ -251,8 +251,8 @@ void f2mc16_device::execute_run() //m_icount--; if (!m_prefix_valid) - debugger_instruction_hook((m_pcb<<16) | m_pc); - u8 opcode = read_8((m_pcb<<16) | m_pc); + debugger_instruction_hook((m_pcb << 16) | m_pc); + u8 opcode = read_8((m_pcb << 16) | m_pc); switch (opcode) { @@ -312,7 +312,7 @@ void f2mc16_device::execute_run() // LINK #imm8 case 0x08: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); if (m_ps & F_S) { m_ssp-=2; @@ -348,7 +348,7 @@ void f2mc16_device::execute_run() // MOV RP, #imm8 case 0x0a: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)) & 0x1f; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)) & 0x1f; m_ps &= 0xe0ff; m_ps |= (m_tmp8<<8); m_pc += 2; @@ -491,14 +491,14 @@ void f2mc16_device::execute_run() // ADDSP #imm8 case 0x17: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); if (m_ps & F_S) { - m_ssp += (s8)m_tmp8; + m_ssp += s8(m_tmp8); } else { - m_usp += (s8)m_tmp8; + m_usp += s8(m_tmp8); } m_pc += 2; m_icount -= 3; @@ -506,7 +506,7 @@ void f2mc16_device::execute_run() // ADDL A, #imm32 case 0x18: - m_tmp32 = read_32((m_pcb << 16) | (m_pc+1)); + m_tmp32 = read_32((m_pcb << 16) | (m_pc + 1)); m_acc = doADD_32(m_acc, m_tmp32); m_pc += 5; m_icount -= 4; @@ -514,7 +514,7 @@ void f2mc16_device::execute_run() // SUBL A, #imm32 case 0x19: - m_tmp32 = read_32((m_pcb << 16) | (m_pc+1)); + m_tmp32 = read_32((m_pcb << 16) | (m_pc + 1)); m_acc = doSUB_32(m_acc, m_tmp32); m_pc += 5; m_icount -= 4; @@ -522,7 +522,7 @@ void f2mc16_device::execute_run() // MOV ILM, #imm8 case 0x1a: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)) & 7; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)) & 7; m_ps &= 0x1fff; m_ps |= (m_tmp8<<13); m_pc += 2; @@ -531,7 +531,7 @@ void f2mc16_device::execute_run() // CMPL A, #imm32 case 0x1b: - m_tmp32 = read_32((m_pcb << 16) | (m_pc+1)); + m_tmp32 = read_32((m_pcb << 16) | (m_pc + 1)); doCMP_32(m_acc, m_tmp32); m_pc += 5; m_icount -= 3; @@ -573,7 +573,7 @@ void f2mc16_device::execute_run() // ADDSP #imm16 case 0x1f: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+1)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 1)); if (m_ps & F_S) { m_ssp += m_tmp16; @@ -607,7 +607,7 @@ void f2mc16_device::execute_run() // AND CCR, #imm8 case 0x24: - m_tmp16 = read_8((m_pcb<<16) | (m_pc+1)) | 0xff80; + m_tmp16 = read_8((m_pcb << 16) | (m_pc + 1)) | 0xff80; m_ps &= m_tmp16; m_pc += 2; m_icount -= 3; @@ -615,7 +615,7 @@ void f2mc16_device::execute_run() // OR CCR, #imm8 case 0x25: - m_tmp16 = read_8((m_pcb<<16) | (m_pc+1)) & 0x7f; + m_tmp16 = read_8((m_pcb << 16) | (m_pc + 1)) & 0x7f; m_ps |= m_tmp16; m_pc += 2; m_icount -= 3; @@ -649,7 +649,7 @@ void f2mc16_device::execute_run() // CBNE A, #imm8 case 0x2a: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); doCMP_8(m_acc & 0xff, m_tmp8); if (m_ps & F_Z) // they're equal { @@ -720,7 +720,7 @@ void f2mc16_device::execute_run() // ADD A, #imm8 case 0x30: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); m_tmp8 = doADD_8(m_acc & 0xff, m_tmp8); m_acc &= 0xffff0000; m_acc |= m_tmp8; @@ -730,7 +730,7 @@ void f2mc16_device::execute_run() // SUB A, #imm8 case 0x31: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); m_tmp8 = doSUB_8(m_acc & 0xff, m_tmp8); m_acc &= 0xffff0000; m_acc |= m_tmp8; @@ -744,7 +744,7 @@ void f2mc16_device::execute_run() // CMP A, #imm8 case 0x33: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); doCMP_8(m_acc & 0xff, m_tmp8); m_pc += 2; m_icount -= 2; @@ -752,7 +752,7 @@ void f2mc16_device::execute_run() // AND A, #imm8 case 0x34: - m_tmp32 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp32 = read_8((m_pcb << 16) | (m_pc + 1)); m_tmp32 |= 0xffffff00; m_acc &= m_tmp32; setNZ_8(m_acc & 0xff); @@ -763,7 +763,7 @@ void f2mc16_device::execute_run() // OR A, #imm8 case 0x35: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); m_acc |= m_tmp8; setNZ_8(m_acc & 0xff); m_ps &= ~F_V; @@ -773,7 +773,7 @@ void f2mc16_device::execute_run() // XOR A, #imm8 case 0x36: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); m_acc ^= m_tmp8; setNZ_8(m_acc & 0xff); m_ps &= ~F_V; @@ -792,7 +792,7 @@ void f2mc16_device::execute_run() // ADDW A, #imm16 case 0x38: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+1)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 1)); m_tmp16 = doADD_16(m_acc & 0xffff, m_tmp16); m_acc &= 0xffff0000; m_acc |= m_tmp16; @@ -802,7 +802,7 @@ void f2mc16_device::execute_run() // SUBW A, #imm16 case 0x39: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+1)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 1)); m_tmp16 = doSUB_16(m_acc & 0xffff, m_tmp16); m_acc &= 0xffff0000; m_acc |= m_tmp16; @@ -812,8 +812,8 @@ void f2mc16_device::execute_run() // CWBNE A, #imm16, disp8 case 0x3a: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+1)); - m_tmp8 = read_8((m_pcb<<16) | (m_pc+3)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 3)); doCMP_16(m_acc & 0xffff, m_tmp16); if (m_ps & F_Z) { @@ -822,14 +822,14 @@ void f2mc16_device::execute_run() } else { - m_pc = m_pc + 4 + (s8)m_tmp8; + m_pc = m_pc + 4 + s8(m_tmp8); m_icount -= 5; } break; // CMPW A, #imm16 case 0x3b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+1)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 1)); doCMP_16(m_acc & 0xffff, m_tmp16); m_pc += 3; m_icount -= 2; @@ -837,7 +837,7 @@ void f2mc16_device::execute_run() // ANDW A, #imm16 case 0x3c: - m_tmp32 = read_16((m_pcb<<16) | (m_pc+1)); + m_tmp32 = read_16((m_pcb << 16) | (m_pc + 1)); m_tmp32 |= 0xffff0000; m_acc &= m_tmp32; setNZ_16(m_acc & 0xffff); @@ -848,7 +848,7 @@ void f2mc16_device::execute_run() // ORW A, #imm16 case 0x3d: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+1)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 1)); m_acc |= m_tmp16; setNZ_16(m_acc & 0xffff); m_ps &= ~F_V; @@ -858,7 +858,7 @@ void f2mc16_device::execute_run() // XORW A, #imm16 case 0x3e: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+1)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 1)); m_acc ^= m_tmp16; setNZ_16(m_acc & 0xffff); m_ps &= ~F_V; @@ -877,7 +877,7 @@ void f2mc16_device::execute_run() // MOV A, dir case 0x40: - m_tmpea = getdirbank(read_8((m_pcb<<16) | (m_pc+1))); + m_tmpea = getdirbank(read_8((m_pcb << 16) | (m_pc + 1))); m_tmp8 = read_8(m_tmpea); m_acc <<= 16; m_acc |= m_tmp8; @@ -888,7 +888,7 @@ void f2mc16_device::execute_run() // MOV dir, A case 0x41: - m_tmpea = getdirbank(read_8((m_pcb<<16) | (m_pc+1))); + m_tmpea = getdirbank(read_8((m_pcb << 16) | (m_pc + 1))); write_8(m_tmpea, m_acc & 0xff); setNZ_8(m_acc & 0xff); m_pc += 2; @@ -897,7 +897,7 @@ void f2mc16_device::execute_run() // MOV A, #imm8 case 0x42: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); m_acc <<= 16; m_acc |= m_tmp8; setNZ_8(m_tmp8); @@ -907,7 +907,7 @@ void f2mc16_device::execute_run() // MOVX A, #imm8 case 0x43: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); m_acc <<= 16; m_acc |= m_tmp8; if (m_acc & 0x80) @@ -921,8 +921,8 @@ void f2mc16_device::execute_run() // MOV dir, #imm8 case 0x44: - m_tmpea = getdirbank(read_8((m_pcb<<16) | (m_pc+1))); - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); + m_tmpea = getdirbank(read_8((m_pcb << 16) | (m_pc + 1))); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); write_8(m_tmpea, m_tmp8); m_pc += 3; m_icount -= 5; @@ -959,7 +959,7 @@ void f2mc16_device::execute_run() // MOVW A, dir case 0x48: - m_tmpea = getdirbank(read_8((m_pcb<<16) | (m_pc+1))); + m_tmpea = getdirbank(read_8((m_pcb << 16) | (m_pc + 1))); m_tmp16 = read_16(m_tmpea); m_acc <<= 16; m_acc |= m_tmp16; @@ -970,7 +970,7 @@ void f2mc16_device::execute_run() // MOVW dir, A case 0x49: - m_tmpea = getdirbank(read_8((m_pcb<<16) | (m_pc+1))); + m_tmpea = getdirbank(read_8((m_pcb << 16) | (m_pc + 1))); write_16(m_tmpea, m_acc & 0xffff); setNZ_16(m_acc & 0xffff); m_pc += 2; @@ -979,7 +979,7 @@ void f2mc16_device::execute_run() // MOVW A, #imm16 case 0x4a: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+1)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 1)); m_acc <<= 16; m_acc |= m_tmp16; setNZ_16(m_tmp16); @@ -989,7 +989,7 @@ void f2mc16_device::execute_run() // MOVL A, #imm32 case 0x4b: - m_acc = read_32((m_pcb<<16) | (m_pc + 1)); + m_acc = read_32((m_pcb << 16) | (m_pc + 1)); setNZ_32(m_acc); m_icount -= 3; m_pc += 5; @@ -1018,7 +1018,7 @@ void f2mc16_device::execute_run() // PUSHW (register bitmap) case 0x4f: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+1)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 1)); for (int i = 0; i < 8; i++) { if (m_tmp8 & (1<= 0; i--) { if (m_tmp8 & (1<>= 1; setNZ_16(m_tmp16); - m_icount --; // 1 additional cycle per iteration + m_icount--; // 1 additional cycle per iteration } m_acc &= 0xffff0000; @@ -2368,11 +2368,11 @@ void f2mc16_device::opcodes_2b6f(u8 operand) if (m_prefix_valid) { m_prefix_valid = false; - write_8((m_prefix<<16) | (m_acc & 0xffff), (m_acc>>16) & 0xff); + write_8((m_prefix << 16) | (m_acc & 0xffff), (m_acc >> 16) & 0xff); } else { - write_8((m_dtb<<16) | (m_acc & 0xffff), (m_acc>>16) & 0xff); + write_8((m_dtb << 16) | (m_acc & 0xffff), (m_acc >> 16) & 0xff); } m_pc += 2; m_icount -= 3; @@ -2383,11 +2383,11 @@ void f2mc16_device::opcodes_2b6f(u8 operand) if (m_prefix_valid) { m_prefix_valid = false; - m_tmp8 = read_8((m_prefix<<16) | (m_acc & 0xffff)); + m_tmp8 = read_8((m_prefix << 16) | (m_acc & 0xffff)); } else { - m_tmp8 = read_8((m_dtb<<16) | (m_acc & 0xffff)); + m_tmp8 = read_8((m_dtb << 16) | (m_acc & 0xffff)); } setNZ_8(m_tmp8); m_acc &= 0xffff0000; @@ -2415,7 +2415,7 @@ void f2mc16_device::opcodes_2b6f(u8 operand) m_ps &= ~F_C; m_ps |= (m_acc & 0x80000000) ? F_C : 0; m_acc <<= 1; - m_icount --; // 1 additional cycle per iteration + m_icount--; // 1 additional cycle per iteration } setNZ_32(m_acc); } @@ -2428,7 +2428,7 @@ void f2mc16_device::opcodes_2b6f(u8 operand) m_icount -= 6; // 6 cycles base if (m_tmp8 == 0) { - m_ps &= ~(F_C|F_T); + m_ps &= ~(F_C | F_T); m_ps |= F_Z; } else @@ -2455,7 +2455,7 @@ void f2mc16_device::opcodes_2b6f(u8 operand) m_acc &= ~0x80000000; } setNZ_32(m_acc); - m_icount --; // 1 additional cycle per iteration + m_icount--; // 1 additional cycle per iteration } } m_pc += 2; @@ -2467,7 +2467,7 @@ void f2mc16_device::opcodes_2b6f(u8 operand) m_icount -= 6; // 6 cycles base if (m_tmp8 == 0) { - m_ps &= ~(F_C|F_T); + m_ps &= ~(F_C | F_T); m_ps |= F_Z; } else @@ -2485,7 +2485,7 @@ void f2mc16_device::opcodes_2b6f(u8 operand) m_acc >>= 1; setNZ_32(m_acc); - m_icount --; // 1 additional cycle per iteration + m_icount--; // 1 additional cycle per iteration } } m_pc += 2; @@ -2493,8 +2493,8 @@ void f2mc16_device::opcodes_2b6f(u8 operand) // MOVX A, @RLx + disp8 case 0x20: case 0x22: case 0x24: case 0x26: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmpea = read_rlX((operand>>1) & 0x3) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmpea = read_rlX((operand >> 1) & 0x3) + s8(m_tmp8); m_acc <<= 16; m_acc |= read_8(m_tmpea); if (m_acc & 0x80) @@ -2539,7 +2539,7 @@ void f2mc16_device::opcodes_2b6f(u8 operand) { m_acc <<= 1; m_tmp8++; - m_icount --; // 1 additional cycle per iteration + m_icount--; // 1 additional cycle per iteration } m_ps &= ~(F_Z); m_icount -= 6; @@ -2584,7 +2584,7 @@ void f2mc16_device::opcodes_2b6f(u8 operand) m_tmp8aux >>= 1; setNZ_8(m_tmp8aux); - m_icount --; // 1 additional cycle per iteration + m_icount--; // 1 additional cycle per iteration } m_acc &= 0xffffff00; @@ -2595,8 +2595,8 @@ void f2mc16_device::opcodes_2b6f(u8 operand) // MOV @RLx + disp8, A case 0x30: case 0x32: case 0x34: case 0x36: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmpea = read_rlX((operand>>1) & 0x3) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmpea = read_rlX((operand >> 1) & 0x3) + s8(m_tmp8); write_8(m_tmpea, m_acc & 0xff); setNZ_8(m_acc & 0xff); m_pc += 3; @@ -2605,8 +2605,8 @@ void f2mc16_device::opcodes_2b6f(u8 operand) // MOVW @RLx + disp8, A case 0x38: case 0x3a: case 0x3c: case 0x3e: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmpea = read_rlX((operand>>1) & 0x3) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmpea = read_rlX((operand >> 1) & 0x3) + s8(m_tmp8); write_16(m_tmpea, m_acc & 0xffff); setNZ_16(m_acc & 0xffff); m_pc += 3; @@ -2615,8 +2615,8 @@ void f2mc16_device::opcodes_2b6f(u8 operand) // MOV A, @RLx + disp8 case 0x40: case 0x42: case 0x44: case 0x46: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmpea = read_rlX((operand>>1) & 0x3) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmpea = read_rlX((operand >> 1) & 0x3) + s8(m_tmp8); m_acc <<= 16; m_acc |= read_8(m_tmpea); setNZ_8(m_acc & 0xff); @@ -2626,8 +2626,8 @@ void f2mc16_device::opcodes_2b6f(u8 operand) // MOVW A, @RLx + disp8 case 0x48: case 0x4a: case 0x4c: case 0x4e: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmpea = read_rlX((operand>>1) & 0x3) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmpea = read_rlX((operand >> 1) & 0x3) + s8(m_tmp8); m_acc <<= 16; m_acc |= read_16(m_tmpea); setNZ_16(m_acc & 0xffff); @@ -2636,7 +2636,7 @@ void f2mc16_device::opcodes_2b6f(u8 operand) break; default: - fatalerror("Unknown F2MC 2B6F opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC 2B6F opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -2647,15 +2647,15 @@ void f2mc16_device::opcodes_ea70(u8 operand) { // ADDL A, RLx case 0x00: case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07: - m_acc = doADD_32(m_acc, read_rlX((operand>>1) & 3)); + m_acc = doADD_32(m_acc, read_rlX((operand >> 1) & 3)); m_pc += 2; m_icount -= 6; break; // ADDL A, @RWx + disp8 case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_32(m_tmpea); m_acc = doADD_32(m_acc, m_tmp32); @@ -2665,8 +2665,8 @@ void f2mc16_device::opcodes_ea70(u8 operand) // ADDL A, @RWx + disp16 case 0x18: case 0x19: case 0x1a: case 0x1b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp32 = read_32(m_tmpea); m_acc = doADD_32(m_acc, m_tmp32); @@ -2676,7 +2676,7 @@ void f2mc16_device::opcodes_ea70(u8 operand) // ADDL A, addr16 case 0x1f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; @@ -2693,15 +2693,15 @@ void f2mc16_device::opcodes_ea70(u8 operand) // SUBL A, RLx case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: - m_acc = doSUB_32(m_acc, read_rlX((operand>>1) & 3)); + m_acc = doSUB_32(m_acc, read_rlX((operand >> 1) & 3)); m_pc += 2; m_icount -= 6; break; // SUBL A, @RWx + disp8 case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_32(m_tmpea); m_acc = doSUB_32(m_acc, m_tmp32); @@ -2711,8 +2711,8 @@ void f2mc16_device::opcodes_ea70(u8 operand) // SUBL A, @RWx + disp16 case 0x38: case 0x39: case 0x3a: case 0x3b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp32 = read_32(m_tmpea); m_acc = doSUB_32(m_acc, m_tmp32); @@ -2722,7 +2722,7 @@ void f2mc16_device::opcodes_ea70(u8 operand) // SUBL A, addr16 case 0x3f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; @@ -2739,8 +2739,8 @@ void f2mc16_device::opcodes_ea70(u8 operand) // CWBNE RWx, #imm16, disp8 case 0x40: case 0x41: case 0x42: case 0x43: case 0x44: case 0x45: case 0x46: case 0x47: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp8 = read_8((m_pcb<<16) | (m_pc+4)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 4)); doCMP_16(read_rwX(operand & 7), m_tmp16); if (m_ps & F_Z) { @@ -2749,22 +2749,22 @@ void f2mc16_device::opcodes_ea70(u8 operand) } else { - m_pc = m_pc + 5 + (s8)m_tmp8; + m_pc = m_pc + 5 + s8(m_tmp8); m_icount -= 8; } break; // CMPL A, RLx case 0x60: case 0x61: case 0x62: case 0x63: case 0x64: case 0x65: case 0x66: case 0x67: - doCMP_32(m_acc, read_rlX((operand>>1) & 3)); + doCMP_32(m_acc, read_rlX((operand >> 1) & 3)); m_pc += 2; m_icount -= 6; break; // CMPL A, @RWx + disp8 case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_32(m_tmpea); doCMP_32(m_acc, m_tmp32); @@ -2774,8 +2774,8 @@ void f2mc16_device::opcodes_ea70(u8 operand) // CMPL A, @RWx + disp16 case 0x78: case 0x79: case 0x7a: case 0x7b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp32 = read_32(m_tmpea); doCMP_32(m_acc, m_tmp32); @@ -2785,7 +2785,7 @@ void f2mc16_device::opcodes_ea70(u8 operand) // CMPL A, addr16 case 0x7f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; @@ -2802,7 +2802,7 @@ void f2mc16_device::opcodes_ea70(u8 operand) // ANDL A, RLx case 0x80: case 0x81: case 0x82: case 0x83: case 0x84: case 0x85: case 0x86: case 0x87: - m_tmp32 = read_rlX((operand>>1) & 3); + m_tmp32 = read_rlX((operand >> 1) & 3); m_acc &= m_tmp32; setNZ_32(m_acc); m_ps &= ~F_V; @@ -2812,8 +2812,8 @@ void f2mc16_device::opcodes_ea70(u8 operand) // ANDL A, @RWx + disp8 case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_32(m_tmpea); m_acc &= m_tmp32; @@ -2825,7 +2825,7 @@ void f2mc16_device::opcodes_ea70(u8 operand) // ORL A, RLx case 0xa0: case 0xa1: case 0xa2: case 0xa3: case 0xa4: case 0xa5: case 0xa6: case 0xa7: - m_tmp32 = read_rlX((operand>>1) & 3); + m_tmp32 = read_rlX((operand >> 1) & 3); m_acc |= m_tmp32; setNZ_32(m_acc); m_ps &= ~F_V; @@ -2835,8 +2835,8 @@ void f2mc16_device::opcodes_ea70(u8 operand) // ORL A, @RWx + disp8 case 0xb0: case 0xb1: case 0xb2: case 0xb3: case 0xb4: case 0xb5: case 0xb6: case 0xb7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_32(m_tmpea); m_acc |= m_tmp32; @@ -2848,7 +2848,7 @@ void f2mc16_device::opcodes_ea70(u8 operand) // XORL A, RLx case 0xc0: case 0xc1: case 0xc2: case 0xc3: case 0xc4: case 0xc5: case 0xc6: case 0xc7: - m_tmp32 = read_rlX((operand>>1) & 3); + m_tmp32 = read_rlX((operand >> 1) & 3); m_acc ^= m_tmp32; setNZ_32(m_acc); m_ps &= ~F_V; @@ -2858,8 +2858,8 @@ void f2mc16_device::opcodes_ea70(u8 operand) // XORL A, @RWx + disp8 case 0xd0: case 0xd1: case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6: case 0xd7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_32(m_tmpea); m_acc ^= m_tmp32; @@ -2871,8 +2871,8 @@ void f2mc16_device::opcodes_ea70(u8 operand) // CBNE Rx, #imm8, disp8 case 0xe0: case 0xe1: case 0xe2: case 0xe3: case 0xe4: case 0xe5: case 0xe6: case 0xe7: - m_tmp8aux = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp8 = read_8((m_pcb<<16) | (m_pc+3)); + m_tmp8aux = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 3)); doCMP_8(read_rX(operand & 7), m_tmp8aux); if (m_ps & F_Z) { @@ -2881,13 +2881,13 @@ void f2mc16_device::opcodes_ea70(u8 operand) } else { - m_pc = m_pc + 4 + (s8)m_tmp8; + m_pc = m_pc + 4 + s8(m_tmp8); m_icount -= 13; } break; default: - fatalerror("Unknown F2MC EA70 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA70 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -2899,9 +2899,9 @@ void f2mc16_device::opcodes_ea71(u8 operand) // CALLP @RWx + disp8 case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: push_16(m_pcb); - push_16(m_pc+4); + push_16(m_pc + 4); m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_32(m_tmpea); m_pc = m_tmp32 & 0xffff; @@ -2911,16 +2911,16 @@ void f2mc16_device::opcodes_ea71(u8 operand) // INCL RLx case 0x40: case 0x41: case 0x42: case 0x43: case 0x44: case 0x45: case 0x46: case 0x47: - m_tmp32 = doINC_32(read_rlX((operand>>1) & 3)); - write_rlX((operand>>1) & 3, m_tmp32); + m_tmp32 = doINC_32(read_rlX((operand >> 1) & 3)); + write_rlX((operand >> 1) & 3, m_tmp32); m_pc += 2; m_icount -= 7; break; // INCL @RWx + disp8 case 0x50: case 0x51: case 0x52: case 0x53: case 0x54: case 0x55: case 0x56: case 0x57: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = doINC_32(read_32(m_tmpea)); write_32(m_tmpea, m_tmp32); @@ -2930,8 +2930,8 @@ void f2mc16_device::opcodes_ea71(u8 operand) // INCL @RWx + disp16 case 0x58: case 0x59: case 0x5a: case 0x5b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp32 = doINC_32(read_32(m_tmpea)); write_32(m_tmpea, m_tmp32); @@ -2951,14 +2951,14 @@ void f2mc16_device::opcodes_ea71(u8 operand) // INCL addr16 case 0x5f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmpea |= (m_prefix<<16); + m_tmpea |= (m_prefix << 16); } else - m_tmpea |= (m_dtb<<16); + m_tmpea |= (m_dtb << 16); m_tmp32 = doINC_32(read_32(m_tmpea)); write_32(m_tmpea, m_tmp32); m_pc += 4; @@ -2967,16 +2967,16 @@ void f2mc16_device::opcodes_ea71(u8 operand) // DECL RLx case 0x60: case 0x61: case 0x62: case 0x63: case 0x64: case 0x65: case 0x66: case 0x67: - m_tmp32 = doDEC_32(read_rlX((operand>>1) & 3)); - write_rlX((operand>>1) & 3, m_tmp32); + m_tmp32 = doDEC_32(read_rlX((operand >> 1) & 3)); + write_rlX((operand >> 1) & 3, m_tmp32); m_pc += 2; m_icount -= 7; break; // DECL @RWx + disp8 case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = doDEC_32(read_32(m_tmpea)); write_32(m_tmpea, m_tmp32); @@ -2986,8 +2986,8 @@ void f2mc16_device::opcodes_ea71(u8 operand) // DECL @RWx + disp16 case 0x78: case 0x79: case 0x7a: case 0x7b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp32 = doDEC_32(read_32(m_tmpea)); write_32(m_tmpea, m_tmp32); @@ -3007,14 +3007,14 @@ void f2mc16_device::opcodes_ea71(u8 operand) // DECL addr16 case 0x7f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmpea |= (m_prefix<<16); + m_tmpea |= (m_prefix << 16); } else - m_tmpea |= (m_dtb<<16); + m_tmpea |= (m_dtb << 16); m_tmp32 = doDEC_32(read_32(m_tmpea)); write_32(m_tmpea, m_tmp32); m_pc += 4; @@ -3023,7 +3023,7 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVL A, RLx case 0x80: case 0x81: case 0x82: case 0x83: case 0x84: case 0x85: case 0x86: case 0x87: - m_acc = read_rlX((operand>>1) & 3); + m_acc = read_rlX((operand >> 1) & 3); setNZ_32(m_acc); m_pc += 2; m_icount -= 4; @@ -3031,8 +3031,8 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVL A, @RWx + disp8 case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_acc = read_32(m_tmpea); setNZ_32(m_acc); @@ -3042,8 +3042,8 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVL A, @RWx + disp16 case 0x98: case 0x99: case 0x9a: case 0x9b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_acc = read_32(m_tmpea); setNZ_32(m_acc); @@ -3063,7 +3063,7 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVL A, addr16 case 0x9f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; @@ -3089,8 +3089,8 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVL @RWx + disp8, A case 0xb0: case 0xb1: case 0xb2: case 0xb3: case 0xb4: case 0xb5: case 0xb6: case 0xb7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); write_32(m_tmpea, m_acc); setNZ_32(m_acc); @@ -3100,8 +3100,8 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVL @RWx + disp16, A case 0xb8: case 0xb9: case 0xba: case 0xbb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); write_32(m_tmpea, m_acc); setNZ_32(m_acc); @@ -3121,15 +3121,15 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVL addr16, A case 0xbf: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - write_32((m_prefix<<16) | m_tmp16, m_acc); + write_32((m_prefix << 16) | m_tmp16, m_acc); } else { - write_32((m_dtb<<16) | m_tmp16, m_acc); + write_32((m_dtb << 16) | m_tmp16, m_acc); } setNZ_32(m_acc); m_pc += 4; @@ -3138,7 +3138,7 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOV @RWx, #imm8 case 0xc8: case 0xc9: case 0xca: case 0xcb: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); m_tmp16 = read_rwX(operand & 3); m_tmpea = getRWbank(operand & 3, m_tmp16); write_8(m_tmpea, m_tmp8); @@ -3149,7 +3149,7 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOV @RWx+, #imm8 case 0xcc: case 0xcd: case 0xce: case 0xcf: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); m_tmp16 = read_rwX(operand & 3); write_rwX(operand & 3, m_tmp16 + 1); m_tmpea = getRWbank(operand & 3, m_tmp16); @@ -3161,9 +3161,9 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOV @RWx + disp8, #imm8 case 0xd0: case 0xd1: case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6: case 0xd7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_8((m_pcb<<16) | (m_pc+3)); - m_tmpea = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_8((m_pcb << 16) | (m_pc + 3)); + m_tmpea = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmpea); write_8(m_tmpea, m_tmp16 & 0xff); setNZ_8(m_tmp16 & 0xff); @@ -3173,10 +3173,10 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOV @RWx + disp16, #imm8 case 0xd8: case 0xd9: case 0xda: case 0xdb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); - m_tmp8 = read_8((m_pcb<<16) | (m_pc+4)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 4)); write_8(m_tmpea, m_tmp8); setNZ_8(m_tmp8); m_pc += 5; @@ -3187,7 +3187,7 @@ void f2mc16_device::opcodes_ea71(u8 operand) case 0xdc: case 0xdd: m_tmp16 = read_rwX(operand & 1) + read_rwX(7); m_tmpea = getRWbank(operand & 1, m_tmp16); - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); write_8(m_tmpea, m_tmp8); setNZ_8(m_tmp8); m_pc += 3; @@ -3196,16 +3196,16 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOV addr16, #imm8 case 0xdf: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp8 = read_8((m_pcb<<16) | (m_pc+4)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 4)); if (m_prefix_valid) { m_prefix_valid = false; - write_8((m_prefix<<16) | m_tmp16, m_tmp8); + write_8((m_prefix << 16) | m_tmp16, m_tmp8); } else { - write_8((m_dtb<<16) | m_tmp16, m_tmp8); + write_8((m_dtb << 16) | m_tmp16, m_tmp8); } setNZ_8(m_tmp8); m_pc += 5; @@ -3214,8 +3214,8 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVEA A, @RWx + disp8 case 0xf0: case 0xf1: case 0xf2: case 0xf3: case 0xf4: case 0xf5: case 0xf6: case 0xf7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_acc <<= 16; m_acc |= m_tmp16; m_pc += 3; @@ -3224,8 +3224,8 @@ void f2mc16_device::opcodes_ea71(u8 operand) // MOVEA A, @RWx + disp16 case 0xf8: case 0xf9: case 0xfa: case 0xfb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_acc <<= 16; m_acc |= m_tmp16; m_pc += 4; @@ -3242,7 +3242,7 @@ void f2mc16_device::opcodes_ea71(u8 operand) break; default: - fatalerror("Unknown F2MC EA71 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA71 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -3305,8 +3305,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // INC @RWx + disp8 case 0x50: case 0x51: case 0x52: case 0x53: case 0x54: case 0x55: case 0x56: case 0x57: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = doINC_8(read_8(m_tmpea)); write_8(m_tmpea, m_tmp8); @@ -3316,8 +3316,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // INC @RWx + disp16 case 0x58: case 0x59: case 0x5a: case 0x5b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = doINC_8(read_8(m_tmpea)); write_8(m_tmpea, m_tmp8); @@ -3337,7 +3337,7 @@ void f2mc16_device::opcodes_ea72(u8 operand) // INC addr16 case 0x5f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; @@ -3373,8 +3373,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // DEC @RWx + disp8 case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = doDEC_8(read_8(m_tmpea)); write_8(m_tmpea, m_tmp8); @@ -3384,8 +3384,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // DEC @RWx + disp16 case 0x78: case 0x79: case 0x7a: case 0x7b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = doDEC_8(read_8(m_tmpea)); write_8(m_tmpea, m_tmp8); @@ -3405,7 +3405,7 @@ void f2mc16_device::opcodes_ea72(u8 operand) // DEC addr16 case 0x7f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; @@ -3467,8 +3467,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // MOV A, @RWx + disp8 case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_acc <<= 16; m_acc |= read_8(m_tmpea); @@ -3479,8 +3479,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // MOV A, @RWx + disp16 case 0x98: case 0x99: case 0x9a: case 0x9b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_acc <<= 16; m_acc |= read_8(m_tmpea); @@ -3502,8 +3502,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // MOV @RWx + disp8, A case 0xb0: case 0xb1: case 0xb2: case 0xb3: case 0xb4: case 0xb5: case 0xb6: case 0xb7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); write_8(m_tmpea, m_acc & 0xff); setNZ_8(m_acc & 0xff); @@ -3513,8 +3513,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // MOV @RWx + disp16, A case 0xb8: case 0xb9: case 0xba: case 0xbb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); write_8(m_tmpea, m_acc & 0xff); setNZ_8(m_acc & 0xff); @@ -3549,8 +3549,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // MOVX A, @RWx + disp8 case 0xd0: case 0xd1: case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6: case 0xd7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_acc <<= 16; m_acc |= read_8(m_tmpea); @@ -3565,8 +3565,8 @@ void f2mc16_device::opcodes_ea72(u8 operand) // MOVX A, @RWx + disp16 case 0xd8: case 0xd9: case 0xda: case 0xdb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_acc <<= 16; m_acc |= read_8(m_tmpea); @@ -3595,7 +3595,7 @@ void f2mc16_device::opcodes_ea72(u8 operand) break; default: - fatalerror("Unknown F2MC EA72 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA72 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -3624,8 +3624,8 @@ void f2mc16_device::opcodes_ea73(u8 operand) // INCW @RWx + disp8 case 0x50: case 0x51: case 0x52: case 0x53: case 0x54: case 0x55: case 0x56: case 0x57: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = doINC_16(read_16(m_tmpea)); write_16(m_tmpea, m_tmp16); @@ -3635,8 +3635,8 @@ void f2mc16_device::opcodes_ea73(u8 operand) // INCW @RWx + disp16 case 0x58: case 0x59: case 0x5a: case 0x5b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp16 = doINC_16(read_16(m_tmpea)); write_16(m_tmpea, m_tmp16); @@ -3646,7 +3646,7 @@ void f2mc16_device::opcodes_ea73(u8 operand) // INCW addr16 case 0x5f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; @@ -3682,8 +3682,8 @@ void f2mc16_device::opcodes_ea73(u8 operand) // DECW @RWx + disp8 case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = doDEC_16(read_16(m_tmpea)); write_16(m_tmpea, m_tmp16); @@ -3693,8 +3693,8 @@ void f2mc16_device::opcodes_ea73(u8 operand) // DECW @RWx + disp16 case 0x78: case 0x79: case 0x7a: case 0x7b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp16 = doDEC_16(read_16(m_tmpea)); write_16(m_tmpea, m_tmp16); @@ -3704,7 +3704,7 @@ void f2mc16_device::opcodes_ea73(u8 operand) // DECW addr16 case 0x7f: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; @@ -3745,8 +3745,8 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW A, @RWx + disp8 case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 0x7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 0x7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 0x7, m_tmp16); m_acc <<= 16; m_acc |= read_16(m_tmpea); @@ -3757,8 +3757,8 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW A, @RWx + disp16 case 0x98: case 0x99: case 0x9a: case 0x9b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_acc <<= 16; m_acc |= read_16(m_tmpea); @@ -3790,8 +3790,8 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW @RWx + disp8, A case 0xb0: case 0xb1: case 0xb2: case 0xb3: case 0xb4: case 0xb5: case 0xb6: case 0xb7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); write_16(m_tmpea, m_acc & 0xffff); setNZ_16(m_acc & 0xffff); @@ -3801,8 +3801,8 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW @RWx + disp16, A case 0xb8: case 0xb9: case 0xba: case 0xbb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); write_16(m_tmpea, m_acc & 0xffff); setNZ_16(m_acc & 0xffff); @@ -3822,7 +3822,7 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW @RWx, #imm16 case 0xc8: case 0xc9: case 0xca: case 0xcb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); m_tmpea = read_rwX(operand & 3); m_tmpea = getRWbank(operand & 3, m_tmpea); write_16(m_tmpea, m_tmp16); @@ -3832,7 +3832,7 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW @RWx+, #imm16 case 0xcc: case 0xcd: case 0xce: case 0xcf: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); m_tmpea = read_rwX(operand & 3); write_rwX(operand & 3, (m_tmpea + 2) & 0xffff); m_tmpea = getRWbank(operand & 3, m_tmpea); @@ -3843,9 +3843,9 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW @RWx + disp8, #imm16 case 0xd0: case 0xd1: case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6: case 0xd7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_16((m_pcb<<16) | (m_pc+3)); - m_tmpea = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 3)); + m_tmpea = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmpea); write_16(m_tmpea, m_tmp16); m_pc += 5; @@ -3854,9 +3854,9 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW @RWx + disp16, #imm16 case 0xd8: case 0xd9: case 0xda: case 0xdb: - m_tmp16aux = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_16((m_pcb<<16) | (m_pc+4)); - m_tmpea = read_rwX(operand & 3) + (s16)m_tmp16aux; + m_tmp16aux = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 4)); + m_tmpea = read_rwX(operand & 3) + s16(m_tmp16aux); m_tmpea = getRWbank(operand & 3, m_tmpea); write_16(m_tmpea, m_tmp16); m_pc += 6; @@ -3865,12 +3865,12 @@ void f2mc16_device::opcodes_ea73(u8 operand) // MOVW addr16, #imm16 case 0xdf: - m_tmpea = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_16((m_pcb<<16) | (m_pc+4)); + m_tmpea = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 4)); if (m_prefix_valid) { m_prefix_valid = false; - write_16((m_prefix<<16) | m_tmpea, m_tmp16); + write_16((m_prefix << 16) | m_tmpea, m_tmp16); } else { @@ -3916,7 +3916,7 @@ void f2mc16_device::opcodes_ea73(u8 operand) break; default: - fatalerror("Unknown F2MC EA73 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA73 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -3937,8 +3937,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) // ADD A, @RWx + disp8 case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 = doADD_8(m_acc & 0xff, m_tmp8); @@ -3960,8 +3960,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) // SUB A, @RWx + disp8 case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 = doSUB_8(m_acc & 0xff, m_tmp8); @@ -3983,8 +3983,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) // ADDC A, @RWx + disp8 case 0x50: case 0x51: case 0x52: case 0x53: case 0x54: case 0x55: case 0x56: case 0x57: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 = doADDC_8(m_acc & 0xff, m_tmp8); @@ -4022,8 +4022,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) // CMP A, @RWx + disp8 case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); doCMP_8(m_acc & 0xff, m_tmp8); @@ -4033,8 +4033,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) // CMP A, @RWx + disp16 case 0x78: case 0x79: case 0x7a: case 0x7b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = read_8(m_tmpea); doCMP_8(m_acc & 0xff, m_tmp8); @@ -4054,11 +4054,11 @@ void f2mc16_device::opcodes_ea74(u8 operand) // CMP A, addr16 case 0x7f: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmp8 = read_8((m_prefix<<16) | m_tmp16); + m_tmp8 = read_8((m_prefix << 16) | m_tmp16); } else { @@ -4082,8 +4082,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) // AND A, @RWx + disp8 case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_8(m_tmpea); m_tmp32 |= 0xffffff00; @@ -4116,8 +4116,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) // OR A, @RWx + disp8 case 0xb0: case 0xb1: case 0xb2: case 0xb3: case 0xb4: case 0xb5: case 0xb6: case 0xb7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); m_acc |= m_tmp8; @@ -4129,11 +4129,11 @@ void f2mc16_device::opcodes_ea74(u8 operand) // OR A, addr16 case 0xbf: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmp8 = read_8((m_prefix<<16) | m_tmp16); + m_tmp8 = read_8((m_prefix << 16) | m_tmp16); } else { @@ -4168,8 +4168,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) // XOR A, @RWx + disp8 case 0xd0: case 0xd1: case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6: case 0xd7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); m_acc ^= m_tmp8; @@ -4181,11 +4181,11 @@ void f2mc16_device::opcodes_ea74(u8 operand) // XOR A, addr16 case 0xdf: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmp8 = read_8((m_prefix<<16) | m_tmp16); + m_tmp8 = read_8((m_prefix << 16) | m_tmp16); } else { @@ -4204,8 +4204,8 @@ void f2mc16_device::opcodes_ea74(u8 operand) write_rX(operand & 7, m_tmp8); if (m_tmp8 != 0) { - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_pc = (m_pc + 3) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_pc = (m_pc + 3) + s8(m_tmp8); m_icount -= 7; } else @@ -4216,7 +4216,7 @@ void f2mc16_device::opcodes_ea74(u8 operand) break; default: - fatalerror("Unknown F2MC EA74 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA74 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -4245,8 +4245,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // ADD @RWx + disp8, A case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = doADD_8(read_8(m_tmpea), m_acc & 0xff); write_8(m_tmpea, m_tmp8); @@ -4256,8 +4256,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // ADD @RWx + disp16, A case 0x18: case 0x19: case 0x1a: case 0x1b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = doADD_8(read_8(m_tmpea), m_acc & 0xff); write_8(m_tmpea, m_tmp8); @@ -4275,8 +4275,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // SUB @RWx + disp8, A case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = doSUB_8(read_8(m_tmpea), m_acc & 0xff); write_8(m_tmpea, m_tmp8); @@ -4286,8 +4286,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // SUB @RWx + disp16, A case 0x38: case 0x39: case 0x3a: case 0x3b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = doSUB_8(read_8(m_tmpea), m_acc & 0xff); write_8(m_tmpea, m_tmp8); @@ -4305,8 +4305,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // SUBC @RWx + disp8, A case 0x50: case 0x51: case 0x52: case 0x53: case 0x54: case 0x55: case 0x56: case 0x57: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = doSUBC_8(read_8(m_tmpea), m_acc & 0xff); write_8(m_tmpea, m_tmp8); @@ -4316,8 +4316,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // SUBC @RWx + disp16, A case 0x58: case 0x59: case 0x5a: case 0x5b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = doSUBC_8(read_8(m_tmpea), m_acc & 0xff); write_8(m_tmpea, m_tmp8); @@ -4338,8 +4338,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // AND @RWx + disp8, A case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 &= m_acc & 0xff; @@ -4352,8 +4352,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // AND @RWx + disp16, A case 0x98: case 0x99: case 0x9a: case 0x9b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 &= m_acc & 0xff; @@ -4377,8 +4377,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // OR @RWx + disp8, A case 0xb0: case 0xb1: case 0xb2: case 0xb3: case 0xb4: case 0xb5: case 0xb6: case 0xb7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 |= m_acc & 0xff; @@ -4391,8 +4391,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // OR @RWx + disp16, A case 0xb8: case 0xb9: case 0xba: case 0xbb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 |= m_acc & 0xff; @@ -4416,8 +4416,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // XOR @RWx + disp8, A case 0xd0: case 0xd1: case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6: case 0xd7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 ^= m_acc & 0xff; @@ -4430,8 +4430,8 @@ void f2mc16_device::opcodes_ea75(u8 operand) // XOR @RWx + disp16, A case 0xd8: case 0xd9: case 0xda: case 0xdb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp8 = read_8(m_tmpea); m_tmp8 ^= m_acc & 0xff; @@ -4443,7 +4443,7 @@ void f2mc16_device::opcodes_ea75(u8 operand) break; default: - fatalerror("Unknown F2MC EA75 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA75 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -4475,8 +4475,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // ADDW A, @RWx + disp8 case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = read_16(m_tmpea); m_tmp16aux = doADD_16(m_acc & 0xffff, m_tmp16); @@ -4488,8 +4488,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // ADDW A, @RWx + disp16 case 0x18: case 0x19: case 0x1a: case 0x1b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp16 = read_16(m_tmpea); m_tmp16aux = doADD_16(m_acc & 0xffff, m_tmp16); @@ -4513,11 +4513,11 @@ void f2mc16_device::opcodes_ea76(u8 operand) // ADDW A, addr16 case 0x1f: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmp16aux = read_16((m_prefix<<16) | m_tmp16); + m_tmp16aux = read_16((m_prefix << 16) | m_tmp16); } else { @@ -4553,8 +4553,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // SUBW A, @RWx + disp8 case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = read_16(m_tmpea); m_tmp16aux = doSUB_16(m_acc & 0xffff, m_tmp16); @@ -4566,8 +4566,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // SUBW A, @RWx + disp16 case 0x38: case 0x39: case 0x3a: case 0x3b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp16 = read_16(m_tmpea); m_tmp16aux = doSUB_16(m_acc & 0xffff, m_tmp16); @@ -4591,11 +4591,11 @@ void f2mc16_device::opcodes_ea76(u8 operand) // SUBW A, addr16 case 0x3f: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmp16aux = read_16((m_prefix<<16) | m_tmp16); + m_tmp16aux = read_16((m_prefix << 16) | m_tmp16); } else { @@ -4626,8 +4626,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // CMPW A, @RWx + disp8 case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = read_16(m_tmpea); doCMP_16(m_acc & 0xffff, m_tmp16); @@ -4637,8 +4637,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // CMPW A, @RWx + disp16 case 0x78: case 0x79: case 0x7a: case 0x7b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp16 = read_16(m_tmpea); doCMP_16(m_acc & 0xffff, m_tmp16); @@ -4658,11 +4658,11 @@ void f2mc16_device::opcodes_ea76(u8 operand) // CMPW A, addr16 case 0x7f: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmp16aux = read_16((m_prefix<<16) | m_tmp16); + m_tmp16aux = read_16((m_prefix << 16) | m_tmp16); } else { @@ -4713,8 +4713,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // ANDW A, @RWx + disp8 case 0x90: case 0x91: case 0x92: case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp32 = read_16(m_tmpea); m_tmp32 |= 0xffff0000; @@ -4727,8 +4727,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // ANDW A, @RWx + disp16 case 0x98: case 0x99: case 0x9a: case 0x9b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp32 = read_16(m_tmpea); m_tmp32 |= 0xffff0000; @@ -4789,8 +4789,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // ORW A, @RWx + disp8 case 0xb0: case 0xb1: case 0xb2: case 0xb3: case 0xb4: case 0xb5: case 0xb6: case 0xb7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = read_16(m_tmpea); m_acc |= m_tmp16; @@ -4802,8 +4802,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // ORW A, @RWx + disp16 case 0xb8: case 0xb9: case 0xba: case 0xbb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp16 = read_16(m_tmpea); m_acc |= m_tmp16; @@ -4862,8 +4862,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // XORW A, @RWx + disp8 case 0xd0: case 0xd1: case 0xd2: case 0xd3: case 0xd4: case 0xd5: case 0xd6: case 0xd7: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = read_16(m_tmpea); m_acc ^= m_tmp16; @@ -4875,8 +4875,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) // XORW A, @RWx + disp16 case 0xd8: case 0xd9: case 0xda: case 0xdb: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp16 = read_16(m_tmpea); m_acc ^= m_tmp16; @@ -4904,8 +4904,8 @@ void f2mc16_device::opcodes_ea76(u8 operand) write_rwX(operand & 7, m_tmp16); if (m_tmp16 != 0) { - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_pc = (m_pc + 3) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_pc = (m_pc + 3) + s8(m_tmp8); m_icount -= 7; } else @@ -4916,7 +4916,7 @@ void f2mc16_device::opcodes_ea76(u8 operand) break; default: - fatalerror("Unknown F2MC EA76 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA76 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -5083,7 +5083,7 @@ void f2mc16_device::opcodes_ea77(u8 operand) break; default: - fatalerror("Unknown F2MC EA77 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA77 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -5112,8 +5112,8 @@ void f2mc16_device::opcodes_ea78(u8 operand) // MULU A, @RWx + disp8 case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = read_8(m_tmpea); if (m_tmp16 == 0) @@ -5149,8 +5149,8 @@ void f2mc16_device::opcodes_ea78(u8 operand) // MULUW A, @RWx + disp8 case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); m_tmpea = getRWbank(operand & 7, m_tmp16); m_tmp16 = read_16(m_tmpea); if (m_tmp16 == 0) @@ -5168,8 +5168,8 @@ void f2mc16_device::opcodes_ea78(u8 operand) // MULUW A, @RWx + disp16 case 0x38: case 0x39: case 0x3a: case 0x3b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); m_tmpea = getRWbank(operand & 3, m_tmp16); m_tmp16 = read_16(m_tmpea); if (m_tmp16 == 0) @@ -5235,7 +5235,7 @@ void f2mc16_device::opcodes_ea78(u8 operand) break; default: - fatalerror("Unknown F2MC EA78 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA78 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -5246,8 +5246,8 @@ void f2mc16_device::opcodes_rwiea79(u8 operand) { // MOVEA RWx, @RWy + disp8 case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - m_tmp8 = read_8((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 7) + (s8)m_tmp8; + m_tmp8 = read_8((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 7) + s8(m_tmp8); write_rwX((operand>>5) & 0x7, m_tmp16); m_pc += 3; m_icount -= 3; @@ -5255,8 +5255,8 @@ void f2mc16_device::opcodes_rwiea79(u8 operand) // MOVEA RWx, @RWy + disp16 case 0x18: case 0x19: case 0x1a: case 0x1b: - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); - m_tmp16 = read_rwX(operand & 3) + (s16)m_tmp16; + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); + m_tmp16 = read_rwX(operand & 3) + s16(m_tmp16); write_rwX((operand>>5) & 0x7, m_tmp16); m_pc += 4; m_icount -= 3; @@ -5271,7 +5271,7 @@ void f2mc16_device::opcodes_rwiea79(u8 operand) break; default: - fatalerror("Unknown F2MC EA79 opcode %02x (PC=%x)\n", operand, (m_pcb<<16) | m_pc); + fatalerror("Unknown F2MC EA79 opcode %02x (PC=%x)\n", operand, (m_pcb << 16) | m_pc); break; } } @@ -5281,11 +5281,11 @@ void f2mc16_device::opcodes_riea7a(u8 operand) if ((operand & 0x1f) == 0x1f) { // MOV Rx, addr16 - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmp8 = read_8((m_prefix<<16) | m_tmp16); + m_tmp8 = read_8((m_prefix << 16) | m_tmp16); } else { @@ -5303,10 +5303,10 @@ void f2mc16_device::opcodes_riea7a(u8 operand) else if (operand & 0x10) { // MOV Rx, @RWy + disp8 - m_tmp16 = read_rwX(operand & 7) + (s8)read_8((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_rwX(operand & 7) + s8(read_8((m_pcb << 16) | (m_pc + 2))); m_tmpea = getRWbank(operand & 0x7, m_tmp16); m_tmp8 = read_8(m_tmpea); - write_rX((operand>>5) & 0x7, m_tmp8); + write_rX((operand >> 5) & 0x7, m_tmp8); setNZ_8(m_tmp8); m_pc += 3; m_icount -= 6; @@ -5315,7 +5315,7 @@ void f2mc16_device::opcodes_riea7a(u8 operand) { // MOV Rx, Ry m_tmp8 = read_rX(operand & 0x7); - write_rX((operand>>5) & 0x7, m_tmp8); + write_rX((operand >> 5) & 0x7, m_tmp8); setNZ_8(m_tmp8); m_pc += 2; m_icount -= 3; @@ -5327,17 +5327,17 @@ void f2mc16_device::opcodes_rwiea7b(u8 operand) if ((operand & 0x1f) == 0x1f) { // MOVW RWx, addr16 - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - m_tmp16 = read_16((m_prefix<<16) | m_tmp16); + m_tmp16 = read_16((m_prefix << 16) | m_tmp16); } else { - m_tmp16 = read_16((m_dtb<<16) | m_tmp16); + m_tmp16 = read_16((m_dtb << 16) | m_tmp16); } - write_rwX((operand>>5) & 0x7, m_tmp16); + write_rwX((operand >> 5) & 0x7, m_tmp16); setNZ_16(m_tmp16); m_pc += 4; m_icount -= 6; @@ -5349,10 +5349,10 @@ void f2mc16_device::opcodes_rwiea7b(u8 operand) else if (operand & 0x10) { // MOVW RWx, @RWy + disp8 - m_tmp16 = read_rwX(operand & 7) + (s8)read_8((m_pcb<<16) | (m_pc+2)); + m_tmp16 = read_rwX(operand & 7) + s8(read_8((m_pcb << 16) | (m_pc + 2))); m_tmpea = getRWbank(operand & 0x7, m_tmp16); m_tmp16 = read_16(m_tmpea); - write_rwX((operand>>5) & 0x7, m_tmp16); + write_rwX((operand >> 5) & 0x7, m_tmp16); setNZ_16(m_tmp16); m_pc += 3; m_icount -= 7; @@ -5361,7 +5361,7 @@ void f2mc16_device::opcodes_rwiea7b(u8 operand) { // MOVW RWx, RWy m_tmp16 = read_rwX(operand & 0x7); - write_rwX((operand>>5) & 0x7, m_tmp16); + write_rwX((operand >> 5) & 0x7, m_tmp16); setNZ_16(m_tmp16); m_pc += 2; m_icount -= 4; @@ -5373,16 +5373,16 @@ void f2mc16_device::opcodes_eari7c(u8 operand) if ((operand & 0x1f) == 0x1f) { // MOV addr16, Rx - m_tmp8 = read_rX((operand>>5) & 0x7); - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp8 = read_rX((operand >> 5) & 0x7); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - write_8((m_prefix<<16) | m_tmp16, m_tmp8); + write_8((m_prefix << 16) | m_tmp16, m_tmp8); } else { - write_8((m_dtb<<16) | m_tmp16, m_tmp8); + write_8((m_dtb << 16) | m_tmp16, m_tmp8); } setNZ_8(m_tmp8); m_pc += 4; @@ -5395,8 +5395,8 @@ void f2mc16_device::opcodes_eari7c(u8 operand) else if (operand & 0x10) { // MOV @RWx + disp8, Ry - m_tmp8 = read_rX((operand>>5) & 0x7); - m_tmp16 = read_rwX(operand & 0x7) + (s8)read_8((m_pcb<<16) | (m_pc+2)); + m_tmp8 = read_rX((operand >> 5) & 0x7); + m_tmp16 = read_rwX(operand & 0x7) + s8(read_8((m_pcb << 16) | (m_pc + 2))); m_tmpea = getRWbank(operand & 0x7, m_tmp16); write_8(m_tmpea, m_tmp8); setNZ_8(m_tmp8); @@ -5406,7 +5406,7 @@ void f2mc16_device::opcodes_eari7c(u8 operand) else { // MOV Rx, Ry - m_tmp8 = read_rX((operand>>5) & 0x7); + m_tmp8 = read_rX((operand >> 5) & 0x7); write_rX(operand & 0x7, m_tmp8); setNZ_8(m_tmp8); m_pc += 2; @@ -5419,16 +5419,16 @@ void f2mc16_device::opcodes_earwi7d(u8 operand) if ((operand & 0x1f) == 0x1f) { // MOVW addr16, RWx - m_tmp16aux = read_rwX((operand>>5) & 0x7); - m_tmp16 = read_16((m_pcb<<16) | (m_pc+2)); + m_tmp16aux = read_rwX((operand >> 5) & 0x7); + m_tmp16 = read_16((m_pcb << 16) | (m_pc + 2)); if (m_prefix_valid) { m_prefix_valid = false; - write_16((m_prefix<<16) | m_tmp16, m_tmp16aux); + write_16((m_prefix << 16) | m_tmp16, m_tmp16aux); } else { - write_16((m_dtb<<16) | m_tmp16, m_tmp16aux); + write_16((m_dtb << 16) | m_tmp16, m_tmp16aux); } setNZ_16(m_tmp16aux); m_pc += 4; @@ -5441,8 +5441,8 @@ void f2mc16_device::opcodes_earwi7d(u8 operand) else if (operand & 0x10) { // MOVW @RWx + disp8, RWy - m_tmp16aux = read_rwX((operand>>5) & 0x7); - m_tmp16 = read_rwX(operand & 0x7) + (s8)read_8((m_pcb<<16) | (m_pc+2)); + m_tmp16aux = read_rwX((operand >> 5) & 0x7); + m_tmp16 = read_rwX(operand & 0x7) + s8(read_8((m_pcb << 16) | (m_pc + 2))); m_tmpea = getRWbank(operand & 0x7, m_tmp16); write_16(m_tmpea, m_tmp16aux); setNZ_16(m_tmp16aux); @@ -5452,7 +5452,7 @@ void f2mc16_device::opcodes_earwi7d(u8 operand) else { // MOVW RWx, RWy - m_tmp16 = read_rwX((operand>>5) & 0x7); + m_tmp16 = read_rwX((operand >> 5) & 0x7); write_rwX(operand & 0x7, m_tmp16); setNZ_16(m_tmp16); m_pc += 2; @@ -5505,7 +5505,7 @@ void f2mc16_device::clear_irq(int vector) // note: this function must not use m_tmp16 unless you change RETI void f2mc16_device::take_irq(int vector, int level) { - standard_irq_callback(vector, (m_pcb<<16) | m_pc); + standard_irq_callback(vector, (m_pcb << 16) | m_pc); // printf("take_irq: vector %d, level %d, old PC = %02x%04x\n", vector, level, m_pcb, m_pc); push_16_ssp(m_acc>>16); push_16_ssp(m_acc & 0xffff); diff --git a/src/devices/cpu/pic16x8x/16x8xdsm.cpp b/src/devices/cpu/pic16x8x/16x8xdsm.cpp index 09c44a354fc..54e335ffc60 100644 --- a/src/devices/cpu/pic16x8x/16x8xdsm.cpp +++ b/src/devices/cpu/pic16x8x/16x8xdsm.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders: Grull Osgo +// copyright-holders:Tony La Porta, Grull Osgo /************************************************************************ Microchip PIC16X8x Emulator diff --git a/src/devices/cpu/pic16x8x/16x8xdsm.h b/src/devices/cpu/pic16x8x/16x8xdsm.h index 8ba4dad7171..9684a80c19f 100644 --- a/src/devices/cpu/pic16x8x/16x8xdsm.h +++ b/src/devices/cpu/pic16x8x/16x8xdsm.h @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders: Grull Osgo +// copyright-holders:Tony La Porta, Grull Osgo /* Microchip PIC16X8x Emulator diff --git a/src/devices/cpu/pic16x8x/pic16x8x.cpp b/src/devices/cpu/pic16x8x/pic16x8x.cpp index e96be15b109..4cf256763aa 100644 --- a/src/devices/cpu/pic16x8x/pic16x8x.cpp +++ b/src/devices/cpu/pic16x8x/pic16x8x.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Grull Osgo +// copyright-holders:Tony La Porta, Grull Osgo /**************************************************************************************** Microchip PIC16x8x Emulator diff --git a/src/devices/cpu/pic16x8x/pic16x8x.h b/src/devices/cpu/pic16x8x/pic16x8x.h index 3fae420ef3b..89c0d500227 100644 --- a/src/devices/cpu/pic16x8x/pic16x8x.h +++ b/src/devices/cpu/pic16x8x/pic16x8x.h @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Grull Osgo +// copyright-holders:Tony La Porta, Grull Osgo /************************************************************************ Microchip PIC16x8x Emulator diff --git a/src/devices/cpu/tms32025/tms32025.cpp b/src/devices/cpu/tms32025/tms32025.cpp index 5fa026aa4fe..b44d91d3a91 100644 --- a/src/devices/cpu/tms32025/tms32025.cpp +++ b/src/devices/cpu/tms32025/tms32025.cpp @@ -245,7 +245,15 @@ const tiny_rom_entry *tms32025_device::device_rom_region() const } -tms3202x_device::tms3202x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor prgmap, address_map_constructor datamap) +tms3202x_device::tms3202x_device( + const machine_config &mconfig, + device_type type, + const char *tag, + device_t *owner, + uint32_t clock, + unsigned stack_depth, + address_map_constructor prgmap, + address_map_constructor datamap) : cpu_device(mconfig, type, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 16, 16, -1, prgmap) , m_data_config("data", ENDIANNESS_BIG, 16, 16, -1, datamap) @@ -260,17 +268,18 @@ tms3202x_device::tms3202x_device(const machine_config &mconfig, device_type type , m_xf_out(*this) , m_dr_in(*this, 0xffff) , m_dx_out(*this) + , m_stack_limit(stack_depth - 1) { } tms32020_device::tms32020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms3202x_device(mconfig, TMS32020, tag, owner, clock, address_map_constructor(), address_map_constructor(FUNC(tms3202x_device::tms3202x_data), this)) + : tms3202x_device(mconfig, TMS32020, tag, owner, clock, 4, address_map_constructor(), address_map_constructor(FUNC(tms3202x_device::tms3202x_data), this)) { m_fixed_STR1 = 0x0180; } tms32025_device::tms32025_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor prgmap, address_map_constructor datamap) - : tms3202x_device(mconfig, type, tag, owner, clock, prgmap, datamap) + : tms3202x_device(mconfig, type, tag, owner, clock, 8, prgmap, datamap) , m_mp_mc(true) { } @@ -374,24 +383,24 @@ void tms3202x_device::greg_w(uint16_t data) } -void tms3202x_device::CLR0(uint16_t flag) { m_STR0 &= ~flag; m_STR0 |= 0x0400; } -void tms3202x_device::SET0(uint16_t flag) { m_STR0 |= flag; m_STR0 |= 0x0400; } -void tms3202x_device::CLR1(uint16_t flag) { m_STR1 &= ~flag; m_STR1 |= m_fixed_STR1; } -void tms3202x_device::SET1(uint16_t flag) { m_STR1 |= flag; m_STR1 |= m_fixed_STR1; } +inline void tms3202x_device::CLR0(uint16_t flag) { m_STR0 &= ~flag; m_STR0 |= 0x0400; } +inline void tms3202x_device::SET0(uint16_t flag) { m_STR0 |= flag; m_STR0 |= 0x0400; } +inline void tms3202x_device::CLR1(uint16_t flag) { m_STR1 &= ~flag; m_STR1 |= m_fixed_STR1; } +inline void tms3202x_device::SET1(uint16_t flag) { m_STR1 |= flag; m_STR1 |= m_fixed_STR1; } -void tms3202x_device::MODIFY_DP(int data) +inline void tms3202x_device::MODIFY_DP(int data) { m_STR0 &= ~DP_REG; m_STR0 |= (data & DP_REG); m_STR0 |= 0x0400; } -void tms3202x_device::MODIFY_PM(int data) +inline void tms3202x_device::MODIFY_PM(int data) { m_STR1 &= ~PM_REG; m_STR1 |= (data & PM_REG); m_STR1 |= m_fixed_STR1; } -void tms3202x_device::MODIFY_ARP(int data) +inline void tms3202x_device::MODIFY_ARP(int data) { m_STR1 &= ~ARB_REG; m_STR1 |= (m_STR0 & ARP_REG); @@ -406,18 +415,18 @@ uint16_t tms3202x_device::reverse_carry_add(uint16_t arg0, uint16_t arg1 ) uint16_t result = 0; int carry = 0; int count; - for( count=0; count<16; count++ ) + for (count = 0; count < 16; count++) { - int sum = (arg0>>15)+(arg1>>15)+carry; - result = (result<<1)|(sum&1); - carry = sum>>1; - arg0<<=1; - arg1<<=1; + int sum = (arg0 >> 15) + (arg1 >> 15) + carry; + result = (result << 1) | (sum & 1); + carry = sum >> 1; + arg0 <<= 1; + arg1 <<= 1; } return result; } -void tms3202x_device::MODIFY_AR_ARP() +inline void tms3202x_device::MODIFY_AR_ARP() { /* modify address register referenced by ARP */ switch (m_opcode.b.l & 0x70) /* Cases ordered by predicted useage */ { @@ -452,7 +461,7 @@ void tms3202x_device::MODIFY_AR_ARP() break; } - if( !m_mHackIgnoreARP ) + if (!m_mHackIgnoreARP) { if (m_opcode.b.l & 8) { /* bit 3 determines if new value is loaded into ARP */ @@ -461,92 +470,71 @@ void tms3202x_device::MODIFY_AR_ARP() } } -void tms3202x_device::CALCULATE_ADD_CARRY() +inline void tms3202x_device::CALCULATE_ADD_CARRY() { - if ( (uint32_t)(m_oldacc.d) > (uint32_t)(m_ACC.d) ) { + if (uint32_t(m_oldacc.d) > uint32_t(m_ACC.d)) + { SET1(C_FLAG); } - else { + else + { CLR1(C_FLAG); } } -void tms3202x_device::CALCULATE_SUB_CARRY() +inline void tms3202x_device::CALCULATE_SUB_CARRY() { - if ( (uint32_t)(m_oldacc.d) < (uint32_t)(m_ACC.d) ) { + if (uint32_t(m_oldacc.d) < uint32_t(m_ACC.d)) + { CLR1(C_FLAG); } - else { + else + { SET1(C_FLAG); } } -void tms3202x_device::CALCULATE_ADD_OVERFLOW(int32_t addval) +inline void tms3202x_device::CALCULATE_ADD_OVERFLOW(int32_t addval) { - if ((int32_t)((m_ACC.d ^ addval) & (m_oldacc.d ^ m_ACC.d)) < 0) + if (int32_t((m_ACC.d ^ addval) & (m_oldacc.d ^ m_ACC.d)) < 0) { SET0(OV_FLAG); if (OVM) { - m_ACC.d = ((int32_t)m_oldacc.d < 0) ? 0x80000000 : 0x7fffffff; + m_ACC.d = (int32_t(m_oldacc.d) < 0) ? 0x80000000 : 0x7fffffff; } } } -void tms3202x_device::CALCULATE_SUB_OVERFLOW(int32_t subval) + +inline void tms3202x_device::CALCULATE_SUB_OVERFLOW(int32_t subval) { if ((int32_t)((m_oldacc.d ^ subval) & (m_oldacc.d ^ m_ACC.d)) < 0) { SET0(OV_FLAG); if (OVM) { - m_ACC.d = ((int32_t)m_oldacc.d < 0) ? 0x80000000 : 0x7fffffff; + m_ACC.d = (int32_t(m_oldacc.d) < 0) ? 0x80000000 : 0x7fffffff; } } } inline uint16_t tms3202x_device::POP_STACK() { - uint16_t data = m_STACK[3]; - m_STACK[3] = m_STACK[2]; - m_STACK[2] = m_STACK[1]; - m_STACK[1] = m_STACK[0]; + uint16_t const data = m_STACK[m_stack_limit]; + for (unsigned i = m_stack_limit; 0 < i; --i) + m_STACK[i] = m_STACK[i - 1]; return data; } inline void tms3202x_device::PUSH_STACK(uint16_t data) { - m_STACK[0] = m_STACK[1]; - m_STACK[1] = m_STACK[2]; - m_STACK[2] = m_STACK[3]; - m_STACK[3] = data; + for (unsigned i = 0; m_stack_limit > i; ++i) + m_STACK[i] = m_STACK[i + 1]; + m_STACK[m_stack_limit] = data; } -inline uint16_t tms32025_device::POP_STACK() +inline void tms3202x_device::SHIFT_Preg_TO_ALU() { - uint16_t data = m_STACK[7]; - m_STACK[7] = m_STACK[6]; - m_STACK[6] = m_STACK[5]; - m_STACK[5] = m_STACK[4]; - m_STACK[4] = m_STACK[3]; - m_STACK[3] = m_STACK[2]; - m_STACK[2] = m_STACK[1]; - m_STACK[1] = m_STACK[0]; - return data; -} -inline void tms32025_device::PUSH_STACK(uint16_t data) -{ - m_STACK[0] = m_STACK[1]; - m_STACK[1] = m_STACK[2]; - m_STACK[2] = m_STACK[3]; - m_STACK[3] = m_STACK[4]; - m_STACK[4] = m_STACK[5]; - m_STACK[5] = m_STACK[6]; - m_STACK[6] = m_STACK[7]; - m_STACK[7] = data; -} - -void tms3202x_device::SHIFT_Preg_TO_ALU() -{ - switch(PM) /* PM (in STR1) is the shift mode for Preg */ + switch (PM) /* PM (in STR1) is the shift mode for Preg */ { case 0: m_ALU.d = m_Preg.d; break; case 1: m_ALU.d = (m_Preg.d << 1); break; @@ -556,7 +544,7 @@ void tms3202x_device::SHIFT_Preg_TO_ALU() } } -void tms3202x_device::GETDATA(int shift,int signext) +inline void tms3202x_device::GETDATA(int shift,int signext) { if (m_opcode.b.l & 0x80) { /* indirect memory access */ @@ -584,23 +572,25 @@ void tms3202x_device::GETDATA(int shift,int signext) if (m_opcode.b.l & 0x80) MODIFY_AR_ARP(); } -void tms3202x_device::PUTDATA(uint16_t data) +inline void tms3202x_device::PUTDATA(uint16_t data) { - if (m_opcode.b.l & 0x80) { + if (m_opcode.b.l & 0x80) + { if (m_memaccess >= 0x800) m_external_mem_access = 1; /* Pause if hold pin is active */ else m_external_mem_access = 0; m_data.write_word(IND, data); MODIFY_AR_ARP(); } - else { + else + { if (m_memaccess >= 0x800) m_external_mem_access = 1; /* Pause if hold pin is active */ else m_external_mem_access = 0; m_data.write_word(DMA, data); } } -void tms3202x_device::PUTDATA_SST(uint16_t data) +inline void tms3202x_device::PUTDATA_SST(uint16_t data) { if (m_opcode.b.l & 0x80) m_memaccess = IND; else m_memaccess = DMApg0; @@ -1870,7 +1860,7 @@ void tms32026_device::device_reset() /**************************************************************************** * Issue an interrupt if necessary ****************************************************************************/ -int tms3202x_device::process_IRQs() +inline int tms3202x_device::process_IRQs() { /********** Interrupt Flag Register (IFR) ********** | 5 | 4 | 3 | 2 | 1 | 0 | @@ -1944,39 +1934,36 @@ int tms3202x_device::process_IRQs() } -void tms3202x_device::process_timer(int clocks) +inline void tms3202x_device::process_timer(int clocks) { - int preclocks, ticks; - - /* easy case: no actual ticks */ -again: - preclocks = CLK - m_timerover; - if (clocks < preclocks) + while (true) { - m_timerover += clocks; - m_icount -= clocks; - return; - } + int const preclocks = CLK - m_timerover; + if (clocks < preclocks) + { + /* easy case: no actual ticks */ + m_timerover += clocks; + m_icount -= clocks; + break; + } - /* if we're not going to overflow the timer, just count the clocks */ - ticks = 1 + (clocks - preclocks) / CLK; - if (ticks <= m_tim) - { - m_icount -= clocks; - m_timerover = clocks - (ticks - 1) * CLK - preclocks; - m_tim -= ticks; - } + int const ticks = 1 + (clocks - preclocks) / CLK; + if (ticks <= m_tim) + { + /* if we're not going to overflow the timer, just count the clocks */ + m_icount -= clocks; + m_timerover = clocks - (ticks - 1) * CLK - preclocks; + m_tim -= ticks; + break; + } - /* otherwise, overflow the timer and signal an interrupt */ - else - { + /* otherwise, overflow the timer and signal an interrupt */ m_icount -= preclocks + CLK * m_tim; m_timerover = 0; m_tim = m_prd; m_IFR |= 0x08; clocks = process_IRQs(); /* Handle Timer IRQ */ - goto again; } } diff --git a/src/devices/cpu/tms32025/tms32025.h b/src/devices/cpu/tms32025/tms32025.h index ac0286ab8e4..56ed8fd57b9 100644 --- a/src/devices/cpu/tms32025/tms32025.h +++ b/src/devices/cpu/tms32025/tms32025.h @@ -72,28 +72,29 @@ public: //void tms32025_program(address_map &map); void tms3202x_data(address_map &map); void tms32026_data(address_map &map); + protected: // construction/destruction - tms3202x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor prgmap, address_map_constructor datamap); + tms3202x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, unsigned stack_depth, address_map_constructor prgmap, address_map_constructor datamap); - // device-level overrides + // device_t implementation virtual void device_start() override; virtual void device_reset() override; - // device_execute_interface overrides + // device_execute_interface implementation virtual uint32_t execute_min_cycles() const noexcept override { return 4; } virtual uint32_t execute_max_cycles() const noexcept override { return 20; } virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; - // device_memory_interface overrides + // device_memory_interface implementation virtual space_config_vector memory_space_config() const override; - // device_state_interface overrides + // device_state_interface implementation virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; - // device_disasm_interface overrides + // device_disasm_interface implementation virtual std::unique_ptr create_disassembler() override; void common_reset(); @@ -129,6 +130,8 @@ protected: devcb_read16 m_dr_in; devcb_write16 m_dx_out; + unsigned const m_stack_limit; + /******************** CPU Internal Registers *******************/ uint16_t m_PREVPC; /* previous program counter */ @@ -177,25 +180,25 @@ protected: uint16_t greg_r(); void greg_w(uint16_t data); - inline void CLR0(uint16_t flag); - inline void SET0(uint16_t flag); - inline void CLR1(uint16_t flag); - inline void SET1(uint16_t flag); - inline void MODIFY_DP(int data); - inline void MODIFY_PM(int data); - inline void MODIFY_ARP(int data); + void CLR0(uint16_t flag); + void SET0(uint16_t flag); + void CLR1(uint16_t flag); + void SET1(uint16_t flag); + void MODIFY_DP(int data); + void MODIFY_PM(int data); + void MODIFY_ARP(int data); uint16_t reverse_carry_add(uint16_t arg0, uint16_t arg1 ); - inline void MODIFY_AR_ARP(); - inline void CALCULATE_ADD_CARRY(); - inline void CALCULATE_SUB_CARRY(); - inline void CALCULATE_ADD_OVERFLOW(int32_t addval); - inline void CALCULATE_SUB_OVERFLOW(int32_t subval); - virtual uint16_t POP_STACK(); - virtual void PUSH_STACK(uint16_t data); - inline void SHIFT_Preg_TO_ALU(); - inline void GETDATA(int shift,int signext); - inline void PUTDATA(uint16_t data); - inline void PUTDATA_SST(uint16_t data); + void MODIFY_AR_ARP(); + void CALCULATE_ADD_CARRY(); + void CALCULATE_SUB_CARRY(); + void CALCULATE_ADD_OVERFLOW(int32_t addval); + void CALCULATE_SUB_OVERFLOW(int32_t subval); + uint16_t POP_STACK(); + void PUSH_STACK(uint16_t data); + void SHIFT_Preg_TO_ALU(); + void GETDATA(int shift,int signext); + void PUTDATA(uint16_t data); + void PUTDATA_SST(uint16_t data); void opcodes_CE(); void opcodes_Dx(); void illegal(); @@ -351,8 +354,8 @@ protected: void zalh(); void zalr(); void zals(); - inline int process_IRQs(); - inline void process_timer(int clocks); + int process_IRQs(); + void process_timer(int clocks); }; @@ -377,14 +380,11 @@ protected: tms32025_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); tms32025_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor prgmap, address_map_constructor datamap); - // device-level overrides + // device_t implementation virtual void device_start() override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual uint16_t POP_STACK() override; - virtual void PUSH_STACK(uint16_t data) override; - bool m_mp_mc; }; diff --git a/src/devices/cpu/z80/z80.lst b/src/devices/cpu/z80/z80.lst index 8a9e411db64..07bc5f23d55 100644 --- a/src/devices/cpu/z80/z80.lst +++ b/src/devices/cpu/z80/z80.lst @@ -400,7 +400,7 @@ macro take_interrupt } else { /* Interrupt mode 0. We check for CALL and JP instructions, if neither of these were found we assume a 1 byte opcode - was placed on the databus */ + was placed on the databus */ LOGINT("IM0 $%04x\n", m_tmp_irq_vector); // check for nop diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp index de93d9d7815..c03e9f88558 100644 --- a/src/devices/imagedev/floppy.cpp +++ b/src/devices/imagedev/floppy.cpp @@ -1140,12 +1140,12 @@ void floppy_image_device::cache_clear() void floppy_image_device::cache_fill(const attotime &when) { std::vector &buf = m_image->get_buffer(m_cyl, m_ss, m_subcyl); - uint32_t cells = buf.size(); + uint32_t const cells = buf.size(); if(cells <= 1) { m_cache_start_time = attotime::zero; m_cache_end_time = attotime::never; m_cache_index = 0; - m_cache_entry = cells == 1 ? buf[0] : floppy_image::MG_N; + m_cache_entry = (cells == 1) ? buf[0] : floppy_image::MG_N; cache_weakness_setup(); return; } @@ -1153,25 +1153,23 @@ void floppy_image_device::cache_fill(const attotime &when) attotime base; uint32_t position = find_position(base, when); - auto it = std::upper_bound( - buf.begin(), buf.end(), position, - [](uint32_t a, uint32_t b) { - return a < (b & floppy_image::TIME_MASK); - } - ); + auto const it = std::upper_bound( + buf.begin(), buf.end(), position, + [] (uint32_t a, uint32_t b) { return a < (b & floppy_image::TIME_MASK); }); - int index = int(it - buf.begin()) - 1; - - if(index == -1) { + int index; + if(buf.begin() == it) { base -= m_rev_time; index = buf.size() - 1; + } else { + index = int(it - buf.begin()) - 1; } for(;;) { cache_fill_index(buf, index, base); if(m_cache_end_time > when) { cache_weakness_setup(); - return; + break; } } } diff --git a/src/devices/machine/cxd1185.cpp b/src/devices/machine/cxd1185.cpp index 12d1d0b73b3..6dfa38915a1 100644 --- a/src/devices/machine/cxd1185.cpp +++ b/src/devices/machine/cxd1185.cpp @@ -33,12 +33,12 @@ DEFINE_DEVICE_TYPE(CXD1185, cxd1185_device, "cxd1185", "Sony CXD1185 SCSI 1 Prot static char const *const nscsi_phase[] = { "DATA OUT", "DATA IN", "COMMAND", "STATUS", "*", "*", "MESSAGE OUT", "MESSAGE IN" }; // FIXME: would be better to reuse from nscsi_full_device -static unsigned const SCSI_ARB_DELAY = 2'400; -static unsigned const SCSI_BUS_CLEAR = 800; -static unsigned const SCSI_BUS_FREE = 800; -static unsigned const SCSI_BUS_SETTLE = 400; -static unsigned const SCSI_BUS_SKEW = 10; -static unsigned const SCSI_RST_HOLD = 25'000; +static constexpr unsigned SCSI_ARB_DELAY = 2'400; +static constexpr unsigned SCSI_BUS_CLEAR = 800; +static constexpr unsigned SCSI_BUS_FREE = 800; +static constexpr unsigned SCSI_BUS_SETTLE = 400; +static constexpr unsigned SCSI_BUS_SKEW = 10; +static constexpr unsigned SCSI_RST_HOLD = 25'000; ALLOW_SAVE_TYPE(cxd1185_device::state); @@ -328,12 +328,12 @@ void cxd1185_device::command_w(u8 data) case 0xc0: LOGMASKED(LOG_CMD, "transfer information\n"); m_state = XFR_INFO; - m_last_dma_direction = (m_command & DMA) ? ((scsi_bus->ctrl_r() & S_INP) ? DMA_IN : DMA_OUT) : DMA_NONE; + m_last_dma_direction = !(m_command & DMA) ? DMA_NONE : (scsi_bus->ctrl_r() & S_INP) ? DMA_IN : DMA_OUT; break; case 0xc1: LOGMASKED(LOG_CMD, "transfer pad\n"); m_state = XFR_INFO; - m_last_dma_direction = (m_command & DMA) ? ((scsi_bus->ctrl_r() & S_INP) ? DMA_IN : DMA_OUT) : DMA_NONE; + m_last_dma_direction = !(m_command & DMA) ? DMA_NONE : (scsi_bus->ctrl_r() & S_INP) ? DMA_IN : DMA_OUT; break; case 0xc2: LOGMASKED(LOG_CMD, "deassert ack\n"); diff --git a/src/devices/machine/cxd1185.h b/src/devices/machine/cxd1185.h index 7fa3f21d7ea..76c0f7aca35 100644 --- a/src/devices/machine/cxd1185.h +++ b/src/devices/machine/cxd1185.h @@ -121,7 +121,7 @@ private: // internal state bool m_irq_asserted; bool m_drq_asserted; - util::fifo m_fifo; + util::fifo m_fifo; bool m_pio_data_mode; bool m_pio_ctrl_mode; u32 m_scsi_ctrl_state; diff --git a/src/emu/debug/debugcmd.cpp b/src/emu/debug/debugcmd.cpp index 724102cb8ec..a8c74f471d1 100644 --- a/src/emu/debug/debugcmd.cpp +++ b/src/emu/debug/debugcmd.cpp @@ -720,11 +720,11 @@ void debugger_commands::execute_tracelog(const std::vector &pa void debugger_commands::execute_tracesym(const std::vector ¶ms) { // build a format string appropriate for the parameters and validate them - std::stringstream format; + std::ostringstream format; for (int i = 0; i < params.size(); i++) { // find this symbol - symbol_entry *sym = m_console.visible_symtable().find(strmakelower(params[i]).c_str()); + symbol_entry *const sym = m_console.visible_symtable().find(strmakelower(params[i]).c_str()); if (!sym) { m_console.printf("Unknown symbol: %s\n", params[i]); @@ -738,9 +738,11 @@ void debugger_commands::execute_tracesym(const std::vector &pa } // build parameters for printf - std::vector printf_params(params); - auto const format_str = format.str(); // HACK: workaround for pre-C++20 str() - printf_params.insert(printf_params.begin(), format_str); + auto const format_str = std::move(format).str(); // need this to stay put as long as the string_view exists + std::vector printf_params; + printf_params.reserve(params.size() + 1); + printf_params.emplace_back(format_str); + std::copy(params.begin(), params.end(), std::back_inserter(printf_params)); // then do a printf std::ostringstream buffer; diff --git a/src/emu/emucore.h b/src/emu/emucore.h index cfbefa52707..f6552461131 100644 --- a/src/emu/emucore.h +++ b/src/emu/emucore.h @@ -233,7 +233,7 @@ public: emu_fatalerror(util::format_argument_pack const &args); emu_fatalerror(int _exitcode, util::format_argument_pack const &args); - template >>> + template > > > emu_fatalerror(Format &&fmt, Params &&... args) : emu_fatalerror(static_cast const &>(util::make_format_argument_pack(std::forward(fmt), std::forward(args)...))) { diff --git a/src/lib/formats/fs_coco_rsdos.cpp b/src/lib/formats/fs_coco_rsdos.cpp index a4aa15afee2..e040ea9dd75 100644 --- a/src/lib/formats/fs_coco_rsdos.cpp +++ b/src/lib/formats/fs_coco_rsdos.cpp @@ -381,7 +381,7 @@ err_t coco_rsdos_impl::file_create(const std::vector &path, const m dir_block.wstr(file_index * DIRECTORY_ENTRY_SIZE + 0, fname); dir_block.w8(file_index * DIRECTORY_ENTRY_SIZE + OFFSET_FIRST_GRANULE, granule); - // The file type, ascii flag, and number of bytes in last sector of file will be set during writing. + // The file type, ASCII flag, and number of bytes in last sector of file will be set during writing. } } } @@ -495,12 +495,12 @@ u8 coco_rsdos_impl::determine_file_type(const std::vector &data) const { if (is_ascii(data)) { - // TODO: Distinguish between basic code and text editor data + // TODO: Distinguish between BASIC code and text editor data return FILE_TYPE_BASIC; } const size_t data_length = data.size(); - // Binary basic code seems to begin with ff <16bit size> 26 + // Binary BASIC code seems to begin with ff <16bit size> 26 if (data_length > 4 && data[0] == 0xff && data[3] == 0x26 && ((data[1] << 8) | data[2]) == data_length - 3) return FILE_TYPE_BASIC; diff --git a/src/mame/benesse/challenge_gear.cpp b/src/mame/benesse/challenge_gear.cpp index 26d97712c0b..4dc8477b53d 100644 --- a/src/mame/benesse/challenge_gear.cpp +++ b/src/mame/benesse/challenge_gear.cpp @@ -14,8 +14,8 @@ /* -TSOP32 Maskrom: -The pinout matches nearly the 29LV040 (TSOP32) flashrom. It has no WE# and Pin 07 and 09 are swapped. +TSOP32 mask ROM: +The pinout nearly matches the 29LV040 (TSOP32) Flash ROM. It has no WE# and pin0 7 and 9 are swapped. -------- A11 --|01 32|-- OE# diff --git a/src/mame/hp/hp98x6.cpp b/src/mame/hp/hp98x6.cpp index f8a176cf016..7bad24e88a0 100644 --- a/src/mame/hp/hp98x6.cpp +++ b/src/mame/hp/hp98x6.cpp @@ -118,6 +118,9 @@ protected: required_region_ptr m_chargen; private: + static inline constexpr unsigned TEXT_VRAM_SIZE = 2048; + static inline constexpr unsigned GRAPHIC_VRAM_SIZE = 16384; + void cpu_mem_map(address_map &map); void diag_led_w(uint8_t data); uint16_t text_r(offs_t offset); @@ -138,10 +141,8 @@ private: void upi_irq7_w(int state); void uart_irq_w(int state); - static constexpr unsigned TEXT_VRAM_SIZE = 2048; - uint16_t m_text_vram[ TEXT_VRAM_SIZE ]; - static constexpr unsigned GRAPHIC_VRAM_SIZE = 16384; - uint8_t m_graphic_vram[ GRAPHIC_VRAM_SIZE ]; + uint16_t m_text_vram[TEXT_VRAM_SIZE]; + uint8_t m_graphic_vram[GRAPHIC_VRAM_SIZE]; bool m_hsync_en; bool m_graphic_en; bool m_hpib_irq; @@ -298,7 +299,7 @@ void hp9816_state::diag_led_w(uint8_t data) uint16_t hp9816_state::text_r(offs_t offset) { if (BIT(offset, 12)) { - return m_text_vram[ offset & (TEXT_VRAM_SIZE - 1) ]; + return m_text_vram[offset & (TEXT_VRAM_SIZE - 1)]; } else if (BIT(offset, 0)) { return m_crtc->register_r(); } else { @@ -311,7 +312,7 @@ void hp9816_state::text_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (BIT(offset, 12)) { m_hsync_en = !BIT(offset, 14); - COMBINE_DATA(&m_text_vram[ offset & (TEXT_VRAM_SIZE - 1) ]); + COMBINE_DATA(&m_text_vram[offset & (TEXT_VRAM_SIZE - 1)]); } else if (ACCESSING_BITS_0_7) { if (BIT(offset, 0)) { m_crtc->register_w(uint8_t(data)); @@ -328,7 +329,7 @@ uint16_t hp9816_state::graphic_r(offs_t offset, uint16_t mem_mask) m_graphic_en = !BIT(offset, 14); if (ACCESSING_BITS_0_7) { - return m_graphic_vram[ offset & (GRAPHIC_VRAM_SIZE - 1) ]; + return m_graphic_vram[offset & (GRAPHIC_VRAM_SIZE - 1)]; } else { return m_cpu->berr_r(); } @@ -339,7 +340,7 @@ void hp9816_state::graphic_w(offs_t offset, uint16_t data, uint16_t mem_mask) m_graphic_en = !BIT(offset, 14); if (ACCESSING_BITS_0_7) { - m_graphic_vram[ offset & (GRAPHIC_VRAM_SIZE - 1) ] = uint8_t(data); + m_graphic_vram[offset & (GRAPHIC_VRAM_SIZE - 1)] = uint8_t(data); } else { return m_cpu->berr_w(0); } @@ -474,7 +475,7 @@ MC6845_UPDATE_ROW(hp9816_state::crtc_update_row) // Text video for (int i = 0; i < x_count; i++) { - uint16_t char_attr = m_text_vram[ (ma + i) & (TEXT_VRAM_SIZE - 1) ]; + uint16_t char_attr = m_text_vram[(ma + i) & (TEXT_VRAM_SIZE - 1)]; // | Bit(s) | Meaning | // |--------+----------------------------| // | 15 | Select alternate char. set | @@ -496,7 +497,7 @@ MC6845_UPDATE_ROW(hp9816_state::crtc_update_row) if (BIT(char_attr, 15)) { BIT_SET(chargen_addr, 12); } - char_pixels = uint16_t(m_chargen[ chargen_addr ]) << 1; + char_pixels = uint16_t(m_chargen[chargen_addr]) << 1; underline = BIT(char_attr, 10) && ra == 11; invert = BIT(char_attr, 8); cursor = cursor_x == i; @@ -553,7 +554,7 @@ MC6845_UPDATE_ROW(hp9816_state::crtc_update_row) char_pixels = ~char_pixels; } for (unsigned col = 0; col < 10; col++) { - bitmap.pix(y, i * 10 + col) = pen[ BIT(char_pixels, 9 - col) ? (half_bright ? 1 : 2) : 0 ]; + bitmap.pix(y, i * 10 + col) = pen[BIT(char_pixels, 9 - col) ? (half_bright ? 1 : 2) : 0]; } } @@ -564,7 +565,7 @@ MC6845_UPDATE_ROW(hp9816_state::crtc_update_row) unsigned g_bytes_per_line = g_cols / 8; unsigned g_addr = y * g_bytes_per_line; for (unsigned i = 0; i < g_bytes_per_line; i++) { - uint8_t graph_pixels = m_graphic_vram[ (g_addr + i) & (GRAPHIC_VRAM_SIZE - 1) ]; + uint8_t graph_pixels = m_graphic_vram[(g_addr + i) & (GRAPHIC_VRAM_SIZE - 1)]; for (unsigned col = 0; col < 8; col++) { if (BIT(graph_pixels, 7 - col)) { // A graphic pixel covers 2 text pixels @@ -581,12 +582,12 @@ MC6845_UPDATE_ROW(hp9816_state::crtc_update_row) // | 0 | 2 | // | 1 | 2 | // | 2 | 0 | - pix = pen[ (pix == pen[ 2 ]) ? 0 : 2 ]; + pix = pen[(pix == pen[2]) ? 0 : 2]; } x_pos++; { auto &pix = bitmap.pix(y, x_pos); - pix = pen[ (pix == pen[ 2 ]) ? 0 : 2 ]; + pix = pen[(pix == pen[2]) ? 0 : 2]; } } } @@ -701,6 +702,7 @@ ROM_START(hp9816a) ROM_SYSTEM_BIOS(1, "bios30", "BIOS v3.0") ROMX_LOAD("rom30.bin", 0x0000, 0x10000, CRC(05c07e75) SHA1(3066a65e6137482041f9a77d09ee2289fe0974aa), ROM_BIOS(1)) ROM_END + } // anonymous namespace // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS diff --git a/src/mame/hp/hp98x6_upi.cpp b/src/mame/hp/hp98x6_upi.cpp index 0b80475eb7f..f8a62e71cd5 100644 --- a/src/mame/hp/hp98x6_upi.cpp +++ b/src/mame/hp/hp98x6_upi.cpp @@ -32,10 +32,13 @@ #include "emu.h" #include "hp98x6_upi.h" +#include "speaker.h" + // Debugging #define VERBOSE 1 #include "logmacro.h" + // Bit manipulation namespace { template constexpr T BIT_MASK(unsigned n) @@ -440,33 +443,33 @@ void hp98x6_upi_device::device_reset() m_last_dial = m_dial->read(); m_beep->set_state(0); - m_ram[ RAM_POS_0_R2_FLAGS1 ] = 0; + m_ram[RAM_POS_0_R2_FLAGS1] = 0; // Mask out all interrupts - m_ram[ RAM_POS_0_R4_FLAGS2 ] = + m_ram[RAM_POS_0_R4_FLAGS2] = BIT_MASK(R4_FLAGS2_FHS_MASK_BIT) | BIT_MASK(R4_FLAGS2_PSI_MASK_BIT) | BIT_MASK(R4_FLAGS2_TMR_MASK_BIT) | BIT_MASK(R4_FLAGS2_RST_MASK_BIT) | BIT_MASK(R4_FLAGS2_KEY_MASK_BIT); - m_ram[ RAM_POS_0_R5_FLAGS3 ] = 0; - m_ram[ RAM_POS_0_R6_ROLLOVER ] = SCANCODE_NONE; - m_ram[ RAM_POS_0_R7_KEY_DOWN ] = SCANCODE_NONE; + m_ram[RAM_POS_0_R5_FLAGS3] = 0; + m_ram[RAM_POS_0_R6_ROLLOVER] = SCANCODE_NONE; + m_ram[RAM_POS_0_R7_KEY_DOWN] = SCANCODE_NONE; // Assume RESET key is down - m_ram[ RAM_POS_RST_DEB_CNT ] = R2_FLAGS1_DEB_INIT; + m_ram[RAM_POS_RST_DEB_CNT] = R2_FLAGS1_DEB_INIT; // PROM is present - m_ram[ RAM_POS_CFG_JUMPERS ] = BIT_MASK(CFG_JUMPERS_PROM_BIT); + m_ram[RAM_POS_CFG_JUMPERS] = BIT_MASK(CFG_JUMPERS_PROM_BIT); // Assume US English - m_ram[ RAM_POS_LNG_JUMPERS ] = 0; - m_ram[ RAM_POS_1_R3_TIMER_STS ] = 0; - m_ram[ RAM_POS_1_R4_RPG_COUNT ] = 0; - m_ram[ RAM_POS_1_R5_W_PTR ] = 0; - m_ram[ RAM_POS_READING_PROM ] = 0; + m_ram[RAM_POS_LNG_JUMPERS] = 0; + m_ram[RAM_POS_1_R3_TIMER_STS] = 0; + m_ram[RAM_POS_1_R4_RPG_COUNT] = 0; + m_ram[RAM_POS_1_R5_W_PTR] = 0; + m_ram[RAM_POS_READING_PROM] = 0; // Note that RAM is not cleared to avoid losing TOD after an UPI reset m_status = 0; m_ready = false; - m_fsm_state = FSM_ST::ST_POR_TEST1; + m_fsm_state = fsm_st::ST_POR_TEST1; m_delay_timer->adjust(clocks_to_attotime(POR_DELAY1)); m_input_delay_timer->reset(); } @@ -483,24 +486,24 @@ TIMER_DEVICE_CALLBACK_MEMBER(hp98x6_upi_device::ten_ms) TIMER_DEVICE_CALLBACK_MEMBER(hp98x6_upi_device::delay) { switch (m_fsm_state) { - case FSM_ST::ST_POR_TEST1: + case fsm_st::ST_POR_TEST1: m_irq1_write_func(false); - m_fsm_state = FSM_ST::ST_POR_TEST2; + m_fsm_state = fsm_st::ST_POR_TEST2; m_delay_timer->adjust(clocks_to_attotime(POR_DELAY2)); break; - case FSM_ST::ST_POR_TEST2: + case fsm_st::ST_POR_TEST2: write_ob_st(POST_BYTE, ST_POST_OK); - m_fsm_state = FSM_ST::ST_IDLE; + m_fsm_state = fsm_st::ST_IDLE; update_fsm(); break; - case FSM_ST::ST_RESETTING: + case fsm_st::ST_RESETTING: // Send NMI to 68k m_irq7_write_func(true); // F0 = 0 means "NMI from RESET key" BIT_CLR(m_status, STATUS_F0_BIT); - m_fsm_state = FSM_ST::ST_IDLE; + m_fsm_state = fsm_st::ST_IDLE; update_fsm(); break; @@ -537,24 +540,24 @@ void hp98x6_upi_device::update_fsm() uint8_t in_data; // Check for incoming command or data - if (m_fsm_state == FSM_ST::ST_IDLE && + if (m_fsm_state == fsm_st::ST_IDLE && m_ready && read_ib(in_data)) { if (BIT(m_status, STATUS_F1_BIT)) { // Command LOG("UPI cmd %02x\n", in_data); decode_cmd(in_data); - } else if (m_ram[ RAM_POS_1_R5_W_PTR ]) { + } else if (m_ram[RAM_POS_1_R5_W_PTR]) { // Data LOG("UPI data %02x\n", in_data); - uint8_t w_ptr = m_ram[ RAM_POS_1_R5_W_PTR ]; + uint8_t w_ptr = m_ram[RAM_POS_1_R5_W_PTR]; if (w_ptr >= RAM_POS_TOD_1 && w_ptr <= RAM_POS_TOD_3) { // Data written to TOD are summed in, not just stored uint8_t inc[] = { 0, 0, 0 }; - inc[ w_ptr - RAM_POS_TOD_1 ] = in_data; + inc[w_ptr - RAM_POS_TOD_1] = in_data; (void)add_to_ctr(RAM_POS_TOD_1, 3, inc); } else { - m_ram[ w_ptr ] = in_data; + m_ram[w_ptr] = in_data; } // Additional actions triggered by writing at the end of // various counters @@ -564,29 +567,29 @@ void hp98x6_upi_device::update_fsm() if (in_data != 0) { m_beep->set_clock((clock() * in_data) / BEEP_SCALING); m_beep->set_state(1); - BIT_SET(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_BEEP_BIT); + BIT_SET(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_BEEP_BIT); } else { m_beep->set_state(0); - BIT_CLR(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_BEEP_BIT); + BIT_CLR(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_BEEP_BIT); } break; case RAM_POS_RPG_INT_RATE: - m_ram[ RAM_POS_RPG_TIMER ] = m_ram[ RAM_POS_RPG_INT_RATE ]; + m_ram[RAM_POS_RPG_TIMER] = m_ram[RAM_POS_RPG_INT_RATE]; break; case RAM_POS_FHS_2: - BIT_SET(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_FHS_BIT); + BIT_SET(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_FHS_BIT); break; case RAM_POS_MATCH_3: - BIT_SET(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_MATCH_BIT); + BIT_SET(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_MATCH_BIT); break; case RAM_POS_DELAY_3: - BIT_SET(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_DELAY_BIT); + BIT_SET(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_DELAY_BIT); break; case RAM_POS_CYCLE_3: - BIT_SET(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_CYCLE_BIT); - m_ram[ RAM_POS_CYCLE_SAVE_1 ] = m_ram[ RAM_POS_CYCLE_1 ]; - m_ram[ RAM_POS_CYCLE_SAVE_2 ] = m_ram[ RAM_POS_CYCLE_2 ]; - m_ram[ RAM_POS_CYCLE_SAVE_3 ] = m_ram[ RAM_POS_CYCLE_3 ]; + BIT_SET(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_CYCLE_BIT); + m_ram[RAM_POS_CYCLE_SAVE_1] = m_ram[RAM_POS_CYCLE_1]; + m_ram[RAM_POS_CYCLE_SAVE_2] = m_ram[RAM_POS_CYCLE_2]; + m_ram[RAM_POS_CYCLE_SAVE_3] = m_ram[RAM_POS_CYCLE_3]; break; } @@ -595,7 +598,7 @@ void hp98x6_upi_device::update_fsm() if (w_ptr > 0x3f) { LOG("Write pointer overflow\n"); } else { - m_ram[ RAM_POS_1_R5_W_PTR ] = w_ptr; + m_ram[RAM_POS_1_R5_W_PTR] = w_ptr; } } else { // Not writing, data not expected @@ -609,46 +612,46 @@ void hp98x6_upi_device::update_fsm() void hp98x6_upi_device::decode_cmd(uint8_t cmd) { // Not writing to RAM unless we get the write command - m_ram[ RAM_POS_1_R5_W_PTR ] = 0; + m_ram[RAM_POS_1_R5_W_PTR] = 0; // Decode command categories first switch (cmd & CMD_MASK) { case CMD_RD_RAM_LOW: // 000x'xxxx // Read low RAM - m_ram[ RAM_POS_1_R6_R_PTR ] = cmd & CMD_PARAM; + m_ram[RAM_POS_1_R6_R_PTR] = cmd & CMD_PARAM; // Read from ID PROM when enabled - if (m_ram[ RAM_POS_READING_PROM ] && - m_ram[ RAM_POS_1_R6_R_PTR ] == RAM_POS_0_R1) { - m_ram[ RAM_POS_0_R1 ] = id_prom[ m_ram[ RAM_POS_PROM_ADDR ] ]; - LOG("PROM @%02x=%02x\n", m_ram[ RAM_POS_PROM_ADDR ], m_ram[ RAM_POS_0_R1 ]); - m_ram[ RAM_POS_PROM_ADDR ]++; + if (m_ram[RAM_POS_READING_PROM] && + m_ram[RAM_POS_1_R6_R_PTR] == RAM_POS_0_R1) { + m_ram[RAM_POS_0_R1] = id_prom[m_ram[RAM_POS_PROM_ADDR]]; + LOG("PROM @%02x=%02x\n", m_ram[RAM_POS_PROM_ADDR], m_ram[RAM_POS_0_R1]); + m_ram[RAM_POS_PROM_ADDR]++; } - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_READ_BIT); + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_READ_BIT); break; case CMD_RD_RAM_HIGH: // 001x'xxxx // Read high RAM { unsigned idx = RAM_POS_HIGH_RAM_START - 4 + (cmd & CMD_PARAM); - m_ram[ RAM_POS_OUT_BUFF_1 ] = m_ram[ idx++ ]; - m_ram[ RAM_POS_OUT_BUFF_2 ] = m_ram[ idx++ ]; - m_ram[ RAM_POS_OUT_BUFF_3 ] = m_ram[ idx++ ]; - m_ram[ RAM_POS_OUT_BUFF_4 ] = m_ram[ idx++ ]; - m_ram[ RAM_POS_OUT_BUFF_5 ] = m_ram[ idx ]; + m_ram[RAM_POS_OUT_BUFF_1] = m_ram[idx++]; + m_ram[RAM_POS_OUT_BUFF_2] = m_ram[idx++]; + m_ram[RAM_POS_OUT_BUFF_3] = m_ram[idx++]; + m_ram[RAM_POS_OUT_BUFF_4] = m_ram[idx++]; + m_ram[RAM_POS_OUT_BUFF_5] = m_ram[idx]; } break; case CMD_SET_INT_MASK: // 010x'xxxx // Set interrupt mask - m_ram[ RAM_POS_0_R4_FLAGS2 ] &= ~CMD_PARAM; - m_ram[ RAM_POS_0_R4_FLAGS2 ] |= (cmd & CMD_PARAM); + m_ram[RAM_POS_0_R4_FLAGS2] &= ~CMD_PARAM; + m_ram[RAM_POS_0_R4_FLAGS2] |= (cmd & CMD_PARAM); try_fhs_output(); break; case CMD_WR_RAM_HIGH: // 101x'xxxx // Write high RAM - m_ram[ RAM_POS_1_R5_W_PTR ] = RAM_POS_HIGH_RAM_START + (cmd & CMD_PARAM); + m_ram[RAM_POS_1_R5_W_PTR] = RAM_POS_HIGH_RAM_START + (cmd & CMD_PARAM); break; default: // Decode single commands @@ -657,14 +660,14 @@ void hp98x6_upi_device::decode_cmd(uint8_t cmd) // 1100'0001 // Start reading ID PROM LOG("Start PROM read\n"); - m_ram[ RAM_POS_READING_PROM ] = 1; - m_ram[ RAM_POS_PROM_ADDR ] = 0; + m_ram[RAM_POS_READING_PROM] = 1; + m_ram[RAM_POS_PROM_ADDR] = 0; break; case CMD_RD_PROM_STOP: // 1100'0000 // Stop reading ID PROM LOG("Stop PROM read\n"); - m_ram[ RAM_POS_READING_PROM ] = 0; + m_ram[RAM_POS_READING_PROM] = 0; break; default: LOG("Unknown UPI cmd %02x\n", cmd); @@ -673,43 +676,43 @@ void hp98x6_upi_device::decode_cmd(uint8_t cmd) } // Then decode write commands that require additional actions - switch (m_ram[ RAM_POS_1_R5_W_PTR ]) { + switch (m_ram[RAM_POS_1_R5_W_PTR]) { case RAM_POS_TOD_1: // Set time-of-day - m_ram[ RAM_POS_TOD_1 ] = 0; - m_ram[ RAM_POS_TOD_2 ] = 0; - m_ram[ RAM_POS_TOD_3 ] = 0; + m_ram[RAM_POS_TOD_1] = 0; + m_ram[RAM_POS_TOD_2] = 0; + m_ram[RAM_POS_TOD_3] = 0; break; case RAM_POS_DAY_1 - 1: // Set day - m_ram[ RAM_POS_1_R5_W_PTR ] = RAM_POS_DAY_1; + m_ram[RAM_POS_1_R5_W_PTR] = RAM_POS_DAY_1; break; case RAM_POS_FHS_1: // Set FHS - BIT_CLR(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_FHS_BIT); - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_FHS_BIT); + BIT_CLR(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_FHS_BIT); + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_FHS_BIT); m_irq7_write_func(false); break; case RAM_POS_MATCH_1: - BIT_CLR(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_MATCH_BIT); - BIT_CLR(m_ram[ RAM_POS_1_R3_TIMER_STS ], R3_TIMER_STS_MATCH_BIT); - if ((m_ram[ RAM_POS_1_R3_TIMER_STS ] & R3_TIMER_STS_INT_MASK) == 0) { - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_USER_TMR_BIT); + BIT_CLR(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_MATCH_BIT); + BIT_CLR(m_ram[RAM_POS_1_R3_TIMER_STS], R3_TIMER_STS_MATCH_BIT); + if ((m_ram[RAM_POS_1_R3_TIMER_STS] & R3_TIMER_STS_INT_MASK) == 0) { + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_USER_TMR_BIT); } break; case RAM_POS_DELAY_1: - BIT_CLR(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_DELAY_BIT); - BIT_CLR(m_ram[ RAM_POS_1_R3_TIMER_STS ], R3_TIMER_STS_DELAY_BIT); - if ((m_ram[ RAM_POS_1_R3_TIMER_STS ] & R3_TIMER_STS_INT_MASK) == 0) { - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_USER_TMR_BIT); + BIT_CLR(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_DELAY_BIT); + BIT_CLR(m_ram[RAM_POS_1_R3_TIMER_STS], R3_TIMER_STS_DELAY_BIT); + if ((m_ram[RAM_POS_1_R3_TIMER_STS] & R3_TIMER_STS_INT_MASK) == 0) { + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_USER_TMR_BIT); } break; case RAM_POS_CYCLE_1: - BIT_CLR(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_CYCLE_BIT); - m_ram[ RAM_POS_1_R3_TIMER_STS ] &= ~(R3_TIMER_STS_MISSED_CYCLES_MASK | + BIT_CLR(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_CYCLE_BIT); + m_ram[RAM_POS_1_R3_TIMER_STS] &= ~(R3_TIMER_STS_MISSED_CYCLES_MASK | BIT_MASK(R3_TIMER_STS_CYCLE_BIT)); - if ((m_ram[ RAM_POS_1_R3_TIMER_STS ] & R3_TIMER_STS_INT_MASK) == 0) { - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_USER_TMR_BIT); + if ((m_ram[RAM_POS_1_R3_TIMER_STS] & R3_TIMER_STS_INT_MASK) == 0) { + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_USER_TMR_BIT); } break; } @@ -720,13 +723,13 @@ bool hp98x6_upi_device::add_to_ctr(unsigned ram_idx, unsigned len, const uint8_t unsigned carry = 0; for (unsigned i = ram_idx; i < ram_idx + len; i++) { - unsigned sum = unsigned(m_ram[ i ]) + carry + *op++; + unsigned sum = unsigned(m_ram[i]) + carry + *op++; if (sum < 256) { carry = 0; - m_ram[ i ] = uint8_t(sum); + m_ram[i] = uint8_t(sum); } else { carry = 1; - m_ram[ i ] = uint8_t(sum - 256); + m_ram[i] = uint8_t(sum - 256); } } @@ -737,81 +740,81 @@ void hp98x6_upi_device::ten_ms_update_key() { // Acquire shift & control (note that bits in R5_FLAGS3 are inverted) if (BIT(m_shift->read(), 0)) { - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_SHIFT_UP_BIT); + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_SHIFT_UP_BIT); } else { - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_SHIFT_UP_BIT); + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_SHIFT_UP_BIT); } if (BIT(m_shift->read(), 1)) { - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_CTRL_UP_BIT); + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_CTRL_UP_BIT); } else { - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_CTRL_UP_BIT); + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_CTRL_UP_BIT); } // Scan keyboard - ioport_value keys[ 4 ]; + ioport_value keys[4]; acquire_keys(keys); for (uint8_t idx = MIN_SCANCODE; idx <= MAX_SCANCODE; idx++) { if (is_key_down(keys, idx)) { // Check for RESET key combo - if (!BIT(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_SHIFT_UP_BIT) && + if (!BIT(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_SHIFT_UP_BIT) && idx == PAUSE_SCANCODE) { - if (m_ram[ RAM_POS_RST_DEB_CNT ] == 0 && - !BIT(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_RST_MASK_BIT)) { + if (m_ram[RAM_POS_RST_DEB_CNT] == 0 && + !BIT(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_RST_MASK_BIT)) { // RESET key pressed: start delay to interrupt 68k LOG("Reset pressed\n"); - m_fsm_state = FSM_ST::ST_RESETTING; + m_fsm_state = fsm_st::ST_RESETTING; m_delay_timer->adjust(clocks_to_attotime(RESET_DELAY)); // Reset cancels FHS timer - BIT_CLR(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_FHS_BIT); - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_FHS_BIT); + BIT_CLR(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_FHS_BIT); + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_FHS_BIT); } - m_ram[ RAM_POS_RST_DEB_CNT ] = R2_FLAGS1_DEB_INIT; - } else if (idx != m_ram[ RAM_POS_0_R7_KEY_DOWN ]) { - if (m_ram[ RAM_POS_0_R7_KEY_DOWN ] == SCANCODE_NONE) { + m_ram[RAM_POS_RST_DEB_CNT] = R2_FLAGS1_DEB_INIT; + } else if (idx != m_ram[RAM_POS_0_R7_KEY_DOWN]) { + if (m_ram[RAM_POS_0_R7_KEY_DOWN] == SCANCODE_NONE) { // New key is down LOG("Key %02x\n", idx); set_new_key(idx); - } else if (m_ram[ RAM_POS_0_R6_ROLLOVER ] == SCANCODE_NONE) { + } else if (m_ram[RAM_POS_0_R6_ROLLOVER] == SCANCODE_NONE) { // Save roll-over key LOG("Rollover key %02x\n", idx); - m_ram[ RAM_POS_0_R6_ROLLOVER ] = idx; + m_ram[RAM_POS_0_R6_ROLLOVER] = idx; } } else { // Key kept down, reload debounce counter - m_ram[ RAM_POS_0_R2_FLAGS1 ] = (m_ram[ RAM_POS_0_R2_FLAGS1 ] & ~R2_FLAGS1_DEB_MASK) | R2_FLAGS1_DEB_INIT; + m_ram[RAM_POS_0_R2_FLAGS1] = (m_ram[RAM_POS_0_R2_FLAGS1] & ~R2_FLAGS1_DEB_MASK) | R2_FLAGS1_DEB_INIT; } } } // Debounce RESET key - if (m_ram[ RAM_POS_RST_DEB_CNT ] != 0) { - m_ram[ RAM_POS_RST_DEB_CNT ]--; + if (m_ram[RAM_POS_RST_DEB_CNT] != 0) { + m_ram[RAM_POS_RST_DEB_CNT]--; } // Debounce, auto-repeat and roll-over - if (m_ram[ RAM_POS_0_R7_KEY_DOWN ] != SCANCODE_NONE) { + if (m_ram[RAM_POS_0_R7_KEY_DOWN] != SCANCODE_NONE) { // Do debouncing - m_ram[ RAM_POS_0_R2_FLAGS1 ]--; - if ((m_ram[ RAM_POS_0_R2_FLAGS1 ] & R2_FLAGS1_DEB_MASK) != 0) { + m_ram[RAM_POS_0_R2_FLAGS1]--; + if ((m_ram[RAM_POS_0_R2_FLAGS1] & R2_FLAGS1_DEB_MASK) != 0) { // Key still down - m_ram[ RAM_POS_AR_TIMER ]++; - if (m_ram[ RAM_POS_AR_TIMER ] == 0) { + m_ram[RAM_POS_AR_TIMER]++; + if (m_ram[RAM_POS_AR_TIMER] == 0) { // Repeat key if A/R is enabled - m_ram[ RAM_POS_AR_TIMER ] = m_ram[ RAM_POS_AR_RATE ]; - if (m_ram[ RAM_POS_AR_RATE ]) { - LOG("A/R key %02x\n", m_ram[ RAM_POS_0_R7_KEY_DOWN ]); - BIT_SET(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_AR_BIT); + m_ram[RAM_POS_AR_TIMER] = m_ram[RAM_POS_AR_RATE]; + if (m_ram[RAM_POS_AR_RATE]) { + LOG("A/R key %02x\n", m_ram[RAM_POS_0_R7_KEY_DOWN]); + BIT_SET(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_AR_BIT); } } // Key is up & debounced, get roll-over key (if any) - } else if (m_ram[ RAM_POS_0_R6_ROLLOVER ] != SCANCODE_NONE) { - LOG("Shift rollover key %02x\n", m_ram[ RAM_POS_0_R6_ROLLOVER ]); - set_new_key(m_ram[ RAM_POS_0_R6_ROLLOVER ]); - m_ram[ RAM_POS_0_R6_ROLLOVER ] = SCANCODE_NONE; + } else if (m_ram[RAM_POS_0_R6_ROLLOVER] != SCANCODE_NONE) { + LOG("Shift rollover key %02x\n", m_ram[RAM_POS_0_R6_ROLLOVER]); + set_new_key(m_ram[RAM_POS_0_R6_ROLLOVER]); + m_ram[RAM_POS_0_R6_ROLLOVER] = SCANCODE_NONE; } else { - m_ram[ RAM_POS_0_R7_KEY_DOWN ] = SCANCODE_NONE; - BIT_CLR(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_AR_BIT); + m_ram[RAM_POS_0_R7_KEY_DOWN] = SCANCODE_NONE; + BIT_CLR(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_AR_BIT); } } } @@ -827,7 +830,7 @@ void hp98x6_upi_device::ten_ms_update_dial() diff_int -= 256; } LOG("DIAL %d\n", diff_int); - int pos = int(m_ram[ RAM_POS_1_R4_RPG_COUNT ]); + int pos = int(m_ram[RAM_POS_1_R4_RPG_COUNT]); // Sign extension if (BIT(pos, 7)) { pos -= 256; @@ -840,16 +843,16 @@ void hp98x6_upi_device::ten_ms_update_dial() pos = 127; } - m_ram[ RAM_POS_1_R4_RPG_COUNT ] = uint8_t(pos); + m_ram[RAM_POS_1_R4_RPG_COUNT] = uint8_t(pos); m_last_dial = dial; } - if (--m_ram[ RAM_POS_RPG_TIMER ] == 0) { + if (--m_ram[RAM_POS_RPG_TIMER] == 0) { // Dial timer expired - m_ram[ RAM_POS_RPG_TIMER ] = m_ram[ RAM_POS_RPG_INT_RATE ]; - if (m_ram[ RAM_POS_1_R4_RPG_COUNT ]) { + m_ram[RAM_POS_RPG_TIMER] = m_ram[RAM_POS_RPG_INT_RATE]; + if (m_ram[RAM_POS_1_R4_RPG_COUNT]) { // Time to send dial movement to 68k - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_RPG_BIT); + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_RPG_BIT); } } } @@ -857,99 +860,99 @@ void hp98x6_upi_device::ten_ms_update_dial() void hp98x6_upi_device::ten_ms_update_timers() { // 10-ms timer is up - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_PSI_BIT); + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_PSI_BIT); // Advance TOD uint8_t one[] = { 1, 0, 0 }; (void)add_to_ctr(RAM_POS_TOD_1, 3, one); // Check for one full day of counting - if (m_ram[ RAM_POS_TOD_3 ] > TOD_3_ONE_DAY || - (m_ram[ RAM_POS_TOD_3 ] == TOD_3_ONE_DAY && - (m_ram[ RAM_POS_TOD_2 ] > TOD_2_ONE_DAY || - (m_ram[ RAM_POS_TOD_2 ] == TOD_2_ONE_DAY && - m_ram[ RAM_POS_TOD_1 ] >= TOD_1_ONE_DAY)))) { + if (m_ram[RAM_POS_TOD_3] > TOD_3_ONE_DAY || + (m_ram[RAM_POS_TOD_3] == TOD_3_ONE_DAY && + (m_ram[RAM_POS_TOD_2] > TOD_2_ONE_DAY || + (m_ram[RAM_POS_TOD_2] == TOD_2_ONE_DAY && + m_ram[RAM_POS_TOD_1] >= TOD_1_ONE_DAY)))) { // Clear TOD and advance DAY counter - m_ram[ RAM_POS_TOD_1 ] = 0; - m_ram[ RAM_POS_TOD_2 ] = 0; - m_ram[ RAM_POS_TOD_3 ] = 0; + m_ram[RAM_POS_TOD_1] = 0; + m_ram[RAM_POS_TOD_2] = 0; + m_ram[RAM_POS_TOD_3] = 0; (void)add_to_ctr(RAM_POS_DAY_1, 2, one); } // Check if "match" timer matches TOD - if (BIT(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_MATCH_BIT) && - m_ram[ RAM_POS_TOD_1 ] == m_ram[ RAM_POS_MATCH_1 ] && - m_ram[ RAM_POS_TOD_2 ] == m_ram[ RAM_POS_MATCH_2 ] && - m_ram[ RAM_POS_TOD_3 ] == m_ram[ RAM_POS_MATCH_3 ]) { - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_USER_TMR_BIT); - BIT_SET(m_ram[ RAM_POS_1_R3_TIMER_STS ], R3_TIMER_STS_MATCH_BIT); + if (BIT(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_MATCH_BIT) && + m_ram[RAM_POS_TOD_1] == m_ram[RAM_POS_MATCH_1] && + m_ram[RAM_POS_TOD_2] == m_ram[RAM_POS_MATCH_2] && + m_ram[RAM_POS_TOD_3] == m_ram[RAM_POS_MATCH_3]) { + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_USER_TMR_BIT); + BIT_SET(m_ram[RAM_POS_1_R3_TIMER_STS], R3_TIMER_STS_MATCH_BIT); // Match timer is self-canceling - BIT_CLR(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_MATCH_BIT); + BIT_CLR(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_MATCH_BIT); } // Update FHS timer - if (BIT(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_FHS_BIT) && + if (BIT(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_FHS_BIT) && add_to_ctr(RAM_POS_FHS_1, 2, one)) { - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_FHS_BIT); + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_FHS_BIT); // Is the FHS timer self-canceling? try_fhs_output(); } // Update cyclic timer - if (BIT(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_CYCLE_BIT) && + if (BIT(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_CYCLE_BIT) && add_to_ctr(RAM_POS_CYCLE_1, 3, one)) { - if (BIT(m_ram[ RAM_POS_1_R3_TIMER_STS ], R3_TIMER_STS_CYCLE_BIT) && - (m_ram[ RAM_POS_1_R3_TIMER_STS ] & R3_TIMER_STS_MISSED_CYCLES_MASK) != R3_TIMER_STS_MISSED_CYCLES_MASK) { + if (BIT(m_ram[RAM_POS_1_R3_TIMER_STS], R3_TIMER_STS_CYCLE_BIT) && + (m_ram[RAM_POS_1_R3_TIMER_STS] & R3_TIMER_STS_MISSED_CYCLES_MASK) != R3_TIMER_STS_MISSED_CYCLES_MASK) { // Increment number of missed cycle interrupts - m_ram[ RAM_POS_1_R3_TIMER_STS ]++; + m_ram[RAM_POS_1_R3_TIMER_STS]++; } - BIT_SET(m_ram[ RAM_POS_1_R3_TIMER_STS ], R3_TIMER_STS_CYCLE_BIT); - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_USER_TMR_BIT); + BIT_SET(m_ram[RAM_POS_1_R3_TIMER_STS], R3_TIMER_STS_CYCLE_BIT); + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_USER_TMR_BIT); // Reload timer - m_ram[ RAM_POS_CYCLE_1 ] = m_ram[ RAM_POS_CYCLE_SAVE_1 ]; - m_ram[ RAM_POS_CYCLE_2 ] = m_ram[ RAM_POS_CYCLE_SAVE_2 ]; - m_ram[ RAM_POS_CYCLE_3 ] = m_ram[ RAM_POS_CYCLE_SAVE_3 ]; + m_ram[RAM_POS_CYCLE_1] = m_ram[RAM_POS_CYCLE_SAVE_1]; + m_ram[RAM_POS_CYCLE_2] = m_ram[RAM_POS_CYCLE_SAVE_2]; + m_ram[RAM_POS_CYCLE_3] = m_ram[RAM_POS_CYCLE_SAVE_3]; } // Update delay timer - if (BIT(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_DELAY_BIT) && + if (BIT(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_DELAY_BIT) && add_to_ctr(RAM_POS_DELAY_1, 3, one)) { - BIT_SET(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_USER_TMR_BIT); - BIT_SET(m_ram[ RAM_POS_1_R3_TIMER_STS ], R3_TIMER_STS_DELAY_BIT); + BIT_SET(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_USER_TMR_BIT); + BIT_SET(m_ram[RAM_POS_1_R3_TIMER_STS], R3_TIMER_STS_DELAY_BIT); // Is the delay timer self-canceling? } } void hp98x6_upi_device::ten_ms_update_beep() { - if (BIT(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_BEEP_BIT) && - ++m_ram[ RAM_POS_BEEP_TIMER ] == 0) { + if (BIT(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_BEEP_BIT) && + ++m_ram[RAM_POS_BEEP_TIMER] == 0) { m_beep->set_state(0); - BIT_CLR(m_ram[ RAM_POS_0_R2_FLAGS1 ], R2_FLAGS1_BEEP_BIT); + BIT_CLR(m_ram[RAM_POS_0_R2_FLAGS1], R2_FLAGS1_BEEP_BIT); } } void hp98x6_upi_device::set_new_key(uint8_t scancode) { - m_ram[ RAM_POS_0_R7_KEY_DOWN ] = scancode; + m_ram[RAM_POS_0_R7_KEY_DOWN] = scancode; // Trigger output of key - BIT_SET(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_AR_BIT); + BIT_SET(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_AR_BIT); // Set A/R delay counter - m_ram[ RAM_POS_AR_TIMER ] = m_ram[ RAM_POS_AR_WAIT ]; + m_ram[RAM_POS_AR_TIMER] = m_ram[RAM_POS_AR_WAIT]; // Load debounce counter - m_ram[ RAM_POS_0_R2_FLAGS1 ] = (m_ram[ RAM_POS_0_R2_FLAGS1 ] & ~R2_FLAGS1_DEB_MASK) | R2_FLAGS1_DEB_INIT; + m_ram[RAM_POS_0_R2_FLAGS1] = (m_ram[RAM_POS_0_R2_FLAGS1] & ~R2_FLAGS1_DEB_MASK) | R2_FLAGS1_DEB_INIT; } -void hp98x6_upi_device::acquire_keys(ioport_value input[ 4 ]) +void hp98x6_upi_device::acquire_keys(ioport_value input[4]) { // Search for longest sequence among pressed keys int max_len = 0; unsigned n_pressed = 0; for (unsigned i = 0; i < 4; i++) { - input[ i ] = m_keys[ i ]->read(); - auto w = input[ i ]; + input[i] = m_keys[i]->read(); + auto w = input[i]; while (w) { auto mask = BIT_MASK(31 - count_leading_zeros_32(w)); - auto len = m_keys[ i ]->field(mask)->seq().length(); + auto len = m_keys[i]->field(mask)->seq().length(); if (len > max_len) { max_len = len; } @@ -960,12 +963,12 @@ void hp98x6_upi_device::acquire_keys(ioport_value input[ 4 ]) // Filter out pressed keys with sequences shorter than the longest one if (n_pressed > 1) { for (unsigned i = 0; i < 4; i++) { - auto w = input[ i ]; + auto w = input[i]; while (w) { auto mask = BIT_MASK(31 - count_leading_zeros_32(w)); - auto len = m_keys[ i ]->field(mask)->seq().length(); + auto len = m_keys[i]->field(mask)->seq().length(); if (len < max_len) { - input[ i ] &= ~mask; + input[i] &= ~mask; } w &= ~mask; } @@ -973,19 +976,19 @@ void hp98x6_upi_device::acquire_keys(ioport_value input[ 4 ]) } } -bool hp98x6_upi_device::is_key_down(const ioport_value input[ 4 ], uint8_t idx) +bool hp98x6_upi_device::is_key_down(const ioport_value input[4], uint8_t idx) { unsigned row = idx % 8; unsigned col = idx / 8; - return BIT(input[ row / 2 ], col + ((row & 1) << 4)); + return BIT(input[row / 2], col + ((row & 1) << 4)); } uint8_t hp98x6_upi_device::encode_shift_ctrl(uint8_t st) const { - if (BIT(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_CTRL_UP_BIT)) { + if (BIT(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_CTRL_UP_BIT)) { BIT_SET(st, 5); } - if (BIT(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_SHIFT_UP_BIT)) { + if (BIT(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_SHIFT_UP_BIT)) { BIT_SET(st, 4); } return st; @@ -995,41 +998,41 @@ void hp98x6_upi_device::try_output() { if (!BIT(m_status, STATUS_OBF_BIT)) { // Key - if (BIT(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_AR_BIT) && - !BIT(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_KEY_MASK_BIT)) { + if (BIT(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_AR_BIT) && + !BIT(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_KEY_MASK_BIT)) { uint8_t st = encode_shift_ctrl(ST_KEY); - write_ob_st(m_ram[ RAM_POS_0_R7_KEY_DOWN ], st); - BIT_CLR(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_AR_BIT); + write_ob_st(m_ram[RAM_POS_0_R7_KEY_DOWN], st); + BIT_CLR(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_AR_BIT); // If key output is not possible now, autorepeat bit is not cleared // to try again at a later time } else { // PSI and/or timers - bool psi = BIT(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_PSI_BIT) && - !BIT(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_PSI_MASK_BIT); - bool timer = BIT(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_USER_TMR_BIT) && - !BIT(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_TMR_MASK_BIT); + bool psi = BIT(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_PSI_BIT) && + !BIT(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_PSI_MASK_BIT); + bool timer = BIT(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_USER_TMR_BIT) && + !BIT(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_TMR_MASK_BIT); if (psi || timer) { uint8_t st = (psi ? ST_PSI : 0) | (timer ? ST_TIMER : 0); - write_ob_st(m_ram[ RAM_POS_1_R3_TIMER_STS ], st); + write_ob_st(m_ram[RAM_POS_1_R3_TIMER_STS], st); if (psi) { - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_PSI_BIT); + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_PSI_BIT); } if (timer) { - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_USER_TMR_BIT); - m_ram[ RAM_POS_1_R3_TIMER_STS ] = 0; + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_USER_TMR_BIT); + m_ram[RAM_POS_1_R3_TIMER_STS] = 0; } - } else if (BIT(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_RPG_BIT) && - !BIT(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_KEY_MASK_BIT)) { + } else if (BIT(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_RPG_BIT) && + !BIT(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_KEY_MASK_BIT)) { // Dial position uint8_t st = encode_shift_ctrl(ST_RPG); - write_ob_st(m_ram[ RAM_POS_1_R4_RPG_COUNT ], st); - m_ram[ RAM_POS_1_R4_RPG_COUNT ] = 0; - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_RPG_BIT); - } else if (BIT(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_READ_BIT)) { + write_ob_st(m_ram[RAM_POS_1_R4_RPG_COUNT], st); + m_ram[RAM_POS_1_R4_RPG_COUNT] = 0; + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_RPG_BIT); + } else if (BIT(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_READ_BIT)) { // Read data - write_ob_st(m_ram[ m_ram[ RAM_POS_1_R6_R_PTR ] ], ST_REQUESTED_DATA); - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_READ_BIT); + write_ob_st(m_ram[m_ram[RAM_POS_1_R6_R_PTR]], ST_REQUESTED_DATA); + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_READ_BIT); } } } @@ -1038,10 +1041,10 @@ void hp98x6_upi_device::try_output() void hp98x6_upi_device::try_fhs_output() { // Check if FHS NMI interrupt is to be raised - if (BIT(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_FHS_BIT) && - !BIT(m_ram[ RAM_POS_0_R4_FLAGS2 ], R4_FLAGS2_FHS_MASK_BIT)) { + if (BIT(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_FHS_BIT) && + !BIT(m_ram[RAM_POS_0_R4_FLAGS2], R4_FLAGS2_FHS_MASK_BIT)) { LOG("NMI from FHS\n"); - BIT_CLR(m_ram[ RAM_POS_0_R5_FLAGS3 ], R5_FLAGS3_FHS_BIT); + BIT_CLR(m_ram[RAM_POS_0_R5_FLAGS3], R5_FLAGS3_FHS_BIT); // F0 = 1 means "NMI from FHS timer" BIT_SET(m_status, STATUS_F0_BIT); m_irq7_write_func(true); diff --git a/src/mame/hp/hp98x6_upi.h b/src/mame/hp/hp98x6_upi.h index ad70d0f5900..cda96d2e7a9 100644 --- a/src/mame/hp/hp98x6_upi.h +++ b/src/mame/hp/hp98x6_upi.h @@ -16,7 +16,7 @@ #include "machine/timer.h" #include "sound/beep.h" -#include "speaker.h" + class hp98x6_upi_device : public device_t { @@ -40,6 +40,13 @@ protected: virtual void device_reset() override; private: + enum class fsm_st { + ST_IDLE, + ST_POR_TEST1, + ST_POR_TEST2, + ST_RESETTING + }; + required_ioport_array<4> m_keys; required_ioport m_shift; required_ioport m_dial; @@ -50,21 +57,14 @@ private: devcb_write_line m_irq1_write_func; devcb_write_line m_irq7_write_func; - uint8_t m_ram[ 64 ]; + uint8_t m_ram[64]; uint8_t m_data_in; uint8_t m_data_out; uint8_t m_status; bool m_ready; ioport_value m_last_dial; - enum class FSM_ST { - ST_IDLE, - ST_POR_TEST1, - ST_POR_TEST2, - ST_RESETTING - }; - - FSM_ST m_fsm_state; + fsm_st m_fsm_state; TIMER_DEVICE_CALLBACK_MEMBER(ten_ms); TIMER_DEVICE_CALLBACK_MEMBER(delay); @@ -80,8 +80,8 @@ private: void ten_ms_update_timers(); void ten_ms_update_beep(); void set_new_key(uint8_t scancode); - void acquire_keys(ioport_value input[ 4 ]); - bool is_key_down(const ioport_value input[ 4 ], uint8_t idx); + void acquire_keys(ioport_value input[4]); + bool is_key_down(const ioport_value input[4], uint8_t idx); uint8_t encode_shift_ctrl(uint8_t st) const; void try_output(); void try_fhs_output(); diff --git a/src/mame/igs/igs_fear.cpp b/src/mame/igs/igs_fear.cpp index 3689010fcac..4212c712582 100644 --- a/src/mame/igs/igs_fear.cpp +++ b/src/mame/igs/igs_fear.cpp @@ -2,16 +2,20 @@ // copyright-holders:David Haywood, XingXing #include "emu.h" + +#include "pgmcrypt.h" + #include "cpu/arm7/arm7.h" #include "cpu/arm7/arm7core.h" #include "cpu/xa/xa.h" #include "machine/nvram.h" -#include "pgmcrypt.h" #include "sound/ics2115.h" + #include "emupal.h" #include "screen.h" #include "speaker.h" + namespace { class igs_fear_state : public driver_device @@ -61,12 +65,12 @@ void igs_fear_state::draw_sprite(bitmap_ind16 &bitmap, const rectangle &cliprect if ((romoffset != 0) && (romoffset != 0xffffffff)) { //logerror("x=%d, y=%d, w=%d pix, h=%d pix, c=0x%02x, romoffset=0x%08x\n", xpos, ypos, width, height, palette, romoffset << 2); - uint8_t* gfxrom = &m_gfxrom[romoffset << 2]; + const uint8_t *gfxrom = &m_gfxrom[romoffset << 2]; palette = (palette & 0x3f) << 7; for (int y = 0; y < height; y++) { - uint16_t* dest = &bitmap.pix(ypos + y); + uint16_t *dest = &bitmap.pix(ypos + y); for (int x = 0; x < width; x++) { uint8_t pix = *gfxrom++; @@ -81,7 +85,7 @@ void igs_fear_state::draw_sprite(bitmap_ind16 &bitmap, const rectangle &cliprect } } -uint32_t igs_fear_state::screen_update(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect) +uint32_t igs_fear_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0x3ff, cliprect); @@ -181,7 +185,7 @@ ROM_START( fearless ) ROM_END ROM_START( superkds ) - ROM_REGION( 0x04000, "maincpu", 0 ) // Internal rom of IGS027A ARM based MCU */ + ROM_REGION( 0x04000, "maincpu", 0 ) // Internal rom of IGS027A ARM based MCU ROM_LOAD( "superkids_igs027a.bin", 0x00000, 0x4000, CRC(9a8e790d) SHA1(ab020a04a4ed0c0e5ec8c979f206fe57572d2304) ) // sticker marked 'F5' ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg @@ -208,6 +212,7 @@ void igs_fear_state::init_igs_fear() */ fearless_decrypt(machine()); } + void igs_fear_state::init_igs_superkds() { /* diff --git a/src/mame/igs/pgmcrypt.cpp b/src/mame/igs/pgmcrypt.cpp index b52213ff6ee..e56fcdc54b0 100644 --- a/src/mame/igs/pgmcrypt.cpp +++ b/src/mame/igs/pgmcrypt.cpp @@ -1418,6 +1418,7 @@ static const uint8_t superkds_tab[256] = { void superkds_decrypt(running_machine &machine) { + // FIXME: Endianness bug - casting a 32-bit ROM region to u16 auto const src = reinterpret_cast(machine.root_device().memregion("user1")->base()); int const rom_size = 0x80000; @@ -1435,7 +1436,7 @@ void superkds_decrypt(running_machine &machine) IGS27_CRYPT7 IGS27_CRYPT8 - x ^= superkds_tab[(i>> 1) & 0xff] << 8; + x ^= superkds_tab[(i >> 1) & 0xff] << 8; src[i] = x; } @@ -1443,6 +1444,7 @@ void superkds_decrypt(running_machine &machine) void fearless_decrypt(running_machine &machine) { + // FIXME: Endianness bug - casting a 32-bit ROM region to u16 auto const src = reinterpret_cast(machine.root_device().memregion("user1")->base()); int const rom_size = 0x80000; @@ -1461,7 +1463,7 @@ void fearless_decrypt(running_machine &machine) IGS27_CRYPT7 IGS27_CRYPT8 - x ^= superkds_tab[(i>> 1) & 0xff] << 8; + x ^= superkds_tab[(i >> 1) & 0xff] << 8; src[i] = x; } diff --git a/src/mame/konami/ksys573.cpp b/src/mame/konami/ksys573.cpp index 45e094b66bd..04835287a4c 100644 --- a/src/mame/konami/ksys573.cpp +++ b/src/mame/konami/ksys573.cpp @@ -489,7 +489,7 @@ public: m_image(*this, "ata:0:cr589"), m_pccard1(*this, "pccard1"), m_pccard2(*this, "pccard2"), - m_pccard_cd{1, 1}, + m_pccard_cd{ 1, 1 }, m_h8_response(*this, "h8_response"), m_ram(*this, "maincpu:ram"), m_flashbank(*this, "flashbank"), diff --git a/src/mame/layout/pickytlk.lay b/src/mame/layout/pickytlk.lay index 0b51f57e34d..84ba730666a 100644 --- a/src/mame/layout/pickytlk.lay +++ b/src/mame/layout/pickytlk.lay @@ -24,7 +24,7 @@ license:CC0-1.0