~ubuntu-branches/debian/sid/mame/sid

« back to all changes in this revision

Viewing changes to src/mame/drivers/sengokmj.c

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Emmanuel Kasper, Jordi Mallach
  • Date: 2012-06-05 20:02:23 UTC
  • mfrom: (0.3.1) (0.1.4)
  • Revision ID: package-import@ubuntu.com-20120605200223-gnlpogjrg6oqe9md
Tags: 0.146-1
[ Emmanuel Kasper ]
* New upstream release
* Drop patch to fix man pages section and patches to link with flac 
  and jpeg system lib: all this has been pushed upstream by Cesare Falco
* Add DM-Upload-Allowed: yes field.

[ Jordi Mallach ]
* Create a "gnu" TARGETOS stanza that defines NO_AFFINITY_NP.
* Stop setting TARGETOS to "unix" in d/rules. It should be autodetected,
  and set to the appropriate value.
* mame_manpage_section.patch: Change mame's manpage section to 6 (games),
  in the TH declaration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
67
67
 
68
68
        UINT16 m_sengokumj_mux_data;
69
69
        UINT8 m_hopper_io;
 
70
        DECLARE_READ16_MEMBER(mahjong_panel_r);
 
71
        DECLARE_WRITE16_MEMBER(mahjong_panel_w);
 
72
        DECLARE_WRITE16_MEMBER(sengokmj_out_w);
 
73
        DECLARE_READ16_MEMBER(sengokmj_system_r);
70
74
};
71
75
 
72
76
 
73
77
 
74
78
/* Multiplexer device for the mahjong panel */
75
 
static READ16_HANDLER( mahjong_panel_r )
 
79
READ16_MEMBER(sengokmj_state::mahjong_panel_r)
76
80
{
77
 
        sengokmj_state *state = space->machine().driver_data<sengokmj_state>();
78
 
        switch(state->m_sengokumj_mux_data)
 
81
        switch(m_sengokumj_mux_data)
79
82
        {
80
 
                case 0x0100: return input_port_read(space->machine(), "KEY0");
81
 
                case 0x0200: return input_port_read(space->machine(), "KEY1");
82
 
                case 0x0400: return input_port_read(space->machine(), "KEY2");
83
 
                case 0x0800: return input_port_read(space->machine(), "KEY3");
84
 
                case 0x1000: return input_port_read(space->machine(), "KEY4");
85
 
                case 0x2000: return input_port_read(space->machine(), "UNUSED");
 
83
                case 0x0100: return ioport("KEY0")->read();
 
84
                case 0x0200: return ioport("KEY1")->read();
 
85
                case 0x0400: return ioport("KEY2")->read();
 
86
                case 0x0800: return ioport("KEY3")->read();
 
87
                case 0x1000: return ioport("KEY4")->read();
 
88
                case 0x2000: return ioport("UNUSED")->read();
86
89
        }
87
90
 
88
91
        return 0xffff;
89
92
}
90
93
 
91
 
static WRITE16_HANDLER( mahjong_panel_w )
 
94
WRITE16_MEMBER(sengokmj_state::mahjong_panel_w)
92
95
{
93
 
        sengokmj_state *state = space->machine().driver_data<sengokmj_state>();
94
 
        state->m_sengokumj_mux_data = data;
 
96
        m_sengokumj_mux_data = data;
95
97
}
96
98
 
97
 
static WRITE16_HANDLER( sengokmj_out_w )
 
99
WRITE16_MEMBER(sengokmj_state::sengokmj_out_w)
98
100
{
99
 
        sengokmj_state *state = space->machine().driver_data<sengokmj_state>();
100
101
        /* ---- ---- ---x ---- J.P. Signal (?)*/
101
102
        /* ---- ---- ---- -x-- Coin counter (done AFTER that you press start)*/
102
103
        /* ---- ---- ---- --x- Cash enable (lockout)*/
103
104
        /* ---- ---- ---- ---x Hopper 10 */
104
 
        coin_lockout_w(space->machine(), 0,~data & 2);
105
 
        coin_lockout_w(space->machine(), 1,~data & 2);
106
 
        coin_counter_w(space->machine(), 0,data & 4);
107
 
        state->m_hopper_io = ((data & 1)<<6);
108
 
//  popmessage("%02x",state->m_hopper_io);
 
105
        coin_lockout_w(machine(), 0,~data & 2);
 
106
        coin_lockout_w(machine(), 1,~data & 2);
 
107
        coin_counter_w(machine(), 0,data & 4);
 
108
        m_hopper_io = ((data & 1)<<6);
 
109
//  popmessage("%02x",m_hopper_io);
109
110
}
110
111
 
