OpenCores
URL https://opencores.org/ocsvn/thor/thor/trunk

Subversion Repositories thor

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /thor
    from Rev 34 to Rev 35
    Reverse comparison

Rev 34 → Rev 35

/trunk/software/emuThor/source/clsDevice.h
1,6 → 1,11
#pragma once
 
// Generic system device
//
// Base class for devices in the system. This is a more or less
// abstract class with suggested methods to be provided in
// derivatives. Default methods are provided in case the derived
// device class is read-only or write-only.
 
class clsDevice
{
/trunk/software/emuThor/source/frmRegisters.resx
117,4 → 117,31
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolTipC12.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="toolTipC14.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>128, 17</value>
</metadata>
<metadata name="toolTipC1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>239, 17</value>
</metadata>
<metadata name="toolTipR31.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>343, 17</value>
</metadata>
<metadata name="toolTipR30.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>454, 17</value>
</metadata>
<metadata name="toolTipR29.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>565, 17</value>
</metadata>
<metadata name="toolTipR28.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>676, 17</value>
</metadata>
<metadata name="toolTipC8.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>787, 17</value>
</metadata>
<metadata name="toolTipR0.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>891, 17</value>
</metadata>
</root>
/trunk/software/emuThor/source/frmRun.h
0,0 → 1,719
#pragma once
#include <math.h>
#include "fmrFreeRun.h"
#include "clsDisassem.h"
 
extern clsDisassem da;
extern bool isRunning;
extern bool quit;
extern bool stepout, stepover;
extern unsigned int step_depth, stepover_depth;
extern unsigned int stepoverBkpt;
extern unsigned int stepover_pc;
extern bool animate;
extern bool fullspeed;
extern bool runstop;
extern bool runClosed;
 
namespace emuThor {
 
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
using namespace System::Diagnostics;
 
/// <summary>
/// Summary for frmRun
/// </summary>
public ref class frmRun : public System::Windows::Forms::Form
{
public:
frmRun(Mutex^ m)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
mut = m;
stopwatch = gcnew Stopwatch;
InitializeBackgroundWorker();
toolTipMHz->SetToolTip(lblMHz,"Shows an estimate of the frequency of operation\n of the emulator compared to the FPGA version.");
}
 
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~frmRun()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TrackBar^ trackBar1;
protected:
private: System::Windows::Forms::ListBox^ listBoxCode;
private: System::Windows::Forms::ListBox^ listBoxBytes;
private: System::Windows::Forms::ListBox^ listBoxAdr;
private: System::Windows::Forms::ToolStrip^ toolStrip1;
private: System::Windows::Forms::ToolStripButton^ toolStripButton1;
private: System::Windows::Forms::ToolStripButton^ toolStripButton2;
private: System::Windows::Forms::ToolStripButton^ toolStripButton3;
private: System::Windows::Forms::ToolStripButton^ toolStripButton4;
private: System::Windows::Forms::ToolStripButton^ toolStripButton5;
 
 
private: System::Windows::Forms::ToolStripButton^ toolStripButton8;
private: Mutex^ mut;
private: Stopwatch^ stopwatch;
private: __int64 startTick, stopTick;
private: System::Windows::Forms::MenuStrip^ menuStrip1;
 
private: System::Windows::Forms::ToolStripMenuItem^ stepOverToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ stepOutToolStripMenuItem;
 
private: System::Windows::Forms::ToolStripMenuItem^ stopToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ resetToolStripMenuItem;
private: System::Windows::Forms::Timer^ timer1;
private: System::Windows::Forms::ToolStripMenuItem^ animateToolStripMenuItem;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::ProgressBar^ progressBar1;
private: System::Windows::Forms::NumericUpDown^ numSteps;
 
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Button^ button1;
private: System::ComponentModel::BackgroundWorker^ backgroundWorker1;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::ToolStripMenuItem^ stepIntoToolStripMenuItem;
private: System::Windows::Forms::Label^ lblMHz;
private: System::Windows::Forms::ToolTip^ toolTipMHz;
 
private: System::ComponentModel::IContainer^ components;
 
private:
/// <summary>
/// Required designer variable.
/// </summary>
 
 
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(frmRun::typeid));
this->trackBar1 = (gcnew System::Windows::Forms::TrackBar());
this->listBoxCode = (gcnew System::Windows::Forms::ListBox());
this->listBoxBytes = (gcnew System::Windows::Forms::ListBox());
this->listBoxAdr = (gcnew System::Windows::Forms::ListBox());
this->toolStrip1 = (gcnew System::Windows::Forms::ToolStrip());
this->toolStripButton1 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton2 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton3 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton4 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton5 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton8 = (gcnew System::Windows::Forms::ToolStripButton());
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->stepIntoToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stepOverToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stepOutToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->animateToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stopToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->resetToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
this->label1 = (gcnew System::Windows::Forms::Label());
this->progressBar1 = (gcnew System::Windows::Forms::ProgressBar());
this->numSteps = (gcnew System::Windows::Forms::NumericUpDown());
this->label2 = (gcnew System::Windows::Forms::Label());
this->button1 = (gcnew System::Windows::Forms::Button());
this->backgroundWorker1 = (gcnew System::ComponentModel::BackgroundWorker());
this->button2 = (gcnew System::Windows::Forms::Button());
this->label3 = (gcnew System::Windows::Forms::Label());
this->lblMHz = (gcnew System::Windows::Forms::Label());
this->toolTipMHz = (gcnew System::Windows::Forms::ToolTip(this->components));
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->trackBar1))->BeginInit();
this->toolStrip1->SuspendLayout();
this->menuStrip1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numSteps))->BeginInit();
this->SuspendLayout();
//
// trackBar1
//
this->trackBar1->Location = System::Drawing::Point(565, 63);
this->trackBar1->Maximum = 12;
this->trackBar1->Name = L"trackBar1";
this->trackBar1->Size = System::Drawing::Size(137, 45);
this->trackBar1->TabIndex = 12;
this->trackBar1->TickStyle = System::Windows::Forms::TickStyle::TopLeft;
this->trackBar1->Value = 7;
this->trackBar1->Scroll += gcnew System::EventHandler(this, &frmRun::trackBar1_Scroll);
//
// listBoxCode
//
this->listBoxCode->FormattingEnabled = true;
this->listBoxCode->Location = System::Drawing::Point(232, 63);
this->listBoxCode->Name = L"listBoxCode";
this->listBoxCode->Size = System::Drawing::Size(327, 433);
this->listBoxCode->TabIndex = 11;
//
// listBoxBytes
//
this->listBoxBytes->FormattingEnabled = true;
this->listBoxBytes->Location = System::Drawing::Point(85, 63);
this->listBoxBytes->Name = L"listBoxBytes";
this->listBoxBytes->Size = System::Drawing::Size(141, 433);
this->listBoxBytes->TabIndex = 10;
//
// listBoxAdr
//
this->listBoxAdr->FormattingEnabled = true;
this->listBoxAdr->Location = System::Drawing::Point(8, 63);
this->listBoxAdr->Name = L"listBoxAdr";
this->listBoxAdr->Size = System::Drawing::Size(71, 433);
this->listBoxAdr->TabIndex = 9;
//
// toolStrip1
//
this->toolStrip1->Dock = System::Windows::Forms::DockStyle::None;
this->toolStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(6) {this->toolStripButton1,
this->toolStripButton2, this->toolStripButton3, this->toolStripButton4, this->toolStripButton5, this->toolStripButton8});
this->toolStrip1->Location = System::Drawing::Point(9, 35);
this->toolStrip1->Name = L"toolStrip1";
this->toolStrip1->Size = System::Drawing::Size(150, 25);
this->toolStrip1->TabIndex = 13;
this->toolStrip1->Text = L"toolStrip1";
//
// toolStripButton1
//
this->toolStripButton1->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton1->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton1.Image")));
this->toolStripButton1->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton1->Name = L"toolStripButton1";
this->toolStripButton1->Size = System::Drawing::Size(23, 22);
this->toolStripButton1->Text = L"Step Into";
this->toolStripButton1->Click += gcnew System::EventHandler(this, &frmRun::toolStripButton1_Click);
//
// toolStripButton2
//
this->toolStripButton2->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton2->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton2.Image")));
this->toolStripButton2->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton2->Name = L"toolStripButton2";
this->toolStripButton2->Size = System::Drawing::Size(23, 22);
this->toolStripButton2->Text = L"Step Over (Bounce)";
this->toolStripButton2->Click += gcnew System::EventHandler(this, &frmRun::toolStripButton2_Click);
//
// toolStripButton3
//
this->toolStripButton3->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton3->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton3.Image")));
this->toolStripButton3->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton3->Name = L"toolStripButton3";
this->toolStripButton3->Size = System::Drawing::Size(23, 22);
this->toolStripButton3->Text = L"Step Out Of";
this->toolStripButton3->Click += gcnew System::EventHandler(this, &frmRun::toolStripButton3_Click);
//
// toolStripButton4
//
this->toolStripButton4->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton4->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton4.Image")));
this->toolStripButton4->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton4->Name = L"toolStripButton4";
this->toolStripButton4->Size = System::Drawing::Size(23, 22);
this->toolStripButton4->Text = L"Run";
this->toolStripButton4->Click += gcnew System::EventHandler(this, &frmRun::toolStripButton4_Click);
//
// toolStripButton5
//
this->toolStripButton5->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton5->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton5.Image")));
this->toolStripButton5->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton5->Name = L"toolStripButton5";
this->toolStripButton5->Size = System::Drawing::Size(23, 22);
this->toolStripButton5->Text = L"Stop";
this->toolStripButton5->Click += gcnew System::EventHandler(this, &frmRun::toolStripButton5_Click);
//
// toolStripButton8
//
this->toolStripButton8->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton8->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton8.Image")));
this->toolStripButton8->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton8->Name = L"toolStripButton8";
this->toolStripButton8->Size = System::Drawing::Size(23, 22);
this->toolStripButton8->Text = L"Reset Button";
this->toolStripButton8->Click += gcnew System::EventHandler(this, &frmRun::toolStripButton8_Click);
//
// menuStrip1
//
this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(6) {this->stepIntoToolStripMenuItem,
this->stepOverToolStripMenuItem, this->stepOutToolStripMenuItem, this->animateToolStripMenuItem, this->stopToolStripMenuItem,
this->resetToolStripMenuItem});
this->menuStrip1->Location = System::Drawing::Point(0, 0);
this->menuStrip1->Name = L"menuStrip1";
this->menuStrip1->Size = System::Drawing::Size(741, 24);
this->menuStrip1->TabIndex = 14;
this->menuStrip1->Text = L"menuStrip1";
this->menuStrip1->ItemClicked += gcnew System::Windows::Forms::ToolStripItemClickedEventHandler(this, &frmRun::menuStrip1_ItemClicked);
//
// stepIntoToolStripMenuItem
//
this->stepIntoToolStripMenuItem->Name = L"stepIntoToolStripMenuItem";
this->stepIntoToolStripMenuItem->Size = System::Drawing::Size(66, 20);
this->stepIntoToolStripMenuItem->Text = L"Step I&nto";
this->stepIntoToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmRun::stepIntoToolStripMenuItem_Click);
//
// stepOverToolStripMenuItem
//
this->stepOverToolStripMenuItem->Name = L"stepOverToolStripMenuItem";
this->stepOverToolStripMenuItem->Size = System::Drawing::Size(70, 20);
this->stepOverToolStripMenuItem->Text = L"Step &Over";
this->stepOverToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmRun::stepOverToolStripMenuItem_Click);
//
// stepOutToolStripMenuItem
//
this->stepOutToolStripMenuItem->Name = L"stepOutToolStripMenuItem";
this->stepOutToolStripMenuItem->Size = System::Drawing::Size(65, 20);
this->stepOutToolStripMenuItem->Text = L"Step Ou&t";
this->stepOutToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmRun::stepOutToolStripMenuItem_Click);
//
// animateToolStripMenuItem
//
this->animateToolStripMenuItem->Name = L"animateToolStripMenuItem";
this->animateToolStripMenuItem->Size = System::Drawing::Size(64, 20);
this->animateToolStripMenuItem->Text = L"&Animate";
this->animateToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmRun::animateToolStripMenuItem_Click);
//
// stopToolStripMenuItem
//
this->stopToolStripMenuItem->Name = L"stopToolStripMenuItem";
this->stopToolStripMenuItem->Size = System::Drawing::Size(43, 20);
this->stopToolStripMenuItem->Text = L"&Stop";
this->stopToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmRun::stopToolStripMenuItem_Click);
//
// resetToolStripMenuItem
//
this->resetToolStripMenuItem->Name = L"resetToolStripMenuItem";
this->resetToolStripMenuItem->Size = System::Drawing::Size(47, 20);
this->resetToolStripMenuItem->Text = L"&Reset";
this->resetToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmRun::resetToolStripMenuItem_Click);
//
// timer1
//
this->timer1->Tick += gcnew System::EventHandler(this, &frmRun::timer1_Tick);
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(568, 38);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(79, 13);
this->label1->TabIndex = 15;
this->label1->Text = L"Animation Rate";
//
// progressBar1
//
this->progressBar1->Location = System::Drawing::Point(571, 231);
this->progressBar1->Name = L"progressBar1";
this->progressBar1->Size = System::Drawing::Size(158, 23);
this->progressBar1->TabIndex = 16;
//
// numSteps
//
this->numSteps->DecimalPlaces = 3;
this->numSteps->Increment = System::Decimal(gcnew cli::array< System::Int32 >(4) {10, 0, 0, 0});
this->numSteps->Location = System::Drawing::Point(571, 177);
this->numSteps->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) {100000, 0, 0, 0});
this->numSteps->Name = L"numSteps";
this->numSteps->Size = System::Drawing::Size(120, 20);
this->numSteps->TabIndex = 17;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(568, 161);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(129, 13);
this->label2->TabIndex = 18;
this->label2->Text = L"Number of Steps (1,000\'s)";
//
// button1
//
this->button1->Location = System::Drawing::Point(571, 202);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 19;
this->button1->Text = L"Run";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &frmRun::button1_Click);
//
// backgroundWorker1
//
this->backgroundWorker1->WorkerReportsProgress = true;
this->backgroundWorker1->WorkerSupportsCancellation = true;
//
// button2
//
this->button2->Location = System::Drawing::Point(652, 202);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 20;
this->button2->Text = L"Stop";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &frmRun::button2_Click);
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(571, 137);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(120, 13);
this->label3->TabIndex = 21;
this->label3->Text = L"Run at Maximum Speed";
//
// lblMHz
//
this->lblMHz->AutoSize = true;
this->lblMHz->Location = System::Drawing::Point(571, 266);
this->lblMHz->Name = L"lblMHz";
this->lblMHz->Size = System::Drawing::Size(47, 13);
this->lblMHz->TabIndex = 22;
this->lblMHz->Text = L"0.0 MHz";
this->lblMHz->MouseHover += gcnew System::EventHandler(this, &frmRun::lblMHz_MouseHover);
//
// toolTipMHz
//
this->toolTipMHz->IsBalloon = true;
//
// frmRun
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(741, 501);
this->Controls->Add(this->lblMHz);
this->Controls->Add(this->label3);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->label2);
this->Controls->Add(this->numSteps);
this->Controls->Add(this->progressBar1);
this->Controls->Add(this->label1);
this->Controls->Add(this->toolStrip1);
this->Controls->Add(this->menuStrip1);
this->Controls->Add(this->trackBar1);
this->Controls->Add(this->listBoxCode);
this->Controls->Add(this->listBoxBytes);
this->Controls->Add(this->listBoxAdr);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MainMenuStrip = this->menuStrip1;
this->Name = L"frmRun";
this->Text = L"emuThor - Run";
this->WindowState = System::Windows::Forms::FormWindowState::Maximized;
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmRun::frmRun_FormClosing);
this->Load += gcnew System::EventHandler(this, &frmRun::frmRun_Load);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->trackBar1))->EndInit();
this->toolStrip1->ResumeLayout(false);
this->toolStrip1->PerformLayout();
this->menuStrip1->ResumeLayout(false);
this->menuStrip1->PerformLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->numSteps))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
private: void InitializeBackgroundWorker() {
backgroundWorker1->DoWork += gcnew DoWorkEventHandler(this, &frmRun::backgroundWorker1_DoWork);
backgroundWorker1->RunWorkerCompleted += gcnew RunWorkerCompletedEventHandler(this, &frmRun::backgroundWorker1_RunWorkerCompleted);
backgroundWorker1->ProgressChanged += gcnew ProgressChangedEventHandler(this, &frmRun::backgroundWorker1_ProgressChanged);
}
// Try and align the disassembled code with the current PC.
private: int PCIsInList(int as)
{
int nn, nb;
std::string dstr;
int ae;
int ad = as;
 
for (ad = as; ad > as-32; ad--) {
ae = ad;
for (nn = 0; nn < 64; nn++) {
mut->WaitOne();
if (ae==system1.cpu2.pc) {
mut->ReleaseMutex();
return ad;
}
mut->ReleaseMutex();
dstr = da.Disassem(ae,&nb);
ae += nb;
}
}
return as;
}
 
public: void UpdateListBoxes()
{
int nn,nb,kk;
char buf2[100];
std::string dstr;
std::string buf;
int adr[32];
int adf;
int ad;
 
mut->WaitOne();
ad = PCIsInList(system1.cpu2.pc-32);
mut->ReleaseMutex();
listBoxAdr->Items->Clear();
listBoxBytes->Items->Clear();
listBoxCode->Items->Clear();
for (nn = 0; nn < 32; nn++) {
adr[nn] = ad;
sprintf(buf2,"%06X", ad);
buf = std::string(buf2);
this->listBoxAdr->Items->Add(gcnew String(buf.c_str()));
dstr = da.Disassem(ad,&nb);
buf2[0] = '\0';
for (kk = 0; kk < nb; kk++) {
mut->WaitOne();
sprintf(&buf2[strlen(buf2)], "%02X ", system1.ReadByte(ad));
mut->ReleaseMutex();
ad++;
}
buf = std::string(buf2);
this->listBoxBytes->Items->Add(gcnew String(buf.c_str()));
this->listBoxCode->Items->Add(gcnew String(dstr.c_str()));
}
for (nn = 0; nn < 32; nn++) {
mut->WaitOne();
adf = system1.cpu2.pc;
mut->ReleaseMutex();
if (adr[nn]==adf) {
this->listBoxAdr->SetSelected(nn,true);
this->listBoxBytes->SetSelected(nn,true);
this->listBoxCode->SetSelected(nn,true);
}
}
}
public: void DoStepInto() {
// animate = false;
// isRunning = false;
char buf[100];
mut->WaitOne();
system1.Step();
mut->ReleaseMutex();
UpdateListBoxes();
// sprintf(buf, "%04X", system1.leds);
// lblLEDS->Text = gcnew String(buf);
// pictureBox1->Refresh();
}
public: void DoStepOut() {
int xx;
mut->WaitOne();
step_depth = system1.cpu2.sub_depth;
stepout = true;
animate = false;
fullspeed = true;
isRunning = true;
mut->ReleaseMutex();
int ticks = (int)(1000 * 1000);
 
this->button1->Enabled = false;
backgroundWorker1->RunWorkerAsync(ticks);
this->button2->Enabled = true;
progressBar1->Value = 0;
//UpdateListBoxes();
//this->fullSpeedToolStripMenuItem->Checked = true;
}
public: void DoStepOver() {
mut->WaitOne();
stepover_pc = system1.cpu2.pc;
stepover_depth = system1.cpu2.sub_depth;
stepover = true;
animate = false;
fullspeed = true;
isRunning = true;
mut->ReleaseMutex();
UpdateListBoxes();
// this->fullSpeedToolStripMenuItem->Checked = true;
}
public: void DoStopButton() {
timer1->Enabled = false;
mut->WaitOne();
animate = false;
isRunning = false;
// cpu2.brk = true;
fullspeed = false;
mut->ReleaseMutex();
UpdateListBoxes();
// this->fullSpeedToolStripMenuItem->Checked = false;
// this->animateFastToolStripMenuItem->Checked = false;
// this->timer1->Interval = 100;
}
private: void Reset() {
int ad;
mut->WaitOne();
system1.Reset();
ad = system1.cpu2.pc-32;
mut->ReleaseMutex();
UpdateListBoxes();
}
 
private: System::Void toolStripButton8_Click(System::Object^ sender, System::EventArgs^ e) {
Reset();
}
private: System::Void toolStripButton7_Click(System::Object^ sender, System::EventArgs^ e) {
// frmBreakpoints^ form = gcnew frmBreakpoints(mut);
// form->MdiParent = this->MdiParent;
// form->ShowDialog();
}
private: System::Void toolStripButton4_Click(System::Object^ sender, System::EventArgs^ e) {
int xx;
int ticks = (int)(this->numSteps->Value * 1000);
 
this->button1->Enabled = false;
backgroundWorker1->RunWorkerAsync(ticks);
this->button2->Enabled = true;
progressBar1->Value = 0;
}
private: System::Void toolStripButton1_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepInto();
}
private: System::Void toolStripButton5_Click(System::Object^ sender, System::EventArgs^ e) {
DoStopButton();
}
private: System::Void toolStripButton2_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepOver();
}
private: System::Void stepToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepInto();
}
private: System::Void toolStripButton3_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepOut();
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
static int tt = 0;
 
mut->WaitOne();
system1.Step();
mut->ReleaseMutex();
if (this->timer1->Interval < 10)
tt += 1;
if (tt == 10 * this->timer1->Interval) {
tt = 0;
UpdateListBoxes();
}
else
UpdateListBoxes();
}
private: System::Void animateToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
timer1->Enabled = true;
timer1->Interval = (1<<(12-trackBar1->Value));
}
private: System::Void trackBar1_Scroll(System::Object^ sender, System::EventArgs^ e) {
timer1->Interval = (1<<(12-trackBar1->Value));
}
private: System::Void menuStrip1_ItemClicked(System::Object^ sender, System::Windows::Forms::ToolStripItemClickedEventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int xx;
int ticks = (int)(this->numSteps->Value * 1000);
 
this->button1->Enabled = false;
backgroundWorker1->RunWorkerAsync(ticks);
this->button2->Enabled = true;
progressBar1->Value = 0;
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
backgroundWorker1->CancelAsync();
this->button2->Enabled = false;
}
private: void backgroundWorker1_DoWork(Object^ sender, DoWorkEventArgs^ e) {
int xx;
BackgroundWorker^ worker = dynamic_cast<BackgroundWorker^>(sender);
int div = safe_cast<Int32>(e->Argument) / 100;
int percentComplete = 0;
 
mut->WaitOne();
isRunning = true;
stopwatch->Reset();
stopwatch->Start();
startTick = system1.cpu2.tick;
mut->ReleaseMutex();
for (xx = 0; xx < safe_cast<Int32>(e->Argument) && isRunning; xx++) {
if (worker->CancellationPending) {
e->Cancel = true;
xx = safe_cast<Int32>(e->Argument);
}
if (xx % div == 0) {
worker->ReportProgress(percentComplete);
percentComplete++;
}
mut->WaitOne();
system1.Run();
mut->ReleaseMutex();
}
mut->WaitOne();
stopwatch->Stop();
stopTick = system1.cpu2.tick;
isRunning = false;
mut->ReleaseMutex();
e->Result = 0;
}
private: void backgroundWorker1_ProgressChanged(Object^ sender, ProgressChangedEventArgs^ e) {
this->progressBar1->Value = e->ProgressPercentage;
}
private: void backgroundWorker1_RunWorkerCompleted( Object^ , RunWorkerCompletedEventArgs^ e) {
char buf[100];
if (e->Error != nullptr) {
MessageBox::Show(e->Error->Message);
}
else if (e->Cancelled) {
/* possibly display cancelled message in a label */
}
else {
/* possibly display result status */
}
__int64 elapsed = stopwatch->ElapsedMilliseconds;
double MHz = ((double)(stopTick-startTick)/(double)elapsed)/(double)1000;
sprintf(buf,"%3.3g MHz", MHz);
this->lblMHz->Text = gcnew String(buf);
this->button2->Enabled = false;
this->button1->Enabled = true;
this->progressBar1->Value = 0;
this->UpdateListBoxes();
}
private: System::Void frmRun_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (e->CloseReason==CloseReason::UserClosing)
e->Cancel = true;
}
private: System::Void resetToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
Reset();
}
private: System::Void stopToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
DoStopButton();
}
private: System::Void stepOverToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepOver();
}
private: System::Void stepOutToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepOut();
}
private: System::Void stepIntoToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepInto();
}
private: System::Void frmRun_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void lblMHz_MouseHover(System::Object^ sender, System::EventArgs^ e) {
}
};
}
/trunk/software/emuThor/source/clsPIC.h
1,5 → 1,20
#pragma once
#include "stdafx.h"
// Programmable Interrupt Controller Emulator
//
// This class emulates some of the functionality of the interrupt
// controller. Edge sensing on the interrupt inputs is not currently
// supported. The edge sensing on the clock interrupts is emulated
// by resetting the interrupt input when the PIC recieves the
// command to acknowledge the edge sensitive interrupt and only
// driving the interrupt signal true by the timer. The timers
// effectively act like pulse generators which provide only a
// positive transition to the clock signal. The negative
// transition is supplied when the interrupt is acknowledged.
// In the real system the clock generator provides a square wave
// output for the interrupts so edge sensing is necessary.
// It's faked out so that from the perspective of the BIOS
// software it looks the same.
 
extern clsSystem system1;
 
7,6 → 22,7
{
public:
bool enables[16];
bool edges[16]; // edge sensitive
bool irq30Hz;
bool irq1024Hz;
bool irqKeyboard;
/trunk/software/emuThor/source/frmMemory.h
109,6 → 109,7
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedDialog;
this->Name = L"frmMemory";
this->Text = L"Memory";
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmMemory::frmMemory_FormClosing);
this->ResumeLayout(false);
this->PerformLayout();
 
133,5 → 134,9
}
this->textBoxMem->Text = gcnew String(str2.c_str());
}
private: System::Void frmMemory_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (e->CloseReason==CloseReason::UserClosing)
e->Cancel = true;
}
};
}
/trunk/software/emuThor/source/emuThor.cpp
8,8 → 8,8
clsSystem system1;
volatile unsigned __int8 keybd_scancode;
volatile unsigned __int8 keybd_status;
volatile unsigned int interval1024;
volatile unsigned int interval30;
volatile unsigned int interval1024 = 977;
volatile unsigned int interval30 = 33333;
 
