Previous 199869 Revisions Next

r29501 Wednesday 9th April, 2014 at 17:26:30 UTC by Osso
generic_keyboard_device, generic_terminal_device and teleprinter_device: converted to devcb2 (nw)
[src/emu/bus/ecbbus]grip.c
[src/emu/bus/vip]vp620.c
[src/emu/machine]keyboard.c keyboard.h terminal.c terminal.h
[src/mess/drivers]a6809.c abc80.c amust.c basic52.c besta.c bigbord2.c binbug.c c900.c ccs2810.c ccs300.c cd2650.c chaos.c cm1800.c codata.c cxhumax.c czk80.c d6809.c digel804.c dim68k.c dm7000.c dms86.c dsb46.c dual68.c ec65.c evmbug.c ft68m.c h19.c harriet.c hpz80unk.c ie15.c imds.c imsai.c ipc.c ipds.c jade.c jupiter.c k8915.c lft.c llc.c m20.c mcb216.c mccpm.c mice.c microdec.c mits680b.c mod8.c modellot.c ms9540.c msbc1.c mx2178.c okean240.c onyx.c p8k.c pdp11.c pes.c phunsy.c pimps.c pm68k.c poly.c ptcsol.c qtsbc.c ravens.c rm380z.c rvoice.c sacstate.c sapi1.c sbc6510.c seattle.c sun1.c swtpc.c systec.c tavernie.c tk80bs.c tricep.c trs80m2.c ts802.c ts816.c tsispch.c v6809.c vax11.c vector4.c votrpss.c xerox820.c z9001.c zexall.c zorba.c zrt80.c zsbc3.c
[src/mess/machine]teleprinter.c teleprinter.h

