src/mess/drivers/dolphin.c
| r9898 | r9899 | |
| 51 | 51 | should look like, but we DID NOT look at the source code. |
| 52 | 52 | |
| 53 | 53 | ****************************************************************************/ |
| 54 | #define ADDRESS_MAP_MODERN |
| 54 | 55 | |
| 55 | 56 | #include "emu.h" |
| 56 | 57 | #include "cpu/s2650/s2650.h" |
| r9898 | r9899 | |
| 61 | 62 | { |
| 62 | 63 | public: |
| 63 | 64 | dolphin_state(running_machine &machine, const driver_device_config_base &config) |
| 64 | | : driver_device(machine, config) { } |
| 65 | | |
| 65 | : driver_device(machine, config), |
| 66 | m_maincpu(*this, "maincpu") |
| 67 | { } |
| 68 | required_device<cpu_device> m_maincpu; |
| 69 | DECLARE_READ8_MEMBER( dolphin_07_r ); |
| 70 | DECLARE_WRITE8_MEMBER( dolphin_00_w ); |
| 66 | 71 | }; |
| 67 | 72 | |
| 68 | | static WRITE8_HANDLER( dolphin_00_w ) |
| 73 | WRITE8_MEMBER( dolphin_state::dolphin_00_w ) |
| 69 | 74 | { |
| 70 | 75 | // don't know which offset does which digit |
| 71 | 76 | |
| 72 | 77 | output_set_digit_value(offset, data); |
| 73 | 78 | } |
| 74 | 79 | |
| 75 | | static READ8_HANDLER( dolphin_07_r ) |
| 80 | READ8_MEMBER( dolphin_state::dolphin_07_r ) |
| 76 | 81 | { |
| 77 | 82 | UINT8 keyin, i, data = 0xff; |
| 78 | 83 | |
| 79 | | keyin = input_port_read(space->machine, "X0"); |
| 84 | keyin = input_port_read(machine, "X0"); |
| 80 | 85 | if (keyin != 0xff) |
| 81 | 86 | for (i = 0; i < 8; i++) |
| 82 | 87 | if BIT(~keyin, i) |
| r9898 | r9899 | |
| 85 | 90 | break; |
| 86 | 91 | } |
| 87 | 92 | |
| 88 | | keyin = input_port_read(space->machine, "X1"); |
| 93 | keyin = input_port_read(machine, "X1"); |
| 89 | 94 | if (keyin != 0xff) |
| 90 | 95 | for (i = 0; i < 8; i++) |
| 91 | 96 | if BIT(~keyin, i) |
| r9898 | r9899 | |
| 94 | 99 | break; |
| 95 | 100 | } |
| 96 | 101 | |
| 97 | | data &= input_port_read(space->machine, "X2"); |
| 102 | data &= input_port_read(machine, "X2"); |
| 98 | 103 | |
| 99 | 104 | return data; |
| 100 | 105 | } |
| 101 | 106 | |
| 102 | | static ADDRESS_MAP_START(dolphin_mem, ADDRESS_SPACE_PROGRAM, 8) |
| 107 | static ADDRESS_MAP_START(dolphin_mem, ADDRESS_SPACE_PROGRAM, 8, dolphin_state) |
| 103 | 108 | ADDRESS_MAP_UNMAP_HIGH |
| 104 | 109 | AM_RANGE( 0x0000, 0x01ff) AM_ROM |
| 105 | 110 | AM_RANGE( 0x0200, 0x02ff) AM_RAM |
| 106 | 111 | ADDRESS_MAP_END |
| 107 | 112 | |
| 108 | | static ADDRESS_MAP_START( dolphin_io , ADDRESS_SPACE_IO, 8) |
| 113 | static ADDRESS_MAP_START( dolphin_io , ADDRESS_SPACE_IO, 8, dolphin_state) |
| 109 | 114 | ADDRESS_MAP_UNMAP_HIGH |
| 110 | 115 | AM_RANGE(0x00, 0x03) AM_WRITE(dolphin_00_w) // 4-led display |
| 111 | 116 | //AM_RANGE(0x06, 0x06) AM_WRITE(dolphin_06_w) // speaker (NOT a keyclick) |