Previous 199869 Revisions Next

r23818 Thursday 20th June, 2013 at 12:59:13 UTC by Robbbert
(MESS) dim68k : added some parts (nw)
[src/mess/drivers]dim68k.c

trunk/src/mess/drivers/dim68k.c
r23817r23818
3535#include "cpu/m68000/m68000.h"
3636#include "sound/speaker.h"
3737#include "video/mc6845.h"
38#include "machine/keyboard.h"
39#include "machine/upd765.h"
3840
3941
4042class dim68k_state : public driver_device
r23817r23818
4244public:
4345   dim68k_state(const machine_config &mconfig, device_type type, const char *tag)
4446      : driver_device(mconfig, type, tag),
45         m_maincpu(*this, "maincpu"),
46         m_crtc(*this, "crtc"),
47         m_speaker(*this, "speaker")
48   ,
47      m_maincpu(*this, "maincpu"),
48      m_crtc(*this, "crtc"),
49      m_speaker(*this, "speaker"),
4950      m_ram(*this, "ram"){ }
5051
51   required_device<cpu_device> m_maincpu;
52   required_device<mc6845_device> m_crtc;
53   required_device<speaker_sound_device> m_speaker;
5452   DECLARE_READ16_MEMBER( dim68k_duart_r );
5553   DECLARE_READ16_MEMBER( dim68k_fdc_r );
5654   DECLARE_READ16_MEMBER( dim68k_game_switches_r );
r23817r23818
6462   DECLARE_WRITE16_MEMBER( dim68k_video_control_w );
6563   DECLARE_WRITE16_MEMBER( dim68k_video_high_w );
6664   DECLARE_WRITE16_MEMBER( dim68k_video_reset_w );
67   required_shared_ptr<UINT16> m_ram;
65   DECLARE_WRITE8_MEMBER(kbd_put);
6866   const UINT8 *m_p_chargen;
6967   bool m_speaker_bit;
7068   UINT8 m_video_control;
69   UINT8 m_term_data;
7170   virtual void machine_reset();
7271   virtual void video_start();
72   required_device<cpu_device> m_maincpu;
73   required_device<mc6845_device> m_crtc;
74   required_device<speaker_sound_device> m_speaker;
75   required_shared_ptr<UINT16> m_ram;
7376};
7477
7578READ16_MEMBER( dim68k_state::dim68k_duart_r )
r23817r23818
7881// Device = SCN2681, not emulated. The keyboard is standard ASCII, so we can use the terminal
7982// keyboard for now.
8083{
84   if (offset==3)
85      return m_term_data;
86   else
8187   return 0;
8288}
8389
r23817r23818
187193   AM_RANGE(0x00ffc400, 0x00ffc41f) AM_READWRITE(dim68k_duart_r,dim68k_duart_w) // Signetics SCN2681AC1N40 Dual UART
188194   AM_RANGE(0x00ffc800, 0x00ffc801) AM_READWRITE(dim68k_speaker_r,dim68k_speaker_w)
189195   AM_RANGE(0x00ffcc00, 0x00ffcc1f) AM_READWRITE(dim68k_game_switches_r,dim68k_reset_timers_w)
190   AM_RANGE(0x00ffd000, 0x00ffd005) AM_READWRITE(dim68k_fdc_r,dim68k_fdc_w) // NEC uPD765A
196   AM_RANGE(0x00ffd000, 0x00ffd003) AM_DEVICE8("fdc",upd765a_device,map,0x00ff) // NEC uPD765A
197   AM_RANGE(0x00ffd004, 0x00ffd005) AM_READWRITE(dim68k_fdc_r,dim68k_fdc_w)
191198   //AM_RANGE(0x00ffd400, 0x00ffd403) emulation trap control
192199   AM_RANGE(0x00ffd800, 0x00ffd801) AM_WRITE(dim68k_printer_strobe_w)
193200   AM_RANGE(0x00ffdc00, 0x00ffdc01) AM_WRITE(dim68k_banksw_w)
r23817r23818
298305   NULL
299306};
300307
308static SLOT_INTERFACE_START( dim68k_floppies )
309   SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
310SLOT_INTERFACE_END
311
312WRITE8_MEMBER( dim68k_state::kbd_put )
313{
314   m_term_data = data;
315}
316
317static ASCII_KEYBOARD_INTERFACE( kb_intf )
318{
319   DEVCB_DRIVER_MEMBER(dim68k_state, kbd_put)
320};
321
301322static MACHINE_CONFIG_START( dim68k, dim68k_state )
302323   /* basic machine hardware */
303324   MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz)
r23817r23818
320341   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
321342
322343   /* Devices */
344   MCFG_UPD765A_ADD("fdc", true, true) // these options unknown
345   MCFG_FLOPPY_DRIVE_ADD("fdc:0", dim68k_floppies, "525hd", floppy_image_device::default_floppy_formats)
346   MCFG_FLOPPY_DRIVE_ADD("fdc:1", dim68k_floppies, "525hd", floppy_image_device::default_floppy_formats)
323347   MCFG_MC6845_ADD("crtc", MC6845, 1790000, dim68k_crtc)
348   MCFG_ASCII_KEYBOARD_ADD("keyboard", kb_intf)
324349MACHINE_CONFIG_END
325350
326351/*

Previous 199869 Revisions Next


© 1997-2024 The MAME Team