Previous 199869 Revisions Next

r26896 Thursday 2nd January, 2014 at 18:08:30 UTC by smf
removed the simplest 6522 port callbacks [smf]
[src/emu/bus/a2bus]a2mockingboard.c a2mockingboard.h
[src/mame/drivers]gameplan.c trvquest.c
[src/mame/includes]gameplan.h
[src/mame/video]gameplan.c
[src/mess/drivers]a6809.c apple3.c ec65.c lisa.c microtan.c mirage.c rmnimbus.c
[src/mess/includes]apple3.h lisa.h microtan.h rmnimbus.h
[src/mess/machine]apple3.c lisa.c microtan.c rmnimbus.c

trunk/src/mame/drivers/gameplan.c
r26895r26896
959959   save_item(NAME(m_video_y));
960960   save_item(NAME(m_video_command));
961961   save_item(NAME(m_video_data));
962
963   /* this is needed for trivia quest */
964   m_via_0->write_pb5(1);
962965}
963966
964967
r26895r26896
9971000
9981001   /* via */
9991002   MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
1000   MCFG_VIA6522_READPB_HANDLER(READ8(gameplan_state, vblank_r))
10011003   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, video_data_w))
10021004   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, gameplan_video_command_w))
10031005   MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, video_command_trigger_w))
trunk/src/mame/drivers/trvquest.c
r26895r26896
153153   save_item(NAME(m_video_y));
154154   save_item(NAME(m_video_command));
155155   save_item(NAME(m_video_data));
156
157   /* this is needed for trivia quest */
158   m_via_0->write_pb5(1);
156159}
157160
158161MACHINE_RESET_MEMBER(gameplan_state,trvquest)
r26895r26896
193196
194197   /* via */
195198   MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
196   MCFG_VIA6522_READPB_HANDLER(READ8(gameplan_state,vblank_r))
197199   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, video_data_w))
198200   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, gameplan_video_command_w))
199201   MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, video_command_trigger_w))
trunk/src/mame/includes/gameplan.h
r26895r26896
8989   DECLARE_WRITE8_MEMBER(gameplan_video_command_w);
9090   DECLARE_WRITE8_MEMBER(leprechn_video_command_w);
9191   DECLARE_WRITE_LINE_MEMBER(video_command_trigger_w);
92   DECLARE_READ8_MEMBER(vblank_r);
9392   void gameplan_get_pens( pen_t *pens );
9493   void leprechn_get_pens( pen_t *pens );
9594   DECLARE_WRITE_LINE_MEMBER(via_irq);
trunk/src/mame/video/gameplan.c
r26895r26896
239239}
240240
241241
242READ8_MEMBER(gameplan_state::vblank_r)
243{
244   /* this is needed for trivia quest */
245   return 0x20;
246}
247
248
249242TIMER_CALLBACK_MEMBER(gameplan_state::via_0_ca1_timer_callback)
250243{
251244   /* !VBLANK is connected to CA1 */
trunk/src/emu/bus/a2bus/a2mockingboard.c
r26895r26896
4040
4141MACHINE_CONFIG_FRAGMENT( mockingboard )
4242   MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
43   MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
44   MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
4543   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
4644   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
4745   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
4846
4947   MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
50   MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
51   MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
5248   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
5349   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
5450   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
r26895r26896
6460
6561MACHINE_CONFIG_FRAGMENT( phasor )
6662   MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
67   MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
68   MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
6963   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
7064   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
7165   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
7266
7367   MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
74   MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
75   MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
7668   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
7769   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
7870   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
r26895r26896
9587
9688MACHINE_CONFIG_FRAGMENT( echoplus )
9789   MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
98   MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
99   MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
10090   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
10191   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
10292   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
10393
10494   MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
105   MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
106   MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
10795   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
10896   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
10997   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
r26895r26896
323311   }
324312}
325313
326READ8_MEMBER( a2bus_ayboard_device::via1_in_a )
327{
328   return 0;
329}
330
331314WRITE8_MEMBER( a2bus_ayboard_device::via1_out_a )
332315{
333316   m_porta1 = data;
334317}
335318
336READ8_MEMBER( a2bus_ayboard_device::via1_in_b )
337{
338   return 0;
339}
340
341319WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b )
342320{
343321   if (!(data & 4))
r26895r26896
426404   }
427405}
428406
429READ8_MEMBER( a2bus_ayboard_device::via2_in_a )
430{
431   return 0;
432}
433
434407WRITE8_MEMBER( a2bus_ayboard_device::via2_out_a )
435408{
436409   m_porta2 = data;
437410}
438411
439READ8_MEMBER( a2bus_ayboard_device::via2_in_b )
440{
441   return 0;
442}
443
444412WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b )
445413{
446414   if (!(data & 4))
trunk/src/emu/bus/a2bus/a2mockingboard.h
r26895r26896
3232
3333   DECLARE_WRITE_LINE_MEMBER( via1_irq_w );
3434   DECLARE_WRITE_LINE_MEMBER( via2_irq_w );
35   DECLARE_READ8_MEMBER(via1_in_a);
36   DECLARE_READ8_MEMBER(via1_in_b);
3735   DECLARE_WRITE8_MEMBER(via1_out_a);
3836   DECLARE_WRITE8_MEMBER(via1_out_b);
39   DECLARE_READ8_MEMBER(via2_in_a);
40   DECLARE_READ8_MEMBER(via2_in_b);
4137   DECLARE_WRITE8_MEMBER(via2_out_a);
4238   DECLARE_WRITE8_MEMBER(via2_out_b);
4339
trunk/src/mess/machine/microtan.c
r26895r26896
162162   return data;
163163}
164164
165READ8_MEMBER(microtan_state::via_0_in_b)
166{
167   int data = 0xff;
168   LOG(("microtan_via_0_in_b %02X\n", data));
169   return data;
170}
171
172165WRITE8_MEMBER(microtan_state::via_0_out_a)
173166{
174167   LOG(("microtan_via_0_out_a %02X\n", data));
r26895r26896
201194/**************************************************************
202195 * VIA callback functions for VIA #1
203196 **************************************************************/
204READ8_MEMBER(microtan_state::via_1_in_a)
205{
206   int data = 0xff;
207   LOG(("microtan_via_1_in_a %02X\n", data));
208   return data;
209}
210197
211READ8_MEMBER(microtan_state::via_1_in_b)
212{
213   int data = 0xff;
214   LOG(("microtan_via_1_in_b %02X\n", data));
215   return data;
216}
217
218198WRITE8_MEMBER(microtan_state::via_1_out_a)
219199{
220200   LOG(("microtan_via_1_out_a %02X\n", data));
r26895r26896
492472   m_timer = timer_alloc(TIMER_READ_CASSETTE);
493473
494474   m_via6522_0->write_ca1(1);
475   m_via6522_0->write_ca2(1);
476
477   m_via6522_0->write_pb0(1);
478   m_via6522_0->write_pb1(1);
479   m_via6522_0->write_pb2(1);
480   m_via6522_0->write_pb3(1);
481   m_via6522_0->write_pb4(1);
482   m_via6522_0->write_pb5(1);
483   m_via6522_0->write_pb6(1);
484   m_via6522_0->write_pb7(1);
495485   m_via6522_0->write_cb1(1);
496   m_via6522_0->write_ca2(1);
497486   m_via6522_0->write_cb2(1);
498487
488   m_via6522_1->write_pa0(1);
489   m_via6522_1->write_pa1(1);
490   m_via6522_1->write_pa2(1);
491   m_via6522_1->write_pa3(1);
492   m_via6522_1->write_pa4(1);
493   m_via6522_1->write_pa5(1);
494   m_via6522_1->write_pa6(1);
495   m_via6522_1->write_pa7(1);
499496   m_via6522_1->write_ca1(1);
497   m_via6522_1->write_ca2(1);
498
499   m_via6522_1->write_pb0(1);
500   m_via6522_1->write_pb1(1);
501   m_via6522_1->write_pb2(1);
502   m_via6522_1->write_pb3(1);
503   m_via6522_1->write_pb4(1);
504   m_via6522_1->write_pb5(1);
505   m_via6522_1->write_pb6(1);
506   m_via6522_1->write_pb7(1);
500507   m_via6522_1->write_cb1(1);
501   m_via6522_1->write_ca2(1);
502508   m_via6522_1->write_cb2(1);
503509}
504510
trunk/src/mess/machine/lisa.c
r26895r26896
387387   address_space &space = m_maincpu->space(AS_PROGRAM);
388388
389389   m_COPS_Ready = 0;
390   m_via0->write_pb6(m_COPS_Ready);
390391
391392   /*logerror("read_COPS_command : trying to send data to VIA\n");*/
392393   COPS_send_data_if_possible();
r26895r26896
557558TIMER_CALLBACK_MEMBER(lisa_state::set_COPS_ready)
558559{
559560   m_COPS_Ready = 1;
561   m_via0->write_pb6(m_COPS_Ready);
560562
561563   /* impulsion width : +/- 20us */
562564   machine().scheduler().timer_set(attotime::from_usec(20), timer_expired_delegate(FUNC(lisa_state::read_COPS_command),this));
r26895r26896
620622void lisa_state::init_COPS()
621623{
622624   m_COPS_Ready = 0;
625   m_via0->write_pb6(m_COPS_Ready);
623626
624627   reset_COPS();
625628}
r26895r26896
663666    CB1 : not used
664667    CB2 (O) : sound output
665668*/
666READ8_MEMBER(lisa_state::COPS_via_in_b)
667{
668   int val = 0;
669669
670   if (m_COPS_Ready)
671      val |= 0x40;
672
673   if (m_FDIR)
674      val |= 0x10;
675
676   return val;
677}
678
679670WRITE8_MEMBER(lisa_state::COPS_via_out_b)
680671{
681672   /* pull-up */
r26895r26896
734725    CB1 : not used
735726    CB2 (I) : current parity latch value
736727*/
737READ8_MEMBER(lisa_state::parallel_via_in_b)
738{
739   int val = 0;
740728
741   if (m_DISK_DIAG)
742      val |= 0x40;
743729
744   /* tell there is no hard disk : */
745   val |= 0x1;
746730
747   /* keep busy high to work around a bug??? */
748   //val |= 0x2;
749
750   return val;
751}
752
753
754
755
756
757
758731/*
759732    LISA video emulation
760733*/
r26895r26896
1010983   m_video_address_latch = 0;
1011984   m_videoram_ptr = (UINT16 *) m_ram_ptr;
1012985
986   m_FDIR = 0;
987   m_via0->write_pb4(m_FDIR);
988
989   /* tell there is no hard disk : */
990   m_via1->write_pb0(1);
991
992   /* keep busy high to work around a bug??? */
993   //m_via1->write_pb1(1);
994
995   m_DISK_DIAG = 0;
996   m_via1->write_pb6(m_DISK_DIAG);
997
1013998   /* reset COPS keyboard/mouse controller */
1014999   init_COPS();
10151000
r26895r26896
11771162      break;
11781163   case 6:
11791164      m_DISK_DIAG = offset & 1;
1165      m_via1->write_pb6(m_DISK_DIAG);
11801166      break;
11811167   case 7:
11821168      m_FDIR = offset & 1; /* Interrupt request to 68k */
1169      m_via0->write_pb4(m_FDIR);
11831170      field_interrupts();
11841171      break;
11851172   }
trunk/src/mess/machine/apple3.c
r26895r26896
249249
250250INTERRUPT_GEN_MEMBER(apple3_state::apple3_interrupt)
251251{
252   via6522_device *via_1 = machine().device<via6522_device>("via6522_1");
253
254   via_1->write_ca2((AY3600_keydata_strobe_r(machine()) & 0x80) ? 1 : 0);
255   via_1->write_cb1(machine().primary_screen->vblank());
256   via_1->write_cb2(machine().primary_screen->vblank());
252   m_via_1->write_ca2((AY3600_keydata_strobe_r(machine()) & 0x80) ? 1 : 0);
253   m_via_1->write_cb1(machine().primary_screen->vblank());
254   m_via_1->write_cb2(machine().primary_screen->vblank());
257255}
258256
259257
r26895r26896
444442
445443   /* reinstall VIA handlers */
446444   {
447      via6522_device *via_0 = machine().device<via6522_device>("via6522_0");
448      via6522_device *via_1 = machine().device<via6522_device>("via6522_1");
449
450      space.install_readwrite_handler(0xFFD0, 0xFFDF, 0, 0, read8_delegate(FUNC(via6522_device::read),via_0), write8_delegate(FUNC(via6522_device::write),via_0));
451      space.install_readwrite_handler(0xFFE0, 0xFFEF, 0, 0, read8_delegate(FUNC(via6522_device::read),via_1), write8_delegate(FUNC(via6522_device::write),via_1));
445      space.install_readwrite_handler(0xFFD0, 0xFFDF, 0, 0, read8_delegate(FUNC(via6522_device::read),m_via_0.target()), write8_delegate(FUNC(via6522_device::write),m_via_0.target()));
446      space.install_readwrite_handler(0xFFE0, 0xFFEF, 0, 0, read8_delegate(FUNC(via6522_device::read),m_via_1.target()), write8_delegate(FUNC(via6522_device::write),m_via_1.target()));
452447   }
453448}
454449
r26895r26896
464459}
465460
466461
467/* these are here to appease the Apple /// confidence tests */
468READ8_MEMBER(apple3_state::apple3_via_1_in_a){ return ~0; }
469READ8_MEMBER(apple3_state::apple3_via_1_in_b){ return ~0; }
470
471462WRITE8_MEMBER(apple3_state::apple3_via_0_out_a)
472463{
473464   apple3_via_out(&m_via_0_a, data);
r26895r26896
690681   m_via_0_a = ~0;
691682   m_via_1_a = ~0;
692683   m_via_1_irq = 0;
684
685   /* these are here to appease the Apple /// confidence tests */
686   m_via_1->write_pa0(1);
687   m_via_1->write_pa1(1);
688   m_via_1->write_pa2(1);
689   m_via_1->write_pa3(1);
690   m_via_1->write_pa4(1);
691   m_via_1->write_pa5(1);
692   m_via_1->write_pa6(1);
693   m_via_1->write_pa7(1);
694
695   m_via_1->write_pb0(1);
696   m_via_1->write_pb1(1);
697   m_via_1->write_pb2(1);
698   m_via_1->write_pb3(1);
699   m_via_1->write_pb4(1);
700   m_via_1->write_pb5(1);
701   m_via_1->write_pb6(1);
702   m_via_1->write_pb7(1);
703
693704   apple3_update_memory();
694705
695706   m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(apple3_state::apple3_opbase), this));
trunk/src/mess/machine/rmnimbus.c
r26895r26896
12421242
12431243DRIVER_INIT_MEMBER(rmnimbus_state,nimbus)
12441244{
1245/* USER VIA 6522 port B is connected to the BBC user port */
1246   m_via->write_pb0(1);
1247   m_via->write_pb1(1);
1248   m_via->write_pb2(1);
1249   m_via->write_pb3(1);
1250   m_via->write_pb4(1);
1251   m_via->write_pb5(1);
1252   m_via->write_pb6(1);
1253   m_via->write_pb7(1);
12451254}
12461255
12471256void rmnimbus_state::machine_start()
r26895r26896
29702979***********************************************************************/
29712980
29722981/* USER VIA 6522 port B is connected to the BBC user port */
2973READ8_MEMBER(rmnimbus_state::nimbus_via_read_portb)
2974{
2975   return 0xff;
2976}
2977
29782982WRITE8_MEMBER(rmnimbus_state::nimbus_via_write_portb)
29792983{
29802984}
trunk/src/mess/includes/lisa.h
r26895r26896
207207   TIMER_CALLBACK_MEMBER(set_COPS_ready);
208208   DECLARE_WRITE8_MEMBER(COPS_via_out_a);
209209   DECLARE_WRITE_LINE_MEMBER(COPS_via_out_ca2);
210   DECLARE_READ8_MEMBER(COPS_via_in_b);
211210   DECLARE_WRITE8_MEMBER(COPS_via_out_b);
212211   DECLARE_WRITE_LINE_MEMBER(COPS_via_out_cb2);
213   DECLARE_READ8_MEMBER(parallel_via_in_b);
214212
215213   void field_interrupts();
216214   void set_parity_error_pending(int value);
trunk/src/mess/includes/apple3.h
r26895r26896
2727{
2828public:
2929   apple3_state(const machine_config &mconfig, device_type type, const char *tag)
30      : apple2_state(mconfig, type, tag) { }
30      : apple2_state(mconfig, type, tag),
31      m_via_0(*this, "via6522_0"),
32      m_via_1(*this, "via6522_1")
33   {
34   }
3135
36   required_device<via6522_device> m_via_0;
37   required_device<via6522_device> m_via_1;
38
3239   UINT32 m_flags;
3340   UINT8 m_via_0_a;
3441   UINT8 m_via_0_b;
r26895r26896
6168   DECLARE_VIDEO_START(apple3);
6269   UINT32 screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6370   INTERRUPT_GEN_MEMBER(apple3_interrupt);
64   DECLARE_READ8_MEMBER(apple3_via_1_in_a);
65   DECLARE_READ8_MEMBER(apple3_via_1_in_b);
6671   DECLARE_WRITE8_MEMBER(apple3_via_0_out_a);
6772   DECLARE_WRITE8_MEMBER(apple3_via_0_out_b);
6873   DECLARE_WRITE8_MEMBER(apple3_via_1_out_a);
trunk/src/mess/includes/microtan.h
r26895r26896
6767   TIMER_CALLBACK_MEMBER(microtan_read_cassette);
6868   TIMER_CALLBACK_MEMBER(microtan_pulse_nmi);
6969   DECLARE_READ8_MEMBER(via_0_in_a);
70   DECLARE_READ8_MEMBER(via_0_in_b);
7170   DECLARE_WRITE8_MEMBER(via_0_out_a);
7271   DECLARE_WRITE8_MEMBER(via_0_out_b);
7372   DECLARE_WRITE_LINE_MEMBER(via_0_out_ca2);
7473   DECLARE_WRITE_LINE_MEMBER(via_0_out_cb2);
75   DECLARE_READ8_MEMBER(via_1_in_a);
76   DECLARE_READ8_MEMBER(via_1_in_b);
7774   DECLARE_WRITE8_MEMBER(via_1_out_a);
7875   DECLARE_WRITE8_MEMBER(via_1_out_b);
7976   DECLARE_WRITE_LINE_MEMBER(via_1_out_ca2);
trunk/src/mess/includes/rmnimbus.h
r26895r26896
396396      m_ay8910(*this, AY8910_TAG),
397397      m_scsibus(*this, SCSIBUS_TAG ":host"),
398398      m_ram(*this, RAM_TAG),
399      m_eeprom(*this, ER59256_TAG)
399      m_eeprom(*this, ER59256_TAG),
400      m_via(*this, VIA_TAG)
400401   {
401402   }
402403
r26895r26896
406407   required_device<scsicb_device> m_scsibus;
407408   required_device<ram_device> m_ram;
408409   required_device<er59256_device> m_eeprom;
410   required_device<via6522_device> m_via;
409411
410412   UINT32 m_debug_machine;
411413//  i186_state m_i186;
r26895r26896
468470   DECLARE_READ16_MEMBER(sio_serial_receive);
469471   DECLARE_WRITE_LINE_MEMBER(nimbus_fdc_intrq_w);
470472   DECLARE_WRITE_LINE_MEMBER(nimbus_fdc_drq_w);
471   DECLARE_READ8_MEMBER(nimbus_via_read_portb);
472473   DECLARE_WRITE8_MEMBER(nimbus_via_write_portb);
473474   DECLARE_WRITE_LINE_MEMBER(nimbus_via_irq_w);
474475   DECLARE_WRITE_LINE_MEMBER(nimbus_ack_w);
trunk/src/mess/drivers/apple3.c
r26895r26896
106106   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(apple3_state, apple3_via_0_out_b))
107107
108108   MCFG_DEVICE_ADD("via6522_1", VIA6522, 2000000)
109   MCFG_VIA6522_READPA_HANDLER(READ8(apple3_state, apple3_via_1_in_a))
110   MCFG_VIA6522_READPB_HANDLER(READ8(apple3_state, apple3_via_1_in_b))
111109   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(apple3_state, apple3_via_1_out_a))
112110   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(apple3_state, apple3_via_1_out_b))
113111   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(apple3_state, apple2_via_1_irq_func))
trunk/src/mess/drivers/a6809.c
r26895r26896
7171      , m_crtc(*this, "mc6845")
7272   { }
7373
74   DECLARE_READ8_MEMBER(pb_r);
7574   DECLARE_WRITE8_MEMBER(kbd_put);
7675   DECLARE_READ8_MEMBER(videoram_r);
7776   DECLARE_WRITE8_MEMBER(a6809_address_w);
r26895r26896
8685private:
8786   UINT8 m_cass_data[4];
8887   bool m_cass_state;
89   UINT8 m_term_data;
9088   UINT8 m_video_index;
9189   required_device<via6522_device> m_via;
9290   required_device<cassette_image_device> m_cass;
r26895r26896
117115
118116MACHINE_RESET_MEMBER( a6809_state, a6809)
119117{
120   m_term_data = 0;
118   m_via->write_pb0(0);
119   m_via->write_pb1(0);
120   m_via->write_pb2(0);
121   m_via->write_pb3(0);
122   m_via->write_pb4(0);
123   m_via->write_pb5(0);
124   m_via->write_pb6(0);
125   m_via->write_pb7(0);
121126}
122127
123128static MC6845_UPDATE_ROW( a6809_update_row )
r26895r26896
188193      m_cursor_address = data | (temq & 0x3f00);
189194}
190195
191READ8_MEMBER( a6809_state::pb_r )
192{
193   return m_term_data | m_cass_data[2];
194}
195
196196WRITE_LINE_MEMBER( a6809_state::cass_w )
197197{
198198   m_cass_state = state;
r26895r26896
217217   if (cass_ws != m_cass_data[0])
218218   {
219219      m_cass_data[0] = cass_ws;
220      m_cass_data[2] = ((m_cass_data[1] < 12) ? 128 : 0);
220      m_via->write_pb7(m_cass_data[1] < 12);
221221      m_cass_data[1] = 0;
222222   }
223223}
224224
225225WRITE8_MEMBER( a6809_state::kbd_put )
226226{
227   m_term_data = data & 0x7f;
228   if (data == 8) m_term_data = 0x7f; // allow backspace to work
227   UINT8 d = data & 0x7f;
228   if (d == 8) d = 0x7f; // allow backspace to work
229229
230   m_via->write_pb0((d>>0)&1);
231   m_via->write_pb1((d>>1)&1);
232   m_via->write_pb2((d>>2)&1);
233   m_via->write_pb3((d>>3)&1);
234   m_via->write_pb4((d>>4)&1);
235   m_via->write_pb5((d>>5)&1);
236   m_via->write_pb6((d>>6)&1);
230237   m_via->write_cb1(1);
231238   m_via->write_cb1(0);
232239}
r26895r26896
259266
260267   /* Devices */
261268   MCFG_DEVICE_ADD("via", VIA6522, XTAL_4MHz / 4)
262   MCFG_VIA6522_READPB_HANDLER(READ8(a6809_state, pb_r))
263269   MCFG_VIA6522_CB2_HANDLER(WRITELINE(a6809_state, cass_w))
264270   MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809e_device, irq_line))
265271
trunk/src/mess/drivers/microtan.c
r26895r26896
260260   /* via */
261261   MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
262262   MCFG_VIA6522_READPA_HANDLER(READ8(microtan_state, via_0_in_a))
263   MCFG_VIA6522_READPB_HANDLER(READ8(microtan_state, via_0_in_b))
264263   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(microtan_state, via_0_out_a))
265264   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(microtan_state, via_0_out_b))
266265   MCFG_VIA6522_CA2_HANDLER(WRITELINE(microtan_state, via_0_out_ca2))
r26895r26896
268267   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(microtan_state, via_0_irq))
269268
270269   MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
271   MCFG_VIA6522_READPA_HANDLER(READ8(microtan_state, via_1_in_a))
272   MCFG_VIA6522_READPB_HANDLER(READ8(microtan_state, via_1_in_b))
273270   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(microtan_state, via_1_out_a))
274271   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(microtan_state, via_1_out_b))
275272   MCFG_VIA6522_CA2_HANDLER(WRITELINE(microtan_state, via_1_out_ca2))
trunk/src/mess/drivers/ec65.c
r26895r26896
2828public:
2929   ec65_state(const machine_config &mconfig, device_type type, const char *tag)
3030      : driver_device(mconfig, type, tag),
31   m_via_0(*this, VIA6522_0_TAG),
32   m_p_videoram(*this, "videoram"),
31      m_via_0(*this, VIA6522_0_TAG),
32      m_via_1(*this, VIA6522_1_TAG),
33      m_p_videoram(*this, "videoram"),
3334      m_maincpu(*this, "maincpu") { }
3435
35   DECLARE_READ8_MEMBER(ec65_via_read_a);
36   DECLARE_READ8_MEMBER(ec65_via_read_b);
37   DECLARE_WRITE8_MEMBER(ec65_via_write_a);
38   DECLARE_WRITE8_MEMBER(ec65_via_write_b);
3936   DECLARE_WRITE8_MEMBER(kbd_put);
4037   UINT8 *m_p_chargen;
41   UINT8 m_keyboard_input;
4238   optional_device<via6522_device> m_via_0;
39   optional_device<via6522_device> m_via_1;
4340   required_shared_ptr<UINT8> m_p_videoram;
4441   virtual void machine_reset();
4542   virtual void video_start();
r26895r26896
9491   DEVCB_NULL
9592};
9693
97READ8_MEMBER( ec65_state::ec65_via_read_a)
98{
99   return m_keyboard_input;
100}
101
102READ8_MEMBER( ec65_state::ec65_via_read_b)
103{
104   return 0xff;
105}
106
107WRITE8_MEMBER( ec65_state::ec65_via_write_a )
108{
109}
110
111WRITE8_MEMBER( ec65_state::ec65_via_write_b )
112{
113}
114
11594/* Input ports */
11695static INPUT_PORTS_START( ec65 )
11796INPUT_PORTS_END
r26895r26896
12099{
121100   if (data)
122101   {
123      m_keyboard_input = data;
102      m_via_0->write_pa0((data>>0)&1);
103      m_via_0->write_pa1((data>>1)&1);
104      m_via_0->write_pa2((data>>2)&1);
105      m_via_0->write_pa3((data>>3)&1);
106      m_via_0->write_pa4((data>>4)&1);
107      m_via_0->write_pa5((data>>5)&1);
108      m_via_0->write_pa6((data>>6)&1);
109      m_via_0->write_pa7((data>>7)&1);
124110      m_via_0->write_ca1(1);
125111      m_via_0->write_ca1(0);
126112   }
r26895r26896
134120
135121void ec65_state::machine_reset()
136122{
123   m_via_1->write_pb0(1);
124   m_via_1->write_pb1(1);
125   m_via_1->write_pb2(1);
126   m_via_1->write_pb3(1);
127   m_via_1->write_pb4(1);
128   m_via_1->write_pb5(1);
129   m_via_1->write_pb6(1);
130   m_via_1->write_pb7(1);
137131}
138132
139133void ec65_state::video_start()
r26895r26896
231225   MCFG_ACIA6850_ADD(ACIA6850_TAG, ec65_acia_intf)
232226
233227   MCFG_DEVICE_ADD(VIA6522_0_TAG, VIA6522, XTAL_4MHz / 4)
234   MCFG_VIA6522_READPA_HANDLER(READ8(ec65_state, ec65_via_read_a))
235228
236229   MCFG_DEVICE_ADD(VIA6522_1_TAG, VIA6522, XTAL_4MHz / 4)
237   MCFG_VIA6522_READPB_HANDLER(READ8(ec65_state, ec65_via_read_b))
238   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(ec65_state, ec65_via_write_a))
239   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(ec65_state, ec65_via_write_b))
240230
241231   MCFG_DEVICE_ADD(ACIA6551_TAG, MOS6551, XTAL_1_8432MHz)
242232   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
trunk/src/mess/drivers/mirage.c
r26895r26896
5555{
5656public:
5757   mirage_state(const machine_config &mconfig, device_type type, const char *tag)
58   : driver_device(mconfig, type, tag),
59   m_maincpu(*this, "maincpu"),
60   m_fdc(*this, "wd1772")
61   { }
58      : driver_device(mconfig, type, tag),
59      m_maincpu(*this, "maincpu"),
60      m_fdc(*this, "wd1772"),
61      m_via(*this, "via6522")
62   {
63   }
6264
6365   required_device<m6809e_device> m_maincpu;
6466   required_device<wd1772_t> m_fdc;
67   required_device<via6522_device> m_via;
6568
6669   virtual void machine_reset();
6770
r26895r26896
7679   UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7780   DECLARE_WRITE8_MEMBER(mirage_via_write_porta);
7881   DECLARE_WRITE8_MEMBER(mirage_via_write_portb);
79   DECLARE_READ8_MEMBER(mirage_via_read_porta);
80   DECLARE_READ8_MEMBER(mirage_via_read_portb);
8182
8283   DECLARE_WRITE_LINE_MEMBER(acia_irq_w);
8384
r26895r26896
220221   }
221222}
222223
223// port A: front panel
224READ8_MEMBER(mirage_state::mirage_via_read_porta)
225{
226   return 0;
227}
228
229// port B:
230//  bit 6: IN FDC disk ready
231//  bit 5: IN 5503 sync (?)
232READ8_MEMBER(mirage_state::mirage_via_read_portb)
233{
234   return 0x60;
235}
236
237224static ACIA6850_INTERFACE( mirage_acia6850_interface )
238225{
239226   0,              // tx clock
r26895r26896
255242   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
256243
257244   MCFG_DEVICE_ADD("via6522", VIA6522, 1000000)
258   MCFG_VIA6522_READPA_HANDLER(READ8(mirage_state, mirage_via_read_porta))
259   MCFG_VIA6522_READPB_HANDLER(READ8(mirage_state, mirage_via_read_portb))
260245   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mirage_state, mirage_via_write_porta))
261246   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mirage_state, mirage_via_write_portb))
262247   MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809e_device, irq_line))
r26895r26896
292277
293278   m_l_hi = m_r_hi = 9;
294279   m_l_segs = m_r_segs = 0;
280
281   // port A: front panel
282   m_via->write_pa0(0);
283   m_via->write_pa1(0);
284   m_via->write_pa2(0);
285   m_via->write_pa3(0);
286   m_via->write_pa4(0);
287   m_via->write_pa5(0);
288   m_via->write_pa6(0);
289   m_via->write_pa7(0);
290
291   // port B:
292   //  bit 6: IN FDC disk ready
293   //  bit 5: IN 5503 sync (?)
294   m_via->write_pb0(0);
295   m_via->write_pb1(0);
296   m_via->write_pb2(0);
297   m_via->write_pb3(0);
298   m_via->write_pb4(0);
299   m_via->write_pb5(1);
300   m_via->write_pb6(1);
301   m_via->write_pb7(0);
295302}
296303
297304CONS( 1984, enmirage, 0, 0, mirage, mirage, mirage_state, mirage, "Ensoniq", "Ensoniq Mirage", GAME_NOT_WORKING )
trunk/src/mess/drivers/rmnimbus.c
r26895r26896
332332   MCFG_ER59256_ADD(ER59256_TAG)
333333
334334   MCFG_DEVICE_ADD(VIA_TAG, VIA6522, 1000000)
335   MCFG_VIA6522_READPB_HANDLER(READ8(rmnimbus_state,nimbus_via_read_portb))
336335   MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(CENTRONICS_TAG, centronics_device, write))
337336   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(rmnimbus_state,nimbus_via_write_portb))
338337   MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(CENTRONICS_TAG, centronics_device, strobe_w))
trunk/src/mess/drivers/lisa.c
r26895r26896
173173
174174   /* via */
175175   MCFG_DEVICE_ADD("via6522_0", VIA6522, 500000)
176   MCFG_VIA6522_READPB_HANDLER(READ8(lisa_state, COPS_via_in_b))
177176   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(lisa_state, COPS_via_out_a))
178177   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(lisa_state, COPS_via_out_b))
179178   MCFG_VIA6522_CA1_HANDLER(WRITELINE(lisa_state, COPS_via_out_ca2))
r26895r26896
181180   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(lisa_state, COPS_via_irq_func))
182181
183182   MCFG_DEVICE_ADD("via6522_1", VIA6522, 500000)
184   MCFG_VIA6522_READPB_HANDLER(READ8(lisa_state, parallel_via_in_b))
185183
186184   MCFG_SCC8530_ADD("scc", 7833600, line_cb_t(FUNC(lisa_state::set_scc_interrupt), static_cast<lisa_state *>(owner)))
187185MACHINE_CONFIG_END

Previous 199869 Revisions Next


© 1997-2024 The MAME Team