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

« back to all changes in this revision

Viewing changes to src/mame/drivers/exzisus.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:
46
46
 
47
47
***************************************************************************/
48
48
 
49
 
static WRITE8_HANDLER( exzisus_cpua_bankswitch_w )
50
 
{
51
 
        exzisus_state *state = space->machine().driver_data<exzisus_state>();
52
 
        UINT8 *RAM = space->machine().region("cpua")->base();
53
 
 
54
 
        if ( (data & 0x0f) != state->m_cpua_bank )
55
 
        {
56
 
                state->m_cpua_bank = data & 0x0f;
57
 
                if (state->m_cpua_bank >= 2)
58
 
                {
59
 
                        memory_set_bankptr(space->machine(),  "bank2", &RAM[ 0x10000 + ( (state->m_cpua_bank - 2) * 0x4000 ) ] );
60
 
                }
61
 
        }
62
 
 
63
 
        flip_screen_set(space->machine(), data & 0x40);
64
 
}
65
 
 
66
 
static WRITE8_HANDLER( exzisus_cpub_bankswitch_w )
67
 
{
68
 
        exzisus_state *state = space->machine().driver_data<exzisus_state>();
69
 
        UINT8 *RAM = space->machine().region("cpub")->base();
70
 
 
71
 
        if ( (data & 0x0f) != state->m_cpub_bank )
72
 
        {
73
 
                state->m_cpub_bank = data & 0x0f;
74
 
                if (state->m_cpub_bank >= 2)
75
 
                {
76
 
                        memory_set_bankptr(space->machine(),  "bank1", &RAM[ 0x10000 + ( (state->m_cpub_bank - 2) * 0x4000 ) ] );
77
 
                }
78
 
        }
79
 
 
80
 
        flip_screen_set(space->machine(), data & 0x40);
81
 
}
82
 
 
83
 
static WRITE8_HANDLER( exzisus_coincounter_w )
84
 
{
85
 
        coin_lockout_w(space->machine(), 0,~data & 0x01);
86
 
        coin_lockout_w(space->machine(), 1,~data & 0x02);
87
 
        coin_counter_w(space->machine(), 0,data & 0x04);
88
 
        coin_counter_w(space->machine(), 1,data & 0x08);
89
 
}
90
 
 
91
 
static READ8_HANDLER( exzisus_sharedram_ab_r )
92
 
{
93
 
        exzisus_state *state = space->machine().driver_data<exzisus_state>();
94
 
        return state->m_sharedram_ab[offset];
95
 
}
96
 
 
97
 
static READ8_HANDLER( exzisus_sharedram_ac_r )
98
 
{
99
 
        exzisus_state *state = space->machine().driver_data<exzisus_state>();
100
 
        return state->m_sharedram_ac[offset];
101
 
}
102
 
 
103
 
static WRITE8_HANDLER( exzisus_sharedram_ab_w )
104
 
{
105
 
        exzisus_state *state = space->machine().driver_data<exzisus_state>();
106
 
        state->m_sharedram_ab[offset] = data;
107
 
}
108
 
 
109
 
static WRITE8_HANDLER( exzisus_sharedram_ac_w )
110
 
