Previous 199869 Revisions Next

r17493 Monday 27th August, 2012 at 01:59:14 UTC by Angelo Salese
Place-holders, F-Zero boots anyway
[src/emu]emu.mak
[src/emu/machine]m6m80011ap.c* m6m80011ap.h*
[src/mame/drivers]nss.c
[src/mame/etc]template_device.h

trunk/src/mame/etc/template_device.h
r17492r17493
4444
4545
4646// device type definition
47extern const device_type xxx;
47extern const device_type XXX;
4848
4949
5050
trunk/src/mame/drivers/nss.c
r17492r17493
280280
281281#include "emu.h"
282282#include "cpu/z80/z80.h"
283#include "machine/eeprom.h"
283#include "machine/m6m80011ap.h"
284284#include "machine/s3520cf.h"
285285#include "machine/rp5h01.h"
286286#include "video/m50458.h"
r17492r17493
606606   AM_RANGE(0x07, 0x07) AM_WRITENOP // Pad watchdog
607607ADDRESS_MAP_END
608608
609/* Mitsubishi M6M80011 */
610static const eeprom_interface nss_eeprom_intf =
611{
612   8,            /* address bits */
613   16,            /* data bits */
614   "*10101000",      /*  read command */
615   "*10100100",      /* write command */
616   0,            /* erase command */
617   "*10100000",      /*  lock command */
618   "*10100011"      /* unlock command*/
619   /* "10101001" TODO: status output? */
620};
621
622
623609static MACHINE_START( nss )
624610{
625611   nss_state *state = machine.driver_data<nss_state>();
r17492r17493
649635   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Game 1 Button")
650636
651637   PORT_START("EEPROMIN")
652   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit)
653   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // EEPROM Ready
638   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, read_bit)
639   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, ready_line )
654640   PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_UNKNOWN )
655641
656642   PORT_START("EEPROMOUT")
657   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line)
658   PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit)
659   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line)
643   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, set_clock_line)
644   PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, write_bit)
645   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, set_cs_line)
660646
661647   PORT_START("RTC_OSD")
662648   PORT_BIT( 0x80, IP_ACTIVE_LOW,  IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m50458", m50458_device, set_clock_line)
r17492r17493
844830   MCFG_M50458_ADD("m50458",4000000) /* TODO: clock */
845831   MCFG_S3520CF_ADD("s3520cf") /* RTC */
846832   MCFG_RP5H01_ADD("rp5h01")
833   MCFG_M6M80011AP_ADD("m6m80011ap")
847834
848835   /* TODO: the screen should actually superimpose, but for the time being let's just separate outputs for now */
849836   MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
r17492r17493
857844   MCFG_SCREEN_VISIBLE_AREA(0*8, 24*12-1, 0*8, 12*18-1)
858845   MCFG_SCREEN_UPDATE_DRIVER(nss_state,screen_update)
859846
860   MCFG_EEPROM_ADD("eeprom", nss_eeprom_intf)
861
862847   MCFG_MACHINE_START( nss )
863848MACHINE_CONFIG_END
864849
trunk/src/emu/emu.mak
r17492r17493
203203   $(EMUMACHINE)/ldpr8210.o   \
204204   $(EMUMACHINE)/ldv1000.o      \
205205   $(EMUMACHINE)/ldvp931.o      \
206   $(EMUMACHINE)/m6m80011ap.o   \
206207   $(EMUMACHINE)/matsucd.o      \
207208   $(EMUMACHINE)/mb14241.o      \
208209   $(EMUMACHINE)/mb3773.o      \
trunk/src/emu/machine/m6m80011ap.c
r0r17493
1/***************************************************************************
2
3Template for skeleton device
4
5***************************************************************************/
6
7#include "emu.h"
8#include "machine/m6m80011ap.h"
9
10
11
12//**************************************************************************
13//  GLOBAL VARIABLES
14//**************************************************************************
15
16// device type definition
17const device_type M6M80011AP = &device_creator<m6m80011ap_device>;
18
19
20//**************************************************************************
21//  LIVE DEVICE
22//**************************************************************************
23
24//-------------------------------------------------
25//  m6m80011ap_device - constructor
26//-------------------------------------------------
27
28m6m80011ap_device::m6m80011ap_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
29   : device_t(mconfig, M6M80011AP, "m6m80011ap", tag, owner, clock)
30{
31
32}
33
34
35//-------------------------------------------------
36//  device_validity_check - perform validity checks
37//  on this device
38//-------------------------------------------------
39
40void m6m80011ap_device::device_validity_check(validity_checker &valid) const
41{
42}
43
44
45//-------------------------------------------------
46//  device_start - device-specific startup
47//-------------------------------------------------
48
49void m6m80011ap_device::device_start()
50{
51
52}
53
54
55//-------------------------------------------------
56//  device_reset - device-specific reset
57//-------------------------------------------------
58
59void m6m80011ap_device::device_reset()
60{
61}
62
63
64//**************************************************************************
65//  READ/WRITE HANDLERS
66//**************************************************************************
67
68
69READ_LINE_MEMBER( m6m80011ap_device::read_bit )
70{
71   return 0;
72}
73
74READ_LINE_MEMBER( m6m80011ap_device::ready_line )
75{
76   return 1; // TODO
77}
78
79WRITE_LINE_MEMBER( m6m80011ap_device::set_cs_line )
80{
81
82}
83
84WRITE_LINE_MEMBER( m6m80011ap_device::set_clock_line )
85{
86
87}
88
89WRITE_LINE_MEMBER( m6m80011ap_device::write_bit )
90{
91
92}
trunk/src/emu/machine/m6m80011ap.h
r0r17493
1/***************************************************************************
2
3Template for skeleton device
4
5***************************************************************************/
6
7#pragma once
8
9#ifndef __M6M80011APDEV_H__
10#define __M6M80011APDEV_H__
11
12
13
14//**************************************************************************
15//  INTERFACE CONFIGURATION MACROS
16//**************************************************************************
17
18/* TODO: frequency */
19#define MCFG_M6M80011AP_ADD(_tag) \
20   MCFG_DEVICE_ADD(_tag, M6M80011AP, XTAL_32_768kHz) \
21
22
23//**************************************************************************
24//  TYPE DEFINITIONS
25//**************************************************************************
26
27// ======================> m6m80011ap_device
28
29class m6m80011ap_device :   public device_t
30{
31public:
32   // construction/destruction
33   m6m80011ap_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
34
35   // I/O operations
36   READ_LINE_MEMBER( read_bit );
37   READ_LINE_MEMBER( ready_line );
38   WRITE_LINE_MEMBER( set_cs_line );
39   WRITE_LINE_MEMBER( set_clock_line );
40   WRITE_LINE_MEMBER( write_bit );
41
42protected:
43   // device-level overrides
44   virtual void device_validity_check(validity_checker &valid) const;
45   virtual void device_start();
46   virtual void device_reset();
47
48};
49
50
51// device type definition
52extern const device_type M6M80011AP;
53
54
55
56//**************************************************************************
57//  GLOBAL VARIABLES
58//**************************************************************************
59
60
61
62#endif

Previous 199869 Revisions Next


© 1997-2024 The MAME Team