protected void WriteValue(long value, Parameter parameter, long[] program, long pc) { int parameterOffset = (int)parameter; var positionMode = GetModeAt(parameter); if (positionMode == ParameterMode.ImmediateMode) { program[pc + 1 + parameterOffset] = value; } else { var direction = program[pc + 1 + parameterOffset]; _memoryController.WriteValue(positionMode, direction, value); } }