예제 #1
0
        private void OpenFileBtn_Click(object sender, System.EventArgs e)
        {
            OpenFileDialog openFileDL = new OpenFileDialog
            {
                InitialDirectory = @"C:\",
                Title            = "Browse RISC-V Files",

                CheckFileExists = true,
                CheckPathExists = true,

                DefaultExt       = "asm",
                Filter           = "asm files (*.asm)|*.asm",
                FilterIndex      = 2,
                RestoreDirectory = true,

                ReadOnlyChecked = true,
                ShowReadOnly    = true
            };

            if (openFileDL.ShowDialog() == DialogResult.OK)
            {
                filePathTxt.Text = openFileDL.FileName;
                filePathTxt.Focus();
                filePathTxt.SelectionStart = filePathTxt.Text.Length;

                CodeEditorTxt.Text = string.Join("\r\n", FileController.ReadFile(filePathTxt.Text, false));
                CodeEditorCtrl.SetCodeEditorRTB(CodeEditorTxt.Text);
            }
            else
            {
                filePathTxt.Text = "Select *.asm file.";
            }
        }
예제 #2
0
        private void SaveBtn_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDL = new SaveFileDialog
            {
                InitialDirectory = @"C:\",
                Title            = "Browse RISC-V Files",
                DefaultExt       = "asm",
                Filter           = "asm files (*.asm)|*.asm",
                FilterIndex      = 2,
                RestoreDirectory = true
            };

            if (saveFileDL.ShowDialog() == DialogResult.OK)
            {
                File.WriteAllText(saveFileDL.FileName, CodeEditorCtrl.GetCodeEditorRTB());
                MessageBox.Show("The file has been saved!", "INFORMATION", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #3
0
        private void BuildBtn_Click(object sender, System.EventArgs e)
        {
            try
            {
                IsDone = false;
                UpdateErrorLog(ValidateInput.AssembleMsg());
                //string err = MainCTRL.BuildSourceCode(BlockSizeTxt.Text, CacheSizeTxt.Text,
                //    CodeEditorTxt.Text, IsMRU, IsLRU);
                string err = MainCTRL.BuildSourceCode(BlockSizeTxt.Text, CacheSizeTxt.Text,
                                                      CodeEditorCtrl.GetCodeEditorRTB(), IsMRU);
                if (string.IsNullOrEmpty(err))
                {
                    int cacheRowCount = 4 * Int32.Parse(BlockSizeTxt.Text) * Int32.Parse(CacheSizeTxt.Text);
                    MainCTRL.InitializeCache(cacheRowCount, Int32.Parse(BlockSizeTxt.Text));
                    SetCacheDT(MainCTRL.GenerateCacheDT());
                    int wordSize = DataCleaner.BitCounter(Int32.Parse(BlockSizeTxt.Text));
                    CacheController.Init(11 - wordSize, wordSize, Int32.Parse(BlockSizeTxt.Text));

                    UpdateErrorLog(ValidateInput.NoErr());
                    DataTab.SetTemplateDT(MainCTRL.GenerateDataSGDT());
                    TextTab.SetTemplateDT(MainCTRL.GenerateTextSGDT());
                    TextTab.SetColumnWidth();
                    IsAssembled = true;
                    OperationController.NextAddr = "0x00001000";
                }
                else
                {
                    UpdateErrorLog(err);
                    IsAssembled = false;
                }
            }
            catch (Exception ex)
            {
                IsAssembled = false;
                MessageBox.Show(ex.Message);
            }
        }