Previous 199869 Revisions Next

r36857 Wednesday 1st April, 2015 at 00:30:59 UTC by Angelo Salese
Updated PC88VA to use am9517a, nw
[hash]pc88va.xml
[src/mess/drivers]pc88va.c

trunk/hash/pc88va.xml
r245368r245369
148148
149149   </software>
150150
151   <software name="Micromus" supported="no">
151   <software name="micromus" supported="no">
152152      <description>Micromusician VA</description>
153153      <year>19??</year>
154154      <publisher>&lt;unknown&gt;</publisher>
trunk/src/mess/drivers/pc88va.c
r245368r245369
3434#include "machine/upd765.h"
3535#include "sound/2203intf.h"
3636#include "formats/xdf_dsk.h"
37#include "machine/upd71071.h"
37//#include "machine/upd71071.h"
38#include "machine/am9517a.h"
3839
40
3941/* Note: for the time being, just disable FDC CPU, it's for PC-8801 compatibility mode anyway ... */
4042#define TEST_SUBFDC 0
4143
r245368r245369
7981
8082   required_device<cpu_device> m_maincpu;
8183   required_device<upd765a_device> m_fdc;
82   required_device<upd71071_device> m_dmac;
84   required_device<am9517a_device> m_dmac;
8385   required_shared_ptr<UINT16> m_palram;
8486   UINT16 m_bank_reg;
8587   UINT16 m_screen_ctrl_reg;
r245368r245369
158160//  void m_fdc_dma_w(UINT16 data);
159161   DECLARE_WRITE_LINE_MEMBER(pc88va_hlda_w);
160162   DECLARE_WRITE_LINE_MEMBER(pc88va_tc_w);
161   DECLARE_READ16_MEMBER(fdc_dma_r);
162   DECLARE_WRITE16_MEMBER(fdc_dma_w);
163   DECLARE_READ8_MEMBER(fdc_dma_r);
164   DECLARE_WRITE8_MEMBER(fdc_dma_w);
163165
164166   DECLARE_WRITE_LINE_MEMBER(fdc_irq);
165167   DECLARE_WRITE_LINE_MEMBER(fdc_drq);
r245368r245369
11461148            timer_set(attotime::from_msec(100), TIMER_PC88VA_FDC_TIMER);
11471149
11481150         if((m_fdc_ctrl_2 & 0x10) != (data & 0x10))
1149            m_dmac->dmarq(1, 2);
1151            m_dmac->dreq2_w(1);
11501152
11511153         if(data & 0x80) // correct?
11521154            machine().device<upd765a_device>("upd765")->reset();
r245368r245369
12831285   AM_RANGE(0x0156, 0x0157) AM_READ8(rom_bank_r,0x00ff) // ROM bank status
12841286//  AM_RANGE(0x0158, 0x0159) Interruption Mode Modification
12851287//  AM_RANGE(0x015c, 0x015f) NMI mask port (strobe port)
1286   AM_RANGE(0x0160, 0x016f) AM_DEVREADWRITE8("dmac", upd71071_device, read, write, 0xffff) // DMA Controller
1288   AM_RANGE(0x0160, 0x016f) AM_DEVREADWRITE8("dmac", am9517a_device, read, write, 0xffff) // DMA Controller
12871289   AM_RANGE(0x0184, 0x0187) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0x00ff)
12881290   AM_RANGE(0x0188, 0x018b) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0x00ff) // ICU, also controls 8214 emulation
12891291//  AM_RANGE(0x0190, 0x0191) System Port 5
r245368r245369
17041706WRITE_LINE_MEMBER( pc88va_state::fdc_drq )
17051707{
17061708   printf("%02x DRQ\n",state);
1707   m_dmac->dmarq(state, 2);
1709   m_dmac->dreq2_w(state);
17081710}
17091711
17101712WRITE_LINE_MEMBER( pc88va_state::fdc_irq )
r245368r245369
17231725
17241726WRITE_LINE_MEMBER(pc88va_state::pc88va_hlda_w)
17251727{
1726   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
1728//   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
17271729
1728//  m_dmac->hack_w(state);
1730    m_dmac->hack_w(state);
17291731
17301732//  printf("%02x HLDA\n",state);
17311733}
r245368r245369
17391741}
17401742
17411743
1742READ16_MEMBER(pc88va_state::fdc_dma_r)
1744READ8_MEMBER(pc88va_state::fdc_dma_r)
17431745{
17441746   printf("R DMA\n");
17451747   return m_fdc->dma_r();
17461748}
17471749
1748WRITE16_MEMBER(pc88va_state::fdc_dma_w)
1750WRITE8_MEMBER(pc88va_state::fdc_dma_w)
17491751{
17501752   printf("W DMA %08x\n",data);
17511753   m_fdc->dma_w(data);
r245368r245369
18091811
18101812   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NULL )
18111813
1812   MCFG_DEVICE_ADD("dmac", UPD71071, 0) /* ch2 is FDC, ch0/3 are "user". ch1 is unused */
1813   MCFG_UPD71071_CPU("maincpu")
1814   MCFG_UPD71071_CLOCK(8000000)
1815   MCFG_UPD71071_OUT_HREQ_CB(WRITELINE(pc88va_state, pc88va_hlda_w))
1816   MCFG_UPD71071_OUT_EOP_CB(WRITELINE(pc88va_state, pc88va_tc_w))
1817   MCFG_UPD71071_DMA_READ_2_CB(READ16(pc88va_state, fdc_dma_r))
1818   MCFG_UPD71071_DMA_WRITE_2_CB(WRITE16(pc88va_state, fdc_dma_w))
1814   MCFG_DEVICE_ADD("dmac", AM9517A, 8000000) /* ch2 is FDC, ch0/3 are "user". ch1 is unused */
1815   MCFG_AM9517A_OUT_HREQ_CB(WRITELINE(pc88va_state, pc88va_hlda_w))
1816   MCFG_AM9517A_OUT_EOP_CB(WRITELINE(pc88va_state, pc88va_tc_w))
1817   MCFG_AM9517A_IN_IOR_2_CB(READ8(pc88va_state, fdc_dma_r))
1818   MCFG_AM9517A_OUT_IOW_2_CB(WRITE8(pc88va_state, fdc_dma_w))
18191819
1820   
18201821   MCFG_UPD765A_ADD("upd765", false, true)
18211822   MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc88va_state, fdc_irq))
18221823   MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc88va_state, fdc_drq))


Previous 199869 Revisions Next


© 1997-2024 The MAME Team