feat: implement ability to boot straigt to cartridge

This commit is contained in:
2020-12-23 19:39:37 -06:00
parent 1502cc3ec2
commit 2a234f4d14
6 changed files with 212 additions and 23 deletions

View File

@@ -49,7 +49,7 @@ pub enum Instruction {
SET(u8, InstrRegister),
}
#[derive(Debug, Copy, Clone)]
#[derive(Copy, Clone)]
pub enum JPTarget {
RegisterPair(RegisterPair),
ImmediateWord(u16),
@@ -70,7 +70,7 @@ pub enum MATHTarget {
ImmediateByte(u8),
}
#[derive(Debug, Copy, Clone)]
#[derive(Copy, Clone)]
pub enum LDTarget {
IndirectC,
Register(InstrRegister),
@@ -1993,3 +1993,27 @@ impl Table {
}
}
}
impl std::fmt::Debug for JPTarget {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match *self {
JPTarget::RegisterPair(pair) => write!(f, "{:?}", pair),
JPTarget::ImmediateWord(word) => write!(f, "{:#06X}", word),
}
}
}
impl std::fmt::Debug for LDTarget {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match *self {
LDTarget::IndirectC => f.write_str("IndirectC"),
LDTarget::Register(reg) => write!(f, "{:?}", reg),
LDTarget::IndirectRegister(pair) => write!(f, "{:?}", pair),
LDTarget::ByteAtAddress(addr) => write!(f, "{:#06X}", addr),
LDTarget::ImmediateWord(word) => write!(f, "{:#06X}", word),
LDTarget::ImmediateByte(byte) => write!(f, "{:04X}", byte),
LDTarget::RegisterPair(pair) => write!(f, "{:?}", pair),
LDTarget::ByteAtAddressWithOffset(byte) => write!(f, "{:#04X}", byte),
}
}
}