Class SteppableVirtualMachine
Stateful PL/0 virtual machine with explicit single-step execution.
public sealed class SteppableVirtualMachine
- Inheritance
-
SteppableVirtualMachine
- Inherited Members
Fields
DivisionByZeroExitCode
private const int DivisionByZeroExitCode = 206
Field Value
InputEofExitCode
private const int InputEofExitCode = 98
Field Value
InputFormatExitCode
private const int InputFormatExitCode = 97
Field Value
RuntimeErrorExitCode
private const int RuntimeErrorExitCode = 99
Field Value
b
private int b
Field Value
diagnostics
private readonly List<VmDiagnostic> diagnostics
Field Value
initialized
private bool initialized
Field Value
io
private IPl0Io io
Field Value
options
private VirtualMachineOptions options
Field Value
p
private int p
Field Value
program
private IReadOnlyList<Instruction> program
Field Value
stack
private int[] stack
Field Value
- int[]
t
private int t
Field Value
Properties
IsRunning
Gets a value indicating whether execution can continue.
public bool IsRunning { get; private set; }
Property Value
State
Gets the current VM state snapshot.
public VmState State { get; private set; }
Property Value
Methods
BinaryOp(Func<int, int, int>)
private bool BinaryOp(Func<int, int, int> op)
Parameters
Returns
CaptureState()
private VmState CaptureState()
Returns
ExecuteInstruction(Instruction)
private bool ExecuteInstruction(Instruction instruction)
Parameters
instructionInstruction
Returns
ExecuteOpr(int)
private bool ExecuteOpr(int code)
Parameters
codeint
Returns
Initialize(IReadOnlyList<Instruction>, IPl0Io?, VirtualMachineOptions?)
Initializes the VM and resets state for debugging.
public void Initialize(IReadOnlyList<Instruction> program, IPl0Io? io = null, VirtualMachineOptions? options = null)
Parameters
programIReadOnlyList<Instruction>P-Code instructions to execute.
ioIPl0IoOptional I/O abstraction.
optionsVirtualMachineOptionsOptional VM options.
IsValidStackIndex(int)
private bool IsValidStackIndex(int index)
Parameters
indexint
Returns
ResolveBase(int)
private int ResolveBase(int level)
Parameters
levelint
Returns
Step()
Executes exactly one instruction.
public VmStepResult Step()
Returns
- VmStepResult
Step result with updated state and status.
TryPeek(int)
private bool TryPeek(int index)
Parameters
indexint
Returns
TryPush()
private bool TryPush()