Previous 199869 Revisions Next

r19310 Tuesday 4th December, 2012 at 18:35:05 UTC by O. Galibert
(mess) mu100: Main screen turn on! [O. Galibert]
[src/mess/drivers]ymmu100.c

trunk/src/mess/drivers/ymmu100.c
r19309r19310
6969
7070#include "emu.h"
7171#include "cpu/h83002/h8.h"
72#include "video/hd44780.h"
7273
7374static INPUT_PORTS_START( mu100 )
7475INPUT_PORTS_END
r19309r19310
7677class mu100_state : public driver_device
7778{
7879public:
80   enum {
81      P2_LCD_RS     = 0x01,
82      P2_LCD_RW     = 0x02,
83      P2_LCD_ENABLE = 0x04
84   };
85
7986   mu100_state(const machine_config &mconfig, device_type type, const char *tag)
8087      : driver_device(mconfig, type, tag),
81        m_maincpu(*this, "maincpu")
88        m_maincpu(*this, "maincpu"),
89        m_lcd(*this, "lcd")
8290    { }
8391
8492    required_device<cpu_device> m_maincpu;
93   required_device<hd44780_device> m_lcd;
8594
95   UINT8 cur_p1, cur_p2;
96
8697   DECLARE_READ8_MEMBER(adc7_r);
98   DECLARE_WRITE8_MEMBER(p1_w);
99   DECLARE_READ8_MEMBER(p1_r);
100   DECLARE_WRITE8_MEMBER(p2_w);
101   DECLARE_READ8_MEMBER(p2_r);
102
103   virtual void palette_init();
87104};
88105
106
89107static ADDRESS_MAP_START( mu100_map, AS_PROGRAM, 16, mu100_state )
90108   AM_RANGE(0x000000, 0x1fffff) AM_ROM AM_REGION("maincpu", 0)
91109   AM_RANGE(0x200000, 0x21ffff) AM_RAM   // 128K work RAM
r19309r19310
97115   return 0;
98116}
99117
118WRITE8_MEMBER(mu100_state::p1_w)
119{
120   cur_p1 = data;
121}
122
123READ8_MEMBER(mu100_state::p1_r)
124{
125   if((cur_p2 & P2_LCD_ENABLE)) {
126      if(cur_p2 & P2_LCD_RW) {
127         if(cur_p2 & P2_LCD_RS)
128            return m_lcd->data_read(space, offset);
129         else
130            return m_lcd->control_read(space, offset);
131      } else
132         return 0x00;
133   }
134 
135   return 0xff;
136}
137
138WRITE8_MEMBER(mu100_state::p2_w)
139{
140   // LCB enable edge
141   if(!(cur_p2 & P2_LCD_ENABLE) && (data & P2_LCD_ENABLE)) {
142      if(!(cur_p2 & P2_LCD_RW)) {
143         if(cur_p2 & P2_LCD_RS)
144            m_lcd->data_write(space, offset, cur_p1);
145         else
146            m_lcd->control_write(space, offset, cur_p1);
147      }
148   }
149   cur_p2 = data;
150}
151
152READ8_MEMBER(mu100_state::p2_r)
153{
154   return cur_p2;
155}
156
157void mu100_state::palette_init()
158{
159   palette_set_color(machine(), 0, MAKE_RGB(255, 255, 255));
160   palette_set_color(machine(), 1, MAKE_RGB(0, 0, 0));
161}
162
100163static ADDRESS_MAP_START( mu100_iomap, AS_IO, 8, mu100_state )
164   AM_RANGE(H8_PORT_1,  H8_PORT_1)  AM_READWRITE(p1_r, p1_w)
165   AM_RANGE(H8_PORT_2,  H8_PORT_2)  AM_READWRITE(p2_r, p2_w)
101166   AM_RANGE(H8_ADC_7_H, H8_ADC_7_L) AM_READ(adc7_r)
102167ADDRESS_MAP_END
103168
169static HD44780_INTERFACE( lcd_config )
170{
171   4,
172   20,
173   NULL
174};
175
104176static MACHINE_CONFIG_START( mu100, mu100_state )
105177   MCFG_CPU_ADD( "maincpu", H8S2655, XTAL_16MHz )
106178   MCFG_CPU_PROGRAM_MAP( mu100_map )
107179   MCFG_CPU_IO_MAP( mu100_iomap )
108180
181   MCFG_HD44780_ADD("lcd", lcd_config)
182
183   MCFG_SCREEN_ADD("screen", LCD)
184   MCFG_SCREEN_REFRESH_RATE(50)
185   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate, asynchronous updating anyway */
186   MCFG_SCREEN_UPDATE_DEVICE("lcd", hd44780_device, screen_update)
187   MCFG_SCREEN_SIZE(320, 200)
188   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
189   MCFG_PALETTE_LENGTH(2)
190
109191   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
110192MACHINE_CONFIG_END
111193
r19309r19310
118200   ROM_LOAD32_WORD( "sx743b0.ic35", 0x000002, 0x400000, CRC(a9109a6c) SHA1(a67bb49378a38a2d809bd717d286e18bc6496db0) )
119201   ROM_LOAD32_WORD( "xt445a0-828.ic36", 0x800000, 0x1000000, CRC(d4483a43) SHA1(5bfd0762dea8598eda19db20251dac20e31fa02c) )
120202   ROM_LOAD32_WORD( "xt461a0-829.ic37", 0x800002, 0x1000000, CRC(c5af4501) SHA1(1c88de197c36382311053add8b19a5740802cb78) )
203
204   ROM_REGION( 0x0860, "lcd", ROMREGION_ERASE )
205   ROM_LOAD( "44780a00.bin",    0x0000, 0x0860,  BAD_DUMP CRC(3a89024c) SHA1(5a87b68422a916d1b37b5be1f7ad0b3fb3af5a8d))
121206ROM_END
122207
123208CONS( 1997, mu100, 0, 0, mu100, mu100, driver_device, 0, "Yamaha", "MU100", GAME_NOT_WORKING )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team