111
 
static READ16_HANDLER( sengokmj_system_r )
 
112
READ16_MEMBER(sengokmj_state::sengokmj_system_r)
112
113
{
113
 
        sengokmj_state *state = space->machine().driver_data<sengokmj_state>();
114
 
        return (input_port_read(space->machine(), "SYSTEM") & 0xffbf) | state->m_hopper_io;
 
114
        return (ioport("SYSTEM")->read() & 0xffbf) | m_hopper_io;
115
115
}
116
116
 
117
 
static ADDRESS_MAP_START( sengokmj_map, AS_PROGRAM, 16 )
 
117
static ADDRESS_MAP_START( sengokmj_map, AS_PROGRAM, 16, sengokmj_state )
118
118
        AM_RANGE(0x00000, 0x07fff) AM_RAM
119
119
        AM_RANGE(0x08000, 0x09fff) AM_RAM AM_SHARE("nvram")
120
 
        AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(seibucrtc_sc0vram_w) AM_BASE(&seibucrtc_sc0vram)
121
 
        AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(seibucrtc_sc1vram_w) AM_BASE(&seibucrtc_sc1vram)
122
 
        AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(seibucrtc_sc2vram_w) AM_BASE(&seibucrtc_sc2vram)
123
 
        AM_RANGE(0x0d800, 0x0e7ff) AM_RAM_WRITE(seibucrtc_sc3vram_w) AM_BASE(&seibucrtc_sc3vram)
124
 
        AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
 
120
        AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE_LEGACY(seibucrtc_sc0vram_w) AM_BASE_LEGACY(&seibucrtc_sc0vram)
 
121
        AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE_LEGACY(seibucrtc_sc1vram_w) AM_BASE_LEGACY(&seibucrtc_sc1vram)
 
122
        AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE_LEGACY(seibucrtc_sc2vram_w) AM_BASE_LEGACY(&seibucrtc_sc2vram)
 
123
        AM_RANGE(0x0d800, 0x0e7ff) AM_RAM_WRITE_LEGACY(seibucrtc_sc3vram_w) AM_BASE_LEGACY(&seibucrtc_sc3vram)
 
124
        AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
125
125
        AM_RANGE(0x0f800, 0x0ffff) AM_RAM AM_SHARE("spriteram")
126
126
        AM_RANGE(0xc0000, 0xfffff) AM_ROM
127
127
ADDRESS_MAP_END
128
128
 
129
 
static ADDRESS_MAP_START( sengokmj_io_map, AS_IO, 16 )
130
 
        AM_RANGE(0x4000, 0x400f) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
 
129
static ADDRESS_MAP_START( sengokmj_io_map, AS_IO, 16, sengokmj_state )
 
130
        AM_RANGE(0x4000, 0x400f) AM_READWRITE_LEGACY(seibu_main_word_r, seibu_main_word_w)
131
131
        /*Areas from 8000-804f are for the custom Seibu CRTC.*/
132
 
        AM_RANGE(0x8000, 0x804f) AM_RAM_WRITE(seibucrtc_vregs_w) AM_BASE(&seibucrtc_vregs)
 
132
        AM_RANGE(0x8000, 0x804f) AM_RAM_WRITE_LEGACY(seibucrtc_vregs_w) AM_BASE_LEGACY(&seibucrtc_vregs)
133
133
 
134
134
//  AM_RANGE(0x8080, 0x8081) CRTC extra register?
135
135
//  AM_RANGE(0x80c0, 0x80c1) CRTC extra register?