trunk/src/mess/drivers/wicat.c
| r26906 | r26907 | |
| 31 | 31 | , m_vram(*this, "vram") |
| 32 | 32 | , m_maincpu(*this, "maincpu") |
| 33 | 33 | , m_rtc(*this, "rtc") |
| 34 | , m_via(*this, "via") |
| 34 | 35 | , m_uart0(*this,"uart0") |
| 35 | 36 | , m_uart1(*this,"uart1") |
| 36 | 37 | , m_uart2(*this,"uart2") |
| r26906 | r26907 | |
| 82 | 83 | DECLARE_WRITE8_MEMBER(hdc_w); |
| 83 | 84 | DECLARE_READ8_MEMBER(fdc_r); |
| 84 | 85 | DECLARE_WRITE8_MEMBER(fdc_w); |
| 86 | DECLARE_READ16_MEMBER(via_r); |
| 87 | DECLARE_WRITE16_MEMBER(via_w); |
| 85 | 88 | DECLARE_WRITE_LINE_MEMBER(kb_data_ready); |
| 86 | 89 | |
| 87 | 90 | required_shared_ptr<UINT8> m_vram; |
| 88 | 91 | required_device<m68000_device> m_maincpu; |
| 89 | 92 | required_device<mm58274c_device> m_rtc; |
| 93 | required_device<via6522_device> m_via; |
| 90 | 94 | required_device<mc2661_device> m_uart0; |
| 91 | 95 | required_device<mc2661_device> m_uart1; |
| 92 | 96 | required_device<mc2661_device> m_uart2; |
| r26906 | r26907 | |
| 136 | 140 | |
| 137 | 141 | |
| 138 | 142 | static ADDRESS_MAP_START(wicat_mem, AS_PROGRAM, 16, wicat_state) |
| 139 | | ADDRESS_MAP_UNMAP_HIGH |
| 143 | ADDRESS_MAP_UNMAP_LOW |
| 140 | 144 | ADDRESS_MAP_GLOBAL_MASK(0xffffff) |
| 141 | 145 | AM_RANGE(0x000000, 0x001fff) AM_ROM AM_REGION("c2", 0x0000) |
| 142 | 146 | AM_RANGE(0x020000, 0x1fffff) AM_RAM |
| r26906 | r26907 | |
| 151 | 155 | AM_RANGE(0xf00020, 0xf00027) AM_DEVREADWRITE8("uart4",mc2661_device,read,write,0xff00) |
| 152 | 156 | AM_RANGE(0xf00028, 0xf0002f) AM_DEVREADWRITE8("uart5",mc2661_device,read,write,0xff00) |
| 153 | 157 | 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) |
| 155 | 159 | AM_RANGE(0xf00060, 0xf0007f) AM_DEVREADWRITE8("rtc",mm58274c_device,read,write,0xff00) |
| 156 | 160 | AM_RANGE(0xf000d0, 0xf000d1) AM_WRITE(parallel_led_w) |
| 157 | 161 | AM_RANGE(0xf00180, 0xf0018f) AM_READWRITE8(hdc_r,hdc_w,0xffff) // WD1000 |
| r26906 | r26907 | |
| 489 | 493 | } |
| 490 | 494 | } |
| 491 | 495 | |
| 496 | READ16_MEMBER(wicat_state::via_r) |
| 497 | { |
| 498 | if(ACCESSING_BITS_0_7) |
| 499 | return m_via->read(space,offset); |
| 500 | return 0x00; |
| 501 | } |
| 502 | |
| 503 | WRITE16_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 | |
| 492 | 511 | READ8_MEMBER(wicat_state::video_r) |
| 493 | 512 | { |
| 494 | 513 | switch(offset) |
| r26906 | r26907 | |
| 855 | 874 | MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz) |
| 856 | 875 | MCFG_CPU_PROGRAM_MAP(wicat_mem) |
| 857 | 876 | |
| 858 | | MCFG_DEVICE_ADD("via", VIA6522, XTAL_4MHz) |
| 877 | MCFG_DEVICE_ADD("via", VIA6522, XTAL_8MHz) |
| 859 | 878 | MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(wicat_state, via_a_w)) |
| 860 | 879 | 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)) |
| 862 | 881 | |
| 863 | 882 | MCFG_MM58274C_ADD("rtc",wicat_rtc_intf) // actually an MM58174AN, but should be compatible |
| 864 | 883 | |