trunk/src/emu/bus/ecbbus/grip.c
r29500r29501
521521   }
522522}
523523
524static ASCII_KEYBOARD_INTERFACE( kb_intf )
525{
526   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, grip_device, kb_w)
527};
528
529
530
531524//**************************************************************************
532525//  MACHINE CONFIGURATION
533526//**************************************************************************
r29500r29501
571564
572565   MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
573566
574   MCFG_ASCII_KEYBOARD_ADD("keyboard", kb_intf)
567   MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
568   MCFG_GENERIC_KEYBOARD_CB(WRITE8(grip_device, kb_w))
575569MACHINE_CONFIG_END
576570
577571
trunk/src/emu/bus/vip/vp620.c
r29500r29501
3434   m_keystb = ASSERT_LINE;
3535}
3636
37static ASCII_KEYBOARD_INTERFACE( kb_intf )
38{
39   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, vp620_device, kb_w)
40};
41
42
4337//-------------------------------------------------
4438//  MACHINE_CONFIG_FRAGMENT( vp620 )
4539//-------------------------------------------------
4640
4741static MACHINE_CONFIG_FRAGMENT( vp620 )
48   MCFG_ASCII_KEYBOARD_ADD("keyboard", kb_intf)
42   MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
43   MCFG_GENERIC_KEYBOARD_CB(WRITE8(vp620_device, kb_w))
4944MACHINE_CONFIG_END
5045
5146
trunk/src/emu/machine/keyboard.c
r29500r29501
88Example of usage in a driver.
99
1010In MACHINE_CONFIG
11    MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
11       
12   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
13   MCFG_GENERIC_KEYBOARD_CB(WRITE8(xxx_state, kbd_put))
1214
1315In the code:
1416
r29500r29501
1719    (code to capture the key as it is pressed)
1820}
1921
20static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
21{
22    DEVCB_DRIVER_MEMBER(xxx_state, kbd_put)
23};
24
2522***************************************************************************/
2623
2724#include "machine/keyboard.h"
r29500r29501
4138   m_io_kbd5(*this, "TERM_LINE5"),
4239   m_io_kbd6(*this, "TERM_LINE6"),
4340   m_io_kbd7(*this, "TERM_LINE7"),
44   m_io_kbdc(*this, "TERM_LINEC")
41   m_io_kbdc(*this, "TERM_LINEC"),
42   m_keyboard_cb(*this)
4543{
4644}
4745
r29500r29501
5553   m_io_kbd5(*this, "TERM_LINE5"),
5654   m_io_kbd6(*this, "TERM_LINE6"),
5755   m_io_kbd7(*this, "TERM_LINE7"),
58   m_io_kbdc(*this, "TERM_LINEC")
56   m_io_kbdc(*this, "TERM_LINEC"),
57   m_keyboard_cb(*this)
5958{
6059}
6160
r29500r29501
209208
210209void generic_keyboard_device::device_start()
211210{
212   m_keyboard_func.resolve(m_keyboard_cb, *this);
211   m_keyboard_cb.resolve_safe();
213212   m_timer = timer_alloc();
214213}
215214
216void generic_keyboard_device::device_config_complete()
217{
218   const keyboard_interface *intf = reinterpret_cast<const keyboard_interface *>(static_config());
219   if(intf != NULL)
220   {
221      *static_cast<keyboard_interface *>(this) = *intf;
222   }
223   else
224   {
225      memset(&m_keyboard_cb, 0, sizeof(m_keyboard_cb));
226   }
227}
228
229215void generic_keyboard_device::device_reset()
230216{
231217   m_last_code = 0;
trunk/src/emu/machine/keyboard.h
r29500r29501
44#include "emu.h"
55
66/***************************************************************************
7    TYPE DEFINITIONS
8***************************************************************************/
9
10struct keyboard_interface
11{
12   devcb_write8 m_keyboard_cb;
13};
14
15#define ASCII_KEYBOARD_INTERFACE(name) const keyboard_interface (name) =
16
17/***************************************************************************
187    DEVICE CONFIGURATION MACROS
198***************************************************************************/
209
21#define MCFG_ASCII_KEYBOARD_ADD(_tag, _intrf) \
22   MCFG_DEVICE_ADD(_tag, GENERIC_KEYBOARD, 0) \
23   MCFG_DEVICE_CONFIG(_intrf)
10#define MCFG_GENERIC_KEYBOARD_CB(_devcb) \
11   devcb = &generic_keyboard_device::set_keyboard_callback(*device, DEVCB2_##_devcb);
2412
2513/***************************************************************************
2614    FUNCTION PROTOTYPES
r29500r29501
2816
2917INPUT_PORTS_EXTERN( generic_keyboard );
3018
31class generic_keyboard_device :
32   public device_t,
33   public keyboard_interface
19class generic_keyboard_device :   public device_t
3420{
3521public:
3622   generic_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
3723   generic_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
24   
25   template<class _Object> static devcb2_base &set_keyboard_callback(device_t &device, _Object object) { return downcast<generic_keyboard_device &>(device).m_keyboard_cb.set_callback(object); }
3826
3927   virtual ioport_constructor device_input_ports() const;
4028   virtual machine_config_constructor device_mconfig_additions() const;
r29500r29501
5240   virtual void device_start();
5341   virtual void device_reset();
5442   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
55   virtual void device_config_complete();
56   virtual void send_key(UINT8 code) { m_keyboard_func(0, code); }
43   virtual void send_key(UINT8 code) { m_keyboard_cb((offs_t)0, code); }
5744   emu_timer *m_timer;
5845private:
5946   virtual UINT8 keyboard_handler(UINT8 last_code, UINT8 *scan_line);
r29500r29501
6148   UINT8 m_last_code;
6249   UINT8 m_scan_line;
6350
64   devcb_resolved_write8 m_keyboard_func;
51   devcb2_write8 m_keyboard_cb;
6552};
6653
6754extern const device_type GENERIC_KEYBOARD;
trunk/src/emu/machine/terminal.c
r29500r29501
141141generic_terminal_device::generic_terminal_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
142142   : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
143143      m_palette(*this, "palette"),
144      m_io_term_conf(*this, "TERM_CONF")
144      m_io_term_conf(*this, "TERM_CONF"),
145      m_keyboard_cb(*this)
145146{
146147}
147148
148149generic_terminal_device::generic_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
149150   : device_t(mconfig, GENERIC_TERMINAL, "Generic Terminal", tag, owner, clock, "generic_terminal", __FILE__),
150151      m_palette(*this, "palette"),
151      m_io_term_conf(*this, "TERM_CONF")
152      m_io_term_conf(*this, "TERM_CONF"),
153      m_keyboard_cb(*this)
152154{
153155}
154156
r29500r29501
304306      send_key(data);
305307}
306308
307static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
308{
309   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, generic_terminal_device, kbd_put)
310};
311
312309/***************************************************************************
313310    VIDEO HARDWARE
314311***************************************************************************/
r29500r29501
323320
324321   MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
325322
326   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
323   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
324   MCFG_GENERIC_KEYBOARD_CB(WRITE8(generic_terminal_device, kbd_put))
327325MACHINE_CONFIG_END
328326
329327machine_config_constructor generic_terminal_device::device_mconfig_additions() const
r29500r29501
333331
334332void generic_terminal_device::device_start()
335333{
336   m_keyboard_func.resolve(m_keyboard_cb, *this);
334   m_keyboard_cb.resolve_safe();
337335}
338336
339void generic_terminal_device::device_config_complete()
340{
341   const terminal_interface *intf = reinterpret_cast<const terminal_interface *>(static_config());
342   if(intf != NULL)
343   {
344      *static_cast<terminal_interface *>(this) = *intf;
345   }
346   else
347   {
348      memset(&m_keyboard_cb, 0, sizeof(m_keyboard_cb));
349   }
350}
351
352337void generic_terminal_device::device_reset()
353338{
354339   clear();
trunk/src/emu/machine/terminal.h
r29500r29501
66#define TERMINAL_SCREEN_TAG "terminal_screen"
77
88/***************************************************************************
9    TYPE DEFINITIONS
10***************************************************************************/
11
12struct terminal_interface
13{
14   devcb_write8 m_keyboard_cb;
15};
16
17#define GENERIC_TERMINAL_INTERFACE(name) const terminal_interface (name) =
18
19/***************************************************************************
209    DEVICE CONFIGURATION MACROS
2110***************************************************************************/
2211
23#define MCFG_GENERIC_TERMINAL_ADD(_tag, _intrf) \
24   MCFG_DEVICE_ADD(_tag, GENERIC_TERMINAL, 0) \
25   MCFG_DEVICE_CONFIG(_intrf)
12#define MCFG_GENERIC_TERMINAL_KEYBOARD_CB(_devcb) \
13   devcb = &generic_terminal_device::set_keyboard_callback(*device, DEVCB2_##_devcb);
2614
27#define MCFG_GENERIC_TERMINAL_REMOVE(_tag)      \
28   MCFG_DEVICE_REMOVE(_tag)
29
3015/***************************************************************************
3116    FUNCTION PROTOTYPES
3217***************************************************************************/
r29500r29501
3621
3722INPUT_PORTS_EXTERN( generic_terminal );
3823
39class generic_terminal_device :
40   public device_t,
41   public terminal_interface
24class generic_terminal_device :   public device_t
4225{
4326public:
4427   generic_terminal_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
4528   generic_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
29   
30   template<class _Object> static devcb2_base &set_keyboard_callback(device_t &device, _Object object) { return downcast<generic_terminal_device &>(device).m_keyboard_cb.set_callback(object); }
31   
4632   DECLARE_WRITE8_MEMBER(write) { term_write(data); }
4733   DECLARE_WRITE8_MEMBER(kbd_put);
4834   UINT32 update(screen_device &device, bitmap_rgb32 &bitmap, const rectangle &cliprect);
r29500r29501
5642   virtual void term_write(UINT8 data);
5743   virtual void device_start();
5844   virtual void device_reset();
59   virtual void device_config_complete();
60   virtual void send_key(UINT8 code) { m_keyboard_func(0, code); }
45   virtual void send_key(UINT8 code) { m_keyboard_cb((offs_t)0, code); }
6146   UINT8 m_buffer[TERMINAL_WIDTH*50]; // make big enough for teleprinter
6247   UINT8 m_x_pos;
6348private:
r29500r29501
6853   UINT8 m_framecnt;
6954   UINT8 m_y_pos;
7055
71   devcb_resolved_write8 m_keyboard_func;
56   devcb2_write8 m_keyboard_cb;
7257};
7358
7459extern const device_type GENERIC_TERMINAL;
trunk/src/mess/drivers/dms86.c
r29500r29501
105105   m_term_data = data;
106106}
107107
108static GENERIC_TERMINAL_INTERFACE( terminal_intf )
109{
110   DEVCB_DRIVER_MEMBER(dms86_state, kbd_put)
111};
112
113
114108static MACHINE_CONFIG_START( dms86, dms86_state )
115109   /* basic machine hardware */
116110   MCFG_CPU_ADD("maincpu",I8086, XTAL_9_8304MHz)
r29500r29501
118112   MCFG_CPU_IO_MAP(dms86_io)
119113
120114
121   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
115   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
116   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dms86_state, kbd_put))
122117MACHINE_CONFIG_END
123118
124119/* ROM definition */
trunk/src/mess/drivers/c900.c
r29500r29501
8484   m_term_data = data;
8585}
8686
87static GENERIC_TERMINAL_INTERFACE( terminal_intf )
88{
89   DEVCB_DRIVER_MEMBER(c900_state, kbd_put)
90};
91
9287/* F4 Character Displayer */
9388static const gfx_layout c900_charlayout =
9489{
r29500r29501
114109   MCFG_CPU_DATA_MAP(c900_data)
115110   MCFG_CPU_IO_MAP(c900_io)
116111
117   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
112   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
113   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(c900_state, kbd_put))
118114   MCFG_GFXDECODE_ADD("gfxdecode", "palette", c900)
119115   MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
120116MACHINE_CONFIG_END
trunk/src/mess/drivers/zorba.c
r29500r29501
336336   m_term_data = data;
337337}
338338
339static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
340{
341   DEVCB_DRIVER_MEMBER(zorba_state, kbd_put)
342};
343
344339static MACHINE_CONFIG_START( zorba, zorba_state )
345340   // basic machine hardware
346341   MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 6)
r29500r29501
405400   MCFG_FLOPPY_DRIVE_ADD("fdc:1", zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
406401
407402   /* Keyboard */
408   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
403   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
404   MCFG_GENERIC_KEYBOARD_CB(WRITE8(zorba_state, kbd_put))
409405MACHINE_CONFIG_END
410406
411407ROM_START( zorba )
trunk/src/mess/drivers/sun1.c
r29500r29501
127127   m_term_data = data;
128128}
129129
130static GENERIC_TERMINAL_INTERFACE( terminal_intf )
131{
132   DEVCB_DRIVER_MEMBER(sun1_state, kbd_put)
133};
134
135
136130static MACHINE_CONFIG_START( sun1, sun1_state )
137131   /* basic machine hardware */
138132   MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz)
139133   MCFG_CPU_PROGRAM_MAP(sun1_mem)
140134
141135   /* video hardware */
142   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
136   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
137   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(sun1_state, kbd_put))
143138MACHINE_CONFIG_END
144139
145140/* ROM definition */
trunk/src/mess/drivers/pimps.c
r29500r29501
8989   m_term_data = data;
9090}
9191
92static GENERIC_TERMINAL_INTERFACE( terminal_intf )
93{
94   DEVCB_DRIVER_MEMBER(pimps_state, kbd_put)
95};
96
9792static MACHINE_CONFIG_START( pimps, pimps_state )
9893   /* basic machine hardware */
9994   MCFG_CPU_ADD("maincpu",I8085A, XTAL_2MHz)
r29500r29501
10196   MCFG_CPU_IO_MAP(pimps_io)
10297
10398   /* video hardware */
104   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
99   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
100   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(pimps_state, kbd_put))
105101MACHINE_CONFIG_END
106102
107103/* ROM definition */
trunk/src/mess/drivers/imsai.c
r29500r29501
101101   m_uart->write_rxc(state);
102102}
103103
104static GENERIC_TERMINAL_INTERFACE( terminal_intf )
105{
106   DEVCB_DRIVER_MEMBER(imsai_state, kbd_put)
107};
108
109104WRITE8_MEMBER( imsai_state::control_w )
110105{
111106}
r29500r29501
122117   MCFG_CPU_IO_MAP(imsai_io)
123118
124119   /* video hardware */
125   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
120   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
121   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(imsai_state, kbd_put))
126122
127123   /* Devices */
128124   MCFG_DEVICE_ADD("uart", I8251, 0)
trunk/src/mess/drivers/votrpss.c
r29500r29501
261261   m_term_data = data;
262262}
263263
264static GENERIC_TERMINAL_INTERFACE( terminal_intf )
265{
266   DEVCB_DRIVER_MEMBER(votrpss_state, kbd_put)
267};
268
269264DECLARE_WRITE_LINE_MEMBER( votrpss_state::write_uart_clock )
270265{
271266   m_uart->write_txc(state);
r29500r29501
294289   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
295290
296291   /* Devices */
297   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
292   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
293   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(votrpss_state, kbd_put))
298294
299295   MCFG_DEVICE_ADD("uart", I8251, 0)
300296   MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
trunk/src/mess/drivers/onyx.c
r29500r29501
6868   m_term_data = data;
6969}
7070
71static GENERIC_TERMINAL_INTERFACE( terminal_intf )
72{
73   DEVCB_DRIVER_MEMBER(onyx_state, kbd_put)
74};
75
7671#if 0
7772WRITE_LINE_MEMBER( onyx_state::p8k_daisy_interrupt )
7873{
r29500r29501
420415   //MCFG_Z80PIO_ADD("z80pio_2", XTAL_4MHz, p8k_16_pio_2_intf )
421416
422417   /* video hardware */
423   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
418   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
419   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(onyx_state, kbd_put))
424420MACHINE_CONFIG_END
425421
426422/* ROM definition */
trunk/src/mess/drivers/ipds.c
r29500r29501
135135   m_term_data = data;
136136}
137137
138static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
139{
140   DEVCB_DRIVER_MEMBER(ipds_state, kbd_put)
141};
142
143
144138static MACHINE_CONFIG_START( ipds, ipds_state )
145139   /* basic machine hardware */
146140   MCFG_CPU_ADD("maincpu",I8085A, XTAL_19_6608MHz / 4)
r29500r29501
158152   MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
159153
160154   MCFG_I8275_ADD  ( "i8275", ipds_i8275_interface)
161   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
155   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
156   MCFG_GENERIC_KEYBOARD_CB(WRITE8(ipds_state, kbd_put))
162157MACHINE_CONFIG_END
163158
164159/* ROM definition */
trunk/src/mess/drivers/m20.c
r29500r29501
892892   }
893893}
894894
895static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
896{
897   DEVCB_DRIVER_MEMBER(m20_state, kbd_put)
898};
899
900895static SLOT_INTERFACE_START( m20_floppies )
901896   SLOT_INTERFACE( "5dd", FLOPPY_525_DD )
902897SLOT_INTERFACE_END
r29500r29501
957952
958953   MCFG_PIC8259_ADD("i8259", WRITELINE(m20_state, pic_irq_line_w), VCC, NULL)
959954
960   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
955   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
956   MCFG_GENERIC_KEYBOARD_CB(WRITE8(m20_state, kbd_put))
961957
962958   MCFG_SOFTWARE_LIST_ADD("flop_list","m20")
963959MACHINE_CONFIG_END
trunk/src/mess/drivers/ms9540.c
r29500r29501
7777   m_term_data = data;
7878}
7979
80static GENERIC_TERMINAL_INTERFACE( terminal_intf )
81{
82   DEVCB_DRIVER_MEMBER(ms9540_state, kbd_put)
83};
84
8580static MACHINE_CONFIG_START( ms9540, ms9540_state )
8681   /* basic machine hardware */
8782   MCFG_CPU_ADD("maincpu", M68000, 8000000) // unknown clock
8883   MCFG_CPU_PROGRAM_MAP(ms9540_mem)
8984
9085   /* video hardware */
91   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
86   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
87   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ms9540_state, kbd_put))
88   
9289MACHINE_CONFIG_END
9390
9491/* ROM definition */
trunk/src/mess/drivers/vax11.c
r29500r29501
135135   m_term_status = 0xffff;
136136}
137137
138static GENERIC_TERMINAL_INTERFACE( terminal_intf )
139{
140   DEVCB_DRIVER_MEMBER(vax11_state, kbd_put)
141};
142
143138static MACHINE_CONFIG_START( vax11, vax11_state )
144139   /* basic machine hardware */
145140   MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz) // Need proper CPU here
r29500r29501
147142   MCFG_CPU_PROGRAM_MAP(vax11_mem)
148143
149144   /* video hardware */
150   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
145   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
146   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(vax11_state, kbd_put))
151147
152148   MCFG_RX01_ADD("rx01")
153149MACHINE_CONFIG_END
trunk/src/mess/drivers/sacstate.c
r29500r29501
120120   m_term_data = data;
121121}
122122
123static GENERIC_TERMINAL_INTERFACE( terminal_intf )
124{
125   DEVCB_DRIVER_MEMBER(sacstate_state, kbd_put)
126};
127
128123void sacstate_state::machine_reset()
129124{
130125   m_term_data = 0;
r29500r29501
138133   MCFG_CPU_IO_MAP(sacstate_io)
139134
140135   /* video hardware */
141   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
136   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
137   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(sacstate_state, kbd_put))
142138MACHINE_CONFIG_END
143139
144140/* ROM definition */
trunk/src/mess/drivers/trs80m2.c
r29500r29501
511511   m_ctc->trg3(m_kbirq);
512512}
513513
514static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
515{
516   DEVCB_DRIVER_MEMBER(trs80m2_state, kbd_w)
517};
518
519
520514//-------------------------------------------------
521515//  Z80DMA_INTERFACE( dma_intf )
522516//-------------------------------------------------
r29500r29501
842836
843837   MCFG_DEVICE_ADD(TRS80M2_KEYBOARD_TAG, TRS80M2_KEYBOARD, 0)
844838   MCFG_TRS80M2_KEYBOARD_CLOCK_CALLBACK(WRITELINE(trs80m2_state, kb_clock_w))
845   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
839   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
840   MCFG_GENERIC_KEYBOARD_CB(WRITE8(trs80m2_state, kbd_w))
846841
847842   // internal RAM
848843   MCFG_RAM_ADD(RAM_TAG)
r29500r29501
906901
907902   MCFG_DEVICE_ADD(TRS80M2_KEYBOARD_TAG, TRS80M2_KEYBOARD, 0)
908903   MCFG_TRS80M2_KEYBOARD_CLOCK_CALLBACK(WRITELINE(trs80m2_state, kb_clock_w))
909   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
904   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
905   MCFG_GENERIC_KEYBOARD_CB(WRITE8(trs80m2_state, kbd_w))
910906
911907   // internal RAM
912908   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/modellot.c
r29500r29501
8080   m_term_data = data;
8181}
8282
83static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
84{
85   DEVCB_DRIVER_MEMBER(modellot_state, kbd_put)
86};
87
8883void modellot_state::machine_reset()
8984{
9085   m_term_data = 1;
r29500r29501
172167   MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
173168
174169   /* Devices */
175   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
170   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
171   MCFG_GENERIC_KEYBOARD_CB(WRITE8(modellot_state, kbd_put))
176172MACHINE_CONFIG_END
177173
178174/* ROM definition */
trunk/src/mess/drivers/digel804.c
r29500r29501
567567   //m_acia->receive_character(data);
568568}
569569
570static GENERIC_TERMINAL_INTERFACE( digel804_terminal_intf )
571{
572   DEVCB_DRIVER_MEMBER(digel804_state,digel804_serial_put)
573};
574
575570WRITE_LINE_MEMBER( digel804_state::da_w )
576571{
577572   m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
r29500r29501
588583   MCFG_ROC10937_ADD("vfd",0) // RIGHT_TO_LEFT
589584
590585   /* video hardware */
591   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, digel804_terminal_intf)
586   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
587   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(digel804_state, digel804_serial_put))
592588
593589   MCFG_DEFAULT_LAYOUT(layout_digel804)
594590
trunk/src/mess/drivers/poly.c
r29500r29501
154154   m_acia->write_rxc(state);
155155}
156156
157static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
158{
159   DEVCB_DRIVER_MEMBER(poly_state, kbd_put)
160};
161
162157static MACHINE_CONFIG_START( poly, poly_state )
163158   /* basic machine hardware */
164159   MCFG_CPU_ADD("maincpu", M6809E, XTAL_12MHz / 3) // 12.0576MHz
r29500r29501
203198
204199   MCFG_MC6854_ADD("adlc", adlc_intf)
205200
206   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
201   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
202   MCFG_GENERIC_KEYBOARD_CB(WRITE8(poly_state, kbd_put))
207203MACHINE_CONFIG_END
208204
209205/* ROM definition */
trunk/src/mess/drivers/amust.c
r29500r29501
202202   m_term_data = data;
203203}
204204
205static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
206{
207   DEVCB_DRIVER_MEMBER(amust_state, kbd_put)
208};
209
210
211205/* F4 Character Displayer */
212206static const gfx_layout amust_charlayout =
213207{
r29500r29501
311305
312306   /* Devices */
313307   MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_14_31818MHz / 8, amust_crtc)
314   MCFG_ASCII_KEYBOARD_ADD("keybd", keyboard_intf)
308   MCFG_DEVICE_ADD("keybd", GENERIC_KEYBOARD, 0)
309   MCFG_GENERIC_KEYBOARD_CB(WRITE8(amust_state, kbd_put))
315310   MCFG_UPD765A_ADD("fdc", false, true)
316311   MCFG_FLOPPY_DRIVE_ADD("fdc:0", amust_floppies, "525dd", floppy_image_device::default_floppy_formats)
317312   MCFG_FLOPPY_DRIVE_ADD("fdc:1", amust_floppies, "525dd", floppy_image_device::default_floppy_formats)
trunk/src/mess/drivers/ravens.c
r29500r29501
260260   m_term_data = data;
261261}
262262
263static GENERIC_TERMINAL_INTERFACE( terminal_intf )
264{
265   DEVCB_DRIVER_MEMBER(ravens_state, kbd_put)
266};
267
268263QUICKLOAD_LOAD_MEMBER( ravens_state, ravens )
269264{
270265   address_space &space = m_maincpu->space(AS_PROGRAM);
r29500r29501
359354   MCFG_MACHINE_RESET_OVERRIDE(ravens_state, ravens2)
360355
361356   /* video hardware */
362   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
357   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
358   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ravens_state, kbd_put))
363359
364360   /* quickload */
365361   MCFG_QUICKLOAD_ADD("quickload", ravens_state, ravens, "pgm", 1)
trunk/src/mess/drivers/cd2650.c
r29500r29501
194194      m_term_data = data;
195195}
196196
197static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
198{
199   DEVCB_DRIVER_MEMBER(cd2650_state, kbd_put)
200};
201
202197QUICKLOAD_LOAD_MEMBER( cd2650_state, cd2650 )
203198{
204199   int i, result = IMAGE_INIT_FAIL;
r29500r29501
296291   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
297292
298293   /* Devices */
299   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
294   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
295   MCFG_GENERIC_KEYBOARD_CB(WRITE8(cd2650_state, kbd_put))
300296   MCFG_CASSETTE_ADD( "cassette", default_cassette_interface )
301297MACHINE_CONFIG_END
302298
trunk/src/mess/drivers/lft.c
r29500r29501
6868   m_term_data = data;
6969}
7070
71static GENERIC_TERMINAL_INTERFACE( terminal_intf )
72{
73   DEVCB_DRIVER_MEMBER(lft_state, kbd_put)
74};
75
7671void lft_state::machine_reset()
7772{
7873   m_term_data = 0;
r29500r29501
8580   MCFG_CPU_IO_MAP(lft_io)
8681
8782   /* video hardware */
88   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
83   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
84   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(lft_state, kbd_put))
8985MACHINE_CONFIG_END
9086
9187/* ROM definition */
trunk/src/mess/drivers/msbc1.c
r29500r29501
7575   m_maincpu->reset();
7676}
7777
78static GENERIC_TERMINAL_INTERFACE( terminal_intf )
79{
80   DEVCB_NULL
81};
82
8378static MACHINE_CONFIG_START( msbc1, msbc1_state )
8479   /* basic machine hardware */
8580   MCFG_CPU_ADD(MC68000R12_TAG, M68000, XTAL_12_5MHz)
8681   MCFG_CPU_PROGRAM_MAP(msbc1_mem)
8782
8883   // devices
89   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
84   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
9085MACHINE_CONFIG_END
9186
9287/* ROM definition */
trunk/src/mess/drivers/mx2178.c
r29500r29501
9696   m_maincpu->set_input_line(0, HOLD_LINE);
9797}
9898
99static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
100{
101   DEVCB_DRIVER_MEMBER(mx2178_state, kbd_put)
102};
103
10499static MC6845_UPDATE_ROW( update_row )
105100{
106101   mx2178_state *state = device->machine().driver_data<mx2178_state>();
r29500r29501
196191
197192   /// TODO: hook up acia to keyboard and memory map
198193
199   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
194   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
195   MCFG_GENERIC_KEYBOARD_CB(WRITE8(mx2178_state, kbd_put))
200196
201197   MCFG_DEVICE_ADD("acia_clock", CLOCK, 614400)
202198   MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(mx2178_state, write_acia_clock))
trunk/src/mess/drivers/tavernie.c
r29500r29501
316316   m_pia_ivg->cb1_w(1);
317317}
318318
319static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
320{
321   DEVCB_DRIVER_MEMBER(tavernie_state, kbd_put)
322};
323
324319WRITE_LINE_MEMBER( tavernie_state::write_acia_clock )
325320{
326321   m_acia->write_txc(state);
r29500r29501
384379   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
385380
386381   /* Devices */
387   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
382   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
383   MCFG_GENERIC_KEYBOARD_CB(WRITE8(tavernie_state, kbd_put))
388384   MCFG_MC6845_ADD("crtc", MC6845, "screen", 1008000, mc6845_intf) // unknown clock
389385
390386   MCFG_DEVICE_ADD("pia_ivg", PIA6821, 0)
trunk/src/mess/drivers/mcb216.c
r29500r29501
104104   m_term_data = data;
105105}
106106
107static GENERIC_TERMINAL_INTERFACE( terminal_intf )
108{
109   DEVCB_DRIVER_MEMBER(mcb216_state, kbd_put)
110};
111
112107MACHINE_RESET_MEMBER( mcb216_state, mcb216 )
113108{
114109   m_term_data = 0;
r29500r29501
128123   MCFG_MACHINE_RESET_OVERRIDE(mcb216_state, mcb216)
129124
130125   /* video hardware */
131   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
126   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
127   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mcb216_state, kbd_put))
132128MACHINE_CONFIG_END
133129
134130static MACHINE_CONFIG_START( cb308, mcb216_state )
r29500r29501
139135   MCFG_MACHINE_RESET_OVERRIDE(mcb216_state, cb308)
140136
141137   /* video hardware */
142   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
138   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
139   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mcb216_state, kbd_put))
143140MACHINE_CONFIG_END
144141
145142/* ROM definition */
trunk/src/mess/drivers/ft68m.c
r29500r29501
9393   m_term_data = data;
9494}
9595
96static GENERIC_TERMINAL_INTERFACE( terminal_intf )
97{
98   DEVCB_DRIVER_MEMBER(ft68m_state, kbd_put)
99};
100
10196static MACHINE_CONFIG_START( ft68m, ft68m_state )
10297
10398   /* basic machine hardware */
r29500r29501
105100   MCFG_CPU_PROGRAM_MAP(ft68m_mem)
106101
107102   /* video hardware */
108   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
103   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
104   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ft68m_state, kbd_put))
109105MACHINE_CONFIG_END
110106
111107/* ROM definition */
trunk/src/mess/drivers/okean240.c
r29500r29501
411411   m_term_data = data;
412412}
413413
414static GENERIC_TERMINAL_INTERFACE( terminal_intf )
415{
416   DEVCB_DRIVER_MEMBER(okean240_state, kbd_put)
417};
418
419414DRIVER_INIT_MEMBER(okean240_state,okean240)
420415{
421416   UINT8 *RAM = memregion("maincpu")->base();
r29500r29501
495490
496491   MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
497492
498   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
493   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
494   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(okean240_state, kbd_put))
499495MACHINE_CONFIG_END
500496
501497static MACHINE_CONFIG_DERIVED( okean240a, okean240t )
r29500r29501
503499   MCFG_CPU_IO_MAP(okean240a_io)
504500   MCFG_GFXDECODE_ADD("gfxdecode", "palette", okean240a)
505501   MCFG_DEVICE_REMOVE(TERMINAL_TAG)
506   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, terminal_intf)
502   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
503   MCFG_GENERIC_KEYBOARD_CB(WRITE8(okean240_state, kbd_put))
507504MACHINE_CONFIG_END
508505
509506static MACHINE_CONFIG_DERIVED( okean240, okean240t )
r29500r29501
511508   MCFG_CPU_IO_MAP(okean240_io)
512509   MCFG_GFXDECODE_ADD("gfxdecode", "palette", okean240)
513510   MCFG_DEVICE_REMOVE(TERMINAL_TAG)
514   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, terminal_intf)
511   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
512   MCFG_GENERIC_KEYBOARD_CB(WRITE8(okean240_state, kbd_put))
515513MACHINE_CONFIG_END
516514
517515/* ROM definition */
trunk/src/mess/drivers/abc80.c
r29500r29501
446446   timer_set(attotime::from_msec(50), TIMER_ID_FAKE_KEYBOARD_CLEAR);
447447}
448448
449static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
450{
451   DEVCB_DRIVER_MEMBER(abc80_state, kbd_w)
452};
453
454
455
456449//**************************************************************************
457450//  MACHINE INITIALIZATION
458451//**************************************************************************
r29500r29501
567560   MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "slow")
568561   MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("slow", abc830_slow)
569562   MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
570   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
563   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
564   MCFG_GENERIC_KEYBOARD_CB(WRITE8(abc80_state, kbd_w))
571565
572566   // internal ram
573567   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/tsispch.c
r29500r29501
169169   i8251_device *uart = machine().device<i8251_device>("i8251a_u15");
170170   uart->receive_character(data);
171171}
172static GENERIC_TERMINAL_INTERFACE( tsispch_terminal_intf )
173{
174   DEVCB_DRIVER_MEMBER(tsispch_state, i8251_rxd)
175};
176172
177173/*****************************************************************************
178174 PIC 8259 stuff
r29500r29501
433429   //MCFG_SOUND_ADD("dac", DAC, 0) /* TODO: correctly figure out how the DAC works; apparently it is connected to the serial output of the upd7720, which will be "fun" to connect up */
434430   //MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
435431
436   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG,tsispch_terminal_intf)
432   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
433   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(tsispch_state, i8251_rxd))
437434MACHINE_CONFIG_END
438435
439436/******************************************************************************
trunk/src/mess/drivers/jupiter.c
r29500r29501
205205   { FLOPPY_0, FLOPPY_1, NULL, NULL }
206206};
207207
208
209//-------------------------------------------------
210//  GENERIC_TERMINAL_INTERFACE( terminal_intf )
211//-------------------------------------------------
212
213static GENERIC_TERMINAL_INTERFACE( jupiter2_terminal_intf )
214{
215   DEVCB_NULL
216};
217
218static ASCII_KEYBOARD_INTERFACE( jupiter3_keyboard_intf )
219{
220   DEVCB_DRIVER_MEMBER(jupiter3_state, kbd_put)
221};
222
223
224
225208//**************************************************************************
226209//  MACHINE INITIALIZATION
227210//**************************************************************************
r29500r29501
264247
265248   // devices
266249   MCFG_FD1771_ADD(INS1771N1_TAG, fdc_intf)
267   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, jupiter2_terminal_intf)
250   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
268251
269252   // internal ram
270253   MCFG_RAM_ADD(RAM_TAG)
r29500r29501
296279
297280   // devices
298281   MCFG_FD1771_ADD(INS1771N1_TAG, fdc_intf)
299   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, jupiter3_keyboard_intf)
282   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
283   MCFG_GENERIC_KEYBOARD_CB(WRITE8(jupiter3_state, kbd_put))
300284
301285   // internal ram
302286   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/microdec.c
r29500r29501
8989   m_term_data = data;
9090}
9191
92static GENERIC_TERMINAL_INTERFACE( terminal_intf )
93{
94   DEVCB_DRIVER_MEMBER(microdec_state, kbd_put)
95};
96
9792static SLOT_INTERFACE_START( microdec_floppies )
9893   SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
9994SLOT_INTERFACE_END
r29500r29501
105100   MCFG_CPU_IO_MAP(microdec_io)
106101
107102   /* video hardware */
108   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
103   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
104   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(microdec_state, kbd_put))
109105
110106   MCFG_UPD765A_ADD("upd765", true, true)
111107   MCFG_FLOPPY_DRIVE_ADD("upd765:0", microdec_floppies, "525hd", floppy_image_device::default_floppy_formats)
trunk/src/mess/drivers/d6809.c
r29500r29501
139139   m_term_data = data;
140140}
141141
142static GENERIC_TERMINAL_INTERFACE( terminal_intf )
143{
144   DEVCB_DRIVER_MEMBER(d6809_state, kbd_put)
145};
146
147142void d6809_state::machine_reset()
148143{
149144}
r29500r29501
156151
157152
158153   /* video hardware */
159   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
154   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
155   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(d6809_state, kbd_put))
160156MACHINE_CONFIG_END
161157
162158/* ROM definition */
trunk/src/mess/drivers/qtsbc.c
r29500r29501
7878   m_term_data = data;
7979}
8080
81static GENERIC_TERMINAL_INTERFACE( terminal_intf )
82{
83   DEVCB_DRIVER_MEMBER(qtsbc_state, kbd_put)
84};
85
8681static MACHINE_CONFIG_START( qtsbc, qtsbc_state )
8782   /* basic machine hardware */
8883   MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) // Mostek MK3880
r29500r29501
9085   MCFG_CPU_IO_MAP(qtsbc_io)
9186
9287   /* video hardware */
93   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
88   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
89   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(qtsbc_state, kbd_put))
9490MACHINE_CONFIG_END
9591
9692/* ROM definition */
trunk/src/mess/drivers/hpz80unk.c
r29500r29501
119119   m_term_data = data;
120120}
121121
122static GENERIC_TERMINAL_INTERFACE( terminal_intf )
123{
124   DEVCB_DRIVER_MEMBER(hpz80unk_state, kbd_put)
125};
126
127122static MACHINE_CONFIG_START( hpz80unk, hpz80unk_state )
128123   /* basic machine hardware */
129124   MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz)
r29500r29501
131126   MCFG_CPU_IO_MAP(hpz80unk_io)
132127
133128   /* video hardware */
134   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
129   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
130   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(hpz80unk_state, kbd_put))
135131MACHINE_CONFIG_END
136132
137133/* ROM definition */
trunk/src/mess/drivers/ccs300.c
r29500r29501
9393   m_term_data = data;
9494}
9595
96static GENERIC_TERMINAL_INTERFACE( terminal_intf )
97{
98   DEVCB_DRIVER_MEMBER(ccs300_state, kbd_put)
99};
100
10196//*************************************
10297//
10398//  Machine
r29500r29501
131126   MCFG_MACHINE_RESET_OVERRIDE(ccs300_state, ccs300)
132127
133128   /* video hardware */
134   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
129   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
130   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ccs300_state, kbd_put))
135131MACHINE_CONFIG_END
136132
137133/* ROM definition */
trunk/src/mess/drivers/dsb46.c
r29500r29501
9999   m_term_data = data;
100100}
101101
102static GENERIC_TERMINAL_INTERFACE( terminal_intf )
103{
104   DEVCB_DRIVER_MEMBER(dsb46_state, kbd_put)
105};
106
107102static MACHINE_CONFIG_START( dsb46, dsb46_state )
108103   // basic machine hardware
109104   MCFG_CPU_ADD("maincpu", Z80, 4000000)
r29500r29501
112107   MCFG_MACHINE_RESET_OVERRIDE(dsb46_state, dsb46)
113108
114109   /* video hardware */
115   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
110   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
111   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dsb46_state, kbd_put))
116112MACHINE_CONFIG_END
117113
118114ROM_START( dsb46 )
trunk/src/mess/drivers/evmbug.c
r29500r29501
8585   m_term_data = data;
8686}
8787
88static GENERIC_TERMINAL_INTERFACE( terminal_intf )
89{
90   DEVCB_DRIVER_MEMBER(evmbug_state, kbd_put)
91};
92
93
9488void evmbug_state::machine_reset()
9589{
9690   m_term_data = 0;
r29500r29501
10599   MCFG_TMS99xx_ADD("maincpu", TMS9995, 12000000, evmbug_mem, evmbug_io )
106100
107101   /* video hardware */
108   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
102   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
103   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(evmbug_state, kbd_put))
109104MACHINE_CONFIG_END
110105
111106/* ROM definition */
trunk/src/mess/drivers/dual68.c
r29500r29501
7777   //m_term_data = data;
7878}
7979
80static GENERIC_TERMINAL_INTERFACE( terminal_intf )
81{
82   DEVCB_DRIVER_MEMBER(dual68_state, kbd_put)
83};
84
8580static MACHINE_CONFIG_START( dual68, dual68_state )
8681   /* basic machine hardware */
8782   MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz / 2)
r29500r29501
9388
9489
9590   /* video hardware */
96   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG,terminal_intf)
91   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
92   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dual68_state, kbd_put))
9793MACHINE_CONFIG_END
9894
9995/* ROM definition */
trunk/src/mess/drivers/z9001.c
r29500r29501
226226   m_maincpu->space(AS_PROGRAM).write_byte(0x0025, data);
227227}
228228
229static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
230{
231   DEVCB_DRIVER_MEMBER(z9001_state, kbd_put)
232};
233
234229static GFXDECODE_START( z9001 )
235230   GFXDECODE_ENTRY( "chargen", 0x0000, z9001_charlayout, 0, 1 )
236231GFXDECODE_END
r29500r29501
263258   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
264259
265260   /* Devices */
266   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
261   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
262   MCFG_GENERIC_KEYBOARD_CB(WRITE8(z9001_state, kbd_put))
267263   MCFG_TIMER_DRIVER_ADD_PERIODIC("z9001_timer", z9001_state, timer_callback, attotime::from_msec(10))
268264   MCFG_Z80PIO_ADD( "z80pio1", XTAL_9_8304MHz / 4, pio1_intf )
269265   MCFG_Z80PIO_ADD( "z80pio2", XTAL_9_8304MHz / 4, pio2_intf )
trunk/src/mess/drivers/czk80.c
r29500r29501
230230   m_term_data = data;
231231}
232232
233static GENERIC_TERMINAL_INTERFACE( terminal_intf )
234{
235   DEVCB_DRIVER_MEMBER(czk80_state, kbd_put)
236};
237
238233static MACHINE_CONFIG_START( czk80, czk80_state )
239234   /* basic machine hardware */
240235   MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4)
r29500r29501
243238   MCFG_CPU_CONFIG(daisy_chain)
244239   MCFG_MACHINE_RESET_OVERRIDE(czk80_state, czk80)
245240
246   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
241   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
242   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(czk80_state, kbd_put))
247243   MCFG_UPD765A_ADD("fdc", false, true)
248244   MCFG_FLOPPY_DRIVE_ADD("fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats)
249245   MCFG_Z80CTC_ADD( "z80ctc",  XTAL_16MHz / 4, ctc_intf)
trunk/src/mess/drivers/jade.c
r29500r29501
8080   m_term_data = data;
8181}
8282
83static GENERIC_TERMINAL_INTERFACE( terminal_intf )
84{
85   DEVCB_DRIVER_MEMBER(jade_state, kbd_put)
86};
87
8883void jade_state::machine_reset()
8984{
9085   m_term_data = 0;
r29500r29501
9792   MCFG_CPU_IO_MAP(jade_io)
9893
9994   /* video hardware */
100   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
95   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
96   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(jade_state, kbd_put))
10197
10298   /* Devices */
10399   MCFG_DEVICE_ADD("uart", I8251, 0)
trunk/src/mess/drivers/binbug.c
r29500r29501
474474   m_pio->strobe_a(1);
475475}
476476
477static ASCII_KEYBOARD_INTERFACE( dg680_keyboard_intf )
478{
479   DEVCB_DRIVER_MEMBER(dg680_state, kbd_put)
480};
481
482477READ8_MEMBER( dg680_state::porta_r )
483478{
484479   UINT8 data = m_term_data;
r29500r29501
566561   MCFG_PALETTE_ADD_MONOCHROME_AMBER("palette")
567562
568563   /* Keyboard */
569   MCFG_ASCII_KEYBOARD_ADD("keyb", dg680_keyboard_intf)
564   MCFG_DEVICE_ADD("keyb", GENERIC_KEYBOARD, 0)
565   MCFG_GENERIC_KEYBOARD_CB(WRITE8(dg680_state, kbd_put))
570566
571567   /* Cassette */
572568   MCFG_CASSETTE_ADD( "cassette", default_cassette_interface )
trunk/src/mess/drivers/pdp11.c
r29500r29501
344344   m_teletype_status |= 0x80;
345345}
346346
347static GENERIC_TERMINAL_INTERFACE( terminal_intf )
348{
349   DEVCB_DRIVER_MEMBER(pdp11_state, kbd_put)
350};
351
352347static MACHINE_CONFIG_START( pdp11, pdp11_state )
353348   /* basic machine hardware */
354349   MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz) // Need proper CPU here
r29500r29501
357352
358353
359354   /* video hardware */
360   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
355   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
356   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(pdp11_state, kbd_put))
361357
362358   MCFG_RX01_ADD("rx01")
363359MACHINE_CONFIG_END
trunk/src/mess/drivers/systec.c
r29500r29501
7373   m_term_data = data;
7474}
7575
76static GENERIC_TERMINAL_INTERFACE( terminal_intf )
77{
78   DEVCB_DRIVER_MEMBER(systec_state, kbd_put)
79};
80
81
8276static ADDRESS_MAP_START(systec_mem, AS_PROGRAM, 8, systec_state)
8377   ADDRESS_MAP_UNMAP_HIGH
8478   AM_RANGE(0x0000, 0xffff) AM_RAM AM_REGION("maincpu", 0)
r29500r29501
109103
110104
111105   /* video hardware */
112   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
106   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
107   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(systec_state, kbd_put))
113108MACHINE_CONFIG_END
114109
115110
trunk/src/mess/drivers/ts802.c
r29500r29501
223223   m_term_data = data;
224224}
225225
226static GENERIC_TERMINAL_INTERFACE( terminal_intf )
227{
228   DEVCB_DRIVER_MEMBER(ts802_state, kbd_put)
229};
230
231226#if 0
232227// not correct
233228static const z80_daisy_config daisy_chain_intf[] =
r29500r29501
261256   MCFG_MACHINE_RESET_OVERRIDE(ts802_state, ts802)
262257
263258   /* Devices */
264   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
259   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
260   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ts802_state, kbd_put))
265261   MCFG_Z80DMA_ADD("z80dma", XTAL_16MHz / 4, dma_intf)
266262   MCFG_Z80DART_ADD("z80dart1", XTAL_16MHz / 4, dart0_intf )
267263   MCFG_Z80DART_ADD("z80dart2", XTAL_16MHz / 4, dart1_intf )
trunk/src/mess/drivers/tricep.c
r29500r29501
6868{
6969}
7070
71static GENERIC_TERMINAL_INTERFACE( terminal_intf )
72{
73   DEVCB_DRIVER_MEMBER(tricep_state, kbd_put)
74};
75
7671static MACHINE_CONFIG_START( tricep, tricep_state )
7772   /* basic machine hardware */
7873   MCFG_CPU_ADD("maincpu",M68000, XTAL_8MHz)
r29500r29501
8075
8176
8277   /* video hardware */
83   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
78   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
79   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(tricep_state, kbd_put))
8480MACHINE_CONFIG_END
8581
8682/* ROM definition */
trunk/src/mess/drivers/ec65.c
r29500r29501
101101   }
102102}
103103
104
105static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
106{
107   DEVCB_DRIVER_MEMBER(ec65_state, kbd_put)
108};
109
110104void ec65_state::machine_reset()
111105{
112106   m_via_1->write_pb0(1);
r29500r29501
221215   MCFG_DEVICE_ADD(ACIA6551_TAG, MOS6551, 0)
222216   MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
223217
224   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
218   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
219   MCFG_GENERIC_KEYBOARD_CB(WRITE8(ec65_state, kbd_put))
225220MACHINE_CONFIG_END
226221
227222static MACHINE_CONFIG_START( ec65k, ec65k_state )
trunk/src/mess/drivers/cm1800.c
r29500r29501
9797{
9898}
9999
100static GENERIC_TERMINAL_INTERFACE( terminal_intf )
101{
102   DEVCB_DRIVER_MEMBER(cm1800_state, kbd_put)
103};
104
105100static MACHINE_CONFIG_START( cm1800, cm1800_state )
106101   /* basic machine hardware */
107102   MCFG_CPU_ADD("maincpu",I8080, XTAL_2MHz)
r29500r29501
110105
111106
112107   /* video hardware */
113   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
108   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
109   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(cm1800_state, kbd_put))
114110MACHINE_CONFIG_END
115111
116112/* ROM definition */
trunk/src/mess/drivers/pes.c
r29500r29501
9191   m_maincpu->set_input_line(MCS51_RX_LINE, CLEAR_LINE);
9292}
9393
94static GENERIC_TERMINAL_INTERFACE( pes_terminal_intf )
95{
96   DEVCB_DRIVER_MEMBER(pes_state,pes_kbd_input)
97};
98
9994/* Helper Functions */
10095READ8_MEMBER( pes_state::data_to_i8031)
10196{
r29500r29501
266261   MCFG_SOUND_ADD("tms5220", TMS5220C, 720000) /* 720Khz clock, 10khz output */
267262   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
268263
269   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG,pes_terminal_intf)
264   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
265   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(pes_state, pes_kbd_input))
270266MACHINE_CONFIG_END
271267
272268/******************************************************************************
trunk/src/mess/drivers/rvoice.c
r29500r29501
356356{
357357}
358358
359static GENERIC_TERMINAL_INTERFACE( dectalk_terminal_intf )
360{
361   DEVCB_DRIVER_MEMBER(rvoice_state,null_kbd_put)
362};
363
364359static MACHINE_CONFIG_START( rvoicepc, rvoice_state )
365360   /* basic machine hardware */
366361   MCFG_CPU_ADD("maincpu", HD63701, XTAL_7_3728MHz)
r29500r29501
379374   //MCFG_DEFAULT_LAYOUT(layout_dectalk) // hack to avoid screenless system crash
380375
381376   /* sound hardware */
382   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG,dectalk_terminal_intf)
377   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
378   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(rvoice_state, null_kbd_put))
383379
384380MACHINE_CONFIG_END
385381
trunk/src/mess/drivers/bigbord2.c
r29500r29501
217217   }
218218}
219219
220static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
221{
222   DEVCB_DRIVER_MEMBER(bigbord2_state, bigbord2_kbd_put)
223};
224
225
226
227220/* Z80 DMA */
228221
229222
r29500r29501
653646   MCFG_FLOPPY_DRIVE_ADD("fdc:0", bigbord2_floppies, "525dd", floppy_image_device::default_floppy_formats)
654647   MCFG_FLOPPY_DRIVE_ADD("fdc:1", bigbord2_floppies, "525dd", floppy_image_device::default_floppy_formats)
655648   MCFG_MC6845_ADD("crtc", MC6845, SCREEN_TAG, XTAL_16MHz / 8, bigbord2_crtc)
656   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
649   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
650   MCFG_GENERIC_KEYBOARD_CB(WRITE8(bigbord2_state, bigbord2_kbd_put))
657651
658652   /* sound hardware */
659653   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mess/drivers/codata.c
r29500r29501
7575   m_term_data = data;
7676}
7777
78static GENERIC_TERMINAL_INTERFACE( terminal_intf )
79{
80   DEVCB_DRIVER_MEMBER(codata_state, kbd_put)
81};
82
8378void codata_state::machine_reset()
8479{
8580   UINT8* RAM = memregion("user1")->base();
r29500r29501
9489   MCFG_CPU_PROGRAM_MAP(codata_mem)
9590
9691   /* video hardware */
97   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
92   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
93   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(codata_state, kbd_put))
9894MACHINE_CONFIG_END
9995
10096/* ROM definition */
trunk/src/mess/drivers/mits680b.c
r29500r29501
9292   m_term_data = data;
9393}
9494
95static GENERIC_TERMINAL_INTERFACE( terminal_intf )
96{
97   DEVCB_DRIVER_MEMBER(mits680b_state, kbd_put)
98};
99
10095static MACHINE_CONFIG_START( mits680b, mits680b_state )
10196   /* basic machine hardware */
10297   MCFG_CPU_ADD("maincpu",M6800, XTAL_1MHz / 2)
10398   MCFG_CPU_PROGRAM_MAP(mits680b_mem)
10499
105100   /* video hardware */
106   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
101   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
102   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mits680b_state, kbd_put))
107103
108104   /* acia */
109105   //MCFG_ACIA6551_ADD("acia")
trunk/src/mess/drivers/zrt80.c
r29500r29501
282282   m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
283283}
284284
285static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
286{
287   DEVCB_DRIVER_MEMBER(zrt80_state, kbd_put)
288};
289
290
291285/* F4 Character Displayer */
292286static const gfx_layout zrt80_charlayout =
293287{
r29500r29501
330324   /* Devices */
331325   MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_20MHz / 8, zrt80_crtc6845_interface)
332326   MCFG_INS8250_ADD( "ins8250", zrt80_com_interface, 2457600 )
333   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
327   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
328   MCFG_GENERIC_KEYBOARD_CB(WRITE8(zrt80_state, kbd_put))
334329MACHINE_CONFIG_END
335330
336331/* ROM definition */
trunk/src/mess/drivers/swtpc.c
r29500r29501
109109   m_term_data = data;
110110}
111111
112static GENERIC_TERMINAL_INTERFACE( terminal_intf )
113{
114   DEVCB_DRIVER_MEMBER(swtpc_state, kbd_put)
115};
116
117112static MACHINE_CONFIG_START( swtpc, swtpc_state )
118113   /* basic machine hardware */
119114   MCFG_CPU_ADD("maincpu", M6800, XTAL_1MHz)
r29500r29501
121116
122117
123118   /* video hardware */
124   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
119   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
120   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(swtpc_state, kbd_put))
125121MACHINE_CONFIG_END
126122
127123/* ROM definition */
trunk/src/mess/drivers/dim68k.c
r29500r29501
318318   m_term_data = data;
319319}
320320
321static ASCII_KEYBOARD_INTERFACE( kb_intf )
322{
323   DEVCB_DRIVER_MEMBER(dim68k_state, kbd_put)
324};
325
326321static MACHINE_CONFIG_START( dim68k, dim68k_state )
327322   /* basic machine hardware */
328323   MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz)
r29500r29501
348343   MCFG_FLOPPY_DRIVE_ADD("fdc:0", dim68k_floppies, "525hd", floppy_image_device::default_floppy_formats)
349344   MCFG_FLOPPY_DRIVE_ADD("fdc:1", dim68k_floppies, "525hd", floppy_image_device::default_floppy_formats)
350345   MCFG_MC6845_ADD("crtc", MC6845, "screen", 1790000, dim68k_crtc)
351   MCFG_ASCII_KEYBOARD_ADD("keyboard", kb_intf)
346   MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
347   MCFG_GENERIC_KEYBOARD_CB(WRITE8(dim68k_state, kbd_put))
352348MACHINE_CONFIG_END
353349
354350/*
trunk/src/mess/drivers/dm7000.c
r29500r29501
297297   m_scc0_lsr = 1;
298298}
299299
300static GENERIC_TERMINAL_INTERFACE( terminal_intf )
301{
302   DEVCB_DRIVER_MEMBER(dm7000_state, kbd_put)
303};
304
305300static const powerpc_config ppc405_config =
306301{
307302   252000000
r29500r29501
323318   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
324319   MCFG_SCREEN_UPDATE_DRIVER(dm7000_state, screen_update_dm7000)
325320
326   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
321   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
322   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(dm7000_state, kbd_put))
327323
328324MACHINE_CONFIG_END
329325
trunk/src/mess/drivers/imds.c
r29500r29501
7474   m_term_data = data;
7575}
7676
77static GENERIC_TERMINAL_INTERFACE( terminal_intf )
78{
79   DEVCB_DRIVER_MEMBER(imds_state, kbd_put)
80};
81
8277void imds_state::machine_reset()
8378{
8479   m_term_data = 0;
r29500r29501
10297//  MCFG_INS8250_ADD( "ins8250", imds_com_interface )
10398
10499   /* video hardware */
105   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
100   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
101   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(imds_state, kbd_put))
106102MACHINE_CONFIG_END
107103
108104/* ROM definition */
trunk/src/mess/drivers/llc.c
r29500r29501
145145      m_term_status = 0xff;
146146}
147147
148static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
149{
150   DEVCB_DRIVER_MEMBER(llc_state, kbd_put)
151};
152
153148static const z80_daisy_config llc1_daisy_chain[] =
154149{
155150   { "z80ctc" },
r29500r29501
225220   MCFG_Z80PIO_ADD( "z80pio1", XTAL_3MHz, llc1_z80pio1_intf )
226221   MCFG_Z80PIO_ADD( "z80pio2", XTAL_3MHz, llc1_z80pio2_intf )
227222   MCFG_Z80CTC_ADD( "z80ctc", XTAL_3MHz, llc1_ctc_intf )
228   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
223   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
224   MCFG_GENERIC_KEYBOARD_CB(WRITE8(llc_state, kbd_put))
229225MACHINE_CONFIG_END
230226
231227static MACHINE_CONFIG_START( llc2, llc_state )
trunk/src/mess/drivers/ipc.c
r29500r29501
107107   m_term_data = data;
108108}
109109
110static GENERIC_TERMINAL_INTERFACE( terminal_intf )
111{
112   DEVCB_DRIVER_MEMBER(ipc_state, kbd_put)
113};
114
115110static MACHINE_CONFIG_START( ipc, ipc_state )
116111   /* basic machine hardware */
117112   MCFG_CPU_ADD("maincpu",I8085A, XTAL_19_6608MHz / 4)
r29500r29501
119114   MCFG_CPU_IO_MAP(ipc_io)
120115
121116   /* video hardware */
122   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
117   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
118   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ipc_state, kbd_put))
123119MACHINE_CONFIG_END
124120
125121/* ROM definition */
trunk/src/mess/drivers/cxhumax.c
r29500r29501
10481048   memset(m_gxa_cmd_regs,0,sizeof(m_gxa_cmd_regs));
10491049}
10501050
1051static GENERIC_TERMINAL_INTERFACE( terminal_intf )
1052{
1053   DEVCB_NULL
1054};
1055
10561051static MACHINE_CONFIG_START( cxhumax, cxhumax_state )
10571052   MCFG_CPU_ADD("maincpu", ARM920T, 180000000) // CX24175 (RevC up?)
10581053   MCFG_CPU_PROGRAM_MAP(cxhumax_map)
r29500r29501
10721067
10731068   MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
10741069
1075   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
1076
1070   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
10771071MACHINE_CONFIG_END
10781072
10791073ROM_START( hxhdci2k )
trunk/src/mess/drivers/basic52.c
r29500r29501
112112   m_term_data = data;
113113}
114114
115static GENERIC_TERMINAL_INTERFACE( terminal_intf )
116{
117   DEVCB_DRIVER_MEMBER(basic52_state, kbd_put)
118};
119
120115static I8255_INTERFACE( ppi8255_intf )
121116{
122117   DEVCB_NULL,                 /* Port A read */
r29500r29501
135130
136131
137132   /* video hardware */
138   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
133   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
134   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(basic52_state, kbd_put))
139135
140136   MCFG_I8255_ADD("ppi8255", ppi8255_intf )
141137MACHINE_CONFIG_END
trunk/src/mess/drivers/v6809.c
r29500r29501
254254   m_pia0->cb1_w(1);
255255}
256256
257static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
258{
259   DEVCB_DRIVER_MEMBER(v6809_state, kbd_put)
260};
261
262257WRITE_LINE_MEMBER( v6809_state::write_acia_clock )
263258{
264259   m_acia0->write_txc(state);
r29500r29501
359354
360355   /* Devices */
361356   MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_16MHz / 8, v6809_crtc)
362   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
357   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
358   MCFG_GENERIC_KEYBOARD_CB(WRITE8(v6809_state, kbd_put))
363359
364360// port A = drive select and 2 control lines ; port B = keyboard
365361// CB2 connects to the interrupt pin of the RTC (the rtc code doesn't support it)
trunk/src/mess/drivers/vector4.c
r29500r29501
8484   m_term_data = data;
8585}
8686
87static GENERIC_TERMINAL_INTERFACE( terminal_intf )
88{
89   DEVCB_DRIVER_MEMBER(vector4_state, kbd_put)
90};
91
92
9387static MACHINE_CONFIG_START( vector4, vector4_state )
9488   /* basic machine hardware */
9589   MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz)
r29500r29501
9892
9993
10094   /* video hardware */
101   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
95   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
96   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(vector4_state, kbd_put))
10297MACHINE_CONFIG_END
10398
10499/* ROM definition */
trunk/src/mess/drivers/besta.c
r29500r29501
128128   m_maincpu->reset();
129129}
130130
131static GENERIC_TERMINAL_INTERFACE( terminal_intf )
132{
133   DEVCB_DRIVER_MEMBER(besta_state, kbd_put)
134};
135
136
137131/* CP31 processor board */
138132static MACHINE_CONFIG_START( besta, besta_state )
139133   /* basic machine hardware */
r29500r29501
143137#if 0
144138   MCFG_DEVICE_ADD("mpcc", MPCC68561, XTAL_25MHz);    // confirm internal oscillator frequency
145139#endif
146   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
140   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
141   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(besta_state, kbd_put))
147142MACHINE_CONFIG_END
148143
149144/* ROM definition */
trunk/src/mess/drivers/ptcsol.c
r29500r29501
739739   }
740740}
741741
742static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
743{
744   DEVCB_DRIVER_MEMBER(sol20_state, kbd_put)
745};
746
747742static MACHINE_CONFIG_START( sol20, sol20_state )
748743   /* basic machine hardware */
749744   MCFG_CPU_ADD("maincpu",I8080, XTAL_14_31818MHz/7)
r29500r29501
774769   MCFG_CASSETTE_ADD( "cassette2", sol20_cassette_interface )
775770   MCFG_AY31015_ADD( "uart", sol20_ay31015_config )
776771   MCFG_AY31015_ADD( "uart_s", sol20_ay31015_config )
777   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
772   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
773   MCFG_GENERIC_KEYBOARD_CB(WRITE8(sol20_state, kbd_put))
778774MACHINE_CONFIG_END
779775
780776/* ROM definition */
trunk/src/mess/drivers/a6809.c
r29500r29501
233233   m_via->write_cb1(0);
234234}
235235
236static ASCII_KEYBOARD_INTERFACE( kb_intf )
237{
238   DEVCB_DRIVER_MEMBER(a6809_state, kbd_put)
239};
240
241236static MACHINE_CONFIG_START( a6809, a6809_state )
242237   /* basic machine hardware */
243238   MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz)
r29500r29501
270265   MCFG_SAA5050_D_CALLBACK(READ8(a6809_state, videoram_r))
271266   MCFG_SAA5050_SCREEN_SIZE(40, 25, 40)
272267
273   MCFG_ASCII_KEYBOARD_ADD("keyboard", kb_intf)
268   MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
269   MCFG_GENERIC_KEYBOARD_CB(WRITE8(a6809_state, kbd_put))
274270   MCFG_CASSETTE_ADD( "cassette", default_cassette_interface )
275271   MCFG_TIMER_DRIVER_ADD_PERIODIC("a6809_c", a6809_state, a6809_c, attotime::from_hz(4800))
276272   MCFG_TIMER_DRIVER_ADD_PERIODIC("a6809_p", a6809_state, a6809_p, attotime::from_hz(40000))
trunk/src/mess/drivers/seattle.c
r29500r29501
104104   m_key_available = 1;
105105}
106106
107static GENERIC_TERMINAL_INTERFACE( terminal_intf )
108{
109   DEVCB_DRIVER_MEMBER(seattle_comp_state, kbd_put)
110};
111
112107static MACHINE_CONFIG_START( seattle, seattle_comp_state )
113108   /* basic machine hardware */
114109   MCFG_CPU_ADD("maincpu", I8086, 4000000) // no idea
r29500r29501
116111   MCFG_CPU_IO_MAP(seattle_io)
117112
118113   /* video hardware */
119   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
114   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
115   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(seattle_comp_state, kbd_put))
120116MACHINE_CONFIG_END
121117
122118/* ROM definition */
trunk/src/mess/drivers/p8k.c
r29500r29501
220220   m_maincpu->set_state_int(Z80_PC, 0x078A);
221221}
222222
223static GENERIC_TERMINAL_INTERFACE( terminal_intf )
224{
225   DEVCB_DRIVER_MEMBER(p8k_state, kbd_put)
226};
227
228
229223/***************************************************************************
230224
231225    P8000 8bit Peripherals
r29500r29501
483477   mem.write_byte(0x43a0, 1);
484478}
485479
486static GENERIC_TERMINAL_INTERFACE( terminal_intf_16 )
487{
488   DEVCB_DRIVER_MEMBER(p8k_state, kbd_put_16)
489};
490
491
492
493
494480MACHINE_RESET_MEMBER(p8k_state,p8k_16)
495481{
496482}
r29500r29501
814800   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
815801
816802   /* video hardware */
817   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
803   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
804   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(p8k_state, kbd_put))
818805MACHINE_CONFIG_END
819806
820807static MACHINE_CONFIG_START( p8k_16, p8k_state )
r29500r29501
841828   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
842829
843830   /* video hardware */
844   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf_16)
831   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
832   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(p8k_state, kbd_put_16))
845833MACHINE_CONFIG_END
846834
847835/* ROM definition */
trunk/src/mess/drivers/zsbc3.c
r29500r29501
100100   m_term_data = data;
101101}
102102
103static GENERIC_TERMINAL_INTERFACE( terminal_intf )
104{
105   DEVCB_DRIVER_MEMBER(zsbc3_state, kbd_put)
106};
107103
108
109104static MACHINE_CONFIG_START( zsbc3, zsbc3_state )
110105   /* basic machine hardware */
111106   MCFG_CPU_ADD("maincpu",Z80, XTAL_16MHz /4)
r29500r29501
113108   MCFG_CPU_IO_MAP(zsbc3_io)
114109
115110   /* video hardware */
116   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
111   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
112   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(zsbc3_state, kbd_put))
117113MACHINE_CONFIG_END
118114
119115/* ROM definition */
trunk/src/mess/drivers/chaos.c
r29500r29501
130130   m_term_data = data;
131131}
132132
133static GENERIC_TERMINAL_INTERFACE( terminal_intf )
134{
135   DEVCB_DRIVER_MEMBER(chaos_state, kbd_put)
136};
137
138133void chaos_state::machine_reset()
139134{
140135   // copy the roms into ram
r29500r29501
150145   MCFG_CPU_IO_MAP(chaos_io)
151146
152147   /* video hardware */
153   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
148   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
149   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(chaos_state, kbd_put))
154150MACHINE_CONFIG_END
155151
156152/* ROM definition */
trunk/src/mess/drivers/rm380z.c
r29500r29501
109109   AM_RANGE(0xc5, 0xff) AM_READWRITE(rm380z_porthi_r, rm380z_porthi_w)
110110ADDRESS_MAP_END
111111
112static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
113{
114   DEVCB_DRIVER_MEMBER(rm380z_state, keyboard_put)
115};
116
117112INPUT_PORTS_START( rm380z )
118113//  PORT_START("additional_chars")
119114//  PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Escape") PORT_CODE(KEYCODE_ESC) PORT_CODE(KEYCODE_ESC)
r29500r29501
170165   MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(rm380z_floppy_interface)
171166
172167   /* keyboard */
173   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
168   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
169   MCFG_GENERIC_KEYBOARD_CB(WRITE8(rm380z_state, keyboard_put))
174170MACHINE_CONFIG_END
175171
176172/* ROM definition */
trunk/src/mess/drivers/mod8.c
r29500r29501
139139   m_maincpu->set_input_line(0, HOLD_LINE);
140140}
141141
142static GENERIC_TELEPRINTER_INTERFACE( teleprinter_intf )
143{
144   DEVCB_DRIVER_MEMBER(mod8_state, kbd_put)
145};
146
147142static MACHINE_CONFIG_START( mod8, mod8_state )
148143   /* basic machine hardware */
149144   MCFG_CPU_ADD("maincpu",I8008, 800000)
r29500r29501
151146   MCFG_CPU_IO_MAP(mod8_io)
152147
153148   /* video hardware */
154   MCFG_GENERIC_TELEPRINTER_ADD(TELEPRINTER_TAG, teleprinter_intf)
149   MCFG_DEVICE_ADD(TELEPRINTER_TAG, TELEPRINTER, 0)
150   MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(WRITE8(mod8_state, kbd_put))
155151MACHINE_CONFIG_END
156152
157153
trunk/src/mess/drivers/mice.c
r29500r29501
8181   m_term_data = data;
8282}
8383
84static GENERIC_TERMINAL_INTERFACE( terminal_intf )
85{
86   DEVCB_DRIVER_MEMBER(mice_state, kbd_put)
87};
88
89
9084static MACHINE_CONFIG_START( mice, mice_state )
9185   /* basic machine hardware */
9286   MCFG_CPU_ADD("maincpu", I8085A, XTAL_6_144MHz)
r29500r29501
9488   MCFG_CPU_IO_MAP(mice_io)
9589
9690   /* video hardware */
97   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
91   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
92   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mice_state, kbd_put))
9893MACHINE_CONFIG_END
9994
10095/* ROM definition */
trunk/src/mess/drivers/ccs2810.c
r29500r29501
174174   m_term_data = data;
175175}
176176
177static GENERIC_TERMINAL_INTERFACE( terminal_intf )
178{
179   DEVCB_DRIVER_MEMBER(ccs_state, kbd_put)
180};
181
182177#if 0
183178static const ins8250_interface com_intf =
184179{
r29500r29501
340335   MCFG_MACHINE_RESET_OVERRIDE(ccs_state, ccs)
341336
342337   /* video hardware */
343   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
338   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
339   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ccs_state, kbd_put))
344340
345341   /* Devices */
346342   //MCFG_INS8250_ADD( "ins8250", com_intf, XTAL_1_8432MHz )
r29500r29501
354350   MCFG_MACHINE_RESET_OVERRIDE(ccs_state, ccs)
355351
356352   /* video hardware */
357   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
353   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
354   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ccs_state, kbd_put))
358355
359356   /* Devices */
360357   MCFG_MB8877x_ADD("fdc", XTAL_16MHz / 8) // UB1793 or MB8877
trunk/src/mess/drivers/ts816.c
r29500r29501
8080   m_status = 3;
8181}
8282
83static GENERIC_TERMINAL_INTERFACE( terminal_intf )
84{
85   DEVCB_DRIVER_MEMBER(ts816_state, kbd_put)
86};
87
8883void ts816_state::machine_reset()
8984{
9085   m_term_data = 0;
r29500r29501
9893   MCFG_CPU_IO_MAP(ts816_io)
9994
10095   /* video hardware */
101   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
96   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
97   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(ts816_state, kbd_put))
10298MACHINE_CONFIG_END
10399
104100/* ROM definition */
trunk/src/mess/drivers/sapi1.c
r29500r29501
491491   m_term_data = data;
492492}
493493
494static GENERIC_TERMINAL_INTERFACE( terminal_intf )
495{
496   DEVCB_DRIVER_MEMBER(sapi1_state, kbd_put)
497};
498
499
500
501494/**************************************
502495
503496    Machine
r29500r29501
584577   /* basic machine hardware */
585578   MCFG_CPU_MODIFY("maincpu")
586579   MCFG_CPU_PROGRAM_MAP(sapi2_mem)
587   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, terminal_intf)
580   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
581   MCFG_GENERIC_KEYBOARD_CB(WRITE8(sapi1_state, kbd_put))
588582MACHINE_CONFIG_END
589583
590584static MACHINE_CONFIG_DERIVED( sapi3, sapi2 )
r29500r29501
618612   MCFG_MACHINE_RESET_OVERRIDE(sapi1_state, sapizps3 )
619613
620614   /* video hardware */
621   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
615   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
616   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(sapi1_state, kbd_put))
622617
623618   /* internal ram */
624619   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/sbc6510.c
r29500r29501
216216   m_terminal->write(space, 0, data);
217217}
218218
219static GENERIC_TERMINAL_INTERFACE( terminal_intf )
220{
221   DEVCB_NULL
222};
223
224
225219void sbc6510_state::machine_start()
226220{
227221   char kbdrow[6];
r29500r29501
314308   MCFG_GFXDECODE_ADD("gfxdecode", TERMINAL_TAG":palette", sbc6510)
315309
316310   /* video hardware */
317   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
311   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
318312
319313   /* sound hardware */
320314   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mess/drivers/zexall.c
r29500r29501
162162 Machine Drivers
163163******************************************************************************/
164164
165static GENERIC_TERMINAL_INTERFACE( zexall_terminal_intf )
166{
167   DEVCB_NULL
168};
169
170165static MACHINE_CONFIG_START( zexall, zexall_state )
171166   /* basic machine hardware */
172167   MCFG_CPU_ADD("maincpu", Z80, XTAL_3_579545MHz*10)
r29500r29501
175170   MCFG_QUANTUM_TIME(attotime::from_hz(60))
176171
177172   /* video hardware */
178   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, zexall_terminal_intf)
173   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
179174MACHINE_CONFIG_END
180175
181176
trunk/src/mess/drivers/mccpm.c
r29500r29501
124124   m_term_data = data;
125125}
126126
127static GENERIC_TERMINAL_INTERFACE( terminal_intf )
128{
129   DEVCB_DRIVER_MEMBER(mccpm_state, kbd_put)
130};
131
132127static MACHINE_CONFIG_START( mccpm, mccpm_state )
133128   /* basic machine hardware */
134129   MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz)
r29500r29501
136131   MCFG_CPU_IO_MAP(mccpm_io)
137132
138133   /* video hardware */
139   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
134   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
135   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(mccpm_state, kbd_put))
140136MACHINE_CONFIG_END
141137
142138/* ROM definition */
trunk/src/mess/drivers/phunsy.c
r29500r29501
184184}
185185
186186
187static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
188{
189   DEVCB_DRIVER_MEMBER(phunsy_state, kbd_put)
190};
191
192
193187void phunsy_state::machine_reset()
194188{
195189   membank("bankru")->set_entry(0); // point at ram
r29500r29501
367361   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
368362
369363   /* Devices */
370   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
364   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
365   MCFG_GENERIC_KEYBOARD_CB(WRITE8(phunsy_state, kbd_put))
371366   MCFG_CASSETTE_ADD( "cassette", default_cassette_interface )
372367
373368   /* quickload */
trunk/src/mess/drivers/ie15.c
r29500r29501
486486   }
487487}
488488
489static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
490{
491   DEVCB_DRIVER_MEMBER(ie15_state, kbd_put)
492};
493
494
495489void ie15_state::machine_reset()
496490{
497491   m_ruslat = m_beep = m_statusline = m_cursor = m_video = m_kb_data = m_kb_flag0 = 0;
r29500r29501
640634   MCFG_PALETTE_INIT_OWNER(ie15_state, ie15)
641635
642636   /* Devices */
643   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
637   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
638   MCFG_GENERIC_KEYBOARD_CB(WRITE8(ie15_state, kbd_put))
644639   MCFG_BITBANGER_ADD(BITBANGER_TAG, ie15_state::ie15_bitbanger_config)
645640
646641   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mess/drivers/pm68k.c
r29500r29501
7878   m_term_data = data;
7979}
8080
81static GENERIC_TERMINAL_INTERFACE( terminal_intf )
82{
83   DEVCB_DRIVER_MEMBER(pm68k_state, kbd_put)
84};
85
8681static MACHINE_CONFIG_START( pm68k, pm68k_state )
8782   /* basic machine hardware */
8883   MCFG_CPU_ADD("maincpu", M68000, 8000000)
8984   MCFG_CPU_PROGRAM_MAP(pm68k_mem)
9085
9186   /* video hardware */
92   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
87   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
88   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(pm68k_state, kbd_put))
9389MACHINE_CONFIG_END
9490
9591/* ROM definition */
trunk/src/mess/drivers/k8915.c
r29500r29501
149149   m_term_data = data;
150150}
151151
152static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
153{
154   DEVCB_DRIVER_MEMBER(k8915_state, kbd_put)
155};
156
157152static MACHINE_CONFIG_START( k8915, k8915_state )
158153   /* basic machine hardware */
159154   MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4)
r29500r29501
171166
172167   MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
173168
174   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
169   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
170   MCFG_GENERIC_KEYBOARD_CB(WRITE8(k8915_state, kbd_put))
175171MACHINE_CONFIG_END
176172
177173
trunk/src/mess/drivers/harriet.c
r29500r29501
180180   m_teletype_status |= 0x80;
181181}
182182
183static GENERIC_TERMINAL_INTERFACE( terminal_intf )
184{
185   DEVCB_DRIVER_MEMBER(harriet_state, kbd_put)
186};
187
188183void harriet_state::machine_start()
189184{
190185}
r29500r29501
201196   MCFG_CPU_PROGRAM_MAP(harriet_map)
202197
203198   /* video hardware */
204   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
199   MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
200   MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(harriet_state, kbd_put))
205201
206202   MCFG_PALETTE_ADD("palette", 8)
207203
trunk/src/mess/drivers/xerox820.c
r29500r29501
520520   m_kbpio->strobe_b(1);
521521}
522522
523static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
524{
525   DEVCB_DRIVER_MEMBER(xerox820_state, kbd_w)
526};
527
528
529523/* Video */
530524
531525UINT32 xerox820_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
r29500r29501
719713   MCFG_COM8116_FR_HANDLER(WRITELINE(xerox820_state, fr_w))
720714   MCFG_COM8116_FT_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w))
721715
722   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
716   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
717   MCFG_GENERIC_KEYBOARD_CB(WRITE8(xerox820_state, kbd_w))
723718
724719   /* internal ram */
725720   MCFG_RAM_ADD(RAM_TAG)
r29500r29501
780775   MCFG_COM8116_FR_HANDLER(WRITELINE(xerox820_state, fr_w))
781776   MCFG_COM8116_FT_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w))
782777
783   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
778   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
779   MCFG_GENERIC_KEYBOARD_CB(WRITE8(xerox820_state, kbd_w))
784780
785781   // SASI bus
786782   MCFG_SCSIBUS_ADD(SASIBUS_TAG)
trunk/src/mess/drivers/h19.c
r29500r29501
411411   m_maincpu->set_input_line(0, HOLD_LINE);
412412}
413413
414static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
415{
416   DEVCB_DRIVER_MEMBER(h19_state, h19_kbd_put)
417};
418
419414static MACHINE_CONFIG_START( h19, h19_state )
420415   /* basic machine hardware */
421416   MCFG_CPU_ADD("maincpu",Z80, H19_CLOCK) // From schematics
r29500r29501
435430
436431   MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_12_288MHz / 8, h19_crtc6845_interface) // clk taken from schematics
437432   MCFG_INS8250_ADD( "ins8250", h19_ace_interface, XTAL_12_288MHz / 4) // 3.072mhz clock which gets divided down for the various baud rates
438   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
433   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
434   MCFG_GENERIC_KEYBOARD_CB(WRITE8(h19_state, h19_kbd_put))
439435
440436   /* sound hardware */
441437   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mess/drivers/tk80bs.c
r29500r29501
160160   m_term_data = data;
161161}
162162
163static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
164{
165   DEVCB_DRIVER_MEMBER(tk80bs_state, kbd_put)
166};
167
168
169163/* F4 Character Displayer */
170164static const gfx_layout tk80bs_charlayout =
171165{
r29500r29501
202196
203197   /* Devices */
204198   MCFG_I8255_ADD( "ppi", ppi_intf)
205   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
199   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
200   MCFG_GENERIC_KEYBOARD_CB(WRITE8(tk80bs_state, kbd_put))
206201MACHINE_CONFIG_END
207202
208203
trunk/src/mess/machine/teleprinter.c
r29500r29501
203203   return 0;
204204}
205205
206static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
207{
208   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, generic_terminal_device, kbd_put)
209};
210
211206/***************************************************************************
212207    VIDEO HARDWARE
213208***************************************************************************/
r29500r29501
218213   MCFG_SCREEN_SIZE(TELEPRINTER_WIDTH*8, TELEPRINTER_HEIGHT*8)
219214   MCFG_SCREEN_VISIBLE_AREA(0, TELEPRINTER_WIDTH*8-1, 0, TELEPRINTER_HEIGHT*8-1)
220215   MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, teleprinter_device, tp_update)
221   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
216   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
217   MCFG_GENERIC_KEYBOARD_CB(WRITE8(generic_terminal_device, kbd_put))
222218MACHINE_CONFIG_END
223219
224220machine_config_constructor teleprinter_device::device_mconfig_additions() const
trunk/src/mess/machine/teleprinter.h
r29500r29501
66#define TELEPRINTER_WIDTH 80
77#define TELEPRINTER_HEIGHT 50
88
9#define GENERIC_TELEPRINTER_INTERFACE GENERIC_TERMINAL_INTERFACE
109
1110/***************************************************************************
1211    DEVICE CONFIGURATION MACROS
r29500r29501
1413#define TELEPRINTER_TAG "teleprinter"
1514#define TELEPRINTER_SCREEN_TAG "tty_screen"
1615
17#define MCFG_GENERIC_TELEPRINTER_ADD(_tag, _intrf) \
18   MCFG_DEVICE_ADD(_tag, TELEPRINTER, 0) \
19   MCFG_DEVICE_CONFIG(_intrf)
16#define MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(_devcb) \
17   devcb = &generic_terminal_device::set_keyboard_callback(*device, DEVCB2_##_devcb);
2018
21#define MCFG_GENERIC_TELEPRINTER_REMOVE(_tag)       \
22   MCFG_DEVICE_REMOVE(_tag)
23
2419/***************************************************************************
2520    FUNCTION PROTOTYPES
2621***************************************************************************/

Previous 199869 Revisions Next


© 1997-2024 The MAME Team