#[repr(C, packed(1))]pub struct MOSSoundInterfaceDevice {
pub channel1: Voice,
pub channel2: Voice,
pub channel3: Voice,
pub filter_cutoff: WO<u16>,
pub resonance_and_filter_setup: WO<u8>,
pub volume_filter_mode: WO<u8>,
pub potentiometer_x: RO<u8>,
pub potentiometer_y: RO<u8>,
pub channel3_oscillator: RO<u8>,
pub channel3_envelope: RO<u8>,
}Expand description
MOS Technology Sound Interface Device (SID)
Fields§
§channel1: Voice§channel2: Voice§channel3: Voice§filter_cutoff: WO<u16>§resonance_and_filter_setup: WO<u8>RESON Filter resonance control (0x17)
volume_filter_mode: WO<u8>SIGVOL Volume and filter select (0x18)
potentiometer_x: RO<u8>§potentiometer_y: RO<u8>§channel3_oscillator: RO<u8>§channel3_envelope: RO<u8>Implementations§
Source§impl MOSSoundInterfaceDevice
impl MOSSoundInterfaceDevice
Sourcepub fn start_random_generator(&self)
pub fn start_random_generator(&self)
Start noise generation on SID channel 3.
Example:
c64::sid().start_random_generator();
let random_byte = c64::sid().rand8(20);More information here.
Sourcepub fn random_byte(&self) -> u8
pub fn random_byte(&self) -> u8
Random byte in the interval (0, 255)
§Examples
c64::sid().start_random_generator();
let value = c64::sid().random_byte();More information here. Currently there’s no way to select the subsong as this requires that the accumulator is set. Possibly this can be done wrapping function pointers to raw assembler code.
Auto Trait Implementations§
impl !Freeze for MOSSoundInterfaceDevice
impl !RefUnwindSafe for MOSSoundInterfaceDevice
impl Send for MOSSoundInterfaceDevice
impl !Sync for MOSSoundInterfaceDevice
impl Unpin for MOSSoundInterfaceDevice
impl UnwindSafe for MOSSoundInterfaceDevice
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more