Previous 15994 Revisions Next

r4582 Tuesday 28th April, 2009 at 20:38:28 UTC by Wilbert Pol
Made sure that both the RESET and BUSREQ lines are honored by the megadriv sound cpu. Fixed bug #1817.
[src/mame/drivers]megadriv.c

src/mame/drivers/megadriv.c
r4581r4582
22872287      {
22882288         //logerror("%06x: 68000 request z80 Bus (byte MSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
22892289         genz80.z80_has_bus=0;
2290         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, ASSERT_LINE);
2290         cpu_suspend( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT, 1 );
22912291      }
22922292      else
22932293      {
22942294         //logerror("%06x: 68000 return z80 Bus (byte MSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
22952295         genz80.z80_has_bus=1;
2296         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, CLEAR_LINE);
2297
2296         cpu_resume( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT );
22982297      }
22992298   }
23002299   else if (!ACCESSING_BITS_8_15) // is this valid?
r4581r4582
23032302      {
23042303         //logerror("%06x: 68000 request z80 Bus (byte LSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23052304         genz80.z80_has_bus=0;
2306         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, ASSERT_LINE);
2305         cpu_suspend( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT, 1 );
23072306      }
23082307      else
23092308      {
23102309         //logerror("%06x: 68000 return z80 Bus (byte LSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23112310         genz80.z80_has_bus=1;
2312         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, CLEAR_LINE);
2311         cpu_resume( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT );
23132312      }
23142313   }
23152314   else // word access
r4581r4582
23182317      {
23192318         //logerror("%06x: 68000 request z80 Bus (word access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23202319         genz80.z80_has_bus=0;
2321         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, ASSERT_LINE);
2320         cpu_suspend( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT, 1 );
23222321      }
23232322      else
23242323      {
23252324         //logerror("%06x: 68000 return z80 Bus (byte LSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23262325         genz80.z80_has_bus=1;
2327         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, CLEAR_LINE);
2326         cpu_resume( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT );
23282327      }
23292328   }
23302329}
r4581r4582
23372336      {
23382337         //logerror("%06x: 68000 clear z80 reset (byte MSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23392338         genz80.z80_is_reset=0;
2340         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, CLEAR_LINE);
2339         if ( genz80.z80_has_bus )
2340            cpu_resume( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT );
23412341      }
23422342      else
23432343      {
23442344         //logerror("%06x: 68000 start z80 reset (byte MSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23452345         genz80.z80_is_reset=1;
2346         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, ASSERT_LINE);
2346         device_reset( space->machine->cpu[genz80.z80_cpunum] );
2347         cpu_suspend( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT, 1 );
23472348         devtag_reset(space->machine, "ym");
23482349      }
23492350   }
r4581r4582
23532354      {
23542355         //logerror("%06x: 68000 clear z80 reset (byte LSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23552356         genz80.z80_is_reset=0;
2356         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, CLEAR_LINE);
2357         if ( genz80.z80_has_bus )
2358            cpu_resume( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT );
23572359      }
23582360      else
23592361      {
23602362         //logerror("%06x: 68000 start z80 reset (byte LSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23612363         genz80.z80_is_reset=1;
2362         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, ASSERT_LINE);
2364         device_reset( space->machine->cpu[genz80.z80_cpunum] );
2365         cpu_suspend( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT, 1 );
23632366         devtag_reset(space->machine, "ym");
23642367
23652368      }
r4581r4582
23702373      {
23712374         //logerror("%06x: 68000 clear z80 reset (word access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23722375         genz80.z80_is_reset=0;
2373         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, CLEAR_LINE );
2376         if ( genz80.z80_has_bus )
2377            cpu_resume( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT );
23742378      }
23752379      else
23762380      {
23772381         //logerror("%06x: 68000 start z80 reset (byte LSB access) %04x %04x\n", cpu_get_pc(space->cpu),data,mem_mask);
23782382         genz80.z80_is_reset=1;
2379         cpu_set_input_line(space->machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, ASSERT_LINE);
2383         device_reset( space->machine->cpu[genz80.z80_cpunum] );
2384         cpu_suspend( space->machine->cpu[genz80.z80_cpunum], SUSPEND_REASON_HALT, 1 );
23802385         devtag_reset(space->machine, "ym");
23812386      }
23822387   }

Previous 15994 Revisions Next


© 1998-2018 The MESS Team