1
0
mirror of https://github.com/livingcomputermuseum/ContrAlto.git synced 2026-02-12 19:07:59 +00:00

Support for CRAM reading/loading, SWMODE support. Rough debugger UI for viewing / disassembling microcode in ROM1, RAM0 banks (ugly). Minor performance improvements.

This commit is contained in:
Josh Dersch
2015-11-13 16:50:18 -08:00
parent 47a2ee4b2b
commit 30ecfa6900
17 changed files with 936 additions and 271 deletions

View File

@@ -1,11 +1,14 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contralto", "Contralto\Contralto.csproj", "{CC6D96B3-8099-4497-8AD8-B0795A3353EA}"
EndProject
Global
GlobalSection(Performance) = preSolution
HasPerformanceSessions = true
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU

View File

@@ -171,6 +171,19 @@ namespace Contralto.CPU
NEXT = (ushort)(code & 0x3ff);
}
public override string ToString()
{
return String.Format("RSELECT={0} ALUF={1} BS={2} F1={3} F2={4} LoadT={5} LoadL={6} NEXT={7}",
Conversion.ToOctal((int)RSELECT),
ALUF,
BS,
F1,
F2,
LoadT,
LoadL,
Conversion.ToOctal(NEXT));
}
public UInt32 RSELECT;
public AluFunction ALUF;
public BusSource BS;

View File

@@ -11,7 +11,7 @@ namespace Contralto.CPU
/// <summary>
/// DisplayWordTask provides functionality for the DWT task
/// </summary>
private class CursorTask : Task
private sealed class CursorTask : Task
{
public CursorTask(AltoCPU cpu) : base(cpu)
{

View File

@@ -16,7 +16,7 @@ namespace Contralto.CPU
/// (for both Disk Sector and Disk Word tasks, since the special functions are
/// identical between the two)
/// </summary>
private class DiskTask : Task
private sealed class DiskTask : Task
{
public DiskTask(AltoCPU cpu, bool diskSectorTask) : base(cpu)
{

View File

@@ -11,7 +11,7 @@ namespace Contralto.CPU
/// <summary>
/// DisplayWordTask provides functionality for the DHT task
/// </summary>
private class DisplayHorizontalTask : Task
private sealed class DisplayHorizontalTask : Task
{
public DisplayHorizontalTask(AltoCPU cpu) : base(cpu)
{

View File

@@ -11,7 +11,7 @@ namespace Contralto.CPU
/// <summary>
/// DisplayVerticalTask provides functionality for the DVT task
/// </summary>
private class DisplayVerticalTask : Task
private sealed class DisplayVerticalTask : Task
{
public DisplayVerticalTask(AltoCPU cpu) : base(cpu)
{

View File

@@ -12,7 +12,7 @@ namespace Contralto.CPU
/// <summary>
/// DisplayWordTask provides functionality for the DWT task
/// </summary>
private class DisplayWordTask : Task
private sealed class DisplayWordTask : Task
{
public DisplayWordTask(AltoCPU cpu) : base(cpu)
{

View File

@@ -13,7 +13,7 @@ namespace Contralto.CPU
/// <summary>
/// EmulatorTask provides emulator (NOVA instruction set) specific operations.
/// </summary>
private class EmulatorTask : Task
private sealed class EmulatorTask : Task
{
public EmulatorTask(AltoCPU cpu) : base(cpu)
{
@@ -81,8 +81,16 @@ namespace Contralto.CPU
//throw new NotImplementedException();
break;
case EmulatorF1.SWMODE:
throw new NotImplementedException();
case EmulatorF1.SWMODE:
_swMode = true;
break;
case EmulatorF1.RDRAM:
_rdRam = true;
break;
case EmulatorF1.WRTRAM:
_wrtRam = true;
break;
default:

View File

@@ -13,7 +13,7 @@ namespace Contralto.CPU
/// <summary>
/// DisplayWordTask provides functionality for the Memory Refresh task
/// </summary>
private class MemoryRefreshTask : Task
private sealed class MemoryRefreshTask : Task
{
public MemoryRefreshTask(AltoCPU cpu) : base(cpu)
{

View File

@@ -56,6 +56,7 @@ namespace Contralto.CPU
// "...each task start[s] at the location which is its task number"
//
_mpc = (ushort)_taskType;
_rdRam = false;
}
public virtual void BlockTask()
@@ -71,7 +72,7 @@ namespace Contralto.CPU
public bool ExecuteNext()
{
// TODO: cache microinstructions (or pre-decode them) to save consing all these up every time.
MicroInstruction instruction = UCodeMemory.DecodeCache[_mpc];
MicroInstruction instruction = UCodeMemory.GetInstruction(_mpc);
// Grab BLOCK bit so that other tasks / hardware can look at it
_block = instruction.F1 == SpecialFunction1.Block;
@@ -90,7 +91,8 @@ namespace Contralto.CPU
/// <returns>True if a task switch has been requested by a TASK instruction, false otherwise.</returns>
protected virtual bool ExecuteInstruction(MicroInstruction instruction)
{
bool nextTask = false;
bool nextTask = false;
bool swMode = false;
ushort aluData = 0;
ushort nextModifier = 0;
_loadR = false;
@@ -226,9 +228,38 @@ namespace Contralto.CPU
_busData &= ControlROM.ConstantROM[(instruction.RSELECT << 3) | ((uint)instruction.BS)];
}
//
// If there was a RDRAM operation last cycle, we AND in the uCode RAM data here.
//
if (_rdRam)
{
_busData &= UCodeMemory.ReadRAM();
_rdRam = false;
}
// Do ALU operation
aluData = ALU.Execute(instruction.ALUF, _busData, _cpu._t, _skip);
//
// If there was a WRTRAM operation last cycle, we write the uCode RAM here
// using the results of this instruction's ALU operation.
//
if (_wrtRam)
{
UCodeMemory.WriteRAM(aluData, _cpu._m);
_wrtRam = false;
}
//
// If there was an SWMODE operation last cycle, we set the flag to ensure it
// takes effect at the end of this cycle.
//
if (_swMode)
{
_swMode = false;
swMode = true;
}
// Reset shifter op
Shifter.SetOperation(ShifterOp.None, 0);
@@ -385,6 +416,14 @@ namespace Contralto.CPU
}
_cpu._t = loadTFromALU ? aluData : _busData;
//
// Control RAM: "...the control RAM address is specified by the control RAM
// address register... which is loaded from the ALU output whenver T is loaded
// from its source."
//
UCodeMemory.LoadControlRAMAddress(aluData);
}
// Load L (and M) from ALU outputs.
@@ -399,13 +438,24 @@ namespace Contralto.CPU
//
// Execute special functions that happen late in the cycle
//
//
ExecuteSpecialFunction2Late(instruction);
//
// Switch banks if the last instruction had an SWMODE F1;
// this depends on the value of the NEXT field in this instruction
//
if (swMode)
{
Console.WriteLine("SWMODE NEXT {0} Modifier {1}", Conversion.ToOctal(instruction.NEXT), Conversion.ToOctal(nextModifier));
UCodeMemory.SwitchMode((ushort)(instruction.NEXT | nextModifier));
}
//
// Select next address, using the address modifier from the last instruction.
//
_mpc = (ushort)(instruction.NEXT | nextModifier);
return nextTask;
}
@@ -450,6 +500,9 @@ namespace Contralto.CPU
protected uint _rSelect; // RSELECT field from current instruction, potentially modified by task
protected bool _loadS; // Whether to load S from M at and of cycle
protected bool _loadR; // Whether to load R from shifter at end of cycle.
protected bool _rdRam; // Whether to load uCode RAM onto the bus during the next cycle.
protected bool _wrtRam; // Whether to write uCode RAM from M and ALU outputs during the next cycle.
protected bool _swMode; // Whether to switch uCode banks during the next cycle.
//

View File

@@ -7,6 +7,15 @@ using System.Threading.Tasks;
namespace Contralto.CPU
{
public enum MicrocodeBank
{
ROM0 = 0,
ROM1,
RAM0,
RAM1,
RAM2
}
struct RomFile
{
public RomFile(string filename, ushort addr, int bitPosition)
@@ -29,27 +38,159 @@ namespace Contralto.CPU
}
private static void Init()
{
{
//
// TODO: this is currently configured for a 2K ROM machine
// (1K RAM, 2K ROM). This should be configurable.
//
// 1 bank of microcode RAM
_uCodeRam = new UInt32[1024];
LoadMicrocode(_uCodeRoms);
_decodeCache = new MicroInstruction[2048];
CacheMicrocodeDecode();
//
// Cache 3k of instructions: 2K ROM, 1K RAM.
_decodeCache = new MicroInstruction[1024 * 3];
// Precache ROM
CacheMicrocodeROM();
// Start in ROM0 -- TODO: need to implement reset logic
_microcodeBank = MicrocodeBank.ROM0;
_ramAddr = 0;
_ramBank = 0;
_ramSelect = true;
_lowHalfsel = true;
}
/// <summary>
/// Exposes the raw contents of the Microcode ROM
/// </summary>
public static UInt32[] UCodeROM
{
get { return _uCodeRom; }
}
/// <summary>
/// Exposes the raw contents of the Microcode RAM
/// </summary>
public static UInt32[] UCodeRAM
{
get { return _uCodeRam; }
}
public static MicroInstruction[] DecodeCache
public static MicrocodeBank Bank
{
get { return _decodeCache; }
get { return _microcodeBank; }
}
public static void LoadControlRAMAddress(ushort address)
{
_ramBank = (address & 0x3000) >> 12;
_ramSelect = (address & 0x0800) == 0;
_lowHalfsel = (address & 0x0400) == 0;
_ramAddr = (address & 0x3ff);
}
/// <summary>
/// Implements the SWMODE F1 logic; selects the proper uCode bank (from
/// RAM or ROM) based on the supplied NEXT value.
/// </summary>
/// <param name="nextAddress"></param>
public static void SwitchMode(ushort nextAddress)
{
Logging.Log.Write(Logging.LogComponent.Microcode, "SWMODE: Current Bank {0}", _microcodeBank);
// 2K ROM
switch(_microcodeBank)
{
case MicrocodeBank.ROM0:
_microcodeBank = (nextAddress & 0x100) == 0 ? MicrocodeBank.RAM0 : MicrocodeBank.ROM1;
break;
case MicrocodeBank.ROM1:
_microcodeBank = (nextAddress & 0x100) == 0 ? MicrocodeBank.ROM0 : MicrocodeBank.RAM0;
break;
case MicrocodeBank.RAM0:
_microcodeBank = (nextAddress & 0x100) == 0 ? MicrocodeBank.ROM0 : MicrocodeBank.ROM1;
break;
}
// for 1K ROM
//_microcodeBank = _microcodeBank == MicrocodeBank.ROM0 ? MicrocodeBank.RAM0 : MicrocodeBank.ROM0;
Logging.Log.Write(Logging.LogComponent.Microcode, "SWMODE: New Bank {0}", _microcodeBank);
}
public static ushort ReadRAM()
{
if (!_ramSelect)
{
throw new NotImplementedException("Read from microcode ROM not implemented.");
}
if (_ramBank > 0)
{
throw new InvalidOperationException("RAM bank > 0, unexpected.");
}
// pretend no ram for the moment
Logging.Log.Write(Logging.LogComponent.Microcode, "CRAM address for read: Bank {0}, RAM {1}, lowhalf {2} addr {3}",
_ramBank,
_ramSelect,
_lowHalfsel,
Conversion.ToOctal(_ramAddr));
UInt32 data = _uCodeRam[_ramAddr + (_ramBank * 1024)];
// Flip the necessary bits before returning them.
// (See table in section 8.3 of HWRef.)
ushort halfWord = (ushort)(_lowHalfsel ? data : (data >> 16));
Logging.Log.Write(Logging.LogComponent.Microcode, "CRAM data read: {0}-{1}",
_lowHalfsel ? "low" : "high",
Conversion.ToOctal(halfWord));
return halfWord;
}
public static void WriteRAM(ushort low, ushort high)
{
if (!_ramSelect)
{
// No-op, can't write to ROM.
return;
}
if (_ramBank > 0)
{
throw new InvalidOperationException("RAM bank > 0, unexpected.");
}
Logging.Log.Write(Logging.LogComponent.Microcode, "CRAM address for write: Bank {0}, addr {1}",
_ramBank,
Conversion.ToOctal(_ramAddr));
Logging.Log.Write(Logging.LogComponent.Microcode, "CRAM write of low {0}, high {1}",
Conversion.ToOctal(low),
Conversion.ToOctal(high));
ushort address = (ushort)(_ramAddr + _ramBank * 1024);
_uCodeRam[address] = ((UInt32)(high) << 16) | low;
UpdateRAMCache(address);
}
/// <summary>
/// Retrieve the microinstruction for the given address using the currently
/// selected memory bank.
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public static MicroInstruction GetInstruction(ushort address)
{
return _decodeCache[address + (int)_microcodeBank * 1024];
}
private static void LoadMicrocode(RomFile[] romInfo)
@@ -80,16 +221,36 @@ namespace Contralto.CPU
}
}
for(int i=0;i<_uCodeRom.Length;i++)
{
_uCodeRom[i] = MapWord(_uCodeRom[i]);
}
}
private static UInt32 MapWord(UInt32 word)
{
// Invert the requisite bits just to make things easier; the high bits of F1 and F2 and the Load L bit are inverted
// already; we leave those alone.
const UInt32 invertedBitMask = 0xfff77bff;
for(int i=0;i<_uCodeRom.Length;i++)
{
UInt32 masked = _uCodeRom[i] & ~invertedBitMask;
_uCodeRom[i] = ((~_uCodeRom[i]) & invertedBitMask) | masked;
}
UInt32 masked = word & ~invertedBitMask;
word = ((~word) & invertedBitMask) | masked;
return word;
}
private static UInt32 MapRAMWord(UInt32 word)
{
// Invert the requisite bits just to make things easier; the high bits of F1 and F2 and the Load L bit are inverted
// already; we leave those alone.
const UInt32 bitMask = 0x00088400;
UInt32 masked = ~word & bitMask;
word = (word & ~bitMask) | masked;
return word;
}
private static int AddressMap(int address)
@@ -98,7 +259,7 @@ namespace Contralto.CPU
return mappedAddress;
}
private static void CacheMicrocodeDecode()
private static void CacheMicrocodeROM()
{
for(int i=0;i<_uCodeRom.Length;i++)
{
@@ -106,6 +267,14 @@ namespace Contralto.CPU
}
}
private static void UpdateRAMCache(ushort address)
{
UInt32 instructionWord = _uCodeRam[address];
_decodeCache[2048 + address] = new MicroInstruction(MapRAMWord(instructionWord));
Console.WriteLine(_decodeCache[2048 + address]);
}
private static RomFile[] _uCodeRoms =
{
// first K
@@ -132,9 +301,14 @@ namespace Contralto.CPU
private static UInt32[] _uCodeRom;
private static UInt32[] _uCodeRam;
private static MicroInstruction[] _decodeCache;
private static MicrocodeBank _microcodeBank;
private static int _ramBank;
private static bool _ramSelect;
private static bool _lowHalfsel;
private static int _ramAddr;
}
}

View File

@@ -28,29 +28,53 @@
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle31 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle35 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle32 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle33 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle34 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle36 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle37 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle38 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle39 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle40 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle41 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle42 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle43 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle44 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle45 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle25 = new System.Windows.Forms.DataGridViewCellStyle();
this.Microcode = new System.Windows.Forms.GroupBox();
this.label2 = new System.Windows.Forms.Label();
this.JumpToAddress = new System.Windows.Forms.TextBox();
this._sourceViewer = new System.Windows.Forms.DataGridView();
this.SourceTabs = new System.Windows.Forms.TabControl();
this.Rom0Page = new System.Windows.Forms.TabPage();
this._rom0SourceViewer = new System.Windows.Forms.DataGridView();
this.Breakpoint = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.T = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Addr = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Source = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Rom1Page = new System.Windows.Forms.TabPage();
this._rom1SourceViewer = new System.Windows.Forms.DataGridView();
this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Rom2Page = new System.Windows.Forms.TabPage();
this._ram0SourceViewer = new System.Windows.Forms.DataGridView();
this.dataGridViewCheckBoxColumn2 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.label2 = new System.Windows.Forms.Label();
this.JumpToAddress = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this._registerData = new System.Windows.Forms.DataGridView();
this.RegNum = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -71,6 +95,10 @@
this.RegValue = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this._memoryData = new System.Windows.Forms.DataGridView();
this.Bkpt = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Address = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Data = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Disassembly = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.label1 = new System.Windows.Forms.Label();
this.ExecutionStateLabel = new System.Windows.Forms.Label();
this.groupBox5 = new System.Windows.Forms.GroupBox();
@@ -80,15 +108,17 @@
this.ResetButton = new System.Windows.Forms.Button();
this.RunToNextTaskButton = new System.Windows.Forms.Button();
this.NovaStep = new System.Windows.Forms.Button();
this.Bkpt = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Address = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Data = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Disassembly = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.groupBox6 = new System.Windows.Forms.GroupBox();
this.DisplayBox = new System.Windows.Forms.PictureBox();
this.button1 = new System.Windows.Forms.Button();
this.Microcode.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this._sourceViewer)).BeginInit();
this.SourceTabs.SuspendLayout();
this.Rom0Page.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this._rom0SourceViewer)).BeginInit();
this.Rom1Page.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this._rom1SourceViewer)).BeginInit();
this.Rom2Page.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this._ram0SourceViewer)).BeginInit();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this._registerData)).BeginInit();
this.groupBox2.SuspendLayout();
@@ -105,9 +135,9 @@
//
// Microcode
//
this.Microcode.Controls.Add(this.SourceTabs);
this.Microcode.Controls.Add(this.label2);
this.Microcode.Controls.Add(this.JumpToAddress);
this.Microcode.Controls.Add(this._sourceViewer);
this.Microcode.Location = new System.Drawing.Point(3, 3);
this.Microcode.Name = "Microcode";
this.Microcode.Size = new System.Drawing.Size(603, 625);
@@ -115,6 +145,316 @@
this.Microcode.TabStop = false;
this.Microcode.Text = "Microcode Source";
//
// SourceTabs
//
this.SourceTabs.Controls.Add(this.Rom0Page);
this.SourceTabs.Controls.Add(this.Rom1Page);
this.SourceTabs.Controls.Add(this.Rom2Page);
this.SourceTabs.Location = new System.Drawing.Point(6, 19);
this.SourceTabs.Name = "SourceTabs";
this.SourceTabs.SelectedIndex = 0;
this.SourceTabs.Size = new System.Drawing.Size(590, 571);
this.SourceTabs.TabIndex = 14;
this.SourceTabs.SelectedIndexChanged += new System.EventHandler(this.OnTabChanged);
//
// Rom0Page
//
this.Rom0Page.Controls.Add(this._rom0SourceViewer);
this.Rom0Page.Location = new System.Drawing.Point(4, 22);
this.Rom0Page.Name = "Rom0Page";
this.Rom0Page.Padding = new System.Windows.Forms.Padding(3);
this.Rom0Page.Size = new System.Drawing.Size(582, 545);
this.Rom0Page.TabIndex = 0;
this.Rom0Page.Text = "ROM0";
this.Rom0Page.UseVisualStyleBackColor = true;
//
// _rom0SourceViewer
//
this._rom0SourceViewer.AllowUserToAddRows = false;
this._rom0SourceViewer.AllowUserToDeleteRows = false;
this._rom0SourceViewer.AllowUserToResizeColumns = false;
this._rom0SourceViewer.AllowUserToResizeRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver;
this._rom0SourceViewer.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this._rom0SourceViewer.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleVertical;
this._rom0SourceViewer.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._rom0SourceViewer.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Breakpoint,
this.T,
this.Addr,
this.Source});
this._rom0SourceViewer.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._rom0SourceViewer.Location = new System.Drawing.Point(0, 0);
this._rom0SourceViewer.Name = "_rom0SourceViewer";
this._rom0SourceViewer.ReadOnly = true;
this._rom0SourceViewer.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle5.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this._rom0SourceViewer.RowHeadersDefaultCellStyle = dataGridViewCellStyle5;
this._rom0SourceViewer.RowHeadersVisible = false;
this._rom0SourceViewer.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
this._rom0SourceViewer.RowTemplate.Height = 18;
this._rom0SourceViewer.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this._rom0SourceViewer.ShowCellErrors = false;
this._rom0SourceViewer.ShowEditingIcon = false;
this._rom0SourceViewer.ShowRowErrors = false;
this._rom0SourceViewer.Size = new System.Drawing.Size(582, 545);
this._rom0SourceViewer.TabIndex = 1;
this._rom0SourceViewer.TabStop = false;
this._rom0SourceViewer.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.SourceViewCellClick);
//
// Breakpoint
//
this.Breakpoint.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
this.Breakpoint.FalseValue = "false";
this.Breakpoint.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.Breakpoint.HeaderText = "B";
this.Breakpoint.IndeterminateValue = "null";
this.Breakpoint.Name = "Breakpoint";
this.Breakpoint.ReadOnly = true;
this.Breakpoint.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Breakpoint.TrueValue = "true";
this.Breakpoint.Width = 20;
//
// T
//
this.T.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.T.DefaultCellStyle = dataGridViewCellStyle2;
this.T.HeaderText = "T";
this.T.Name = "T";
this.T.ReadOnly = true;
this.T.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.T.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.T.Width = 5;
//
// Addr
//
this.Addr.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridViewCellStyle3.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Addr.DefaultCellStyle = dataGridViewCellStyle3;
this.Addr.HeaderText = "Addr";
this.Addr.Name = "Addr";
this.Addr.ReadOnly = true;
this.Addr.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Addr.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Addr.Width = 5;
//
// Source
//
this.Source.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle4.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Source.DefaultCellStyle = dataGridViewCellStyle4;
this.Source.HeaderText = "Source Code";
this.Source.Name = "Source";
this.Source.ReadOnly = true;
this.Source.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Source.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Rom1Page
//
this.Rom1Page.Controls.Add(this._rom1SourceViewer);
this.Rom1Page.Location = new System.Drawing.Point(4, 22);
this.Rom1Page.Name = "Rom1Page";
this.Rom1Page.Padding = new System.Windows.Forms.Padding(3);
this.Rom1Page.Size = new System.Drawing.Size(582, 545);
this.Rom1Page.TabIndex = 1;
this.Rom1Page.Text = "ROM1";
this.Rom1Page.UseVisualStyleBackColor = true;
//
// _rom1SourceViewer
//
this._rom1SourceViewer.AllowUserToAddRows = false;
this._rom1SourceViewer.AllowUserToDeleteRows = false;
this._rom1SourceViewer.AllowUserToResizeColumns = false;
this._rom1SourceViewer.AllowUserToResizeRows = false;
dataGridViewCellStyle6.BackColor = System.Drawing.Color.Silver;
this._rom1SourceViewer.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6;
this._rom1SourceViewer.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleVertical;
this._rom1SourceViewer.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._rom1SourceViewer.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewCheckBoxColumn1,
this.dataGridViewTextBoxColumn4,
this.dataGridViewTextBoxColumn3,
this.dataGridViewTextBoxColumn5});
this._rom1SourceViewer.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._rom1SourceViewer.Location = new System.Drawing.Point(0, 0);
this._rom1SourceViewer.Name = "_rom1SourceViewer";
this._rom1SourceViewer.ReadOnly = true;
this._rom1SourceViewer.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle10.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this._rom1SourceViewer.RowHeadersDefaultCellStyle = dataGridViewCellStyle10;
this._rom1SourceViewer.RowHeadersVisible = false;
this._rom1SourceViewer.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
this._rom1SourceViewer.RowTemplate.Height = 18;
this._rom1SourceViewer.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this._rom1SourceViewer.ShowCellErrors = false;
this._rom1SourceViewer.ShowEditingIcon = false;
this._rom1SourceViewer.ShowRowErrors = false;
this._rom1SourceViewer.Size = new System.Drawing.Size(582, 545);
this._rom1SourceViewer.TabIndex = 2;
this._rom1SourceViewer.TabStop = false;
//
// dataGridViewCheckBoxColumn1
//
this.dataGridViewCheckBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
this.dataGridViewCheckBoxColumn1.FalseValue = "false";
this.dataGridViewCheckBoxColumn1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.dataGridViewCheckBoxColumn1.HeaderText = "B";
this.dataGridViewCheckBoxColumn1.IndeterminateValue = "null";
this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1";
this.dataGridViewCheckBoxColumn1.ReadOnly = true;
this.dataGridViewCheckBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewCheckBoxColumn1.TrueValue = "true";
this.dataGridViewCheckBoxColumn1.Width = 20;
//
// dataGridViewTextBoxColumn4
//
this.dataGridViewTextBoxColumn4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridViewCellStyle7.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dataGridViewTextBoxColumn4.DefaultCellStyle = dataGridViewCellStyle7;
this.dataGridViewTextBoxColumn4.HeaderText = "Addr";
this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4";
this.dataGridViewTextBoxColumn4.ReadOnly = true;
this.dataGridViewTextBoxColumn4.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn4.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.dataGridViewTextBoxColumn4.Width = 5;
//
// dataGridViewTextBoxColumn3
//
this.dataGridViewTextBoxColumn3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridViewCellStyle8.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn3.DefaultCellStyle = dataGridViewCellStyle8;
this.dataGridViewTextBoxColumn3.HeaderText = "Word";
this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
this.dataGridViewTextBoxColumn3.ReadOnly = true;
this.dataGridViewTextBoxColumn3.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.dataGridViewTextBoxColumn3.Width = 5;
//
// dataGridViewTextBoxColumn5
//
this.dataGridViewTextBoxColumn5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle9.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dataGridViewTextBoxColumn5.DefaultCellStyle = dataGridViewCellStyle9;
this.dataGridViewTextBoxColumn5.HeaderText = "Disassembly";
this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5";
this.dataGridViewTextBoxColumn5.ReadOnly = true;
this.dataGridViewTextBoxColumn5.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn5.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Rom2Page
//
this.Rom2Page.Controls.Add(this._ram0SourceViewer);
this.Rom2Page.Location = new System.Drawing.Point(4, 22);
this.Rom2Page.Name = "Rom2Page";
this.Rom2Page.Padding = new System.Windows.Forms.Padding(3);
this.Rom2Page.Size = new System.Drawing.Size(582, 545);
this.Rom2Page.TabIndex = 2;
this.Rom2Page.Text = "RAM0";
this.Rom2Page.UseVisualStyleBackColor = true;
//
// _ram0SourceViewer
//
this._ram0SourceViewer.AllowUserToAddRows = false;
this._ram0SourceViewer.AllowUserToDeleteRows = false;
this._ram0SourceViewer.AllowUserToResizeColumns = false;
this._ram0SourceViewer.AllowUserToResizeRows = false;
dataGridViewCellStyle11.BackColor = System.Drawing.Color.Silver;
this._ram0SourceViewer.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11;
this._ram0SourceViewer.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleVertical;
this._ram0SourceViewer.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._ram0SourceViewer.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewCheckBoxColumn2,
this.dataGridViewTextBoxColumn7,
this.dataGridViewTextBoxColumn6,
this.dataGridViewTextBoxColumn8});
this._ram0SourceViewer.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._ram0SourceViewer.Location = new System.Drawing.Point(0, 0);
this._ram0SourceViewer.Name = "_ram0SourceViewer";
this._ram0SourceViewer.ReadOnly = true;
this._ram0SourceViewer.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
dataGridViewCellStyle15.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle15.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle15.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle15.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle15.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle15.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this._ram0SourceViewer.RowHeadersDefaultCellStyle = dataGridViewCellStyle15;
this._ram0SourceViewer.RowHeadersVisible = false;
this._ram0SourceViewer.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
this._ram0SourceViewer.RowTemplate.Height = 18;
this._ram0SourceViewer.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this._ram0SourceViewer.ShowCellErrors = false;
this._ram0SourceViewer.ShowEditingIcon = false;
this._ram0SourceViewer.ShowRowErrors = false;
this._ram0SourceViewer.Size = new System.Drawing.Size(582, 545);
this._ram0SourceViewer.TabIndex = 2;
this._ram0SourceViewer.TabStop = false;
//
// dataGridViewCheckBoxColumn2
//
this.dataGridViewCheckBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
this.dataGridViewCheckBoxColumn2.FalseValue = "false";
this.dataGridViewCheckBoxColumn2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.dataGridViewCheckBoxColumn2.HeaderText = "B";
this.dataGridViewCheckBoxColumn2.IndeterminateValue = "null";
this.dataGridViewCheckBoxColumn2.Name = "dataGridViewCheckBoxColumn2";
this.dataGridViewCheckBoxColumn2.ReadOnly = true;
this.dataGridViewCheckBoxColumn2.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewCheckBoxColumn2.TrueValue = "true";
this.dataGridViewCheckBoxColumn2.Width = 20;
//
// dataGridViewTextBoxColumn7
//
this.dataGridViewTextBoxColumn7.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridViewCellStyle12.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dataGridViewTextBoxColumn7.DefaultCellStyle = dataGridViewCellStyle12;
this.dataGridViewTextBoxColumn7.HeaderText = "Addr";
this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7";
this.dataGridViewTextBoxColumn7.ReadOnly = true;
this.dataGridViewTextBoxColumn7.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn7.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.dataGridViewTextBoxColumn7.Width = 5;
//
// dataGridViewTextBoxColumn6
//
this.dataGridViewTextBoxColumn6.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridViewCellStyle13.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn6.DefaultCellStyle = dataGridViewCellStyle13;
this.dataGridViewTextBoxColumn6.HeaderText = "Word";
this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6";
this.dataGridViewTextBoxColumn6.ReadOnly = true;
this.dataGridViewTextBoxColumn6.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn6.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.dataGridViewTextBoxColumn6.Width = 5;
//
// dataGridViewTextBoxColumn8
//
this.dataGridViewTextBoxColumn8.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle14.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dataGridViewTextBoxColumn8.DefaultCellStyle = dataGridViewCellStyle14;
this.dataGridViewTextBoxColumn8.HeaderText = "Disassembly";
this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8";
this.dataGridViewTextBoxColumn8.ReadOnly = true;
this.dataGridViewTextBoxColumn8.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn8.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// label2
//
this.label2.AutoSize = true;
@@ -133,95 +473,6 @@
this.JumpToAddress.TabStop = false;
this.JumpToAddress.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnJumpAddressKeyDown);
//
// _sourceViewer
//
this._sourceViewer.AllowUserToAddRows = false;
this._sourceViewer.AllowUserToDeleteRows = false;
this._sourceViewer.AllowUserToResizeColumns = false;
this._sourceViewer.AllowUserToResizeRows = false;
dataGridViewCellStyle31.BackColor = System.Drawing.Color.Silver;
this._sourceViewer.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle31;
this._sourceViewer.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleVertical;
this._sourceViewer.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._sourceViewer.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Breakpoint,
this.T,
this.Addr,
this.Source});
this._sourceViewer.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._sourceViewer.Location = new System.Drawing.Point(10, 19);
this._sourceViewer.Name = "_sourceViewer";
this._sourceViewer.ReadOnly = true;
this._sourceViewer.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
dataGridViewCellStyle35.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle35.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle35.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle35.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle35.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle35.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle35.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this._sourceViewer.RowHeadersDefaultCellStyle = dataGridViewCellStyle35;
this._sourceViewer.RowHeadersVisible = false;
this._sourceViewer.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
this._sourceViewer.RowTemplate.Height = 18;
this._sourceViewer.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this._sourceViewer.ShowCellErrors = false;
this._sourceViewer.ShowEditingIcon = false;
this._sourceViewer.ShowRowErrors = false;
this._sourceViewer.Size = new System.Drawing.Size(584, 571);
this._sourceViewer.TabIndex = 1;
this._sourceViewer.TabStop = false;
this._sourceViewer.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.SourceViewCellClick);
//
// Breakpoint
//
this.Breakpoint.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
this.Breakpoint.FalseValue = "false";
this.Breakpoint.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.Breakpoint.HeaderText = "B";
this.Breakpoint.IndeterminateValue = "null";
this.Breakpoint.Name = "Breakpoint";
this.Breakpoint.ReadOnly = true;
this.Breakpoint.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Breakpoint.TrueValue = "true";
this.Breakpoint.Width = 20;
//
// T
//
this.T.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridViewCellStyle32.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle32.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.T.DefaultCellStyle = dataGridViewCellStyle32;
this.T.HeaderText = "T";
this.T.Name = "T";
this.T.ReadOnly = true;
this.T.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.T.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.T.Width = 5;
//
// Addr
//
this.Addr.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridViewCellStyle33.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Addr.DefaultCellStyle = dataGridViewCellStyle33;
this.Addr.HeaderText = "Addr";
this.Addr.Name = "Addr";
this.Addr.ReadOnly = true;
this.Addr.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Addr.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Addr.Width = 5;
//
// Source
//
this.Source.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle34.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Source.DefaultCellStyle = dataGridViewCellStyle34;
this.Source.HeaderText = "Source Code";
this.Source.Name = "Source";
this.Source.ReadOnly = true;
this.Source.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Source.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// groupBox1
//
this.groupBox1.Controls.Add(this._registerData);
@@ -238,21 +489,21 @@
this._registerData.AllowUserToDeleteRows = false;
this._registerData.AllowUserToResizeColumns = false;
this._registerData.AllowUserToResizeRows = false;
dataGridViewCellStyle36.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._registerData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle36;
dataGridViewCellStyle16.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._registerData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle16;
this._registerData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._registerData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.RegNum,
this.R,
this.S});
dataGridViewCellStyle37.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle37.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle37.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle37.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle37.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle37.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle37.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._registerData.DefaultCellStyle = dataGridViewCellStyle37;
dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle17.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle17.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle17.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle17.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle17.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._registerData.DefaultCellStyle = dataGridViewCellStyle17;
this._registerData.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._registerData.Location = new System.Drawing.Point(7, 19);
this._registerData.MultiSelect = false;
@@ -358,21 +609,21 @@
//
this._taskData.AllowUserToAddRows = false;
this._taskData.AllowUserToDeleteRows = false;
dataGridViewCellStyle38.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._taskData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle38;
dataGridViewCellStyle18.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._taskData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle18;
this._taskData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._taskData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.TaskName,
this.TaskState,
this.TaskPC});
dataGridViewCellStyle39.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle39.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle39.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle39.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle39.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle39.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle39.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._taskData.DefaultCellStyle = dataGridViewCellStyle39;
dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle19.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle19.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle19.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle19.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle19.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle19.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._taskData.DefaultCellStyle = dataGridViewCellStyle19;
this._taskData.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._taskData.Location = new System.Drawing.Point(7, 19);
this._taskData.MultiSelect = false;
@@ -429,20 +680,20 @@
//
this._otherRegs.AllowUserToAddRows = false;
this._otherRegs.AllowUserToDeleteRows = false;
dataGridViewCellStyle40.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._otherRegs.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle40;
dataGridViewCellStyle20.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._otherRegs.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle20;
this._otherRegs.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._otherRegs.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Reg,
this.RegValue});
dataGridViewCellStyle41.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle41.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle41.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle41.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle41.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle41.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle41.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._otherRegs.DefaultCellStyle = dataGridViewCellStyle41;
dataGridViewCellStyle21.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle21.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle21.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle21.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle21.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle21.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle21.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._otherRegs.DefaultCellStyle = dataGridViewCellStyle21;
this._otherRegs.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._otherRegs.Location = new System.Drawing.Point(7, 19);
this._otherRegs.MultiSelect = false;
@@ -495,8 +746,8 @@
this._memoryData.AllowUserToAddRows = false;
this._memoryData.AllowUserToDeleteRows = false;
this._memoryData.AllowUserToResizeRows = false;
dataGridViewCellStyle42.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._memoryData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle42;
dataGridViewCellStyle22.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._memoryData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle22;
this._memoryData.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
this._memoryData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._memoryData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
@@ -504,14 +755,14 @@
this.Address,
this.Data,
this.Disassembly});
dataGridViewCellStyle43.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle43.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle43.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle43.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle43.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle43.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle43.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._memoryData.DefaultCellStyle = dataGridViewCellStyle43;
dataGridViewCellStyle23.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle23.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle23.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle23.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle23.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle23.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle23.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._memoryData.DefaultCellStyle = dataGridViewCellStyle23;
this._memoryData.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._memoryData.Location = new System.Drawing.Point(6, 19);
this._memoryData.MultiSelect = false;
@@ -533,6 +784,49 @@
this._memoryData.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.MemoryViewCellClick);
this._memoryData.CellValueNeeded += new System.Windows.Forms.DataGridViewCellValueEventHandler(this.OnMemoryCellValueNeeded);
//
// Bkpt
//
this.Bkpt.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.Bkpt.FalseValue = "false";
this.Bkpt.HeaderText = "B";
this.Bkpt.Name = "Bkpt";
this.Bkpt.ReadOnly = true;
this.Bkpt.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Bkpt.ToolTipText = "Breakpoint";
this.Bkpt.TrueValue = "true";
this.Bkpt.Width = 20;
//
// Address
//
this.Address.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.Address.HeaderText = "Addr";
this.Address.MinimumWidth = 16;
this.Address.Name = "Address";
this.Address.ReadOnly = true;
this.Address.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Address.ToolTipText = "Address";
this.Address.Width = 54;
//
// Data
//
this.Data.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.Data.HeaderText = "Data";
this.Data.MinimumWidth = 16;
this.Data.Name = "Data";
this.Data.ReadOnly = true;
this.Data.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Data.ToolTipText = "Data";
this.Data.Width = 55;
//
// Disassembly
//
this.Disassembly.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.Disassembly.HeaderText = "Disassembly";
this.Disassembly.Name = "Disassembly";
this.Disassembly.ReadOnly = true;
this.Disassembly.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Disassembly.ToolTipText = "Disassembly";
//
// label1
//
this.label1.AutoSize = true;
@@ -565,20 +859,20 @@
//
this._diskData.AllowUserToAddRows = false;
this._diskData.AllowUserToDeleteRows = false;
dataGridViewCellStyle44.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._diskData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle44;
dataGridViewCellStyle24.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this._diskData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle24;
this._diskData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this._diskData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumn1,
this.dataGridViewTextBoxColumn2});
dataGridViewCellStyle45.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle45.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle45.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle45.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle45.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle45.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle45.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._diskData.DefaultCellStyle = dataGridViewCellStyle45;
dataGridViewCellStyle25.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle25.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle25.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle25.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle25.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle25.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle25.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this._diskData.DefaultCellStyle = dataGridViewCellStyle25;
this._diskData.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this._diskData.Location = new System.Drawing.Point(6, 19);
this._diskData.MultiSelect = false;
@@ -646,49 +940,6 @@
this.NovaStep.UseVisualStyleBackColor = true;
this.NovaStep.Click += new System.EventHandler(this.NovaStep_Click);
//
// Bkpt
//
this.Bkpt.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.Bkpt.FalseValue = "false";
this.Bkpt.HeaderText = "B";
this.Bkpt.Name = "Bkpt";
this.Bkpt.ReadOnly = true;
this.Bkpt.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Bkpt.ToolTipText = "Breakpoint";
this.Bkpt.TrueValue = "true";
this.Bkpt.Width = 20;
//
// Address
//
this.Address.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.Address.HeaderText = "Addr";
this.Address.MinimumWidth = 16;
this.Address.Name = "Address";
this.Address.ReadOnly = true;
this.Address.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Address.ToolTipText = "Address";
this.Address.Width = 54;
//
// Data
//
this.Data.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.Data.HeaderText = "Data";
this.Data.MinimumWidth = 16;
this.Data.Name = "Data";
this.Data.ReadOnly = true;
this.Data.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Data.ToolTipText = "Data";
this.Data.Width = 55;
//
// Disassembly
//
this.Disassembly.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.Disassembly.HeaderText = "Disassembly";
this.Disassembly.Name = "Disassembly";
this.Disassembly.ReadOnly = true;
this.Disassembly.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.Disassembly.ToolTipText = "Disassembly";
//
// groupBox6
//
this.groupBox6.Controls.Add(this.DisplayBox);
@@ -751,7 +1002,13 @@
this.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.Debugger_PreviewKeyDown);
this.Microcode.ResumeLayout(false);
this.Microcode.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this._sourceViewer)).EndInit();
this.SourceTabs.ResumeLayout(false);
this.Rom0Page.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this._rom0SourceViewer)).EndInit();
this.Rom1Page.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this._rom1SourceViewer)).EndInit();
this.Rom2Page.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this._ram0SourceViewer)).EndInit();
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this._registerData)).EndInit();
this.groupBox2.ResumeLayout(false);
@@ -772,7 +1029,7 @@
#endregion
private System.Windows.Forms.GroupBox Microcode;
private System.Windows.Forms.DataGridView _sourceViewer;
private System.Windows.Forms.DataGridView _rom0SourceViewer;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button StepButton;
private System.Windows.Forms.Button AutoStep;
@@ -815,5 +1072,19 @@
private System.Windows.Forms.GroupBox groupBox6;
private System.Windows.Forms.PictureBox DisplayBox;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TabControl SourceTabs;
private System.Windows.Forms.TabPage Rom0Page;
private System.Windows.Forms.TabPage Rom1Page;
private System.Windows.Forms.DataGridView _rom1SourceViewer;
private System.Windows.Forms.TabPage Rom2Page;
private System.Windows.Forms.DataGridView _ram0SourceViewer;
private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn2;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8;
}
}

View File

@@ -47,21 +47,21 @@ namespace Contralto
SourceLine src = new SourceLine(line);
int i = _sourceViewer.Rows.Add(
int i = _rom0SourceViewer.Rows.Add(
false, // breakpoint
GetTextForTask(src.Task),
src.Address,
src.Text);
// Give the row a color based on the task
_sourceViewer.Rows[i].DefaultCellStyle.BackColor = GetColorForTask(src.Task);
_rom0SourceViewer.Rows[i].DefaultCellStyle.BackColor = GetColorForTask(src.Task);
// Tag the row based on the PROM address (if any) to make it easy to find.
if (!String.IsNullOrEmpty(src.Address))
{
_sourceViewer.Rows[i].Tag = Convert.ToUInt16(src.Address, 8);
_rom0SourceViewer.Rows[i].Tag = Convert.ToUInt16(src.Address, 8);
}
}
}
// Ensure the UI view gets refreshed to display the current MPC source
Refresh();
@@ -114,20 +114,20 @@ namespace Contralto
private void RefreshUI()
{
// Registers
for(int i=0;i<32;i++)
for (int i = 0; i < 32; i++)
{
_registerData.Rows[i].Cells[0].Value = Conversion.ToOctal(i,2);
_registerData.Rows[i].Cells[0].Value = Conversion.ToOctal(i, 2);
_registerData.Rows[i].Cells[1].Value = Conversion.ToOctal(_system.CPU.R[i], 6);
_registerData.Rows[i].Cells[2].Value = Conversion.ToOctal(_system.CPU.S[0][i], 6);
}
// Tasks
for (int i=0;i<16;i++)
for (int i = 0; i < 16; i++)
{
_taskData.Rows[i].Cells[0].Value = GetTextForTask((TaskType)i);
_taskData.Rows[i].Cells[1].Value = GetTextForTaskState(_system.CPU.Tasks[i]);
_taskData.Rows[i].Cells[2].Value =
_system.CPU.Tasks[i] != null ? Conversion.ToOctal(_system.CPU.Tasks[i].MPC, 4) : String.Empty;
_system.CPU.Tasks[i] != null ? Conversion.ToOctal(_system.CPU.Tasks[i].MPC, 4) : String.Empty;
}
// Other registers
@@ -152,19 +152,35 @@ namespace Contralto
_diskData.Rows[6].Cells[1].Value = Conversion.ToOctal(_system.DiskController.KADR, 6);
_diskData.Rows[7].Cells[1].Value = Conversion.ToOctal(_system.DiskController.KCOM, 6);
_diskData.Rows[8].Cells[1].Value = Conversion.ToOctal(_system.DiskController.KSTAT, 6);
_diskData.Rows[9].Cells[1].Value = _system.DiskController.RECNO.ToString();
_diskData.Rows[9].Cells[1].Value = _system.DiskController.RECNO.ToString();
// Find the right source line.
HighlightMicrocodeSourceLine(_system.CPU.CurrentTask.MPC);
//
// Select active tab based on current UCode bank
switch (UCodeMemory.Bank)
{
case MicrocodeBank.ROM0:
SourceTabs.TabIndex = 0;
break;
case MicrocodeBank.ROM1:
SourceTabs.TabIndex = 1;
break;
case MicrocodeBank.RAM0:
SourceTabs.TabIndex = 2;
break;
}
RefreshMicrocodeDisassembly();
// Highlight the nova memory location corresponding to the emulator PC.
// TODO: this should be configurable
ushort pc = _system.CPU.R[6];
HighlightNovaSourceLine(pc);
HighlightNovaSourceLine(pc);
// Exec state
switch(_execState)
switch (_execState)
{
case ExecutionState.Stopped:
ExecutionStateLabel.Text = "Stopped";
@@ -201,6 +217,30 @@ namespace Contralto
}
private void RefreshMicrocodeDisassembly()
{
// Update non-ROM code listings, depending on the currently active tab
switch (SourceTabs.SelectedIndex)
{
case 0:
// Find the right source line and highlight it.
HighlightMicrocodeSourceLine(_rom0SourceViewer, _system.CPU.CurrentTask.MPC);
break;
case 1:
SourceTabs.TabIndex = 1;
RefreshMicrocodeDisassembly(MicrocodeBank.ROM1);
HighlightMicrocodeSourceLine(_rom1SourceViewer, _system.CPU.CurrentTask.MPC);
break;
case 2:
SourceTabs.TabIndex = 2;
RefreshMicrocodeDisassembly(MicrocodeBank.RAM0);
HighlightMicrocodeSourceLine(_ram0SourceViewer, _system.CPU.CurrentTask.MPC);
break;
}
}
private void InitControls()
{
for (int i = 0; i < 32; i++)
@@ -241,8 +281,8 @@ namespace Contralto
_displayBuffer = new Bitmap(608, 808, PixelFormat.Format1bppIndexed);
DisplayBox.Image = _displayBuffer;
}
/// <summary>
/// Handle breakpoint placement on column 0.
@@ -256,12 +296,12 @@ namespace Contralto
{
// See if this is a source line, if so check/uncheck the box
// and set/unset a breakpoint for the line
if (_sourceViewer.Rows[e.RowIndex].Tag != null)
if (_rom0SourceViewer.Rows[e.RowIndex].Tag != null)
{
bool value = (bool)_sourceViewer.Rows[e.RowIndex].Cells[0].Value;
_sourceViewer.Rows[e.RowIndex].Cells[0].Value = !value;
bool value = (bool)_rom0SourceViewer.Rows[e.RowIndex].Cells[0].Value;
_rom0SourceViewer.Rows[e.RowIndex].Cells[0].Value = !value;
ModifyMicrocodeBreakpoint((UInt16)_sourceViewer.Rows[e.RowIndex].Tag, !value);
ModifyMicrocodeBreakpoint((UInt16)_rom0SourceViewer.Rows[e.RowIndex].Tag, !value);
}
}
@@ -280,17 +320,63 @@ namespace Contralto
}
}
private void HighlightMicrocodeSourceLine(UInt16 address)
private void RefreshMicrocodeDisassembly(MicrocodeBank bank)
{
foreach (DataGridViewRow row in _sourceViewer.Rows)
DataGridView view = null;
uint[] uCode = null;
switch (bank)
{
case MicrocodeBank.ROM1:
view = _rom1SourceViewer;
uCode = UCodeMemory.UCodeROM;
break;
case MicrocodeBank.RAM0:
view = _ram0SourceViewer;
uCode = UCodeMemory.UCodeRAM;
break;
}
bool bFirstTime = view.Rows.Count == 0;
for(int i=0;i<1024;i++)
{
int address = (bank == MicrocodeBank.RAM0) ? i : 1024 + i;
MicroInstruction instruction = new MicroInstruction(uCode[address]);
if (bFirstTime)
{
// Create new row
int index = view.Rows.Add(
false, // breakpoint
Conversion.ToOctal(address, 4),
Conversion.ToOctal((int)uCode[address], 11),
UCodeDisassembler.DisassembleInstruction(instruction, TaskType.Emulator));
view.Rows[index].Tag = (ushort)i;
}
else
{
// Update existing row
view.Rows[i].Cells[1].Value = Conversion.ToOctal(address, 4);
view.Rows[i].Cells[2].Value = Conversion.ToOctal((int)uCode[address], 11);
view.Rows[i].Cells[3].Value = UCodeDisassembler.DisassembleInstruction(instruction, TaskType.Emulator);
}
}
}
private void HighlightMicrocodeSourceLine(DataGridView view, UInt16 address)
{
foreach (DataGridViewRow row in view.Rows)
{
if (row.Tag != null &&
(ushort)(row.Tag) == address)
{
_sourceViewer.ClearSelection();
view.ClearSelection();
row.Selected = true;
_sourceViewer.CurrentCell = row.Cells[0];
view.CurrentCell = row.Cells[0];
break;
}
}
@@ -554,6 +640,11 @@ namespace Contralto
}
private void OnTabChanged(object sender, EventArgs e)
{
RefreshMicrocodeDisassembly();
}
private void Debugger_Load(object sender, EventArgs e)
{
@@ -569,7 +660,7 @@ namespace Contralto
UInt16 address = Convert.ToUInt16(JumpToAddress.Text, 8);
// find the source address that matches this, if any.
HighlightMicrocodeSourceLine(address);
HighlightMicrocodeSourceLine(_rom0SourceViewer, address);
}
catch
{
@@ -778,11 +869,22 @@ namespace Contralto
// Hacky initial implementation of keyboard input.
private void Debugger_KeyDown(object sender, KeyEventArgs e)
{
e.SuppressKeyPress = true;
//e.Handled = true;
//e.SuppressKeyPress = true;
if (_keyMap.ContainsKey(e.KeyCode))
{
_system.Keyboard.KeyDown(_keyMap[e.KeyCode]);
}
if (e.Control)
{
_system.Keyboard.KeyDown(_keyMap[Keys.ControlKey]);
}
if (e.Shift)
{
_system.Keyboard.KeyDown(_keyMap[Keys.LShiftKey]);
}
}
private void DisplayBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
@@ -792,10 +894,11 @@ namespace Contralto
private void Debugger_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
/*
if (_keyMap.ContainsKey(e.KeyCode))
{
_system.Keyboard.KeyDown(_keyMap[e.KeyCode]);
}
} */
}
private void Debugger_KeyUp(object sender, KeyEventArgs e)
@@ -805,7 +908,18 @@ namespace Contralto
_system.Keyboard.KeyUp(_keyMap[e.KeyCode]);
}
e.SuppressKeyPress = true;
// e.Handled = true;
// e.SuppressKeyPress = true;
if (e.Control)
{
_system.Keyboard.KeyUp(_keyMap[Keys.ControlKey]);
}
if (e.Shift)
{
_system.Keyboard.KeyUp(_keyMap[Keys.LShiftKey]);
}
}
private void InitKeymap()
@@ -862,6 +976,7 @@ namespace Contralto
_keyMap.Add(Keys.LShiftKey, AltoKey.LShift);
_keyMap.Add(Keys.RShiftKey, AltoKey.RShift);
_keyMap.Add(Keys.ControlKey, AltoKey.CTRL);
_keyMap.Add(Keys.Return, AltoKey.Return);
}
@@ -922,7 +1037,6 @@ namespace Contralto
{
_system.CPU.Hack();
}
}
}