char refscreen;
unsigned int breakpoints[30];
/trunk/software/emuThor/source/clsThor.h
37,15 → 37,18
__int8 bir;
__int64 dbad0,dbad1,dbad2,dbad3;
__int64 dbctrl,dbstat;
bool _32bit;
bool im;
int imcd;
int pred;
bool rts; // Indicator for step out.
__int64 GetGP(int rg);
bool IsKM();
void Reset();
void Step();
clsThor() { _32bit = true; };
private:
inline bool IRQActive() { return !StatusHWI && irq && !im; };
inline bool IRQActive() { return !StatusHWI && irq && !im && imcd==0; };
int GetBit(__int64 a, int b);
void SetBit(__int64 *a, int b);
void ClearBit(__int64 *a, int b);
/trunk/software/emuThor/source/frmUart.h
19,7 → 19,6
public ref class frmUart : public System::Windows::Forms::Form
{
public:
Mutex^ mut;
frmUart(Mutex^ m)
{
mut = m;
27,6 → 26,7
//
//TODO: Add the constructor code here
//
do_send = false;
}
 
protected:
48,7 → 48,7
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::TextBox^ txtFromUart;
 
private: System::Windows::Forms::Button^ button1;
 
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::TextBox^ txtCM0;
103,6 → 103,7
/// Required designer variable.
/// </summary>
private: bool do_send;
private: Mutex^ mut;
 
#pragma region Windows Form Designer generated code
/// <summary>
116,7 → 117,6
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->txtFromUart = (gcnew System::Windows::Forms::TextBox());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->label3 = (gcnew System::Windows::Forms::Label());
this->txtCM0 = (gcnew System::Windows::Forms::TextBox());
154,9 → 154,10
//
// txtToUart
//
this->txtToUart->Location = System::Drawing::Point(31, 27);
this->txtToUart->Location = System::Drawing::Point(27, 67);
this->txtToUart->Multiline = true;
this->txtToUart->Name = L"txtToUart";
this->txtToUart->ScrollBars = System::Windows::Forms::ScrollBars::Both;
this->txtToUart->Size = System::Drawing::Size(318, 124);
this->txtToUart->TabIndex = 0;
//
163,7 → 164,7
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(28, 11);
this->label1->Location = System::Drawing::Point(24, 51);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(53, 13);
this->label1->TabIndex = 1;
172,7 → 173,7
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(28, 169);
this->label2->Location = System::Drawing::Point(24, 209);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(95, 13);
this->label2->TabIndex = 2;
180,24 → 181,17
//
// txtFromUart
//
this->txtFromUart->Location = System::Drawing::Point(31, 185);
this->txtFromUart->Location = System::Drawing::Point(27, 225);
this->txtFromUart->Multiline = true;
this->txtFromUart->Name = L"txtFromUart";
this->txtFromUart->ReadOnly = true;
this->txtFromUart->ScrollBars = System::Windows::Forms::ScrollBars::Both;
this->txtFromUart->Size = System::Drawing::Size(318, 124);
this->txtFromUart->TabIndex = 3;
//
// button1
//
this->button1->Location = System::Drawing::Point(474, 353);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 4;
this->button1->Text = L"OK";
this->button1->UseVisualStyleBackColor = true;
//
// button2
//
this->button2->Location = System::Drawing::Point(355, 25);
this->button2->Location = System::Drawing::Point(351, 65);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 5;
208,7 → 202,7
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(475, 72);
this->label3->Location = System::Drawing::Point(471, 112);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(29, 13);
this->label3->TabIndex = 6;
216,7 → 210,7
//
// txtCM0
//
this->txtCM0->Location = System::Drawing::Point(510, 69);
this->txtCM0->Location = System::Drawing::Point(506, 109);
this->txtCM0->Name = L"txtCM0";
this->txtCM0->ReadOnly = true;
this->txtCM0->Size = System::Drawing::Size(39, 20);
225,7 → 219,7
//
// txtCM1
//
this->txtCM1->Location = System::Drawing::Point(510, 95);
this->txtCM1->Location = System::Drawing::Point(506, 135);
this->txtCM1->Name = L"txtCM1";
this->txtCM1->ReadOnly = true;
this->txtCM1->Size = System::Drawing::Size(39, 20);
235,7 → 229,7
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(475, 98);
this->label4->Location = System::Drawing::Point(471, 138);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(29, 13);
this->label4->TabIndex = 8;
243,7 → 237,7
//
// txtCM2
//
this->txtCM2->Location = System::Drawing::Point(510, 121);
this->txtCM2->Location = System::Drawing::Point(506, 161);
this->txtCM2->Name = L"txtCM2";
this->txtCM2->ReadOnly = true;
this->txtCM2->Size = System::Drawing::Size(39, 20);
253,7 → 247,7
// label5
//
this->label5->AutoSize = true;
this->label5->Location = System::Drawing::Point(475, 124);
this->label5->Location = System::Drawing::Point(471, 164);
this->label5->Name = L"label5";
this->label5->Size = System::Drawing::Size(29, 13);
this->label5->TabIndex = 10;
261,7 → 255,7
//
// txtCM3
//
this->txtCM3->Location = System::Drawing::Point(510, 147);
this->txtCM3->Location = System::Drawing::Point(506, 187);
this->txtCM3->Name = L"txtCM3";
this->txtCM3->ReadOnly = true;
this->txtCM3->Size = System::Drawing::Size(39, 20);
271,7 → 265,7
// label6
//
this->label6->AutoSize = true;
this->label6->Location = System::Drawing::Point(475, 150);
this->label6->Location = System::Drawing::Point(471, 190);
this->label6->Name = L"label6";
this->label6->Size = System::Drawing::Size(29, 13);
this->label6->TabIndex = 12;
280,7 → 274,7
// label7
//
this->label7->AutoSize = true;
this->label7->Location = System::Drawing::Point(378, 72);
this->label7->Location = System::Drawing::Point(374, 112);
this->label7->Name = L"label7";
this->label7->Size = System::Drawing::Size(21, 13);
this->label7->TabIndex = 14;
288,7 → 282,7
//
// txtTB
//
this->txtTB->Location = System::Drawing::Point(413, 69);
this->txtTB->Location = System::Drawing::Point(409, 109);
this->txtTB->Name = L"txtTB";
this->txtTB->ReadOnly = true;
this->txtTB->Size = System::Drawing::Size(39, 20);
297,7 → 291,7
//
// txtLS
//
this->txtLS->Location = System::Drawing::Point(413, 124);
this->txtLS->Location = System::Drawing::Point(409, 164);
this->txtLS->Name = L"txtLS";
this->txtLS->ReadOnly = true;
this->txtLS->Size = System::Drawing::Size(39, 20);
307,7 → 301,7
// label8
//
this->label8->AutoSize = true;
this->label8->Location = System::Drawing::Point(378, 127);
this->label8->Location = System::Drawing::Point(374, 167);
this->label8->Name = L"label8";
this->label8->Size = System::Drawing::Size(20, 13);
this->label8->TabIndex = 16;
315,7 → 309,7
//
// txtMS
//
this->txtMS->Location = System::Drawing::Point(413, 150);
this->txtMS->Location = System::Drawing::Point(409, 190);
this->txtMS->Name = L"txtMS";
this->txtMS->ReadOnly = true;
this->txtMS->Size = System::Drawing::Size(39, 20);
325,7 → 319,7
// label9
//
this->label9->AutoSize = true;
this->label9->Location = System::Drawing::Point(378, 153);
this->label9->Location = System::Drawing::Point(374, 193);
this->label9->Name = L"label9";
this->label9->Size = System::Drawing::Size(23, 13);
this->label9->TabIndex = 18;
333,7 → 327,7
//
// txtIS
//
this->txtIS->Location = System::Drawing::Point(413, 176);
this->txtIS->Location = System::Drawing::Point(409, 216);
this->txtIS->Name = L"txtIS";
this->txtIS->ReadOnly = true;
this->txtIS->Size = System::Drawing::Size(39, 20);
343,7 → 337,7
// label10
//
this->label10->AutoSize = true;
this->label10->Location = System::Drawing::Point(378, 179);
this->label10->Location = System::Drawing::Point(374, 219);
this->label10->Name = L"label10";
this->label10->Size = System::Drawing::Size(17, 13);
this->label10->TabIndex = 20;
351,7 → 345,7
//
// txtIER
//
this->txtIER->Location = System::Drawing::Point(413, 202);
this->txtIER->Location = System::Drawing::Point(409, 242);
this->txtIER->Name = L"txtIER";
this->txtIER->Size = System::Drawing::Size(39, 20);
this->txtIER->TabIndex = 23;
360,7 → 354,7
// label11
//
this->label11->AutoSize = true;
this->label11->Location = System::Drawing::Point(378, 205);
this->label11->Location = System::Drawing::Point(374, 245);
this->label11->Name = L"label11";
this->label11->Size = System::Drawing::Size(25, 13);
this->label11->TabIndex = 22;
368,7 → 362,7
//
// txtFF
//
this->txtFF->Location = System::Drawing::Point(413, 228);
this->txtFF->Location = System::Drawing::Point(409, 268);
this->txtFF->Name = L"txtFF";
this->txtFF->Size = System::Drawing::Size(39, 20);
this->txtFF->TabIndex = 25;
377,7 → 371,7
// label12
//
this->label12->AutoSize = true;
this->label12->Location = System::Drawing::Point(378, 231);
this->label12->Location = System::Drawing::Point(374, 271);
this->label12->Name = L"label12";
this->label12->Size = System::Drawing::Size(19, 13);
this->label12->TabIndex = 24;
385,7 → 379,7
//
// txtMC
//
this->txtMC->Location = System::Drawing::Point(413, 254);
this->txtMC->Location = System::Drawing::Point(409, 294);
this->txtMC->Name = L"txtMC";
this->txtMC->Size = System::Drawing::Size(39, 20);
this->txtMC->TabIndex = 27;
394,7 → 388,7
// label13
//
this->label13->AutoSize = true;
this->label13->Location = System::Drawing::Point(378, 257);
this->label13->Location = System::Drawing::Point(374, 297);
this->label13->Name = L"label13";
this->label13->Size = System::Drawing::Size(23, 13);
this->label13->TabIndex = 26;
402,7 → 396,7
//
// txtCTRL
//
this->txtCTRL->Location = System::Drawing::Point(413, 280);
this->txtCTRL->Location = System::Drawing::Point(409, 320);
this->txtCTRL->Name = L"txtCTRL";
this->txtCTRL->Size = System::Drawing::Size(39, 20);
this->txtCTRL->TabIndex = 29;
411,7 → 405,7
// label14
//
this->label14->AutoSize = true;
this->label14->Location = System::Drawing::Point(378, 283);
this->label14->Location = System::Drawing::Point(374, 323);
this->label14->Name = L"label14";
this->label14->Size = System::Drawing::Size(35, 13);
this->label14->TabIndex = 28;
419,7 → 413,7
//
// txtFC
//
this->txtFC->Location = System::Drawing::Point(510, 176);
this->txtFC->Location = System::Drawing::Point(506, 216);
this->txtFC->Name = L"txtFC";
this->txtFC->Size = System::Drawing::Size(39, 20);
this->txtFC->TabIndex = 31;
428,7 → 422,7
// label15
//
this->label15->AutoSize = true;
this->label15->Location = System::Drawing::Point(475, 179);
this->label15->Location = System::Drawing::Point(471, 219);
this->label15->Name = L"label15";
this->label15->Size = System::Drawing::Size(20, 13);
this->label15->TabIndex = 30;
444,7 → 438,7
this->checkBox1->AutoSize = true;
this->checkBox1->Checked = true;
this->checkBox1->CheckState = System::Windows::Forms::CheckState::Checked;
this->checkBox1->Location = System::Drawing::Point(31, 315);
this->checkBox1->Location = System::Drawing::Point(27, 355);
this->checkBox1->Name = L"checkBox1";
this->checkBox1->Size = System::Drawing::Size(47, 17);
this->checkBox1->TabIndex = 32;
456,7 → 450,7
this->checkBox2->AutoSize = true;
this->checkBox2->Checked = true;
this->checkBox2->CheckState = System::Windows::Forms::CheckState::Checked;
this->checkBox2->Location = System::Drawing::Point(31, 338);
this->checkBox2->Location = System::Drawing::Point(27, 378);
this->checkBox2->Name = L"checkBox2";
this->checkBox2->Size = System::Drawing::Size(49, 17);
this->checkBox2->TabIndex = 33;
468,7 → 462,7
this->checkBox3->AutoSize = true;
this->checkBox3->Checked = true;
this->checkBox3->CheckState = System::Windows::Forms::CheckState::Checked;
this->checkBox3->Location = System::Drawing::Point(31, 361);
this->checkBox3->Location = System::Drawing::Point(27, 401);
this->checkBox3->Name = L"checkBox3";
this->checkBox3->Size = System::Drawing::Size(49, 17);
this->checkBox3->TabIndex = 34;
477,7 → 471,7
//
// txtRB
//
this->txtRB->Location = System::Drawing::Point(413, 95);
this->txtRB->Location = System::Drawing::Point(409, 135);
this->txtRB->Name = L"txtRB";
this->txtRB->ReadOnly = true;
this->txtRB->Size = System::Drawing::Size(39, 20);
487,7 → 481,7
// label16
//
this->label16->AutoSize = true;
this->label16->Location = System::Drawing::Point(378, 98);
this->label16->Location = System::Drawing::Point(374, 138);
this->label16->Name = L"label16";
this->label16->Size = System::Drawing::Size(22, 13);
this->label16->TabIndex = 35;
497,7 → 491,7
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(571, 388);
this->ClientSize = System::Drawing::Size(571, 429);
this->Controls->Add(this->txtRB);
this->Controls->Add(this->label16);
this->Controls->Add(this->checkBox3);
530,7 → 524,6
this->Controls->Add(this->txtCM0);
this->Controls->Add(this->label3);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->txtFromUart);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
538,6 → 531,7
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->Name = L"frmUart";
this->Text = L"rtfSimpleUart Emulator";
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmUart::frmUart_FormClosing);
this->ResumeLayout(false);
this->PerformLayout();
 
548,8 → 542,8
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
int dat;
char buf[5];
 
char buf[20];
if (do_send && txtToUart->Text->Length > 0) {
char* str = (char*)(void*)Marshal::StringToHGlobalAnsi(txtToUart->Text->Substring(0,1));
txtToUart->Text = txtToUart->Text->Substring(1);
566,6 → 560,7
buf[1] = '\0';
if (dat != 0xFF)
txtFromUart->Text = txtFromUart->Text + gcnew String(buf);
mut->WaitOne();
sprintf(buf, "%02X", system1.uart1.cm1);
txtCM1->Text = gcnew String(buf);
585,5 → 580,9
mut->ReleaseMutex();
txtIS->Text = gcnew String(buf);
}
private: System::Void frmUart_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (e->CloseReason==CloseReason::UserClosing)
e->Cancel = true;
}
};
}
/trunk/software/emuThor/source/clsSystem.cpp
236,6 → 236,9
else if (uart1.IsSelected(ad)) {
uart1.Write(ad,dat,0x1);
}
else if (sevenseg.IsSelected(ad)) {
sevenseg.Write(ad,dat);
}
ret = true;
j1:
for (nn = 0; nn < numDataBreakpoints; nn++) {
308,7 → 311,7
cpu2.Step();
pic1.Step();
if (stepout) {
if (cpu2.sub_depth<step_depth) {
if (cpu2.rts && cpu2.sub_depth < step_depth) {
isRunning = false;
stepout = false;
continue;
/trunk/software/emuThor/source/frmInterrupts.h
1,4 → 1,10
#pragma once
// Allows the user to disable / enable interrupts via the gui.
// The could be interrupt control on the Form associated with the device
// but it's more convenient to place all the interrupt related controls
// on a single form for the user.
// Timers are used to emulate the hard-wired interrupt clock sources in the
// test system.
extern bool irq1024Hz;
extern bool irq30Hz;
extern bool irqKeyboard;
32,25 → 38,7
//
//TODO: Add the constructor code here
//
char buf[20];
 
mut->WaitOne();
system1.pic1.Step();
trigger30 = false;
trigger1024 = false;
checkBox0En->Checked = system1.pic1.enables[0];
checkBox1En->Checked = system1.pic1.enables[1];
checkBox2En->Checked = system1.pic1.enables[2];
checkBox3En->Checked = system1.pic1.enables[3];
checkBox7En->Checked = system1.pic1.enables[7];
checkBox1Act->Checked = system1.pic1.irq1024Hz;
checkBox2Act->Checked = system1.pic1.irq30Hz;
checkBox3Act->Checked = system1.pic1.irqKeyboard;
checkBox7Act->Checked = system1.pic1.irqUart;
checkBoxIRQOut->Checked = system1.pic1.irq;
sprintf(buf, "%d (%02X)", system1.pic1.vecno, system1.pic1.vecno);
mut->ReleaseMutex();
textBoxVecno->Text = gcnew String(buf);
UpdateForm();
}
frmInterrupts(void)
{
155,8 → 143,30
private: System::Windows::Forms::CheckBox^ checkBox1En;
 
private: System::Windows::Forms::CheckBox^ checkBox0En;
private: System::Windows::Forms::Label^ label7;
private: System::Windows::Forms::CheckBox^ checkBox1;
private: System::Windows::Forms::CheckBox^ checkBox2;
private: System::Windows::Forms::CheckBox^ checkBox3;
private: System::Windows::Forms::CheckBox^ checkBox4;
private: System::Windows::Forms::CheckBox^ checkBox5;
private: System::Windows::Forms::CheckBox^ checkBox8;
private: System::Windows::Forms::CheckBox^ checkBox25;
private: System::Windows::Forms::CheckBox^ checkBox29;
private: System::Windows::Forms::CheckBox^ checkBox7Edge;
 
private: System::Windows::Forms::CheckBox^ checkBox32;
private: System::Windows::Forms::CheckBox^ checkBox33;
private: System::Windows::Forms::CheckBox^ checkBox34;
private: System::Windows::Forms::CheckBox^ checkBox3Edge;
 
private: System::Windows::Forms::CheckBox^ checkBox2Edge;
 
private: System::Windows::Forms::CheckBox^ checkBox1Edge;
 
private: System::Windows::Forms::CheckBox^ checkBox0Edge;
 
 
 
private:
/// <summary>
/// Required designer variable.
182,6 → 192,23
this->checkBox30 = (gcnew System::Windows::Forms::CheckBox());
this->checkBoxUart = (gcnew System::Windows::Forms::CheckBox());
this->groupBox1 = (gcnew System::Windows::Forms::GroupBox());
this->label7 = (gcnew System::Windows::Forms::Label());
this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox2 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox3 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox4 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox5 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox8 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox25 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox29 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox7Edge = (gcnew System::Windows::Forms::CheckBox());
this->checkBox32 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox33 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox34 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox3Edge = (gcnew System::Windows::Forms::CheckBox());
this->checkBox2Edge = (gcnew System::Windows::Forms::CheckBox());
this->checkBox1Edge = (gcnew System::Windows::Forms::CheckBox());
this->checkBox0Edge = (gcnew System::Windows::Forms::CheckBox());
this->label6 = (gcnew System::Windows::Forms::Label());
this->label5 = (gcnew System::Windows::Forms::Label());
this->textBoxVecno = (gcnew System::Windows::Forms::TextBox());
227,7 → 254,7
// btnOK
//
this->btnOK->DialogResult = System::Windows::Forms::DialogResult::OK;
this->btnOK->Location = System::Drawing::Point(247, 115);
this->btnOK->Location = System::Drawing::Point(247, 137);
this->btnOK->Name = L"btnOK";
this->btnOK->Size = System::Drawing::Size(75, 23);
this->btnOK->TabIndex = 19;
238,7 → 265,7
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(107, 21);
this->label2->Location = System::Drawing::Point(107, 43);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(57, 13);
this->label2->TabIndex = 18;
247,7 → 274,7
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(10, 21);
this->label1->Location = System::Drawing::Point(10, 43);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(77, 13);
this->label1->TabIndex = 17;
255,7 → 282,7
//
// btnTrigger30
//
this->btnTrigger30->Location = System::Drawing::Point(247, 70);
this->btnTrigger30->Location = System::Drawing::Point(247, 92);
this->btnTrigger30->Name = L"btnTrigger30";
this->btnTrigger30->Size = System::Drawing::Size(75, 23);
this->btnTrigger30->TabIndex = 16;
269,7 → 296,7
this->comboBox30->FormattingEnabled = true;
this->comboBox30->Items->AddRange(gcnew cli::array< System::Object^ >(5) {L"30Hz", L"3 Hz", L"Every 3 seconds", L"Every 30 Seconds",
L"One shot"});
this->comboBox30->Location = System::Drawing::Point(110, 72);
this->comboBox30->Location = System::Drawing::Point(110, 94);
this->comboBox30->Name = L"comboBox30";
this->comboBox30->Size = System::Drawing::Size(121, 21);
this->comboBox30->TabIndex = 15;
276,7 → 303,7
//
// btnTrigger1024
//
this->btnTrigger1024->Location = System::Drawing::Point(247, 41);
this->btnTrigger1024->Location = System::Drawing::Point(247, 63);
this->btnTrigger1024->Name = L"btnTrigger1024";
this->btnTrigger1024->Size = System::Drawing::Size(75, 23);
this->btnTrigger1024->TabIndex = 14;
289,7 → 316,7
this->comboBox1024->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
this->comboBox1024->FormattingEnabled = true;
this->comboBox1024->Items->AddRange(gcnew cli::array< System::Object^ >(3) {L"102 Hz", L"1 Hz", L"One shot"});
this->comboBox1024->Location = System::Drawing::Point(110, 43);
this->comboBox1024->Location = System::Drawing::Point(110, 65);
this->comboBox1024->Name = L"comboBox1024";
this->comboBox1024->Size = System::Drawing::Size(121, 21);
this->comboBox1024->TabIndex = 13;
297,7 → 324,7
// checkBox1024
//
this->checkBox1024->AutoSize = true;
this->checkBox1024->Location = System::Drawing::Point(13, 47);
this->checkBox1024->Location = System::Drawing::Point(13, 69);
this->checkBox1024->Name = L"checkBox1024";
this->checkBox1024->Size = System::Drawing::Size(63, 17);
this->checkBox1024->TabIndex = 12;
308,7 → 335,7
//
this->checkBoxKeyboard->AutoSize = true;
this->checkBoxKeyboard->Enabled = false;
this->checkBoxKeyboard->Location = System::Drawing::Point(13, 93);
this->checkBoxKeyboard->Location = System::Drawing::Point(13, 115);
this->checkBoxKeyboard->Name = L"checkBoxKeyboard";
this->checkBoxKeyboard->Size = System::Drawing::Size(71, 17);
this->checkBoxKeyboard->TabIndex = 11;
318,7 → 345,7
// checkBox30
//
this->checkBox30->AutoSize = true;
this->checkBox30->Location = System::Drawing::Point(13, 70);
this->checkBox30->Location = System::Drawing::Point(13, 92);
this->checkBox30->Name = L"checkBox30";
this->checkBox30->Size = System::Drawing::Size(51, 17);
this->checkBox30->TabIndex = 10;
329,7 → 356,7
//
this->checkBoxUart->AutoSize = true;
this->checkBoxUart->Enabled = false;
this->checkBoxUart->Location = System::Drawing::Point(13, 116);
this->checkBoxUart->Location = System::Drawing::Point(13, 138);
this->checkBoxUart->Name = L"checkBoxUart";
this->checkBoxUart->Size = System::Drawing::Size(46, 17);
this->checkBoxUart->TabIndex = 20;
338,6 → 365,23
//
// groupBox1
//
this->groupBox1->Controls->Add(this->label7);
this->groupBox1->Controls->Add(this->checkBox1);
this->groupBox1->Controls->Add(this->checkBox2);
this->groupBox1->Controls->Add(this->checkBox3);
this->groupBox1->Controls->Add(this->checkBox4);
this->groupBox1->Controls->Add(this->checkBox5);
this->groupBox1->Controls->Add(this->checkBox8);
this->groupBox1->Controls->Add(this->checkBox25);
this->groupBox1->Controls->Add(this->checkBox29);
this->groupBox1->Controls->Add(this->checkBox7Edge);
this->groupBox1->Controls->Add(this->checkBox32);
this->groupBox1->Controls->Add(this->checkBox33);
this->groupBox1->Controls->Add(this->checkBox34);
this->groupBox1->Controls->Add(this->checkBox3Edge);
this->groupBox1->Controls->Add(this->checkBox2Edge);
this->groupBox1->Controls->Add(this->checkBox1Edge);
this->groupBox1->Controls->Add(this->checkBox0Edge);
this->groupBox1->Controls->Add(this->label6);
this->groupBox1->Controls->Add(this->label5);
this->groupBox1->Controls->Add(this->textBoxVecno);
377,7 → 421,7
this->groupBox1->Controls->Add(this->checkBox2En);
this->groupBox1->Controls->Add(this->checkBox1En);
this->groupBox1->Controls->Add(this->checkBox0En);
this->groupBox1->Location = System::Drawing::Point(12, 144);
this->groupBox1->Location = System::Drawing::Point(12, 166);
this->groupBox1->Name = L"groupBox1";
this->groupBox1->Size = System::Drawing::Size(310, 414);
this->groupBox1->TabIndex = 21;
384,6 → 428,175
this->groupBox1->TabStop = false;
this->groupBox1->Text = L"PIC State";
//
// label7
//
this->label7->AutoSize = true;
this->label7->Location = System::Drawing::Point(57, 26);
this->label7->Name = L"label7";
this->label7->Size = System::Drawing::Size(32, 13);
this->label7->TabIndex = 55;
this->label7->Text = L"Edge";
//
// checkBox1
//
this->checkBox1->AutoSize = true;
this->checkBox1->Enabled = false;
this->checkBox1->Location = System::Drawing::Point(60, 390);
this->checkBox1->Name = L"checkBox1";
this->checkBox1->Size = System::Drawing::Size(15, 14);
this->checkBox1->TabIndex = 54;
this->checkBox1->UseVisualStyleBackColor = true;
//
// checkBox2
//
this->checkBox2->AutoSize = true;
this->checkBox2->Enabled = false;
this->checkBox2->Location = System::Drawing::Point(60, 367);
this->checkBox2->Name = L"checkBox2";
this->checkBox2->Size = System::Drawing::Size(15, 14);
this->checkBox2->TabIndex = 53;
this->checkBox2->UseVisualStyleBackColor = true;
//
// checkBox3
//
this->checkBox3->AutoSize = true;
this->checkBox3->Enabled = false;
this->checkBox3->Location = System::Drawing::Point(60, 344);
this->checkBox3->Name = L"checkBox3";
this->checkBox3->Size = System::Drawing::Size(15, 14);
this->checkBox3->TabIndex = 52;
this->checkBox3->UseVisualStyleBackColor = true;
//
// checkBox4
//
this->checkBox4->AutoSize = true;
this->checkBox4->Enabled = false;
this->checkBox4->Location = System::Drawing::Point(60, 321);
this->checkBox4->Name = L"checkBox4";
this->checkBox4->Size = System::Drawing::Size(15, 14);
this->checkBox4->TabIndex = 51;
this->checkBox4->UseVisualStyleBackColor = true;
//
// checkBox5
//
this->checkBox5->AutoSize = true;
this->checkBox5->Enabled = false;
this->checkBox5->Location = System::Drawing::Point(60, 299);
this->checkBox5->Name = L"checkBox5";
this->checkBox5->Size = System::Drawing::Size(15, 14);
this->checkBox5->TabIndex = 50;
this->checkBox5->UseVisualStyleBackColor = true;
//
// checkBox8
//
this->checkBox8->AutoSize = true;
this->checkBox8->Enabled = false;
this->checkBox8->Location = System::Drawing::Point(60, 276);
this->checkBox8->Name = L"checkBox8";
this->checkBox8->Size = System::Drawing::Size(15, 14);
this->checkBox8->TabIndex = 49;
this->checkBox8->UseVisualStyleBackColor = true;
//
// checkBox25
//
this->checkBox25->AutoSize = true;
this->checkBox25->Enabled = false;
this->checkBox25->Location = System::Drawing::Point(60, 253);
this->checkBox25->Name = L"checkBox25";
this->checkBox25->Size = System::Drawing::Size(15, 14);
this->checkBox25->TabIndex = 48;
this->checkBox25->UseVisualStyleBackColor = true;
//
// checkBox29
//
this->checkBox29->AutoSize = true;
this->checkBox29->Enabled = false;
this->checkBox29->Location = System::Drawing::Point(60, 230);
this->checkBox29->Name = L"checkBox29";
this->checkBox29->Size = System::Drawing::Size(15, 14);
this->checkBox29->TabIndex = 47;
this->checkBox29->UseVisualStyleBackColor = true;
//
// checkBox7Edge
//
this->checkBox7Edge->AutoSize = true;
this->checkBox7Edge->Enabled = false;
this->checkBox7Edge->Location = System::Drawing::Point(60, 207);
this->checkBox7Edge->Name = L"checkBox7Edge";
this->checkBox7Edge->Size = System::Drawing::Size(15, 14);
this->checkBox7Edge->TabIndex = 46;
this->checkBox7Edge->UseVisualStyleBackColor = true;
//
// checkBox32
//
this->checkBox32->AutoSize = true;
this->checkBox32->Enabled = false;
this->checkBox32->Location = System::Drawing::Point(60, 184);
this->checkBox32->Name = L"checkBox32";
this->checkBox32->Size = System::Drawing::Size(15, 14);
this->checkBox32->TabIndex = 45;
this->checkBox32->UseVisualStyleBackColor = true;
//
// checkBox33
//
this->checkBox33->AutoSize = true;
this->checkBox33->Enabled = false;
this->checkBox33->Location = System::Drawing::Point(60, 161);
this->checkBox33->Name = L"checkBox33";
this->checkBox33->Size = System::Drawing::Size(15, 14);
this->checkBox33->TabIndex = 44;
this->checkBox33->UseVisualStyleBackColor = true;
//
// checkBox34
//
this->checkBox34->AutoSize = true;
this->checkBox34->Enabled = false;
this->checkBox34->Location = System::Drawing::Point(60, 138);
this->checkBox34->Name = L"checkBox34";
this->checkBox34->Size = System::Drawing::Size(15, 14);
this->checkBox34->TabIndex = 43;
this->checkBox34->UseVisualStyleBackColor = true;
//
// checkBox3Edge
//
this->checkBox3Edge->AutoSize = true;
this->checkBox3Edge->Enabled = false;
this->checkBox3Edge->Location = System::Drawing::Point(60, 115);
this->checkBox3Edge->Name = L"checkBox3Edge";
this->checkBox3Edge->Size = System::Drawing::Size(15, 14);
this->checkBox3Edge->TabIndex = 42;
this->checkBox3Edge->UseVisualStyleBackColor = true;
//
// checkBox2Edge
//
this->checkBox2Edge->AutoSize = true;
this->checkBox2Edge->Enabled = false;
this->checkBox2Edge->Location = System::Drawing::Point(60, 92);
this->checkBox2Edge->Name = L"checkBox2Edge";
this->checkBox2Edge->Size = System::Drawing::Size(15, 14);
this->checkBox2Edge->TabIndex = 41;
this->checkBox2Edge->UseVisualStyleBackColor = true;
//
// checkBox1Edge
//
this->checkBox1Edge->AutoSize = true;
this->checkBox1Edge->Enabled = false;
this->checkBox1Edge->Location = System::Drawing::Point(60, 69);
this->checkBox1Edge->Name = L"checkBox1Edge";
this->checkBox1Edge->Size = System::Drawing::Size(15, 14);
this->checkBox1Edge->TabIndex = 40;
this->checkBox1Edge->UseVisualStyleBackColor = true;
//
// checkBox0Edge
//
this->checkBox0Edge->AutoSize = true;
this->checkBox0Edge->Enabled = false;
this->checkBox0Edge->Location = System::Drawing::Point(60, 46);
this->checkBox0Edge->Name = L"checkBox0Edge";
this->checkBox0Edge->Size = System::Drawing::Size(15, 14);
this->checkBox0Edge->TabIndex = 39;
this->checkBox0Edge->UseVisualStyleBackColor = true;
//
// label6
//
this->label6->AutoSize = true;
633,9 → 846,8
this->checkBox16->Enabled = false;
this->checkBox16->Location = System::Drawing::Point(6, 390);
this->checkBox16->Name = L"checkBox16";
this->checkBox16->Size = System::Drawing::Size(97, 17);
this->checkBox16->Size = System::Drawing::Size(15, 14);
this->checkBox16->TabIndex = 15;
this->checkBox16->Text = L"15 Unassigned";
this->checkBox16->UseVisualStyleBackColor = true;
//
// checkBox15
644,9 → 856,8
this->checkBox15->Enabled = false;
this->checkBox15->Location = System::Drawing::Point(6, 367);
this->checkBox15->Name = L"checkBox15";
this->checkBox15->Size = System::Drawing::Size(97, 17);
this->checkBox15->Size = System::Drawing::Size(15, 14);
this->checkBox15->TabIndex = 14;
this->checkBox15->Text = L"14 Unassigned";
this->checkBox15->UseVisualStyleBackColor = true;
//
// checkBox14
655,9 → 866,8
this->checkBox14->Enabled = false;
this->checkBox14->Location = System::Drawing::Point(6, 344);
this->checkBox14->Name = L"checkBox14";
this->checkBox14->Size = System::Drawing::Size(97, 17);
this->checkBox14->Size = System::Drawing::Size(15, 14);
this->checkBox14->TabIndex = 13;
this->checkBox14->Text = L"13 Unassigned";
this->checkBox14->UseVisualStyleBackColor = true;
//
// checkBox13
666,9 → 876,8
this->checkBox13->Enabled = false;
this->checkBox13->Location = System::Drawing::Point(6, 321);
this->checkBox13->Name = L"checkBox13";
this->checkBox13->Size = System::Drawing::Size(97, 17);
this->checkBox13->Size = System::Drawing::Size(15, 14);
this->checkBox13->TabIndex = 12;
this->checkBox13->Text = L"12 Unassigned";
this->checkBox13->UseVisualStyleBackColor = true;
//
// checkBox12
677,9 → 886,8
this->checkBox12->Enabled = false;
this->checkBox12->Location = System::Drawing::Point(6, 299);
this->checkBox12->Name = L"checkBox12";
this->checkBox12->Size = System::Drawing::Size(97, 17);
this->checkBox12->Size = System::Drawing::Size(15, 14);
this->checkBox12->TabIndex = 11;
this->checkBox12->Text = L"11 Unassigned";
this->checkBox12->UseVisualStyleBackColor = true;
//
// checkBox11
688,9 → 896,8
this->checkBox11->Enabled = false;
this->checkBox11->Location = System::Drawing::Point(6, 276);
this->checkBox11->Name = L"checkBox11";
this->checkBox11->Size = System::Drawing::Size(97, 17);
this->checkBox11->Size = System::Drawing::Size(15, 14);
this->checkBox11->TabIndex = 10;
this->checkBox11->Text = L"10 Unassigned";
this->checkBox11->UseVisualStyleBackColor = true;
//
// checkBox10
699,9 → 906,8
this->checkBox10->Enabled = false;
this->checkBox10->Location = System::Drawing::Point(6, 253);
this->checkBox10->Name = L"checkBox10";
this->checkBox10->Size = System::Drawing::Size(91, 17);
this->checkBox10->Size = System::Drawing::Size(15, 14);
this->checkBox10->TabIndex = 9;
this->checkBox10->Text = L"9 Unassigned";
this->checkBox10->UseVisualStyleBackColor = true;
//
// checkBox9
710,9 → 916,8
this->checkBox9->Enabled = false;
this->checkBox9->Location = System::Drawing::Point(6, 230);
this->checkBox9->Name = L"checkBox9";
this->checkBox9->Size = System::Drawing::Size(91, 17);
this->checkBox9->Size = System::Drawing::Size(15, 14);
this->checkBox9->TabIndex = 8;
this->checkBox9->Text = L"8 Unassigned";
this->checkBox9->UseVisualStyleBackColor = true;
//
// checkBox7En
721,9 → 926,8
this->checkBox7En->Enabled = false;
this->checkBox7En->Location = System::Drawing::Point(6, 207);
this->checkBox7En->Name = L"checkBox7En";
this->checkBox7En->Size = System::Drawing::Size(55, 17);
this->checkBox7En->Size = System::Drawing::Size(15, 14);
this->checkBox7En->TabIndex = 7;
this->checkBox7En->Text = L"7 Uart";
this->checkBox7En->UseVisualStyleBackColor = true;
//
// checkBox7
732,9 → 936,8
this->checkBox7->Enabled = false;
this->checkBox7->Location = System::Drawing::Point(6, 184);
this->checkBox7->Name = L"checkBox7";
this->checkBox7->Size = System::Drawing::Size(91, 17);
this->checkBox7->Size = System::Drawing::Size(15, 14);
this->checkBox7->TabIndex = 6;
this->checkBox7->Text = L"6 Unassigned";
this->checkBox7->UseVisualStyleBackColor = true;
//
// checkBox6
743,9 → 946,8
this->checkBox6->Enabled = false;
this->checkBox6->Location = System::Drawing::Point(6, 161);
this->checkBox6->Name = L"checkBox6";
this->checkBox6->Size = System::Drawing::Size(91, 17);
this->checkBox6->Size = System::Drawing::Size(15, 14);
this->checkBox6->TabIndex = 5;
this->checkBox6->Text = L"5 Unassigned";
this->checkBox6->UseVisualStyleBackColor = true;
//
// checkBox4En
754,9 → 956,8
this->checkBox4En->Enabled = false;
this->checkBox4En->Location = System::Drawing::Point(6, 138);
this->checkBox4En->Name = L"checkBox4En";
this->checkBox4En->Size = System::Drawing::Size(91, 17);
this->checkBox4En->Size = System::Drawing::Size(15, 14);
this->checkBox4En->TabIndex = 4;
this->checkBox4En->Text = L"4 Unassigned";
this->checkBox4En->UseVisualStyleBackColor = true;
//
// checkBox3En
765,9 → 966,8
this->checkBox3En->Enabled = false;
this->checkBox3En->Location = System::Drawing::Point(6, 115);
this->checkBox3En->Name = L"checkBox3En";
this->checkBox3En->Size = System::Drawing::Size(80, 17);
this->checkBox3En->Size = System::Drawing::Size(15, 14);
this->checkBox3En->TabIndex = 3;
this->checkBox3En->Text = L"3 Keyboard";
this->checkBox3En->UseVisualStyleBackColor = true;
//
// checkBox2En
776,9 → 976,8
this->checkBox2En->Enabled = false;
this->checkBox2En->Location = System::Drawing::Point(6, 92);
this->checkBox2En->Name = L"checkBox2En";
this->checkBox2En->Size = System::Drawing::Size(60, 17);
this->checkBox2En->Size = System::Drawing::Size(15, 14);
this->checkBox2En->TabIndex = 2;
this->checkBox2En->Text = L"2 30Hz";
this->checkBox2En->UseVisualStyleBackColor = true;
//
// checkBox1En
787,9 → 986,8
this->checkBox1En->Enabled = false;
this->checkBox1En->Location = System::Drawing::Point(6, 69);
this->checkBox1En->Name = L"checkBox1En";
this->checkBox1En->Size = System::Drawing::Size(72, 17);
this->checkBox1En->Size = System::Drawing::Size(15, 14);
this->checkBox1En->TabIndex = 1;
this->checkBox1En->Text = L"1 1024Hz";
this->checkBox1En->UseVisualStyleBackColor = true;
//
// checkBox0En
798,9 → 996,8
this->checkBox0En->Enabled = false;
this->checkBox0En->Location = System::Drawing::Point(6, 46);
this->checkBox0En->Name = L"checkBox0En";
this->checkBox0En->Size = System::Drawing::Size(55, 17);
this->checkBox0En->Size = System::Drawing::Size(15, 14);
this->checkBox0En->TabIndex = 0;
this->checkBox0En->Text = L"0 NMI";
this->checkBox0En->UseVisualStyleBackColor = true;
//
// frmInterrupts
807,7 → 1004,7
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(331, 568);
this->ClientSize = System::Drawing::Size(331, 592);
this->Controls->Add(this->groupBox1);
this->Controls->Add(this->checkBoxUart);
this->Controls->Add(this->btnOK);
821,10 → 1018,10
this->Controls->Add(this->checkBoxKeyboard);
this->Controls->Add(this->checkBox30);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"frmInterrupts";
this->SizeGripStyle = System::Windows::Forms::SizeGripStyle::Hide;
this->Text = L"emuThor - Interrupts";
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmInterrupts::frmInterrupts_FormClosing);
this->Load += gcnew System::EventHandler(this, &frmInterrupts::frmInterrupts_Load);
this->groupBox1->ResumeLayout(false);
this->groupBox1->PerformLayout();
842,6 → 1039,7
case 0: interval1024 = 98; break;
case 1: interval1024 = 977; break;
case 2: interval1024 = -1; break;
default: interval1024 = 977; break;
}
trigger1024 = true;
mut->ReleaseMutex();
856,12 → 1054,44
case 2: interval30 = 3333; break;
case 3: interval30 = 33333; break;
case 4: interval30 = -1; break;
default: interval30 = 33333; break;
}
trigger30 = true;
mut->ReleaseMutex();
}
}
public: void UpdateForm()
{
char buf[20];
 
mut->WaitOne();
system1.pic1.Step();
trigger30 = false;
trigger1024 = false;
checkBox0En->Checked = system1.pic1.enables[0];
checkBox1En->Checked = system1.pic1.enables[1];
checkBox2En->Checked = system1.pic1.enables[2];
checkBox3En->Checked = system1.pic1.enables[3];
checkBox7En->Checked = system1.pic1.enables[7];
checkBox0Edge->Checked = system1.pic1.edges[0];
checkBox1Edge->Checked = system1.pic1.edges[1];
checkBox2Edge->Checked = system1.pic1.edges[2];
checkBox3Edge->Checked = system1.pic1.edges[3];
checkBox7Edge->Checked = system1.pic1.edges[7];
checkBox1Act->Checked = system1.pic1.irq1024Hz;
checkBox2Act->Checked = system1.pic1.irq30Hz;
checkBox3Act->Checked = system1.pic1.irqKeyboard;
checkBox7Act->Checked = system1.pic1.irqUart;
checkBoxIRQOut->Checked = system1.pic1.irq;
sprintf(buf, "%d (%02X)", system1.pic1.vecno, system1.pic1.vecno);
mut->ReleaseMutex();
textBoxVecno->Text = gcnew String(buf);
}
private: System::Void frmInterrupts_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void frmInterrupts_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (e->CloseReason==CloseReason::UserClosing)
e->Cancel = true;
}
};
}
/trunk/software/emuThor/source/frmMain.h
7,6 → 7,8
#include <vcclr.h>
#include <string.h>
#include <math.h>
#include "stdafx.h"
#include "frmRun.h"
#include "frmRegisters.h"
#include "frmBreakpoints.h"
#include "frmScreen.h"
19,10 → 21,6
#include "frmInterrupts.h"
#include "frmStack.h"
#include "frmMemory.h"
//#include "Disassem.h"
#include "clsCPU.h"
#include "clsPIC.h"
#include "clsDisassem.h"
 
