Previous 199869 Revisions Next

r19626 Monday 17th December, 2012 at 16:07:15 UTC by Curt Coder
6522via: Used core clock/attotime functions. [Curt Coder]
(MESS) c1551: Fixed floppy loading. [Curt Coder]
(MESS) c1571: Fixed fast serial mode on C128. [Curt Coder]
(MESS) 64h156: Fixed 2 MHz mode. (nw)
[src/emu/machine]6522via.c 6522via.h
[src/mess/drivers]plus4.c
[src/mess/machine]64h156.c 64h156.h c1551.c c1551.h c1571.c c1571.h c1581.c

trunk/src/emu/machine/6522via.c
r19625r19626
118118   }
119119}
120120
121attotime via6522_device::cycles_to_time(int c)
122{
123   return attotime::from_hz(clock()) * c;
124}
125121
126
127UINT32 via6522_device::time_to_cycles(attotime t)
128{
129   return (t * clock()).as_double();
130}
131
132
133122UINT16 via6522_device::get_counter1_value()
134123{
135124   UINT16 val;
136125
137126   if(m_t1_active)
138127   {
139      val = time_to_cycles(m_t1->remaining()) - IFR_DELAY;
128      val = attotime_to_clocks(m_t1->remaining()) - IFR_DELAY;
140129   }
141130   else
142131   {
143      val = 0xffff - time_to_cycles(machine().time() - m_time1);
132      val = 0xffff - attotime_to_clocks(machine().time() - m_time1);
144133   }
145134
146135   return val;
r19625r19626
369358      if (m_shift_counter)
370359      {
371360         if (SO_O2_CONTROL(m_acr)) {
372            m_shift_timer->adjust(cycles_to_time(2));
361            m_shift_timer->adjust(clocks_to_attotime(2));
373362         } else {
374            m_shift_timer->adjust(cycles_to_time((m_t2ll + 2)*2));
363            m_shift_timer->adjust(clocks_to_attotime((m_t2ll + 2)*2));
375364         }
376365      }
377366      else
r19625r19626
419408      if (m_shift_counter)
420409      {
421410         if (SI_O2_CONTROL(m_acr)) {
422            m_shift_timer->adjust(cycles_to_time(2));
411            m_shift_timer->adjust(clocks_to_attotime(2));
423412         } else {
424            m_shift_timer->adjust(cycles_to_time((m_t2ll + 2)*2));
413            m_shift_timer->adjust(clocks_to_attotime((m_t2ll + 2)*2));
425414         }
426415      }
427416      else
r19625r19626
472461            {
473462               m_out_b ^= 0x80;
474463            }
475            m_t1->adjust(cycles_to_time(TIMER1_VALUE + IFR_DELAY));
464            m_t1->adjust(clocks_to_attotime(TIMER1_VALUE + IFR_DELAY));
476465         }
477466         else
478467         {
r19625r19626
570559               logerror("%s:6522VIA chip %s: Port A is being read but has no handler\n", machine().describe_context(), tag());
571560            }
572561         }
562
563         /* combine input and output values */
564         val = (m_out_a & m_ddr_a) + (m_in_a & ~m_ddr_a);
573565      }
566      else
567      {
568         val = m_in_a;
569      }
574570
575      /* combine input and output values */
576      val = (m_out_a & m_ddr_a) + (m_in_a & ~m_ddr_a);
577
578571      CLR_PA_INT();
579572
580573      /* If CA2 is configured as output and in pulse or handshake mode,
r19625r19626
585578         m_out_ca2_func(0);
586579         m_out_ca2 = 0;
587580
588         m_ca2_timer->adjust(cycles_to_time(1));
581         m_ca2_timer->adjust(clocks_to_attotime(1));
589582      }
590583      /* If CA2 is configured as output and in pulse or handshake mode,
591584           CA2 is set now */
r19625r19626
650643      clear_int(INT_T2);
651644      if (m_t2_active)
652645      {
653         val = time_to_cycles(m_t2->remaining()) & 0xff;
646         val = attotime_to_clocks(m_t2->remaining()) & 0xff;
654647      }
655648      else
656649      {
r19625r19626
660653         }
661654         else
662655         {
663            val = (0x10000 - (time_to_cycles(machine().time() - m_time2) & 0xffff) - 1) & 0xff;
656            val = (0x10000 - (attotime_to_clocks(machine().time() - m_time2) & 0xffff) - 1) & 0xff;
664657         }
665658      }
666659      break;
r19625r19626
668661   case VIA_T2CH:
669662      if (m_t2_active)
670663      {
671         val = time_to_cycles(m_t2->remaining()) >> 8;
664         val = attotime_to_clocks(m_t2->remaining()) >> 8;
672665      }
673666      else
674667      {
r19625r19626
678671         }
679672         else
680673         {
681            val = (0x10000 - (time_to_cycles(machine().time() - m_time2) & 0xffff) - 1) >> 8;
674            val = (0x10000 - (attotime_to_clocks(machine().time() - m_time2) & 0xffff) - 1) >> 8;
682675         }
683676      }
684677      break;
r19625r19626
689682      clear_int(INT_SR);
690683      if (SI_O2_CONTROL(m_acr))
691684      {
692         m_shift_timer->adjust(cycles_to_time(2));
685         m_shift_timer->adjust(clocks_to_attotime(2));
693686      }
694687      if (SI_T2_CONTROL(m_acr))
695688      {
696         m_shift_timer->adjust(cycles_to_time((m_t2ll + 2)*2));
689         m_shift_timer->adjust(clocks_to_attotime((m_t2ll + 2)*2));
697690      }
698691      break;
699692
r19625r19626
775768         m_out_ca2_func(0);
776769         m_out_ca2 = 0;
777770
778         m_ca2_timer->adjust(cycles_to_time(1));
771         m_ca2_timer->adjust(clocks_to_attotime(1));
779772      }
780773      else if (CA2_AUTO_HS(m_pcr))
781774      {
r19625r19626
856849            m_out_b_func(0, write_data);
857850         }
858851      }
859      m_t1->adjust(cycles_to_time(TIMER1_VALUE + IFR_DELAY));
852      m_t1->adjust(clocks_to_attotime(TIMER1_VALUE + IFR_DELAY));
860853      m_t1_active = 1;
861854      break;
862855
r19625r19626
872865
873866      if (!T2_COUNT_PB6(m_acr))
874867      {
875         m_t2->adjust(cycles_to_time(TIMER2_VALUE + IFR_DELAY));
868         m_t2->adjust(clocks_to_attotime(TIMER2_VALUE + IFR_DELAY));
876869         m_t2_active = 1;
877870      }
878871      else
879872      {
880         m_t2->adjust(cycles_to_time(TIMER2_VALUE));
873         m_t2->adjust(clocks_to_attotime(TIMER2_VALUE));
881874         m_t2_active = 1;
882875         m_time2 = machine().time();
883876      }
r19625r19626
889882      clear_int(INT_SR);
890883      if (SO_O2_CONTROL(m_acr))
891884      {
892         m_shift_timer->adjust(cycles_to_time(2));
885         m_shift_timer->adjust(clocks_to_attotime(2));
893886      }
894887      if (SO_T2_CONTROL(m_acr))
895888      {
896         m_shift_timer->adjust(cycles_to_time((m_t2ll + 2)*2));
889         m_shift_timer->adjust(clocks_to_attotime((m_t2ll + 2)*2));
897890      }
898891      break;
899892
r19625r19626
941934         }
942935         if (T1_CONTINUOUS(data))
943936         {
944            m_t1->adjust(cycles_to_time(counter1 + IFR_DELAY));
937            m_t1->adjust(clocks_to_attotime(counter1 + IFR_DELAY));
945938            m_t1_active = 1;
946939         }
947940      }
trunk/src/emu/machine/6522via.h
r19625r19626
121121   static const device_timer_id TIMER_T2 = 2;
122122   static const device_timer_id TIMER_CA2 = 3;
123123
124    attotime cycles_to_time(int c);
125    UINT32 time_to_cycles(attotime t);
126124    UINT16 get_counter1_value();
127125
128126   inline void set_irq_line(int state);
trunk/src/mess/machine/c1551.c
r19625r19626
77
88**********************************************************************/
99
10/*
11
12    TODO:
13
14    - byte latching does not match hardware behavior
15      (CPU skips data bytes if implemented per schematics)
16
17*/
18
1910#include "c1551.h"
2011
2112
r19625r19626
118109
119110    */
120111
112   // stepper motor
113   m_ga->stp_w(data & 0x03);
114
121115   // spindle motor
122116   m_ga->mtr_w(BIT(data, 2));
123117
124   // stepper motor
125   m_ga->stp_w(data & 0x03);
126
127118   // activity LED
128119   output_set_led_value(LED_ACT, BIT(data, 3));
129120
r19625r19626
175166   m_tcbm_data = data;
176167}
177168
169READ8_MEMBER( c1551_device::tpi0_r )
170{
171   UINT8 data = m_tpi0->read(space, offset);
172   
173   m_ga->ted_w(0);
174   m_ga->ted_w(1);
175
176   return data;
177}
178
179WRITE8_MEMBER( c1551_device::tpi0_w )
180{
181   m_tpi0->write(space, offset, data);
182
183   m_ga->ted_w(0);
184   m_ga->ted_w(1);
185}
186
178187READ8_MEMBER( c1551_device::tpi0_pc_r )
179188{
180189   /*
r19625r19626
340349
341350static ADDRESS_MAP_START( c1551_mem, AS_PROGRAM, 8, c1551_device )
342351   AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x0800) AM_RAM
343   AM_RANGE(0x4000, 0x4007) AM_MIRROR(0x3ff8) AM_DEVREADWRITE_LEGACY(M6523_0_TAG, tpi6525_r, tpi6525_w)
352   AM_RANGE(0x4000, 0x4007) AM_MIRROR(0x3ff8) AM_READWRITE(tpi0_r, tpi0_w)
344353   AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION(M6510T_TAG, 0)
345354ADDRESS_MAP_END
346355
r19625r19626
353362{
354363   DEVCB_NULL,
355364   DEVCB_NULL,
356   DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, atni_w)
365   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF, c64h156_device, atni_w)
357366};
358367
359368
r19625r19626
569578
570579   if (tpi1_selected(offset))
571580   {
572      data = tpi6525_r(m_tpi1, space, offset & 0x07);
581      data = m_tpi1->read(space, offset & 0x07);
573582   }
574583
575584   return data;
r19625r19626
584593{
585594   if (tpi1_selected(offset))
586595   {
587      tpi6525_w(m_tpi1, space, offset & 0x07, data);
596      m_tpi1->write(space, offset & 0x07, data);
588597   }
589598
590599   m_exp->cd_w(space, offset, data, ba, cs0, c1l, c2l, cs1, c1h, c2h);
trunk/src/mess/machine/c1551.h
r19625r19626
5353
5454   DECLARE_READ8_MEMBER( tcbm_data_r );
5555   DECLARE_WRITE8_MEMBER( tcbm_data_w );
56   DECLARE_READ8_MEMBER( tpi0_r );
57   DECLARE_WRITE8_MEMBER( tpi0_w );
5658   DECLARE_READ8_MEMBER( yb_r );
5759   DECLARE_WRITE8_MEMBER( yb_w );
5860   DECLARE_READ8_MEMBER( tpi0_pc_r );
trunk/src/mess/machine/c1571.c
r19625r19626
1111
1212    TODO:
1313
14    - fast serial
14   - refactor to use wd_fdc and modern floppy
1515    - 1541/1571 Alignment shows drive speed as 266 rpm, should be 310
16    - CP/M disks
1716
1817*/
1918
r19625r19626
164163static ADDRESS_MAP_START( c1571_mem, AS_PROGRAM, 8, base_c1571_device )
165164   AM_RANGE(0x0000, 0x07ff) AM_RAM
166165   AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x03f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write)
167   AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x03f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write)
166   AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x03f0) AM_READWRITE(via1_r, via1_w)
168167   AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE_LEGACY(WD1770_TAG, wd17xx_r, wd17xx_w)
169168   AM_RANGE(0x4000, 0x400f) AM_MIRROR(0x3ff0) AM_DEVREADWRITE(M6526_TAG, mos6526_device, read, write)
170169   AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0)
r19625r19626
227226
228227    */
229228
229   // fast serial direction
230   m_ser_dir = BIT(data, 1);
231
232   // side select
233   m_ga->set_side(BIT(data, 2));
234
230235   // 1/2 MHz
231236   int clock_1_2 = BIT(data, 5);
232237
r19625r19626
243248      m_1_2mhz = clock_1_2;
244249   }
245250
246   // fast serial direction
247   int ser_dir = BIT(data, 1);
248
249   if (m_ser_dir != ser_dir)
250   {
251      m_ser_dir = ser_dir;
252
253      set_iec_data();
254      set_iec_srq();
255
256      m_cia->cnt_w(m_ser_dir || m_bus->srq_r());
257      m_cia->sp_w(m_ser_dir || m_bus->data_r());
258   }
259
260   // side select
261   m_ga->set_side(BIT(data, 2));
262
263251   // attention out
264252   m_bus->atn_w(this, !BIT(data, 6));
253
254   update_iec();
265255}
266256
267257READ8_MEMBER( base_c1571_device::via0_pb_r )
r19625r19626
318308   // data out
319309   m_data_out = BIT(data, 1);
320310
311   // clock out
312   m_bus->clk_w(this, !BIT(data, 3));
313
321314   // attention acknowledge
322315   m_ga->atna_w(BIT(data, 4));
323316
324   // clock out
325   m_bus->clk_w(this, !BIT(data, 3));
317   update_iec();
326318}
327319
328320READ_LINE_MEMBER( base_c1571_device::atn_in_r )
r19625r19626
359351//  via6522_interface via1_intf
360352//-------------------------------------------------
361353
354READ8_MEMBER( base_c1571_device::via1_r )
355{
356   UINT8 data = m_via1->read(space, offset);
357   
358   m_ga->ted_w(!m_1_2mhz);
359   m_ga->ted_w(1);
360
361   return data;
362}
363
364WRITE8_MEMBER( base_c1571_device::via1_w )
365{
366   m_via1->write(space, offset, data);
367
368   m_ga->ted_w(!m_1_2mhz);
369   m_ga->ted_w(1);
370}
371
362372WRITE_LINE_MEMBER( base_c1571_device::via1_irq_w )
363373{
364374   m_via1_irq = state;
r19625r19626
465475
466476WRITE_LINE_MEMBER( base_c1571_device::cia_cnt_w )
467477{
468   // fast serial clock out
469478   m_cnt_out = state;
470   set_iec_srq();
479   update_iec();
471480}
472481
473482WRITE_LINE_MEMBER( base_c1571_device::cia_sp_w )
474483{
475   // fast serial data out
476484   m_sp_out = state;
477   set_iec_data();
485   update_iec();
478486}
479487
480488READ8_MEMBER( base_c1571_device::cia_pb_r )
r19625r19626
507515//  C64H156_INTERFACE( ga_intf )
508516//-------------------------------------------------
509517
510WRITE_LINE_MEMBER( base_c1571_device::atn_w )
511{
512   set_iec_data();
513}
514
515518WRITE_LINE_MEMBER( base_c1571_device::byte_w )
516519{
517   m_maincpu->set_input_line(M6502_SET_OVERFLOW, state);
518
519520   m_via1->write_ca1(state);
521   m_maincpu->set_input_line(M6502_SET_OVERFLOW, state);
520522}
521523
522524static C64H156_INTERFACE( ga_intf )
523525{
524   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, atn_w),
525526   DEVCB_NULL,
527   DEVCB_NULL,
526528   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1571_device, byte_w)
527529};
528530
r19625r19626
673675
674676
675677//**************************************************************************
676//  INLINE HELPERS
677//**************************************************************************
678
679//-------------------------------------------------
680//  base_c1571_device - constructor
681//-------------------------------------------------
682
683inline void base_c1571_device::set_iec_data()
684{
685   int data = !m_data_out && !m_ga->atn_r();
686
687   // fast serial data
688   if (m_ser_dir) data &= m_sp_out;
689
690   m_bus->data_w(this, data);
691}
692
693
694//-------------------------------------------------
695//  base_c1571_device - constructor
696//-------------------------------------------------
697
698inline void base_c1571_device::set_iec_srq()
699{
700   int srq = 1;
701
702   // fast serial clock
703   if (m_ser_dir) srq &= m_cnt_out;
704
705   m_bus->srq_w(this, srq);
706}
707
708
709
710//**************************************************************************
711678//  LIVE DEVICE
712679//**************************************************************************
713680
r19625r19626
809776   wd17xx_mr_w(m_fdc, 1);
810777
811778   m_sp_out = 1;
812   set_iec_data();
813
814779   m_cnt_out = 1;
815   set_iec_srq();
780
781   update_iec();
816782}
817783
818784
r19625r19626
822788
823789void base_c1571_device::cbm_iec_srq(int state)
824790{
825   m_cia->cnt_w(m_ser_dir || state);
791   update_iec();
826792}
827793
828794
r19625r19626
832798
833799void base_c1571_device::cbm_iec_atn(int state)
834800{
835   m_via0->write_ca1(!state);
836   m_ga->atni_w(!state);
837
838   set_iec_data();
801   update_iec();
839802}
840803
841804
r19625r19626
845808
846809void base_c1571_device::cbm_iec_data(int state)
847810{
848   m_cia->sp_w(m_ser_dir || state);
811   update_iec();
849812}
850813
851814
r19625r19626
893856    int wp = floppy_wpt_r(image);
894857   c1571->m_ga->on_disk_changed(wp);
895858}
859
860
861//-------------------------------------------------
862//  update_iec -
863//-------------------------------------------------
864
865void base_c1571_device::update_iec()
866{
867   m_cia->cnt_w(m_ser_dir || m_bus->srq_r());
868   m_cia->sp_w(m_ser_dir || m_bus->data_r());
869
870   int atn = m_bus->atn_r();
871   m_via0->write_ca1(!atn);
872   m_ga->atni_w(!atn);
873
874   // serial data
875   int data = !m_data_out && !m_ga->atn_r();
876   if (m_ser_dir) data &= m_sp_out;
877   m_bus->data_w(this, data);
878
879   // fast clock
880   int srq = 1;
881   if (m_ser_dir) srq &= m_cnt_out;
882   m_bus->srq_w(this, srq);
883}
trunk/src/mess/machine/c1571.h
r19625r19626
7171   DECLARE_WRITE8_MEMBER( via0_pb_w );
7272   DECLARE_READ_LINE_MEMBER( atn_in_r );
7373   DECLARE_READ_LINE_MEMBER( wprt_r );
74   DECLARE_READ8_MEMBER( via1_r );
75   DECLARE_WRITE8_MEMBER( via1_w );
7476   DECLARE_WRITE_LINE_MEMBER( via1_irq_w );
7577   DECLARE_READ8_MEMBER( via1_pb_r );
7678   DECLARE_WRITE8_MEMBER( via1_pb_w );
r19625r19626
8082   DECLARE_WRITE_LINE_MEMBER( cia_sp_w );
8183   DECLARE_READ8_MEMBER( cia_pb_r );
8284   DECLARE_WRITE8_MEMBER( cia_pb_w );
83   DECLARE_WRITE_LINE_MEMBER( atn_w );
8485   DECLARE_WRITE_LINE_MEMBER( byte_w );
8586   DECLARE_WRITE_LINE_MEMBER( wpt_w );
8687
r19625r19626
100101   virtual void parallel_data_w(UINT8 data);
101102   virtual void parallel_strobe_w(int state);
102103
103   inline void set_iec_data();
104   inline void set_iec_srq();
104   void update_iec();
105105
106106   required_device<cpu_device> m_maincpu;
107107   required_device<via6522_device> m_via0;
trunk/src/mess/machine/c1581.c
r19625r19626
453453
454454void base_c1581_device::update_iec()
455455{
456   int atn = m_bus->atn_r();
457
458456   m_cia->cnt_w(m_fast_ser_dir || m_bus->srq_r());
459457   m_cia->sp_w(m_fast_ser_dir || m_bus->data_r());
458
459   int atn = m_bus->atn_r();
460460   m_cia->flag_w(atn);
461461
462462   // serial data
463463   int data = !m_data_out && !(m_atn_ack && !atn);
464
465464   if (m_fast_ser_dir) data &= m_sp_out;
466
467465   m_bus->data_w(this, data);
468466
469467   // fast clock
470468   int srq = 1;
471
472469   if (m_fast_ser_dir) srq &= m_cnt_out;
473
474470   m_bus->srq_w(this, srq);
475471}
trunk/src/mess/machine/64h156.c
r19625r19626
329329
330330   int byte_sync = !(uc1b && m_soe && !uf4_qb);
331331
332   if (LOG) logerror("BYTE %u SOE %u\n", m_byte_sync, m_soe);
332   if (LOG) logerror("BYTE %u SOE %u\n", byte_sync, m_soe);
333333
334334   // UD3
335335
r19625r19626
365365   if (m_byte_sync != byte_sync)
366366   {
367367      m_byte_sync = byte_sync;
368      m_out_byte_func(m_byte_sync);
368
369      if (m_accl)
370      {
371         if (!byte_sync)
372         {
373            m_accl_yb = m_ud2;
374            m_accl_byte_sync = byte_sync;
375            m_out_byte_func(m_accl_byte_sync);
376         }
377      }
378      else
379      {
380         m_out_byte_func(m_byte_sync);
381      }
369382   }
370383
371384   m_uf4_qb = uf4_qb;
r19625r19626
405418     m_last_bit_sync(0),
406419     m_bit_sync(0),
407420     m_byte_sync(1),
421     m_accl_byte_sync(1),
408422     m_block_sync(1),
409423     m_ue7(0),
410424     m_ue7_tc(0),
411425     m_uf4(0),
412426     m_uf4_qb(0),
413427     m_ud2(0),
428     m_accl_yb(0),
414429     m_u4a(0),
415430     m_u4b(0),
416431     m_ue3(0),
r19625r19626
458473   save_item(NAME(m_last_bit_sync));
459474   save_item(NAME(m_bit_sync));
460475   save_item(NAME(m_byte_sync));
476   save_item(NAME(m_accl_byte_sync));
461477   save_item(NAME(m_block_sync));
462478   save_item(NAME(m_ue7));
463479   save_item(NAME(m_ue7_tc));
464480   save_item(NAME(m_uf4));
465481   save_item(NAME(m_uf4_qb));
466482   save_item(NAME(m_ud2));
483   save_item(NAME(m_accl_yb));
467484   save_item(NAME(m_u4a));
468485   save_item(NAME(m_u4b));
469486   save_item(NAME(m_ue3));
r19625r19626
504521
505522   if (m_soe)
506523   {
507      data = m_ud2;
524      if (m_accl)
525      {
526         data = m_accl_yb;
527      }
528      else
529      {
530         data = m_ud2;
531      }
508532   }
509533
510   if (LOG) logerror("YB read %02x:%02x\n", m_ud2, data);
534   if (LOG) logerror("%s YB read %02x:%02x\n", machine().describe_context(), m_ud2, data);
511535
512536   return data;
513537}
r19625r19626
558582
559583READ_LINE_MEMBER( c64h156_device::byte_r )
560584{
561   return m_byte_sync;
585   int state = 1;
586
587   if (m_accl)
588   {
589      state = m_accl_byte_sync;
590   }
591   else
592   {
593      state = m_byte_sync;
594   }
595
596   return state;
562597}
563598
564599
565600//-------------------------------------------------
601//  ted_w -
602//-------------------------------------------------
603
604WRITE_LINE_MEMBER( c64h156_device::ted_w )
605{
606   if (m_accl && !m_accl_byte_sync && !state)
607   {
608      m_accl_byte_sync = 1;
609      m_out_byte_func(m_accl_byte_sync);
610   }
611}
612
613
614//-------------------------------------------------
566615//  mtr_w - motor write
567616//-------------------------------------------------
568617
trunk/src/mess/machine/64h156.h
r19625r19626
110110   DECLARE_WRITE_LINE_MEMBER( accl_w );
111111   DECLARE_READ_LINE_MEMBER( sync_r );
112112   DECLARE_READ_LINE_MEMBER( byte_r );
113   DECLARE_WRITE_LINE_MEMBER( ted_w );
113114   DECLARE_WRITE_LINE_MEMBER( mtr_w );
114115   DECLARE_WRITE_LINE_MEMBER( oe_w );
115116   DECLARE_WRITE_LINE_MEMBER( soe_w );
r19625r19626
165166   // signals
166167   int m_accl;                        // 1/2 MHz select
167168   int m_ds;                        // density select
168   int m_soe;                        // s? output enable
169   int m_soe;                        // serial output enable
169170   int m_oe;                        // output enable (0 = write, 1 = read)
170171
171172   // IEC
r19625r19626
176177   int m_last_bit_sync;
177178   int m_bit_sync;
178179   int m_byte_sync;
180   int m_accl_byte_sync;
179181   int m_block_sync;
180182   int m_ue7;
181183   int m_ue7_tc;
182184   int m_uf4;
183185   int m_uf4_qb;
184186   UINT8 m_ud2;
187   UINT8 m_accl_yb;
185188   int m_u4a;
186189   int m_u4b;
187190   int m_ue3;
trunk/src/mess/drivers/plus4.c
r19625r19626
44
55    - cassette motor is turned on only for a moment while LOADing
66    - c16 function ROM test fails
7    - c1551 won't load anything
87    - clean up keyboard handling
98    - clean up TED
109    - dump PLA
r19625r19626
910909   MCFG_QUICKLOAD_ADD("quickload", cbm_c16, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS)
911910   MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, plus4_datassette_devices, "c1531", NULL)
912911   MCFG_CBM_IEC_ADD(iec_intf, NULL)
913   MCFG_PLUS4_EXPANSION_SLOT_ADD(PLUS4_EXPANSION_SLOT_TAG, XTAL_14_31818MHz/16, expansion_intf, plus4_expansion_cards, NULL, NULL)
912   MCFG_PLUS4_EXPANSION_SLOT_ADD(PLUS4_EXPANSION_SLOT_TAG, XTAL_14_31818MHz/16, expansion_intf, plus4_expansion_cards, "c1551", NULL)
914913   MCFG_PLUS4_USER_PORT_ADD(PLUS4_USER_PORT_TAG, plus4_user_port_cards, NULL, NULL)
915914
916915   // internal ram
r19625r19626
950949   MCFG_QUICKLOAD_ADD("quickload", cbm_c16, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS)
951950   MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, plus4_datassette_devices, "c1531", NULL)
952951   MCFG_CBM_IEC_ADD(iec_intf, NULL)
953   MCFG_PLUS4_EXPANSION_SLOT_ADD(PLUS4_EXPANSION_SLOT_TAG, XTAL_17_73447MHz/20, expansion_intf, plus4_expansion_cards, NULL, NULL)
952   MCFG_PLUS4_EXPANSION_SLOT_ADD(PLUS4_EXPANSION_SLOT_TAG, XTAL_17_73447MHz/20, expansion_intf, plus4_expansion_cards, "c1551", NULL)
954953   MCFG_PLUS4_USER_PORT_ADD(PLUS4_USER_PORT_TAG, plus4_user_port_cards, NULL, NULL)
955954
956955   // internal ram

Previous 199869 Revisions Next


© 1997-2024 The MAME Team