pub(crate) trait MemoryMapped {
// Required methods
fn fetch(
&mut self,
ctx: &Context,
addr: &Address,
meta: &MetaBitChange,
) -> Result<(Unsigned36Bit, ExtraBits), MemoryOpFailure>;
fn store(
&mut self,
ctx: &Context,
addr: &Address,
value: &Unsigned36Bit,
meta: &MetaBitChange,
) -> Result<(), MemoryOpFailure>;
fn change_bit(
&mut self,
ctx: &Context,
addr: &Address,
op: &WordChange,
) -> Result<Option<bool>, MemoryOpFailure>;
fn cycle_full_word_for_tsd(
&mut self,
ctx: &Context,
addr: &Address,
) -> Result<ExtraBits, MemoryOpFailure>;
}
Required Methods§
Sourcefn fetch(
&mut self,
ctx: &Context,
addr: &Address,
meta: &MetaBitChange,
) -> Result<(Unsigned36Bit, ExtraBits), MemoryOpFailure>
fn fetch( &mut self, ctx: &Context, addr: &Address, meta: &MetaBitChange, ) -> Result<(Unsigned36Bit, ExtraBits), MemoryOpFailure>
Fetch a word.
Sourcefn store(
&mut self,
ctx: &Context,
addr: &Address,
value: &Unsigned36Bit,
meta: &MetaBitChange,
) -> Result<(), MemoryOpFailure>
fn store( &mut self, ctx: &Context, addr: &Address, value: &Unsigned36Bit, meta: &MetaBitChange, ) -> Result<(), MemoryOpFailure>
Store a word.
Sourcefn change_bit(
&mut self,
ctx: &Context,
addr: &Address,
op: &WordChange,
) -> Result<Option<bool>, MemoryOpFailure>
fn change_bit( &mut self, ctx: &Context, addr: &Address, op: &WordChange, ) -> Result<Option<bool>, MemoryOpFailure>
Mutate a bit in-place, returning its previous value.
Sourcefn cycle_full_word_for_tsd(
&mut self,
ctx: &Context,
addr: &Address,
) -> Result<ExtraBits, MemoryOpFailure>
fn cycle_full_word_for_tsd( &mut self, ctx: &Context, addr: &Address, ) -> Result<ExtraBits, MemoryOpFailure>
Cycle a memory location one place to the left (as in TSD).
This behaviour is described on page 4-9 of the TX-2 Users Handbook.