rustzx_core/zx/
constants.rs

1//! Module contains constants
2
3/// main spectrum screen (canvas) constants
4pub const CANVAS_WIDTH: usize = 256;
5pub const CANVAS_HEIGHT: usize = 192;
6pub const CANVAS_X: usize = 32;
7pub const CANVAS_Y: usize = 24;
8/// canvas (emulated screen) constants
9pub const SCREEN_WIDTH: usize = CANVAS_WIDTH + BORDER_COLS * 8 * 2;
10pub const SCREEN_HEIGHT: usize = CANVAS_HEIGHT + BORDER_ROWS * 8 * 2;
11/// Frames per second
12pub const FPS: usize = 50;
13
14/// relative addresses
15pub(crate) const BITMAP_MAX_REL: u16 = 0x17FF;
16pub(crate) const ATTR_BASE_REL: u16 = 0x1800;
17pub(crate) const ATTR_MAX_REL: u16 = 0x1AFF;
18/// on all spectrums these values are fixed
19pub(crate) const CLOCKS_PER_COL: usize = 4;
20#[cfg(feature = "precise-border")]
21pub(crate) const PIXELS_PER_CLOCK: usize = 2;
22/// size of screen in rows, cols
23pub(crate) const ATTR_COLS: usize = CANVAS_WIDTH / 8;
24pub(crate) const ATTR_ROWS: usize = CANVAS_HEIGHT / 8;
25pub(crate) const BORDER_COLS: usize = 4;
26pub(crate) const BORDER_ROWS: usize = 3;
27/// Tape loading trap at LD-BREAK routine in ROM
28pub(crate) const ADDR_LD_BREAK: u16 = 0x056B;