void Sync76489(SN76489 *D,byte Sync) { register int J,I; /* Hit MIDI drums for noise channels, if requested */ if(Sync&SN76489_DRUMS) { if(D->Volume[3]&&D->Freq[3]) Drum(DRM_MIDI|28,D->Volume[3]); Sync&=~SN76489_DRUMS; } if(Sync!=SN76489_FLUSH) D->Sync=Sync; for(J=0,I=D->Changed;I&&(J<SN76489_CHANNELS);J++,I>>=1) if(I&1) Sound(J+D->First,D->Freq[J],D->Volume[J]); D->Changed=0x00; }
void Sync8910(register AY8910 *D,register byte Sync) { register int J,I; /* Hit MIDI drums for noise channels, if requested */ if(Sync&AY8910_DRUMS) { Sync&=~AY8910_DRUMS; J=0; if(D->Volume[3]&&D->Freq[3]) J+=D->Volume[3]; if(D->Volume[4]&&D->Freq[4]) J+=D->Volume[4]; if(D->Volume[5]&&D->Freq[5]) J+=D->Volume[5]; if(J) Drum(DRM_MIDI|28,(J+2)/3); } if(Sync!=AY8910_FLUSH) D->Sync=Sync; for(J=0,I=D->Changed;I&&(J<AY8910_CHANNELS);J++,I>>=1) if(I&1) Sound(J+D->First,D->Freq[J],D->Volume[J]); D->Changed=0x00; }