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.
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< selector) → (void Function(Model<ProgramOperation> )?), T>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