Previous 199869 Revisions Next

r24597 Wednesday 31st July, 2013 at 10:47:09 UTC by Robbbert
(MESS) dsb46 :  Added bankswitching
[src/mess/drivers]dsb46.c

trunk/src/mess/drivers/dsb46.c
r24596r24597
3030      , m_terminal(*this, TERMINAL_TAG)
3131   { }
3232
33   required_device<cpu_device> m_maincpu;
34   required_device<generic_terminal_device> m_terminal;
3533   DECLARE_READ8_MEMBER(port00_r);
3634   DECLARE_READ8_MEMBER(port01_r);
3735   DECLARE_WRITE8_MEMBER(kbd_put);
36   DECLARE_WRITE8_MEMBER(port1a_w);
37   DECLARE_DRIVER_INIT(dsb46);
38   DECLARE_MACHINE_RESET(dsb46);
39private:
3840   UINT8 m_term_data;
41   required_device<cpu_device> m_maincpu;
42   required_device<generic_terminal_device> m_terminal;
3943};
4044
4145static ADDRESS_MAP_START( dsb46_mem, AS_PROGRAM, 8, dsb46_state )
42   AM_RANGE(0x0000, 0x07ff) AM_ROM AM_REGION("maincpu", 0)
46   AM_RANGE(0x0000, 0x07ff) AM_READ_BANK("read") AM_WRITE_BANK("write")
4347   AM_RANGE(0x0800, 0xffff) AM_RAM
4448ADDRESS_MAP_END
4549
r24596r24597
4751   ADDRESS_MAP_GLOBAL_MASK(0xff)
4852   AM_RANGE(0x00, 0x00) AM_READ(port00_r) AM_DEVWRITE(TERMINAL_TAG, generic_terminal_device, write)
4953   AM_RANGE(0x01, 0x01) AM_READ(port01_r)
50   // port 1a bankswitch between rom and ram
54   AM_RANGE(0x1a, 0x1a) AM_WRITE(port1a_w)
5155ADDRESS_MAP_END
5256
5357static INPUT_PORTS_START( dsb46 )
5458INPUT_PORTS_END
5559
60DRIVER_INIT_MEMBER(dsb46_state, dsb46)
61{
62   UINT8 *RAM = memregion("maincpu")->base();
63   membank("read")->configure_entry(0, &RAM[0x10000]);
64   membank("read")->configure_entry(1, &RAM[0x00000]);
65   membank("write")->configure_entry(0, &RAM[0x00000]);
66}
67
68MACHINE_RESET_MEMBER( dsb46_state,dsb46 )
69{
70   membank("read")->set_entry(0);
71   membank("write")->set_entry(0);
72   m_term_data = 0;
73   m_maincpu->reset();
74}
75
76WRITE8_MEMBER( dsb46_state::port1a_w )
77{
78   membank("read")->set_entry(data & 1);
79}
80   
5681READ8_MEMBER( dsb46_state::port01_r )
5782{
5883   return (m_term_data) ? 5 : 4;
r24596r24597
80105   MCFG_CPU_ADD("maincpu", Z80, 4000000)
81106   MCFG_CPU_PROGRAM_MAP(dsb46_mem)
82107   MCFG_CPU_IO_MAP(dsb46_io)
108   MCFG_MACHINE_RESET_OVERRIDE(dsb46_state, dsb46)
83109
84110   /* video hardware */
85111   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
86112MACHINE_CONFIG_END
87113
88114ROM_START( dsb46 )
89   ROM_REGION( 0x800, "maincpu", 0 )
90   ROM_LOAD( "1538a.bin", 0x000, 0x800, CRC(65b3e26e) SHA1(afe1f03f266b7d13fdb1f1bc6762df5e0aa5c764) )
115   ROM_REGION( 0x10800, "maincpu", 0 )
116   ROM_LOAD( "1538a.bin", 0x10000, 0x800, CRC(65b3e26e) SHA1(afe1f03f266b7d13fdb1f1bc6762df5e0aa5c764) )
91117
92118   ROM_REGION( 0x4000, "ades", 0 )
93119   ROM_LOAD( "ades.bin", 0x0000, 0x4000, CRC(d374abf0) SHA1(331f51a2bb81375aeffbe63c1ebc1d7cd779b9c3) )
94120ROM_END
95121
96COMP( 198?, dsb46,    0,      0,      dsb46,        dsb46, driver_device, 0,      "Davidge", "DSB-4/6",  GAME_NOT_WORKING | GAME_NO_SOUND_HW )
122COMP( 198?, dsb46, 0, 0, dsb46, dsb46, dsb46_state, dsb46, "Davidge", "DSB-4/6",  GAME_NOT_WORKING | GAME_NO_SOUND_HW )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team