clsDisassem da;
extern clsSystem system1;
39,6 → 37,10
bool fullspeed;
bool runstop;
 
bool screenClosed;
bool dbgScreenClosed;
bool keyboardClosed;
 
namespace emuThor {
 
using namespace System;
69,19 → 71,38
animate = false;
isRunning = false;
mut = gcnew Mutex(false, "emuThor");
frmKeyboard^ keyboardFrm = gcnew frmKeyboard(mut);
registersFrm = nullptr;
memoryFrm = nullptr;
stackFrm = nullptr;
interruptsFrm = nullptr;
PCHistoryFrm = nullptr;
breakpointsFrm = nullptr;
keyboardFrm = gcnew frmKeyboard(mut);
keyboardFrm->Show();
frmScreen^ screenFrm = gcnew frmScreen(mut, "Main Screen");
screenClosed = false;
dbgScreenClosed = false;
screenFrm = gcnew frmScreen(mut, "Main Screen");
mut->WaitOne();
screenFrm->pVidMem = &system1.VideoMem[0];
screenFrm->pVidDirty = &system1.VideoMemDirty[0];
screenFrm->which = 0;
mut->ReleaseMutex();
screenFrm->Show();
frmScreen^ DBGScreenFrm = gcnew frmScreen(mut, "Debug Screen");
DBGScreenFrm = gcnew frmScreen(mut, "Debug Screen");
mut->WaitOne();
DBGScreenFrm->pVidMem = &system1.DBGVideoMem[0];
DBGScreenFrm->pVidDirty = &system1.DBGVideoMemDirty[0];
DBGScreenFrm->which = 1;
mut->ReleaseMutex();
DBGScreenFrm->Show();
frmUart^ uartFrm = gcnew frmUart(mut);
uartFrm = gcnew frmUart(mut);
uartFrm->MdiParent = this;
uartFrm->Show();
uartFrm->WindowState = FormWindowState::Minimized;
runFrm = gcnew frmRun(mut);
runFrm->MdiParent = this;
runFrm->WindowState = FormWindowState::Maximized;
runFrm->Show();
// myThreadDelegate = gcnew ThreadStart(this, &frmMain::Run);
// myThread = gcnew Thread(myThreadDelegate);
// myThread->Start();
108,14 → 129,14
private: System::Windows::Forms::ToolStripMenuItem^ viewToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ registersToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ fileToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ runToolStripMenuItem;
 
private: System::Windows::Forms::ToolStripMenuItem^ aboutToolStripMenuItem;
private: System::Windows::Forms::ToolStrip^ toolStrip1;
private: System::Windows::Forms::ToolStripButton^ toolStripButton1;
private: System::Windows::Forms::ToolStripButton^ toolStripButton2;
private: System::Windows::Forms::ToolStripButton^ toolStripButton3;
private: System::Windows::Forms::ToolStripButton^ toolStripButton4;
private: System::Windows::Forms::ToolStripButton^ toolStripButton5;
 
 
 
 
 
private: System::Windows::Forms::ToolStripButton^ toolStripButton6;
private: System::Windows::Forms::ToolStripButton^ toolStripButton7;
private: System::Windows::Forms::ToolStripMenuItem^ loadINTELHexFIleToolStripMenuItem;
123,30 → 144,50
private: System::Windows::Forms::Label^ lblChecksumError;
private: System::Windows::Forms::ToolStripMenuItem^ memoryToolStripMenuItem;
private: System::Windows::Forms::PictureBox^ pictureBox1;
private: System::Windows::Forms::ListBox^ listBoxAdr;
private: System::Windows::Forms::ListBox^ listBoxBytes;
private: System::Windows::Forms::ListBox^ listBoxCode;
private: System::Windows::Forms::ToolStripMenuItem^ stepToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ resetToolStripMenuItem;
 
 
 
 
 
private: System::Windows::Forms::Label^ lblLEDS;
private: System::Windows::Forms::ToolStripMenuItem^ breakpointsToolStripMenuItem;
private: ThreadStart^ myThreadDelegate;
private: Thread^ myThread;
private: System::Windows::Forms::ToolStripMenuItem^ fullSpeedToolStripMenuItem;
 
private: System::Windows::Forms::Timer^ timer1;
private: System::Windows::Forms::ToolStripMenuItem^ animateFastToolStripMenuItem;
private: System::Windows::Forms::TrackBar^ trackBar1;
private: System::Windows::Forms::ToolStripMenuItem^ freeRunToolStripMenuItem;
 
 
 
private: System::Windows::Forms::ToolStripMenuItem^ stackToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ interruptToolStripMenuItem;
 
private: System::Windows::Forms::ToolStripMenuItem^ pCHistoryToolStripMenuItem;
private: System::ComponentModel::BackgroundWorker^ backgroundWorker1;
private: Mutex^ mut;
private: System::Windows::Forms::ToolStripButton^ toolStripButton8;
private: frmKeyboard^ keyboardFrm;
private: frmScreen^ screenFrm;
private: frmScreen^ DBGScreenFrm;
private: frmRun^ runFrm;
private: frmRegisters^ registersFrm;
private: frmMemory^ memoryFrm;
private: frmStack^ stackFrm;
private: frmInterrupts^ interruptsFrm;
private: frmPCHistory^ PCHistoryFrm;
private: frmBreakpoints^ breakpointsFrm;
private: frmUart^ uartFrm;
 
private: System::Windows::Forms::ToolStripMenuItem^ keyboardToolStripMenuItem;
private: System::Windows::Forms::Timer^ timer30;
private: System::Windows::Forms::Timer^ timer1024;
 
 
private: System::Windows::Forms::ToolStripMenuItem^ screenToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ debugScreenToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ runToolStripMenuItem1;
private: System::Windows::Forms::ToolStripMenuItem^ interruptsToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ uartToolStripMenuItem;
private: System::Windows::Forms::PictureBox^ pictureBox2;
 
 
private: System::ComponentModel::IContainer^ components;
private:
/// <summary>
166,55 → 207,44
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->loadINTELHexFIleToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->runToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->resetToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stepToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->fullSpeedToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->animateFastToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->freeRunToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->interruptToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->viewToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->registersToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->memoryToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->breakpointsToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->interruptsToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stackToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->pCHistoryToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->keyboardToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->screenToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->debugScreenToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->uartToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->runToolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->aboutToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->toolStrip1 = (gcnew System::Windows::Forms::ToolStrip());
this->toolStripButton1 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton2 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton3 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton4 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton5 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton6 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton7 = (gcnew System::Windows::Forms::ToolStripButton());
this->toolStripButton8 = (gcnew System::Windows::Forms::ToolStripButton());
this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
this->lblChecksumError = (gcnew System::Windows::Forms::Label());
this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
this->listBoxAdr = (gcnew System::Windows::Forms::ListBox());
this->listBoxBytes = (gcnew System::Windows::Forms::ListBox());
this->listBoxCode = (gcnew System::Windows::Forms::ListBox());
this->lblLEDS = (gcnew System::Windows::Forms::Label());
this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
this->trackBar1 = (gcnew System::Windows::Forms::TrackBar());
this->backgroundWorker1 = (gcnew System::ComponentModel::BackgroundWorker());
this->timer30 = (gcnew System::Windows::Forms::Timer(this->components));
this->timer1024 = (gcnew System::Windows::Forms::Timer(this->components));
this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox());
this->menuStrip1->SuspendLayout();
this->toolStrip1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->BeginInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->trackBar1))->BeginInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox2))->BeginInit();
this->SuspendLayout();
//
// menuStrip1
//
this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(4) {this->fileToolStripMenuItem,
this->runToolStripMenuItem, this->viewToolStripMenuItem, this->aboutToolStripMenuItem});
this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->fileToolStripMenuItem,
this->viewToolStripMenuItem, this->aboutToolStripMenuItem});
this->menuStrip1->Location = System::Drawing::Point(0, 0);
this->menuStrip1->Name = L"menuStrip1";
this->menuStrip1->Size = System::Drawing::Size(684, 24);
this->menuStrip1->Size = System::Drawing::Size(911, 24);
this->menuStrip1->TabIndex = 0;
this->menuStrip1->Text = L"menuStrip1";
//
232,63 → 262,12
this->loadINTELHexFIleToolStripMenuItem->Text = L"&Load INTEL Hex FIle";
this->loadINTELHexFIleToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::loadINTELHexFIleToolStripMenuItem_Click);
//
// runToolStripMenuItem
//
this->runToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(6) {this->resetToolStripMenuItem,
this->stepToolStripMenuItem, this->fullSpeedToolStripMenuItem, this->animateFastToolStripMenuItem, this->freeRunToolStripMenuItem,
this->interruptToolStripMenuItem});
this->runToolStripMenuItem->Name = L"runToolStripMenuItem";
this->runToolStripMenuItem->Size = System::Drawing::Size(40, 20);
this->runToolStripMenuItem->Text = L"&Run";
//
// resetToolStripMenuItem
//
this->resetToolStripMenuItem->Name = L"resetToolStripMenuItem";
this->resetToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->resetToolStripMenuItem->Text = L"&Reset";
this->resetToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::resetToolStripMenuItem_Click);
//
// stepToolStripMenuItem
//
this->stepToolStripMenuItem->Name = L"stepToolStripMenuItem";
this->stepToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->stepToolStripMenuItem->Text = L"&Step";
this->stepToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::stepToolStripMenuItem_Click);
//
// fullSpeedToolStripMenuItem
//
this->fullSpeedToolStripMenuItem->Name = L"fullSpeedToolStripMenuItem";
this->fullSpeedToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->fullSpeedToolStripMenuItem->Text = L"&Full Speed";
this->fullSpeedToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::fullSpeedToolStripMenuItem_Click);
//
// animateFastToolStripMenuItem
//
this->animateFastToolStripMenuItem->Name = L"animateFastToolStripMenuItem";
this->animateFastToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->animateFastToolStripMenuItem->Text = L"&Animate Fast";
this->animateFastToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::animateFastToolStripMenuItem_Click);
//
// freeRunToolStripMenuItem
//
this->freeRunToolStripMenuItem->Name = L"freeRunToolStripMenuItem";
this->freeRunToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->freeRunToolStripMenuItem->Text = L"Free Run";
this->freeRunToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::freeRunToolStripMenuItem_Click);
//
// interruptToolStripMenuItem
//
this->interruptToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"interruptToolStripMenuItem.Image")));
this->interruptToolStripMenuItem->Name = L"interruptToolStripMenuItem";
this->interruptToolStripMenuItem->Size = System::Drawing::Size(143, 22);
this->interruptToolStripMenuItem->Text = L"&Interrupt";
this->interruptToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::interruptToolStripMenuItem_Click);
//
// viewToolStripMenuItem
//
this->viewToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(6) {this->registersToolStripMenuItem,
this->memoryToolStripMenuItem, this->breakpointsToolStripMenuItem, this->stackToolStripMenuItem, this->pCHistoryToolStripMenuItem,
this->keyboardToolStripMenuItem});
this->viewToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(11) {this->registersToolStripMenuItem,
this->memoryToolStripMenuItem, this->breakpointsToolStripMenuItem, this->interruptsToolStripMenuItem, this->stackToolStripMenuItem,
this->pCHistoryToolStripMenuItem, this->keyboardToolStripMenuItem, this->screenToolStripMenuItem, this->debugScreenToolStripMenuItem,
this->uartToolStripMenuItem, this->runToolStripMenuItem1});
this->viewToolStripMenuItem->Name = L"viewToolStripMenuItem";
this->viewToolStripMenuItem->Size = System::Drawing::Size(44, 20);
this->viewToolStripMenuItem->Text = L"&View";
296,7 → 275,7
// registersToolStripMenuItem
//
this->registersToolStripMenuItem->Name = L"registersToolStripMenuItem";
this->registersToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->registersToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->registersToolStripMenuItem->Text = L"&Registers";
this->registersToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::registersToolStripMenuItem_Click);
//
303,21 → 282,30
// memoryToolStripMenuItem
//
this->memoryToolStripMenuItem->Name = L"memoryToolStripMenuItem";
this->memoryToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->memoryToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->memoryToolStripMenuItem->Text = L"&Memory";
this->memoryToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::memoryToolStripMenuItem_Click);
//
// breakpointsToolStripMenuItem
//
this->breakpointsToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"breakpointsToolStripMenuItem.Image")));
this->breakpointsToolStripMenuItem->Name = L"breakpointsToolStripMenuItem";
this->breakpointsToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->breakpointsToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->breakpointsToolStripMenuItem->Text = L"&Breakpoints";
this->breakpointsToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::breakpointsToolStripMenuItem_Click);
//
// interruptsToolStripMenuItem
//
this->interruptsToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"interruptsToolStripMenuItem.Image")));
this->interruptsToolStripMenuItem->Name = L"interruptsToolStripMenuItem";
this->interruptsToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->interruptsToolStripMenuItem->Text = L"&Interrupts - PIC";
this->interruptsToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::interruptsToolStripMenuItem_Click);
//
// stackToolStripMenuItem
//
this->stackToolStripMenuItem->Name = L"stackToolStripMenuItem";
this->stackToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->stackToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->stackToolStripMenuItem->Text = L"&Stack";
this->stackToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::stackToolStripMenuItem_Click);
//
324,7 → 312,7
// pCHistoryToolStripMenuItem
//
this->pCHistoryToolStripMenuItem->Name = L"pCHistoryToolStripMenuItem";
this->pCHistoryToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->pCHistoryToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->pCHistoryToolStripMenuItem->Text = L"&PC History";
this->pCHistoryToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::pCHistoryToolStripMenuItem_Click);
//
331,10 → 319,38
// keyboardToolStripMenuItem
//
this->keyboardToolStripMenuItem->Name = L"keyboardToolStripMenuItem";
this->keyboardToolStripMenuItem->Size = System::Drawing::Size(136, 22);
this->keyboardToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->keyboardToolStripMenuItem->Text = L"&Keyboard";
this->keyboardToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::keyboardToolStripMenuItem_Click);
//
// screenToolStripMenuItem
//
this->screenToolStripMenuItem->Name = L"screenToolStripMenuItem";
this->screenToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->screenToolStripMenuItem->Text = L"Screen";
this->screenToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::screenToolStripMenuItem_Click);
//
// debugScreenToolStripMenuItem
//
this->debugScreenToolStripMenuItem->Name = L"debugScreenToolStripMenuItem";
this->debugScreenToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->debugScreenToolStripMenuItem->Text = L"Debug Screen";
this->debugScreenToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::debugScreenToolStripMenuItem_Click);
//
// uartToolStripMenuItem
//
this->uartToolStripMenuItem->Name = L"uartToolStripMenuItem";
this->uartToolStripMenuItem->Size = System::Drawing::Size(154, 22);
this->uartToolStripMenuItem->Text = L"&Uart";
this->uartToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::uartToolStripMenuItem_Click);
//
// runToolStripMenuItem1
//
this->runToolStripMenuItem1->Name = L"runToolStripMenuItem1";
this->runToolStripMenuItem1->Size = System::Drawing::Size(154, 22);
this->runToolStripMenuItem1->Text = L"Run";
this->runToolStripMenuItem1->Click += gcnew System::EventHandler(this, &frmMain::runToolStripMenuItem1_Click);
//
// aboutToolStripMenuItem
//
this->aboutToolStripMenuItem->Name = L"aboutToolStripMenuItem";
344,65 → 360,15
//
// toolStrip1
//
this->toolStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(8) {this->toolStripButton1,
this->toolStripButton2, this->toolStripButton3, this->toolStripButton4, this->toolStripButton5, this->toolStripButton6, this->toolStripButton7,
this->toolStripButton8});
this->toolStrip1->Location = System::Drawing::Point(0, 24);
this->toolStrip1->Dock = System::Windows::Forms::DockStyle::None;
this->toolStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->toolStripButton6,
this->toolStripButton7});
this->toolStrip1->Location = System::Drawing::Point(12, 32);
this->toolStrip1->Name = L"toolStrip1";
this->toolStrip1->Size = System::Drawing::Size(684, 25);
this->toolStrip1->Size = System::Drawing::Size(58, 25);
this->toolStrip1->TabIndex = 1;
this->toolStrip1->Text = L"toolStrip1";
//
// toolStripButton1
//
this->toolStripButton1->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton1->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton1.Image")));
this->toolStripButton1->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton1->Name = L"toolStripButton1";
this->toolStripButton1->Size = System::Drawing::Size(23, 22);
this->toolStripButton1->Text = L"Step Into";
this->toolStripButton1->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton1_Click);
//
// toolStripButton2
//
this->toolStripButton2->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton2->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton2.Image")));
this->toolStripButton2->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton2->Name = L"toolStripButton2";
this->toolStripButton2->Size = System::Drawing::Size(23, 22);
this->toolStripButton2->Text = L"Step Over (Bounce)";
this->toolStripButton2->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton2_Click);
//
// toolStripButton3
//
this->toolStripButton3->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton3->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton3.Image")));
this->toolStripButton3->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton3->Name = L"toolStripButton3";
this->toolStripButton3->Size = System::Drawing::Size(23, 22);
this->toolStripButton3->Text = L"Step Out Of";
this->toolStripButton3->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton3_Click);
//
// toolStripButton4
//
this->toolStripButton4->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton4->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton4.Image")));
this->toolStripButton4->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton4->Name = L"toolStripButton4";
this->toolStripButton4->Size = System::Drawing::Size(23, 22);
this->toolStripButton4->Text = L"Run";
this->toolStripButton4->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton4_Click);
//
// toolStripButton5
//
this->toolStripButton5->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton5->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton5.Image")));
this->toolStripButton5->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton5->Name = L"toolStripButton5";
this->toolStripButton5->Size = System::Drawing::Size(23, 22);
this->toolStripButton5->Text = L"Stop";
this->toolStripButton5->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton5_Click);
//
// toolStripButton6
//
this->toolStripButton6->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
423,16 → 389,6
this->toolStripButton7->Text = L"Breakpoints";
this->toolStripButton7->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton7_Click);
//
// toolStripButton8
//
this->toolStripButton8->DisplayStyle = System::Windows::Forms::ToolStripItemDisplayStyle::Image;
this->toolStripButton8->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"toolStripButton8.Image")));
this->toolStripButton8->ImageTransparentColor = System::Drawing::Color::Magenta;
this->toolStripButton8->Name = L"toolStripButton8";
this->toolStripButton8->Size = System::Drawing::Size(23, 22);
this->toolStripButton8->Text = L"Reset Button";
this->toolStripButton8->Click += gcnew System::EventHandler(this, &frmMain::toolStripButton8_Click);
//
// openFileDialog1
//
this->openFileDialog1->DefaultExt = L"hex";
444,7 → 400,7
//
this->lblChecksumError->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left));
this->lblChecksumError->AutoSize = true;
this->lblChecksumError->Location = System::Drawing::Point(75, 557);
this->lblChecksumError->Location = System::Drawing::Point(195, 655);
this->lblChecksumError->Name = L"lblChecksumError";
this->lblChecksumError->Size = System::Drawing::Size(35, 13);
this->lblChecksumError->TabIndex = 2;
453,7 → 409,7
// pictureBox1
//
this->pictureBox1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left));
this->pictureBox1->Location = System::Drawing::Point(12, 542);
this->pictureBox1->Location = System::Drawing::Point(12, 640);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(218, 12);
this->pictureBox1->TabIndex = 3;
461,38 → 417,15
this->pictureBox1->Click += gcnew System::EventHandler(this, &frmMain::pictureBox1_Click);
this->pictureBox1->Paint += gcnew System::Windows::Forms::PaintEventHandler(this, &frmMain::pictureBox1_Paint);
//
// listBoxAdr
//
this->listBoxAdr->FormattingEnabled = true;
this->listBoxAdr->Location = System::Drawing::Point(12, 83);
this->listBoxAdr->Name = L"listBoxAdr";
this->listBoxAdr->Size = System::Drawing::Size(71, 433);
this->listBoxAdr->TabIndex = 4;
//
// listBoxBytes
//
this->listBoxBytes->FormattingEnabled = true;
this->listBoxBytes->Location = System::Drawing::Point(89, 83);
this->listBoxBytes->Name = L"listBoxBytes";
this->listBoxBytes->Size = System::Drawing::Size(141, 433);
this->listBoxBytes->TabIndex = 5;
//
// listBoxCode
//
this->listBoxCode->FormattingEnabled = true;
this->listBoxCode->Location = System::Drawing::Point(236, 83);
this->listBoxCode->Name = L"listBoxCode";
this->listBoxCode->Size = System::Drawing::Size(327, 433);
this->listBoxCode->TabIndex = 6;
//
// lblLEDS
//
this->lblLEDS->AutoSize = true;
this->lblLEDS->Location = System::Drawing::Point(271, 542);
this->lblLEDS->Location = System::Drawing::Point(255, 639);
this->lblLEDS->Name = L"lblLEDS";
this->lblLEDS->Size = System::Drawing::Size(40, 13);
this->lblLEDS->Size = System::Drawing::Size(31, 13);
this->lblLEDS->TabIndex = 7;
this->lblLEDS->Text = L"lblLeds";
this->lblLEDS->Text = L"0000";
this->lblLEDS->Visible = false;
//
// timer1
//
499,18 → 432,6
this->timer1->Enabled = true;
this->timer1->Tick += gcnew System::EventHandler(this, &frmMain::timer1_Tick);
//
// trackBar1
//
this->trackBar1->Location = System::Drawing::Point(426, 32);
this->trackBar1->Maximum = 999999;
this->trackBar1->Minimum = 3;
this->trackBar1->Name = L"trackBar1";
this->trackBar1->Size = System::Drawing::Size(137, 45);
this->trackBar1->TabIndex = 8;
this->trackBar1->TickStyle = System::Windows::Forms::TickStyle::TopLeft;
this->trackBar1->Value = 10000;
this->trackBar1->Scroll += gcnew System::EventHandler(this, &frmMain::trackBar1_Scroll);
//
// timer30
//
this->timer30->Tick += gcnew System::EventHandler(this, &frmMain::timer30_Tick);
519,20 → 440,28
//
this->timer1024->Tick += gcnew System::EventHandler(this, &frmMain::timer1024_Tick);
//
// pictureBox2
//
this->pictureBox2->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left));
this->pictureBox2->Location = System::Drawing::Point(305, 631);
this->pictureBox2->Name = L"pictureBox2";
this->pictureBox2->Size = System::Drawing::Size(172, 38);
this->pictureBox2->TabIndex = 9;
this->pictureBox2->TabStop = false;
this->pictureBox2->Paint += gcnew System::Windows::Forms::PaintEventHandler(this, &frmMain::pictureBox2_Paint);
//
// frmMain
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(684, 583);
this->Controls->Add(this->trackBar1);
this->ClientSize = System::Drawing::Size(911, 681);
this->Controls->Add(this->pictureBox2);
this->Controls->Add(this->toolStrip1);
this->Controls->Add(this->lblLEDS);
this->Controls->Add(this->listBoxCode);
this->Controls->Add(this->listBoxBytes);
this->Controls->Add(this->listBoxAdr);
this->Controls->Add(this->pictureBox1);
this->Controls->Add(this->lblChecksumError);
this->Controls->Add(this->toolStrip1);
this->Controls->Add(this->menuStrip1);
this->IsMdiContainer = true;
this->MainMenuStrip = this->menuStrip1;
this->Name = L"frmMain";
this->Text = L"Thor ISA Emulator";
541,7 → 470,7
this->toolStrip1->ResumeLayout(false);
this->toolStrip1->PerformLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->trackBar1))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox2))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
 
