diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp index c0705c8b392..1ba84a97a75 100644 --- a/src/mame/drivers/fidelz80.cpp +++ b/src/mame/drivers/fidelz80.cpp @@ -632,7 +632,6 @@ public: UINT16 m_led_select; // 5 bit selects for 7 seg leds and for common other leds, bits are (7seg leds are 0 1 2 3, common other leds are C) 0bxx3210xc UINT16 m_7seg_data; // data for seg leds UINT16 m_led_data; - UINT8 m_digit_line_status[4]; // prevent overwrite of m_7seg_data UINT16 read_inputs(int columns); DECLARE_INPUT_CHANGED_MEMBER(reset_button); @@ -671,7 +670,6 @@ public: DECLARE_READ8_MEMBER(vsc_pio_porta_r); DECLARE_READ8_MEMBER(vsc_pio_portb_r); DECLARE_WRITE8_MEMBER(vsc_pio_portb_w); - DECLARE_INPUT_CHANGED_MEMBER(fidelz80_trigger_reset); // model 7014 and VBC DECLARE_WRITE8_MEMBER(bridgec_speech_w); @@ -684,7 +682,6 @@ public: DECLARE_WRITE8_MEMBER(mcu_command_w); DECLARE_READ8_MEMBER(mcu_data_r); DECLARE_READ8_MEMBER(mcu_status_r); - DECLARE_INPUT_CHANGED_MEMBER(bridgec_trigger_reset); DECLARE_WRITE8_MEMBER(digit_w); protected: @@ -707,7 +704,6 @@ void fidelz80_state::machine_start() m_led_select = 0; m_led_data = 0; m_7seg_data = 0; - memset(m_digit_line_status, 0, sizeof(m_digit_line_status)); // register for savestates save_item(NAME(m_display_maxy)); @@ -723,7 +719,6 @@ void fidelz80_state::machine_start() save_item(NAME(m_led_select)); save_item(NAME(m_led_data)); save_item(NAME(m_7seg_data)); - save_item(NAME(m_digit_line_status)); } void fidelz80_state::machine_reset() @@ -912,8 +907,8 @@ WRITE8_MEMBER(fidelz80_state::vcc_ppi_portc_w) WRITE8_MEMBER(fidelz80_state::cc10_ppi_porta_w) { - // d0-d6: digit segment data - m_7seg_data = data; + // d0-d6: digit segment data (same as VCC) + m_7seg_data = BITSWAP8(data,7,0,1,2,3,4,5,6) & 0x7f; vcc_prepare_display(); // d7: beeper output @@ -970,7 +965,7 @@ WRITE8_MEMBER(fidelz80_state::vsc_ppi_portc_w) /****************************************************************************** - PIO Device, for VSC + Z80 PIO Device, for VSC ******************************************************************************/ READ8_MEMBER(fidelz80_state::vsc_pio_porta_r) @@ -1003,6 +998,35 @@ WRITE8_MEMBER(fidelz80_state::vsc_pio_portb_w) } +/****************************************************************************** + I8243 I/O Expander Device, for VBRC +******************************************************************************/ + +WRITE8_MEMBER(fidelz80_state::digit_w) +{ +// if (m_digit_line_status[offset]) +// return; + +// m_digit_line_status[offset&3] = 1; + + switch (offset) + { + case 0: + m_7seg_data = (m_7seg_data&(~0x000f)) | ((data<<0)&0x000f); + break; + case 1: + m_7seg_data = (m_7seg_data&(~0x00f0)) | ((data<<4)&0x00f0); + break; + case 2: + m_7seg_data = (m_7seg_data&(~0x0f00)) | ((data<<8)&0x0f00); + break; + case 3: + m_7seg_data = (m_7seg_data&(~0xf000)) | ((data<<12)&0xf000); + break; + } +} + + /****************************************************************************** I8041 MCU, for VBRC ******************************************************************************/ @@ -1055,7 +1079,7 @@ WRITE8_MEMBER(fidelz80_state::kp_matrix_w) output().set_led_value(1, out_led); } - memset(m_digit_line_status, 0, sizeof(m_digit_line_status)); +// memset(m_digit_line_status, 0, sizeof(m_digit_line_status)); m_inp_mux = data; } @@ -1087,34 +1111,6 @@ READ8_MEMBER(fidelz80_state::unknown2_r) return machine().rand(); } -/****************************************************************************** - I8243 expander -******************************************************************************/ - -WRITE8_MEMBER(fidelz80_state::digit_w) -{ - if (m_digit_line_status[offset]) - return; - - m_digit_line_status[offset&3] = 1; - - switch (offset) - { - case 0: - m_7seg_data = (m_7seg_data&(~0x000f)) | ((data<<0)&0x000f); - break; - case 1: - m_7seg_data = (m_7seg_data&(~0x00f0)) | ((data<<4)&0x00f0); - break; - case 2: - m_7seg_data = (m_7seg_data&(~0x0f00)) | ((data<<8)&0x0f00); - break; - case 3: - m_7seg_data = (m_7seg_data&(~0xf000)) | ((data<<12)&0xf000); - break; - } -} - /****************************************************************************** basic machine ******************************************************************************/ diff --git a/src/mame/layout/fidel_cc.lay b/src/mame/layout/fidel_cc.lay index 818713acf89..6c10abb5180 100644 --- a/src/mame/layout/fidel_cc.lay +++ b/src/mame/layout/fidel_cc.lay @@ -1,62 +1,69 @@ + + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - - - + + diff --git a/src/mame/layout/fidel_vbrc.lay b/src/mame/layout/fidel_vbrc.lay index 3fbbe99deb3..1afe77102c3 100644 --- a/src/mame/layout/fidel_vbrc.lay +++ b/src/mame/layout/fidel_vbrc.lay @@ -30,7 +30,7 @@ - + diff --git a/src/mame/layout/fidel_vcc.lay b/src/mame/layout/fidel_vcc.lay index 24aabb55f2b..d7546cd8466 100644 --- a/src/mame/layout/fidel_vcc.lay +++ b/src/mame/layout/fidel_vcc.lay @@ -1,48 +1,67 @@ + + + + + + - - - - - - - - - - - - - - - - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + + - + - + + diff --git a/src/mame/layout/fidel_vsc.lay b/src/mame/layout/fidel_vsc.lay index ab74badbb94..c56ae1b11db 100644 --- a/src/mame/layout/fidel_vsc.lay +++ b/src/mame/layout/fidel_vsc.lay @@ -20,7 +20,7 @@ - +