Previous 199869 Revisions Next

r26776 Friday 27th December, 2013 at 08:07:37 UTC by Miodrag Milanović
removed usage of direct handler and timers for reseting (nw)
[src/mess/drivers]lviv.c pmd85.c
[src/mess/includes]lviv.h pmd85.h
[src/mess/machine]lviv.c pmd85.c

trunk/src/mess/drivers/lviv.c
r26775r26776
402402      PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
403403      PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
404404   PORT_START("RESET") /* CPU */
405      PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(PGDN))
405      PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(PGDN)) PORT_CHANGED_MEMBER(DEVICE_SELF, lviv_state, lviv_reset, 0)
406406   PORT_START("JOY") /* Joystick */
407407      PORT_BIT(0x01,  IP_ACTIVE_HIGH, IPT_JOYSTICK_UP)
408408      PORT_BIT(0x02,  IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN)
trunk/src/mess/drivers/pmd85.c
r26775r26776
418418      PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
419419
420420   PORT_START("RESET") /* port 0x10 */
421      PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RST") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE))
421      PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RST") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE)) PORT_CHANGED_MEMBER(DEVICE_SELF, pmd85_state, pmd85_reset, 0)
422422
423423   PORT_START("DSW0") /* port 0x11 */
424424      PORT_CONFNAME( 0x01, 0x00, "Basic ROM Module" )
r26775r26776
521521      PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Continue") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL))
522522      PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
523523   PORT_START("RESET") /* port 0x09 */
524      PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RST") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE))
524      PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RST") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE)) PORT_CHANGED_MEMBER(DEVICE_SELF, pmd85_state, pmd85_reset, 0)
525525INPUT_PORTS_END
526526
527527
trunk/src/mess/machine/lviv.c
r26775r26776
4040   }
4141}
4242
43void lviv_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
43INPUT_CHANGED_MEMBER(lviv_state::lviv_reset)
4444{
45   switch (id)
46   {
47   case TIMER_RESET:
48      machine().schedule_soft_reset();
49      break;
50   default:
51      assert_always(FALSE, "Unknown id in lviv_state::device_timer");
52   }
45   machine().schedule_soft_reset();
5346}
5447
55DIRECT_UPDATE_MEMBER(lviv_state::lviv_directoverride)
56{
57   if (ioport("RESET")->read() & 0x01)
58      timer_set(attotime::from_usec(10), TIMER_RESET);
59   return address;
60}
61
6248READ8_MEMBER(lviv_state::lviv_ppi_0_porta_r)
6349{
6450   return 0xff;
r26775r26776
231217   address_space &space = m_maincpu->space(AS_PROGRAM);
232218   UINT8 *mem;
233219
234   space.set_direct_update_handler(direct_update_delegate(FUNC(lviv_state::lviv_directoverride), this));
235
236220   m_video_ram = m_ram->pointer() + 0xc000;
237221
238222   m_startup_mem_map = 1;
trunk/src/mess/machine/pmd85.c
r26775r26776
759759   case TIMER_CASSETTE:
760760      pmd85_cassette_timer_callback(ptr, param);
761761      break;
762   case TIMER_RESET:
763      pmd_reset(ptr, param);
764      break;
765762   default:
766763      assert_always(FALSE, "Unknown id in pmd85_state::device_timer");
767764   }
r26775r26776
838835   }
839836}
840837
841TIMER_CALLBACK_MEMBER(pmd85_state::pmd_reset)
838INPUT_CHANGED_MEMBER(pmd85_state::pmd85_reset)
842839{
843840   machine().schedule_soft_reset();
844841}
845842
846DIRECT_UPDATE_MEMBER(pmd85_state::pmd85_opbaseoverride)
847{
848   if (m_io_reset->read() & 0x01)
849      timer_set(attotime::from_usec(10), TIMER_RESET);
850   return address;
851}
852
853843void pmd85_state::pmd85_common_driver_init()
854844{
855845   static const char *const keynames[] = {
r26775r26776
949939   m_pmd853_memory_mapping = 1;
950940   m_startup_mem_map = 1;
951941   (this->*update_memory)();
952
953   m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(pmd85_state::pmd85_opbaseoverride), this));
954942}
trunk/src/mess/includes/pmd85.h
r26775r26776
1919public:
2020   enum
2121   {
22      TIMER_CASSETTE,
23      TIMER_RESET
22      TIMER_CASSETTE
2423   };
2524
2625   pmd85_state(const machine_config &mconfig, device_type type, const char *tag)
r26775r26776
5150      m_bank14(*this, "bank14"),
5251      m_bank15(*this, "bank15"),
5352      m_bank16(*this, "bank16"),
54      m_io_reset(*this, "RESET"),
5553      m_io_dsw0(*this, "DSW0") { }
5654
5755   UINT8 m_rom_module_present;
r26775r26776
6866   DECLARE_WRITE8_MEMBER(pmd85_io_w);
6967   DECLARE_READ8_MEMBER(mato_io_r);
7068   DECLARE_WRITE8_MEMBER(mato_io_w);
71   DECLARE_DIRECT_UPDATE_MEMBER(pmd85_opbaseoverride);
7269   DECLARE_DRIVER_INIT(mato);
7370   DECLARE_DRIVER_INIT(pmd852a);
7471   DECLARE_DRIVER_INIT(pmd851);
r26775r26776
8077   virtual void palette_init();
8178   UINT32 screen_update_pmd85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8279   TIMER_CALLBACK_MEMBER(pmd85_cassette_timer_callback);
83   TIMER_CALLBACK_MEMBER(pmd_reset);
8480   DECLARE_WRITE_LINE_MEMBER(write_cas_tx);
8581   DECLARE_READ8_MEMBER(pmd85_ppi_0_porta_r);
8682   DECLARE_READ8_MEMBER(pmd85_ppi_0_portb_r);
r26775r26776
109105   DECLARE_WRITE8_MEMBER(pmd85_ppi_3_porta_w);
110106   DECLARE_WRITE8_MEMBER(pmd85_ppi_3_portb_w);
111107   DECLARE_WRITE8_MEMBER(pmd85_ppi_3_portc_w);
108   DECLARE_INPUT_CHANGED_MEMBER(pmd85_reset);
112109
113110protected:
114111   required_device<cpu_device> m_maincpu;
r26775r26776
137134   optional_memory_bank m_bank14;
138135   optional_memory_bank m_bank15;
139136   optional_memory_bank m_bank16;
140   required_ioport m_io_reset;
141137   optional_ioport m_io_dsw0;
142138   ioport_port *m_io_port[16];
143139
trunk/src/mess/includes/lviv.h
r26775r26776
1616class lviv_state : public driver_device
1717{
1818public:
19   enum
20   {
21      TIMER_RESET
22   };
23
2419   lviv_state(const machine_config &mconfig, device_type type, const char *tag)
2520      : driver_device(mconfig, type, tag),
2621      m_maincpu(*this, "maincpu"),
r26775r26776
3429   UINT8 m_startup_mem_map;
3530   DECLARE_READ8_MEMBER(lviv_io_r);
3631   DECLARE_WRITE8_MEMBER(lviv_io_w);
37   DECLARE_DIRECT_UPDATE_MEMBER(lviv_directoverride);
3832   virtual void machine_reset();
3933   virtual void video_start();
4034   virtual void palette_init();
r26775r26776
6155   void dump_registers();
6256   int lviv_verify_snapshot (UINT8 * data, UINT32 size);
6357   DECLARE_SNAPSHOT_LOAD_MEMBER( lviv );
64
65protected:
66   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
58   DECLARE_INPUT_CHANGED_MEMBER(lviv_reset);
6759};
6860
6961

Previous 199869 Revisions Next


© 1997-2024 The MAME Team