trunk/src/mame/drivers/homerun.c
| r17736 | r17737 | |
| 51 | 51 | #include "includes/homerun.h" |
| 52 | 52 | |
| 53 | 53 | |
| 54 | /*************************************************************************** |
| 54 | 55 | |
| 56 | I/O / Memory |
| 55 | 57 | |
| 56 | | static I8255A_INTERFACE( ppi8255_intf ) |
| 57 | | { |
| 58 | | // all ports are outputs |
| 59 | | DEVCB_NULL, /* Port A read */ |
| 60 | | DEVCB_DRIVER_MEMBER(homerun_state, homerun_scrollhi_w), /* Port A write */ |
| 61 | | DEVCB_NULL, /* Port B read */ |
| 62 | | DEVCB_DRIVER_MEMBER(homerun_state, homerun_scrolly_w), /* Port B write */ |
| 63 | | DEVCB_NULL, /* Port C read */ |
| 64 | | DEVCB_DRIVER_MEMBER(homerun_state, homerun_scrollx_w) /* Port C write */ |
| 65 | | }; |
| 58 | ***************************************************************************/ |
| 66 | 59 | |
| 67 | | |
| 68 | 60 | static ADDRESS_MAP_START( homerun_memmap, AS_PROGRAM, 8, homerun_state ) |
| 69 | 61 | AM_RANGE(0x0000, 0x3fff) AM_ROM |
| 70 | 62 | AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") |
| r17736 | r17737 | |
| 74 | 66 | AM_RANGE(0xc000, 0xdfff) AM_RAM |
| 75 | 67 | ADDRESS_MAP_END |
| 76 | 68 | |
| 69 | static ADDRESS_MAP_START( homerun_iomap, AS_IO, 8, homerun_state ) |
| 70 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 71 | AM_RANGE(0x10, 0x10) AM_WRITENOP // D7756C sample number |
| 72 | AM_RANGE(0x20, 0x20) AM_WRITENOP // D7756C control |
| 73 | AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) |
| 74 | AM_RANGE(0x40, 0x40) AM_READ_PORT("IN0") |
| 75 | AM_RANGE(0x50, 0x50) AM_READ_PORT("IN2") |
| 76 | AM_RANGE(0x60, 0x60) AM_READ_PORT("IN1") |
| 77 | AM_RANGE(0x70, 0x71) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) |
| 78 | ADDRESS_MAP_END |
| 79 | |
| 80 | |
| 77 | 81 | CUSTOM_INPUT_MEMBER(homerun_state::homerun_40_r) |
| 78 | 82 | { |
| 79 | 83 | UINT8 ret = (machine().primary_screen->vpos() > 116) ? 1 : 0; |
| r17736 | r17737 | |
| 88 | 92 | } |
| 89 | 93 | |
| 90 | 94 | |
| 91 | | static ADDRESS_MAP_START( homerun_iomap, AS_IO, 8, homerun_state ) |
| 92 | | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 93 | | AM_RANGE(0x10, 0x10) AM_WRITENOP // D7756C sample number |
| 94 | | AM_RANGE(0x20, 0x20) AM_WRITENOP // D7756C control |
| 95 | | AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) |
| 96 | | AM_RANGE(0x40, 0x40) AM_READ_PORT("IN0") |
| 97 | | AM_RANGE(0x50, 0x50) AM_READ_PORT("IN2") |
| 98 | | AM_RANGE(0x60, 0x60) AM_READ_PORT("IN1") |
| 99 | | AM_RANGE(0x70, 0x71) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) |
| 100 | | ADDRESS_MAP_END |
| 95 | /*************************************************************************** |
| 101 | 96 | |
| 102 | | static const ym2203_interface ym2203_config = |
| 103 | | { |
| 104 | | { |
| 105 | | AY8910_LEGACY_OUTPUT, |
| 106 | | AY8910_DEFAULT_LOADS, |
| 107 | | DEVCB_INPUT_PORT("DSW"), |
| 108 | | DEVCB_NULL, |
| 109 | | DEVCB_NULL, |
| 110 | | DEVCB_HANDLER(homerun_banking_w) |
| 111 | | }, |
| 112 | | DEVCB_NULL |
| 113 | | }; |
| 97 | Inputs |
| 114 | 98 | |
| 99 | ***************************************************************************/ |
| 115 | 100 | |
| 116 | 101 | static INPUT_PORTS_START( homerun ) |
| 117 | 102 | PORT_START("IN0") |
| r17736 | r17737 | |
| 220 | 205 | INPUT_PORTS_END |
| 221 | 206 | |
| 222 | 207 | |
| 208 | /*************************************************************************** |
| 209 | |
| 210 | Machine Config |
| 211 | |
| 212 | ***************************************************************************/ |
| 213 | |
| 223 | 214 | static const gfx_layout gfxlayout = |
| 224 | 215 | { |
| 225 | 216 | 8,8, |
| r17736 | r17737 | |
| 231 | 222 | 8*8*2 |
| 232 | 223 | }; |
| 233 | 224 | |
| 234 | | |
| 235 | | |
| 236 | 225 | static const gfx_layout spritelayout = |
| 237 | 226 | { |
| 238 | 227 | 16,16, |
| r17736 | r17737 | |
| 250 | 239 | GFXDECODE_END |
| 251 | 240 | |
| 252 | 241 | |
| 242 | static I8255A_INTERFACE( ppi8255_intf ) |
| 243 | { |
| 244 | // all ports are outputs |
| 245 | DEVCB_NULL, /* Port A read */ |
| 246 | DEVCB_DRIVER_MEMBER(homerun_state, homerun_scrollhi_w), /* Port A write */ |
| 247 | DEVCB_NULL, /* Port B read */ |
| 248 | DEVCB_DRIVER_MEMBER(homerun_state, homerun_scrolly_w), /* Port B write */ |
| 249 | DEVCB_NULL, /* Port C read */ |
| 250 | DEVCB_DRIVER_MEMBER(homerun_state, homerun_scrollx_w) /* Port C write */ |
| 251 | }; |
| 252 | |
| 253 | static const ym2203_interface ym2203_config = |
| 254 | { |
| 255 | { |
| 256 | AY8910_LEGACY_OUTPUT, |
| 257 | AY8910_DEFAULT_LOADS, |
| 258 | DEVCB_INPUT_PORT("DSW"), |
| 259 | DEVCB_NULL, |
| 260 | DEVCB_NULL, |
| 261 | DEVCB_HANDLER(homerun_banking_w) |
| 262 | }, |
| 263 | DEVCB_NULL |
| 264 | }; |
| 265 | |
| 266 | |
| 253 | 267 | static MACHINE_START( homerun ) |
| 254 | 268 | { |
| 255 | 269 | homerun_state *state = machine.driver_data<homerun_state>(); |