Previous 199869 Revisions Next

r21996 Thursday 21st March, 2013 at 00:43:25 UTC by Angelo Salese
Sketchy CD on/off command, useful to test out CD features in diag menu
[src/emu/machine]smpc.c

trunk/src/emu/machine/smpc.c
r21995r21996
220220   state->m_smpc.SF = 0x00; //clear hand-shake flag
221221}
222222
223static TIMER_CALLBACK( smpc_cd_enable )
224{
225   saturn_state *state = machine.driver_data<saturn_state>();
226
227   state->m_smpc.OREG[31] = param + 0x08; //read-back for last command issued
228   state->m_smpc.SF = 0x08; //clear hand-shake flag (TODO: diagnostic wants this to have bit 3 high)
229}
230
223231static void smpc_system_reset(running_machine &machine)
224232{
225233   saturn_state *state = machine.driver_data<saturn_state>();
r21995r21996
699707            space.machine().scheduler().timer_set(attotime::from_usec(100), FUNC(smpc_sound_enable),data & 1);
700708         break;
701709      /*CD (SH-1) ON/OFF */
702      //case 0x08:
703      //case 0x09:
710      case 0x08:
711      case 0x09:
712         printf ("SMPC: CD %s\n",(data & 1) ? "off" : "on");
713         space.machine().scheduler().timer_set(attotime::from_usec(40), FUNC(smpc_cd_enable),data & 1);
714         break;
704715      case 0x0d:
705716         if(LOG_SMPC) printf ("SMPC: System Reset\n");
706717         smpc_system_reset(space.machine());
r21995r21996
850861      smpc_comreg_exec(space,data,1);
851862
852863      // we've processed the command, clear status flag
853      if(data != 0x10 && data != 0x02 && data != 0x03 && data != 0xe && data != 0xf && data != 0x19 && data != 0x1a)
864      if(data != 0x10 && data != 0x02 && data != 0x03 && data != 0x08 && data != 0x09 && data != 0xe && data != 0xf && data != 0x19 && data != 0x1a)
854865      {
855866         state->m_smpc.OREG[31] = data; //read-back command
856867         state->m_smpc.SF = 0x00;
r21995r21996
10101021
10111022         switch(cur_ddr & 0x60)
10121023         {
1024            case 0x00: break; // in diag test
10131025            case 0x40: return_data = smpc_th_control_mode(offset == 0x77); break;
10141026            case 0x60: return_data = smpc_direct_mode(offset == 0x77); break;
10151027            default:
r21995r21996
10601072      smpc_comreg_exec(space,data,0);
10611073
10621074      // we've processed the command, clear status flag
1063      if(data != 0x10 && data != 2 && data != 3 && data != 6 && data != 7 && data != 0x0e && data != 0x0f && data != 0x19 && data != 0x1a)
1075      if(data != 0x10 && data != 2 && data != 3 && data != 6 && data != 7 && data != 0x08 && data != 0x09 && data != 0x0e && data != 0x0f && data != 0x19 && data != 0x1a)
10641076      {
10651077         m_smpc.OREG[31] = data; //read-back for last command issued
10661078         m_smpc.SF = 0x00; //clear hand-shake flag

Previous 199869 Revisions Next


© 1997-2024 The MAME Team