trunk/src/mame/machine/scramble.c
| r20979 | r20980 | |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | |
| 76 | | static READ8_HANDLER( mariner_protection_1_r ) |
| 76 | READ8_MEMBER(scramble_state::mariner_protection_1_r ) |
| 77 | 77 | { |
| 78 | 78 | return 7; |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | | static READ8_HANDLER( mariner_protection_2_r ) |
| 81 | READ8_MEMBER(scramble_state::mariner_protection_2_r ) |
| 82 | 82 | { |
| 83 | 83 | return 3; |
| 84 | 84 | } |
| 85 | 85 | |
| 86 | 86 | |
| 87 | | READ8_HANDLER( triplep_pip_r ) |
| 87 | READ8_MEMBER(scramble_state::triplep_pip_r ) |
| 88 | 88 | { |
| 89 | 89 | logerror("PC %04x: triplep read port 2\n",space.device().safe_pc()); |
| 90 | 90 | if (space.device().safe_pc() == 0x015a) return 0xff; |
| r20979 | r20980 | |
| 92 | 92 | else return 0; |
| 93 | 93 | } |
| 94 | 94 | |
| 95 | | READ8_HANDLER( triplep_pap_r ) |
| 95 | READ8_MEMBER(scramble_state::triplep_pap_r ) |
| 96 | 96 | { |
| 97 | 97 | logerror("PC %04x: triplep read port 3\n",space.device().safe_pc()); |
| 98 | 98 | if (space.device().safe_pc() == 0x015d) return 0x04; |
| r20979 | r20980 | |
| 111 | 111 | membank("bank1")->set_entry(m_cavelon_bank); |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | | static READ8_HANDLER( cavelon_banksw_r ) |
| 114 | READ8_MEMBER(scramble_state::cavelon_banksw_r ) |
| 115 | 115 | { |
| 116 | | scramble_state *state = space.machine().driver_data<scramble_state>(); |
| 117 | | state->cavelon_banksw(); |
| 116 | cavelon_banksw(); |
| 118 | 117 | |
| 119 | 118 | if ((offset >= 0x0100) && (offset <= 0x0103)) |
| 120 | | return state->m_ppi8255_0->read(space, offset - 0x0100); |
| 119 | return m_ppi8255_0->read(space, offset - 0x0100); |
| 121 | 120 | else if ((offset >= 0x0200) && (offset <= 0x0203)) |
| 122 | | return state->m_ppi8255_1->read(space, offset - 0x0200); |
| 121 | return m_ppi8255_1->read(space, offset - 0x0200); |
| 123 | 122 | |
| 124 | 123 | return 0xff; |
| 125 | 124 | } |
| 126 | 125 | |
| 127 | | static WRITE8_HANDLER( cavelon_banksw_w ) |
| 126 | WRITE8_MEMBER(scramble_state::cavelon_banksw_w ) |
| 128 | 127 | { |
| 129 | | scramble_state *state = space.machine().driver_data<scramble_state>(); |
| 130 | | state->cavelon_banksw(); |
| 128 | cavelon_banksw(); |
| 131 | 129 | |
| 132 | 130 | if ((offset >= 0x0100) && (offset <= 0x0103)) |
| 133 | | state->m_ppi8255_0->write(space, offset - 0x0100, data); |
| 131 | m_ppi8255_0->write(space, offset - 0x0100, data); |
| 134 | 132 | else if ((offset >= 0x0200) && (offset <= 0x0203)) |
| 135 | | state->m_ppi8255_1->write(space, offset - 0x0200, data); |
| 133 | m_ppi8255_1->write(space, offset - 0x0200, data); |
| 136 | 134 | } |
| 137 | 135 | |
| 138 | 136 | |
| 139 | | READ8_HANDLER( hunchbks_mirror_r ) |
| 137 | READ8_MEMBER(scramble_state::hunchbks_mirror_r ) |
| 140 | 138 | { |
| 141 | 139 | return space.read_byte(0x1000+offset); |
| 142 | 140 | } |
| 143 | 141 | |
| 144 | | WRITE8_HANDLER( hunchbks_mirror_w ) |
| 142 | WRITE8_MEMBER(scramble_state::hunchbks_mirror_w ) |
| 145 | 143 | { |
| 146 | 144 | space.write_byte(0x1000+offset,data); |
| 147 | 145 | } |
| r20979 | r20980 | |
| 160 | 158 | #ifdef UNUSED_FUNCTION |
| 161 | 159 | DRIVER_INIT_MEMBER(scramble_state,atlantis) |
| 162 | 160 | { |
| 163 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_legacy_write_handler(0x6803, 0x6803, FUNC(scrambold_background_enable_w)); |
| 161 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x6803, 0x6803, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this)); |
| 164 | 162 | } |
| 165 | 163 | |
| 166 | 164 | DRIVER_INIT_MEMBER(scramble_state,scramble) |
| r20979 | r20980 | |
| 192 | 190 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_write(0x5800, 0x67ff); |
| 193 | 191 | machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + 0x5800); |
| 194 | 192 | |
| 195 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_legacy_read_handler(0x9008, 0x9008, FUNC(mariner_protection_2_r)); |
| 196 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_legacy_read_handler(0xb401, 0xb401, FUNC(mariner_protection_1_r)); |
| 193 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x9008, 0x9008, read8_delegate(FUNC(scramble_state::mariner_protection_2_r),this)); |
| 194 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0xb401, 0xb401, read8_delegate(FUNC(scramble_state::mariner_protection_1_r),this)); |
| 197 | 195 | |
| 198 | 196 | /* ??? (it's NOT a background enable) */ |
| 199 | 197 | /*machine().device("maincpu")->memory().space(AS_PROGRAM).nop_write(0x6803, 0x6803);*/ |
| r20979 | r20980 | |
| 279 | 277 | cavelon_banksw(); |
| 280 | 278 | |
| 281 | 279 | /* A15 switches memory banks */ |
| 282 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_legacy_readwrite_handler(0x8000, 0xffff, FUNC(cavelon_banksw_r), FUNC(cavelon_banksw_w)); |
| 280 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xffff, read8_delegate(FUNC(scramble_state::cavelon_banksw_r),this), write8_delegate(FUNC(scramble_state::cavelon_banksw_w),this)); |
| 283 | 281 | |
| 284 | 282 | machine().device("maincpu")->memory().space(AS_PROGRAM).nop_write(0x2000, 0x2000); /* ??? */ |
| 285 | 283 | machine().device("maincpu")->memory().space(AS_PROGRAM).nop_write(0x3800, 0x3801); /* looks suspicously like |
trunk/src/mame/includes/scramble.h
| r20979 | r20980 | |
| 75 | 75 | DECLARE_WRITE_LINE_MEMBER(scramble_sh_7474_q_callback); |
| 76 | 76 | void cavelon_banksw(); |
| 77 | 77 | inline int bit(int i,int n); |
| 78 | DECLARE_READ8_MEMBER( mariner_protection_1_r ); |
| 79 | DECLARE_READ8_MEMBER( mariner_protection_2_r ); |
| 80 | DECLARE_READ8_MEMBER( triplep_pip_r ); |
| 81 | DECLARE_READ8_MEMBER( triplep_pap_r ); |
| 82 | DECLARE_READ8_MEMBER( cavelon_banksw_r ); |
| 83 | DECLARE_WRITE8_MEMBER( cavelon_banksw_w ); |
| 84 | DECLARE_READ8_MEMBER( hunchbks_mirror_r ); |
| 85 | DECLARE_WRITE8_MEMBER( hunchbks_mirror_w ); |
| 78 | 86 | }; |
| 79 | 87 | |
| 80 | 88 | |
| r20979 | r20980 | |
| 84 | 92 | extern const i8255_interface(scramble_ppi_1_intf); |
| 85 | 93 | extern const i8255_interface(stratgyx_ppi_1_intf); |
| 86 | 94 | |
| 87 | | DECLARE_READ8_HANDLER( triplep_pip_r ); |
| 88 | | DECLARE_READ8_HANDLER( triplep_pap_r ); |
| 89 | | |
| 90 | | DECLARE_READ8_HANDLER( hunchbks_mirror_r ); |
| 91 | | DECLARE_WRITE8_HANDLER( hunchbks_mirror_w ); |
| 92 | | |
| 93 | | |
| 94 | | |
| 95 | 95 | /*----------- defined in audio/scramble.c -----------*/ |
| 96 | 96 | |
| 97 | 97 | void scramble_sh_init(running_machine &machine); |
trunk/src/mame/drivers/scramble.c
| r20979 | r20980 | |
| 262 | 262 | AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram") |
| 263 | 263 | AM_RANGE(0x1c00, 0x1fff) AM_RAM |
| 264 | 264 | AM_RANGE(0x2000, 0x2fff) AM_ROM |
| 265 | | AM_RANGE(0x3000, 0x3fff) AM_READWRITE_LEGACY(hunchbks_mirror_r, hunchbks_mirror_w) |
| 265 | AM_RANGE(0x3000, 0x3fff) AM_READWRITE(hunchbks_mirror_r, hunchbks_mirror_w) |
| 266 | 266 | AM_RANGE(0x4000, 0x4fff) AM_ROM |
| 267 | | AM_RANGE(0x5000, 0x5fff) AM_READWRITE_LEGACY(hunchbks_mirror_r, hunchbks_mirror_w) |
| 267 | AM_RANGE(0x5000, 0x5fff) AM_READWRITE(hunchbks_mirror_r, hunchbks_mirror_w) |
| 268 | 268 | AM_RANGE(0x6000, 0x6fff) AM_ROM |
| 269 | | AM_RANGE(0x7000, 0x7fff) AM_READWRITE_LEGACY(hunchbks_mirror_r, hunchbks_mirror_w) |
| 269 | AM_RANGE(0x7000, 0x7fff) AM_READWRITE(hunchbks_mirror_r, hunchbks_mirror_w) |
| 270 | 270 | ADDRESS_MAP_END |
| 271 | 271 | |
| 272 | 272 | |
| r20979 | r20980 | |
| 342 | 342 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 343 | 343 | AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("8910.1", ay8910_data_address_w) |
| 344 | 344 | AM_RANGE(0x01, 0x01) AM_DEVREAD_LEGACY("8910.1", ay8910_r) |
| 345 | | AM_RANGE(0x02, 0x02) AM_READ_LEGACY(triplep_pip_r) |
| 346 | | AM_RANGE(0x03, 0x03) AM_READ_LEGACY(triplep_pap_r) |
| 345 | AM_RANGE(0x02, 0x02) AM_READ(triplep_pip_r) |
| 346 | AM_RANGE(0x03, 0x03) AM_READ(triplep_pap_r) |
| 347 | 347 | ADDRESS_MAP_END |
| 348 | 348 | |
| 349 | 349 | static ADDRESS_MAP_START( hotshock_sound_io_map, AS_IO, 8, scramble_state ) |