Previous 199869 Revisions Next

r20239 Sunday 13th January, 2013 at 08:46:30 UTC by Sandro Ronco
alphasma: implemented RAM bankswitch. (nw)
[src/mess/drivers]alphasma.c

trunk/src/mess/drivers/alphasma.c
r20238r20239
2121public:
2222   alphasmart_state(const machine_config &mconfig, device_type type, const char *tag)
2323      : driver_device(mconfig, type, tag),
24         m_maincpu(*this, "maincpu")
24         m_maincpu(*this, "maincpu"),
25         m_lcdc(*this, "hd44780"),
26         m_rambank(*this, "rambank")
2527      { }
2628
2729   required_device<cpu_device> m_maincpu;
30   required_device<hd44780_device> m_lcdc;
31   required_memory_bank m_rambank;
2832
2933   DECLARE_WRITE8_MEMBER(vram_w);
3034
3135   virtual void machine_start();
36   virtual void machine_reset();
3237   virtual void palette_init();
33//  virtual UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
38
39   DECLARE_READ8_MEMBER(port_a_r);
40   DECLARE_WRITE8_MEMBER(port_a_w);
41   DECLARE_READ8_MEMBER(port_d_r);
42   DECLARE_WRITE8_MEMBER(port_d_w);
43
44private:
45   UINT8   m_port_a;
3446};
3547
48READ8_MEMBER(alphasmart_state::port_a_r)
49{
50   return m_port_a;
51}
3652
53WRITE8_MEMBER(alphasmart_state::port_a_w)
54{
55   m_rambank->set_entry(((data>>3) & 0x01) | ((data>>4) & 0x02));
56   m_port_a = data;
57}
58
59READ8_MEMBER(alphasmart_state::port_d_r)
60{
61   return 0;
62}
63
64WRITE8_MEMBER(alphasmart_state::port_d_w)
65{
66
67}
68
69
3770static ADDRESS_MAP_START(alphasmart_mem, AS_PROGRAM, 8, alphasmart_state)
3871   ADDRESS_MAP_UNMAP_HIGH
39   AM_RANGE( 0x0000, 0x7fff ) AM_RAM
72   AM_RANGE( 0x0000, 0x7fff ) AM_RAMBANK("rambank")
4073   AM_RANGE( 0x8000, 0xffff ) AM_ROM   AM_REGION("maincpu", 0)
4174ADDRESS_MAP_END
4275
4376static ADDRESS_MAP_START(alphasmart_io, AS_IO, 8, alphasmart_state)
4477//  AM_RANGE(MC68HC11_IO_PORTA, MC68HC11_IO_PORTA) AM_DEVREADWRITE("hd44780", hd44780_device, control_read, control_write)
4578//  AM_RANGE(MC68HC11_IO_PORTD, MC68HC11_IO_PORTD) AM_DEVREADWRITE("hd44780", hd44780_device, data_read, data_write)
79   AM_RANGE( MC68HC11_IO_PORTA, MC68HC11_IO_PORTA ) AM_READWRITE(port_a_r, port_a_w)
80   AM_RANGE( MC68HC11_IO_PORTD, MC68HC11_IO_PORTD ) AM_READWRITE(port_d_r, port_d_w)
4681ADDRESS_MAP_END
4782
4883/* Input ports */
r20238r20239
5792
5893void alphasmart_state::machine_start()
5994{
95   m_rambank->configure_entries(0, 4, (UINT8*)(*memregion("mainram")), 0x8000);
6096}
6197
98void alphasmart_state::machine_reset()
99{
100   m_rambank->set_entry(0);
101}
102
62103static const hc11_config alphasmart_hc11_config =
63104{
64105   0,     //has extended internal I/O
r20238r20239
99140   ROM_REGION( 0x8000, "maincpu", 0 )
100141   ROM_LOAD( "alphasmartpro212.rom",  0x0000, 0x8000, CRC(896ddf1c) SHA1(c3c6a421c9ced92db97431d04b4a3f09a39de716) )   // Checksum 8D24 on label
101142
143   ROM_REGION( 0x20000, "mainram", ROMREGION_ERASE )
144
102145   ROM_REGION( 0x0860, "hd44780", ROMREGION_ERASE )
103146   ROM_LOAD( "44780a00.bin",    0x0000, 0x0860,  BAD_DUMP CRC(3a89024c) SHA1(5a87b68422a916d1b37b5be1f7ad0b3fb3af5a8d))
104147ROM_END

Previous 199869 Revisions Next


© 1997-2024 The MAME Team