Пример #1
0
 /// <summary>
 /// Removes all expansion modules
 /// </summary>
 public void RemoveExpansions(ITVComputer in_computer)
 {
     for (int i = 0; i < m_expansions.Count; i++)
     {
         m_expansions[i].ExpansionClass.Remove(in_computer);
     }
 }
Пример #2
0
        public void Install(ITVComputer in_parent)
        {
            m_tvcomputer = in_parent;

            m_SN76489_audio_channel_index = TVCManagers.Default.AudioManager.OpenChannel(RenderSN76489Audio);
            m_SAA1099_audio_channel_index = TVCManagers.Default.AudioManager.OpenChannel(RenderSAA1099Audio);
        }
Пример #3
0
        /// <summary>
        /// Installs expansion module into the computer
        /// </summary>
        /// <param name="in_computer"></param>
        public override void Install(ITVComputer in_computer)
        {
            m_multicart = new SDCart();
            m_multicart.SetSettings((SDCartSettings)Settings);

            in_computer.InsertCartridge(m_multicart);
        }
Пример #4
0
        /// <summary>
        /// Installs expansion module into the computer
        /// </summary>
        /// <param name="in_computer"></param>
        public override void Install(ITVComputer in_computer)
        {
            m_kilocart = new TVCKiloCart();
            m_kilocart.SetSettings((KiloCartSettings)Settings);

            in_computer.InsertCartridge(m_kilocart);
        }
Пример #5
0
        /// <summary>
        /// Installs HBF card to the system
        /// </summary>
        /// <param name="in_tvcomputer"></param>
        public void Install(ITVComputer in_tvcomputer)
        {
            m_tvcomputer = in_tvcomputer;

            // set timing
            m_index_pulse_period = in_tvcomputer.MicrosecToCPUTicks(IndexPulsePeriod);
            m_index_pulse_width  = in_tvcomputer.MicrosecToCPUTicks(IndexPulseWidth);
        }
Пример #6
0
 /// <summary>
 /// Installs expansion modules and starts them
 /// </summary>
 public void InstallExpansions(ITVComputer in_computer)
 {
     // initialize modules
     for (int i = 0; i < m_expansions.Count; i++)
     {
         m_expansions[i].ExpansionClass.Install(in_computer);
     }
 }
Пример #7
0
        public void Remove(ITVComputer in_computer)
        {
            TVCManagers.Default.AudioManager.CloseChannel(m_audio_channel_index);

            in_computer.Ports.RemovePortWriter(0xfe, PortWriteFEH);
            in_computer.Ports.RemovePortWriter(0xff, PortWriteFFH);

            m_audio_channel_index = -1;
            m_sound_chip          = null;
        }
Пример #8
0
        public void Install(ITVComputer in_computer)
        {
            m_tvcomputer = in_computer;

            m_sound_chip = new SAA1099();
            m_sound_chip.Initialize(TVCManagers.Default.AudioManager.SampleRate);

            in_computer.Ports.AddPortWriter(0xfe, PortWriteFEH);
            in_computer.Ports.AddPortWriter(0xff, PortWriteFFH);

            m_audio_channel_index = TVCManagers.Default.AudioManager.OpenChannel(RenderAudio);
        }
Пример #9
0
        /// <summary>
        /// Updates settigns
        /// </summary>
        public void SettingsChanged(ITVComputer in_computer, ref bool in_restart_tvc)
        {
            bool reload_modules = false;

            List <ExpansionSettingsBase> module_list     = m_settings_file.GetExpansionList();
            List <ExpansionSettingsBase> old_module_list = SettingsFile.Previous.GetExpansionList();

            // check if module config has been changed
            if (module_list.Count != old_module_list.Count)
            {
                reload_modules = true;
            }
            else
            {
                for (int i = 0; i < module_list.Count && !reload_modules; i++)
                {
                    if (!module_list[i].Equals(old_module_list[i]))
                    {
                        reload_modules = true;
                    }
                }
            }

            if (reload_modules)
            {
                // remove current expansions
                for (int i = 0; i < m_expansions.Count; i++)
                {
                    m_expansions[i].ExpansionClass.Remove(in_computer);
                }

                // load new expansions
                LoadExpansions();
                InstallExpansions(in_computer);
            }
            else
            {
                // update settings for all expansions
                for (int i = 0; i < m_expansions.Count; i++)
                {
                    m_expansions[i].ExpansionClass.SettingsChanged(ref in_restart_tvc);
                }
            }

            if (reload_modules)
            {
                in_restart_tvc = true;
            }
        }
Пример #10
0
        /// <summary>
        /// Initializes cartridge
        /// </summary>
        /// <param name="in_parent">TVC hardware class</param>
        public void Initialize(ITVComputer in_parent)
        {
            // allocate cartridge memory
            Memory = new byte[CartMemLength];

            // load cartridge content
            try
            {
                TVCConfigurationSettings settings = SettingsFile.Default.GetSettings <TVCConfigurationSettings>();

                if (settings != null && !string.IsNullOrEmpty(settings.CartridgeFileName) && settings.CartridgeActive)
                {
                    ReadCartridgeFile(settings.CartridgeFileName);
                }
            }
            catch
            {
                ClearCartridge();
            }
        }
