RclIndirectArg class Null safety

This is where the HP 15C shows its evil genius. RCL (i), when I contains a number, immediately recalls the register whose number is given in I (converted to an integer), so it behaves like ArgDone.

When I contains a matrix descriptor, it behaves like a matrix: It shows the matrix row/column, with a timeout, and only completes the recall operation if the button is released before the timeout expires. So, when I contains a matrix descriptor, it behaves like DeferredRclArg, above.

And they did all this in a tiny, power-efficient form factor with a 4 bit processor, and (I assume) pushing the limits of their small ROM capacity.

Inheritance

Constructors

RclIndirectArg({required void matPressed(Model<ProgramOperation>, Matrix), required void matReleased(Model<ProgramOperation>, Matrix), bool noStackLift = false})

Properties

hashCode int
The hash code for this object.
read-onlyinherited
matPressed → void Function(Model<ProgramOperation>, Matrix)
final
matReleased → void Function(Model<ProgramOperation>, Matrix)
final
noStackLift bool
final
opcode int
latefinalinherited
programDisplay String
latefinalinherited
programListing String
latefinalinherited
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited

Methods

getCalculation<T extends ProgramOperation>(Model<ProgramOperation> m, DisplayModeSelector<(void Function(Model<ProgramOperation>)?), T> selector) → (void Function(Model<ProgramOperation>)?)
inherited
handleOpBeforeCalculate(Model<ProgramOperation> m, void opBeforeCalculate()) → void
For many of the RCL operations on matrices, we need to take over stack lift, so we do the deferral on beforeCalculate rather than calc.
override
init(int registerBase, {required OpInitFunction f, required ProgramOperation? shift, required bool argDot, required ProgramOperation? arg, required bool userMode}) → void
inherited
liftStackIfEnabled(Model<ProgramOperation> m) bool
inherited
matches(ProgramOperation key, bool userMode) Arg?
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited