diff --git a/Main/FoenixSystem.cs b/Main/FoenixSystem.cs index 9c5e0e6..dce5404 100644 --- a/Main/FoenixSystem.cs +++ b/Main/FoenixSystem.cs @@ -493,7 +493,8 @@ public bool ResetCPU(string filename) } } while (!isAddressValid); // Copy the data into memory - MemMgr.CopyBuffer(DataBuffer, 0, DataStartAddress, flen); + MemMgr.RAM.CopyBuffer(DataBuffer, 0, DataStartAddress, flen); + //MemMgr.CopyBuffer(DataBuffer, 0, DataStartAddress, flen); } // Load the .LST file if it exists diff --git a/Main/Properties/AssemblyInfo.cs b/Main/Properties/AssemblyInfo.cs index dda2441..2b47a74 100644 --- a/Main/Properties/AssemblyInfo.cs +++ b/Main/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.6.0.7")] -[assembly: AssemblyFileVersion("0.6.0.7")] +[assembly: AssemblyVersion("0.6.0.8")] +[assembly: AssemblyFileVersion("0.6.0.8")] diff --git a/Main/UI/About.Designer.cs b/Main/UI/About.Designer.cs index da6d324..21cb1dc 100644 --- a/Main/UI/About.Designer.cs +++ b/Main/UI/About.Designer.cs @@ -51,7 +51,7 @@ private void InitializeComponent() this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.CloseButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.CloseButton.Location = new System.Drawing.Point(122, 258); - this.CloseButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.CloseButton.Margin = new System.Windows.Forms.Padding(2); this.CloseButton.Name = "CloseButton"; this.CloseButton.Size = new System.Drawing.Size(70, 28); this.CloseButton.TabIndex = 1; @@ -63,14 +63,14 @@ private void InitializeComponent() // this.FoenixLogo.Image = ((System.Drawing.Image)(resources.GetObject("FoenixLogo.Image"))); this.FoenixLogo.Location = new System.Drawing.Point(2, -46); - this.FoenixLogo.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.FoenixLogo.Margin = new System.Windows.Forms.Padding(2); this.FoenixLogo.Name = "FoenixLogo"; this.FoenixLogo.Size = new System.Drawing.Size(296, 319); this.FoenixLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.FoenixLogo.TabIndex = 2; this.FoenixLogo.TabStop = false; // - // AboutFrom + // AboutForm // this.AcceptButton = this.CloseButton; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -84,10 +84,10 @@ private void InitializeComponent() this.Controls.Add(this.label1); this.Controls.Add(this.FoenixLogo); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.Margin = new System.Windows.Forms.Padding(2); this.MaximizeBox = false; this.MinimizeBox = false; - this.Name = "AboutFrom"; + this.Name = "AboutForm"; this.ShowIcon = false; this.ShowInTaskbar = false; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; diff --git a/Main/UI/About.resx b/Main/UI/About.resx index f290837..0ecfeb9 100644 --- a/Main/UI/About.resx +++ b/Main/UI/About.resx @@ -117,6 +117,15 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + + + True + @@ -1114,4 +1123,7 @@ hBAfQ4kTQoiPocQJIcS3nD37/z2zucqSCtrlAAAAAElFTkSuQmCC + + True + \ No newline at end of file diff --git a/Main/UI/CPUWindow.Designer.cs b/Main/UI/CPUWindow.Designer.cs index 345342e..c681570 100644 --- a/Main/UI/CPUWindow.Designer.cs +++ b/Main/UI/CPUWindow.Designer.cs @@ -54,9 +54,24 @@ private void InitializeComponent() this.StepOverOverlayButton = new System.Windows.Forms.Button(); this.HeaderTextbox = new System.Windows.Forms.Label(); this.irqPanel = new System.Windows.Forms.Panel(); + this.Reg2Label = new System.Windows.Forms.Label(); + this.Reg1Label = new System.Windows.Forms.Label(); + this.Reg0Label = new System.Windows.Forms.Label(); + this.BreakOnIRQCheckBox = new System.Windows.Forms.CheckBox(); + this.LabelOverlayButton = new System.Windows.Forms.Button(); + this.DebugPanel = new System.Windows.Forms.PictureBox(); + this.GabeInt1Check = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.VDMACheck = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.V2TileColCheck = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.GabeInt2Check = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.ExtExpCheck = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.SDCardInsertCheck = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.ParallelPortCheck = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.V2BitColCheck = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.V2SprColCheck = new FoenixIDE.Simulator.Controls.ColorCheckBox(); this.SDCardCheckBox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); - this.OPL2LCheckbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); - this.OPL2RCheckbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.GabeInt0Check = new FoenixIDE.Simulator.Controls.ColorCheckBox(); + this.OPL3Checkbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); this.MPU401Checkbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); this.COM1Checkbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); this.COM2Checkbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); @@ -67,14 +82,8 @@ private void InitializeComponent() this.TMR1Checkbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); this.TMR0Checkbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); this.SOLCheckbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); - this.Reg2Label = new System.Windows.Forms.Label(); - this.Reg1Label = new System.Windows.Forms.Label(); - this.Reg0Label = new System.Windows.Forms.Label(); this.KeyboardCheckBox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); this.SOFCheckbox = new FoenixIDE.Simulator.Controls.ColorCheckBox(); - this.BreakOnIRQCheckBox = new System.Windows.Forms.CheckBox(); - this.LabelOverlayButton = new System.Windows.Forms.Button(); - this.DebugPanel = new System.Windows.Forms.PictureBox(); this.registerDisplay1 = new FoenixIDE.RegisterDisplay(); this.HeaderPanel.SuspendLayout(); this.SecondPanel.SuspendLayout(); @@ -92,18 +101,18 @@ private void InitializeComponent() this.HeaderPanel.Controls.Add(this.RunButton); this.HeaderPanel.Dock = System.Windows.Forms.DockStyle.Top; this.HeaderPanel.Location = new System.Drawing.Point(0, 0); - this.HeaderPanel.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.HeaderPanel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.HeaderPanel.Name = "HeaderPanel"; - this.HeaderPanel.Size = new System.Drawing.Size(1118, 44); + this.HeaderPanel.Size = new System.Drawing.Size(608, 24); this.HeaderPanel.TabIndex = 2; // // BreakpointButton // this.BreakpointButton.Dock = System.Windows.Forms.DockStyle.Left; - this.BreakpointButton.Location = new System.Drawing.Point(699, 0); - this.BreakpointButton.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.BreakpointButton.Location = new System.Drawing.Point(382, 0); + this.BreakpointButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.BreakpointButton.Name = "BreakpointButton"; - this.BreakpointButton.Size = new System.Drawing.Size(139, 44); + this.BreakpointButton.Size = new System.Drawing.Size(76, 24); this.BreakpointButton.TabIndex = 6; this.BreakpointButton.Text = "Breakpoints"; this.BreakpointButton.UseVisualStyleBackColor = true; @@ -112,10 +121,10 @@ private void InitializeComponent() // WatchButton // this.WatchButton.Dock = System.Windows.Forms.DockStyle.Left; - this.WatchButton.Location = new System.Drawing.Point(560, 0); - this.WatchButton.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.WatchButton.Location = new System.Drawing.Point(306, 0); + this.WatchButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.WatchButton.Name = "WatchButton"; - this.WatchButton.Size = new System.Drawing.Size(139, 44); + this.WatchButton.Size = new System.Drawing.Size(76, 24); this.WatchButton.TabIndex = 5; this.WatchButton.Text = "Watch"; this.WatchButton.UseVisualStyleBackColor = true; @@ -124,10 +133,10 @@ private void InitializeComponent() // ResetButton // this.ResetButton.Dock = System.Windows.Forms.DockStyle.Left; - this.ResetButton.Location = new System.Drawing.Point(432, 0); - this.ResetButton.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.ResetButton.Location = new System.Drawing.Point(236, 0); + this.ResetButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.ResetButton.Name = "ResetButton"; - this.ResetButton.Size = new System.Drawing.Size(128, 44); + this.ResetButton.Size = new System.Drawing.Size(70, 24); this.ResetButton.TabIndex = 4; this.ResetButton.Text = "Reset"; this.ResetButton.UseVisualStyleBackColor = true; @@ -136,10 +145,10 @@ private void InitializeComponent() // StepOverButton // this.StepOverButton.Dock = System.Windows.Forms.DockStyle.Left; - this.StepOverButton.Location = new System.Drawing.Point(267, 0); - this.StepOverButton.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.StepOverButton.Location = new System.Drawing.Point(146, 0); + this.StepOverButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.StepOverButton.Name = "StepOverButton"; - this.StepOverButton.Size = new System.Drawing.Size(165, 44); + this.StepOverButton.Size = new System.Drawing.Size(90, 24); this.StepOverButton.TabIndex = 3; this.StepOverButton.Text = "Step Over (F7)"; this.StepOverButton.UseVisualStyleBackColor = true; @@ -148,10 +157,10 @@ private void InitializeComponent() // StepButton // this.StepButton.Dock = System.Windows.Forms.DockStyle.Left; - this.StepButton.Location = new System.Drawing.Point(139, 0); - this.StepButton.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.StepButton.Location = new System.Drawing.Point(76, 0); + this.StepButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.StepButton.Name = "StepButton"; - this.StepButton.Size = new System.Drawing.Size(128, 44); + this.StepButton.Size = new System.Drawing.Size(70, 24); this.StepButton.TabIndex = 2; this.StepButton.Text = "Step (F6)"; this.StepButton.UseVisualStyleBackColor = true; @@ -161,9 +170,9 @@ private void InitializeComponent() // this.RunButton.Dock = System.Windows.Forms.DockStyle.Left; this.RunButton.Location = new System.Drawing.Point(0, 0); - this.RunButton.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.RunButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.RunButton.Name = "RunButton"; - this.RunButton.Size = new System.Drawing.Size(139, 44); + this.RunButton.Size = new System.Drawing.Size(76, 24); this.RunButton.TabIndex = 1; this.RunButton.Tag = "0"; this.RunButton.Text = "Run (F5)"; @@ -173,11 +182,11 @@ private void InitializeComponent() // locationLabel // this.locationLabel.Dock = System.Windows.Forms.DockStyle.Left; - this.locationLabel.Location = new System.Drawing.Point(267, 0); - this.locationLabel.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); + this.locationLabel.Location = new System.Drawing.Point(146, 0); + this.locationLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.locationLabel.Name = "locationLabel"; - this.locationLabel.Padding = new System.Windows.Forms.Padding(0, 7, 0, 0); - this.locationLabel.Size = new System.Drawing.Size(117, 44); + this.locationLabel.Padding = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.locationLabel.Size = new System.Drawing.Size(64, 24); this.locationLabel.TabIndex = 9; this.locationLabel.Text = "Location $"; // @@ -185,10 +194,10 @@ private void InitializeComponent() // this.locationInput.Dock = System.Windows.Forms.DockStyle.Left; this.locationInput.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.locationInput.Location = new System.Drawing.Point(384, 0); - this.locationInput.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.locationInput.Location = new System.Drawing.Point(210, 0); + this.locationInput.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.locationInput.Name = "locationInput"; - this.locationInput.Size = new System.Drawing.Size(114, 39); + this.locationInput.Size = new System.Drawing.Size(64, 23); this.locationInput.TabIndex = 10; this.locationInput.Text = "00:0000"; this.locationInput.Validated += new System.EventHandler(this.LocationInput_Validated); @@ -196,10 +205,10 @@ private void InitializeComponent() // JumpButton // this.JumpButton.Dock = System.Windows.Forms.DockStyle.Left; - this.JumpButton.Location = new System.Drawing.Point(139, 0); - this.JumpButton.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.JumpButton.Location = new System.Drawing.Point(76, 0); + this.JumpButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.JumpButton.Name = "JumpButton"; - this.JumpButton.Size = new System.Drawing.Size(128, 44); + this.JumpButton.Size = new System.Drawing.Size(70, 24); this.JumpButton.TabIndex = 10; this.JumpButton.Text = "Jump"; this.JumpButton.UseVisualStyleBackColor = true; @@ -211,11 +220,11 @@ private void InitializeComponent() | System.Windows.Forms.AnchorStyles.Right))); this.lastLine.BackColor = System.Drawing.SystemColors.ControlLightLight; this.lastLine.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lastLine.Location = new System.Drawing.Point(2, 877); - this.lastLine.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.lastLine.Location = new System.Drawing.Point(1, 462); + this.lastLine.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.lastLine.Name = "lastLine"; this.lastLine.ReadOnly = true; - this.lastLine.Size = new System.Drawing.Size(1106, 39); + this.lastLine.Size = new System.Drawing.Size(605, 23); this.lastLine.TabIndex = 4; this.lastLine.Text = "Click [Step] to execute an instruction"; this.lastLine.WordWrap = false; @@ -226,12 +235,12 @@ private void InitializeComponent() this.stackText.BackColor = System.Drawing.SystemColors.ControlLightLight; this.stackText.Dock = System.Windows.Forms.DockStyle.Right; this.stackText.Font = new System.Drawing.Font("Consolas", 10F); - this.stackText.Location = new System.Drawing.Point(1118, 0); - this.stackText.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.stackText.Location = new System.Drawing.Point(608, 0); + this.stackText.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.stackText.Multiline = true; this.stackText.Name = "stackText"; this.stackText.ReadOnly = true; - this.stackText.Size = new System.Drawing.Size(272, 864); + this.stackText.Size = new System.Drawing.Size(150, 485); this.stackText.TabIndex = 3; // // UpdateTraceTimer @@ -244,19 +253,19 @@ private void InitializeComponent() this.SecondPanel.Controls.Add(this.locationLabel); this.SecondPanel.Controls.Add(this.JumpButton); this.SecondPanel.Controls.Add(this.ClearTraceButton); - this.SecondPanel.Location = new System.Drawing.Point(0, 46); - this.SecondPanel.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.SecondPanel.Location = new System.Drawing.Point(0, 25); + this.SecondPanel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.SecondPanel.Name = "SecondPanel"; - this.SecondPanel.Size = new System.Drawing.Size(671, 44); + this.SecondPanel.Size = new System.Drawing.Size(366, 24); this.SecondPanel.TabIndex = 5; // // ClearTraceButton // this.ClearTraceButton.Dock = System.Windows.Forms.DockStyle.Left; this.ClearTraceButton.Location = new System.Drawing.Point(0, 0); - this.ClearTraceButton.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.ClearTraceButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.ClearTraceButton.Name = "ClearTraceButton"; - this.ClearTraceButton.Size = new System.Drawing.Size(139, 44); + this.ClearTraceButton.Size = new System.Drawing.Size(76, 24); this.ClearTraceButton.TabIndex = 9; this.ClearTraceButton.Text = "Clear Trace"; this.ClearTraceButton.UseVisualStyleBackColor = true; @@ -267,10 +276,10 @@ private void InitializeComponent() this.AddBPOverlayButton.BackColor = System.Drawing.SystemColors.ActiveCaption; this.AddBPOverlayButton.FlatAppearance.BorderSize = 0; this.AddBPOverlayButton.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.AddBPOverlayButton.Location = new System.Drawing.Point(183, 369); - this.AddBPOverlayButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.AddBPOverlayButton.Location = new System.Drawing.Point(100, 200); + this.AddBPOverlayButton.Margin = new System.Windows.Forms.Padding(2); this.AddBPOverlayButton.Name = "AddBPOverlayButton"; - this.AddBPOverlayButton.Size = new System.Drawing.Size(33, 33); + this.AddBPOverlayButton.Size = new System.Drawing.Size(18, 18); this.AddBPOverlayButton.TabIndex = 7; this.AddBPOverlayButton.TabStop = false; this.AddBPOverlayButton.Text = "+"; @@ -283,10 +292,10 @@ private void InitializeComponent() this.DeleteBPOverlayButton.BackColor = System.Drawing.SystemColors.ActiveCaption; this.DeleteBPOverlayButton.FlatAppearance.BorderSize = 0; this.DeleteBPOverlayButton.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.DeleteBPOverlayButton.Location = new System.Drawing.Point(216, 369); - this.DeleteBPOverlayButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.DeleteBPOverlayButton.Location = new System.Drawing.Point(118, 200); + this.DeleteBPOverlayButton.Margin = new System.Windows.Forms.Padding(2); this.DeleteBPOverlayButton.Name = "DeleteBPOverlayButton"; - this.DeleteBPOverlayButton.Size = new System.Drawing.Size(33, 33); + this.DeleteBPOverlayButton.Size = new System.Drawing.Size(18, 18); this.DeleteBPOverlayButton.TabIndex = 8; this.DeleteBPOverlayButton.TabStop = false; this.DeleteBPOverlayButton.Text = "-"; @@ -299,10 +308,10 @@ private void InitializeComponent() this.InspectOverlayButton.BackColor = System.Drawing.SystemColors.ActiveCaption; this.InspectOverlayButton.FlatAppearance.BorderSize = 0; this.InspectOverlayButton.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.InspectOverlayButton.Location = new System.Drawing.Point(251, 369); - this.InspectOverlayButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.InspectOverlayButton.Location = new System.Drawing.Point(137, 200); + this.InspectOverlayButton.Margin = new System.Windows.Forms.Padding(1); this.InspectOverlayButton.Name = "InspectOverlayButton"; - this.InspectOverlayButton.Size = new System.Drawing.Size(70, 33); + this.InspectOverlayButton.Size = new System.Drawing.Size(38, 18); this.InspectOverlayButton.TabIndex = 9; this.InspectOverlayButton.TabStop = false; this.InspectOverlayButton.Text = "Mem"; @@ -316,10 +325,10 @@ private void InitializeComponent() this.StepOverOverlayButton.FlatAppearance.BorderSize = 0; this.StepOverOverlayButton.FlatStyle = System.Windows.Forms.FlatStyle.System; this.StepOverOverlayButton.Font = new System.Drawing.Font("Arial Narrow", 9.857143F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.StepOverOverlayButton.Location = new System.Drawing.Point(323, 369); - this.StepOverOverlayButton.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.StepOverOverlayButton.Location = new System.Drawing.Point(176, 200); + this.StepOverOverlayButton.Margin = new System.Windows.Forms.Padding(1); this.StepOverOverlayButton.Name = "StepOverOverlayButton"; - this.StepOverOverlayButton.Size = new System.Drawing.Size(40, 33); + this.StepOverOverlayButton.Size = new System.Drawing.Size(22, 18); this.StepOverOverlayButton.TabIndex = 10; this.StepOverOverlayButton.TabStop = false; this.StepOverOverlayButton.Text = "►"; @@ -336,20 +345,29 @@ private void InitializeComponent() this.HeaderTextbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.HeaderTextbox.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.HeaderTextbox.ForeColor = System.Drawing.SystemColors.ControlLightLight; - this.HeaderTextbox.Location = new System.Drawing.Point(4, 188); + this.HeaderTextbox.Location = new System.Drawing.Point(2, 102); this.HeaderTextbox.Margin = new System.Windows.Forms.Padding(0); this.HeaderTextbox.Name = "HeaderTextbox"; - this.HeaderTextbox.Padding = new System.Windows.Forms.Padding(4, 6, 4, 4); - this.HeaderTextbox.Size = new System.Drawing.Size(1107, 41); + this.HeaderTextbox.Padding = new System.Windows.Forms.Padding(2, 3, 2, 2); + this.HeaderTextbox.Size = new System.Drawing.Size(604, 22); this.HeaderTextbox.TabIndex = 11; this.HeaderTextbox.UseCompatibleTextRendering = true; this.HeaderTextbox.UseMnemonic = false; // // irqPanel // + this.irqPanel.Controls.Add(this.GabeInt1Check); + this.irqPanel.Controls.Add(this.VDMACheck); + this.irqPanel.Controls.Add(this.V2TileColCheck); + this.irqPanel.Controls.Add(this.GabeInt2Check); + this.irqPanel.Controls.Add(this.ExtExpCheck); + this.irqPanel.Controls.Add(this.SDCardInsertCheck); + this.irqPanel.Controls.Add(this.ParallelPortCheck); + this.irqPanel.Controls.Add(this.V2BitColCheck); + this.irqPanel.Controls.Add(this.V2SprColCheck); this.irqPanel.Controls.Add(this.SDCardCheckBox); - this.irqPanel.Controls.Add(this.OPL2LCheckbox); - this.irqPanel.Controls.Add(this.OPL2RCheckbox); + this.irqPanel.Controls.Add(this.GabeInt0Check); + this.irqPanel.Controls.Add(this.OPL3Checkbox); this.irqPanel.Controls.Add(this.MPU401Checkbox); this.irqPanel.Controls.Add(this.COM1Checkbox); this.irqPanel.Controls.Add(this.COM2Checkbox); @@ -366,56 +384,269 @@ private void InitializeComponent() this.irqPanel.Controls.Add(this.KeyboardCheckBox); this.irqPanel.Controls.Add(this.SOFCheckbox); this.irqPanel.Controls.Add(this.BreakOnIRQCheckBox); - this.irqPanel.Location = new System.Drawing.Point(682, 46); - this.irqPanel.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.irqPanel.Location = new System.Drawing.Point(372, 25); + this.irqPanel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.irqPanel.Name = "irqPanel"; - this.irqPanel.Size = new System.Drawing.Size(414, 137); + this.irqPanel.Size = new System.Drawing.Size(226, 74); this.irqPanel.TabIndex = 12; // + // Reg2Label + // + this.Reg2Label.AutoSize = true; + this.Reg2Label.Location = new System.Drawing.Point(4, 57); + this.Reg2Label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.Reg2Label.Name = "Reg2Label"; + this.Reg2Label.Size = new System.Drawing.Size(58, 13); + this.Reg2Label.TabIndex = 21; + this.Reg2Label.Text = "IRQ Reg 2"; + // + // Reg1Label + // + this.Reg1Label.AutoSize = true; + this.Reg1Label.Location = new System.Drawing.Point(4, 39); + this.Reg1Label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.Reg1Label.Name = "Reg1Label"; + this.Reg1Label.Size = new System.Drawing.Size(58, 13); + this.Reg1Label.TabIndex = 20; + this.Reg1Label.Text = "IRQ Reg 1"; + // + // Reg0Label + // + this.Reg0Label.AutoSize = true; + this.Reg0Label.Location = new System.Drawing.Point(4, 22); + this.Reg0Label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.Reg0Label.Name = "Reg0Label"; + this.Reg0Label.Size = new System.Drawing.Size(58, 13); + this.Reg0Label.TabIndex = 19; + this.Reg0Label.Text = "IRQ Reg 0"; + // + // BreakOnIRQCheckBox + // + this.BreakOnIRQCheckBox.AutoSize = true; + this.BreakOnIRQCheckBox.BackColor = System.Drawing.SystemColors.Control; + this.BreakOnIRQCheckBox.Checked = true; + this.BreakOnIRQCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + this.BreakOnIRQCheckBox.Location = new System.Drawing.Point(4, 3); + this.BreakOnIRQCheckBox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.BreakOnIRQCheckBox.Name = "BreakOnIRQCheckBox"; + this.BreakOnIRQCheckBox.Size = new System.Drawing.Size(91, 17); + this.BreakOnIRQCheckBox.TabIndex = 16; + this.BreakOnIRQCheckBox.Text = "Break on IRQ"; + this.BreakOnIRQCheckBox.UseVisualStyleBackColor = false; + this.BreakOnIRQCheckBox.CheckedChanged += new System.EventHandler(this.BreakOnIRQCheckBox_CheckedChanged); + // + // LabelOverlayButton + // + this.LabelOverlayButton.BackColor = System.Drawing.SystemColors.ActiveCaption; + this.LabelOverlayButton.FlatAppearance.BorderSize = 0; + this.LabelOverlayButton.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.LabelOverlayButton.Location = new System.Drawing.Point(198, 200); + this.LabelOverlayButton.Margin = new System.Windows.Forms.Padding(2); + this.LabelOverlayButton.Name = "LabelOverlayButton"; + this.LabelOverlayButton.Size = new System.Drawing.Size(18, 18); + this.LabelOverlayButton.TabIndex = 13; + this.LabelOverlayButton.TabStop = false; + this.LabelOverlayButton.Text = "L"; + this.LabelOverlayButton.UseVisualStyleBackColor = false; + this.LabelOverlayButton.Visible = false; + this.LabelOverlayButton.Click += new System.EventHandler(this.LabelOverlayButton_Click); + // + // DebugPanel + // + this.DebugPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DebugPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.DebugPanel.Location = new System.Drawing.Point(0, 126); + this.DebugPanel.Margin = new System.Windows.Forms.Padding(2); + this.DebugPanel.Name = "DebugPanel"; + this.DebugPanel.Size = new System.Drawing.Size(606, 334); + this.DebugPanel.TabIndex = 6; + this.DebugPanel.TabStop = false; + this.DebugPanel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.DebugPanel_MouseClick); + this.DebugPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DebugPanel_MouseMove); + // + // GabeInt1Check + // + this.GabeInt1Check.Checked = true; + this.GabeInt1Check.CheckState = System.Windows.Forms.CheckState.Checked; + this.GabeInt1Check.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.GabeInt1Check.IsActive = false; + this.GabeInt1Check.Location = new System.Drawing.Point(173, 56); + this.GabeInt1Check.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.GabeInt1Check.Name = "GabeInt1Check"; + this.GabeInt1Check.Size = new System.Drawing.Size(16, 14); + this.GabeInt1Check.TabIndex = 42; + this.GabeInt1Check.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.GabeInt1Check.UseVisualStyleBackColor = true; + this.GabeInt1Check.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // VDMACheck + // + this.VDMACheck.Checked = true; + this.VDMACheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.VDMACheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.VDMACheck.IsActive = false; + this.VDMACheck.Location = new System.Drawing.Point(156, 56); + this.VDMACheck.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.VDMACheck.Name = "VDMACheck"; + this.VDMACheck.Size = new System.Drawing.Size(16, 14); + this.VDMACheck.TabIndex = 41; + this.VDMACheck.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.VDMACheck.UseVisualStyleBackColor = true; + this.VDMACheck.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // V2TileColCheck + // + this.V2TileColCheck.Checked = true; + this.V2TileColCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.V2TileColCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.V2TileColCheck.IsActive = false; + this.V2TileColCheck.Location = new System.Drawing.Point(139, 56); + this.V2TileColCheck.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.V2TileColCheck.Name = "V2TileColCheck"; + this.V2TileColCheck.Size = new System.Drawing.Size(16, 14); + this.V2TileColCheck.TabIndex = 40; + this.V2TileColCheck.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.V2TileColCheck.UseVisualStyleBackColor = true; + this.V2TileColCheck.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // GabeInt2Check + // + this.GabeInt2Check.Checked = true; + this.GabeInt2Check.CheckState = System.Windows.Forms.CheckState.Checked; + this.GabeInt2Check.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.GabeInt2Check.IsActive = false; + this.GabeInt2Check.Location = new System.Drawing.Point(122, 56); + this.GabeInt2Check.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.GabeInt2Check.Name = "GabeInt2Check"; + this.GabeInt2Check.Size = new System.Drawing.Size(16, 14); + this.GabeInt2Check.TabIndex = 39; + this.GabeInt2Check.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.GabeInt2Check.UseVisualStyleBackColor = true; + this.GabeInt2Check.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // ExtExpCheck + // + this.ExtExpCheck.Checked = true; + this.ExtExpCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.ExtExpCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.ExtExpCheck.IsActive = false; + this.ExtExpCheck.Location = new System.Drawing.Point(106, 56); + this.ExtExpCheck.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.ExtExpCheck.Name = "ExtExpCheck"; + this.ExtExpCheck.Size = new System.Drawing.Size(16, 14); + this.ExtExpCheck.TabIndex = 38; + this.ExtExpCheck.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.ExtExpCheck.UseVisualStyleBackColor = true; + this.ExtExpCheck.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // SDCardInsertCheck + // + this.SDCardInsertCheck.Checked = true; + this.SDCardInsertCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.SDCardInsertCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.SDCardInsertCheck.IsActive = false; + this.SDCardInsertCheck.Location = new System.Drawing.Point(88, 56); + this.SDCardInsertCheck.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.SDCardInsertCheck.Name = "SDCardInsertCheck"; + this.SDCardInsertCheck.Size = new System.Drawing.Size(16, 14); + this.SDCardInsertCheck.TabIndex = 34; + this.SDCardInsertCheck.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.SDCardInsertCheck.UseVisualStyleBackColor = true; + this.SDCardInsertCheck.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // ParallelPortCheck + // + this.ParallelPortCheck.Checked = true; + this.ParallelPortCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.ParallelPortCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.ParallelPortCheck.IsActive = false; + this.ParallelPortCheck.Location = new System.Drawing.Point(106, 39); + this.ParallelPortCheck.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.ParallelPortCheck.Name = "ParallelPortCheck"; + this.ParallelPortCheck.Size = new System.Drawing.Size(16, 14); + this.ParallelPortCheck.TabIndex = 37; + this.ParallelPortCheck.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.ParallelPortCheck.UseVisualStyleBackColor = true; + this.ParallelPortCheck.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // V2BitColCheck + // + this.V2BitColCheck.BackColor = System.Drawing.SystemColors.Control; + this.V2BitColCheck.Checked = true; + this.V2BitColCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.V2BitColCheck.FlatAppearance.BorderSize = 0; + this.V2BitColCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.V2BitColCheck.IsActive = false; + this.V2BitColCheck.Location = new System.Drawing.Point(173, 39); + this.V2BitColCheck.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.V2BitColCheck.Name = "V2BitColCheck"; + this.V2BitColCheck.Size = new System.Drawing.Size(16, 14); + this.V2BitColCheck.TabIndex = 36; + this.V2BitColCheck.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.V2BitColCheck.UseVisualStyleBackColor = false; + this.V2BitColCheck.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // V2SprColCheck + // + this.V2SprColCheck.Checked = true; + this.V2SprColCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.V2SprColCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.V2SprColCheck.IsActive = false; + this.V2SprColCheck.Location = new System.Drawing.Point(190, 39); + this.V2SprColCheck.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.V2SprColCheck.Name = "V2SprColCheck"; + this.V2SprColCheck.Size = new System.Drawing.Size(16, 14); + this.V2SprColCheck.TabIndex = 35; + this.V2SprColCheck.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.V2SprColCheck.UseVisualStyleBackColor = true; + this.V2SprColCheck.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // // SDCardCheckBox // this.SDCardCheckBox.Checked = true; this.SDCardCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.SDCardCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.SDCardCheckBox.IsActive = false; - this.SDCardCheckBox.Location = new System.Drawing.Point(161, 70); - this.SDCardCheckBox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.SDCardCheckBox.Location = new System.Drawing.Point(88, 39); + this.SDCardCheckBox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.SDCardCheckBox.Name = "SDCardCheckBox"; - this.SDCardCheckBox.Size = new System.Drawing.Size(29, 26); + this.SDCardCheckBox.Size = new System.Drawing.Size(16, 14); this.SDCardCheckBox.TabIndex = 34; this.SDCardCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.SDCardCheckBox.UseVisualStyleBackColor = true; this.SDCardCheckBox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); // - // OPL2LCheckbox - // - this.OPL2LCheckbox.Checked = true; - this.OPL2LCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; - this.OPL2LCheckbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.OPL2LCheckbox.IsActive = false; - this.OPL2LCheckbox.Location = new System.Drawing.Point(348, 103); - this.OPL2LCheckbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); - this.OPL2LCheckbox.Name = "OPL2LCheckbox"; - this.OPL2LCheckbox.Size = new System.Drawing.Size(29, 26); - this.OPL2LCheckbox.TabIndex = 33; - this.OPL2LCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.OPL2LCheckbox.UseVisualStyleBackColor = true; - this.OPL2LCheckbox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); - // - // OPL2RCheckbox - // - this.OPL2RCheckbox.Checked = true; - this.OPL2RCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; - this.OPL2RCheckbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.OPL2RCheckbox.IsActive = false; - this.OPL2RCheckbox.Location = new System.Drawing.Point(378, 103); - this.OPL2RCheckbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); - this.OPL2RCheckbox.Name = "OPL2RCheckbox"; - this.OPL2RCheckbox.Size = new System.Drawing.Size(29, 26); - this.OPL2RCheckbox.TabIndex = 32; - this.OPL2RCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.OPL2RCheckbox.UseVisualStyleBackColor = true; - this.OPL2RCheckbox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // GabeInt0Check + // + this.GabeInt0Check.Checked = true; + this.GabeInt0Check.CheckState = System.Windows.Forms.CheckState.Checked; + this.GabeInt0Check.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.GabeInt0Check.IsActive = false; + this.GabeInt0Check.Location = new System.Drawing.Point(190, 56); + this.GabeInt0Check.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.GabeInt0Check.Name = "GabeInt0Check"; + this.GabeInt0Check.Size = new System.Drawing.Size(16, 14); + this.GabeInt0Check.TabIndex = 33; + this.GabeInt0Check.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.GabeInt0Check.UseVisualStyleBackColor = true; + this.GabeInt0Check.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); + // + // OPL3Checkbox + // + this.OPL3Checkbox.Checked = true; + this.OPL3Checkbox.CheckState = System.Windows.Forms.CheckState.Checked; + this.OPL3Checkbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.OPL3Checkbox.IsActive = false; + this.OPL3Checkbox.Location = new System.Drawing.Point(206, 56); + this.OPL3Checkbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.OPL3Checkbox.Name = "OPL3Checkbox"; + this.OPL3Checkbox.Size = new System.Drawing.Size(16, 14); + this.OPL3Checkbox.TabIndex = 32; + this.OPL3Checkbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.OPL3Checkbox.UseVisualStyleBackColor = true; + this.OPL3Checkbox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); // // MPU401Checkbox // @@ -423,10 +654,10 @@ private void InitializeComponent() this.MPU401Checkbox.CheckState = System.Windows.Forms.CheckState.Checked; this.MPU401Checkbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.MPU401Checkbox.IsActive = false; - this.MPU401Checkbox.Location = new System.Drawing.Point(224, 70); - this.MPU401Checkbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.MPU401Checkbox.Location = new System.Drawing.Point(122, 39); + this.MPU401Checkbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.MPU401Checkbox.Name = "MPU401Checkbox"; - this.MPU401Checkbox.Size = new System.Drawing.Size(29, 26); + this.MPU401Checkbox.Size = new System.Drawing.Size(16, 14); this.MPU401Checkbox.TabIndex = 31; this.MPU401Checkbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.MPU401Checkbox.UseVisualStyleBackColor = true; @@ -438,10 +669,10 @@ private void InitializeComponent() this.COM1Checkbox.CheckState = System.Windows.Forms.CheckState.Checked; this.COM1Checkbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.COM1Checkbox.IsActive = false; - this.COM1Checkbox.Location = new System.Drawing.Point(255, 70); - this.COM1Checkbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.COM1Checkbox.Location = new System.Drawing.Point(139, 39); + this.COM1Checkbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.COM1Checkbox.Name = "COM1Checkbox"; - this.COM1Checkbox.Size = new System.Drawing.Size(29, 26); + this.COM1Checkbox.Size = new System.Drawing.Size(16, 14); this.COM1Checkbox.TabIndex = 30; this.COM1Checkbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.COM1Checkbox.UseVisualStyleBackColor = true; @@ -453,10 +684,10 @@ private void InitializeComponent() this.COM2Checkbox.CheckState = System.Windows.Forms.CheckState.Checked; this.COM2Checkbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.COM2Checkbox.IsActive = false; - this.COM2Checkbox.Location = new System.Drawing.Point(286, 70); - this.COM2Checkbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.COM2Checkbox.Location = new System.Drawing.Point(156, 39); + this.COM2Checkbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.COM2Checkbox.Name = "COM2Checkbox"; - this.COM2Checkbox.Size = new System.Drawing.Size(29, 26); + this.COM2Checkbox.Size = new System.Drawing.Size(16, 14); this.COM2Checkbox.TabIndex = 29; this.COM2Checkbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.COM2Checkbox.UseVisualStyleBackColor = true; @@ -468,13 +699,14 @@ private void InitializeComponent() this.FDCCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.FDCCheckbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.FDCCheckbox.IsActive = false; - this.FDCCheckbox.Location = new System.Drawing.Point(194, 39); - this.FDCCheckbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.FDCCheckbox.Location = new System.Drawing.Point(106, 21); + this.FDCCheckbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.FDCCheckbox.Name = "FDCCheckbox"; - this.FDCCheckbox.Size = new System.Drawing.Size(29, 26); + this.FDCCheckbox.Size = new System.Drawing.Size(16, 14); this.FDCCheckbox.TabIndex = 28; this.FDCCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.FDCCheckbox.UseVisualStyleBackColor = true; + this.FDCCheckbox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); // // MouseCheckbox // @@ -482,10 +714,10 @@ private void InitializeComponent() this.MouseCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.MouseCheckbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.MouseCheckbox.IsActive = false; - this.MouseCheckbox.Location = new System.Drawing.Point(161, 39); - this.MouseCheckbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.MouseCheckbox.Location = new System.Drawing.Point(88, 21); + this.MouseCheckbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.MouseCheckbox.Name = "MouseCheckbox"; - this.MouseCheckbox.Size = new System.Drawing.Size(29, 26); + this.MouseCheckbox.Size = new System.Drawing.Size(16, 14); this.MouseCheckbox.TabIndex = 27; this.MouseCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.MouseCheckbox.UseVisualStyleBackColor = true; @@ -497,13 +729,14 @@ private void InitializeComponent() this.RTCCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.RTCCheckbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.RTCCheckbox.IsActive = false; - this.RTCCheckbox.Location = new System.Drawing.Point(224, 39); - this.RTCCheckbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.RTCCheckbox.Location = new System.Drawing.Point(122, 21); + this.RTCCheckbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.RTCCheckbox.Name = "RTCCheckbox"; - this.RTCCheckbox.Size = new System.Drawing.Size(29, 26); + this.RTCCheckbox.Size = new System.Drawing.Size(16, 14); this.RTCCheckbox.TabIndex = 26; this.RTCCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.RTCCheckbox.UseVisualStyleBackColor = true; + this.RTCCheckbox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); // // TMR2Checkbox // @@ -511,13 +744,14 @@ private void InitializeComponent() this.TMR2Checkbox.CheckState = System.Windows.Forms.CheckState.Checked; this.TMR2Checkbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.TMR2Checkbox.IsActive = false; - this.TMR2Checkbox.Location = new System.Drawing.Point(255, 39); - this.TMR2Checkbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.TMR2Checkbox.Location = new System.Drawing.Point(139, 21); + this.TMR2Checkbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.TMR2Checkbox.Name = "TMR2Checkbox"; - this.TMR2Checkbox.Size = new System.Drawing.Size(29, 26); + this.TMR2Checkbox.Size = new System.Drawing.Size(16, 14); this.TMR2Checkbox.TabIndex = 25; this.TMR2Checkbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.TMR2Checkbox.UseVisualStyleBackColor = true; + this.TMR2Checkbox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); // // TMR1Checkbox // @@ -525,10 +759,10 @@ private void InitializeComponent() this.TMR1Checkbox.CheckState = System.Windows.Forms.CheckState.Checked; this.TMR1Checkbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.TMR1Checkbox.IsActive = false; - this.TMR1Checkbox.Location = new System.Drawing.Point(286, 39); - this.TMR1Checkbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.TMR1Checkbox.Location = new System.Drawing.Point(156, 21); + this.TMR1Checkbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.TMR1Checkbox.Name = "TMR1Checkbox"; - this.TMR1Checkbox.Size = new System.Drawing.Size(29, 26); + this.TMR1Checkbox.Size = new System.Drawing.Size(16, 14); this.TMR1Checkbox.TabIndex = 24; this.TMR1Checkbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.TMR1Checkbox.UseVisualStyleBackColor = true; @@ -541,10 +775,10 @@ private void InitializeComponent() this.TMR0Checkbox.FlatAppearance.BorderSize = 0; this.TMR0Checkbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.TMR0Checkbox.IsActive = false; - this.TMR0Checkbox.Location = new System.Drawing.Point(317, 39); - this.TMR0Checkbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.TMR0Checkbox.Location = new System.Drawing.Point(173, 21); + this.TMR0Checkbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.TMR0Checkbox.Name = "TMR0Checkbox"; - this.TMR0Checkbox.Size = new System.Drawing.Size(29, 26); + this.TMR0Checkbox.Size = new System.Drawing.Size(16, 14); this.TMR0Checkbox.TabIndex = 23; this.TMR0Checkbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.TMR0Checkbox.UseVisualStyleBackColor = false; @@ -556,55 +790,25 @@ private void InitializeComponent() this.SOLCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.SOLCheckbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.SOLCheckbox.IsActive = false; - this.SOLCheckbox.Location = new System.Drawing.Point(348, 39); - this.SOLCheckbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.SOLCheckbox.Location = new System.Drawing.Point(190, 21); + this.SOLCheckbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.SOLCheckbox.Name = "SOLCheckbox"; - this.SOLCheckbox.Size = new System.Drawing.Size(29, 26); + this.SOLCheckbox.Size = new System.Drawing.Size(16, 14); this.SOLCheckbox.TabIndex = 22; this.SOLCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.SOLCheckbox.UseVisualStyleBackColor = true; this.SOLCheckbox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); // - // Reg2Label - // - this.Reg2Label.AutoSize = true; - this.Reg2Label.Location = new System.Drawing.Point(7, 105); - this.Reg2Label.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); - this.Reg2Label.Name = "Reg2Label"; - this.Reg2Label.Size = new System.Drawing.Size(97, 24); - this.Reg2Label.TabIndex = 21; - this.Reg2Label.Text = "IRQ Reg 2"; - // - // Reg1Label - // - this.Reg1Label.AutoSize = true; - this.Reg1Label.Location = new System.Drawing.Point(7, 72); - this.Reg1Label.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); - this.Reg1Label.Name = "Reg1Label"; - this.Reg1Label.Size = new System.Drawing.Size(97, 24); - this.Reg1Label.TabIndex = 20; - this.Reg1Label.Text = "IRQ Reg 1"; - // - // Reg0Label - // - this.Reg0Label.AutoSize = true; - this.Reg0Label.Location = new System.Drawing.Point(7, 41); - this.Reg0Label.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); - this.Reg0Label.Name = "Reg0Label"; - this.Reg0Label.Size = new System.Drawing.Size(97, 24); - this.Reg0Label.TabIndex = 19; - this.Reg0Label.Text = "IRQ Reg 0"; - // // KeyboardCheckBox // this.KeyboardCheckBox.Checked = true; this.KeyboardCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; this.KeyboardCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.KeyboardCheckBox.IsActive = false; - this.KeyboardCheckBox.Location = new System.Drawing.Point(378, 72); - this.KeyboardCheckBox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.KeyboardCheckBox.Location = new System.Drawing.Point(206, 39); + this.KeyboardCheckBox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.KeyboardCheckBox.Name = "KeyboardCheckBox"; - this.KeyboardCheckBox.Size = new System.Drawing.Size(29, 26); + this.KeyboardCheckBox.Size = new System.Drawing.Size(16, 14); this.KeyboardCheckBox.TabIndex = 18; this.KeyboardCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.KeyboardCheckBox.UseVisualStyleBackColor = true; @@ -616,76 +820,30 @@ private void InitializeComponent() this.SOFCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.SOFCheckbox.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.SOFCheckbox.IsActive = false; - this.SOFCheckbox.Location = new System.Drawing.Point(378, 39); - this.SOFCheckbox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.SOFCheckbox.Location = new System.Drawing.Point(206, 21); + this.SOFCheckbox.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.SOFCheckbox.Name = "SOFCheckbox"; - this.SOFCheckbox.Size = new System.Drawing.Size(29, 26); + this.SOFCheckbox.Size = new System.Drawing.Size(16, 14); this.SOFCheckbox.TabIndex = 17; this.SOFCheckbox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.SOFCheckbox.UseVisualStyleBackColor = true; this.SOFCheckbox.CheckedChanged += new System.EventHandler(this.IRQCheckbox_CheckedChanged); // - // BreakOnIRQCheckBox - // - this.BreakOnIRQCheckBox.AutoSize = true; - this.BreakOnIRQCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.BreakOnIRQCheckBox.Checked = true; - this.BreakOnIRQCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; - this.BreakOnIRQCheckBox.Location = new System.Drawing.Point(7, 6); - this.BreakOnIRQCheckBox.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); - this.BreakOnIRQCheckBox.Name = "BreakOnIRQCheckBox"; - this.BreakOnIRQCheckBox.Size = new System.Drawing.Size(154, 28); - this.BreakOnIRQCheckBox.TabIndex = 16; - this.BreakOnIRQCheckBox.Text = "Break on IRQ"; - this.BreakOnIRQCheckBox.UseVisualStyleBackColor = false; - this.BreakOnIRQCheckBox.CheckedChanged += new System.EventHandler(this.BreakOnIRQCheckBox_CheckedChanged); - // - // LabelOverlayButton - // - this.LabelOverlayButton.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.LabelOverlayButton.FlatAppearance.BorderSize = 0; - this.LabelOverlayButton.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.LabelOverlayButton.Location = new System.Drawing.Point(363, 369); - this.LabelOverlayButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.LabelOverlayButton.Name = "LabelOverlayButton"; - this.LabelOverlayButton.Size = new System.Drawing.Size(33, 33); - this.LabelOverlayButton.TabIndex = 13; - this.LabelOverlayButton.TabStop = false; - this.LabelOverlayButton.Text = "L"; - this.LabelOverlayButton.UseVisualStyleBackColor = false; - this.LabelOverlayButton.Visible = false; - this.LabelOverlayButton.Click += new System.EventHandler(this.LabelOverlayButton_Click); - // - // DebugPanel - // - this.DebugPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.DebugPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.DebugPanel.Location = new System.Drawing.Point(0, 233); - this.DebugPanel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.DebugPanel.Name = "DebugPanel"; - this.DebugPanel.Size = new System.Drawing.Size(1109, 633); - this.DebugPanel.TabIndex = 6; - this.DebugPanel.TabStop = false; - this.DebugPanel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.DebugPanel_MouseClick); - this.DebugPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DebugPanel_MouseMove); - // // registerDisplay1 // this.registerDisplay1.CPU = null; - this.registerDisplay1.Location = new System.Drawing.Point(4, 92); - this.registerDisplay1.Margin = new System.Windows.Forms.Padding(11, 9, 11, 9); + this.registerDisplay1.Location = new System.Drawing.Point(2, 50); + this.registerDisplay1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); this.registerDisplay1.Name = "registerDisplay1"; - this.registerDisplay1.Size = new System.Drawing.Size(671, 90); + this.registerDisplay1.Size = new System.Drawing.Size(366, 49); this.registerDisplay1.TabIndex = 0; this.registerDisplay1.MouseEnter += new System.EventHandler(this.DebugPanel_Leave); // // CPUWindow // - this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F); + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1390, 864); + this.ClientSize = new System.Drawing.Size(758, 485); this.Controls.Add(this.LabelOverlayButton); this.Controls.Add(this.irqPanel); this.Controls.Add(this.HeaderTextbox); @@ -703,11 +861,11 @@ private void InitializeComponent() this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.KeyPreview = true; this.Location = new System.Drawing.Point(1280, 0); - this.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(1845, 935); + this.MaximumSize = new System.Drawing.Size(1014, 524); this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(1388, 935); + this.MinimumSize = new System.Drawing.Size(764, 524); this.Name = "CPUWindow"; this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; this.Text = "CPU Window"; @@ -764,12 +922,21 @@ private void InitializeComponent() private ColorCheckBox TMR2Checkbox; private ColorCheckBox TMR1Checkbox; private ColorCheckBox TMR0Checkbox; - private ColorCheckBox OPL2LCheckbox; - private ColorCheckBox OPL2RCheckbox; + private ColorCheckBox GabeInt0Check; + private ColorCheckBox OPL3Checkbox; private ColorCheckBox SDCardCheckBox; private ColorCheckBox SOFCheckbox; private ColorCheckBox KeyboardCheckBox; private System.Windows.Forms.Button BreakpointButton; public System.Windows.Forms.TextBox locationInput; + private ColorCheckBox V2BitColCheck; + private ColorCheckBox V2SprColCheck; + private ColorCheckBox GabeInt1Check; + private ColorCheckBox VDMACheck; + private ColorCheckBox V2TileColCheck; + private ColorCheckBox GabeInt2Check; + private ColorCheckBox ExtExpCheck; + private ColorCheckBox SDCardInsertCheck; + private ColorCheckBox ParallelPortCheck; } } \ No newline at end of file diff --git a/Main/UI/CPUWindow.cs b/Main/UI/CPUWindow.cs index 7424502..6fe08cc 100644 --- a/Main/UI/CPUWindow.cs +++ b/Main/UI/CPUWindow.cs @@ -34,6 +34,8 @@ public partial class CPUWindow : Form Point position = new Point(); private int MemoryLimit = 0; + // Depending on the board + private BoardVersion boardVersion; public CPUWindow() { @@ -44,6 +46,17 @@ public CPUWindow() breakpointWindow.DeleteEvent += DeleteEventHandler; } + /** + * Change the board version. + * The interrupts for F256s are different than C256s. + */ + public void SetBoardVersion(BoardVersion version) + { + boardVersion = version; + DisplayInterruptTooltips(); + BreakOnIRQCheckBox_CheckedChanged(null, null); + } + public void SetKernel(FoenixSystem kernel) { this.kernel = kernel; @@ -104,27 +117,9 @@ private void CPUWindow_Load(object sender, EventArgs e) Tooltip.SetToolTip(DeleteBPOverlayButton, "Remove Breakpoint"); Tooltip.SetToolTip(InspectOverlayButton, "Browse Memory"); Tooltip.SetToolTip(StepOverOverlayButton, "Step Over"); - // Register 0 - Tooltip.SetToolTip(SOFCheckbox, "Break on SOF Interrupts"); - Tooltip.SetToolTip(SOLCheckbox, "Break on SOL Interrupts"); - Tooltip.SetToolTip(TMR0Checkbox, "Break on TMR0 Interrupts"); - Tooltip.SetToolTip(TMR1Checkbox, "Break on TMR1 Interrupts"); - Tooltip.SetToolTip(TMR2Checkbox, "Break on TMR2 Interrupts"); - Tooltip.SetToolTip(RTCCheckbox, "Break on RTC Interrupts"); - Tooltip.SetToolTip(FDCCheckbox, "Break on FDC Interrupts"); - Tooltip.SetToolTip(MouseCheckbox, "Break on Mouse Interrupts"); - - // Register 1 - Tooltip.SetToolTip(KeyboardCheckBox, "Break on Keyboard Interrupts"); - Tooltip.SetToolTip(COM2Checkbox, "Break on COM2 Interrupts"); - Tooltip.SetToolTip(COM1Checkbox, "Break on COM1 Interrupts"); - Tooltip.SetToolTip(MPU401Checkbox, "Break on MPU401 Interrupts"); - Tooltip.SetToolTip(SDCardCheckBox, "Break on SD Card Interrupts"); - - // Register 2 - Tooltip.SetToolTip(OPL2RCheckbox, "Break on OPL2 Right Interrupts"); - Tooltip.SetToolTip(OPL2LCheckbox, "Break on OPL2 Left Interrupts"); + DebugPanel.Paint += new System.Windows.Forms.PaintEventHandler(DebugPanel_Paint); + DisplayInterruptTooltips(); } @@ -243,6 +238,65 @@ private void DebugPanel_Paint(object sender, PaintEventArgs e) } } + private void DisplayInterruptTooltips() + { + bool isJunior = BoardVersionHelpers.IsJr(boardVersion); + if (isJunior) + { + // this is going to be confusing - the F256 Interrupts are different + // Register 0 + Tooltip.SetToolTip(SOFCheckbox, "Break on SOF Interrupts"); + Tooltip.SetToolTip(SOLCheckbox, "Break on SOL Interrupts"); + Tooltip.SetToolTip(TMR0Checkbox, "Break on Keyboard Interrupts"); + Tooltip.SetToolTip(TMR1Checkbox, "Break on Mouse Interrupts"); + Tooltip.SetToolTip(TMR2Checkbox, "Break on Timer0 Interrupts"); + Tooltip.SetToolTip(RTCCheckbox, "Break on Timer1 Interrupts"); + Tooltip.SetToolTip(FDCCheckbox, "Break on DMA Interrupts"); + Tooltip.SetToolTip(MouseCheckbox, "Break on Reserved Interrupts"); + + // Register 1 + Tooltip.SetToolTip(KeyboardCheckBox, "Break on UART Interrupts"); + Tooltip.SetToolTip(V2SprColCheck, "Break on Vicky Int2 Interrupts"); + Tooltip.SetToolTip(V2BitColCheck, "Break on Vicky Int3 Interrupts"); + Tooltip.SetToolTip(COM2Checkbox, "Break on Vicky Int4 Interrupts"); + Tooltip.SetToolTip(COM1Checkbox, "Break on RTC Interrupts"); + Tooltip.SetToolTip(MPU401Checkbox, "Break on VIA Interrupts"); + Tooltip.SetToolTip(ParallelPortCheck, "Break on IEC Interrupts"); + Tooltip.SetToolTip(SDCardCheckBox, "Break on SD Card Interrupts"); + } + else + { + // Register 0 + Tooltip.SetToolTip(SOFCheckbox, "Break on SOF Interrupts"); + Tooltip.SetToolTip(SOLCheckbox, "Break on SOL Interrupts"); + Tooltip.SetToolTip(TMR0Checkbox, "Break on TMR0 Interrupts"); + Tooltip.SetToolTip(TMR1Checkbox, "Break on TMR1 Interrupts"); + Tooltip.SetToolTip(TMR2Checkbox, "Break on TMR2 Interrupts"); + Tooltip.SetToolTip(RTCCheckbox, "Break on RTC Interrupts"); + Tooltip.SetToolTip(FDCCheckbox, "Break on FDC Interrupts"); + Tooltip.SetToolTip(MouseCheckbox, "Break on Mouse Interrupts"); + + // Register 1 + Tooltip.SetToolTip(KeyboardCheckBox, "Break on Keyboard Interrupts"); + Tooltip.SetToolTip(V2SprColCheck, "Break on Sprite Collision Interrupts"); + Tooltip.SetToolTip(V2BitColCheck, "Break on Bitmap Collision Interrupts"); + Tooltip.SetToolTip(COM2Checkbox, "Break on COM2 Interrupts"); + Tooltip.SetToolTip(COM1Checkbox, "Break on COM1 Interrupts"); + Tooltip.SetToolTip(MPU401Checkbox, "Break on MIDI Ctrlr Interrupts"); + Tooltip.SetToolTip(ParallelPortCheck, "Break on Parallel Interrupts"); + Tooltip.SetToolTip(SDCardCheckBox, "Break on SD Card Interrupts"); + + // Register 2 + Tooltip.SetToolTip(OPL3Checkbox, "Break on OPL3 Interrupts"); + Tooltip.SetToolTip(GabeInt0Check, "Break on Gabe INT0 Interrupts"); + Tooltip.SetToolTip(GabeInt1Check, "Break on Gabe INT1 Interrupts"); + Tooltip.SetToolTip(VDMACheck, "Break on VDMA Interrupts"); + Tooltip.SetToolTip(V2TileColCheck, "Break on Tile Collision Interrupts"); + Tooltip.SetToolTip(GabeInt2Check, "Break on Gabe INT2 Interrupts"); + Tooltip.SetToolTip(ExtExpCheck, "Break on External Expansion Interrupts"); + Tooltip.SetToolTip(SDCardInsertCheck, "Break on SDCard Insertion Interrupts"); + } + } private void DebugPanel_MouseMove(object sender, MouseEventArgs e) { if (kernel.CPU.DebugPause) @@ -825,23 +879,70 @@ private void CPUWindow_KeyDown(object sender, KeyEventArgs e) private void BreakOnIRQCheckBox_CheckedChanged(object sender, EventArgs e) { bool visible = BreakOnIRQCheckBox.Checked; - SOFCheckbox.Visible = visible; - SOLCheckbox.Visible = visible; - TMR0Checkbox.Visible = visible; - TMR1Checkbox.Visible = visible; - TMR2Checkbox.Visible = visible; - RTCCheckbox.Visible = visible; - FDCCheckbox.Visible = visible; - MouseCheckbox.Visible = visible; - - KeyboardCheckBox.Visible = visible; - COM2Checkbox.Visible = visible; - COM1Checkbox.Visible = visible; - MPU401Checkbox.Visible = visible; - SDCardCheckBox.Visible = visible; - - OPL2LCheckbox.Visible = visible; - OPL2RCheckbox.Visible = visible; + if (BoardVersionHelpers.IsJr(boardVersion)) + { + // Row 1 + SOFCheckbox.Visible = visible; + SOLCheckbox.Visible = visible; + TMR0Checkbox.Visible = visible; + TMR1Checkbox.Visible = visible; + TMR2Checkbox.Visible = visible; + RTCCheckbox.Visible = visible; + FDCCheckbox.Visible = visible; + MouseCheckbox.Visible = visible; + + // Row 2 + KeyboardCheckBox.Visible = visible; + V2SprColCheck.Visible = visible; + V2BitColCheck.Visible = visible; + COM2Checkbox.Visible = visible; + COM1Checkbox.Visible = visible; + MPU401Checkbox.Visible = visible; + ParallelPortCheck.Visible = visible; + SDCardCheckBox.Visible = visible; + + // Row 3 + OPL3Checkbox.Visible = false; + GabeInt0Check.Visible = false; + GabeInt1Check.Visible = false; + VDMACheck.Visible = false; + V2TileColCheck.Visible = false; + GabeInt2Check.Visible = false; + ExtExpCheck.Visible = false; + SDCardInsertCheck.Visible = false; + } + else + { + // Row 1 + SOFCheckbox.Visible = visible; + SOLCheckbox.Visible = visible; + TMR0Checkbox.Visible = visible; + TMR1Checkbox.Visible = visible; + TMR2Checkbox.Visible = visible; + RTCCheckbox.Visible = visible; + FDCCheckbox.Visible = visible; + MouseCheckbox.Visible = visible; + + // Row 2 + KeyboardCheckBox.Visible = visible; + V2SprColCheck.Visible = visible; + V2BitColCheck.Visible = visible; + COM2Checkbox.Visible = visible; + COM1Checkbox.Visible = visible; + MPU401Checkbox.Visible = visible; + ParallelPortCheck.Visible = visible; + SDCardCheckBox.Visible = visible; + + // Row 3 + OPL3Checkbox.Visible = visible; + GabeInt0Check.Visible = visible; + GabeInt1Check.Visible = visible; + VDMACheck.Visible = visible; + V2TileColCheck.Visible = visible; + GabeInt2Check.Visible = visible; + ExtExpCheck.Visible = visible; + SDCardInsertCheck.Visible = visible; + } } /// @@ -853,93 +954,58 @@ private bool InterruptMatchesCheckboxes() // Read Interrupt Register 0 byte reg0 = kernel.MemMgr.INTERRUPT.ReadByte(0); bool result = false; - if (SOFCheckbox.Checked && (reg0 & (byte)Register0.FNX0_INT00_SOF) != 0) + ColorCheckBox[] row1 = { SOFCheckbox, SOLCheckbox, TMR0Checkbox, TMR1Checkbox, TMR2Checkbox, RTCCheckbox, FDCCheckbox, MouseCheckbox }; + for (int i =0; i<8;i++) { - SOFCheckbox.IsActive = true; - result = true; - } - else - { - if (SOFCheckbox.IsActive) SOFCheckbox.IsActive = false; - } - if (SOLCheckbox.Checked && (reg0 & (byte)Register0.FNX0_INT01_SOL) != 0) - { - SOLCheckbox.IsActive = true; - result = true; - } - else - { - if (SOLCheckbox.IsActive) SOLCheckbox.IsActive = false; - } - if (TMR0Checkbox.Checked && (reg0 & (byte)Register0.FNX0_INT02_TMR0) != 0) - { - TMR0Checkbox.IsActive = true; - result = true; - } - else - { - if (TMR0Checkbox.IsActive) TMR0Checkbox.IsActive = false; - } - - if (TMR1Checkbox.Checked && (reg0 & (byte)Register0.FNX0_INT03_TMR1) != 0) - { - TMR1Checkbox.IsActive = true; - result = true; - } - else - { - if (TMR1Checkbox.IsActive) - TMR1Checkbox.IsActive = false; - } - if (TMR2Checkbox.Checked && (reg0 & (byte)Register0.FNX0_INT04_TMR2) != 0) - { - TMR2Checkbox.IsActive = true; - result = true; - } - else - { - if (TMR2Checkbox.IsActive) - TMR2Checkbox.IsActive = false; - } - if (MouseCheckbox.Checked && (reg0 & (byte)Register0.FNX0_INT07_MOUSE) != 0) - { - MouseCheckbox.IsActive = true; - result = true; - } - else - { - if (MouseCheckbox.IsActive) - MouseCheckbox.IsActive = false; + if (row1[i].Checked && (reg0 & 1 << i) != 0) + { + row1[i].IsActive = true; + result = true; + } + else + { + row1[i].IsActive = false; + } } // Read Interrupt Register 1 byte reg1 = kernel.MemMgr.INTERRUPT.ReadByte(1); - if (SDCardCheckBox.Checked && (reg1 & (byte)Register1.FNX1_INT07_SDCARD ) != 0) - { - SDCardCheckBox.IsActive = true; - result = true; - } - else - { - if (SDCardCheckBox.IsActive) - SDCardCheckBox.IsActive = false; - } - if (KeyboardCheckBox.Checked && (reg1 & (byte)Register1.FNX1_INT00_KBD) != 0) + ColorCheckBox[] row2 = { KeyboardCheckBox, V2SprColCheck, V2BitColCheck, COM2Checkbox, COM1Checkbox, MPU401Checkbox, ParallelPortCheck, SDCardCheckBox }; + for (int i = 0; i < 8; i++) { - KeyboardCheckBox.IsActive = true; - result = true; - } - else - { - if (KeyboardCheckBox.IsActive) - KeyboardCheckBox.IsActive = false; + if (row2[i].Checked && (reg1 & 1 << i) != 0) + { + row2[i].IsActive = true; + result = true; + } + else + { + row2[i].IsActive = false; + } } + + // The F256s do not have the following registers if (!BoardVersionHelpers.IsJr(kernel.GetVersion())) { //Read Interrupt Register 2 - we don't handle these yet byte reg2 = kernel.MemMgr.INTERRUPT.ReadByte(2); + ColorCheckBox[] row3 = { OPL3Checkbox, GabeInt0Check, GabeInt1Check, VDMACheck, V2TileColCheck, GabeInt2Check, ExtExpCheck, SDCardInsertCheck }; + for (int i = 0; i < 8; i++) + { + if (row3[i].Checked && (reg1 & 1 << i) != 0) + { + row3[i].IsActive = true; + result = true; + } + else + { + row3[i].IsActive = false; + } + } + //Read Interrupt Register 3 - we don't handle these yet byte reg3 = kernel.MemMgr.INTERRUPT.ReadByte(3); + // As you can see, row4 is not implemented } return result; } diff --git a/Main/UI/CPUWindow.resx b/Main/UI/CPUWindow.resx index 3e1ee34..64d63c1 100644 --- a/Main/UI/CPUWindow.resx +++ b/Main/UI/CPUWindow.resx @@ -117,12 +117,168 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + 17, 17 + + True + + + True + 259, 17 + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + 65 diff --git a/Main/UI/MainWindow.Designer.cs b/Main/UI/MainWindow.Designer.cs index c2d389d..427baf8 100644 --- a/Main/UI/MainWindow.Designer.cs +++ b/Main/UI/MainWindow.Designer.cs @@ -180,7 +180,7 @@ private void InitializeComponent() this.SDCardPath.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold); this.SDCardPath.Name = "SDCardPath"; this.SDCardPath.Overflow = System.Windows.Forms.ToolStripItemOverflow.Always; - this.SDCardPath.Size = new System.Drawing.Size(173, 25); + this.SDCardPath.Size = new System.Drawing.Size(204, 25); this.SDCardPath.Spring = true; this.SDCardPath.Text = "SD Card Disabled"; this.SDCardPath.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -371,7 +371,7 @@ private void InitializeComponent() this.autorunEmulatorToolStripMenuItem.ImageAlign = System.Drawing.ContentAlignment.BottomLeft; this.autorunEmulatorToolStripMenuItem.Name = "autorunEmulatorToolStripMenuItem"; this.autorunEmulatorToolStripMenuItem.Padding = new System.Windows.Forms.Padding(0, 2, 0, 1); - this.autorunEmulatorToolStripMenuItem.Size = new System.Drawing.Size(169, 23); + this.autorunEmulatorToolStripMenuItem.Size = new System.Drawing.Size(180, 23); this.autorunEmulatorToolStripMenuItem.Text = "Autorun Emulator"; this.autorunEmulatorToolStripMenuItem.Click += new System.EventHandler(this.AutorunEmulatorToolStripMenuItem_Click); // @@ -390,7 +390,7 @@ private void InitializeComponent() // terminalToolStripMenuItem // this.terminalToolStripMenuItem.Name = "terminalToolStripMenuItem"; - this.terminalToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.terminalToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.terminalToolStripMenuItem.Text = "&Terminal"; this.terminalToolStripMenuItem.Click += new System.EventHandler(this.TerminalToolStripMenuItem_Click); // @@ -398,7 +398,7 @@ private void InitializeComponent() // this.cPUToolStripMenuItem.Enabled = false; this.cPUToolStripMenuItem.Name = "cPUToolStripMenuItem"; - this.cPUToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.cPUToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.cPUToolStripMenuItem.Text = "&CPU"; this.cPUToolStripMenuItem.Click += new System.EventHandler(this.CPUToolStripMenuItem_Click); // @@ -406,21 +406,21 @@ private void InitializeComponent() // this.memoryToolStripMenuItem.Enabled = false; this.memoryToolStripMenuItem.Name = "memoryToolStripMenuItem"; - this.memoryToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.memoryToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.memoryToolStripMenuItem.Text = "&Memory"; this.memoryToolStripMenuItem.Click += new System.EventHandler(this.MemoryToolStripMenuItem_Click); // // watchListToolStripMenuItem // this.watchListToolStripMenuItem.Name = "watchListToolStripMenuItem"; - this.watchListToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.watchListToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.watchListToolStripMenuItem.Text = "Watch List"; this.watchListToolStripMenuItem.Click += new System.EventHandler(this.WatchListToolStripMenuItem_Click); // // assetListToolStripMenuItem // this.assetListToolStripMenuItem.Name = "assetListToolStripMenuItem"; - this.assetListToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.assetListToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.assetListToolStripMenuItem.Text = "Asset List"; this.assetListToolStripMenuItem.Click += new System.EventHandler(this.AssetListToolStripMenuItem_Click); // diff --git a/Main/UI/MainWindow.cs b/Main/UI/MainWindow.cs index 1fc75a3..8992536 100644 --- a/Main/UI/MainWindow.cs +++ b/Main/UI/MainWindow.cs @@ -127,7 +127,7 @@ public MainWindow(Dictionary context) case "Jr": version = BoardVersion.RevJr_6502; break; - case "Jr816": + case "Jr(816)": version = BoardVersion.RevJr_65816; break; } @@ -165,7 +165,7 @@ private void BasicWindow_Load(object sender, EventArgs e) { kernel = new FoenixSystem(version, defaultKernel); terminal = new SerialTerminal(); - ShowDebugWindow(); + ShowDebugWindow(version); ShowMemoryWindow(); // Now that the kernel is initialized, allocate variables to the GPU @@ -308,7 +308,7 @@ private void LoadExecutableFile(string Filename) gpu.Refresh(); if (kernel.lstFile != null) { - ShowDebugWindow(); + ShowDebugWindow(version); ShowMemoryWindow(); } ResetSDCard(); @@ -316,7 +316,7 @@ private void LoadExecutableFile(string Filename) } } - private void ShowDebugWindow() + private void ShowDebugWindow(BoardVersion ver) { cPUToolStripMenuItem.Enabled = true; if (debugWindow == null || debugWindow.IsDisposed) @@ -327,11 +327,13 @@ private void ShowDebugWindow() Top = Screen.PrimaryScreen.WorkingArea.Top, }; debugWindow.Left = Screen.PrimaryScreen.WorkingArea.Width - debugWindow.Width; + debugWindow.SetBoardVersion(ver); debugWindow.SetKernel(kernel); debugWindow.Show(); } else { + debugWindow.SetBoardVersion(ver); debugWindow.SetKernel(kernel); debugWindow.BringToFront(); } @@ -750,7 +752,7 @@ private void Gpu_Update_Cps_Fps() private void CPUToolStripMenuItem_Click(object sender, EventArgs e) { - ShowDebugWindow(); + ShowDebugWindow(version); } private void MemoryToolStripMenuItem_Click(object sender, EventArgs e) @@ -933,7 +935,7 @@ private void LoadFNXMLFileToolStripMenuItem_Click(object sender, EventArgs e) gpu.Refresh(); debugWindow.Pause(); SetDipSwitchMemory(); - ShowDebugWindow(); + ShowDebugWindow(version); if (BoardVersionHelpers.IsJr(version)) { // Now update other registers @@ -1539,7 +1541,7 @@ private void MainWindow_DragEnter(object sender, DragEventArgs e) { FileInfo info = new FileInfo(obj[0]); string extension = info.Extension.ToUpper(); - if (extension.Equals(".HEX") || extension.Equals(".PGX") || extension.Equals(".PGZ")) + if (extension.Equals(".HEX") || extension.Equals(".PGX") || extension.Equals(".PGZ") || extension.Equals(".BIN")) { e.Effect = DragDropEffects.Copy; return; diff --git a/Main/UI/MainWindow.resx b/Main/UI/MainWindow.resx index b1b21a5..7abef5a 100644 --- a/Main/UI/MainWindow.resx +++ b/Main/UI/MainWindow.resx @@ -120,12 +120,24 @@ 17, 17 + + True + 128, 18 + + True + 253, 18 + + True + + + True + 36 diff --git a/Main/UI/MemoryWindow.resx b/Main/UI/MemoryWindow.resx index 5fc1bf9..ddae62c 100644 --- a/Main/UI/MemoryWindow.resx +++ b/Main/UI/MemoryWindow.resx @@ -117,6 +117,36 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + >000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ >000010 00 00 00 00 00 00 00 FF FF 00 FF 00 FF 00 00 00 ........ ........ @@ -141,9 +171,54 @@ 35, 9 + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + 448, 11 + + True + 71 diff --git a/Release Notes.txt b/Release Notes.txt index 8313d90..a648095 100644 --- a/Release Notes.txt +++ b/Release Notes.txt @@ -1,3 +1,15 @@ +Release 0.6.0.8 +--------------- +Fixed the interrupt checkboxes and the tooltips in the CPU Window to match the F256 or C256 registers. +Fixed an issue when loading .bin files - this now goes only to RAM, not devices. +Re-adjusted controls position in the Main and CPU windows and locked the forms. +Fixed issue when the machine was left in Jr(816) it would restart in C mode. +Changing the board version in the Main Window now is properly reflected in the CPU Window. +** TODO: Update the Keyboard device for F256Jr (ScanCode Set 2). +** TODO: Users can now modify the CPU registers when in debug mode. The registers have a white background when editable. +** TODO: Implemented the various cursor modes and rates. +** TODO: Add breaklines in debugger listing, when memory is not contiguous. + Release 0.6.0.7 --------------- Added new breakpoint window that will break upon detection of Program Counter and memory addresses read and writes. @@ -8,11 +20,6 @@ Closes issue #26: https://github.com/Trinity-11/FoenixIDE/issues/26 - crash when When detecting the out of order lines, the LoadHex file will create a new block and change the cursor to the new address. Added drag-n-drop for .bin files. -** TODO: Update the Keyboard device for F256Jr (ScanCode Set 2). -** TODO: Users can now modify the CPU registers when in debug mode. The registers have a white background when editable. -** TODO: Implemented the various cursor modes and rates. -** TODO: Add breaklines in debugger listing, when memory is not contiguous. - Release 0.6.0.6 --------------- Fixed sprite layer ordering for the F256Jr.