Previous 199869 Revisions Next

r19130 Saturday 24th November, 2012 at 19:00:28 UTC by Angelo Salese
PC-88VA starts sending some bytes, still doesn't work well tho
[src/mess/drivers]pc88va.c
[src/mess/machine]upd71071.c

trunk/src/mess/drivers/pc88va.c
r19129r19130
1818    - PC-88VA stock version has two bogus opcodes. One is at 0xf0b15, another at 0xf0b31.
1919      Making a patch for the latter makes the system to jump into a "DIP-Switch" display.
2020   - unemulated upd71071 demand mode.
21   - Fix floppy motor hook-up;
2122
2223********************************************************************************************/
2324
r19129r19130
140141   TIMER_CALLBACK_MEMBER(pc88va_fdc_timer);
141142//   UINT16 m_fdc_dma_r(running_machine &machine);
142143//   void m_fdc_dma_w(running_machine &machine, UINT16 data);
144   DECLARE_WRITE_LINE_MEMBER(pc88va_tc_w);
143145
144146   void fdc_irq(bool state);
145147   void fdc_drq(bool state);
r19129r19130
10351037         machine().device<floppy_connector>("upd765:1")->get_device()->set_rpm(data & 0x02 ? 360 : 300);
10361038
10371039         machine().device<upd765a_device>("upd765")->set_rate(data & 0x20 ? 500000 : 250000);
1040         /* Temporary hack */
1041         machine().device<floppy_connector>("upd765:0")->get_device()->mon_w(0);
1042         machine().device<floppy_connector>("upd765:1")->get_device()->mon_w(0);
1043
10381044         break;
10391045      /*
10401046        ---- x--- PCM: ?
r19129r19130
17081714   DEVCB_NULL
17091715};
17101716
1717WRITE_LINE_MEMBER( pc88va_state::pc88va_tc_w )
1718{
1719   /* floppy terminal count */
1720   m_fdc->tc_w(state);
1721
1722//   printf("TC %02x\n",state);
1723}
1724
1725
17111726static UINT16 m_fdc_dma_r(running_machine &machine)
17121727{
17131728   pc88va_state *state = machine.driver_data<pc88va_state>();
r19129r19130
17291744   "maincpu",
17301745   8000000,
17311746   DEVCB_NULL,
1732   DEVCB_NULL,
1747   DEVCB_DRIVER_LINE_MEMBER(pc88va_state, pc88va_tc_w),
17331748   { 0, 0, m_fdc_dma_r, 0 },
17341749   { 0, 0, m_fdc_dma_w, 0 },
17351750   { DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }
trunk/src/mess/machine/upd71071.c
r19129r19130
152152               dmac->reg.count_current[channel] = dmac->reg.count_base[channel];
153153            }
154154            // TODO: send terminal count
155            set_eop(device,ASSERT_LINE);
155156         }
156157         else
157158            dmac->reg.count_current[channel]--;
r19129r19130
172173               dmac->reg.count_current[channel] = dmac->reg.count_base[channel];
173174            }
174175            // TODO: send terminal count
176            set_eop(device,ASSERT_LINE);
175177         }
176178         else
177179            dmac->reg.count_current[channel]--;
r19129r19130
219221      {
220222         case 0x00:  // Demand
221223            // TODO
224            set_eop(device,CLEAR_LINE);
225            dmac->timer[channel]->adjust(attotime::from_hz(dmac->intf->clock),channel);
222226            break;
223227         case 0x40:  // Single
224228            dmac->timer[channel]->adjust(attotime::from_hz(dmac->intf->clock),channel);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team