pub mod filehost;
pub mod io;
pub mod serial;
use anyhow::Result;
#[allow(dead_code)]
#[derive(Debug, PartialEq, Eq)]
pub enum LoadAddress {
Commodore64,
Commodore65,
Custom(u16),
}
#[allow(dead_code)]
impl LoadAddress {
pub fn new(address: u16) -> LoadAddress {
match address {
0x0801 => LoadAddress::Commodore64,
0x2001 => LoadAddress::Commodore65,
_ => LoadAddress::Custom(address),
}
}
pub fn from_bytes(bytes: &[u8]) -> Result<LoadAddress> {
let address = u16::from_le_bytes(bytes[0..2].try_into()?);
Ok(Self::new(address))
}
pub fn value(&self) -> u16 {
match *self {
LoadAddress::Commodore64 => 0x0801,
LoadAddress::Commodore65 => 0x2001,
LoadAddress::Custom(address) => address,
}
}
}