Example #1
0
        private void LoadButton_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDlg = new OpenFileDialog()
            {
                Title  = "Pick a Foenix Game File to Open",
                Filter = "FGM (*.fgm)|*.fgm"
            };

            if (openDlg.ShowDialog() == DialogResult.OK)
            {
                CodeTextBox.Text = File.ReadAllText(openDlg.FileName);

                // Check which checkboxes to check
                FoenixLexer fl = new FoenixLexer(CodeTextBox.Text);
                cbSOF.Checked    = fl.GetSub("SOF_IRQ_HANDLER") != null;
                cbSOL.Checked    = fl.GetSub("SOL_IRQ_HANDLER") != null;
                cbTimer0.Checked = fl.GetSub("TIMER0_IRQ_HANDLER") != null;
                cbTimer1.Checked = fl.GetSub("TIMER1_IRQ_HANDLER") != null;
                cbTimer2.Checked = fl.GetSub("TIMER2_IRQ_HANDLER") != null;
                cbMouse.Checked  = fl.GetSub("MOUSE_IRQ_HANDLER") != null;

                cbKeyboard.Checked   = fl.GetSub("KEYBOARD_IRQ_HANDLER") != null;;
                cbCollision0.Checked = fl.GetSub("STS_COL_IRQ_HANDLER") != null;
                cbCollision1.Checked = fl.GetSub("STT_COL_IRQ_HANDLER") != null;
            }
        }
Example #2
0
        private void WriteInterruptHandler(string filename, FoenixLexer fl, IrqType irq)
        {
            List <TokenMatch> sub   = fl.GetSub(irq.ToString() + "_IRQ_HANDLER");
            List <string>     lines = new List <string>();

            if (sub != null)
            {
                foreach (TokenMatch tm in sub)
                {
                    lines.AddRange(GetTemplate(tm));
                }
            }
            File.WriteAllLines(filename, lines);
        }
Example #3
0
        private void cbIRQ_CheckedChanged(object sender, EventArgs e)
        {
            // if the IRQ subroutine doesn't exist, add it.
            CheckBox cb = (CheckBox)sender;

            if (cb.Checked)
            {
                string      irq = cb.Text.Replace("IRQ", "").Trim().ToUpper();
                FoenixLexer fl  = new FoenixLexer(CodeTextBox.Text);
                if (fl.GetSub(irq + "_IRQ_HANDLER") == null)
                {
                    CodeTextBox.Text += "\r\n" +
                                        irq + "_IRQ_HANDLER\r\n" +
                                        "{\r\n" +
                                        "}\r\n";
                }
            }
        }