549,12 → 478,19
#pragma endregion
 
private: System::Void registersToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmRegisters^ form = gcnew frmRegisters(mut);
form->Show();
if (registersFrm)
registersFrm->Activate();
else {
registersFrm = gcnew frmRegisters(mut);
registersFrm->MdiParent = this;
registersFrm->Show();
}
}
private: System::Void loadINTELHexFIleToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
this->openFileDialog1->ShowDialog();
LoadIntelHexFile();
if (runFrm)
runFrm->UpdateListBoxes();
return;
}
 
648,7 → 584,8
fp_in.close();
system1.WriteROM = false;
ad = firstAdr;
UpdateListBoxes(ad);
if (runFrm)
runFrm->UpdateListBoxes();
if (chksum != 0) {
sprintf(buf2, "Checksum Error: %d", chksum);
this->lblChecksumError->Text = gcnew String(buf2);
658,8 → 595,13
System::Windows::Forms::Cursor::Current = System::Windows::Forms::Cursors::Default;
}
private: System::Void memoryToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmMemory^ form = gcnew frmMemory(mut);
form->Show();
if (memoryFrm)
memoryFrm->Activate();
else {
memoryFrm = gcnew frmMemory(mut);
memoryFrm->MdiParent = this;
memoryFrm->Show();
}
}
private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {
}
680,186 → 622,25
gr->FillEllipse(gcnew SolidBrush(Color::FromArgb(0xFF003000)),System::Drawing::Rectangle(w*nn,0,w-1,h-1));
}
}
private: void UpdateListBoxes(int ad)
{
int nn,nb,kk;
char buf2[100];
std::string dstr;
std::string buf;
int adr[32];
int adf;
 
listBoxAdr->Items->Clear();
listBoxBytes->Items->Clear();
listBoxCode->Items->Clear();
for (nn = 0; nn < 32; nn++) {
adr[nn] = ad;
sprintf(buf2,"%06X", ad);
buf = std::string(buf2);
this->listBoxAdr->Items->Add(gcnew String(buf.c_str()));
dstr = da.Disassem(ad,&nb);
buf2[0] = '\0';
for (kk = 0; kk < nb; kk++) {
sprintf(&buf2[strlen(buf2)], "%02X ", system1.ReadByte(ad));
ad++;
}
buf = std::string(buf2);
this->listBoxBytes->Items->Add(gcnew String(buf.c_str()));
this->listBoxCode->Items->Add(gcnew String(dstr.c_str()));
}
for (nn = 0; nn < 32; nn++) {
mut->WaitOne();
adf = system1.cpu2.pc;
mut->ReleaseMutex();
if (adr[nn]==adf) {
this->listBoxAdr->SetSelected(nn,true);
this->listBoxBytes->SetSelected(nn,true);
this->listBoxCode->SetSelected(nn,true);
}
}
}
private: System::Void stepToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void resetToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
Reset();
}
private: void Reset() {
int ad;
mut->WaitOne();
system1.Reset();
ad = system1.cpu2.pc-32;
mut->ReleaseMutex();
UpdateListBoxes(PCIsInList(ad));
}
 
// Try and align the disassembled code with the current PC.
private: int PCIsInList(int as)
{
int nn, nb;
std::string dstr;
int ae;
int ad = as;
 
for (ad = as; ad > as-32; ad--) {
ae = ad;
for (nn = 0; nn < 64; nn++) {
mut->WaitOne();
if (ae==system1.cpu2.pc) {
mut->ReleaseMutex();
return ad;
}
mut->ReleaseMutex();
dstr = da.Disassem(ae,&nb);
ae += nb;
}
}
return as;
}
 
private: void DoStepInto() {
// animate = false;
// isRunning = false;
char buf[100];
mut->WaitOne();
system1.Step();
mut->ReleaseMutex();
UpdateListBoxes(PCIsInList(system1.cpu2.pc-32));
sprintf(buf, "%04X", system1.leds);
lblLEDS->Text = gcnew String(buf);
pictureBox1->Refresh();
}
private: void DoStopButton() {
mut->WaitOne();
animate = false;
isRunning = false;
// cpu2.brk = true;
fullspeed = false;
mut->ReleaseMutex();
this->fullSpeedToolStripMenuItem->Checked = false;
this->animateFastToolStripMenuItem->Checked = false;
this->timer1->Interval = 100;
}
private: System::Void toolStripButton1_Click(System::Object^ sender, System::EventArgs^ e) {
DoStepInto();
}
private: System::Void openFileDialog1_FileOk(System::Object^ sender, System::ComponentModel::CancelEventArgs^ e) {
}
private: System::Void aboutToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
About^ form = gcnew About;
form->MdiParent = this;
form->Show();
}
private: System::Void breakpointsToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmBreakpoints^ form = gcnew frmBreakpoints(mut);
form->ShowDialog();
}
private: System::Void fullSpeedToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
this->fullSpeedToolStripMenuItem->Checked = !this->fullSpeedToolStripMenuItem->Checked;
mut->WaitOne();
fullspeed = this->fullSpeedToolStripMenuItem->Checked;
mut->ReleaseMutex();
if (this->fullSpeedToolStripMenuItem->Checked)
this->timer1->Interval = 1000;
if (breakpointsFrm)
breakpointsFrm->Activate();
else {
this->timer1->Interval = (int)sqrt((float)1000000-trackBar1->Value);
breakpointsFrm = gcnew frmBreakpoints(mut);
breakpointsFrm->MdiParent = this;
breakpointsFrm->Show();
}
this->animateFastToolStripMenuItem->Checked = false;
}
private: System::Void toolStripButton3_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
step_depth = system1.cpu2.sub_depth;
stepout = true;
animate = false;
fullspeed = true;
isRunning = true;
mut->ReleaseMutex();
this->fullSpeedToolStripMenuItem->Checked = true;
private: System::Void fullSpeedToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void animateFastToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
isRunning = false;
animate = true;
mut->ReleaseMutex();
this->timer1->Interval = 1;
this->trackBar1->Value = 3;
this->fullSpeedToolStripMenuItem->Checked = false;
this->animateFastToolStripMenuItem->Checked = true;
}
private: System::Void toolStripButton5_Click(System::Object^ sender, System::EventArgs^ e) {
DoStopButton();
}
private: System::Void toolStripButton2_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
stepover_pc = system1.cpu2.pc;
stepover_depth = system1.cpu2.sub_depth;
stepover = true;
animate = false;
fullspeed = true;
isRunning = true;
mut->ReleaseMutex();
this->fullSpeedToolStripMenuItem->Checked = true;
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
static int tt = 0;
int xx;
 
if (this->timer1->Interval < 10)
tt += 1;
if (tt == 10 * this->timer1->Interval) {
tt = 0;
UpdateListBoxes(PCIsInList(system1.cpu2.pc-32));
}
else
UpdateListBoxes(PCIsInList(system1.cpu2.pc-32));
// if (fullspeed) {
// for (xx = 0; xx < 100000; xx++)
// RunCPU();
// }
mut->WaitOne();
if (!isRunning && animate) {
system1.Step();
}
mut->ReleaseMutex();
if (trigger30) {
trigger30 = false;
if (interval30==-1) {
884,61 → 665,71
this->timer1024->Enabled = true;
}
}
 
if (interruptsFrm)
interruptsFrm->UpdateForm();
if (isRunning) {
if (registersFrm)
registersFrm->UpdateForm();
if (PCHistoryFrm)
PCHistoryFrm->UpdateForm();
if (stackFrm)
stackFrm->UpdateForm();
}
pictureBox1->Invalidate();
pictureBox2->Invalidate();
}
private: System::Void toolStripButton4_Click(System::Object^ sender, System::EventArgs^ e) {
fmrFreeRun^ form = gcnew fmrFreeRun(mut);
form->Show();
/*
if (fullspeed) {
isRunning = true;
}
private: System::Void toolStripButton7_Click(System::Object^ sender, System::EventArgs^ e) {
if (breakpointsFrm)
breakpointsFrm->Activate();
else {
isRunning = false;
animate = true;
this->timer1->Interval = (int)(sqrt((float)1000000-trackBar1->Value));
breakpointsFrm = gcnew frmBreakpoints(mut);
breakpointsFrm->MdiParent = this;
breakpointsFrm->Show();
}
*/
}
private: System::Void toolStripButton7_Click(System::Object^ sender, System::EventArgs^ e) {
frmBreakpoints^ form = gcnew frmBreakpoints(mut);
form->ShowDialog();
}
private: System::Void trackBar1_Scroll(System::Object^ sender, System::EventArgs^ e) {
animate = true;
isRunning = false;
// cpu2.brk = true;
fullspeed = false;
this->fullSpeedToolStripMenuItem->Checked = false;
// this->animateFastToolStripMenuItem->Checked = false;
this->timer1->Interval = (int)(sqrt((float)1000000-trackBar1->Value));
}
private: System::Void freeRunToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
fmrFreeRun^ form = gcnew fmrFreeRun(mut);
form->Show();
}
private: System::Void stackToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmStack^ form = gcnew frmStack(mut);
form->Show();
if (stackFrm)
stackFrm->Activate();
else {
stackFrm = gcnew frmStack(mut);
stackFrm->MdiParent = this;
stackFrm->Show();
}
}
private: System::Void interruptToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmInterrupts^ form = gcnew frmInterrupts(mut);
form->ShowDialog();
if (interruptsFrm)
interruptsFrm->Activate();
else {
interruptsFrm = gcnew frmInterrupts(mut);
interruptsFrm->MdiParent = this;
interruptsFrm->Show();
}
}
private: System::Void toolStripButton6_Click(System::Object^ sender, System::EventArgs^ e) {
frmInterrupts^ form = gcnew frmInterrupts(mut);
form->ShowDialog();
if (interruptsFrm)
interruptsFrm->Activate();
else {
interruptsFrm = gcnew frmInterrupts(mut);
interruptsFrm->MdiParent = this;
interruptsFrm->Show();
}
}
private: System::Void pCHistoryToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmPCHistory^ form = gcnew frmPCHistory(mut);
form->Show();
if (PCHistoryFrm)
PCHistoryFrm->Activate();
else {
PCHistoryFrm = gcnew frmPCHistory(mut);
PCHistoryFrm->MdiParent = this;
PCHistoryFrm->Show();
}
}
private: System::Void toolStripButton8_Click(System::Object^ sender, System::EventArgs^ e) {
Reset();
}
private: System::Void keyboardToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
frmKeyboard^ keyboardFrm = gcnew frmKeyboard(mut);
keyboardFrm->Show();
if (keyboardFrm)
keyboardFrm->Show();
else {
keyboardFrm = gcnew frmKeyboard(mut);
keyboardFrm->Show();
}
}
private: System::Void timer30_Tick(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
950,6 → 741,92
system1.pic1.irq1024Hz = true;
mut->ReleaseMutex();
}
private: System::Void screenToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if (screenClosed) {
screenFrm = gcnew frmScreen(mut, "Main Screen");
mut->WaitOne();
screenFrm->pVidMem = &system1.VideoMem[0];
screenFrm->pVidDirty = &system1.VideoMemDirty[0];
screenFrm->which = 0;
mut->ReleaseMutex();
screenFrm->Show();
}
else
screenFrm->Activate();
}
private: System::Void debugScreenToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if (dbgScreenClosed) {
DBGScreenFrm = gcnew frmScreen(mut, "Debug Screen");
mut->WaitOne();
DBGScreenFrm->pVidMem = &system1.DBGVideoMem[0];
DBGScreenFrm->pVidDirty = &system1.DBGVideoMemDirty[0];
DBGScreenFrm->which = 1;
mut->ReleaseMutex();
DBGScreenFrm->Show();
}
else
DBGScreenFrm->Activate();
}
private: System::Void runToolStripMenuItem1_Click(System::Object^ sender, System::EventArgs^ e) {
if (runFrm == nullptr) {
runFrm = gcnew frmRun(mut);
runFrm->MdiParent = this;
runFrm->WindowState = FormWindowState::Maximized;
runFrm->Show();
}
else
runFrm->Activate();
}
private: System::Void interruptsToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if (interruptsFrm)
interruptsFrm->Activate();
else {
interruptsFrm = gcnew frmInterrupts(mut);
interruptsFrm->MdiParent = this;
interruptsFrm->Show();
}
}
private: System::Void uartToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if (uartFrm==nullptr) {
uartFrm = gcnew frmUart(mut);
uartFrm->MdiParent = this;
uartFrm->Show();
}
else
uartFrm->Activate();
}
private: System::Void pictureBox2_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
Graphics^ gr = e->Graphics;
System::Drawing::Font^ myfont;
std::string str;
SolidBrush^ bkbr;
SolidBrush^ fgbr;
int xx,kk;
char buf[9];
for (xx = 0; xx < 8; xx++)
{
kk = (system1.sevenseg.dat >> (xx * 4)) & 0xF;
if (kk < 10)
buf[7-xx] = '0' + kk;
else
switch(kk) {
case 10: buf[7-xx] = 'A'; break;
case 11: buf[7-xx] = 'b'; break;
case 12: buf[7-xx] = 'C'; break;
case 13: buf[7-xx] = 'd'; break;
case 14: buf[7-xx] = 'E'; break;
case 15: buf[7-xx] = 'F'; break;
}
}
buf[8] = '\0';
myfont = gcnew System::Drawing::Font("Lucida Console", 24);
bkbr = gcnew System::Drawing::SolidBrush(System::Drawing::Color::Black);
gr->FillRectangle(bkbr,this->pictureBox2->ClientRectangle);
fgbr = gcnew System::Drawing::SolidBrush(Color::FromArgb(0xFF3F0000));
gr->DrawString(gcnew String("88888888"),myfont,fgbr,0,0);
fgbr = gcnew System::Drawing::SolidBrush(Color::FromArgb(0x7FFF0000));
gr->DrawString(gcnew String(buf),myfont,fgbr,2,2);
}
};
}
 
/trunk/software/emuThor/source/frmRun.cpp
0,0 → 1,3
#include "StdAfx.h"
#include "frmRun.h"
 
/trunk/software/emuThor/source/frmKeyboard.h
1162,15 → 1162,18
mut->ReleaseMutex();
}
private: System::Void btnEnter_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x5A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x5A);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnRshift_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
 
mut->WaitOne();
if (sh!=0)
system1.keybd.Put(0xF0);
system1.keybd.Put(0x59);
1177,13 → 1180,16
sh = !sh;
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn1_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x16);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x16);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnD_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
1195,60 → 1201,76
mut->ReleaseMutex();
}
private: System::Void btnB_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x32);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x32);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnG_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x34);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x34);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnQ_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x15);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x15);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnT_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x2C);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2C);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnS_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x1B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1B);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnM_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x3A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3A);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnMinus_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x4E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4E);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnBackspace_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x66);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x66);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button14_Click(System::Object^ sender, System::EventArgs^ e) {
system1.keybd.Put(0xE0);
1258,22 → 1280,28
system1.keybd.Put(0x71);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnJ_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x3B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3B);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnSpace_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x29);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x29);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button10_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x6B);
system1.keybd.Put(0xE0);
1281,107 → 1309,137
system1.keybd.Put(0x6B);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn2_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x1E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1E);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn3_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x26);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x26);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn4_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x25);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x25);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn5_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x2E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2E);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn6_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x36);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x36);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn7_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x3D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3D);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn8_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x3E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3E);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn9_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x46);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x46);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btn0_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x45);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x45);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnA_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x1C);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1C);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnC_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x21);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x21);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnE_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x24);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x24);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnF_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x2B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2B);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnX_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x22);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x22);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnRctrl_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
mut->WaitOne();
system1.keybd.Put(0xE0);
if (sh!=0)
system1.keybd.Put(0xF0);
1389,149 → 1447,191
sh = !sh;
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button9_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x55);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x55);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x0E);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x0E);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnW_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x1D);
keybd_status = 0x80;
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1D);
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnR_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x2D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2D);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnY_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x35);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x35);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnU_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x3C);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x3C);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnI_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x43);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x43);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnO_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x44);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x44);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnP_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x4D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4D);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnH_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x33);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x33);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnK_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x42);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x42);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnL_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x4B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4B);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x4C);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x4C);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x52);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x52);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnZ_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x1A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x1A);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnV_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x2A);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x2A);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnN_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x31);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x31);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x41);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x41);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x49);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x49);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x5D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x5D);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void btnLalt_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
mut->WaitOne();
if (sh!=0)
system1.keybd.Put(0xF0);
system1.keybd.Put(0x11);
1538,10 → 1638,12
sh = !sh;
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
// Alt
private: System::Void button20_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
mut->WaitOne();
system1.keybd.Put(0xE0);
if (sh!=0)
system1.keybd.Put(0xF0);
1549,9 → 1651,11
sh = !sh;
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void buttonLctrl_Click(System::Object^ sender, System::EventArgs^ e) {
static bool sh = false;
mut->WaitOne();
if (sh!=0)
system1.keybd.Put(0xF0);
system1.keybd.Put(0x14);
1558,8 → 1662,10
sh = !sh;
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button16_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x70);
system1.keybd.Put(0xE0);
1567,9 → 1673,11
system1.keybd.Put(0x70);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
// Home
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x6C);
system1.keybd.Put(0xE0);
1577,9 → 1685,11
system1.keybd.Put(0x6C);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
// End
private: System::Void button15_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x69);
system1.keybd.Put(0xE0);
1587,9 → 1697,11
system1.keybd.Put(0x69);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
// Cursor down
private: System::Void button11_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x72);
system1.keybd.Put(0xE0);
1597,9 → 1709,11
system1.keybd.Put(0x72);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
// Cursor Up
private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x75);
system1.keybd.Put(0xE0);
1607,9 → 1721,11
system1.keybd.Put(0x75);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
// Cursor right
private: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x74);
system1.keybd.Put(0xE0);
1617,9 → 1733,11
system1.keybd.Put(0x74);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
// page up
private: System::Void button19_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x7D);
system1.keybd.Put(0xE0);
1627,9 → 1745,11
system1.keybd.Put(0x7D);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
// page down
private: System::Void button18_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0xE0);
system1.keybd.Put(0x7A);
system1.keybd.Put(0xE0);
1637,57 → 1757,72
system1.keybd.Put(0x7A);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x54);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x54);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x5B);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x5B);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void buttonEsc_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x76);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x76);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void buttonF1_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x05);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x05);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void buttonF2_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x06);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x06);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void buttonCapslock_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x58);
keybd_status = 0x80;
system1.keybd.Put(0xF0);
system1.keybd.Put(0x58);
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
private: System::Void frmKeyboard_MouseUp(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
}
private: System::Void buttonTab_Click(System::Object^ sender, System::EventArgs^ e) {
mut->WaitOne();
system1.keybd.Put(0x0D);
system1.keybd.Put(0xF0);
system1.keybd.Put(0x0D);
keybd_status = 0x80;
system1.pic1.irqKeyboard = true;
mut->ReleaseMutex();
}
};
}
/trunk/software/emuThor/source/clsPIC.cpp
1,7 → 1,6
#include "StdAfx.h"
#include "clsPIC.h"
 
 
clsPIC::clsPIC(void)
{
Reset();
13,10 → 12,12
 
for (nn = 0; nn < 16; nn++) {
enables[nn] = false;
edges[nn] = false;
}
irq30Hz = false;
irq1024Hz = false;
irqKeyboard = false;
irqUart = false;
}
 
unsigned int clsPIC::Read(unsigned int ad) {
46,6 → 47,10
case 3:
enables[dat & 15] = true;
break;
case 4:
for (nn = 0; nn < 16; nn++)
edges[nn] = (dat & (1 << nn)) != 0;
break;
case 5:
if (dat==1)
irq1024Hz = false;
/trunk/software/emuThor/source/About.h
135,6 → 135,7
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedDialog;
this->MaximizeBox = false;
this->Name = L"About";
this->StartPosition = System::Windows::Forms::FormStartPosition::CenterParent;
this->Text = L"About";
this->ResumeLayout(false);
this->PerformLayout();
/trunk/software/emuThor/source/frmRegisters.h
1,4 → 1,5
#pragma once
#include <cstdlib>
 
namespace emuThor {
 
9,6 → 10,7
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Threading;
using namespace System::Runtime::InteropServices;
 
/// <summary>
/// Summary for frmRegisters
24,124 → 26,25
//
//TODO: Add the constructor code here
//
char buf[100];
mut->WaitOne();
sprintf(buf, "%016I64X", system1.cpu2.gp[1]);
txtR1->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[2]);
txtR2->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[3]);
txtR3->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[4]);
txtR4->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[5]);
txtR5->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[6]);
txtR6->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[7]);
txtR7->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[8]);
txtR8->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[9]);
txtR9->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[10]);
txtR10->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[11]);
txtR11->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[12]);
txtR12->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[13]);
txtR13->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[14]);
txtR14->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[15]);
txtR15->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[16]);
txtR16->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[17]);
txtR17->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[18]);
txtR18->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[19]);
txtR19->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[26]);
txtR26->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[27]);
txtR27->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[28]);
txtR28->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[29]);
txtR29->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[30]);
txtR30->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.gp[31]);
txtR31->Text = gcnew String(buf);
 
// Predicate Registers
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[0],
system1.cpu2.pr[0] & 4 ? '<' : ' ',
system1.cpu2.pr[0] & 2 ? '<' : ' ',
system1.cpu2.pr[0] & 1 ? '=' : ' '
);
txtP0->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[1],
system1.cpu2.pr[1] & 4 ? '<' : ' ',
system1.cpu2.pr[1] & 2 ? '<' : ' ',
system1.cpu2.pr[1] & 1 ? '=' : ' '
);
txtP1->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[2],
system1.cpu2.pr[2] & 4 ? '<' : ' ',
system1.cpu2.pr[2] & 2 ? '<' : ' ',
system1.cpu2.pr[2] & 1 ? '=' : ' '
);
txtP2->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[3],
system1.cpu2.pr[3] & 4 ? '<' : ' ',
system1.cpu2.pr[3] & 2 ? '<' : ' ',
system1.cpu2.pr[3] & 1 ? '=' : ' '
);
txtP3->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[4],
system1.cpu2.pr[4] & 4 ? '<' : ' ',
system1.cpu2.pr[4] & 2 ? '<' : ' ',
system1.cpu2.pr[4] & 1 ? '=' : ' '
);
txtP4->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[5],
system1.cpu2.pr[5] & 4 ? '<' : ' ',
system1.cpu2.pr[5] & 2 ? '<' : ' ',
system1.cpu2.pr[5] & 1 ? '=' : ' '
);
txtP5->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[6],
system1.cpu2.pr[6] & 4 ? '<' : ' ',
system1.cpu2.pr[6] & 2 ? '<' : ' ',
system1.cpu2.pr[6] & 1 ? '=' : ' '
);
txtP6->Text = gcnew String(buf);
sprintf(buf, "%04X %c%c%c", system1.cpu2.pr[7],
system1.cpu2.pr[7] & 4 ? '<' : ' ',
system1.cpu2.pr[7] & 2 ? '<' : ' ',
system1.cpu2.pr[7] & 1 ? '=' : ' '
);
txtP7->Text = gcnew String(buf);
 
// Code address registers
sprintf(buf, "%016I64X", system1.cpu2.ca[1]);
txtCa1->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.ca[12]);
txtCa12->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.ca[14]);
txtCa14->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.pc);
txtCa15->Text = gcnew String(buf);
 
sprintf(buf, "%016I64X", system1.cpu2.tick);
txtTick->Text = gcnew String(buf);
sprintf(buf, "%016I64X", system1.cpu2.lc);
txtLC->Text = gcnew String(buf);
mut->ReleaseMutex();
UpdateForm();
toolTipC1->SetToolTip(txtCa1, "C1 is typically used to store the subroutine return address.\n The short form RTS instruction expects this register to contain the return address.");
toolTipC8->SetToolTip(txtCa8, "C8, C9, and C10 are typically used by the compiler as register variables to store\n"
"the address of a subroutine called multiple times.");
toolTipC8->SetToolTip(txtCa9, "C8, C9, and C10 are typically used by the compiler as register variables to store\n"
"the address of a subroutine called multiple times.");
toolTipC8->SetToolTip(txtCa10, "C8, C9, and C10 are typically used by the compiler as register variables to store\n"
"the address of a subroutine called multiple times.");
toolTipC12->SetToolTip(txtCa12, "C12 specifies the location of the interrupt vector table in memory.");
toolTipC14->SetToolTip(txtCa14, "C14 contains the address at which an interrupt occurred.\nThe RTI instruction uses this register to determine where to return.");
toolTipR0->SetToolTip(txtR0, "R0 is always zero and can't be altered.");
toolTipR28->SetToolTip(txtR28, "ISP / R28 is the interrupt mode stack pointer. References to R27 will be re-routed to this register.\n"
"R28 is accessible only from a kernel mode.");
toolTipR29->SetToolTip(txtR29, "ESP / R29 is the exception mode stack pointer. References to R27 will be re-routed to this register.\n"
"R29 is accessible only from a kernel mode.");
toolTipR30->SetToolTip(txtR30, "DSP / R30 is the debug mode stack pointer. References to R27 will be re-routed to this register.\n"
"R30 is accessible only from a kernel mode.");
toolTipR31->SetToolTip(txtR31, "TR / R31 is used by the system as the Task Register which points to the active task control block.\n"
"R31 is accessible only from a kernel mode.");
}
 
protected:
165,61 → 68,89
 
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::TabPage^ tabPage2;
private: System::Windows::Forms::TextBox^ textBox49;
private: System::Windows::Forms::TextBox^ txtR63;
 
private: System::Windows::Forms::Label^ label49;
private: System::Windows::Forms::TextBox^ textBox50;
private: System::Windows::Forms::TextBox^ txtR62;
 
private: System::Windows::Forms::Label^ label50;
private: System::Windows::Forms::TextBox^ textBox51;
private: System::Windows::Forms::TextBox^ txtR61;
 
private: System::Windows::Forms::Label^ label51;
private: System::Windows::Forms::TextBox^ textBox52;
private: System::Windows::Forms::TextBox^ txtR60;
 
private: System::Windows::Forms::Label^ label52;
private: System::Windows::Forms::TextBox^ textBox53;
private: System::Windows::Forms::TextBox^ txtR59;
 
private: System::Windows::Forms::Label^ label53;
private: System::Windows::Forms::TextBox^ textBox54;
private: System::Windows::Forms::TextBox^ txtR58;
 
private: System::Windows::Forms::Label^ label54;
private: System::Windows::Forms::TextBox^ textBox55;
private: System::Windows::Forms::TextBox^ txtR57;
 
private: System::Windows::Forms::Label^ label55;
private: System::Windows::Forms::TextBox^ textBox56;
private: System::Windows::Forms::TextBox^ txtR56;
 
private: System::Windows::Forms::Label^ label56;
private: System::Windows::Forms::TextBox^ textBox57;
private: System::Windows::Forms::TextBox^ txtR55;
 
private: System::Windows::Forms::Label^ label57;
private: System::Windows::Forms::TextBox^ textBox58;
private: System::Windows::Forms::TextBox^ txtR54;
 
private: System::Windows::Forms::Label^ label58;
private: System::Windows::Forms::TextBox^ textBox59;
private: System::Windows::Forms::TextBox^ txtR53;
 
private: System::Windows::Forms::Label^ label59;
private: System::Windows::Forms::TextBox^ textBox60;
private: System::Windows::Forms::TextBox^ txtR52;
 
private: System::Windows::Forms::Label^ label60;
private: System::Windows::Forms::TextBox^ textBox61;
private: System::Windows::Forms::TextBox^ txtR51;
 
private: System::Windows::Forms::Label^ label61;
private: System::Windows::Forms::TextBox^ textBox62;
private: System::Windows::Forms::TextBox^ txtR50;
 
private: System::Windows::Forms::Label^ label62;
private: System::Windows::Forms::TextBox^ textBox63;
private: System::Windows::Forms::TextBox^ txtR49;
 
private: System::Windows::Forms::Label^ label63;
private: System::Windows::Forms::TextBox^ textBox64;
private: System::Windows::Forms::TextBox^ txtR48;
 
private: System::Windows::Forms::Label^ label64;
private: System::Windows::Forms::TextBox^ textBox33;
private: System::Windows::Forms::TextBox^ txtR47;
 
