Previous 199869 Revisions Next

r29194 Wednesday 2nd April, 2014 at 17:44:14 UTC by Miodrag Milanović
removing legacy handlers in msx_slot (nw)
[src/mess/includes]msx.h
[src/mess/machine]msx_slot.c

trunk/src/mess/includes/msx.h
r29193r29194
167167   DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( msx_cart );
168168   DECLARE_WRITE_LINE_MEMBER(msx_vdp_interrupt);
169169
170   // from msx_slot
171   DECLARE_READ8_MEMBER(konami_scc_bank5);
172   DECLARE_READ8_MEMBER(msx_diskrom_page1_r);
173   DECLARE_READ8_MEMBER(msx_diskrom_page2_r);
174   DECLARE_READ8_MEMBER(msx_diskrom2_page1_r);
175   DECLARE_READ8_MEMBER(msx_diskrom2_page2_r);
176   DECLARE_READ8_MEMBER(soundcartridge_scc);
177   DECLARE_READ8_MEMBER(soundcartridge_sccp);
178
170179   required_memory_bank m_bank1;
171180   required_memory_bank m_bank2;
172181   required_memory_bank m_bank3;
trunk/src/mess/machine/msx_slot.c
r29193r29194
347347   state->m_cart.scc.active = 0;
348348}
349349
350static READ8_HANDLER (konami_scc_bank5)
350READ8_MEMBER(msx_state::konami_scc_bank5)
351351{
352   msx_state *drvstate = space.machine().driver_data<msx_state>();
353352   if (offset & 0x80)
354353   {
355354      if ((offset & 0xff) >= 0xe0)
356355      {
357         return drvstate->m_k051649->k051649_test_r(space, offset & 0xff);
356         return m_k051649->k051649_test_r(space, offset & 0xff);
358357      }
359358      return 0xff;
360359   }
361360   else
362361   {
363      return drvstate->m_k051649->k051649_waveform_r(space, offset & 0x7f);
362      return m_k051649->k051649_waveform_r(space, offset & 0x7f);
364363   }
365364}
366365
r29193r29194
381380      msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000);
382381      if (state->m_cart.scc.active ) {
383382         msx_state *drvstate = machine.driver_data<msx_state>();
384         drvstate->m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x9800, 0x9fff, FUNC(konami_scc_bank5));
383         drvstate->m_maincpu->space(AS_PROGRAM).install_read_handler(0x9800, 0x9fff, read8_delegate(FUNC(msx_state::konami_scc_bank5),drvstate));
385384      } else {
386385         msx_state *drvstate = machine.driver_data<msx_state>();
387386         drvstate->m_maincpu->space(AS_PROGRAM).install_read_bank(0x9800, 0x9fff,"bank7");
r29193r29194
12341233   drvstate->m_wd179x->reset();
12351234}
12361235
1237static READ8_HANDLER (msx_diskrom_page1_r)
1236READ8_MEMBER(msx_state::msx_diskrom_page1_r)
12381237{
1239   msx_state *state = space.machine().driver_data<msx_state>();
12401238   switch (offset)
12411239   {
1242   case 0: return state->m_wd179x->status_r (space, 0);
1243   case 1: return state->m_wd179x->track_r (space, 0);
1244   case 2: return state->m_wd179x->sector_r (space, 0);
1245   case 3: return state->m_wd179x->data_r (space, 0);
1246   case 7: return state->m_dsk_stat;
1240   case 0: return m_wd179x->status_r (space, 0);
1241   case 1: return m_wd179x->track_r (space, 0);
1242   case 2: return m_wd179x->sector_r (space, 0);
1243   case 3: return m_wd179x->data_r (space, 0);
1244   case 7: return m_dsk_stat;
12471245   default:
1248      return state->m_state[1]->m_mem[offset + 0x3ff8];
1246      return m_state[1]->m_mem[offset + 0x3ff8];
12491247   }
12501248}
12511249
1252static READ8_HANDLER (msx_diskrom_page2_r)
1250READ8_MEMBER(msx_state::msx_diskrom_page2_r)
12531251{
1254   msx_state *state = space.machine().driver_data<msx_state>();
12551252   if (offset >= 0x7f8)
12561253   {
12571254      switch (offset)
12581255      {
12591256      case 0x7f8:
1260         return state->m_wd179x->status_r (space, 0);
1257         return m_wd179x->status_r (space, 0);
12611258      case 0x7f9:
1262         return state->m_wd179x->track_r (space, 0);
1259         return m_wd179x->track_r (space, 0);
12631260      case 0x7fa:
1264         return state->m_wd179x->sector_r (space, 0);
1261         return m_wd179x->sector_r (space, 0);
12651262      case 0x7fb:
1266         return state->m_wd179x->data_r (space, 0);
1263         return m_wd179x->data_r (space, 0);
12671264      case 0x7ff:
1268         return state->m_dsk_stat;
1265         return m_dsk_stat;
12691266      default:
1270         return state->m_state[2]->m_mem[offset + 0x3800];
1267         return m_state[2]->m_mem[offset + 0x3800];
12711268      }
12721269   }
12731270   else
r29193r29194
12891286   case 1:
12901287      msx_cpu_setbank (machine, 3, state->m_mem);
12911288      msx_cpu_setbank (machine, 4, state->m_mem + 0x2000);
1292      space.install_legacy_read_handler(0x7ff8, 0x7fff, FUNC(msx_diskrom_page1_r));
1289      space.install_read_handler(0x7ff8, 0x7fff, read8_delegate(FUNC(msx_state::msx_diskrom_page1_r),drvstate));
12931290      break;
12941291   case 2:
12951292      msx_cpu_setbank (machine, 5, drvstate->m_empty);
12961293      msx_cpu_setbank (machine, 6, drvstate->m_empty);
1297      space.install_legacy_read_handler(0xb800, 0xbfff, FUNC(msx_diskrom_page2_r));
1294      space.install_read_handler(0xb800, 0xbfff, read8_delegate(FUNC(msx_state::msx_diskrom_page2_r),drvstate));
12981295      break;
12991296   case 3:
13001297      msx_cpu_setbank (machine, 7, drvstate->m_empty);
r29193r29194
13611358   drvstate->m_wd179x->reset();
13621359}
13631360
1364static READ8_HANDLER (msx_diskrom2_page1_r)
1361READ8_MEMBER(msx_state::msx_diskrom2_page1_r)
13651362{
1366   msx_state *state = space.machine().driver_data<msx_state>();
13671363   switch (offset)
13681364   {
1369   case 0: return state->m_wd179x->status_r(space, 0);
1370   case 1: return state->m_wd179x->track_r(space, 0);
1371   case 2: return state->m_wd179x->sector_r(space, 0);
1372   case 3: return state->m_wd179x->data_r(space, 0);
1373   case 4: return state->m_dsk_stat;
1365   case 0: return m_wd179x->status_r(space, 0);
1366   case 1: return m_wd179x->track_r(space, 0);
1367   case 2: return m_wd179x->sector_r(space, 0);
1368   case 3: return m_wd179x->data_r(space, 0);
1369   case 4: return m_dsk_stat;
13741370   default:
1375      return state->m_state[1]->m_mem[offset + 0x3ff8];
1371      return m_state[1]->m_mem[offset + 0x3ff8];
13761372   }
13771373}
13781374
1379static  READ8_HANDLER (msx_diskrom2_page2_r)
1375READ8_MEMBER(msx_state::msx_diskrom2_page2_r)
13801376{
1381   msx_state *state = space.machine().driver_data<msx_state>();
13821377   if (offset >= 0x7b8)
13831378   {
13841379      switch (offset)
13851380      {
13861381      case 0x7b8:
1387         return state->m_wd179x->status_r (space, 0);
1382         return m_wd179x->status_r (space, 0);
13881383      case 0x7b9:
1389         return state->m_wd179x->track_r (space, 0);
1384         return m_wd179x->track_r (space, 0);
13901385      case 0x7ba:
1391         return state->m_wd179x->sector_r (space, 0);
1386         return m_wd179x->sector_r (space, 0);
13921387      case 0x7bb:
1393         return state->m_wd179x->data_r (space, 0);
1388         return m_wd179x->data_r (space, 0);
13941389      case 0x7bc:
1395         return state->m_dsk_stat;
1390         return m_dsk_stat;
13961391      default:
1397         return state->m_state[2]->m_mem[offset + 0x3800];
1392         return m_state[2]->m_mem[offset + 0x3800];
13981393      }
13991394   }
14001395   else
r29193r29194
14161411   case 1:
14171412      msx_cpu_setbank (machine, 3, state->m_mem);
14181413      msx_cpu_setbank (machine, 4, state->m_mem + 0x2000);
1419      space.install_legacy_read_handler(0x7fb8, 0x7fbc, FUNC(msx_diskrom2_page1_r));
1414      space.install_read_handler(0x7fb8, 0x7fbc, read8_delegate(FUNC(msx_state::msx_diskrom2_page1_r),drvstate));
14201415      break;
14211416   case 2:
14221417      msx_cpu_setbank (machine, 5, drvstate->m_empty);
14231418      msx_cpu_setbank (machine, 6, drvstate->m_empty);
1424      space.install_legacy_read_handler(0xb800, 0xbfbc, FUNC(msx_diskrom2_page2_r));
1419      space.install_read_handler(0xb800, 0xbfbc, read8_delegate(FUNC(msx_state::msx_diskrom2_page2_r),drvstate));
14251420      break;
14261421   case 3:
14271422      msx_cpu_setbank (machine, 7, drvstate->m_empty);
r29193r29194
21812176   state->m_cart.sccp.sccp_active = 0;
21822177}
21832178
2184static  READ8_HANDLER (soundcartridge_scc)
2179READ8_MEMBER(msx_state::soundcartridge_scc)
21852180{
2186   msx_state *state = space.machine().driver_data<msx_state>();
21872181   int reg;
21882182
21892183
21902184   if (offset >= 0x7e0)
21912185   {
2192      return state->m_state[2]->m_mem[
2193            state->m_state[2]->m_banks[2] * 0x2000 + 0x1800 + offset];
2186      return m_state[2]->m_mem[
2187            m_state[2]->m_banks[2] * 0x2000 + 0x1800 + offset];
21942188   }
21952189
21962190   reg = offset & 0xff;
21972191
21982192   if (reg < 0x80)
21992193   {
2200      return state->m_k051649->k051649_waveform_r (space, reg);
2194      return m_k051649->k051649_waveform_r (space, reg);
22012195   }
22022196   else if (reg < 0xa0)
22032197   {
r29193r29194
22062200   else if (reg < 0xc0)
22072201   {
22082202      /* read wave 5 */
2209      return state->m_k051649->k051649_waveform_r (space, 0x80 + (reg & 0x1f));
2203      return m_k051649->k051649_waveform_r (space, 0x80 + (reg & 0x1f));
22102204   }
22112205   else if (reg < 0xe0)
22122206   {
2213      return state->m_k051649->k051649_test_r (space, reg);
2207      return m_k051649->k051649_test_r (space, reg);
22142208   }
22152209
22162210   return 0xff;
22172211}
22182212
2219static  READ8_HANDLER (soundcartridge_sccp)
2213READ8_MEMBER(msx_state::soundcartridge_sccp)
22202214{
2221   msx_state *state = space.machine().driver_data<msx_state>();
22222215   int reg;
22232216
22242217   if (offset >= 0x7e0)
22252218   {
2226      return state->m_state[2]->m_mem[
2227            state->m_state[2]->m_banks[3] * 0x2000 + 0x1800 + offset];
2219      return m_state[2]->m_mem[
2220            m_state[2]->m_banks[3] * 0x2000 + 0x1800 + offset];
22282221   }
22292222
22302223   reg = offset & 0xff;
22312224
22322225   if (reg < 0xa0)
22332226   {
2234      return state->m_k051649->k051649_waveform_r (space, reg);
2227      return m_k051649->k051649_waveform_r (space, reg);
22352228   }
22362229   else if (reg >= 0xc0 && reg < 0xe0)
22372230   {
2238      return state->m_k051649->k051649_test_r (space, reg);
2231      return m_k051649->k051649_test_r (space, reg);
22392232   }
22402233
22412234   return 0xff;
r29193r29194
22592252      msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000);
22602253      msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000);
22612254      if (state->m_cart.sccp.scc_active) {
2262         space.install_legacy_read_handler(0x9800, 0x9fff, FUNC(soundcartridge_scc));
2255         space.install_read_handler(0x9800, 0x9fff, read8_delegate(FUNC(msx_state::soundcartridge_scc),drvstate));
22632256      } else {
22642257         space.install_read_bank(0x9800, 0x9fff, "bank7");
22652258      }
22662259      if (state->m_cart.sccp.scc_active) {
2267         space.install_legacy_read_handler(0xb800, 0xbfff, FUNC(soundcartridge_sccp));
2260         space.install_read_handler(0xb800, 0xbfff, read8_delegate(FUNC(msx_state::soundcartridge_sccp),drvstate));
22682261      } else {
22692262         space.install_read_bank(0xb800, 0xbfff, "bank9");
22702263      }

Previous 199869 Revisions Next


© 1997-2024 The MAME Team