Пример #11
0
        /// <summary>
        /// Initializes card class
        /// </summary>
        /// <param name="in_parent"></param>
        public void Install(ITVComputer in_parent)
        {
            m_tvcomputer = in_parent;

            // init internal variables
            m_eprom_buffer = new byte[MaxEEPROMSize];
            m_eprom_type   = EPROMType.Unknown;
            m_eprom_mode   = EPROMMode.Unknown;

            // Create PPI chips
            m_ppi1 = new I8255();
            m_ppi2 = new I8255();

            // set event handlers
            m_ppi1.PortAChanged += PPI1PortAChanged;
            m_ppi1.PortBChanged += PPI1PortBChanged;
            m_ppi1.PortCChanged += PPI1PortCChanged;

            m_eprom_mode = EPROMMode.Unknown;
        }
Пример #12
0
 /// <summary>
 /// Removes expansion module from the computer
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Remove(ITVComputer in_computer)
 {
     in_computer.RemoveCard(((NanoSDCardSettings)Settings).SlotIndex);
 }
Пример #13
0
 public void Remove(ITVComputer in_parent)
 {
     TVCManagers.Default.AudioManager.CloseChannel(m_audio_channel_index);
 }
Пример #14
0
 public override void Install(ITVComputer in_computer)
 {
     m_floppy_card = new HBFCard();
     m_floppy_card.SetSettings((HBFCardSettings)Settings);
     in_computer.InsertCard(((HBFCardSettings)Settings).SlotIndex, m_floppy_card);
 }
Пример #15
0
 /// <summary>
 /// Installs expansion module into the computer
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Install(ITVComputer in_computer)
 {
     m_nano_sd_card = new NanoSDCard(this);
     m_nano_sd_card.SetSettings((NanoSDCardSettings)Settings);
     in_computer.InsertCard(((NanoSDCardSettings)Settings).SlotIndex, m_nano_sd_card);
 }
Пример #16
0
 /// <summary>
 /// Installs this expansion to the emulated computer
 /// </summary>
 public virtual void Install(ITVComputer in_computer)
 {
 }
Пример #17
0
 /// <summary>
 /// Installs expansion module into the computer
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Install(ITVComputer in_computer)
 {
     m_game_card = new GameCard(this);
     m_game_card.SetSettings((GameCardSettings)Settings);
     in_computer.InsertCard(((GameCardSettings)Settings).SlotIndex, m_game_card);
 }
Пример #18
0
 /// <summary>
 /// Installs this expansion to the emulated computer
 /// </summary>
 public override void Install(ITVComputer in_computer)
 {
 }
Пример #19
0
 /// <summary>
 /// Removes expansion module from the computer
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Remove(ITVComputer in_computer)
 {
     m_sound_quartett.Remove(in_computer);
 }
Пример #20
0
 /// <summary>
 /// Removes expansion module from the computer
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Remove(ITVComputer in_computer)
 {
     in_computer.RemoveCartridge();
 }
Пример #21
0
 /// <summary>
 /// Initializes expansion module
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Install(ITVComputer in_computer)
 {
     m_eprom_programmer_card = new HBECard();
     m_eprom_programmer_card.SetSettings((HBECardSettings)Settings);
     in_computer.InsertCard(((HBECardSettings)Settings).SlotIndex, m_eprom_programmer_card);
 }
Пример #22
0
 /// <summary>
 /// Removes this expansion module from the emulated computer
 /// </summary>
 public virtual void Remove(ITVComputer in_computer)
 {
 }
Пример #23
0
 public void Initialize(ITVComputer in_parent)
 {
 }
Пример #24
0
 /// <summary>
 /// Installs expansion module into the computer
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Install(ITVComputer in_computer)
 {
     m_sound_magic = new SoundMagicCard();
     m_sound_magic.SetSettings((SoundMagicSettings)Settings);
     in_computer.InsertCard(((SoundMagicSettings)Settings).SlotIndex, m_sound_magic);
 }
Пример #25
0
 /// <summary>
 /// Removes card from the system
 /// </summary>
 public void Remove(ITVComputer in_parent)
 {
     // no action needed
 }
Пример #26
0
 /// <summary>
 /// Removes this expansion module from the emulated computer
 /// </summary>
 public override void Remove(ITVComputer in_computer)
 {
 }
Пример #27
0
 /// <summary>
 /// Removes expansion module from the computer
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Remove(ITVComputer in_computer)
 {
     m_sound_magic.Remove(in_computer);
 }
Пример #28
0
 /// <summary>
 /// Installs expansion module into the computer
 /// </summary>
 /// <param name="in_computer"></param>
 public override void Install(ITVComputer in_computer)
 {
     m_sound_quartett = new SoundQuartettCard();
     m_sound_quartett.SetSettings((SoundQuartettSettings)Settings);
     in_computer.InsertCard(((SoundQuartettSettings)Settings).SlotIndex, m_sound_quartett);
 }
Пример #29
0
 public void Remove(ITVComputer in_parent)
 {
 }
Пример #30
0
 public void Install(ITVComputer in_parent)
 {
     m_tvcomputer = in_parent;
 }