Previous 199869 Revisions Next

r18951 Wednesday 14th November, 2012 at 00:48:37 UTC by Angelo Salese
Added beeper and TC to NEC PC-100
[src/mess/drivers]pc100.c

trunk/src/mess/drivers/pc100.c
r18950r18951
5959#include "machine/pic8259.h"
6060#include "machine/upd765.h"
6161#include "machine/msm58321.h"
62#include "sound/beep.h"
6263
6364class pc100_state : public driver_device
6465{
r18950r18951
7879   DECLARE_WRITE16_MEMBER(pc100_kanji_w);
7980   DECLARE_READ8_MEMBER(pc100_key_r);
8081   DECLARE_WRITE8_MEMBER(pc100_output_w);
82   DECLARE_WRITE8_MEMBER(pc100_tc_w);
8183   DECLARE_WRITE16_MEMBER(pc100_paletteram_w);
8284   DECLARE_READ8_MEMBER(pc100_shift_r);
8385   DECLARE_WRITE8_MEMBER(pc100_shift_w);
r18950r18951
212214WRITE8_MEMBER( pc100_state::pc100_output_w )
213215{
214216   if(offset == 0)
217   {
215218      m_timer_mode = (data & 0x18) >> 3;
219      beep_set_state(machine().device(BEEPER_TAG),((data & 0x40) >> 6) ^ 1);
220      printf("%02x\n",data & 0xc0);
221   }
216222}
217223
224WRITE8_MEMBER( pc100_state::pc100_tc_w )
225{
226   machine().device<upd765a_device>("upd765")->tc_w(data & 0x40);
227}
228
218229WRITE16_MEMBER( pc100_state::pc100_paletteram_w )
219230{
220231   COMBINE_DATA(&m_palram[offset]);
r18950r18951
278289   AM_RANGE(0x10, 0x17) AM_DEVREADWRITE8("ppi8255_1", i8255_device, read, write,0x00ff) // i8255 #1
279290   AM_RANGE(0x18, 0x1f) AM_DEVREADWRITE8("ppi8255_2", i8255_device, read, write,0x00ff) // i8255 #2
280291   AM_RANGE(0x20, 0x23) AM_READ8(pc100_key_r,0x00ff) //i/o, keyboard, mouse
281   AM_RANGE(0x22, 0x25) AM_WRITE8(pc100_output_w,0x00ff) //i/o, keyboard, mouse
292   AM_RANGE(0x22, 0x23) AM_WRITE8(pc100_output_w,0x00ff) //i/o, keyboard, mouse
293   AM_RANGE(0x24, 0x25) AM_WRITE8(pc100_tc_w,0x00ff) //i/o, keyboard, mouse
282294//  AM_RANGE(0x28, 0x2b) i8251
283295   AM_RANGE(0x30, 0x31) AM_READWRITE8(pc100_shift_r,pc100_shift_w,0x00ff) // crtc shift
284296   AM_RANGE(0x38, 0x39) AM_WRITE8(pc100_crtc_addr_w,0x00ff) //crtc address reg
r18950r18951
407419
408420void pc100_state::machine_start()
409421{
410
411422   machine().device("maincpu")->execute().set_irq_acknowledge_callback(pc100_irq_callback);
412423   m_kanji_rom = (UINT16 *)(*machine().root_device().memregion("kanji"));
413424   m_vram = (UINT16 *)(*memregion("vram"));
r18950r18951
415426
416427void pc100_state::machine_reset()
417428{
429   beep_set_frequency(machine().device(BEEPER_TAG),2400);
430   beep_set_state(machine().device(BEEPER_TAG),0);
418431}
419432
420433INTERRUPT_GEN_MEMBER(pc100_state::pc100_vblank_irq)
r18950r18951
504517   MCFG_GFXDECODE(pc100)
505518   MCFG_PALETTE_LENGTH(16)
506519//  MCFG_PALETTE_INIT(black_and_white)
520
521   MCFG_SPEAKER_STANDARD_MONO("mono")
522
523   MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0)
524   MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)
507525MACHINE_CONFIG_END
508526
509527/* ROM definition */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team