TrapCircuit

Struct TrapCircuit 

Source
pub(crate) struct TrapCircuit {
    mode: Unsigned12Bit,
    set_metabits_disabled: bool,
}

Fields§

§mode: Unsigned12Bit§set_metabits_disabled: bool

Implementations§

Source§

impl TrapCircuit

Source

const TRAP_ON_MARKED_INSTRUCTION: Unsigned12Bit

When this bit is set in mode, fetching an instruction word whose metabit is set causes a trap to occur.

Source

const TRAP_ON_DEFERRED_ADDRESS: Unsigned12Bit

When this bit is set in mode, an instruction cycle which uses a marked deferred address causes the TRAP flag to be raised.

Source

const TRAP_ON_OPERAND: Unsigned12Bit

When this bit is set in mode, use of a marked operand causes the TRAP flag to be raised soon afterward (within a few instructions).

Source

const TRAP_ON_CHANGED_SEQUENCE: Unsigned12Bit

When this bit is set, change of sequence number causes the TRAP flag to be raised. Change of sequence away from sequence 0o42 (the TRAP sequence itself) does not cause the flag to be raised).

Source

const SET_METABITS_OF_INSTRUCTIONS: Unsigned12Bit

When this bit is set, fetching an instruction from a memory word causes the meta bit of that word to be set.

Source

const SET_METABITS_OF_DEFERRED_ADDRESSES: Unsigned12Bit

When this bit is set, the metabit of all deferred addresses used will be set.

Source

const SET_METABITS_OF_OPERANDS: Unsigned12Bit

When this bit is set, the metabits of memory words containing operands will be set.

Source

pub(crate) const fn new() -> TrapCircuit

Source

pub(crate) fn is_set_metabits_disabled(&self) -> bool

Query the hardware switch setting which would disable all setting of metabits.

Source

pub(crate) fn set_metabits_disabled(&mut self, disable: bool)

Change the (emulated) hardware switch setting which (when disable is true) would disable all setting of metabits.

Source

pub(crate) fn set_metabits_of_instructions(&self) -> bool

Indicate whether the machine should set the metabits of words from which it fetches instructions.

Source

pub(crate) fn set_metabits_of_deferred_addresses(&self) -> bool

Indicate whether the machine should set the metabits of words from which it fetches deferred addresses.

Source

pub(crate) fn set_metabits_of_operands(&self) -> bool

Indicate whether the machine should set the metabits of words from which it fetches operands.

Source

pub(crate) fn trap_on_marked_instruction(&self) -> bool

Indicate whether the TRAP flag should be raised during execution of an instruction whose metabit is set.

Source

pub(crate) fn trap_on_deferred_address(&self) -> bool

Indicate whether an instruction cycle which uses a marked deferred address causes the TRAP flag to be raised.

Source

pub(crate) fn trap_on_operand(&self) -> bool

Indicate whether use of a marked operand causes the TRAP flag to be raised soon afterward (within a few instructions).

Source

pub(crate) fn trap_on_changed_sequence(&self) -> bool

Indicate whether change of sequence number causes the TRAP flag to be raised. Change of sequence away from sequence 0o42 (the TRAP sequence itself) does not cause the flag to be raised).

Trait Implementations§

Source§

impl Debug for TrapCircuit

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Unit for TrapCircuit

Source§

fn read( &mut self, _ctx: &Context, _diags: &CurrentInstructionDiagnostics, ) -> Result<MaskedWord, TransferFailed>

The TRAP unit doesn’t perform I/O but reads retain the cycle-left and dismiss features (See Users Handbook, section 4-15 (“TRAP”). Because it cycles left, it must be an “input” unit.

Source§

fn write( &mut self, _ctx: &Context, _source: Unsigned36Bit, _diags: &CurrentInstructionDiagnostics, ) -> Result<Option<OutputEvent>, TransferFailed>

I don’t know whether this is supposed to behave like an input unit or an output unit.

Source§

fn poll(&mut self, ctx: &Context) -> UnitStatus

Query the status of the unit.
Source§

fn connect(&mut self, _ctx: &Context, mode: Unsigned12Bit)

Connect the unit.
Source§

fn transfer_mode(&self) -> TransferMode

Query the TransferMode of the unit.
Source§

fn name(&self) -> String

Query the name of the unit.
Source§

fn disconnect(&mut self, _ctx: &Context)

Disconnect the unit.
Source§

fn on_input_event( &mut self, _ctx: &Context, _event: InputEvent, ) -> Result<InputFlagRaised, InputEventError>

Announce an input event for a unit.
Source§

fn text_info(&self, _ctx: &Context) -> String

Provide a text summary of the state of the device.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<Src, Scheme> ApproxFrom<Src, Scheme> for Src
where Scheme: ApproxScheme,

§

type Err = NoError

The error type produced by a failed conversion.
§

fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>

Convert the given value into an approximately equivalent representation.
§

impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src
where Dst: ApproxFrom<Src, Scheme>, Scheme: ApproxScheme,

§

type Err = <Dst as ApproxFrom<Src, Scheme>>::Err

The error type produced by a failed conversion.
§

fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>

Convert the subject into an approximately equivalent representation.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T, Dst> ConvAsUtil<Dst> for T

§

fn approx(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject with the default scheme.
§

fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject with a specific scheme.
§

impl<T> ConvUtil for T

§

fn approx_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject to a given type with the default scheme.
§

fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject to a given type with a specific scheme.
§

fn into_as<Dst>(self) -> Dst
where Self: Sized + Into<Dst>,

Convert the subject to a given type.
§

fn try_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + TryInto<Dst>,

Attempt to convert the subject to a given type.
§

fn value_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ValueInto<Dst>,

Attempt a value conversion of the subject to a given type.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<Src> TryFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
§

fn try_from(src: Src) -> Result<Src, <Src as TryFrom<Src>>::Err>

Convert the given value into the subject type.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<Src, Dst> TryInto<Dst> for Src
where Dst: TryFrom<Src>,

§

type Err = <Dst as TryFrom<Src>>::Err

The error type produced by a failed conversion.
§

fn try_into(self) -> Result<Dst, <Src as TryInto<Dst>>::Err>

Convert the subject into the destination type.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<Src> ValueFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
§

fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>

Convert the given value into an exactly equivalent representation.
§

impl<Src, Dst> ValueInto<Dst> for Src
where Dst: ValueFrom<Src>,

§

type Err = <Dst as ValueFrom<Src>>::Err

The error type produced by a failed conversion.
§

fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>

Convert the subject into an exactly equivalent representation.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,