Previous 199869 Revisions Next

r23593 Monday 10th June, 2013 at 13:43:50 UTC by Curt Coder
upd1990a: devcb2. (nw)
[src/emu/machine]upd1990a.c upd1990a.h
[src/mess/drivers]apc.c kyocera.c pc1500.c pc8001.c pc8401a.c pc8801.c pc9801.c prof80.c
[src/mess/machine]a2thunderclock.c s100_wunderbus.c

trunk/src/emu/machine/upd1990a.c
r23592r23593
1212    TODO:
1313
1414    - set tp = 64 Hz when out of test mode
15    - test mode is mostly untested (is used by MS-DOS 6.2x in PC-98xx)
15    - test mode is mostly untested (is used by MS-DOS 6.2x in PC-98xx, and neogeo)
1616
1717*/
1818
1919#include "upd1990a.h"
2020
2121
22// device type definition
23const device_type UPD1990A = &device_creator<upd1990a_device>;
24const device_type UPD4990A = &device_creator<upd4990a_device>;
2522
26
2723//**************************************************************************
2824//  MACROS / CONSTANTS
2925//**************************************************************************
r23592r23593
3127#define LOG 0
3228
3329
34// operating modes
35enum
36{
37   MODE_REGISTER_HOLD = 0,
38   MODE_SHIFT,
39   MODE_TIME_SET,
40   MODE_TIME_READ,
41   MODE_TP_64HZ_SET,
42   MODE_TP_256HZ_SET,
43   MODE_TP_2048HZ_SET,
44   MODE_TEST
45};
4630
31//**************************************************************************
32//  DEVICE DEFINITIONS
33//**************************************************************************
4734
35// device type definition
36const device_type UPD1990A = &device_creator<upd1990a_device>;
37const device_type UPD4990A = &device_creator<upd4990a_device>;
4838
39
40
4941//**************************************************************************
5042//  LIVE DEVICE
5143//**************************************************************************
r23592r23593
5446//  upd1990a_device - constructor
5547//-------------------------------------------------
5648
57upd1990a_rtc_device::upd1990a_rtc_device(const machine_config &mconfig, device_type type, const char* name, const char *tag, device_t *owner, UINT32 clock)
49upd1990a_device::upd1990a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant)
5850   : device_t(mconfig, type, name, tag, owner, clock),
5951      device_rtc_interface(mconfig, *this),
52      m_write_data(*this),
53      m_write_tp(*this),
6054      m_data_out(0),
6155      m_c(0),
62      m_clk(0)
56      m_clk(0),
57      m_variant(variant)
6358{
6459}
6560
66
6761upd1990a_device::upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
68      : upd1990a_rtc_device(mconfig, UPD1990A, "uPD1990A", tag, owner, clock)
62   : device_t(mconfig, UPD1990A, "uPD1990A", tag, owner, clock),
63      device_rtc_interface(mconfig, *this),
64      m_write_data(*this),
65      m_write_tp(*this),
66      m_data_out(0),
67      m_c(0),
68      m_clk(0),
69      m_variant(TYPE_1990A)
6970{
70   m_device_type = TYPE_UPD1990A;
7171}
7272
73
7473upd4990a_device::upd4990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
75      : upd1990a_rtc_device(mconfig, UPD4990A, "uPD4990A", tag, owner, clock)
76{
77   m_device_type = TYPE_UPD4990A;
78}
74   : upd1990a_device(mconfig, UPD4990A, "uPD4990A", tag, owner, clock, TYPE_4990A) { }
7975
8076
8177//-------------------------------------------------
82//  device_config_complete - perform any
83//  operations now that the configuration is
84//  complete
85//-------------------------------------------------
86
87void upd1990a_rtc_device::device_config_complete()
88{
89   // inherit a copy of the static data
90   const upd1990a_interface *intf = reinterpret_cast<const upd1990a_interface *>(static_config());
91   if (intf != NULL)
92      *static_cast<upd1990a_interface *>(this) = *intf;
93
94   // or initialize to defaults if none provided
95   else
96   {
97      memset(&m_out_data_cb, 0, sizeof(m_out_data_cb));
98      memset(&m_out_tp_cb, 0, sizeof(m_out_tp_cb));
99   }
100}
101
102
103//-------------------------------------------------
10478//  device_start - device-specific startup
10579//-------------------------------------------------
10680
107void upd1990a_rtc_device::device_start()
81void upd1990a_device::device_start()
10882{
10983   // resolve callbacks
110   m_out_data_func.resolve(m_out_data_cb, *this);
111   m_out_tp_func.resolve(m_out_tp_cb, *this);
84   m_write_data.resolve_safe();
85   m_write_tp.resolve_safe();
11286
11387   // allocate timers
11488   m_timer_clock = timer_alloc(TIMER_CLOCK);
r23592r23593
136110//  device_reset - device-specific reset
137111//-------------------------------------------------
138112
139void upd1990a_rtc_device::device_reset()
113void upd1990a_device::device_reset()
140114{
141115   m_tp = 0;
142116   m_c_unlatched = 0;
r23592r23593
148122//  device_timer - handler timer events
149123//-------------------------------------------------
150124
151void upd1990a_rtc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
125void upd1990a_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
152126{
153127   switch (id)
154128   {
r23592r23593
161135
162136      if (LOG) logerror("uPD1990A '%s' TP %u\n", tag(), m_tp);
163137
164      m_out_tp_func(m_tp);
138      m_write_tp(m_tp);
165139      break;
166140
167141   case TIMER_DATA_OUT:
r23592r23593
169143
170144      if (LOG) logerror("uPD1990A '%s' DATA OUT TICK %u\n", tag(), m_data_out);
171145
172      m_out_data_func(m_data_out);
146      m_write_data(m_data_out);
173147      break;
174148
175149   case TIMER_TEST_MODE:
r23592r23593
213187//  rtc_clock_updated -
214188//-------------------------------------------------
215189
216void upd1990a_rtc_device::rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second)
190void upd1990a_device::rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second)
217191{
218192   m_time_counter[0] = convert_to_bcd(second);
219193   m_time_counter[1] = convert_to_bcd(minute);
r23592r23593
227201//  oe_w -
228202//-------------------------------------------------
229203
230WRITE_LINE_MEMBER( upd1990a_rtc_device::oe_w )
204WRITE_LINE_MEMBER( upd1990a_device::oe_w )
231205{
232206   if (LOG) logerror("uPD1990A '%s' OE %u\n", tag(), state);
233207
r23592r23593
239213//  cs_w -
240214//-------------------------------------------------
241215
242WRITE_LINE_MEMBER( upd1990a_rtc_device::cs_w )
216WRITE_LINE_MEMBER( upd1990a_device::cs_w )
243217{
244218   if (LOG) logerror("uPD1990A '%s' CS %u\n", tag(), state);
245219
r23592r23593
251225//  stb_w -
252226//-------------------------------------------------
253227
254WRITE_LINE_MEMBER( upd1990a_rtc_device::stb_w )
228WRITE_LINE_MEMBER( upd1990a_device::stb_w )
255229{
256230   if (LOG) logerror("uPD1990A '%s' STB %u\n", tag(), state);
257231
r23592r23593
292266
293267         /* output LSB of shift register */
294268         m_data_out = BIT(m_shift_reg[0], 0);
295         m_out_data_func(m_data_out);
269         m_write_data(m_data_out);
296270
297271         /* 32 Hz time pulse */
298272         m_timer_tp->adjust(attotime::zero, 0, attotime::from_hz(32*2));
r23592r23593
312286
313287         /* output LSB of shift register */
314288         m_data_out = BIT(m_shift_reg[0], 0);
315         m_out_data_func(m_data_out);
289         m_write_data(m_data_out);
316290
317291         /* load shift register data into time counter */
318292         for (int i = 0; i < 5; i++)
r23592r23593
399373//  clk_w -
400374//-------------------------------------------------
401375
402WRITE_LINE_MEMBER( upd1990a_rtc_device::clk_w )
376WRITE_LINE_MEMBER( upd1990a_device::clk_w )
403377{
404378   if (LOG) logerror("uPD1990A '%s' CLK %u\n", tag(), state);
405379
r23592r23593
428402
429403            if (LOG) logerror("uPD1990A '%s' DATA OUT %u\n", tag(), m_data_out);
430404
431            m_out_data_func(m_data_out);
405            m_write_data(m_data_out);
432406         }
433407      }
434408   }
r23592r23593
441415//  c0_w -
442416//-------------------------------------------------
443417
444WRITE_LINE_MEMBER( upd1990a_rtc_device::c0_w )
418WRITE_LINE_MEMBER( upd1990a_device::c0_w )
445419{
446420   if (LOG) logerror("uPD1990A '%s' C0 %u\n", tag(), state);
447421
r23592r23593
453427//  c1_w -
454428//-------------------------------------------------
455429
456WRITE_LINE_MEMBER( upd1990a_rtc_device::c1_w )
430WRITE_LINE_MEMBER( upd1990a_device::c1_w )
457431{
458432   if (LOG) logerror("uPD1990A '%s' C1 %u\n", tag(), state);
459433
r23592r23593
465439//  c2_w -
466440//-------------------------------------------------
467441
468WRITE_LINE_MEMBER( upd1990a_rtc_device::c2_w )
442WRITE_LINE_MEMBER( upd1990a_device::c2_w )
469443{
470444   if (LOG) logerror("uPD1990A '%s' C2 %u\n", tag(), state);
471445
r23592r23593
477451//  data_in_w -
478452//-------------------------------------------------
479453
480WRITE_LINE_MEMBER( upd1990a_rtc_device::data_in_w )
454WRITE_LINE_MEMBER( upd1990a_device::data_in_w )
481455{
482456   if (LOG) logerror("uPD1990A '%s' DATA IN %u\n", tag(), state);
483457
r23592r23593
489463//  data_out_r -
490464//-------------------------------------------------
491465
492READ_LINE_MEMBER( upd1990a_rtc_device::data_out_r )
466READ_LINE_MEMBER( upd1990a_device::data_out_r )
493467{
494468   return m_data_out;
495469}
r23592r23593
499473//  tp_r -
500474//-------------------------------------------------
501475
502READ_LINE_MEMBER( upd1990a_rtc_device::tp_r )
476READ_LINE_MEMBER( upd1990a_device::tp_r )
503477{
504478   return m_tp;
505479}
trunk/src/emu/machine/upd1990a.h
r23592r23593
2727
2828
2929//**************************************************************************
30//  MACROS / CONSTANTS
31//**************************************************************************
32
33
34
35
36//**************************************************************************
3730//  INTERFACE CONFIGURATION MACROS
3831//**************************************************************************
3932
40#define MCFG_UPD1990A_ADD(_tag, _clock, _config) \
41   MCFG_DEVICE_ADD((_tag), UPD1990A, _clock)   \
42   MCFG_DEVICE_CONFIG(_config)
33#define MCFG_UPD1990A_ADD(_tag, _clock, _data, _tp) \
34   MCFG_DEVICE_ADD((_tag), UPD1990A, _clock) \
35   downcast<upd1990a_device *>(device)->set_data_callback(DEVCB2_##_data); \
36   downcast<upd1990a_device *>(device)->set_tp_callback(DEVCB2_##_tp);
4337
44#define UPD1990A_INTERFACE(name) \
45   const upd1990a_interface (name) =
38#define MCFG_UPD4990A_ADD(_tag, _clock, _data, _tp) \
39   MCFG_DEVICE_ADD((_tag), UPD4990A, _clock) \
40   downcast<upd1990a_device *>(device)->set_data_callback(DEVCB2_##_data); \
41   downcast<upd1990a_device *>(device)->set_tp_callback(DEVCB2_##_tp);
4642
4743
4844
r23592r23593
5046//  TYPE DEFINITIONS
5147//**************************************************************************
5248
53// ======================> upd1990a_interface
54
55struct upd1990a_interface
56{
57   devcb_write_line        m_out_data_cb;
58   devcb_write_line        m_out_tp_cb;
59};
60
61
6249// ======================> upd1990a_device
6350
64class upd1990a_rtc_device : public device_t,
65                     public device_rtc_interface,
66                     public upd1990a_interface
51class upd1990a_device : public device_t,
52                  public device_rtc_interface
6753{
6854public:
6955   // construction/destruction
70   upd1990a_rtc_device(const machine_config &mconfig, device_type type, const char* name, const char *tag, device_t *owner, UINT32 clock);
56   upd1990a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant);
57   upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
7158
59   template<class _data> void set_data_callback(_data data) { m_write_data.set_callback(data); }
60   template<class _tp> void set_tp_callback(_tp tp) { m_write_tp.set_callback(tp); }
61
7262   DECLARE_WRITE_LINE_MEMBER( oe_w );
7363   DECLARE_WRITE_LINE_MEMBER( cs_w );
7464   DECLARE_WRITE_LINE_MEMBER( stb_w );
r23592r23593
8272
8373protected:
8474   // device-level overrides
85   virtual void device_config_complete();
8675   virtual void device_start();
8776   virtual void device_reset();
8877   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
8978
9079   // device_rtc_interface overrides
9180   virtual void rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second);
92   enum {
93         TYPE_UPD1990A = 0,
94         TYPE_UPD4990A
81
82   enum
83   {
84      TYPE_1990A = 0,
85      TYPE_4990A
9586   };
96   int m_device_type;
9787
9888private:
99   static const device_timer_id TIMER_CLOCK = 0;
100   static const device_timer_id TIMER_TP = 1;
101   static const device_timer_id TIMER_DATA_OUT = 2;
102   static const device_timer_id TIMER_TEST_MODE = 3;
89   enum
90   {
91      TIMER_CLOCK,
92      TIMER_TP,
93      TIMER_DATA_OUT,
94      TIMER_TEST_MODE
95   };
10396
104   devcb_resolved_write_line   m_out_data_func;
105   devcb_resolved_write_line   m_out_tp_func;
97   enum
98   {
99      MODE_REGISTER_HOLD = 0,
100      MODE_SHIFT,
101      MODE_TIME_SET,
102      MODE_TIME_READ,
103      MODE_TP_64HZ_SET,
104      MODE_TP_256HZ_SET,
105      MODE_TP_2048HZ_SET,
106      MODE_TEST
107   };
106108
109   devcb2_write_line   m_write_data;
110   devcb2_write_line   m_write_tp;
111
107112   UINT8 m_time_counter[5];    // time counter
108113   UINT8 m_shift_reg[5];       // shift register
109114
r23592r23593
117122   int m_tp;                   // time pulse
118123   int m_c_unlatched;          // command waiting for STB
119124
125   int m_variant;
126
120127   // timers
121128   emu_timer *m_timer_clock;
122129   emu_timer *m_timer_tp;
r23592r23593
124131   emu_timer *m_timer_test_mode;
125132};
126133
127class upd1990a_device : public upd1990a_rtc_device
128{
129public:
130   upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
131};
132134
135// ======================> upd4990a_device
133136
134class upd4990a_device : public upd1990a_rtc_device
137class upd4990a_device : public upd1990a_device
135138{
136139public:
137140   upd4990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
138141};
139142
140// device type definition
143
144// device type definitions
141145extern const device_type UPD1990A;
142146extern const device_type UPD4990A;
143147
148
149
144150#endif
trunk/src/mess/drivers/prof80.c
r23592r23593
489489//**************************************************************************
490490
491491//-------------------------------------------------
492//  UPD1990A_INTERFACE( rtc_intf )
493//-------------------------------------------------
494
495static UPD1990A_INTERFACE( rtc_intf )
496{
497   DEVCB_NULL,
498   DEVCB_NULL
499};
500
501
502//-------------------------------------------------
503492//  upd765_interface fdc_intf
504493//-------------------------------------------------
505494
r23592r23593
616605   MCFG_CPU_IO_MAP(prof80_io)
617606
618607   // devices
619   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf)
608   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL)
620609   MCFG_UPD765A_ADD(UPD765_TAG, false, true)
621610   MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", prof80_floppies, "525qd", floppy_image_device::default_floppy_formats)
622611   MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", prof80_floppies, "525qd", floppy_image_device::default_floppy_formats)
trunk/src/mess/drivers/pc8001.c
r23592r23593
471471   { DEVCB_DRIVER_MEMBER(pc8001_state, dma_io_w), DEVCB_DRIVER_MEMBER(pc8001_state, dma_io_w), DEVCB_DRIVER_MEMBER(pc8001_state, dma_io_w), DEVCB_DRIVER_MEMBER(pc8001_state, dma_io_w) },
472472};
473473
474/* uPD1990A Interface */
475
476static UPD1990A_INTERFACE( rtc_intf )
477{
478   DEVCB_NULL,
479   DEVCB_NULL
480};
481
482474/* Machine Initialization */
483475
484476void pc8001_state::machine_start()
r23592r23593
569561   MCFG_I8251_ADD(I8251_TAG, uart_intf)
570562   MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
571563   MCFG_I8257_ADD(I8257_TAG, 4000000, dmac_intf)
572   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf)
564   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL)
573565   MCFG_UPD3301_ADD(UPD3301_TAG, 14318180, pc8001_upd3301_intf)
574566
575567   MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
r23592r23593
603595   MCFG_I8251_ADD(I8251_TAG, uart_intf)
604596   MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
605597   MCFG_I8257_ADD(I8257_TAG, 4000000, dmac_intf)
606   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf)
598   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL)
607599   MCFG_UPD3301_ADD(UPD3301_TAG, 14318180, pc8001_upd3301_intf)
608600
609601   MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
trunk/src/mess/drivers/pc8801.c
r23592r23593
21412141   PORT_DIPNAME( 0x08, 0x00, "Auto-boot floppy at start-up" )
21422142   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
21432143   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2144   PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd1990a", upd1990a_rtc_device, data_out_r)
2144   PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd1990a", upd1990a_device, data_out_r)
21452145   PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_CUSTOM ) PORT_VBLANK("screen")
21462146   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
21472147
r23592r23593
22502250   GFXDECODE_ENTRY( "kanji", 0, kanji_layout, 0, 8 )
22512251GFXDECODE_END
22522252
2253/* uPD1990A Interface */
2254
2255static UPD1990A_INTERFACE( pc8801_upd1990a_intf )
2256{
2257   DEVCB_NULL,
2258   DEVCB_NULL
2259};
2260
22612253/* Floppy Configuration */
22622254
22632255static SLOT_INTERFACE_START( pc88_floppies )
r23592r23593
26772669   #ifdef USE_PROPER_I8214
26782670   MCFG_I8214_ADD(I8214_TAG, MASTER_CLOCK, pic_intf)
26792671   #endif
2680   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, pc8801_upd1990a_intf)
2672   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL)
26812673   //MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
26822674   MCFG_CASSETTE_ADD("cassette", pc8801_cassette_interface)
26832675   MCFG_SOFTWARE_LIST_ADD("tape_list","pc8801_cass")
trunk/src/mess/drivers/apc.c
r23592r23593
981981   { DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_dack0_w), DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_dack1_w), DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_dack2_w), DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_dack3_w) }
982982};
983983
984static UPD1990A_INTERFACE( apc_upd1990a_intf )
985{
986   DEVCB_NULL,
987   DEVCB_NULL
988};
989
990984static const floppy_format_type apc_floppy_formats[] = {
991985   FLOPPY_D88_FORMAT,
992986   FLOPPY_IMD_FORMAT,
r23592r23593
10231017   MCFG_I8237_ADD("i8237", MAIN_CLOCK, dmac_intf)
10241018
10251019   MCFG_NVRAM_ADD_1FILL("cmos")
1026   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, apc_upd1990a_intf)
1020   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
10271021
10281022   MCFG_UPD765A_ADD("upd765", true, true)
10291023   MCFG_FLOPPY_DRIVE_ADD("upd765:0", apc_floppies, "8", apc_floppy_formats)
trunk/src/mess/drivers/pc8401a.c
r23592r23593
565565   DEVCB_DRIVER_MEMBER(pc8401a_state, ppi_pc_w)
566566};
567567
568/* uPD1990A Interface */
569
570static UPD1990A_INTERFACE( rtc_intf )
571{
572   DEVCB_NULL,
573   DEVCB_NULL
574};
575
576568/* I8251 Interface */
577569
578570static const i8251_interface uart_intf =
r23592r23593
613605   MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", pc8401a_state, pc8401a_keyboard_tick, attotime::from_hz(64))
614606
615607   /* devices */
616   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf)
608   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL)
617609   MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
618610   MCFG_I8251_ADD(I8251_TAG, uart_intf)
619611   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
r23592r23593
647639   MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", pc8401a_state, pc8401a_keyboard_tick, attotime::from_hz(64))
648640
649641   /* devices */
650   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf)
642   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL)
651643   MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
652644   MCFG_I8251_ADD(I8251_TAG, uart_intf)
653645   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
trunk/src/mess/drivers/pc9801.c
r23592r23593
26632663
26642664static INPUT_PORTS_START( pc9801 )
26652665   PORT_START("DSW1")
2666   PORT_BIT(0x0001, IP_ACTIVE_HIGH,IPT_SPECIAL) PORT_READ_LINE_DEVICE_MEMBER("upd1990a", upd1990a_rtc_device, data_out_r)
2666   PORT_BIT(0x0001, IP_ACTIVE_HIGH,IPT_SPECIAL) PORT_READ_LINE_DEVICE_MEMBER("upd1990a", upd1990a_device, data_out_r)
26672667   PORT_DIPNAME( 0x0002, 0x0000, "DSW1" ) // error beep if OFF
26682668   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
26692669   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
r23592r23593
32833283      printf("DRQ %02x %d\n",m_fdc_ctrl,state);
32843284}
32853285
3286static UPD1990A_INTERFACE( pc9801_upd1990a_intf )
3287{
3288   DEVCB_NULL,
3289   DEVCB_NULL
3290};
3291
32923286static const i8251_interface pc9801_uart_interface =
32933287{
32943288   DEVCB_NULL,
r23592r23593
35643558   MCFG_FRAGMENT_ADD(pc9801_mouse)
35653559   MCFG_FRAGMENT_ADD(pc9801_cbus)
35663560   MCFG_FRAGMENT_ADD(pc9801_sasi)
3567   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, pc9801_upd1990a_intf)
3561   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL)
35683562   MCFG_I8251_ADD(UPD8251_TAG, pc9801_uart_interface)
35693563
35703564   MCFG_UPD765A_ADD("upd765_2hd", false, true)
r23592r23593
36313625   MCFG_I8255_ADD( "ppi8255_fdd", ppi_fdd_intf )
36323626   MCFG_FRAGMENT_ADD(pc9801_keyboard)
36333627   MCFG_FRAGMENT_ADD(pc9801_mouse)
3634   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, pc9801_upd1990a_intf)
3628   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
36353629   MCFG_I8251_ADD(UPD8251_TAG, pc9801_uart_interface)
36363630
36373631   MCFG_UPD765A_ADD("upd765_2hd", false, true)
r23592r23593
36973691   MCFG_I8255_ADD( "ppi8255_fdd", ppi_fdd_intf )
36983692   MCFG_FRAGMENT_ADD(pc9801_keyboard)
36993693   MCFG_FRAGMENT_ADD(pc9801_mouse)
3700   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, pc9801_upd1990a_intf)
3694   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
37013695   MCFG_I8251_ADD(UPD8251_TAG, pc9801_uart_interface)
37023696
37033697   MCFG_UPD765A_ADD("upd765_2hd", false, true)
trunk/src/mess/drivers/kyocera.c
r23592r23593
885885   PORT_CONFSETTING( 0x00, "Low Battery" )
886886INPUT_PORTS_END
887887
888/* uPD1990A Interface */
889
890static UPD1990A_INTERFACE( kc85_upd1990a_intf )
891{
892   DEVCB_NULL,
893   DEVCB_CPU_INPUT_LINE(I8085_TAG, I8085_RST75_LINE)
894};
895
896888/* RP5C01A Interface */
897889
898890static RP5C01_INTERFACE( tandy200_rtc_intf )
r23592r23593
13521344
13531345   /* devices */
13541346   MCFG_I8155_ADD(I8155_TAG, XTAL_4_9152MHz/2, kc85_8155_intf)
1355   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, kc85_upd1990a_intf)
1347   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
13561348   MCFG_IM6402_ADD(IM6402_TAG, uart_intf)
13571349   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
13581350   MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
r23592r23593
13901382
13911383   /* devices */
13921384   MCFG_I8155_ADD(I8155_TAG, XTAL_4_9152MHz/2, kc85_8155_intf)
1393   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, kc85_upd1990a_intf)
1385   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
13941386   MCFG_IM6402_ADD(IM6402_TAG, uart_intf)
13951387   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
13961388   MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
r23592r23593
14341426
14351427   /* devices */
14361428   MCFG_I8155_ADD(I8155_TAG, XTAL_4_9152MHz/2, kc85_8155_intf)
1437   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, kc85_upd1990a_intf)
1429   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
14381430   MCFG_IM6402_ADD(IM6402_TAG, uart_intf)
14391431   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
14401432   MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
trunk/src/mess/drivers/pc1500.c
r23592r23593
278278   DEVCB_CPU_INPUT_LINE("maincpu", LH5801_LINE_MI)     //IRQ callback
279279};
280280
281
282static UPD1990A_INTERFACE( pc1500_upd1990a_intf )
283{
284   DEVCB_NULL,
285   DEVCB_NULL
286};
287
288281static MACHINE_CONFIG_START( pc1500, pc1500_state )
289282   MCFG_CPU_ADD("maincpu", LH5801, 1300000)            //1.3 MHz
290283   MCFG_CPU_PROGRAM_MAP( pc1500_mem )
r23592r23593
302295
303296   MCFG_LH5810_ADD("lh5810", lh5810_pc1500_config)
304297
305   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, pc1500_upd1990a_intf)
298   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
306299MACHINE_CONFIG_END
307300
308301
trunk/src/mess/machine/a2thunderclock.c
r23592r23593
3838#define THUNDERCLOCK_ROM_REGION  "thunclk_rom"
3939#define THUNDERCLOCK_UPD1990_TAG "thunclk_upd"
4040
41static UPD1990A_INTERFACE( thunderclock_upd1990a_intf )
42{
43   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, a2bus_thunderclock_device, upd_dataout_w),
44   DEVCB_NULL  // TP out not used? for Thunderclock
45};
46
4741MACHINE_CONFIG_FRAGMENT( thunderclock )
48   MCFG_UPD1990A_ADD(THUNDERCLOCK_UPD1990_TAG, 1021800, thunderclock_upd1990a_intf)
42   MCFG_UPD1990A_ADD(THUNDERCLOCK_UPD1990_TAG, 1021800, DEVWRITELINE(DEVICE_SELF_OWNER, a2bus_thunderclock_device, upd_dataout_w), NULL)
4943MACHINE_CONFIG_END
5044
5145ROM_START( thunderclock )
trunk/src/mess/machine/s100_wunderbus.c
r23592r23593
163163   }
164164}
165165
166static UPD1990A_INTERFACE( rtc_intf )
167{
168   DEVCB_NULL,
169   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, s100_wunderbus_device, rtc_tp_w)
170};
171166
172
173167//-------------------------------------------------
174168//  MACHINE_CONFIG_FRAGMENT( s100_wunderbus )
175169//-------------------------------------------------
r23592r23593
183177   MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("serial_terminal", terminal)
184178   MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)
185179   MCFG_RS232_PORT_ADD(RS232_C_TAG, rs232c_intf, default_rs232_devices, NULL)
186   MCFG_UPD1990A_ADD(UPD1990C_TAG, XTAL_32_768kHz, rtc_intf)
180   MCFG_UPD1990A_ADD(UPD1990C_TAG, XTAL_32_768kHz, NULL, DEVWRITELINE(DEVICE_SELF_OWNER, s100_wunderbus_device, rtc_tp_w))
187181MACHINE_CONFIG_END
188182
189183

Previous 199869 Revisions Next


© 1997-2024 The MAME Team