private: System::Windows::Forms::Label^ label33;
private: System::Windows::Forms::TextBox^ textBox34;
private: System::Windows::Forms::TextBox^ txtR46;
 
private: System::Windows::Forms::Label^ label34;
private: System::Windows::Forms::TextBox^ textBox35;
private: System::Windows::Forms::TextBox^ txtR45;
 
private: System::Windows::Forms::Label^ label35;
private: System::Windows::Forms::TextBox^ textBox36;
private: System::Windows::Forms::TextBox^ txtR44;
 
private: System::Windows::Forms::Label^ label36;
private: System::Windows::Forms::TextBox^ textBox37;
private: System::Windows::Forms::TextBox^ txtR43;
 
private: System::Windows::Forms::Label^ label37;
private: System::Windows::Forms::TextBox^ textBox38;
private: System::Windows::Forms::TextBox^ txtR42;
 
private: System::Windows::Forms::Label^ label38;
private: System::Windows::Forms::TextBox^ textBox39;
private: System::Windows::Forms::TextBox^ txtR41;
 
private: System::Windows::Forms::Label^ label39;
private: System::Windows::Forms::TextBox^ textBox40;
private: System::Windows::Forms::TextBox^ txtR40;
 
private: System::Windows::Forms::Label^ label40;
private: System::Windows::Forms::TextBox^ textBox41;
private: System::Windows::Forms::TextBox^ txtR39;
 
private: System::Windows::Forms::Label^ label41;
private: System::Windows::Forms::TextBox^ textBox42;
private: System::Windows::Forms::TextBox^ txtR38;
 
private: System::Windows::Forms::Label^ label42;
private: System::Windows::Forms::TextBox^ textBox43;
private: System::Windows::Forms::TextBox^ txtR37;
 
private: System::Windows::Forms::Label^ label43;
private: System::Windows::Forms::TextBox^ textBox44;
private: System::Windows::Forms::TextBox^ txtR36;
 
private: System::Windows::Forms::Label^ label44;
private: System::Windows::Forms::TextBox^ txtR35;
 
328,37 → 259,45
private: System::Windows::Forms::Label^ label107;
private: System::Windows::Forms::Label^ label106;
private: System::Windows::Forms::Label^ label105;
private: System::Windows::Forms::TextBox^ textBox94;
private: System::Windows::Forms::TextBox^ txtCsLmt;
 
private: System::Windows::Forms::TextBox^ txtCs;
 
private: System::Windows::Forms::Label^ label104;
private: System::Windows::Forms::TextBox^ txtSSLmt;
private: System::Windows::Forms::TextBox^ txtSsLmt;
 
 
private: System::Windows::Forms::TextBox^ txtSs;
 
private: System::Windows::Forms::Label^ label103;
private: System::Windows::Forms::TextBox^ textBox90;
private: System::Windows::Forms::TextBox^ txtHsLmt;
 
private: System::Windows::Forms::TextBox^ txtHs;
 
private: System::Windows::Forms::Label^ label102;
private: System::Windows::Forms::TextBox^ textBox88;
private: System::Windows::Forms::TextBox^ txtGsLmt;
 
private: System::Windows::Forms::TextBox^ txtGs;
 
private: System::Windows::Forms::Label^ label101;
private: System::Windows::Forms::TextBox^ textBox86;
private: System::Windows::Forms::TextBox^ txtFsLmt;
 
private: System::Windows::Forms::TextBox^ txtFs;
 
private: System::Windows::Forms::Label^ label100;
private: System::Windows::Forms::TextBox^ textBox84;
private: System::Windows::Forms::TextBox^ txtEsLmt;
 
private: System::Windows::Forms::TextBox^ txtEs;
 
private: System::Windows::Forms::Label^ label99;
private: System::Windows::Forms::TextBox^ textBox82;
private: System::Windows::Forms::TextBox^ txtDsLmt;
 
private: System::Windows::Forms::TextBox^ txtDs;
 
private: System::Windows::Forms::Label^ label98;
private: System::Windows::Forms::TextBox^ txtZSLmt;
private: System::Windows::Forms::TextBox^ txtZsLmt;
 
 
private: System::Windows::Forms::TextBox^ txtZs;
 
private: System::Windows::Forms::Label^ label97;
457,15 → 396,20
private: System::Windows::Forms::TextBox^ txtP0;
private: System::Windows::Forms::Label^ label65;
private: System::Windows::Forms::Label^ label116;
private: System::Windows::Forms::TextBox^ textBox101;
private: System::Windows::Forms::TextBox^ txtDBSTAT;
 
private: System::Windows::Forms::Label^ label115;
private: System::Windows::Forms::TextBox^ textBox100;
private: System::Windows::Forms::TextBox^ txtDBCTRL;
 
private: System::Windows::Forms::Label^ label114;
private: System::Windows::Forms::TextBox^ textBox99;
private: System::Windows::Forms::TextBox^ txtDBAD3;
 
private: System::Windows::Forms::Label^ label113;
private: System::Windows::Forms::TextBox^ textBox98;
private: System::Windows::Forms::TextBox^ txtDBAD2;
 
private: System::Windows::Forms::Label^ label112;
private: System::Windows::Forms::TextBox^ textBox97;
private: System::Windows::Forms::TextBox^ txtDBAD1;
 
private: System::Windows::Forms::Label^ label111;
private: System::Windows::Forms::TextBox^ txtDBAD0;
 
474,6 → 418,17
private: System::Windows::Forms::Label^ label118;
private: System::Windows::Forms::TextBox^ txtLC;
private: System::Windows::Forms::Label^ label117;
private: System::Windows::Forms::ToolTip^ toolTipC12;
private: System::Windows::Forms::ToolTip^ toolTipC14;
private: System::Windows::Forms::ToolTip^ toolTipC1;
private: System::Windows::Forms::ToolTip^ toolTipR31;
private: System::Windows::Forms::ToolTip^ toolTipR30;
private: System::Windows::Forms::ToolTip^ toolTipR29;
private: System::Windows::Forms::ToolTip^ toolTipR28;
private: System::Windows::Forms::ToolTip^ toolTipC8;
private: System::Windows::Forms::ToolTip^ toolTipR0;
private: System::Windows::Forms::Button^ btnUpdate;
private: System::ComponentModel::IContainer^ components;
 
protected:
 
