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:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
//
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
687
Contralto/Debugger.Designer.cs
generated
687
Contralto/Debugger.Designer.cs
generated
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -21,6 +21,7 @@ namespace Contralto.Logging
|
||||
Memory = 0x20,
|
||||
Keyboard = 0x40,
|
||||
Display = 0x80,
|
||||
Microcode = 0x100,
|
||||
|
||||
All = 0x7fffffff
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user