#[derive(Debug, Clone)]
pub enum SubCommand {
ReadDelayTimer,
SetDelayTimer,
SetSoundTimer,
AddToIndexRegister,
GetFontCharacter(FontVariant),
DecimalConversion,
StoreTo,
LoadFrom,
GetKey,
Unimplemented(u16),
}
#[derive(Debug, Clone)]
pub enum FontVariant {
Big,
Small,
}
impl From<u16> for SubCommand {
fn from(value: u16) -> Self {
match value & 0xFF {
0x07 => Self::ReadDelayTimer,
0x15 => Self::SetDelayTimer,
0x16 => Self::SetSoundTimer,
0x1E => Self::AddToIndexRegister,
0x29 => Self::GetFontCharacter(FontVariant::Small),
0x20 => Self::GetFontCharacter(FontVariant::Big),
0x33 => Self::DecimalConversion,
0x55 => Self::StoreTo,
0x65 => Self::LoadFrom,
0x0A => Self::GetKey,
_ => Self::Unimplemented(value),
}
}
}