diff --git a/src/devices/cpu/hmcs40/hmcs40d.cpp b/src/devices/cpu/hmcs40/hmcs40d.cpp index e16ff7a2bf9..950bb175ac6 100644 --- a/src/devices/cpu/hmcs40/hmcs40d.cpp +++ b/src/devices/cpu/hmcs40/hmcs40d.cpp @@ -16,7 +16,7 @@ hmcs40_disassembler::hmcs40_disassembler() { // init lfsr pc lut - for (u32 i = 0, pc = 0; i < 0x40; i++) + for (u32 i = 0, pc = 0x3f; i < 0x40; i++) { m_l2r[i] = pc; m_r2l[pc] = i; diff --git a/src/mame/excalibur/ivanto.cpp b/src/mame/excalibur/ivanto.cpp index 3a6346c429b..c08fb4f54ff 100644 --- a/src/mame/excalibur/ivanto.cpp +++ b/src/mame/excalibur/ivanto.cpp @@ -8,8 +8,8 @@ Excalibur Ivan The Terrible (model 701E, H8/3256 version) This is the first version, see ivant.cpp for the newer version. It was produced in a factory owned by Eric White's company (ex-CXG), hence it's not that strange that the LCD is the same as the one in CXG Sphinx Legend and Krypton Challenge. -Ron Nelson was reluctant about it, since it was the same person that bootlegged -his Chess Challenger 10. +Ron Nelson was reluctant about it, since Eric White was the same person that +bootlegged his Fidelity Chess Challenger 10. Hardware notes: - PCB label: EXCALIBUR ELECTRONICS, INC. 6/28/96, IVANT diff --git a/src/mame/saitek/sbackgc.cpp b/src/mame/saitek/sbackgc.cpp index bec64cbb447..d38a75b5f08 100644 --- a/src/mame/saitek/sbackgc.cpp +++ b/src/mame/saitek/sbackgc.cpp @@ -6,7 +6,8 @@ Saitek Sensory Backgammon Computer / Electronic Champion Backgammon NOTE: Before exiting MAME, change the power switch from GO to STOP. Otherwise, -NVRAM won't save properly. +NVRAM won't save properly. For sbackgc, only turn it off when it's the user's +turn to move. These were supposedly programmed by Eric van Riet Paap (not sure about Sensory, but pretty certain about Champion). The Champion program got 3rd place in the @@ -457,11 +458,11 @@ void sbackgc_state::leds_w(u8 data) u8 sbackgc_state::buttons_r() { - u8 data = 0; + u8 data = 0xf; for (int i = 0; i < 4; i++) if (m_inp_mux & m_inputs[i]->read()) - data |= 1 << i; + data ^= 1 << i; return data; } @@ -469,25 +470,27 @@ u8 sbackgc_state::buttons_r() u8 sbackgc_state::input1_r() { // R90-R93: multiplexed inputs - // read buttons (high) - u8 data = buttons_r() & 0xc; + u8 data = 0xf; // read board for (int i = 0; i < 4; i++) if (m_inp_mux & board_r(i)) - data |= 1 << i; + data ^= 1 << i; - return ~data; + // read buttons (high) + return data & (buttons_r() | 3); } u16 sbackgc_state::input2_r() { // D11,D12: read buttons (low) - u16 data = ~buttons_r() << 11 & 0x1800; + u16 data = buttons_r() << 11 & 0x1800; // D13: power switch state + data |= m_power ? 0x2000 : 0; + // D15: freq sel (3MHz or 5MHz) - return data | (m_power ? 0x2000 : 0) | 0x800f; + return data | 0x800f; } void sbackgc_state::control_w(u16 data)