Пример #1
0
        static void Main(string[] args)
        {
            // Handle command-line args
            PrintHerald();

            // See if WinPCap is installed and working
            TestPCap();

            _system = new AltoSystem();

            if (!String.IsNullOrEmpty(Configuration.Drive0Image))
            {
                try
                {
                    _system.LoadDrive(0, Configuration.Drive0Image);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not load image '{0}' for drive 0.  Error '{1}'.", Configuration.Drive0Image, e.Message);
                    _system.UnloadDrive(0);
                }
            }

            if (!String.IsNullOrEmpty(Configuration.Drive1Image))
            {
                try
                {
                    _system.LoadDrive(1, Configuration.Drive1Image);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not load image '{0}' for drive 1.  Error '{1}'.", Configuration.Drive1Image, e.Message);
                    _system.UnloadDrive(1);
                }
            }

            //
            // Attach handlers so that we can properly flush state if we're terminated.
            //
            AppDomain.CurrentDomain.ProcessExit += OnProcessExit;

            //
            // Invoke the main UI window; this will run until the user closes it, at which
            // point we are done.
            //
            using (AltoWindow mainWindow = new AltoWindow())
            {
                mainWindow.AttachSystem(_system);
                Application.Run(mainWindow);
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            //
            // Check for command-line arguments.
            // We expect at most one argument, specifying a configuration file to load.
            //
            StartupArgs = args;
            if (args.Length > 1)
            {
                Console.WriteLine("usage: Contralto <config file>");
                return;
            }

            // Handle command-line args
            PrintHerald();

            _system = new AltoSystem();

            // Load disks specified by configuration
            if (!String.IsNullOrEmpty(Configuration.Drive0Image))
            {
                try
                {
                    _system.LoadDiabloDrive(0, Configuration.Drive0Image, false);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not load image '{0}' for Diablo drive 0.  Error '{1}'.", Configuration.Drive0Image, e.Message);
                    _system.UnloadDiabloDrive(0);
                }
            }

            if (!String.IsNullOrEmpty(Configuration.Drive1Image))
            {
                try
                {
                    _system.LoadDiabloDrive(1, Configuration.Drive1Image, false);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not load image '{0}' for Diablo drive 1.  Error '{1}'.", Configuration.Drive1Image, e.Message);
                    _system.UnloadDiabloDrive(1);
                }
            }


            if (Configuration.TridentImages != null)
            {
                for (int i = 0; i < Math.Min(8, Configuration.TridentImages.Count); i++)
                {
                    try
                    {
                        if (!String.IsNullOrWhiteSpace(Configuration.TridentImages[i]))
                        {
                            _system.LoadTridentDrive(i, Configuration.TridentImages[i], false);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Could not load image '{0}' for Trident drive {1}.  Error '{2}'.", Configuration.TridentImages[i], i, e.Message);
                        _system.UnloadTridentDrive(i);
                    }
                }
            }

            //
            // Attach handlers so that we can properly flush state if we're terminated.
            //
            AppDomain.CurrentDomain.ProcessExit += OnProcessExit;

            //
            // Invoke the main UI window; this will run until the user closes it, at which
            // point we are done.
            //

            if (Configuration.Platform == PlatformType.Windows)
            {
                using (AltoWindow mainWindow = new AltoWindow())
                {
                    mainWindow.AttachSystem(_system);
                    Application.Run(mainWindow);
                }
            }
            else
            {
                using (SdlAltoWindow mainWindow = new SdlAltoWindow())
                {
                    // Invoke the command-line console
                    SdlConsole console = new SdlConsole(_system);
                    console.Run(mainWindow);

                    // Start the SDL display running.
                    mainWindow.AttachSystem(_system);
                    mainWindow.Run();
                }
            }
        }
Пример #3
0
        static void Main(string[] args)
        {
            //
            // Check for command-line arguments.
            //
            if (args.Length > 0)
            {
                for (int i = 0; i < args.Length; i++)
                {
                    switch (args[i++].ToLowerInvariant())
                    {
                    case "-config":
                        if (i < args.Length)
                        {
                            StartupOptions.ConfigurationFile = args[i];
                        }
                        else
                        {
                            PrintUsage();
                            return;
                        }
                        break;

                    case "-script":
                        if (i < args.Length)
                        {
                            StartupOptions.ScriptFile = args[i];
                        }
                        else
                        {
                            PrintUsage();
                            return;
                        }
                        break;

                    case "-rompath":
                        if (i < args.Length)
                        {
                            StartupOptions.RomPath = args[i];
                        }
                        else
                        {
                            PrintUsage();
                            return;
                        }
                        break;

                    default:
                        PrintUsage();
                        return;
                    }
                }
            }

            PrintHerald();

            _system = new AltoSystem();

            // Load disks specified by configuration
            if (!String.IsNullOrEmpty(Configuration.Drive0Image))
            {
                try
                {
                    _system.LoadDiabloDrive(0, Configuration.Drive0Image, false);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not load image '{0}' for Diablo drive 0.  Error '{1}'.", Configuration.Drive0Image, e.Message);
                    _system.UnloadDiabloDrive(0);
                }
            }

            if (!String.IsNullOrEmpty(Configuration.Drive1Image))
            {
                try
                {
                    _system.LoadDiabloDrive(1, Configuration.Drive1Image, false);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not load image '{0}' for Diablo drive 1.  Error '{1}'.", Configuration.Drive1Image, e.Message);
                    _system.UnloadDiabloDrive(1);
                }
            }


            if (Configuration.TridentImages != null)
            {
                for (int i = 0; i < Math.Min(8, Configuration.TridentImages.Count); i++)
                {
                    try
                    {
                        if (!String.IsNullOrWhiteSpace(Configuration.TridentImages[i]))
                        {
                            _system.LoadTridentDrive(i, Configuration.TridentImages[i], false);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Could not load image '{0}' for Trident drive {1}.  Error '{2}'.", Configuration.TridentImages[i], i, e.Message);
                        _system.UnloadTridentDrive(i);
                    }
                }
            }

            //
            // Attach handlers so that we can properly flush state if we're terminated.
            //
            AppDomain.CurrentDomain.ProcessExit += OnProcessExit;

            //
            // Invoke the main UI window; this will run until the user closes it, at which
            // point we are done.
            //

            if (Configuration.Platform == PlatformType.Windows)
            {
                using (AltoWindow mainWindow = new AltoWindow())
                {
                    mainWindow.AttachSystem(_system);
                    Application.Run(mainWindow);
                }
            }
            else
            {
                using (SdlAltoWindow mainWindow = new SdlAltoWindow())
                {
                    // Invoke the command-line console
                    SdlConsole console = new SdlConsole(_system);
                    console.Run(mainWindow);

                    // Start the SDL display running.
                    mainWindow.AttachSystem(_system);
                    mainWindow.Run();
                }
            }
        }