1
0
mirror of https://github.com/livingcomputermuseum/ContrAlto.git synced 2026-05-05 15:34:48 +00:00

- Fixed two memory state machine issues:

1) The Orbit microcode occasionally expects to be able to do a double-word read in cycles 6 and 7 instead of the usual 5 and 6.
  2) The double-word logic incorrectly handles several species of overlapped read/writes, which Spruce's layout microcode uses.

As a result, Spruce now works, as do the Smalltalk-80 images.

Several tweaks to microcode disassembly (still rough).

Completed Orbit / Dover ROS / Dover Print Engine emulation.  Still some rough edges; it works and can create PDF output.

Tweaked Disk Controller's Restore operation, it is now more accurate though wasn't causing any noticable issues.
This commit is contained in:
Josh Dersch
2017-07-10 16:49:12 -07:00
parent c671b04ee8
commit f849b795a6
32 changed files with 1437 additions and 951 deletions

View File

@@ -109,9 +109,6 @@
this.StopButton = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this._taskData = new System.Windows.Forms.DataGridView();
this.TaskName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.TaskState = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.TaskPC = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this._otherRegs = new System.Windows.Forms.DataGridView();
this.Reg = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -136,6 +133,10 @@
this.dataGridViewTextBoxColumn9 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.TaskName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.TaskState = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Bank = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.TaskPC = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Microcode.SuspendLayout();
this.SourceTabs.SuspendLayout();
this.Rom0Page.SuspendLayout();
@@ -855,6 +856,7 @@
this._taskData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.TaskName,
this.TaskState,
this.Bank,
this.TaskPC});
dataGridViewCellStyle29.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle29.BackColor = System.Drawing.SystemColors.Window;
@@ -881,31 +883,6 @@
this._taskData.TabIndex = 0;
this._taskData.TabStop = false;
//
// TaskName
//
this.TaskName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
this.TaskName.HeaderText = "T";
this.TaskName.MinimumWidth = 16;
this.TaskName.Name = "TaskName";
this.TaskName.ReadOnly = true;
this.TaskName.Width = 16;
//
// TaskState
//
this.TaskState.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;
this.TaskState.HeaderText = "S";
this.TaskState.MinimumWidth = 16;
this.TaskState.Name = "TaskState";
this.TaskState.ReadOnly = true;
this.TaskState.Width = 16;
//
// TaskPC
//
this.TaskPC.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.TaskPC.HeaderText = "uPC";
this.TaskPC.Name = "TaskPC";
this.TaskPC.ReadOnly = true;
//
// groupBox3
//
this.groupBox3.Controls.Add(this._otherRegs);
@@ -1234,6 +1211,40 @@
this.dataGridViewTextBoxColumn11.Resizable = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridViewTextBoxColumn11.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// TaskName
//
this.TaskName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
this.TaskName.HeaderText = "T";
this.TaskName.MinimumWidth = 16;
this.TaskName.Name = "TaskName";
this.TaskName.ReadOnly = true;
this.TaskName.Width = 16;
//
// TaskState
//
this.TaskState.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;
this.TaskState.HeaderText = "S";
this.TaskState.MinimumWidth = 16;
this.TaskState.Name = "TaskState";
this.TaskState.ReadOnly = true;
this.TaskState.Width = 16;
//
// Bank
//
this.Bank.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
this.Bank.HeaderText = "B";
this.Bank.MinimumWidth = 16;
this.Bank.Name = "Bank";
this.Bank.ReadOnly = true;
this.Bank.Width = 16;
//
// TaskPC
//
this.TaskPC.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.TaskPC.HeaderText = "uPC";
this.TaskPC.Name = "TaskPC";
this.TaskPC.ReadOnly = true;
//
// Debugger
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -1306,9 +1317,6 @@
private System.Windows.Forms.DataGridViewTextBoxColumn S;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.DataGridView _taskData;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskName;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskState;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskPC;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.DataGridView _otherRegs;
private System.Windows.Forms.DataGridViewTextBoxColumn Reg;
@@ -1366,5 +1374,9 @@
private System.Windows.Forms.DataGridViewTextBoxColumn Address;
private System.Windows.Forms.DataGridViewTextBoxColumn Data;
private System.Windows.Forms.DataGridViewTextBoxColumn Disassembly;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskName;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskState;
private System.Windows.Forms.DataGridViewTextBoxColumn Bank;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskPC;
}
}