{
111
 
        exzisus_state *state = space->machine().driver_data<exzisus_state>();
112
 
        state->m_sharedram_ac[offset] = data;
 
49
WRITE8_MEMBER(exzisus_state::exzisus_cpua_bankswitch_w)
 
50
{
 
51
        UINT8 *RAM = memregion("cpua")->base();
 
52
 
 
53
        if ( (data & 0x0f) != m_cpua_bank )
 
54
        {
 
55
                m_cpua_bank = data & 0x0f;
 
56
                if (m_cpua_bank >= 2)
 
57
                {
 
58
                        membank("bank2")->set_base(&RAM[ 0x10000 + ( (m_cpua_bank - 2) * 0x4000 ) ] );
 
59
                }
 
60
        }
 
61
 
 
62
        flip_screen_set(data & 0x40);
 
63
}
 
64
 
 
65
WRITE8_MEMBER(exzisus_state::exzisus_cpub_bankswitch_w)
 
66
{
 
67
        UINT8 *RAM = memregion("cpub")->base();
 
68
 
 
69
        if ( (data & 0x0f) != m_cpub_bank )
 
70
        {
 
71
                m_cpub_bank = data & 0x0f;
 
72
                if (m_cpub_bank >= 2)
 
73
                {
 
74
                        membank("bank1")->set_base(&RAM[ 0x10000 + ( (m_cpub_bank - 2) * 0x4000 ) ] );
 
75
                }
 
76
        }
 
77
 
 
78
        flip_screen_set(data & 0x40);
 
79
}
 
80
 
 
81
WRITE8_MEMBER(exzisus_state::exzisus_coincounter_w)
 
82
{
 
83
        coin_lockout_w(machine(), 0,~data & 0x01);
 
84
        coin_lockout_w(machine(), 1,~data & 0x02);
 
85
        coin_counter_w(machine(), 0,data & 0x04);
 
86
        coin_counter_w(machine(), 1,data & 0x08);
 
87
}
 
88
 
 
89
READ8_MEMBER(exzisus_state::exzisus_sharedram_ab_r)
 
90
{
 
91
        return m_sharedram_ab[offset];
 
92
}
 
93
 
 
94
READ8_MEMBER(exzisus_state::exzisus_sharedram_ac_r)
 
95
{
 
96
        return m_sharedram_ac[offset];
 
97
}
 
98
 
 
99
WRITE8_MEMBER(exzisus_state::exzisus_sharedram_ab_w)
 
100
{
 
101
        m_sharedram_ab[offset] = data;
 
102
}
 
103
 
 
104
WRITE8_MEMBER(exzisus_state::exzisus_sharedram_ac_w)
 
105
{
 
106
        m_sharedram_ac[offset] = data;
113
107
}
114
108
 
115
109
// is it ok that cpub_reset refers to cpuc?
116
 
static WRITE8_HANDLER( exzisus_cpub_reset_w )
 
110
WRITE8_MEMBER(exzisus_state::exzisus_cpub_reset_w)
117
111
{
118
 
        cputag_set_input_line(space->machine(), "cpuc", INPUT_LINE_RESET, PULSE_LINE);
 
112
        cputag_set_input_line(machine(), "cpuc", INPUT_LINE_RESET, PULSE_LINE);
119
113
}
120
114
 
121
115
#if 0
123
117
// the RAM check to work
124
118
static DRIVER_INIT( exzisus )
125
119
{
126
 
        UINT8 *RAM = machine.region("cpua")->base();
 
120
        UINT8 *RAM = machine.root_device().memregion("cpua")->base();
127
121
 
128
122
        /* Fix WORK RAM error */
129
123
        RAM[0x67fd] = 0x18;
140
134
 
141
135
**************************************************************************/
142
136
 
143
 
static ADDRESS_MAP_START( cpua_map, AS_PROGRAM, 8 )
 
137
static ADDRESS_MAP_START( cpua_map, AS_PROGRAM, 8, exzisus_state )
144
138
        AM_RANGE(0x0000, 0x7fff) AM_ROM
145
139
        AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
146
 
        AM_RANGE(0xc000, 0xc5ff) AM_READWRITE(exzisus_objectram_1_r, exzisus_objectram_1_w) AM_BASE_MEMBER(exzisus_state, m_objectram1) AM_SIZE_MEMBER(exzisus_state, m_objectram_size1)
147
 
        AM_RANGE(0xc600, 0xdfff) AM_READWRITE(exzisus_videoram_1_r, exzisus_videoram_1_w) AM_BASE_MEMBER(exzisus_state, m_videoram1)
148
 
        AM_RANGE(0xe000, 0xefff) AM_READWRITE(exzisus_sharedram_ac_r, exzisus_sharedram_ac_w) AM_BASE_MEMBER(exzisus_state, m_sharedram_ac)
 
140
        AM_RANGE(0xc000, 0xc5ff) AM_READWRITE(exzisus_objectram_1_r, exzisus_objectram_1_w) AM_SHARE("objectram1")
 
141
        AM_RANGE(0xc600, 0xdfff) AM_READWRITE(exzisus_videoram_1_r, exzisus_videoram_1_w) AM_SHARE("videoram1")
 
142
        AM_RANGE(0xe000, 0xefff) AM_READWRITE(exzisus_sharedram_ac_r, exzisus_sharedram_ac_w) AM_SHARE("sharedram_ac")
149
143
        AM_RANGE(0xf400, 0xf400) AM_WRITE(exzisus_cpua_bankswitch_w)
150
144
        AM_RANGE(0xf404, 0xf404) AM_WRITE(exzisus_cpub_reset_w) // ??
151
 
        AM_RANGE(0xf800, 0xffff) AM_READWRITE(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w) AM_BASE_MEMBER(exzisus_state, m_sharedram_ab)
 
145
        AM_RANGE(0xf800, 0xffff) AM_READWRITE(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w) AM_SHARE("sharedram_ab")
152
146
ADDRESS_MAP_END
153
147
 
154
 
static ADDRESS_MAP_START( cpub_map, AS_PROGRAM, 8 )
 
148
static ADDRESS_MAP_START( cpub_map, AS_PROGRAM, 8, exzisus_state )
155
149
        AM_RANGE(0x0000, 0x7fff) AM_ROM
156
150
        AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
157
 
        AM_RANGE(0xc000, 0xc5ff) AM_READWRITE(exzisus_objectram_0_r, exzisus_objectram_0_w) AM_BASE_MEMBER(exzisus_state, m_objectram0) AM_SIZE_MEMBER(exzisus_state, m_objectram_size0)
158
 
        AM_RANGE(0xc600, 0xdfff) AM_READWRITE(exzisus_videoram_0_r, exzisus_videoram_0_w) AM_BASE_MEMBER(exzisus_state, m_videoram0)
 
151
        AM_RANGE(0xc000, 0xc5ff) AM_READWRITE(exzisus_objectram_0_r, exzisus_objectram_0_w) AM_SHARE("objectram0")
 
152
        AM_RANGE(0xc600, 0xdfff) AM_READWRITE(exzisus_videoram_0_r, exzisus_videoram_0_w) AM_SHARE("videoram0")
159
153
        AM_RANGE(0xe000, 0xefff) AM_RAM
160
 
        AM_RANGE(0xf000, 0xf000) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_port_w)
161
 
        AM_RANGE(0xf001, 0xf001) AM_DEVREADWRITE("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w)
 
154
        AM_RANGE(0xf000, 0xf000) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_port_w)
 
155
        AM_RANGE(0xf001, 0xf001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w)
162
156
        AM_RANGE(0xf400, 0xf400) AM_READ_PORT("P1")
163
157
        AM_RANGE(0xf400, 0xf400) AM_WRITE(exzisus_cpub_bankswitch_w)
164
158
        AM_RANGE(0xf401, 0xf401) AM_READ_PORT("P2")
170
164
        AM_RANGE(0xf800, 0xffff) AM_READWRITE(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w)
171
165
ADDRESS_MAP_END
172
166
 
173
 
static ADDRESS_MAP_START( cpuc_map, AS_PROGRAM, 8 )
 
167
static ADDRESS_MAP_START( cpuc_map, AS_PROGRAM, 8, exzisus_state )
174
168
        AM_RANGE(0x0000, 0x7fff) AM_ROM
175
169
        AM_RANGE(0x8000, 0x85ff) AM_READWRITE(exzisus_objectram_1_r, exzisus_objectram_1_w)
176
170
        AM_RANGE(0x8600, 0x9fff) AM_READWRITE(exzisus_videoram_1_r, exzisus_videoram_1_w)
178
172
        AM_RANGE(0xb000, 0xbfff) AM_RAM
179
173
ADDRESS_MAP_END
180
174
 
181
 
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
 
175
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, exzisus_state )
182
176
        AM_RANGE(0x0000, 0x7fff) AM_ROM
183
177
        AM_RANGE(0x8000, 0x8fff) AM_RAM
184
 
        AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
185
 
        AM_RANGE(0xa000, 0xa000) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_slave_port_w)
186
 
        AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
 
178
        AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
 
179
        AM_RANGE(0xa000, 0xa000) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
 
180
        AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
187
181
ADDRESS_MAP_END
188
182
 
189
183
 
265
259
 
266
260
static const ym2151_interface ym2151_config =
267
261
{
268
 
        irqhandler
 
262
        DEVCB_LINE(irqhandler)
269
263
};
270
264
 
271
265