View File

@@ -129,6 +129,30 @@
<metadata name="Source.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewCheckBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewCheckBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn7.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn6.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn8.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="RegNum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>

View File

@@ -477,7 +477,7 @@ namespace Contralto.IO
{
if (_debugRead)
{
Console.WriteLine("--- missed word {0}({1}) ---", _sectorWordIndex, _kDataRead);
//Console.WriteLine("--- missed word {0}({1}) ---", _sectorWordIndex, _kDataRead);
}
Log.Write(LogType.Verbose, LogComponent.DiskWordTask, "Sector {0} Word {1} read into KDATA", _sector, Conversion.ToOctal(diskWord));

View File

@@ -21,6 +21,7 @@ namespace Contralto.Logging
Memory = 0x20,
Keyboard = 0x40,
Display = 0x80,
Microcode = 0x100,
All = 0x7fffffff
}

View File

@@ -185,7 +185,7 @@ namespace Contralto.Memory
case 5:
// Single word read
Log.Write(LogType.Verbose, LogComponent.Memory, "Single-word read of {0} from {1} (cycle 5)", Conversion.ToOctal(_memoryData), Conversion.ToOctal(_memoryAddress ^ 1));
//Log.Write(LogType.Verbose, LogComponent.Memory, "Single-word read of {0} from {1} (cycle 5)", Conversion.ToOctal(_memoryData), Conversion.ToOctal(_memoryAddress ^ 1));
return _memoryData;
// ***
@@ -205,12 +205,13 @@ namespace Contralto.Memory
// If this is memory cycle 6 we will return the last half of the doubleword to complete a double-word read.
if (_memoryCycle == 6)
{
Log.Write(LogType.Verbose, LogComponent.Memory, "Double-word read of {0} from {1} (cycle 6)", Conversion.ToOctal(_memoryData2), Conversion.ToOctal(_memoryAddress ^ 1));
//Log.Write(LogType.Verbose, LogComponent.Memory, "Double-word read of {0} from {1} (cycle 6)", Conversion.ToOctal(_memoryData2), Conversion.ToOctal(_memoryAddress ^ 1));
return _memoryData2;
}
else
{
Log.Write(LogType.Verbose, LogComponent.Memory, "Single-word read of {0} from {1} (post cycle 6)", Conversion.ToOctal(_memoryData), Conversion.ToOctal(_memoryAddress));
{
//Log.Write(LogType.Verbose, LogComponent.Memory, "Single-word read of {0} from {1} (post cycle 6)", Conversion.ToOctal(_memoryData), Conversion.ToOctal(_memoryAddress));
return _memoryData;
}
}
@@ -234,23 +235,26 @@ namespace Contralto.Memory
WriteToBus(_memoryAddress, data, _task, _extendedMemoryReference);
_doubleWordStore = true;
/*
Log.Write(
LogType.Verbose,
LogComponent.Memory,
"Single-word store of {0} to {1} (cycle 3)",
Conversion.ToOctal(data),
Conversion.ToOctal(_memoryAddress));
Conversion.ToOctal(_memoryAddress)); */
break;
case 4:
_memoryData = data; // Only really necessary to show in debugger
/*
Log.Write(
LogType.Verbose,
LogComponent.Memory,
_doubleWordStore ? "Double-word store of {0} to {1} (cycle 4)" : "Single-word store of {0} to {1} (cycle 4)",
Conversion.ToOctal(data),
_doubleWordStore ? Conversion.ToOctal(_memoryAddress ^ 1) : Conversion.ToOctal(_memoryAddress));
*/
WriteToBus(_doubleWordStore ? (ushort)(_memoryAddress ^ 1) : _memoryAddress, data, _task, _extendedMemoryReference);
break;
}