609,8 → 564,8
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
 
 
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
618,63 → 573,64
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
this->tabControl1 = (gcnew System::Windows::Forms::TabControl());
this->tabPage1 = (gcnew System::Windows::Forms::TabPage());
this->textBox49 = (gcnew System::Windows::Forms::TextBox());
this->txtR63 = (gcnew System::Windows::Forms::TextBox());
this->label49 = (gcnew System::Windows::Forms::Label());
this->textBox50 = (gcnew System::Windows::Forms::TextBox());
this->txtR62 = (gcnew System::Windows::Forms::TextBox());
this->label50 = (gcnew System::Windows::Forms::Label());
this->textBox51 = (gcnew System::Windows::Forms::TextBox());
this->txtR61 = (gcnew System::Windows::Forms::TextBox());
this->label51 = (gcnew System::Windows::Forms::Label());
this->textBox52 = (gcnew System::Windows::Forms::TextBox());
this->txtR60 = (gcnew System::Windows::Forms::TextBox());
this->label52 = (gcnew System::Windows::Forms::Label());
this->textBox53 = (gcnew System::Windows::Forms::TextBox());
this->txtR59 = (gcnew System::Windows::Forms::TextBox());
this->label53 = (gcnew System::Windows::Forms::Label());
this->textBox54 = (gcnew System::Windows::Forms::TextBox());
this->txtR58 = (gcnew System::Windows::Forms::TextBox());
this->label54 = (gcnew System::Windows::Forms::Label());
this->textBox55 = (gcnew System::Windows::Forms::TextBox());
this->txtR57 = (gcnew System::Windows::Forms::TextBox());
this->label55 = (gcnew System::Windows::Forms::Label());
this->textBox56 = (gcnew System::Windows::Forms::TextBox());
this->txtR56 = (gcnew System::Windows::Forms::TextBox());
this->label56 = (gcnew System::Windows::Forms::Label());
this->textBox57 = (gcnew System::Windows::Forms::TextBox());
this->txtR55 = (gcnew System::Windows::Forms::TextBox());
this->label57 = (gcnew System::Windows::Forms::Label());
this->textBox58 = (gcnew System::Windows::Forms::TextBox());
this->txtR54 = (gcnew System::Windows::Forms::TextBox());
this->label58 = (gcnew System::Windows::Forms::Label());
this->textBox59 = (gcnew System::Windows::Forms::TextBox());
this->txtR53 = (gcnew System::Windows::Forms::TextBox());
this->label59 = (gcnew System::Windows::Forms::Label());
this->textBox60 = (gcnew System::Windows::Forms::TextBox());
this->txtR52 = (gcnew System::Windows::Forms::TextBox());
this->label60 = (gcnew System::Windows::Forms::Label());
this->textBox61 = (gcnew System::Windows::Forms::TextBox());
this->txtR51 = (gcnew System::Windows::Forms::TextBox());
this->label61 = (gcnew System::Windows::Forms::Label());
this->textBox62 = (gcnew System::Windows::Forms::TextBox());
this->txtR50 = (gcnew System::Windows::Forms::TextBox());
this->label62 = (gcnew System::Windows::Forms::Label());
this->textBox63 = (gcnew System::Windows::Forms::TextBox());
this->txtR49 = (gcnew System::Windows::Forms::TextBox());
this->label63 = (gcnew System::Windows::Forms::Label());
this->textBox64 = (gcnew System::Windows::Forms::TextBox());
this->txtR48 = (gcnew System::Windows::Forms::TextBox());
this->label64 = (gcnew System::Windows::Forms::Label());
this->textBox33 = (gcnew System::Windows::Forms::TextBox());
this->txtR47 = (gcnew System::Windows::Forms::TextBox());
this->label33 = (gcnew System::Windows::Forms::Label());
this->textBox34 = (gcnew System::Windows::Forms::TextBox());
this->txtR46 = (gcnew System::Windows::Forms::TextBox());
this->label34 = (gcnew System::Windows::Forms::Label());
this->textBox35 = (gcnew System::Windows::Forms::TextBox());
this->txtR45 = (gcnew System::Windows::Forms::TextBox());
this->label35 = (gcnew System::Windows::Forms::Label());
this->textBox36 = (gcnew System::Windows::Forms::TextBox());
this->txtR44 = (gcnew System::Windows::Forms::TextBox());
this->label36 = (gcnew System::Windows::Forms::Label());
this->textBox37 = (gcnew System::Windows::Forms::TextBox());
this->txtR43 = (gcnew System::Windows::Forms::TextBox());
this->label37 = (gcnew System::Windows::Forms::Label());
this->textBox38 = (gcnew System::Windows::Forms::TextBox());
this->txtR42 = (gcnew System::Windows::Forms::TextBox());
this->label38 = (gcnew System::Windows::Forms::Label());
this->textBox39 = (gcnew System::Windows::Forms::TextBox());
this->txtR41 = (gcnew System::Windows::Forms::TextBox());
this->label39 = (gcnew System::Windows::Forms::Label());
this->textBox40 = (gcnew System::Windows::Forms::TextBox());
this->txtR40 = (gcnew System::Windows::Forms::TextBox());
this->label40 = (gcnew System::Windows::Forms::Label());
this->textBox41 = (gcnew System::Windows::Forms::TextBox());
this->txtR39 = (gcnew System::Windows::Forms::TextBox());
this->label41 = (gcnew System::Windows::Forms::Label());
this->textBox42 = (gcnew System::Windows::Forms::TextBox());
this->txtR38 = (gcnew System::Windows::Forms::TextBox());
this->label42 = (gcnew System::Windows::Forms::Label());
this->textBox43 = (gcnew System::Windows::Forms::TextBox());
this->txtR37 = (gcnew System::Windows::Forms::TextBox());
this->label43 = (gcnew System::Windows::Forms::Label());
this->textBox44 = (gcnew System::Windows::Forms::TextBox());
this->txtR36 = (gcnew System::Windows::Forms::TextBox());
this->label44 = (gcnew System::Windows::Forms::Label());
this->txtR35 = (gcnew System::Windows::Forms::TextBox());
this->label45 = (gcnew System::Windows::Forms::Label());
754,15 → 710,15
this->txtLC = (gcnew System::Windows::Forms::TextBox());
this->label117 = (gcnew System::Windows::Forms::Label());
this->label116 = (gcnew System::Windows::Forms::Label());
this->textBox101 = (gcnew System::Windows::Forms::TextBox());
this->txtDBSTAT = (gcnew System::Windows::Forms::TextBox());
this->label115 = (gcnew System::Windows::Forms::Label());
this->textBox100 = (gcnew System::Windows::Forms::TextBox());
this->txtDBCTRL = (gcnew System::Windows::Forms::TextBox());
this->label114 = (gcnew System::Windows::Forms::Label());
this->textBox99 = (gcnew System::Windows::Forms::TextBox());
this->txtDBAD3 = (gcnew System::Windows::Forms::TextBox());
this->label113 = (gcnew System::Windows::Forms::Label());
this->textBox98 = (gcnew System::Windows::Forms::TextBox());
this->txtDBAD2 = (gcnew System::Windows::Forms::TextBox());
this->label112 = (gcnew System::Windows::Forms::Label());
this->textBox97 = (gcnew System::Windows::Forms::TextBox());
this->txtDBAD1 = (gcnew System::Windows::Forms::TextBox());
this->label111 = (gcnew System::Windows::Forms::Label());
this->txtDBAD0 = (gcnew System::Windows::Forms::TextBox());
this->label110 = (gcnew System::Windows::Forms::Label());
771,28 → 727,28
this->label107 = (gcnew System::Windows::Forms::Label());
this->label106 = (gcnew System::Windows::Forms::Label());
this->label105 = (gcnew System::Windows::Forms::Label());
this->textBox94 = (gcnew System::Windows::Forms::TextBox());
this->txtCsLmt = (gcnew System::Windows::Forms::TextBox());
this->txtCs = (gcnew System::Windows::Forms::TextBox());
this->label104 = (gcnew System::Windows::Forms::Label());
this->txtSSLmt = (gcnew System::Windows::Forms::TextBox());
this->txtSsLmt = (gcnew System::Windows::Forms::TextBox());
this->txtSs = (gcnew System::Windows::Forms::TextBox());
this->label103 = (gcnew System::Windows::Forms::Label());
this->textBox90 = (gcnew System::Windows::Forms::TextBox());
this->txtHsLmt = (gcnew System::Windows::Forms::TextBox());
this->txtHs = (gcnew System::Windows::Forms::TextBox());
this->label102 = (gcnew System::Windows::Forms::Label());
this->textBox88 = (gcnew System::Windows::Forms::TextBox());
this->txtGsLmt = (gcnew System::Windows::Forms::TextBox());
this->txtGs = (gcnew System::Windows::Forms::TextBox());
this->label101 = (gcnew System::Windows::Forms::Label());
this->textBox86 = (gcnew System::Windows::Forms::TextBox());
this->txtFsLmt = (gcnew System::Windows::Forms::TextBox());
this->txtFs = (gcnew System::Windows::Forms::TextBox());
this->label100 = (gcnew System::Windows::Forms::Label());
this->textBox84 = (gcnew System::Windows::Forms::TextBox());
this->txtEsLmt = (gcnew System::Windows::Forms::TextBox());
this->txtEs = (gcnew System::Windows::Forms::TextBox());
this->label99 = (gcnew System::Windows::Forms::Label());
this->textBox82 = (gcnew System::Windows::Forms::TextBox());
this->txtDsLmt = (gcnew System::Windows::Forms::TextBox());
this->txtDs = (gcnew System::Windows::Forms::TextBox());
this->label98 = (gcnew System::Windows::Forms::Label());
this->txtZSLmt = (gcnew System::Windows::Forms::TextBox());
this->txtZsLmt = (gcnew System::Windows::Forms::TextBox());
this->txtZs = (gcnew System::Windows::Forms::TextBox());
this->label97 = (gcnew System::Windows::Forms::Label());
this->txtCa15 = (gcnew System::Windows::Forms::TextBox());
859,6 → 815,16
this->label66 = (gcnew System::Windows::Forms::Label());
this->txtP0 = (gcnew System::Windows::Forms::TextBox());
this->label65 = (gcnew System::Windows::Forms::Label());
this->toolTipC12 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->toolTipC14 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->toolTipC1 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->toolTipR31 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->toolTipR30 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->toolTipR29 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->toolTipR28 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->toolTipC8 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->toolTipR0 = (gcnew System::Windows::Forms::ToolTip(this->components));
this->btnUpdate = (gcnew System::Windows::Forms::Button());
this->tabControl1->SuspendLayout();
this->tabPage1->SuspendLayout();
this->tabPage2->SuspendLayout();
868,69 → 834,69
//
this->tabControl1->Controls->Add(this->tabPage1);
this->tabControl1->Controls->Add(this->tabPage2);
this->tabControl1->Location = System::Drawing::Point(12, 12);
this->tabControl1->Location = System::Drawing::Point(12, 42);
this->tabControl1->Name = L"tabControl1";
this->tabControl1->SelectedIndex = 0;
this->tabControl1->Size = System::Drawing::Size(743, 507);
this->tabControl1->Size = System::Drawing::Size(743, 483);
this->tabControl1->TabIndex = 0;
//
// tabPage1
//
this->tabPage1->Controls->Add(this->textBox49);
this->tabPage1->Controls->Add(this->txtR63);
this->tabPage1->Controls->Add(this->label49);
this->tabPage1->Controls->Add(this->textBox50);
this->tabPage1->Controls->Add(this->txtR62);
this->tabPage1->Controls->Add(this->label50);
this->tabPage1->Controls->Add(this->textBox51);
this->tabPage1->Controls->Add(this->txtR61);
this->tabPage1->Controls->Add(this->label51);
this->tabPage1->Controls->Add(this->textBox52);
this->tabPage1->Controls->Add(this->txtR60);
this->tabPage1->Controls->Add(this->label52);
this->tabPage1->Controls->Add(this->textBox53);
this->tabPage1->Controls->Add(this->txtR59);
this->tabPage1->Controls->Add(this->label53);
this->tabPage1->Controls->Add(this->textBox54);
this->tabPage1->Controls->Add(this->txtR58);
this->tabPage1->Controls->Add(this->label54);
this->tabPage1->Controls->Add(this->textBox55);
this->tabPage1->Controls->Add(this->txtR57);
this->tabPage1->Controls->Add(this->label55);
this->tabPage1->Controls->Add(this->textBox56);
this->tabPage1->Controls->Add(this->txtR56);
this->tabPage1->Controls->Add(this->label56);
this->tabPage1->Controls->Add(this->textBox57);
this->tabPage1->Controls->Add(this->txtR55);
this->tabPage1->Controls->Add(this->label57);
this->tabPage1->Controls->Add(this->textBox58);
this->tabPage1->Controls->Add(this->txtR54);
this->tabPage1->Controls->Add(this->label58);
this->tabPage1->Controls->Add(this->textBox59);
this->tabPage1->Controls->Add(this->txtR53);
this->tabPage1->Controls->Add(this->label59);
this->tabPage1->Controls->Add(this->textBox60);
this->tabPage1->Controls->Add(this->txtR52);
this->tabPage1->Controls->Add(this->label60);
this->tabPage1->Controls->Add(this->textBox61);
this->tabPage1->Controls->Add(this->txtR51);
this->tabPage1->Controls->Add(this->label61);
this->tabPage1->Controls->Add(this->textBox62);
this->tabPage1->Controls->Add(this->txtR50);
this->tabPage1->Controls->Add(this->label62);
this->tabPage1->Controls->Add(this->textBox63);
this->tabPage1->Controls->Add(this->txtR49);
this->tabPage1->Controls->Add(this->label63);
this->tabPage1->Controls->Add(this->textBox64);
this->tabPage1->Controls->Add(this->txtR48);
this->tabPage1->Controls->Add(this->label64);
this->tabPage1->Controls->Add(this->textBox33);
this->tabPage1->Controls->Add(this->txtR47);
this->tabPage1->Controls->Add(this->label33);
this->tabPage1->Controls->Add(this->textBox34);
this->tabPage1->Controls->Add(this->txtR46);
this->tabPage1->Controls->Add(this->label34);
this->tabPage1->Controls->Add(this->textBox35);
this->tabPage1->Controls->Add(this->txtR45);
this->tabPage1->Controls->Add(this->label35);
this->tabPage1->Controls->Add(this->textBox36);
this->tabPage1->Controls->Add(this->txtR44);
this->tabPage1->Controls->Add(this->label36);
this->tabPage1->Controls->Add(this->textBox37);
this->tabPage1->Controls->Add(this->txtR43);
this->tabPage1->Controls->Add(this->label37);
this->tabPage1->Controls->Add(this->textBox38);
this->tabPage1->Controls->Add(this->txtR42);
this->tabPage1->Controls->Add(this->label38);
this->tabPage1->Controls->Add(this->textBox39);
this->tabPage1->Controls->Add(this->txtR41);
this->tabPage1->Controls->Add(this->label39);
this->tabPage1->Controls->Add(this->textBox40);
this->tabPage1->Controls->Add(this->txtR40);
this->tabPage1->Controls->Add(this->label40);
this->tabPage1->Controls->Add(this->textBox41);
this->tabPage1->Controls->Add(this->txtR39);
this->tabPage1->Controls->Add(this->label41);
this->tabPage1->Controls->Add(this->textBox42);
this->tabPage1->Controls->Add(this->txtR38);
this->tabPage1->Controls->Add(this->label42);
this->tabPage1->Controls->Add(this->textBox43);
this->tabPage1->Controls->Add(this->txtR37);
this->tabPage1->Controls->Add(this->label43);
this->tabPage1->Controls->Add(this->textBox44);
this->tabPage1->Controls->Add(this->txtR36);
this->tabPage1->Controls->Add(this->label44);
this->tabPage1->Controls->Add(this->txtR35);
this->tabPage1->Controls->Add(this->label45);
1007,482 → 973,482
this->tabPage1->Location = System::Drawing::Point(4, 22);
this->tabPage1->Name = L"tabPage1";
this->tabPage1->Padding = System::Windows::Forms::Padding(3);
this->tabPage1->Size = System::Drawing::Size(735, 481);
this->tabPage1->Size = System::Drawing::Size(735, 457);
this->tabPage1->TabIndex = 0;
this->tabPage1->Text = L"General Registers";
this->tabPage1->UseVisualStyleBackColor = true;
//
// textBox49
// txtR63
//
this->textBox49->Location = System::Drawing::Point(516, 403);
this->textBox49->Name = L"textBox49";
this->textBox49->Size = System::Drawing::Size(121, 20);
this->textBox49->TabIndex = 127;
this->textBox49->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR63->Location = System::Drawing::Point(539, 403);
this->txtR63->Name = L"txtR63";
this->txtR63->Size = System::Drawing::Size(121, 20);
this->txtR63->TabIndex = 127;
this->txtR63->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label49
//
this->label49->AutoSize = true;
this->label49->Location = System::Drawing::Point(489, 406);
this->label49->Location = System::Drawing::Point(512, 406);
this->label49->Name = L"label49";
this->label49->Size = System::Drawing::Size(27, 13);
this->label49->TabIndex = 126;
this->label49->Text = L"R63";
//
// textBox50
// txtR62
//
this->textBox50->Location = System::Drawing::Point(516, 377);
this->textBox50->Name = L"textBox50";
this->textBox50->Size = System::Drawing::Size(121, 20);
this->textBox50->TabIndex = 125;
this->textBox50->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR62->Location = System::Drawing::Point(539, 377);
this->txtR62->Name = L"txtR62";
this->txtR62->Size = System::Drawing::Size(121, 20);
this->txtR62->TabIndex = 125;
this->txtR62->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label50
//
this->label50->AutoSize = true;
this->label50->Location = System::Drawing::Point(489, 380);
this->label50->Location = System::Drawing::Point(512, 380);
this->label50->Name = L"label50";
this->label50->Size = System::Drawing::Size(27, 13);
this->label50->TabIndex = 124;
this->label50->Text = L"R62";
//
// textBox51
// txtR61
//
this->textBox51->Location = System::Drawing::Point(516, 351);
this->textBox51->Name = L"textBox51";
this->textBox51->Size = System::Drawing::Size(121, 20);
this->textBox51->TabIndex = 123;
this->textBox51->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR61->Location = System::Drawing::Point(539, 351);
this->txtR61->Name = L"txtR61";
this->txtR61->Size = System::Drawing::Size(121, 20);
this->txtR61->TabIndex = 123;
this->txtR61->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label51
//
this->label51->AutoSize = true;
this->label51->Location = System::Drawing::Point(489, 354);
this->label51->Location = System::Drawing::Point(512, 354);
this->label51->Name = L"label51";
this->label51->Size = System::Drawing::Size(27, 13);
this->label51->TabIndex = 122;
this->label51->Text = L"R61";
//
// textBox52
// txtR60
//
this->textBox52->Location = System::Drawing::Point(516, 325);
this->textBox52->Name = L"textBox52";
this->textBox52->Size = System::Drawing::Size(121, 20);
this->textBox52->TabIndex = 121;
this->textBox52->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR60->Location = System::Drawing::Point(539, 325);
this->txtR60->Name = L"txtR60";
this->txtR60->Size = System::Drawing::Size(121, 20);
this->txtR60->TabIndex = 121;
this->txtR60->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label52
//
this->label52->AutoSize = true;
this->label52->Location = System::Drawing::Point(489, 328);
this->label52->Location = System::Drawing::Point(512, 328);
this->label52->Name = L"label52";
this->label52->Size = System::Drawing::Size(27, 13);
this->label52->TabIndex = 120;
this->label52->Text = L"R60";
//
// textBox53
// txtR59
//
this->textBox53->Location = System::Drawing::Point(516, 299);
this->textBox53->Name = L"textBox53";
this->textBox53->Size = System::Drawing::Size(121, 20);
this->textBox53->TabIndex = 119;
this->textBox53->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR59->Location = System::Drawing::Point(539, 299);
this->txtR59->Name = L"txtR59";
this->txtR59->Size = System::Drawing::Size(121, 20);
this->txtR59->TabIndex = 119;
this->txtR59->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label53
//
this->label53->AutoSize = true;
this->label53->Location = System::Drawing::Point(489, 302);
this->label53->Location = System::Drawing::Point(512, 302);
this->label53->Name = L"label53";
this->label53->Size = System::Drawing::Size(27, 13);
this->label53->TabIndex = 118;
this->label53->Text = L"R59";
//
// textBox54
// txtR58
//
this->textBox54->Location = System::Drawing::Point(516, 273);
this->textBox54->Name = L"textBox54";
this->textBox54->Size = System::Drawing::Size(121, 20);
this->textBox54->TabIndex = 117;
this->textBox54->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR58->Location = System::Drawing::Point(539, 273);
this->txtR58->Name = L"txtR58";
this->txtR58->Size = System::Drawing::Size(121, 20);
this->txtR58->TabIndex = 117;
this->txtR58->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label54
//
this->label54->AutoSize = true;
this->label54->Location = System::Drawing::Point(489, 276);
this->label54->Location = System::Drawing::Point(512, 276);
this->label54->Name = L"label54";
this->label54->Size = System::Drawing::Size(27, 13);
this->label54->TabIndex = 116;
this->label54->Text = L"R58";
//
// textBox55
// txtR57
//
this->textBox55->Location = System::Drawing::Point(516, 247);
this->textBox55->Name = L"textBox55";
this->textBox55->Size = System::Drawing::Size(121, 20);
this->textBox55->TabIndex = 115;
this->textBox55->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR57->Location = System::Drawing::Point(539, 247);
this->txtR57->Name = L"txtR57";
this->txtR57->Size = System::Drawing::Size(121, 20);
this->txtR57->TabIndex = 115;
this->txtR57->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label55
//
this->label55->AutoSize = true;
this->label55->Location = System::Drawing::Point(489, 250);
this->label55->Location = System::Drawing::Point(512, 250);
this->label55->Name = L"label55";
this->label55->Size = System::Drawing::Size(27, 13);
this->label55->TabIndex = 114;
this->label55->Text = L"R57";
//
// textBox56
// txtR56
//
this->textBox56->Location = System::Drawing::Point(516, 221);
this->textBox56->Name = L"textBox56";
this->textBox56->Size = System::Drawing::Size(121, 20);
this->textBox56->TabIndex = 113;
this->textBox56->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR56->Location = System::Drawing::Point(539, 221);
this->txtR56->Name = L"txtR56";
this->txtR56->Size = System::Drawing::Size(121, 20);
this->txtR56->TabIndex = 113;
this->txtR56->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label56
//
this->label56->AutoSize = true;
this->label56->Location = System::Drawing::Point(489, 224);
this->label56->Location = System::Drawing::Point(512, 224);
this->label56->Name = L"label56";
this->label56->Size = System::Drawing::Size(27, 13);
this->label56->TabIndex = 112;
this->label56->Text = L"R56";
//
// textBox57
// txtR55
//
this->textBox57->Location = System::Drawing::Point(516, 195);
this->textBox57->Name = L"textBox57";
this->textBox57->Size = System::Drawing::Size(121, 20);
this->textBox57->TabIndex = 111;
this->textBox57->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR55->Location = System::Drawing::Point(539, 195);
this->txtR55->Name = L"txtR55";
this->txtR55->Size = System::Drawing::Size(121, 20);
this->txtR55->TabIndex = 111;
this->txtR55->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label57
//
this->label57->AutoSize = true;
this->label57->Location = System::Drawing::Point(489, 198);
this->label57->Location = System::Drawing::Point(512, 198);
this->label57->Name = L"label57";
this->label57->Size = System::Drawing::Size(27, 13);
this->label57->TabIndex = 110;
this->label57->Text = L"R55";
//
// textBox58
// txtR54
//
this->textBox58->Location = System::Drawing::Point(516, 169);
this->textBox58->Name = L"textBox58";
this->textBox58->Size = System::Drawing::Size(121, 20);
this->textBox58->TabIndex = 109;
this->textBox58->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR54->Location = System::Drawing::Point(539, 169);
this->txtR54->Name = L"txtR54";
this->txtR54->Size = System::Drawing::Size(121, 20);
this->txtR54->TabIndex = 109;
this->txtR54->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label58
//
this->label58->AutoSize = true;
this->label58->Location = System::Drawing::Point(489, 172);
this->label58->Location = System::Drawing::Point(512, 172);
this->label58->Name = L"label58";
this->label58->Size = System::Drawing::Size(27, 13);
this->label58->TabIndex = 108;
this->label58->Text = L"R54";
//
// textBox59
// txtR53
//
this->textBox59->Location = System::Drawing::Point(516, 143);
this->textBox59->Name = L"textBox59";
this->textBox59->Size = System::Drawing::Size(121, 20);
this->textBox59->TabIndex = 107;
this->textBox59->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR53->Location = System::Drawing::Point(539, 143);
this->txtR53->Name = L"txtR53";
this->txtR53->Size = System::Drawing::Size(121, 20);
this->txtR53->TabIndex = 107;
this->txtR53->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label59
//
this->label59->AutoSize = true;
this->label59->Location = System::Drawing::Point(489, 146);
this->label59->Location = System::Drawing::Point(512, 146);
this->label59->Name = L"label59";
this->label59->Size = System::Drawing::Size(27, 13);
this->label59->TabIndex = 106;
this->label59->Text = L"R53";
//
// textBox60
// txtR52
//
this->textBox60->Location = System::Drawing::Point(516, 117);
this->textBox60->Name = L"textBox60";
this->textBox60->Size = System::Drawing::Size(121, 20);
this->textBox60->TabIndex = 105;
this->textBox60->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR52->Location = System::Drawing::Point(539, 117);
this->txtR52->Name = L"txtR52";
this->txtR52->Size = System::Drawing::Size(121, 20);
this->txtR52->TabIndex = 105;
this->txtR52->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label60
//
this->label60->AutoSize = true;
this->label60->Location = System::Drawing::Point(489, 120);
this->label60->Location = System::Drawing::Point(512, 120);
this->label60->Name = L"label60";
this->label60->Size = System::Drawing::Size(27, 13);
this->label60->TabIndex = 104;
this->label60->Text = L"R52";
//
// textBox61
// txtR51
//
this->textBox61->Location = System::Drawing::Point(516, 91);
this->textBox61->Name = L"textBox61";
this->textBox61->Size = System::Drawing::Size(121, 20);
this->textBox61->TabIndex = 103;
this->textBox61->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR51->Location = System::Drawing::Point(539, 91);
this->txtR51->Name = L"txtR51";
this->txtR51->Size = System::Drawing::Size(121, 20);
this->txtR51->TabIndex = 103;
this->txtR51->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label61
//
this->label61->AutoSize = true;
this->label61->Location = System::Drawing::Point(489, 94);
this->label61->Location = System::Drawing::Point(512, 94);
this->label61->Name = L"label61";
this->label61->Size = System::Drawing::Size(27, 13);
this->label61->TabIndex = 102;
this->label61->Text = L"R51";
//
// textBox62
// txtR50
//
this->textBox62->Location = System::Drawing::Point(516, 65);
this->textBox62->Name = L"textBox62";
this->textBox62->Size = System::Drawing::Size(121, 20);
this->textBox62->TabIndex = 101;
this->textBox62->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR50->Location = System::Drawing::Point(539, 65);
this->txtR50->Name = L"txtR50";
this->txtR50->Size = System::Drawing::Size(121, 20);
this->txtR50->TabIndex = 101;
this->txtR50->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label62
//
this->label62->AutoSize = true;
this->label62->Location = System::Drawing::Point(489, 68);
this->label62->Location = System::Drawing::Point(512, 68);
this->label62->Name = L"label62";
this->label62->Size = System::Drawing::Size(27, 13);
this->label62->TabIndex = 100;
this->label62->Text = L"R50";
//
// textBox63
// txtR49
//
this->textBox63->Location = System::Drawing::Point(516, 39);
this->textBox63->Name = L"textBox63";
this->textBox63->Size = System::Drawing::Size(121, 20);
this->textBox63->TabIndex = 99;
this->textBox63->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR49->Location = System::Drawing::Point(539, 39);
this->txtR49->Name = L"txtR49";
this->txtR49->Size = System::Drawing::Size(121, 20);
this->txtR49->TabIndex = 99;
this->txtR49->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label63
//
this->label63->AutoSize = true;
this->label63->Location = System::Drawing::Point(489, 42);
this->label63->Location = System::Drawing::Point(512, 42);
this->label63->Name = L"label63";
this->label63->Size = System::Drawing::Size(27, 13);
this->label63->TabIndex = 98;
this->label63->Text = L"R49";
//
// textBox64
// txtR48
//
this->textBox64->Location = System::Drawing::Point(516, 13);
this->textBox64->Name = L"textBox64";
this->textBox64->Size = System::Drawing::Size(121, 20);
this->textBox64->TabIndex = 97;
this->textBox64->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR48->Location = System::Drawing::Point(539, 13);
this->txtR48->Name = L"txtR48";
this->txtR48->Size = System::Drawing::Size(121, 20);
this->txtR48->TabIndex = 97;
this->txtR48->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label64
//
this->label64->AutoSize = true;
this->label64->Location = System::Drawing::Point(489, 16);
this->label64->Location = System::Drawing::Point(512, 16);
this->label64->Name = L"label64";
this->label64->Size = System::Drawing::Size(27, 13);
this->label64->TabIndex = 96;
this->label64->Text = L"R48";
//
// textBox33
// txtR47
//
this->textBox33->Location = System::Drawing::Point(354, 403);
this->textBox33->Name = L"textBox33";
this->textBox33->Size = System::Drawing::Size(121, 20);
this->textBox33->TabIndex = 95;
this->textBox33->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR47->Location = System::Drawing::Point(377, 403);
this->txtR47->Name = L"txtR47";
this->txtR47->Size = System::Drawing::Size(121, 20);
this->txtR47->TabIndex = 95;
this->txtR47->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label33
//
this->label33->AutoSize = true;
this->label33->Location = System::Drawing::Point(327, 406);
this->label33->Location = System::Drawing::Point(350, 406);
this->label33->Name = L"label33";
this->label33->Size = System::Drawing::Size(27, 13);
this->label33->TabIndex = 94;
this->label33->Text = L"R47";
//
// textBox34
// txtR46
//
this->textBox34->Location = System::Drawing::Point(354, 377);
this->textBox34->Name = L"textBox34";
this->textBox34->Size = System::Drawing::Size(121, 20);
this->textBox34->TabIndex = 93;
this->textBox34->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR46->Location = System::Drawing::Point(377, 377);
this->txtR46->Name = L"txtR46";
this->txtR46->Size = System::Drawing::Size(121, 20);
this->txtR46->TabIndex = 93;
this->txtR46->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label34
//
this->label34->AutoSize = true;
this->label34->Location = System::Drawing::Point(327, 380);
this->label34->Location = System::Drawing::Point(350, 380);
this->label34->Name = L"label34";
this->label34->Size = System::Drawing::Size(27, 13);
this->label34->TabIndex = 92;
this->label34->Text = L"R46";
//
// textBox35
// txtR45
//
this->textBox35->Location = System::Drawing::Point(354, 351);
this->textBox35->Name = L"textBox35";
this->textBox35->Size = System::Drawing::Size(121, 20);
this->textBox35->TabIndex = 91;
this->textBox35->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR45->Location = System::Drawing::Point(377, 351);
this->txtR45->Name = L"txtR45";
this->txtR45->Size = System::Drawing::Size(121, 20);
this->txtR45->TabIndex = 91;
this->txtR45->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label35
//
this->label35->AutoSize = true;
this->label35->Location = System::Drawing::Point(327, 354);
this->label35->Location = System::Drawing::Point(350, 354);
this->label35->Name = L"label35";
this->label35->Size = System::Drawing::Size(27, 13);
this->label35->TabIndex = 90;
this->label35->Text = L"R45";
//
// textBox36
// txtR44
//
this->textBox36->Location = System::Drawing::Point(354, 325);
this->textBox36->Name = L"textBox36";
this->textBox36->Size = System::Drawing::Size(121, 20);
this->textBox36->TabIndex = 89;
this->textBox36->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR44->Location = System::Drawing::Point(377, 325);
this->txtR44->Name = L"txtR44";
this->txtR44->Size = System::Drawing::Size(121, 20);
this->txtR44->TabIndex = 89;
this->txtR44->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label36
//
this->label36->AutoSize = true;
this->label36->Location = System::Drawing::Point(327, 328);
this->label36->Location = System::Drawing::Point(350, 328);
this->label36->Name = L"label36";
this->label36->Size = System::Drawing::Size(27, 13);
this->label36->TabIndex = 88;
this->label36->Text = L"R44";
//
// textBox37
// txtR43
//
this->textBox37->Location = System::Drawing::Point(354, 299);
this->textBox37->Name = L"textBox37";
this->textBox37->Size = System::Drawing::Size(121, 20);
this->textBox37->TabIndex = 87;
this->textBox37->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR43->Location = System::Drawing::Point(377, 299);
this->txtR43->Name = L"txtR43";
this->txtR43->Size = System::Drawing::Size(121, 20);
this->txtR43->TabIndex = 87;
this->txtR43->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label37
//
this->label37->AutoSize = true;
this->label37->Location = System::Drawing::Point(327, 302);
this->label37->Location = System::Drawing::Point(350, 302);
this->label37->Name = L"label37";
this->label37->Size = System::Drawing::Size(27, 13);
this->label37->TabIndex = 86;
this->label37->Text = L"R43";
//
// textBox38
// txtR42
//
this->textBox38->Location = System::Drawing::Point(354, 273);
this->textBox38->Name = L"textBox38";
this->textBox38->Size = System::Drawing::Size(121, 20);
this->textBox38->TabIndex = 85;
this->textBox38->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR42->Location = System::Drawing::Point(377, 273);
this->txtR42->Name = L"txtR42";
this->txtR42->Size = System::Drawing::Size(121, 20);
this->txtR42->TabIndex = 85;
this->txtR42->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label38
//
this->label38->AutoSize = true;
this->label38->Location = System::Drawing::Point(327, 276);
this->label38->Location = System::Drawing::Point(350, 276);
this->label38->Name = L"label38";
this->label38->Size = System::Drawing::Size(27, 13);
this->label38->TabIndex = 84;
this->label38->Text = L"R42";
//
// textBox39
// txtR41
//
this->textBox39->Location = System::Drawing::Point(354, 247);
this->textBox39->Name = L"textBox39";
this->textBox39->Size = System::Drawing::Size(121, 20);
this->textBox39->TabIndex = 83;
this->textBox39->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR41->Location = System::Drawing::Point(377, 247);
this->txtR41->Name = L"txtR41";
this->txtR41->Size = System::Drawing::Size(121, 20);
this->txtR41->TabIndex = 83;
this->txtR41->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label39
//
this->label39->AutoSize = true;
this->label39->Location = System::Drawing::Point(327, 250);
this->label39->Location = System::Drawing::Point(350, 250);
this->label39->Name = L"label39";
this->label39->Size = System::Drawing::Size(27, 13);
this->label39->TabIndex = 82;
this->label39->Text = L"R41";
//
// textBox40
// txtR40
//
this->textBox40->Location = System::Drawing::Point(354, 221);
this->textBox40->Name = L"textBox40";
this->textBox40->Size = System::Drawing::Size(121, 20);
this->textBox40->TabIndex = 81;
this->textBox40->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR40->Location = System::Drawing::Point(377, 221);
this->txtR40->Name = L"txtR40";
this->txtR40->Size = System::Drawing::Size(121, 20);
this->txtR40->TabIndex = 81;
this->txtR40->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label40
//
this->label40->AutoSize = true;
this->label40->Location = System::Drawing::Point(327, 224);
this->label40->Location = System::Drawing::Point(350, 224);
this->label40->Name = L"label40";
this->label40->Size = System::Drawing::Size(27, 13);
this->label40->TabIndex = 80;
this->label40->Text = L"R40";
//
// textBox41
// txtR39
//
this->textBox41->Location = System::Drawing::Point(354, 195);
this->textBox41->Name = L"textBox41";
this->textBox41->Size = System::Drawing::Size(121, 20);
this->textBox41->TabIndex = 79;
this->textBox41->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR39->Location = System::Drawing::Point(377, 195);
this->txtR39->Name = L"txtR39";
this->txtR39->Size = System::Drawing::Size(121, 20);
this->txtR39->TabIndex = 79;
this->txtR39->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label41
//
this->label41->AutoSize = true;
this->label41->Location = System::Drawing::Point(327, 198);
this->label41->Location = System::Drawing::Point(350, 198);
this->label41->Name = L"label41";
this->label41->Size = System::Drawing::Size(27, 13);
this->label41->TabIndex = 78;
this->label41->Text = L"R39";
//
// textBox42
// txtR38
//
this->textBox42->Location = System::Drawing::Point(354, 169);
this->textBox42->Name = L"textBox42";
this->textBox42->Size = System::Drawing::Size(121, 20);
this->textBox42->TabIndex = 77;
this->textBox42->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR38->Location = System::Drawing::Point(377, 169);
this->txtR38->Name = L"txtR38";
this->txtR38->Size = System::Drawing::Size(121, 20);
this->txtR38->TabIndex = 77;
this->txtR38->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label42
//
this->label42->AutoSize = true;
this->label42->Location = System::Drawing::Point(327, 172);
this->label42->Location = System::Drawing::Point(350, 172);
this->label42->Name = L"label42";
this->label42->Size = System::Drawing::Size(27, 13);
this->label42->TabIndex = 76;
this->label42->Text = L"R38";
//
// textBox43
// txtR37
//
this->textBox43->Location = System::Drawing::Point(354, 143);
this->textBox43->Name = L"textBox43";
this->textBox43->Size = System::Drawing::Size(121, 20);
this->textBox43->TabIndex = 75;
this->textBox43->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR37->Location = System::Drawing::Point(377, 143);
this->txtR37->Name = L"txtR37";
this->txtR37->Size = System::Drawing::Size(121, 20);
this->txtR37->TabIndex = 75;
this->txtR37->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label43
//
this->label43->AutoSize = true;
this->label43->Location = System::Drawing::Point(327, 146);
this->label43->Location = System::Drawing::Point(350, 146);
this->label43->Name = L"label43";
this->label43->Size = System::Drawing::Size(27, 13);
this->label43->TabIndex = 74;
this->label43->Text = L"R37";
//
// textBox44
// txtR36
//
this->textBox44->Location = System::Drawing::Point(354, 117);
this->textBox44->Name = L"textBox44";
this->textBox44->Size = System::Drawing::Size(121, 20);
this->textBox44->TabIndex = 73;
this->textBox44->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtR36->Location = System::Drawing::Point(377, 117);
this->txtR36->Name = L"txtR36";
this->txtR36->Size = System::Drawing::Size(121, 20);
this->txtR36->TabIndex = 73;
this->txtR36->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label44
//
this->label44->AutoSize = true;
this->label44->Location = System::Drawing::Point(327, 120);
this->label44->Location = System::Drawing::Point(350, 120);
this->label44->Name = L"label44";
this->label44->Size = System::Drawing::Size(27, 13);
this->label44->TabIndex = 72;
1490,7 → 1456,7
//
// txtR35
//
this->txtR35->Location = System::Drawing::Point(354, 91);
this->txtR35->Location = System::Drawing::Point(377, 91);
this->txtR35->Name = L"txtR35";
this->txtR35->Size = System::Drawing::Size(121, 20);
this->txtR35->TabIndex = 71;
1499,7 → 1465,7
// label45
//
this->label45->AutoSize = true;
this->label45->Location = System::Drawing::Point(327, 94);
this->label45->Location = System::Drawing::Point(350, 94);
this->label45->Name = L"label45";
this->label45->Size = System::Drawing::Size(27, 13);
this->label45->TabIndex = 70;
1507,7 → 1473,7
//
// txtR34
//
this->txtR34->Location = System::Drawing::Point(354, 65);
this->txtR34->Location = System::Drawing::Point(377, 65);
this->txtR34->Name = L"txtR34";
this->txtR34->Size = System::Drawing::Size(121, 20);
this->txtR34->TabIndex = 69;
1516,7 → 1482,7
// label46
//
this->label46->AutoSize = true;
this->label46->Location = System::Drawing::Point(327, 68);
this->label46->Location = System::Drawing::Point(350, 68);
this->label46->Name = L"label46";
this->label46->Size = System::Drawing::Size(27, 13);
this->label46->TabIndex = 68;
1524,7 → 1490,7
//
// txtR33
//
this->txtR33->Location = System::Drawing::Point(354, 39);
this->txtR33->Location = System::Drawing::Point(377, 39);
this->txtR33->Name = L"txtR33";
this->txtR33->Size = System::Drawing::Size(121, 20);
this->txtR33->TabIndex = 67;
1533,7 → 1499,7
// label47
//
this->label47->AutoSize = true;
this->label47->Location = System::Drawing::Point(327, 42);
this->label47->Location = System::Drawing::Point(350, 42);
this->label47->Name = L"label47";
this->label47->Size = System::Drawing::Size(27, 13);
this->label47->TabIndex = 66;
1541,7 → 1507,7
//
// txtR32
//
this->txtR32->Location = System::Drawing::Point(354, 13);
this->txtR32->Location = System::Drawing::Point(377, 13);
this->txtR32->Name = L"txtR32";
this->txtR32->Size = System::Drawing::Size(121, 20);
this->txtR32->TabIndex = 65;
1550,7 → 1516,7
// label48
//
this->label48->AutoSize = true;
this->label48->Location = System::Drawing::Point(327, 16);
this->label48->Location = System::Drawing::Point(350, 16);
this->label48->Name = L"label48";
this->label48->Size = System::Drawing::Size(27, 13);
this->label48->TabIndex = 64;
1558,7 → 1524,7
//
// txtR31
//
this->txtR31->Location = System::Drawing::Point(192, 403);
this->txtR31->Location = System::Drawing::Point(215, 403);
this->txtR31->Name = L"txtR31";
this->txtR31->Size = System::Drawing::Size(121, 20);
this->txtR31->TabIndex = 63;
1567,15 → 1533,15
// label17
//
this->label17->AutoSize = true;
this->label17->Location = System::Drawing::Point(165, 406);
this->label17->Location = System::Drawing::Point(162, 406);
this->label17->Name = L"label17";
this->label17->Size = System::Drawing::Size(27, 13);
this->label17->Size = System::Drawing::Size(53, 13);
this->label17->TabIndex = 62;
this->label17->Text = L"R31";
this->label17->Text = L"TR / R31";
//
// txtR30
//
this->txtR30->Location = System::Drawing::Point(192, 377);
this->txtR30->Location = System::Drawing::Point(215, 377);
this->txtR30->Name = L"txtR30";
this->txtR30->Size = System::Drawing::Size(121, 20);
this->txtR30->TabIndex = 61;
1584,15 → 1550,15
// label18
//
this->label18->AutoSize = true;
this->label18->Location = System::Drawing::Point(165, 380);
this->label18->Location = System::Drawing::Point(155, 380);
this->label18->Name = L"label18";
this->label18->Size = System::Drawing::Size(27, 13);
this->label18->Size = System::Drawing::Size(60, 13);
this->label18->TabIndex = 60;
this->label18->Text = L"R30";
this->label18->Text = L"DSP / R30";
//
// txtR29
//
this->txtR29->Location = System::Drawing::Point(192, 351);
this->txtR29->Location = System::Drawing::Point(215, 351);
this->txtR29->Name = L"txtR29";
this->txtR29->Size = System::Drawing::Size(121, 20);
this->txtR29->TabIndex = 59;
1601,15 → 1567,15
// label19
//
this->label19->AutoSize = true;
this->label19->Location = System::Drawing::Point(165, 354);
this->label19->Location = System::Drawing::Point(157, 354);
this->label19->Name = L"label19";
this->label19->Size = System::Drawing::Size(27, 13);
this->label19->Size = System::Drawing::Size(59, 13);
this->label19->TabIndex = 58;
this->label19->Text = L"R29";
this->label19->Text = L"ESP / R29";
//
// txtR28
//
this->txtR28->Location = System::Drawing::Point(192, 325);
this->txtR28->Location = System::Drawing::Point(215, 325);
this->txtR28->Name = L"txtR28";
this->txtR28->Size = System::Drawing::Size(121, 20);
this->txtR28->TabIndex = 57;
1618,15 → 1584,15
// label20
//
this->label20->AutoSize = true;
this->label20->Location = System::Drawing::Point(165, 328);
this->label20->Location = System::Drawing::Point(160, 328);
this->label20->Name = L"label20";
this->label20->Size = System::Drawing::Size(27, 13);
this->label20->Size = System::Drawing::Size(55, 13);
this->label20->TabIndex = 56;
this->label20->Text = L"R28";
this->label20->Text = L"ISP / R28";
//
// txtR27
//
this->txtR27->Location = System::Drawing::Point(192, 299);
this->txtR27->Location = System::Drawing::Point(215, 299);
this->txtR27->Name = L"txtR27";
this->txtR27->Size = System::Drawing::Size(121, 20);
this->txtR27->TabIndex = 55;
1635,15 → 1601,15
// label21
//
this->label21->AutoSize = true;
this->label21->Location = System::Drawing::Point(165, 302);
this->label21->Location = System::Drawing::Point(163, 302);
this->label21->Name = L"label21";
this->label21->Size = System::Drawing::Size(27, 13);
this->label21->Size = System::Drawing::Size(52, 13);
this->label21->TabIndex = 54;
this->label21->Text = L"R27";
this->label21->Text = L"SP / R27";
//
// txtR26
//
this->txtR26->Location = System::Drawing::Point(192, 273);
this->txtR26->Location = System::Drawing::Point(215, 273);
this->txtR26->Name = L"txtR26";
this->txtR26->Size = System::Drawing::Size(121, 20);
this->txtR26->TabIndex = 53;
1652,15 → 1618,15
// label22
//
this->label22->AutoSize = true;
this->label22->Location = System::Drawing::Point(165, 276);
this->label22->Location = System::Drawing::Point(163, 276);
this->label22->Name = L"label22";
this->label22->Size = System::Drawing::Size(27, 13);
this->label22->Size = System::Drawing::Size(52, 13);
this->label22->TabIndex = 52;
this->label22->Text = L"R26";
this->label22->Text = L"BP / R26";
//
// txtR25
//
this->txtR25->Location = System::Drawing::Point(192, 247);
this->txtR25->Location = System::Drawing::Point(215, 247);
this->txtR25->Name = L"txtR25";
this->txtR25->Size = System::Drawing::Size(121, 20);
this->txtR25->TabIndex = 51;
1669,15 → 1635,15
// label23
//
this->label23->AutoSize = true;
this->label23->Location = System::Drawing::Point(165, 250);
this->label23->Location = System::Drawing::Point(163, 250);
this->label23->Name = L"label23";
this->label23->Size = System::Drawing::Size(27, 13);
this->label23->Size = System::Drawing::Size(53, 13);
this->label23->TabIndex = 50;
this->label23->Text = L"R25";
this->label23->Text = L"GP / R25";
//
// txtR24
//
this->txtR24->Location = System::Drawing::Point(192, 221);
this->txtR24->Location = System::Drawing::Point(215, 221);
this->txtR24->Name = L"txtR24";
this->txtR24->Size = System::Drawing::Size(121, 20);
this->txtR24->TabIndex = 49;
1686,7 → 1652,7
// label24
//
this->label24->AutoSize = true;
this->label24->Location = System::Drawing::Point(165, 224);
this->label24->Location = System::Drawing::Point(188, 224);
this->label24->Name = L"label24";
this->label24->Size = System::Drawing::Size(27, 13);
this->label24->TabIndex = 48;
1694,7 → 1660,7
//
// txtR23
//
this->txtR23->Location = System::Drawing::Point(192, 195);
this->txtR23->Location = System::Drawing::Point(215, 195);
this->txtR23->Name = L"txtR23";
this->txtR23->Size = System::Drawing::Size(121, 20);
this->txtR23->TabIndex = 47;
1703,7 → 1669,7
// label25
//
this->label25->AutoSize = true;
this->label25->Location = System::Drawing::Point(165, 198);
this->label25->Location = System::Drawing::Point(188, 198);
this->label25->Name = L"label25";
this->label25->Size = System::Drawing::Size(27, 13);
this->label25->TabIndex = 46;
1711,7 → 1677,7
//
// txtR22
//
this->txtR22->Location = System::Drawing::Point(192, 169);
this->txtR22->Location = System::Drawing::Point(215, 169);
this->txtR22->Name = L"txtR22";
this->txtR22->Size = System::Drawing::Size(121, 20);
this->txtR22->TabIndex = 45;
1720,7 → 1686,7
// label26
//
this->label26->AutoSize = true;
this->label26->Location = System::Drawing::Point(165, 172);
this->label26->Location = System::Drawing::Point(188, 172);
this->label26->Name = L"label26";
this->label26->Size = System::Drawing::Size(27, 13);
this->label26->TabIndex = 44;
1728,7 → 1694,7
//
// txtR21
//
this->txtR21->Location = System::Drawing::Point(192, 143);
this->txtR21->Location = System::Drawing::Point(215, 143);
this->txtR21->Name = L"txtR21";
this->txtR21->Size = System::Drawing::Size(121, 20);
this->txtR21->TabIndex = 43;
1737,7 → 1703,7
// label27
//
this->label27->AutoSize = true;
this->label27->Location = System::Drawing::Point(165, 146);
this->label27->Location = System::Drawing::Point(188, 146);
this->label27->Name = L"label27";
this->label27->Size = System::Drawing::Size(27, 13);
this->label27->TabIndex = 42;
1745,7 → 1711,7
//
// txtR20
//
this->txtR20->Location = System::Drawing::Point(192, 117);
this->txtR20->Location = System::Drawing::Point(215, 117);
this->txtR20->Name = L"txtR20";
this->txtR20->Size = System::Drawing::Size(121, 20);
this->txtR20->TabIndex = 41;
1754,7 → 1720,7
// label28
//
this->label28->AutoSize = true;
this->label28->Location = System::Drawing::Point(165, 120);
this->label28->Location = System::Drawing::Point(188, 120);
this->label28->Name = L"label28";
this->label28->Size = System::Drawing::Size(27, 13);
this->label28->TabIndex = 40;
1762,7 → 1728,7
//
// txtR19
//
this->txtR19->Location = System::Drawing::Point(192, 91);
this->txtR19->Location = System::Drawing::Point(215, 91);
this->txtR19->Name = L"txtR19";
this->txtR19->Size = System::Drawing::Size(121, 20);
this->txtR19->TabIndex = 39;
1771,7 → 1737,7
// label29
//
this->label29->AutoSize = true;
this->label29->Location = System::Drawing::Point(165, 94);
this->label29->Location = System::Drawing::Point(188, 94);
this->label29->Name = L"label29";
this->label29->Size = System::Drawing::Size(27, 13);
this->label29->TabIndex = 38;
1779,7 → 1745,7
//
// txtR18
//
this->txtR18->Location = System::Drawing::Point(192, 65);
this->txtR18->Location = System::Drawing::Point(215, 65);
this->txtR18->Name = L"txtR18";
this->txtR18->Size = System::Drawing::Size(121, 20);
this->txtR18->TabIndex = 37;
1788,7 → 1754,7
// label30
//
this->label30->AutoSize = true;
this->label30->Location = System::Drawing::Point(165, 68);
this->label30->Location = System::Drawing::Point(188, 68);
this->label30->Name = L"label30";
this->label30->Size = System::Drawing::Size(27, 13);
this->label30->TabIndex = 36;
1796,7 → 1762,7
//
// txtR17
//
this->txtR17->Location = System::Drawing::Point(192, 39);
this->txtR17->Location = System::Drawing::Point(215, 39);
this->txtR17->Name = L"txtR17";
this->txtR17->Size = System::Drawing::Size(121, 20);
this->txtR17->TabIndex = 35;
1805,7 → 1771,7
// label31
//
this->label31->AutoSize = true;
this->label31->Location = System::Drawing::Point(165, 42);
this->label31->Location = System::Drawing::Point(188, 42);
this->label31->Name = L"label31";
this->label31->Size = System::Drawing::Size(27, 13);
this->label31->TabIndex = 34;
1813,7 → 1779,7
//
// txtR16
//
this->txtR16->Location = System::Drawing::Point(192, 13);
this->txtR16->Location = System::Drawing::Point(215, 13);
this->txtR16->Name = L"txtR16";
this->txtR16->Size = System::Drawing::Size(121, 20);
this->txtR16->TabIndex = 33;
1822,7 → 1788,7
// label32
//
this->label32->AutoSize = true;
this->label32->Location = System::Drawing::Point(165, 16);
this->label32->Location = System::Drawing::Point(188, 16);
this->label32->Name = L"label32";
this->label32->Size = System::Drawing::Size(27, 13);
this->label32->TabIndex = 32;
2111,15 → 2077,15
this->tabPage2->Controls->Add(this->txtLC);
this->tabPage2->Controls->Add(this->label117);
this->tabPage2->Controls->Add(this->label116);
this->tabPage2->Controls->Add(this->textBox101);
this->tabPage2->Controls->Add(this->txtDBSTAT);
this->tabPage2->Controls->Add(this->label115);
this->tabPage2->Controls->Add(this->textBox100);
this->tabPage2->Controls->Add(this->txtDBCTRL);
this->tabPage2->Controls->Add(this->label114);
this->tabPage2->Controls->Add(this->textBox99);
this->tabPage2->Controls->Add(this->txtDBAD3);
this->tabPage2->Controls->Add(this->label113);
this->tabPage2->Controls->Add(this->textBox98);
this->tabPage2->Controls->Add(this->txtDBAD2);
this->tabPage2->Controls->Add(this->label112);
this->tabPage2->Controls->Add(this->textBox97);
this->tabPage2->Controls->Add(this->txtDBAD1);
this->tabPage2->Controls->Add(this->label111);
this->tabPage2->Controls->Add(this->txtDBAD0);
this->tabPage2->Controls->Add(this->label110);
2128,28 → 2094,28
this->tabPage2->Controls->Add(this->label107);
this->tabPage2->Controls->Add(this->label106);
this->tabPage2->Controls->Add(this->label105);
this->tabPage2->Controls->Add(this->textBox94);
this->tabPage2->Controls->Add(this->txtCsLmt);
this->tabPage2->Controls->Add(this->txtCs);
this->tabPage2->Controls->Add(this->label104);
this->tabPage2->Controls->Add(this->txtSSLmt);
this->tabPage2->Controls->Add(this->txtSsLmt);
this->tabPage2->Controls->Add(this->txtSs);
this->tabPage2->Controls->Add(this->label103);
this->tabPage2->Controls->Add(this->textBox90);
this->tabPage2->Controls->Add(this->txtHsLmt);
this->tabPage2->Controls->Add(this->txtHs);
this->tabPage2->Controls->Add(this->label102);
this->tabPage2->Controls->Add(this->textBox88);
this->tabPage2->Controls->Add(this->txtGsLmt);
this->tabPage2->Controls->Add(this->txtGs);
this->tabPage2->Controls->Add(this->label101);
this->tabPage2->Controls->Add(this->textBox86);
this->tabPage2->Controls->Add(this->txtFsLmt);
this->tabPage2->Controls->Add(this->txtFs);
this->tabPage2->Controls->Add(this->label100);
this->tabPage2->Controls->Add(this->textBox84);
this->tabPage2->Controls->Add(this->txtEsLmt);
this->tabPage2->Controls->Add(this->txtEs);
this->tabPage2->Controls->Add(this->label99);
this->tabPage2->Controls->Add(this->textBox82);
this->tabPage2->Controls->Add(this->txtDsLmt);
this->tabPage2->Controls->Add(this->txtDs);
this->tabPage2->Controls->Add(this->label98);
this->tabPage2->Controls->Add(this->txtZSLmt);
this->tabPage2->Controls->Add(this->txtZsLmt);
this->tabPage2->Controls->Add(this->txtZs);
this->tabPage2->Controls->Add(this->label97);
this->tabPage2->Controls->Add(this->txtCa15);
2219,7 → 2185,7
this->tabPage2->Location = System::Drawing::Point(4, 22);
this->tabPage2->Name = L"tabPage2";
this->tabPage2->Padding = System::Windows::Forms::Padding(3);
this->tabPage2->Size = System::Drawing::Size(735, 481);
this->tabPage2->Size = System::Drawing::Size(735, 457);
this->tabPage2->TabIndex = 1;
this->tabPage2->Text = L"Other";
this->tabPage2->UseVisualStyleBackColor = true;
2268,13 → 2234,13
this->label116->TabIndex = 103;
this->label116->Text = L"Debug Registers";
//
// textBox101
// txtDBSTAT
//
this->textBox101->Location = System::Drawing::Point(353, 426);
this->textBox101->Name = L"textBox101";
this->textBox101->Size = System::Drawing::Size(118, 20);
this->textBox101->TabIndex = 102;
this->textBox101->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtDBSTAT->Location = System::Drawing::Point(353, 426);
this->txtDBSTAT->Name = L"txtDBSTAT";
this->txtDBSTAT->Size = System::Drawing::Size(118, 20);
this->txtDBSTAT->TabIndex = 102;
this->txtDBSTAT->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label115
//
2285,13 → 2251,13
this->label115->TabIndex = 101;
this->label115->Text = L"DBSTAT";
//
// textBox100
// txtDBCTRL
//
this->textBox100->Location = System::Drawing::Point(353, 400);
this->textBox100->Name = L"textBox100";
this->textBox100->Size = System::Drawing::Size(118, 20);
this->textBox100->TabIndex = 100;
this->textBox100->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtDBCTRL->Location = System::Drawing::Point(353, 400);
this->txtDBCTRL->Name = L"txtDBCTRL";
this->txtDBCTRL->Size = System::Drawing::Size(118, 20);
this->txtDBCTRL->TabIndex = 100;
this->txtDBCTRL->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label114
//
2302,13 → 2268,13
this->label114->TabIndex = 99;
this->label114->Text = L"DBCTRL";
//
// textBox99
// txtDBAD3
//
this->textBox99->Location = System::Drawing::Point(353, 374);
this->textBox99->Name = L"textBox99";
this->textBox99->Size = System::Drawing::Size(118, 20);
this->textBox99->TabIndex = 98;
this->textBox99->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtDBAD3->Location = System::Drawing::Point(353, 374);
this->txtDBAD3->Name = L"txtDBAD3";
this->txtDBAD3->Size = System::Drawing::Size(118, 20);
this->txtDBAD3->TabIndex = 98;
this->txtDBAD3->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label113
//
2319,13 → 2285,13
this->label113->TabIndex = 97;
this->label113->Text = L"DBAD3";
//
// textBox98
// txtDBAD2
//
this->textBox98->Location = System::Drawing::Point(353, 348);
this->textBox98->Name = L"textBox98";
this->textBox98->Size = System::Drawing::Size(118, 20);
this->textBox98->TabIndex = 96;
this->textBox98->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtDBAD2->Location = System::Drawing::Point(353, 348);
this->txtDBAD2->Name = L"txtDBAD2";
this->txtDBAD2->Size = System::Drawing::Size(118, 20);
this->txtDBAD2->TabIndex = 96;
this->txtDBAD2->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label112
//
2336,13 → 2302,13
this->label112->TabIndex = 95;
this->label112->Text = L"DBAD2";
//
// textBox97
// txtDBAD1
//
this->textBox97->Location = System::Drawing::Point(353, 322);
this->textBox97->Name = L"textBox97";
this->textBox97->Size = System::Drawing::Size(118, 20);
this->textBox97->TabIndex = 94;
this->textBox97->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtDBAD1->Location = System::Drawing::Point(353, 322);
this->txtDBAD1->Name = L"txtDBAD1";
this->txtDBAD1->Size = System::Drawing::Size(118, 20);
this->txtDBAD1->TabIndex = 94;
this->txtDBAD1->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// label111
//
2415,13 → 2381,13
this->label105->TabIndex = 86;
this->label105->Text = L"Base";
//
// textBox94
// txtCsLmt
//
this->textBox94->Location = System::Drawing::Point(471, 244);
this->textBox94->Name = L"textBox94";
this->textBox94->Size = System::Drawing::Size(118, 20);
this->textBox94->TabIndex = 85;
this->textBox94->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtCsLmt->Location = System::Drawing::Point(471, 244);
this->txtCsLmt->Name = L"txtCsLmt";
this->txtCsLmt->Size = System::Drawing::Size(118, 20);
this->txtCsLmt->TabIndex = 85;
this->txtCsLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtCs
//
2440,13 → 2406,13
this->label104->TabIndex = 83;
this->label104->Text = L"CS";
//
// txtSSLmt
// txtSsLmt
//
this->txtSSLmt->Location = System::Drawing::Point(471, 218);
this->txtSSLmt->Name = L"txtSSLmt";
this->txtSSLmt->Size = System::Drawing::Size(118, 20);
this->txtSSLmt->TabIndex = 82;
this->txtSSLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtSsLmt->Location = System::Drawing::Point(471, 218);
this->txtSsLmt->Name = L"txtSsLmt";
this->txtSsLmt->Size = System::Drawing::Size(118, 20);
this->txtSsLmt->TabIndex = 82;
this->txtSsLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtSs
//
2465,13 → 2431,13
this->label103->TabIndex = 80;
this->label103->Text = L"SS";
//
// textBox90
// txtHsLmt
//
this->textBox90->Location = System::Drawing::Point(471, 192);
this->textBox90->Name = L"textBox90";
this->textBox90->Size = System::Drawing::Size(118, 20);
this->textBox90->TabIndex = 79;
this->textBox90->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtHsLmt->Location = System::Drawing::Point(471, 192);
this->txtHsLmt->Name = L"txtHsLmt";
this->txtHsLmt->Size = System::Drawing::Size(118, 20);
this->txtHsLmt->TabIndex = 79;
this->txtHsLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtHs
//
2490,13 → 2456,13
this->label102->TabIndex = 77;
this->label102->Text = L"HS";
//
// textBox88
// txtGsLmt
//
this->textBox88->Location = System::Drawing::Point(471, 166);
this->textBox88->Name = L"textBox88";
this->textBox88->Size = System::Drawing::Size(118, 20);
this->textBox88->TabIndex = 76;
this->textBox88->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtGsLmt->Location = System::Drawing::Point(471, 166);
this->txtGsLmt->Name = L"txtGsLmt";
this->txtGsLmt->Size = System::Drawing::Size(118, 20);
this->txtGsLmt->TabIndex = 76;
this->txtGsLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtGs
//
2515,13 → 2481,13
this->label101->TabIndex = 74;
this->label101->Text = L"GS";
//
// textBox86
// txtFsLmt
//
this->textBox86->Location = System::Drawing::Point(471, 140);
this->textBox86->Name = L"textBox86";
this->textBox86->Size = System::Drawing::Size(118, 20);
this->textBox86->TabIndex = 73;
this->textBox86->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtFsLmt->Location = System::Drawing::Point(471, 140);
this->txtFsLmt->Name = L"txtFsLmt";
this->txtFsLmt->Size = System::Drawing::Size(118, 20);
this->txtFsLmt->TabIndex = 73;
this->txtFsLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtFs
//
2540,13 → 2506,13
this->label100->TabIndex = 71;
this->label100->Text = L"FS";
//
// textBox84
// txtEsLmt
//
this->textBox84->Location = System::Drawing::Point(471, 114);
this->textBox84->Name = L"textBox84";
this->textBox84->Size = System::Drawing::Size(118, 20);
this->textBox84->TabIndex = 70;
this->textBox84->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtEsLmt->Location = System::Drawing::Point(471, 114);
this->txtEsLmt->Name = L"txtEsLmt";
this->txtEsLmt->Size = System::Drawing::Size(118, 20);
this->txtEsLmt->TabIndex = 70;
this->txtEsLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtEs
//
2565,13 → 2531,13
this->label99->TabIndex = 68;
this->label99->Text = L"ES";
//
// textBox82
// txtDsLmt
//
this->textBox82->Location = System::Drawing::Point(471, 88);
this->textBox82->Name = L"textBox82";
this->textBox82->Size = System::Drawing::Size(118, 20);
this->textBox82->TabIndex = 67;
this->textBox82->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtDsLmt->Location = System::Drawing::Point(471, 88);
this->txtDsLmt->Name = L"txtDsLmt";
this->txtDsLmt->Size = System::Drawing::Size(118, 20);
this->txtDsLmt->TabIndex = 67;
this->txtDsLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtDs
//
2590,13 → 2556,13
this->label98->TabIndex = 65;
this->label98->Text = L"DS";
//
// txtZSLmt
// txtZsLmt
//
this->txtZSLmt->Location = System::Drawing::Point(471, 62);
this->txtZSLmt->Name = L"txtZSLmt";
this->txtZSLmt->Size = System::Drawing::Size(118, 20);
this->txtZSLmt->TabIndex = 64;
this->txtZSLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtZsLmt->Location = System::Drawing::Point(471, 62);
this->txtZsLmt->Name = L"txtZsLmt";
this->txtZsLmt->Size = System::Drawing::Size(118, 20);
this->txtZsLmt->TabIndex = 64;
this->txtZsLmt->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
//
// txtZs
//
2892,6 → 2858,7
//
// txtP14
//
this->txtP14->Enabled = false;
this->txtP14->Location = System::Drawing::Point(36, 400);
this->txtP14->Name = L"txtP14";
this->txtP14->Size = System::Drawing::Size(54, 20);
2909,6 → 2876,7
//
// txtP13
//
this->txtP13->Enabled = false;
this->txtP13->Location = System::Drawing::Point(36, 374);
this->txtP13->Name = L"txtP13";
this->txtP13->Size = System::Drawing::Size(54, 20);
2926,6 → 2894,7
//
// txtP12
//
this->txtP12->Enabled = false;
this->txtP12->Location = System::Drawing::Point(36, 348);
this->txtP12->Name = L"txtP12";
this->txtP12->Size = System::Drawing::Size(54, 20);
2943,6 → 2912,7
//
// txtP11
//
this->txtP11->Enabled = false;
this->txtP11->Location = System::Drawing::Point(36, 322);
this->txtP11->Name = L"txtP11";
this->txtP11->Size = System::Drawing::Size(54, 20);
2960,6 → 2930,7
//
// txtP15
//
this->txtP15->Enabled = false;
this->txtP15->Location = System::Drawing::Point(36, 426);
this->txtP15->Name = L"txtP15";
this->txtP15->Size = System::Drawing::Size(54, 20);
2977,6 → 2948,7
//
// txtP10
//
this->txtP10->Enabled = false;
this->txtP10->Location = System::Drawing::Point(36, 296);
this->txtP10->Name = L"txtP10";
this->txtP10->Size = System::Drawing::Size(54, 20);
2994,6 → 2966,7
//
// txtP9
//
this->txtP9->Enabled = false;
this->txtP9->Location = System::Drawing::Point(36, 270);
this->txtP9->Name = L"txtP9";
this->txtP9->Size = System::Drawing::Size(54, 20);
3011,6 → 2984,7
//
// txtP8
//
this->txtP8->Enabled = false;
this->txtP8->Location = System::Drawing::Point(36, 244);
this->txtP8->Name = L"txtP8";
this->txtP8->Size = System::Drawing::Size(54, 20);
3162,14 → 3136,72
this->label65->TabIndex = 0;
this->label65->Text = L"P0";
//
// toolTipC12
//
this->toolTipC12->IsBalloon = true;
this->toolTipC12->ShowAlways = true;
//
// toolTipC14
//
this->toolTipC14->IsBalloon = true;
this->toolTipC14->ShowAlways = true;
//
// toolTipC1
//
this->toolTipC1->IsBalloon = true;
this->toolTipC1->ShowAlways = true;
//
// toolTipR31
//
this->toolTipR31->IsBalloon = true;
this->toolTipR31->ShowAlways = true;
//
// toolTipR30
//
this->toolTipR30->IsBalloon = true;
this->toolTipR30->ShowAlways = true;
//
// toolTipR29
//
this->toolTipR29->IsBalloon = true;
this->toolTipR29->ShowAlways = true;
//
// toolTipR28
//
this->toolTipR28->IsBalloon = true;
this->toolTipR28->ShowAlways = true;
//
// toolTipC8
//
this->toolTipC8->IsBalloon = true;
this->toolTipC8->ShowAlways = true;
//
// toolTipR0
//
this->toolTipR0->IsBalloon = true;
this->toolTipR0->ShowAlways = true;
//
// btnUpdate
//
this->btnUpdate->Location = System::Drawing::Point(676, 531);
this->btnUpdate->Name = L"btnUpdate";
this->btnUpdate->Size = System::Drawing::Size(75, 23);
this->btnUpdate->TabIndex = 1;
this->btnUpdate->Text = L"Update";
this->btnUpdate->UseVisualStyleBackColor = true;
this->btnUpdate->Click += gcnew System::EventHandler(this, &frmRegisters::btnUpdate_Click);
//
// frmRegisters
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(767, 525);
this->ClientSize = System::Drawing::Size(767, 571);
this->Controls->Add(this->btnUpdate);
this->Controls->Add(this->tabControl1);
this->Name = L"frmRegisters";
this->Text = L"Thor - Registers";
this->Activated += gcnew System::EventHandler(this, &frmRegisters::frmRegisters_Activated);
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmRegisters::frmRegisters_FormClosing);
this->tabControl1->ResumeLayout(false);
this->tabPage1->ResumeLayout(false);
this->tabPage1->PerformLayout();
3179,9 → 3211,316
 
}
#pragma endregion
public: void UpdateForm() {
char buf[100];
mut->WaitOne();
char *fmtstr = system1.cpu2._32bit ? "%08I64X": "%016I64X";
sprintf(buf, fmtstr, system1.cpu2.gp[1]);
txtR1->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[2]);
txtR2->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[3]);
txtR3->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[4]);
txtR4->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[5]);
txtR5->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[6]);
txtR6->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[7]);
txtR7->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[8]);
txtR8->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[9]);
txtR9->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[10]);
txtR10->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[11]);
txtR11->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[12]);
txtR12->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[13]);
txtR13->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[14]);
txtR14->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[15]);
txtR15->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[16]);
txtR16->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[17]);
txtR17->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[18]);
txtR18->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[19]);
txtR19->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[20]);
txtR20->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[21]);
txtR21->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[22]);
txtR22->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[23]);
txtR23->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[24]);
txtR24->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[25]);
txtR25->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[26]);
txtR26->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[27]);
txtR27->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[28]);
txtR28->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[29]);
txtR29->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[30]);
txtR30->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[31]);
txtR31->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[32]);
txtR32->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[33]);
txtR33->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[34]);
txtR34->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[35]);
txtR35->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[36]);
txtR36->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[37]);
txtR37->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[38]);
txtR38->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[39]);
txtR39->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[40]);
txtR40->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[41]);
txtR41->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[42]);
txtR42->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[43]);
txtR43->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[44]);
txtR44->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[45]);
txtR45->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[46]);
txtR46->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[47]);
txtR47->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[48]);
txtR48->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[49]);
txtR49->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[50]);
txtR50->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[51]);
txtR51->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[52]);
txtR52->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[53]);
txtR53->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[54]);
txtR54->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[55]);
txtR55->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[56]);
txtR56->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[57]);
txtR57->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[58]);
txtR58->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[59]);
txtR59->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[60]);
txtR60->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[61]);
txtR61->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[62]);
txtR62->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.gp[63]);
txtR63->Text = gcnew String(buf);
 
