public DeployerConsole()
        {
            var appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            var rootDir    = Path.Combine(appDataDir, "DeployerOfCodes");

            if (!Directory.Exists(rootDir))
            {
                Directory.CreateDirectory(rootDir);
            }

            var factory = new TextDeployerFactory();

            _runner = new ModeRunner(factory, rootDir);
            _runner.Start();

            _timer = new Timer {
                Interval = 1000.0
            };
            _timer.Elapsed += Tick;
            _timer.Start();
        }
        private void ProgramStarted()
        {
            var memory = Debug.GC(true);

            Debug.Print("Memory at startup = " + memory);

            SetupPersistence();
            SetupInputs();

            var factory = new RealDeployerFactory(Mainboard.Ethernet,
                                                  Mainboard.SDCardStorageDevice,
                                                  breakoutTB10,
                                                  characterDisplay,
                                                  tunes);

            factory.Initialize();
            _modeRunner = new ModeRunner(factory, _rootDir);
            _modeRunner.Start();

            SetupInterrupts();
            SetupTimers();
        }