[][src]Trait spectrusty::chip::plus::UlaPlusInner

pub trait UlaPlusInner<'a>: Video + MemoryAccess {
    type ScreenSwapIter: Iterator<Item = VideoTs> + 'a;
    fn ula_write_earmic(&mut self, flags: UlaPortFlags, ts: VideoTs);
fn push_screen_change(&mut self, ts: VideoTs);
fn update_last_border_color(&mut self, border: BorderColor) -> bool;
fn page1_screen0_shadow_bank(&self) -> Option<bool>;
fn page1_screen1_shadow_bank(&self) -> Option<bool>;
fn page3_screen0_shadow_bank(&self) -> Option<bool>;
fn page3_screen1_shadow_bank(&self) -> Option<bool>;
fn frame_cache_mut_mem_ref(
        &mut self
    ) -> (&mut UlaFrameCache<Self::VideoFrame>, &Self::Memory);
fn shadow_frame_cache_mut_mem_ref(
        &mut self
    ) -> (&mut UlaFrameCache<Self::VideoFrame>, &Self::Memory);
fn beg_screen_shadow(&self) -> bool;
fn cur_screen_shadow(&self) -> bool;
fn video_render_data_view(
        &'a mut self
    ) -> VideoRenderDataView<'a, Self::ScreenSwapIter, Self::Memory, Self::VideoFrame>; fn is_ula_port(port: u16) -> bool { ... } }

Implemented by chipsets that UlaPlus can enhance.

Associated Types

type ScreenSwapIter: Iterator<Item = VideoTs> + 'a

Loading content...

Required methods

fn ula_write_earmic(&mut self, flags: UlaPortFlags, ts: VideoTs)

Sets the state of EarMic flags and optionally records an EarMic change.

fn push_screen_change(&mut self, ts: VideoTs)

Records a shadow screen swap.

fn update_last_border_color(&mut self, border: BorderColor) -> bool

Updates the border color, returns true if the border color has changed.

fn page1_screen0_shadow_bank(&self) -> Option<bool>

Returns Some(is_shadow) if a screen memory is accessible at page address: 0x4000-0x5FFF.

fn page1_screen1_shadow_bank(&self) -> Option<bool>

Returns Some(is_shadow) if a screen memory is accessible at page address: 0x6000-0x7FFF.

fn page3_screen0_shadow_bank(&self) -> Option<bool>

Returns Some(is_shadow) if a screen memory is accessible at page address: 0xC000-0xDFFF.

fn page3_screen1_shadow_bank(&self) -> Option<bool>

Returns Some(is_shadow) if a screen memory is accessible at page address: 0xE000-0xFFFF.

fn frame_cache_mut_mem_ref(
    &mut self
) -> (&mut UlaFrameCache<Self::VideoFrame>, &Self::Memory)

Returns a mutable reference to the normal frame cache and a memory reference.

fn shadow_frame_cache_mut_mem_ref(
    &mut self
) -> (&mut UlaFrameCache<Self::VideoFrame>, &Self::Memory)

Returns a mutable reference to the shadow frame cache and a memory reference.

fn beg_screen_shadow(&self) -> bool

Returns true if the shadow screen is displayed at the beginning of the video frame.

fn cur_screen_shadow(&self) -> bool

Returns true if the shadow screen is currently being displayed.

fn video_render_data_view(
    &'a mut self
) -> VideoRenderDataView<'a, Self::ScreenSwapIter, Self::Memory, Self::VideoFrame>

Returns references to components necessary for video rendering.

Loading content...

Provided methods

fn is_ula_port(port: u16) -> bool

Returns true if port matches the ULA port.

Loading content...

Implementors

impl<'a, B, X> UlaPlusInner<'a> for Ula3<B, X> where
    X: MemoryExtension
[src]

impl<'a, B, X> UlaPlusInner<'a> for Ula128<B, X> where
    X: MemoryExtension
[src]

impl<'a, M, B, X, V> UlaPlusInner<'a> for Ula<M, B, X, V> where
    M: ZxMemory,
    X: MemoryExtension,
    V: VideoFrame
[src]

Loading content...