void ReplicatedStore::StateMachine::Abort() { WriteNoise( TraceComponent, "{0} aborting", this->TraceId); AcquireExclusiveLock lock(stateLock_); ChangeState(ReplicatedStoreState::Closed); }
void APU_INTERNAL::Write( WORD addr, BYTE data ) { switch( addr ) { // CH0,1 rectangle case 0x4000: case 0x4001: case 0x4002: case 0x4003: case 0x4004: case 0x4005: case 0x4006: case 0x4007: WriteRectangle( (addr<0x4004)?0:1, addr, data ); break; // CH2 triangle case 0x4008: case 0x4009: case 0x400A: case 0x400B: WriteTriangle( addr, data ); break; // CH3 noise case 0x400C: case 0x400D: case 0x400E: case 0x400F: WriteNoise( addr, data ); break; // CH4 DPCM case 0x4010: case 0x4011: case 0x4012: case 0x4013: WriteDPCM( addr, data ); break; case 0x4015: reg4015 = data; if( !(data&(1<<0)) ) { ch0.enable = 0; ch0.len_count = 0; } if( !(data&(1<<1)) ) { ch1.enable = 0; ch1.len_count = 0; } if( !(data&(1<<2)) ) { ch2.enable = 0; ch2.len_count = 0; ch2.lin_count = 0; ch2.counter_start = 0; } if( !(data&(1<<3)) ) { ch3.enable = 0; ch3.len_count = 0; } if( !(data&(1<<4)) ) { ch4.enable = 0; ch4.dmalength = 0; } else { ch4.enable = 0xFF; if( !ch4.dmalength ) { ch4.address = ch4.cache_addr; ch4.dmalength = ch4.cache_dmalength; ch4.phaseacc = 0; } } break; case 0x4017: break; // VirtuaNES固有ポート case 0x4018: UpdateRectangle( ch0, (INT)data ); UpdateRectangle( ch1, (INT)data ); UpdateTriangle ( (INT)data ); UpdateNoise ( (INT)data ); break; default: break; } }