// Predicate Registers
sprintf(buf, "%01X %c%c%c", system1.cpu2.pr[0],
system1.cpu2.pr[0] & 4 ? '<' : ' ',
system1.cpu2.pr[0] & 2 ? '<' : ' ',
system1.cpu2.pr[0] & 1 ? '=' : ' '
);
txtP0->Text = gcnew String(buf);
sprintf(buf, "%01X %c%c%c", system1.cpu2.pr[1],
system1.cpu2.pr[1] & 4 ? '<' : ' ',
system1.cpu2.pr[1] & 2 ? '<' : ' ',
system1.cpu2.pr[1] & 1 ? '=' : ' '
);
txtP1->Text = gcnew String(buf);
sprintf(buf, "%01X %c%c%c", system1.cpu2.pr[2],
system1.cpu2.pr[2] & 4 ? '<' : ' ',
system1.cpu2.pr[2] & 2 ? '<' : ' ',
system1.cpu2.pr[2] & 1 ? '=' : ' '
);
txtP2->Text = gcnew String(buf);
sprintf(buf, "%01X %c%c%c", system1.cpu2.pr[3],
system1.cpu2.pr[3] & 4 ? '<' : ' ',
system1.cpu2.pr[3] & 2 ? '<' : ' ',
system1.cpu2.pr[3] & 1 ? '=' : ' '
);
txtP3->Text = gcnew String(buf);
sprintf(buf, "%01X %c%c%c", system1.cpu2.pr[4],
system1.cpu2.pr[4] & 4 ? '<' : ' ',
system1.cpu2.pr[4] & 2 ? '<' : ' ',
system1.cpu2.pr[4] & 1 ? '=' : ' '
);
txtP4->Text = gcnew String(buf);
sprintf(buf, "%01X %c%c%c", system1.cpu2.pr[5],
system1.cpu2.pr[5] & 4 ? '<' : ' ',
system1.cpu2.pr[5] & 2 ? '<' : ' ',
system1.cpu2.pr[5] & 1 ? '=' : ' '
);
txtP5->Text = gcnew String(buf);
sprintf(buf, "%01X %c%c%c", system1.cpu2.pr[6],
system1.cpu2.pr[6] & 4 ? '<' : ' ',
system1.cpu2.pr[6] & 2 ? '<' : ' ',
system1.cpu2.pr[6] & 1 ? '=' : ' '
);
txtP6->Text = gcnew String(buf);
sprintf(buf, "%01X %c%c%c", system1.cpu2.pr[7],
system1.cpu2.pr[7] & 4 ? '<' : ' ',
system1.cpu2.pr[7] & 2 ? '<' : ' ',
system1.cpu2.pr[7] & 1 ? '=' : ' '
);
txtP7->Text = gcnew String(buf);
if (system1.cpu2._32bit) {
txtP8->Enabled = false;
txtP9->Enabled = false;
txtP10->Enabled = false;
txtP11->Enabled = false;
txtP12->Enabled = false;
txtP13->Enabled = false;
txtP14->Enabled = false;
txtP15->Enabled = false;
}
 
// Code address registers
sprintf(buf, fmtstr, system1.cpu2.ca[1]);
txtCa1->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[2]);
txtCa2->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[3]);
txtCa3->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[4]);
txtCa4->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[5]);
txtCa5->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[6]);
txtCa6->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[7]);
txtCa7->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[8]);
txtCa8->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[9]);
txtCa9->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[10]);
txtCa10->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[11]);
txtCa11->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[12]);
txtCa12->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[13]);
txtCa13->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.ca[14]);
txtCa14->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.pc);
txtCa15->Text = gcnew String(buf);
 
sprintf(buf, fmtstr, system1.cpu2.seg_base[0]);
txtZs->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_base[1]);
txtDs->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_base[2]);
txtEs->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_base[3]);
txtFs->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_base[4]);
txtGs->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_base[5]);
txtHs->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_base[6]);
txtSs->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_base[7]);
txtCs->Text = gcnew String(buf);
 
sprintf(buf, fmtstr, system1.cpu2.seg_limit[0]);
txtZsLmt->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_limit[1]);
txtDsLmt->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_limit[2]);
txtEsLmt->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_limit[3]);
txtFsLmt->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_limit[4]);
txtGsLmt->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_limit[5]);
txtHsLmt->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_limit[6]);
txtSsLmt->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.seg_limit[7]);
txtCsLmt->Text = gcnew String(buf);
 
sprintf(buf, fmtstr, system1.cpu2.tick);
txtTick->Text = gcnew String(buf);
sprintf(buf, fmtstr, system1.cpu2.lc);
txtLC->Text = gcnew String(buf);
mut->ReleaseMutex();
}
private: System::Void label2_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void textBox2_TextChanged(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void frmRegisters_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (e->CloseReason==CloseReason::UserClosing)
e->Cancel = true;
}
private: System::Void btnUpdate_Click(System::Object^ sender, System::EventArgs^ e) {
char *str, *ep;
 
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR1->Text);
system1.cpu2.gp[1] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR2->Text);
system1.cpu2.gp[2] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR3->Text);
system1.cpu2.gp[3] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR4->Text);
system1.cpu2.gp[4] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR5->Text);
system1.cpu2.gp[5] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR6->Text);
system1.cpu2.gp[6] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR7->Text);
system1.cpu2.gp[7] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR8->Text);
system1.cpu2.gp[8] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR9->Text);
system1.cpu2.gp[9] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR10->Text);
system1.cpu2.gp[10] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR11->Text);
system1.cpu2.gp[11] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR12->Text);
system1.cpu2.gp[12] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR13->Text);
system1.cpu2.gp[13] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR14->Text);
system1.cpu2.gp[14] = _strtoui64(str, &ep, 16);
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtR15->Text);
system1.cpu2.gp[15] = _strtoui64(str, &ep, 16);
 
str = (char*)(void*)Marshal::StringToHGlobalAnsi(this->txtLC->Text);
system1.cpu2.lc = _strtoui64(str, &ep, 16);
}
private: System::Void frmRegisters_Activated(System::Object^ sender, System::EventArgs^ e) {
UpdateForm();
}
};
}
/trunk/software/emuThor/source/frmMain.resX
121,8 → 121,17
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="interruptToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="breakpointsToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk0qAQAAAAAAAHYAAAAoAAAAEQAAAA8AAAABAAQAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/4CAgP/AwMD/AAD//wD/AP8A/////wAA//8A/////wD//////4iI
iIiIiIiIgAAAAIiIiIiIiIiIgAAAAIiIiIiIiIiIgAAAAIiICICIiIiIgAAAAIiIgIgIiIiIgAAAAIiI
gIgIiIyIgAAAAIiIiAiAiIzIgAAAAIjMzAiAzMzMgAAAAIiIiAiAiIzIgAAAAIiIiICICIyIgAAAAIiI
iICICIiIgAAAAIiIiIgIgIiIgAAAAIiIiIiIiIiIgAAAAIiIiIiIiIiIgAAAAIiIiIiIiIiIgAAAAA==
</value>
</data>
<data name="interruptsToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk3uAAAAAAAAAHYAAAAoAAAAEAAAAA8AAAABAAQAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/4CAgP/AwMD/AAD//wD/AP8A/////wAA//8A/////wD//////4iI
iIiIiIiIiIiIiMyIiIiIiIiMzMiIiIiIiIzMyIiIiIiIiMyIiIiIiIiIiIiIiIiIiIjMiIiIiIiIiMyI
132,45 → 141,6
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 17</value>
</metadata>
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABnSURBVDhPtY9RCsAwCEM9ukfzZq4OLOlMcbD144GNSahi
Zv6F/wpEnIJmRvuDruRcAZ6RUB8Tky4cnDlBRmpH8RaBmJDnfilgYVUtGvpoQYSS0PCNvnvOYQpj2bH4
8YF0welj4nvML6tzsZ4LEfkkAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB7SURBVDhPxY5LEsAgCEM5ukfjZlacohDwM9NFF2+RkESJ
metX/hkhqtFD44SM4NAY0aPFBTf37U/SAujuWZERCqC7hwaSlZB0hFpzIt+fOs0HA4Iy4nUcciNZoJQS
vPCQE+9Riop4Vtvc6FnRjRY4ETpoKDdlZTlyD9cHJ8TdCVejwHgAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB3SURBVDhPvY9RDsAgCEM5OkfjZm6YoBVq3LJkH++Dpn1R
MbP2lf8lIo3nLNzhEiY6SmKYWTp4ZEqZCHqeA4RJ8B45C4PdKFMkci8n/vx5526wSHLRJevNRUPCCqpa
MtYrEh8GnuGNPaR85wT2x46GD8cBlbzD2gXcX+SPQkd1uQAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButton4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABYSURBVDhPtc5RCgAgCANQ738qb1YEDTKtZhFjHxF7KKpa
XmoAETGfTB2QRTzQkoBiACGgPYBsEA5oWVzDA8iEfL6gj6IhGgOH0VgPkEPUAeObqQFu+ghoqfgBoI6+
x9lEAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAwSURBVDhPYzhw4MB/SjD1DGBgYCAa4zQASBDEowaMGgDC
eA0gFmM1gFxMoQEH/gMAIsdLnqOm6ksAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton6.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
186,14 → 156,6
LMT/UBs+mycAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton8.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABRSURBVDhPtYwBCgAgCAP7/6ctyoWJgloFV7bhtXHokjWM
K8UhQJjlr4DLCTIN935pzZL/AoBMw71fytciJNCzJCyw/shcQYR3gooEe1tQo1EHdyOQfvPaXr4AAAAA
SUVORK5CYII=
</value>
</data>
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>237, 17</value>
</metadata>
/trunk/software/emuThor/source/frmScreen.h
4,6 → 4,8
#include "clsSystem.h"
extern clsSystem system1;
extern char refscreen;
extern bool screenClosed;
extern bool dbgScreenClosed;
 
namespace emuThor {
 
44,6 → 46,7
delete components;
}
}
public: int which;
public: unsigned long *pVidMem;
public: bool *pVidDirty;
private: System::Windows::Forms::Timer^ timer1;
97,6 → 100,7
this->MaximizeBox = false;
this->Name = L"frmScreen";
this->Text = L"emuFISA64 Test System Screen";
this->FormClosed += gcnew System::Windows::Forms::FormClosedEventHandler(this, &frmScreen::frmScreen_FormClosed);
this->Paint += gcnew System::Windows::Forms::PaintEventHandler(this, &frmScreen::frmScreen_Paint);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->EndInit();
this->ResumeLayout(false);
151,6 → 155,12
}
private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void frmScreen_FormClosed(System::Object^ sender, System::Windows::Forms::FormClosedEventArgs^ e) {
if (which==0)
screenClosed = true;
else
dbgScreenClosed = true;
}
private: System::Void pictureBox1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
char buf[10];
unsigned int ndx;
/trunk/software/emuThor/source/clsSystem.h
1,5 → 1,12
#pragma once
#include "clsThor.h"
// Test System Emulator
//
// Emulates the test system that the Thor processor is part of.
// Currently the screen display is not fully implemented as an
// emulation. The register set isn't present.
// Other devices present in the system are aggregated into the
// clsSystem class.
 
extern char refscreen;
extern unsigned int dataBreakpoints[30];
29,6 → 36,7
clsPIC pic1;
clsUart uart1;
clsKeyboard keybd;
clsSevenSeg sevenseg;
 
clsSystem();
void Reset();
/trunk/software/emuThor/source/frmBreakpoints.h
112,6 → 112,7
private: System::Windows::Forms::CheckBox^ checkBox9;
private: System::Windows::Forms::CheckBox^ checkBox10;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::Label^ label4;
 
