trunk/src/mame/drivers/marywu.cpp
| r252974 | r252975 | |
| 30 | 30 | { } |
| 31 | 31 | |
| 32 | 32 | DECLARE_WRITE8_MEMBER(display_7seg_data_w); |
| 33 | DECLARE_WRITE8_MEMBER(multiplex_7seg_w); |
| 34 | private: |
| 35 | uint8_t m_selected_7seg_module; |
| 33 | 36 | }; |
| 34 | 37 | |
| 38 | WRITE8_MEMBER( marywu_state::multiplex_7seg_w ) |
| 39 | { |
| 40 | m_selected_7seg_module = data; |
| 41 | } |
| 42 | |
| 35 | 43 | WRITE8_MEMBER( marywu_state::display_7seg_data_w ) |
| 36 | 44 | { |
| 37 | 45 | static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // HEF4511BP (7 seg display driver) |
| 38 | 46 | |
| 39 | | output_set_digit_value(0, patterns[data & 0x0F]); |
| 40 | | output_set_digit_value(1, patterns[(data >> 4) & 0x0F]); |
| 47 | output_set_digit_value(2 * m_selected_7seg_module + 0, patterns[data & 0x0F]); |
| 48 | output_set_digit_value(2 * m_selected_7seg_module + 1, patterns[(data >> 4) & 0x0F]); |
| 41 | 49 | } |
| 42 | 50 | |
| 43 | 51 | static ADDRESS_MAP_START( program_map, AS_PROGRAM, 8, marywu_state ) |
| r252974 | r252975 | |
| 60 | 68 | |
| 61 | 69 | /* Keyboard & display interface */ |
| 62 | 70 | MCFG_DEVICE_ADD("i8279", I8279, XTAL_10_738635MHz) /* should it be perhaps a fraction of the XTAL clock ? */ |
| 63 | | // MCFG_I8279_OUT_SL_CB(WRITE8(marywu_state, marywu_scanlines_w)) // scan SL lines |
| 71 | MCFG_I8279_OUT_SL_CB(WRITE8(marywu_state, multiplex_7seg_w)) // select block of 7seg modules by multiplexing the SL scan lines |
| 64 | 72 | // MCFG_I8279_IN_RL_CB(READ8(marywu_state, marywu_kbd_r)) // kbd RL lines |
| 65 | 73 | MCFG_I8279_OUT_DISP_CB(WRITE8(marywu_state, display_7seg_data_w)) |
| 66 | 74 | |