#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used))]
mod bus;
mod cpu;
pub mod disasm;
mod error;
pub mod io;
mod machine;
mod modules;
mod state;
pub use cpu::ADDR_MASK;
pub use error::Error;
#[cfg(feature = "profile")]
pub use machine::profile::{Bucket, Profile};
pub use machine::{
Annunciators, CARD_MAX_BYTES, CARD_MIN_BYTES, Framebuffer, Halt, LCD_HEIGHT, LCD_HEIGHT_42S,
LCD_WIDTH, Lcd, Machine, Model, NEW_CARD_BYTES, Port,
};
#[cfg(feature = "internals")]
#[doc(hidden)]
pub mod internals {
pub use crate::bus::{Chip, Select};
pub use crate::cpu::instr::{DatSize, Instruction, Ptr, Reg};
pub use crate::cpu::{Decoded, decode, disassemble};
use crate::machine::{Lcd, Machine};
pub fn render_lcd(m: &Machine, peek: impl Fn(u32) -> u8) -> Lcd {
Lcd::render(&m.hw.io, peek)
}
pub fn lcd_row_spans(m: &Machine) -> impl Iterator<Item = (u32, u32)> {
Lcd::row_spans(&m.hw.io)
}
}
#[cfg(doctest)]
#[doc = include_str!("../README.md")]
struct ReadmeDoctests;