private:
/// <summary>
151,12 → 152,13
this->checkBox9 = (gcnew System::Windows::Forms::CheckBox());
this->checkBox10 = (gcnew System::Windows::Forms::CheckBox());
this->label3 = (gcnew System::Windows::Forms::Label());
this->label4 = (gcnew System::Windows::Forms::Label());
this->SuspendLayout();
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(54, 29);
this->label1->Location = System::Drawing::Point(53, 51);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(56, 13);
this->label1->TabIndex = 0;
164,7 → 166,7
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(57, 56);
this->textBox1->Location = System::Drawing::Point(56, 78);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(120, 20);
this->textBox1->TabIndex = 1;
171,7 → 173,7
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(57, 82);
this->textBox2->Location = System::Drawing::Point(56, 104);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(120, 20);
this->textBox2->TabIndex = 2;
178,7 → 180,7
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(57, 108);
this->textBox3->Location = System::Drawing::Point(56, 130);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(120, 20);
this->textBox3->TabIndex = 3;
185,7 → 187,7
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(57, 134);
this->textBox4->Location = System::Drawing::Point(56, 156);
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(120, 20);
this->textBox4->TabIndex = 4;
192,7 → 194,7
//
// textBox5
//
this->textBox5->Location = System::Drawing::Point(57, 160);
this->textBox5->Location = System::Drawing::Point(56, 182);
this->textBox5->Name = L"textBox5";
this->textBox5->Size = System::Drawing::Size(120, 20);
this->textBox5->TabIndex = 5;
200,7 → 202,7
// textBox6
//
this->textBox6->Enabled = false;
this->textBox6->Location = System::Drawing::Point(244, 160);
this->textBox6->Location = System::Drawing::Point(243, 182);
this->textBox6->Name = L"textBox6";
this->textBox6->Size = System::Drawing::Size(125, 20);
this->textBox6->TabIndex = 11;
208,7 → 210,7
// textBox7
//
this->textBox7->Enabled = false;
this->textBox7->Location = System::Drawing::Point(244, 134);
this->textBox7->Location = System::Drawing::Point(243, 156);
this->textBox7->Name = L"textBox7";
this->textBox7->Size = System::Drawing::Size(125, 20);
this->textBox7->TabIndex = 10;
216,7 → 218,7
// textBox8
//
this->textBox8->Enabled = false;
this->textBox8->Location = System::Drawing::Point(244, 108);
this->textBox8->Location = System::Drawing::Point(243, 130);
this->textBox8->Name = L"textBox8";
this->textBox8->Size = System::Drawing::Size(125, 20);
this->textBox8->TabIndex = 9;
224,7 → 226,7
// textBox9
//
this->textBox9->Enabled = false;
this->textBox9->Location = System::Drawing::Point(244, 82);
this->textBox9->Location = System::Drawing::Point(243, 104);
this->textBox9->Name = L"textBox9";
this->textBox9->Size = System::Drawing::Size(125, 20);
this->textBox9->TabIndex = 8;
232,7 → 234,7
// textBox10
//
this->textBox10->Enabled = false;
this->textBox10->Location = System::Drawing::Point(244, 56);
this->textBox10->Location = System::Drawing::Point(243, 78);
this->textBox10->Name = L"textBox10";
this->textBox10->Size = System::Drawing::Size(125, 20);
this->textBox10->TabIndex = 7;
241,7 → 243,7
//
this->label2->AutoSize = true;
this->label2->Enabled = false;
this->label2->Location = System::Drawing::Point(241, 29);
this->label2->Location = System::Drawing::Point(240, 51);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(30, 13);
this->label2->TabIndex = 6;
250,7 → 252,7
// button25
//
this->button25->DialogResult = System::Windows::Forms::DialogResult::OK;
this->button25->Location = System::Drawing::Point(294, 205);
this->button25->Location = System::Drawing::Point(293, 227);
this->button25->Name = L"button25";
this->button25->Size = System::Drawing::Size(75, 23);
this->button25->TabIndex = 35;
261,7 → 263,7
// button26
//
this->button26->DialogResult = System::Windows::Forms::DialogResult::Cancel;
this->button26->Location = System::Drawing::Point(181, 205);
this->button26->Location = System::Drawing::Point(180, 227);
this->button26->Name = L"button26";
this->button26->Size = System::Drawing::Size(75, 23);
this->button26->TabIndex = 36;
271,7 → 273,7
// checkBox1
//
this->checkBox1->AutoSize = true;
this->checkBox1->Location = System::Drawing::Point(21, 56);
this->checkBox1->Location = System::Drawing::Point(20, 78);
this->checkBox1->Name = L"checkBox1";
this->checkBox1->Size = System::Drawing::Size(15, 14);
this->checkBox1->TabIndex = 37;
281,7 → 283,7
// checkBox2
//
this->checkBox2->AutoSize = true;
this->checkBox2->Location = System::Drawing::Point(21, 82);
this->checkBox2->Location = System::Drawing::Point(20, 104);
this->checkBox2->Name = L"checkBox2";
this->checkBox2->Size = System::Drawing::Size(15, 14);
this->checkBox2->TabIndex = 38;
290,7 → 292,7
// checkBox3
//
this->checkBox3->AutoSize = true;
this->checkBox3->Location = System::Drawing::Point(21, 108);
this->checkBox3->Location = System::Drawing::Point(20, 130);
this->checkBox3->Name = L"checkBox3";
this->checkBox3->Size = System::Drawing::Size(15, 14);
this->checkBox3->TabIndex = 39;
299,7 → 301,7
// checkBox4
//
this->checkBox4->AutoSize = true;
this->checkBox4->Location = System::Drawing::Point(21, 134);
this->checkBox4->Location = System::Drawing::Point(20, 156);
this->checkBox4->Name = L"checkBox4";
this->checkBox4->Size = System::Drawing::Size(15, 14);
this->checkBox4->TabIndex = 40;
309,7 → 311,7
//
this->checkBox5->AutoSize = true;
this->checkBox5->Enabled = false;
this->checkBox5->Location = System::Drawing::Point(210, 82);
this->checkBox5->Location = System::Drawing::Point(209, 104);
this->checkBox5->Name = L"checkBox5";
this->checkBox5->Size = System::Drawing::Size(15, 14);
this->checkBox5->TabIndex = 41;
318,7 → 320,7
// checkBox6
//
this->checkBox6->AutoSize = true;
this->checkBox6->Location = System::Drawing::Point(21, 160);
this->checkBox6->Location = System::Drawing::Point(20, 182);
this->checkBox6->Name = L"checkBox6";
this->checkBox6->Size = System::Drawing::Size(15, 14);
this->checkBox6->TabIndex = 41;
328,7 → 330,7
//
this->checkBox7->AutoSize = true;
this->checkBox7->Enabled = false;
this->checkBox7->Location = System::Drawing::Point(210, 56);
this->checkBox7->Location = System::Drawing::Point(209, 78);
this->checkBox7->Name = L"checkBox7";
this->checkBox7->Size = System::Drawing::Size(15, 14);
this->checkBox7->TabIndex = 42;
338,7 → 340,7
//
this->checkBox8->AutoSize = true;
this->checkBox8->Enabled = false;
this->checkBox8->Location = System::Drawing::Point(210, 108);
this->checkBox8->Location = System::Drawing::Point(209, 130);
this->checkBox8->Name = L"checkBox8";
this->checkBox8->Size = System::Drawing::Size(15, 14);
this->checkBox8->TabIndex = 43;
348,7 → 350,7
//
this->checkBox9->AutoSize = true;
this->checkBox9->Enabled = false;
this->checkBox9->Location = System::Drawing::Point(210, 134);
this->checkBox9->Location = System::Drawing::Point(209, 156);
this->checkBox9->Name = L"checkBox9";
this->checkBox9->Size = System::Drawing::Size(15, 14);
this->checkBox9->TabIndex = 44;
358,7 → 360,7
//
this->checkBox10->AutoSize = true;
this->checkBox10->Enabled = false;
this->checkBox10->Location = System::Drawing::Point(210, 160);
this->checkBox10->Location = System::Drawing::Point(209, 182);
this->checkBox10->Name = L"checkBox10";
this->checkBox10->Size = System::Drawing::Size(15, 14);
this->checkBox10->TabIndex = 45;
369,17 → 371,27
this->label3->AutoSize = true;
this->label3->ForeColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(255)), static_cast<System::Int32>(static_cast<System::Byte>(128)),
static_cast<System::Int32>(static_cast<System::Byte>(0)));
this->label3->Location = System::Drawing::Point(241, 9);
this->label3->Location = System::Drawing::Point(240, 31);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(158, 13);
this->label3->TabIndex = 46;
this->label3->Text = L"Data Breakpoints don\'t work yet";
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(17, 51);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(20, 13);
this->label4->TabIndex = 47;
this->label4->Text = L"En";
//
// frmBreakpoints
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(403, 249);
this->ClientSize = System::Drawing::Size(403, 259);
this->Controls->Add(this->label4);
this->Controls->Add(this->label3);
this->Controls->Add(this->checkBox10);
this->Controls->Add(this->checkBox9);
406,9 → 418,9
this->Controls->Add(this->textBox1);
this->Controls->Add(this->label1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"frmBreakpoints";
this->Text = L"emuThor - Breakpoints";
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmBreakpoints::frmBreakpoints_FormClosing);
this->ResumeLayout(false);
this->PerformLayout();
 
449,5 → 461,9
ibreakpoints[4] = _strtoui64(str, &ep, 16);
mut->ReleaseMutex();
}
private: System::Void frmBreakpoints_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (e->CloseReason==CloseReason::UserClosing)
e->Cancel = true;
}
};
}
/trunk/software/emuThor/source/stdafx.h
11,7 → 11,9
#include "clsKeyboard.h"
#include "clsUart.h"
#include "clsThor.h"
#include "clsSevenSeg.h"
#include "clsSystem.h"
#include "clsDisassem.h"
 
enum {
PF = 0,
/trunk/software/emuThor/source/frmPCHistory.h
23,15 → 23,7
//
//TODO: Add the constructor code here
//
char buf[4000];
int xx;
buf[0] = '\0';
for (xx = 0; xx < 40; xx++) {
mut->WaitOne();
sprintf(&buf[strlen(buf)], "%08I64X\r\n", system1.cpu2.pcs[xx]);
mut->ReleaseMutex();
}
textBox1->Text = gcnew String(buf);
UpdateForm();
}
frmPCHistory(void)
{
39,15 → 31,7
//
//TODO: Add the constructor code here
//
char buf[4000];
int xx;
buf[0] = '\0';
for (xx = 0; xx < 40; xx++) {
mut->WaitOne();
sprintf(&buf[strlen(buf)], "%08I64X\r\n", system1.cpu2.pcs[xx]);
mut->ReleaseMutex();
}
textBox1->Text = gcnew String(buf);
UpdateForm();
}
 
protected:
83,10 → 67,12
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(12, 22);
this->textBox1->Location = System::Drawing::Point(12, 47);
this->textBox1->Multiline = true;
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(162, 385);
this->textBox1->ReadOnly = true;
this->textBox1->ScrollBars = System::Windows::Forms::ScrollBars::Vertical;
this->textBox1->Size = System::Drawing::Size(162, 379);
this->textBox1->TabIndex = 0;
//
// frmPCHistory
98,10 → 84,26
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->Name = L"frmPCHistory";
this->Text = L"PCHistory";
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmPCHistory::frmPCHistory_FormClosing);
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
private: System::Void frmPCHistory_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (e->CloseReason==CloseReason::UserClosing)
e->Cancel = true;
}
public: void UpdateForm() {
char buf[4000];
int xx;
buf[0] = '\0';
for (xx = 0; xx < 40; xx++) {
mut->WaitOne();
sprintf(&buf[strlen(buf)], "%08I64X\r\n", system1.cpu2.pcs[xx]);
mut->ReleaseMutex();
}
textBox1->Text = gcnew String(buf);
}
};
}
/trunk/software/emuThor/source/frmRun.resx
0,0 → 1,183
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
 
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABnSURBVDhPtY9RCsAwCEM9ukfzZq4OLOlMcbD144GNSahi
Zv6F/wpEnIJmRvuDruRcAZ6RUB8Tky4cnDlBRmpH8RaBmJDnfilgYVUtGvpoQYSS0PCNvnvOYQpj2bH4
8YF0welj4nvML6tzsZ4LEfkkAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB7SURBVDhPxY5LEsAgCEM5ukfjZlacohDwM9NFF2+RkESJ
metX/hkhqtFD44SM4NAY0aPFBTf37U/SAujuWZERCqC7hwaSlZB0hFpzIt+fOs0HA4Iy4nUcciNZoJQS
vPCQE+9Riop4Vtvc6FnRjRY4ETpoKDdlZTlyD9cHJ8TdCVejwHgAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAYAAAACsSQRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB3SURBVDhPvY9RDsAgCEM5OkfjZm6YoBVq3LJkH++Dpn1R
MbP2lf8lIo3nLNzhEiY6SmKYWTp4ZEqZCHqeA4RJ8B45C4PdKFMkci8n/vx5526wSHLRJevNRUPCCqpa
MtYrEh8GnuGNPaR85wT2x46GD8cBlbzD2gXcX+SPQkd1uQAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButton4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABYSURBVDhPtc5RCgAgCANQ738qb1YEDTKtZhFjHxF7KKpa
XmoAETGfTB2QRTzQkoBiACGgPYBsEA5oWVzDA8iEfL6gj6IhGgOH0VgPkEPUAeObqQFu+ghoqfgBoI6+
x9lEAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAwSURBVDhPYzhw4MB/SjD1DGBgYCAa4zQASBDEowaMGgDC
eA0gFmM1gFxMoQEH/gMAIsdLnqOm6ksAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton8.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABRSURBVDhPtYwBCgAgCAP7/6ctyoWJgloFV7bhtXHokjWM
K8UhQJjlr4DLCTIN935pzZL/AoBMw71fytciJNCzJCyw/shcQYR3gooEe1tQo1EHdyOQfvPaXr4AAAAA
SUVORK5CYII=
</value>
</data>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 17</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>237, 17</value>
</metadata>
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>324, 17</value>
</metadata>
<metadata name="toolTipMHz.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>488, 17</value>
</metadata>
</root>
/trunk/software/emuThor/source/clsDisassem.cpp
201,7 → 201,7
int byt;
int opcode, func;
int n;
__int64 val, disp;
__int64 val, disp, amt;
int rv;
int b1, b2, b3, b4;
int Ra,Rb,Rc,Rt,Sprn,Sg,Sc,Sz;
393,7 → 393,7
if ((opcode & 0xF0)==0x30) {
b1 = system1.ReadByte(ad);
ad++;
disp = (b1 << 4) | (opcode & 0xF);
disp = b1 | ((opcode & 0xF) << 8);
if (disp & 0x800)
disp |= 0xFFFFFFFFFFFFF000LL;
sprintf(&buf[strlen(buf)], " BR $%LLX", disp + ad);
573,6 → 573,31
imm_prefix = false;
return std::string(buf);
 
case INC:
b1 = system1.ReadByte(ad);
ad++;
b2 = system1.ReadByte(ad);
ad++;
b3 = system1.ReadByte(ad);
ad++;
b4 = system1.ReadByte(ad);
ad++;
Ra = b1 & 0x3f;
Sz = (b1 >> 6) | ((b2 & 1) << 2);
disp = (b2 >> 4) | ((b3 & 31) << 4);
if (disp & 0x100)
disp |= 0xFFFFFFFFFFFFFF00LL;
Sg = b3 >> 5;
amt = b4;
if (amt & 0x80)
amt |= 0xFFFFFFFFFFFFFF00LL;
sprintf(&buf[strlen(buf)], " INC.%c %s:$%I64X[r%d],#%I64d",
Sz==0 ? 'B' : Sz==1 ? 'C' : Sz==2 ? 'H' : 'W',
SegName(Sg), disp, Ra, amt);
if (nb) *nb = 6;
imm_prefix = false;
return std::string(buf);
 
case JSR:
b1 = system1.ReadByte(ad);
ad++;
/trunk/software/emuThor/source/insn.h
132,6 → 132,7
#define SCX 0xC1
#define SHX 0xC2
#define SWX 0xC3
#define INC 0xC7
#define TLB 0xF0
#define RTSQ 0xF2
#define RTE 0xF3
/trunk/software/emuThor/source/frmStack.h
27,22 → 27,7
//
//TODO: Add the constructor code here
//
int xx;
char buf[4000];
buf[0] = '\0';
mut->WaitOne();
for (xx = -128; xx < 128; xx+=8) {
sprintf(&buf[strlen(buf)], "%c %08I64X: %016I64X\r\n", xx==0 ? '>' : ' ',
system1.cpu2.GetGP(27)+xx, system1.Read(system1.cpu2.GetGP(27)+xx));
}
textBox1->Text = gcnew String(buf);
buf[0] = '\0';
for (xx = -128; xx < 128; xx+=8) {
sprintf(&buf[strlen(buf)], "%c %08I64X: %016I64X\r\n", xx==0 ? '>' : ' ',
system1.cpu2.GetGP(26)+xx, system1.Read(system1.cpu2.GetGP(26)+xx));
}
mut->ReleaseMutex();
textBox2->Text = gcnew String(buf);
UpdateForm();
}
 
protected:
83,26 → 68,26
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(12, 32);
this->textBox1->Location = System::Drawing::Point(12, 72);
this->textBox1->Multiline = true;
this->textBox1->Name = L"textBox1";
this->textBox1->ScrollBars = System::Windows::Forms::ScrollBars::Vertical;
this->textBox1->Size = System::Drawing::Size(228, 241);
this->textBox1->Size = System::Drawing::Size(228, 432);
this->textBox1->TabIndex = 0;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(254, 32);
this->textBox2->Location = System::Drawing::Point(254, 72);
this->textBox2->Multiline = true;
this->textBox2->Name = L"textBox2";
this->textBox2->ScrollBars = System::Windows::Forms::ScrollBars::Vertical;
this->textBox2->Size = System::Drawing::Size(228, 241);
this->textBox2->Size = System::Drawing::Size(228, 432);
this->textBox2->TabIndex = 1;
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(12, 16);
this->label1->Location = System::Drawing::Point(9, 56);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(61, 13);
this->label1->TabIndex = 2;
111,7 → 96,7
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(251, 16);
this->label2->Location = System::Drawing::Point(251, 56);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(93, 13);
this->label2->TabIndex = 3;
121,19 → 106,41
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(506, 306);
this->ClientSize = System::Drawing::Size(506, 516);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->textBox1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"frmStack";
this->Text = L"emuThor - Stack View";
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &frmStack::frmStack_FormClosing);
this->ResumeLayout(false);
this->PerformLayout();
 
}
#pragma endregion
};
private: System::Void frmStack_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (e->CloseReason==CloseReason::UserClosing)
e->Cancel = true;
}
public: void UpdateForm() {
int xx;
char buf[4000];
buf[0] = '\0';
mut->WaitOne();
for (xx = -128; xx < 128; xx+=8) {
sprintf(&buf[strlen(buf)], "%c %08I64X: %016I64X\r\n", xx==0 ? '>' : ' ',
system1.cpu2.GetGP(27)+xx, system1.Read(system1.cpu2.GetGP(27)+xx));
}
textBox1->Text = gcnew String(buf);
buf[0] = '\0';
for (xx = -128; xx < 128; xx+=8) {
sprintf(&buf[strlen(buf)], "%c %08I64X: %016I64X\r\n", xx==0 ? '>' : ' ',
system1.cpu2.GetGP(26)+xx, system1.Read(system1.cpu2.GetGP(26)+xx));
}
mut->ReleaseMutex();
textBox2->Text = gcnew String(buf);
}
};
}
/trunk/software/emuThor/source/clsUart.h
5,17 → 5,17
class clsUart : public clsDevice
{
public:
__int8 tb;
__int8 rb;
__int8 is;
__int8 ier;
__int8 ls;
__int8 ms;
__int8 mc;
__int8 ctrl;
__int8 cm0,cm1,cm2,cm3;
__int8 ff;
__int8 fc;
unsigned __int8 tb;
unsigned __int8 rb;
unsigned __int8 is;
unsigned __int8 ier;
unsigned __int8 ls;
unsigned __int8 ms;
unsigned __int8 mc;
unsigned __int8 ctrl;
unsigned __int8 cm0,cm1,cm2,cm3;
unsigned __int8 ff;
unsigned __int8 fc;
bool irq;
public:
void Reset();
/trunk/software/emuThor/source/emuThor.vcxproj
91,11 → 91,11
<ClCompile Include="clsDisassem.cpp" />
<ClCompile Include="clsKeyboard.cpp" />
<ClCompile Include="clsPIC.cpp" />
<ClCompile Include="clsSevenSeg.cpp" />
<ClCompile Include="clsSystem.cpp" />
<ClCompile Include="clsThor.cpp" />
<ClCompile Include="clsUart.cpp" />
<ClCompile Include="emuThor.cpp" />
<ClCompile Include="fmrFreeRun.cpp" />
<ClCompile Include="frmBreakpoints.cpp" />
<ClCompile Include="frmInterrupts.cpp" />
<ClCompile Include="frmKeyboard.cpp" />
102,6 → 102,7
<ClCompile Include="frmMemory.cpp" />
<ClCompile Include="frmPCHistory.cpp" />
<ClCompile Include="frmRegisters.cpp" />
<ClCompile Include="frmRun.cpp" />
<ClCompile Include="frmScreen.cpp" />
<ClCompile Include="frmStack.cpp" />
<ClCompile Include="frmUart.cpp" />
119,12 → 120,10
<ClInclude Include="clsDisassem.h" />
<ClInclude Include="clsKeyboard.h" />
<ClInclude Include="clsPIC.h" />
<ClInclude Include="clsSevenSeg.h" />
<ClInclude Include="clsSystem.h" />
<ClInclude Include="clsThor.h" />
<ClInclude Include="clsUart.h" />
<ClInclude Include="fmrFreeRun.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmBreakpoints.h">
<FileType>CppForm</FileType>
</ClInclude>
142,6 → 141,9
<ClInclude Include="frmRegisters.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmRun.h">
<FileType>CppForm</FileType>
</ClInclude>
<ClInclude Include="frmScreen.h" />
<ClInclude Include="frmStack.h">
<FileType>CppForm</FileType>
160,9 → 162,6
<EmbeddedResource Include="About.resx">
<DependentUpon>About.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="fmrFreeRun.resx">
<DependentUpon>fmrFreeRun.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmBreakpoints.resx">
<DependentUpon>frmBreakpoints.h</DependentUpon>
</EmbeddedResource>
181,6 → 180,9
<EmbeddedResource Include="frmRegisters.resx">
<DependentUpon>frmRegisters.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmRun.resx">
<DependentUpon>frmRun.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmScreen.resx" />
<EmbeddedResource Include="frmStack.resx">
<DependentUpon>frmStack.h</DependentUpon>
/trunk/software/emuThor/source/emuThor.vcxproj.filters
39,9 → 39,6
<ClCompile Include="clsKeyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmKeyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="clsPIC.cpp">
<Filter>Source Files</Filter>
</ClCompile>
69,9 → 66,6
<ClCompile Include="clsUart.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="fmrFreeRun.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmStack.cpp">
<Filter>Source Files</Filter>
</ClCompile>
81,6 → 75,15
<ClCompile Include="frmPCHistory.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmRun.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="frmKeyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="clsSevenSeg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
104,9 → 107,6
<ClInclude Include="clsKeyboard.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmKeyboard.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="clsPIC.h">
<Filter>Header Files</Filter>
</ClInclude>
140,9 → 140,6
<ClInclude Include="clsUart.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="fmrFreeRun.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmStack.h">
<Filter>Header Files</Filter>
</ClInclude>
152,6 → 149,15
<ClInclude Include="frmPCHistory.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmRun.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="frmKeyboard.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="clsSevenSeg.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="app.rc">
177,17 → 183,23
<EmbeddedResource Include="frmBreakpoints.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmKeyboard.resx">
<EmbeddedResource Include="frmUart.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmUart.resx">
<EmbeddedResource Include="frmStack.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="fmrFreeRun.resx">
<EmbeddedResource Include="frmInterrupts.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmStack.resx">
<EmbeddedResource Include="frmPCHistory.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmRun.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
<EmbeddedResource Include="frmKeyboard.resx">
<Filter>Resource Files</Filter>
</EmbeddedResource>
</ItemGroup>
</Project>
/trunk/software/emuThor/source/clsKeyboard.h
1,5 → 1,25
#pragma once
#include "clsDevice.h"
// Keyboard Device Emulation
//
// The keyboard controller code loops around until there are no more scan
// codes available from the keyboard. In real life an interrupt signal is
// generated by each scan code sent by the keyboard. There is no hardware
// buffering of scan-codes. In the emulation only a single emulation
// interrupt is generated for a keypress(button) event and multiple scan
// codes are buffered. Rather than emulate the keyboard interface more
// closely the emulation is simplified and the driver software recognizes
// the way the emulation works. Otherwise it might be necessary to
// implement the keyboard interface in it's own thread with calls to
// Sleep() between each scan-code transmission.
// It should work because the interrupt routine checks for additional
// scan codes during it's processing. This is a case where the software
// for the system is designed around supporting the emulator.
// In real life there should never be two scan-codes sent by the keyboard
// close enough together for the loop in the keyboard code to be
// effective. The loop is harmless enough as the scan-code status
// needs to be tested anyway. Whether its a while() or an if() is
// irrelevant.
 
class clsKeyboard : public clsDevice
{
/trunk/software/emuThor/source/clsUart.cpp
7,7 → 7,7
}
bool clsUart::IsSelected(unsigned int ad)
{
return (ad & 0xFFFFFFF0LL)==0xFFFDC0A00;
return (ad & 0xFFFFFFF0LL)==0xFFDC0A00;
}
 
unsigned int clsUart::Read(unsigned int ad)
/trunk/software/emuThor/source/clsThor.cpp
205,7 → 205,7
unsigned int opcode, func;
__int64 disp;
int Ra,Rb,Rc,Rt,Pn,Cr,Ct;
int Sprn,Sg,Sc;
int Sprn,Sg,Sc,Sz;
int b1, b2, b3, b4;
int nn;
__int64 dat;
213,17 → 213,28
unsigned __int64 carry;
unsigned __int64 a,b,res;
 
for (nn = 39; nn >= 0; nn--)
pcs[nn] = pcs[nn-1];
pcs[0] = pc;
rts = false;
// Capture PC History, but only when the PC changes.
if (pcs[0] != pc) {
for (nn = 39; nn >= 0; nn--)
pcs[nn] = pcs[nn-1];
pcs[0] = pc;
}
if (IRQActive()) {
StatusHWI = true;
if (string_pc)
ca[14] = string_pc;
else
ca[14] = pc;
else {
// If a prefix was present, back up to the previous insn.
if (imm_prefix) {
ca[14] = pcs[1];
}
else
ca[14] = pc;
}
pc = ca[12] + (vecno << 4);
ca[15] = pc;
imm_prefix = false;
}
gp[0] = 0;
ca[0] = 0;
739,6 → 750,45
imm_prefix = false;
return;
 
case INC:
b1 = ReadByte(pc);
pc++;
b2 = ReadByte(pc);
pc++;
b3 = ReadByte(pc);
pc++;
b4 = ReadByte(pc);
pc++;
if (ex) {
int amt;
__int64 val;
Ra = b1 & 0x3f;
Sz = (b1 >> 6) | ((b2 & 1) << 2);
func = (b2 >> 1) & 7;
disp = (b2 >> 4) | ((b3 & 31) << 4);
if (disp & 0x100)
disp |= 0xFFFFFFFFFFFFFF00LL;
Sg = b3 >> 5;
amt = b4;
if (amt & 0x80)
amt |= 0xFFFFFFFFFFFFFF00LL;
ea = (unsigned __int64) disp + seg_base[Sg] + GetGP(Ra);
switch(Sz&3) {
case 0: val = ReadByte(ea); break;
case 1: val = ReadChar(ea); break;
case 2: val = ReadHalf(ea); break;
case 3: val = Read(ea); break;
}
val = val + amt;
switch(Sz&3) {
case 0: system1->Write(ea,val,(0x1 << (ea & 7)) & 0xFF); break;
case 1: system1->Write(ea,val,(0x3 << (ea & 6)) & 0xFF); break;
case 2: system1->Write(ea,val,(0xF << (ea & 4)) & 0xFF); break;
case 3: system1->Write(ea,val,0xFF); break;
}
}
return;
 
case INT:
b1 = ReadByte(pc);
pc++;
781,8 → 831,10
if (ex) {
Ct = b1 & 0x0F;
Cr = (b1 & 0xF0) >> 4;
if (Ct != 0)
if (Ct != 0) {
ca[Ct] = pc;
sub_depth++;
}
disp = (b4 << 16) | (b3 << 8) | b2;
if (disp & 0x800000)
disp |= 0xFFFFFFFFFF000000LL;
813,8 → 865,10
Ct = (b1 >> 6) | ((b2 << 2) & 0xf);
Sz = (b2 & 0xC) >> 2;
Sg = (b3 >> 5);
if (Ct != 0)
if (Ct != 0) {
ca[Ct] = pc;
sub_depth++;
}
disp = ((b3 & 0x1f) << 4) | (b2 >> 4);
if (disp & 0x100)
disp |= 0xFFFFFFFFFFFFFE00LL;
1432,12 → 1486,12
case MEMSB:
ca[15] = pc;
imm_prefix = false;
break;
return;
 
case MEMDB:
ca[15] = pc;
imm_prefix = false;
break;
return;
 
case MFSPR:
b1 = ReadByte(pc);
1669,7 → 1723,7
switch(b2 >> 4) {
case CPUID:
switch(Ra) {
case 0: SetGP(Rt,0x0002LL); break; // Processor ID
case 0: SetGP(Rt,0x0000LL); break; // Processor ID
case 2: SetGP(Rt,0x4e4F5254494E4966LL); break; // "Finitron"
case 3: SetGP(Rt,0x00LL); break;
case 4: SetGP(Rt,0x36346249547373LL); break; // 64BitSS
1772,19 → 1826,41
SetGP(Rt,GetGP(Ra) * GetGP(Rb));
break;
case DIV:
SetGP(Rt,GetGP(Ra) / GetGP(Rb));
if (GetGP(Rb)==0) {
if (StatusEXL < 255)
StatusEXL++;
ca[13] = pc;
pc = ca[12] + (241 << 4);
ca[15] = pc;
}
else
SetGP(Rt,GetGP(Ra) / GetGP(Rb));
break;
case MOD:
SetGP(Rt,GetGP(Ra) % GetGP(Rb));
if (GetGP(Rb)==0) {
if (StatusEXL < 255)
StatusEXL++;
ca[13] = pc;
pc = ca[12] + (241 << 4);
ca[15] = pc;
}
else
SetGP(Rt,GetGP(Ra) % GetGP(Rb));
break;
case MULU:
SetGP(Rt,(unsigned __int64)GetGP(Ra) * (unsigned __int64)GetGP(Rb));
break;
case DIVU:
SetGP(Rt,(unsigned __int64)GetGP(Ra) / (unsigned __int64)GetGP(Rb));
if (GetGP(Rb)==0)
SetGP(Rt,-1LL);
else
SetGP(Rt,(unsigned __int64)GetGP(Ra) / (unsigned __int64)GetGP(Rb));
break;
case MODU:
SetGP(Rt,(unsigned __int64)GetGP(Ra) % (unsigned __int64)GetGP(Rb));
if (GetGP(Rb)==0)
SetGP(Rt,-1LL);
else
SetGP(Rt,(unsigned __int64)GetGP(Ra) % (unsigned __int64)GetGP(Rb));
break;
case _2ADDU:
SetGP(Rt,(GetGP(Ra) << 1) + GetGP(Rb));
1808,6 → 1884,7
if (ex) {
StatusDBG = false;
pc = ca[11];
rts = true;
}
ca[15] = pc;
imm_prefix = false;
1818,6 → 1895,7
if (StatusEXL > 0)
StatusEXL--;
pc = ca[13];
rts = true;
}
ca[15] = pc;
imm_prefix = false;
1825,9 → 1903,10
 
case RTI:
if (ex) {
im = 0;
imcd = 3;
StatusHWI = false;
pc = ca[14];
rts = true;
}
ca[15] = pc;
imm_prefix = false;
1839,6 → 1918,7
if (ex) {
Cr = (b1 & 0xF0) >> 4;
pc = ca[Cr] + (b1 & 0x0F);
rts = true;
if (sub_depth > 0) sub_depth--;
}
ca[15] = pc;
1848,6 → 1928,7
case RTSQ:
if (ex) {
pc = ca[1];
rts = true;
if (sub_depth > 0) sub_depth--;
}
ca[15] = pc;
/trunk/software/emuThor/bin/emuThor.exe Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.