Previous 199869 Revisions Next

r26907 Friday 3rd January, 2014 at 02:01:37 UTC by Barry Rodewald
wicat: Got it passing the VIA test.  Needs a trampoline to do so, but is not possible otherwise at this stage.
[src/mess/drivers]wicat.c

trunk/src/mess/drivers/wicat.c
r26906r26907
3131      , m_vram(*this, "vram")
3232      , m_maincpu(*this, "maincpu")
3333      , m_rtc(*this, "rtc")
34      , m_via(*this, "via")
3435      , m_uart0(*this,"uart0")
3536      , m_uart1(*this,"uart1")
3637      , m_uart2(*this,"uart2")
r26906r26907
8283   DECLARE_WRITE8_MEMBER(hdc_w);
8384   DECLARE_READ8_MEMBER(fdc_r);
8485   DECLARE_WRITE8_MEMBER(fdc_w);
86   DECLARE_READ16_MEMBER(via_r);
87   DECLARE_WRITE16_MEMBER(via_w);
8588   DECLARE_WRITE_LINE_MEMBER(kb_data_ready);
8689
8790   required_shared_ptr<UINT8> m_vram;
8891   required_device<m68000_device> m_maincpu;
8992   required_device<mm58274c_device> m_rtc;
93   required_device<via6522_device> m_via;
9094   required_device<mc2661_device> m_uart0;
9195   required_device<mc2661_device> m_uart1;
9296   required_device<mc2661_device> m_uart2;
r26906r26907
136140
137141
138142static ADDRESS_MAP_START(wicat_mem, AS_PROGRAM, 16, wicat_state)
139   ADDRESS_MAP_UNMAP_HIGH
143   ADDRESS_MAP_UNMAP_LOW
140144   ADDRESS_MAP_GLOBAL_MASK(0xffffff)
141145   AM_RANGE(0x000000, 0x001fff) AM_ROM AM_REGION("c2", 0x0000)
142146   AM_RANGE(0x020000, 0x1fffff) AM_RAM
r26906r26907
151155   AM_RANGE(0xf00020, 0xf00027) AM_DEVREADWRITE8("uart4",mc2661_device,read,write,0xff00)
152156   AM_RANGE(0xf00028, 0xf0002f) AM_DEVREADWRITE8("uart5",mc2661_device,read,write,0xff00)
153157   AM_RANGE(0xf00030, 0xf00037) AM_DEVREADWRITE8("uart6",mc2661_device,read,write,0xff00)
154   AM_RANGE(0xf00040, 0xf0005f) AM_DEVREADWRITE8("via",via6522_device,read,write,0xff00)
158   AM_RANGE(0xf00040, 0xf0005f) AM_READWRITE(via_r, via_w)
155159   AM_RANGE(0xf00060, 0xf0007f) AM_DEVREADWRITE8("rtc",mm58274c_device,read,write,0xff00)
156160   AM_RANGE(0xf000d0, 0xf000d1) AM_WRITE(parallel_led_w)
157161   AM_RANGE(0xf00180, 0xf0018f) AM_READWRITE8(hdc_r,hdc_w,0xffff)  // WD1000
r26906r26907
489493   }
490494}
491495
496READ16_MEMBER(wicat_state::via_r)
497{
498   if(ACCESSING_BITS_0_7)
499      return m_via->read(space,offset);
500   return 0x00;
501}
502
503WRITE16_MEMBER(wicat_state::via_w)
504{
505   if(ACCESSING_BITS_0_7)
506      m_via->write(space,offset,data);
507   if(ACCESSING_BITS_8_15)
508      m_via->write(space,offset,data>>8);
509}
510
492511READ8_MEMBER(wicat_state::video_r)
493512{
494513   switch(offset)
r26906r26907
855874   MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz)
856875   MCFG_CPU_PROGRAM_MAP(wicat_mem)
857876
858   MCFG_DEVICE_ADD("via", VIA6522, XTAL_4MHz)
877   MCFG_DEVICE_ADD("via", VIA6522, XTAL_8MHz)
859878   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(wicat_state, via_a_w))
860879   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(wicat_state, via_b_w))
861   MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m68000_device, write_irq1))
880   MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M68K_IRQ_1))
862881
863882   MCFG_MM58274C_ADD("rtc",wicat_rtc_intf)  // actually an MM58174AN, but should be compatible
864883

Previous 199869 Revisions Next


© 1997-2024 The MAME Team