diff options
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 24 |
1 files changed, 19 insertions, 5 deletions
@@ -1,21 +1,31 @@ -mod bedrock; -mod device_bus; mod processor; mod program_memory; mod stack; -pub use bedrock::Bedrock; -pub use device_bus::{Device, DeviceBus}; -pub use processor::Signal; pub use program_memory::ProgramMemory; pub use stack::Stack; +mod core; +mod device_bus; +mod signal; +mod emulator; + +pub use core::BedrockCore; +pub use device_bus::{Device, DeviceBus}; +pub use signal::Signal; +pub use emulator::BedrockEmulator; + + pub mod macros { #[macro_export] macro_rules! read_hh { ($v:expr) => { ($v>>24) as u8 }; } #[macro_export] macro_rules! read_hl { ($v:expr) => { ($v>>16) as u8 }; } #[macro_export] + macro_rules! read_lh { ($v:expr) => { ($v>>8) as u8 }; } + #[macro_export] + macro_rules! read_ll { ($v:expr) => { $v as u8 }; } + #[macro_export] macro_rules! read_h { ($v:expr) => { ($v>>8) as u8 }; } #[macro_export] macro_rules! read_l { ($v:expr) => { $v as u8 }; } @@ -27,6 +37,10 @@ pub mod macros { #[macro_export] macro_rules! write_hl { ($v:expr, $low:expr) => { $v = $v & 0xff00ffff | (($low as u32) << 16) }; } #[macro_export] + macro_rules! write_lh { ($v:expr, $high:expr) => { $v = $v & 0xffff00ff | (($high as u32) << 8) }; } + #[macro_export] + macro_rules! write_ll { ($v:expr, $low:expr) => { $v = $v & 0xffffff00 | ($low as u32) }; } + #[macro_export] macro_rules! write_h { ($v:expr, $high:expr) => { $v = $v & 0x00ff | (($high as u16) << 8) }; } #[macro_export] macro_rules! write_l { ($v:expr, $low:expr) => { $v = $v & 0xff00 | ($low as u16) }; } |