public void ResetProgram() { _baseData.CopyTo(_programData, 0); _pointer = 0; ProgramIO.ResetState(); ProgramState = ProgramState.NotStarted; Halted = false; }
private long ReadInput() { try { return(Int64.Parse(ProgramIO.ReadLineInput())); } catch (Exception) { throw; } }
public ProgramData(Int64[] startingData, ProgramIO programIO) { _baseData = new Int64[startingData.Length]; _programData = new Int64[startingData.Length]; startingData.CopyTo(_baseData, 0); startingData.CopyTo(_programData, 0); Halted = false; _pointer = 0; ProgramIO = programIO; }
private void Operation3(ParamModes[] modes) { if (!ProgramIO.HasInput()) { ProgramState = ProgramState.Paused; return; } long value = ReadInput(); Int64 storageAddress = GetOutputPosition(1, modes[0]); SetAddressValueSafe(storageAddress, value); _pointer += 2; }
public bool AddProgram(string key, string code, ProgramIO programIO) { try { string[] codeStrings = code.Split(','); Int64[] codes = codeStrings.Select(x => Int64.Parse(x)).ToArray(); _programData.Add(key, new ProgramData(codes, programIO)); return(true); } catch (Exception ex) { LogError(ex); return(false); } }
private void WriteOutput(string value) { ProgramIO.WriteLineOutput(value); }