/// <summary> /// Displays the Execute information /// </summary> /// <param name="DecodeBufferR"></param> /// <param name="ExecuteBufferL"></param> internal void ExecuteDisplay(ref DecodeExecuteBuffer DecodeBufferR, ref ExecuteMEMBuffer ExecuteBufferL) { int labelWidth = 12; int dataWidth = 16; int offsetX = 21, offsetY = 24; Console.SetCursorPosition(offsetX, offsetY + 2); Console.Write(string.Format("=={0}=={1}==", string.Empty.PadLeft(labelWidth, '='), string.Empty.PadLeft(dataWidth, '='))); Console.CursorTop += 1; Console.CursorLeft = offsetX; Console.Write(string.Format("||{0}||{1}||", string.Empty.PadLeft(labelWidth, ' '), stage[2].PadLeft(dataWidth - ((dataWidth - stage[2].Length) / 2), ' ').PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("=={0}=={1}==", string.Empty.PadLeft(labelWidth, '='), string.Empty.PadLeft(dataWidth, '='))); Console.CursorTop += 1; Console.CursorLeft = offsetX; Console.Write(string.Format("||{0}||{1}||", "Semantics".PadRight(labelWidth, ' '), DecodeBufferR.Instr.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ALUOp0".PadRight(labelWidth, ' '), DecodeBufferR.vector.ALUOp0.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ALUOp1".PadRight(labelWidth, ' '), DecodeBufferR.vector.ALUOp1.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ALUresult".PadRight(labelWidth, ' '), BitConverter.ToInt32(ExecuteBufferL.ALUResult, 0).ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ALUzero".PadRight(labelWidth, ' '), ExecuteBufferL.Zero.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ALUSrc".PadRight(labelWidth, ' '), DecodeBufferR.vector.ALUSrc.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "OFFSET".PadRight(labelWidth, ' '), BitConverter.ToInt32(DecodeBufferR.OFFSET, 0).ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ReadData1".PadRight(labelWidth, ' '), BitConverter.ToInt32(DecodeBufferR.ReadData1, 0).ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ReadData2".PadRight(labelWidth, ' '), BitConverter.ToInt32(DecodeBufferR.ReadData2, 0).ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "PC4".PadRight(labelWidth, ' '), DecodeBufferR.PC4.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "PCBranch".PadRight(labelWidth, ' '), ExecuteBufferL.PCBranch.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "RegDst".PadRight(labelWidth, ' '), DecodeBufferR.vector.RegDst.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "RT".PadRight(labelWidth, ' '), DecodeBufferR.RT.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "RD".PadRight(labelWidth, ' '), DecodeBufferR.RD.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("=={0}=={1}==", string.Empty.PadLeft(labelWidth, '='), string.Empty.PadLeft(dataWidth, '='))); Console.CursorTop += 1; Console.CursorLeft = offsetX; Console.SetCursorPosition(0, 0); }
/// <summary> /// Displays the Memory information /// </summary> /// <param name="ExecuteBufferR"></param> /// <param name="MEMBufferL"></param> /// <param name="isBranch"></param> internal void MEMDisplay(ref ExecuteMEMBuffer ExecuteBufferR, ref MEMWBBuffer MEMBufferL, bool isBranch) { int labelWidth = 12; int dataWidth = 16; int offsetX = 56, offsetY = 0; Console.SetCursorPosition(offsetX, offsetY + 2); Console.Write(string.Format("=={0}=={1}==", string.Empty.PadLeft(labelWidth, '='), string.Empty.PadLeft(dataWidth, '='))); Console.CursorTop += 1; Console.CursorLeft = offsetX; Console.Write(string.Format("||{0}||{1}||", string.Empty.PadLeft(labelWidth, ' '), stage[3].PadLeft(dataWidth - ((dataWidth - stage[3].Length) / 2), ' ').PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("=={0}=={1}==", string.Empty.PadLeft(labelWidth, '='), string.Empty.PadLeft(dataWidth, '='))); Console.CursorTop += 1; Console.CursorLeft = offsetX; Console.Write(string.Format("||{0}||{1}||", "Semantics".PadRight(labelWidth, ' '), ExecuteBufferR.Instr.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "MemRead".PadRight(labelWidth, ' '), ExecuteBufferR.vector.MemRead.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "MemWrite".PadRight(labelWidth, ' '), ExecuteBufferR.vector.MemWrite.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "Branch".PadRight(labelWidth, ' '), ExecuteBufferR.vector.Branch.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "Zero".PadRight(labelWidth, ' '), ExecuteBufferR.Zero.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "BranchSgnl".PadRight(labelWidth, ' '), isBranch.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "PCBranch".PadRight(labelWidth, ' '), ExecuteBufferR.PCBranch.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "RegDstAddr".PadRight(labelWidth, ' '), ExecuteBufferR.DEST.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ALUresult".PadRight(labelWidth, ' '), BitConverter.ToInt32(ExecuteBufferR.ALUResult, 0).ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ReadAddress".PadRight(labelWidth, ' '), MEM.ReadAddress.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "WriteAddress".PadRight(labelWidth, ' '), MEM.WriteAddress.ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "WriteData".PadRight(labelWidth, ' '), BitConverter.ToInt32(MEM.WriteData, 0).ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("||{0}||{1}||", "ReadData".PadRight(labelWidth, ' '), BitConverter.ToInt32(MEM.ReadData, 0).ToString().PadRight(dataWidth, ' '))); Console.CursorLeft = offsetX; Console.CursorTop += 1; Console.Write(string.Format("=={0}=={1}==", string.Empty.PadLeft(labelWidth, '='), string.Empty.PadLeft(dataWidth, '='))); Console.CursorTop += 1; Console.CursorLeft = offsetX; Console.SetCursorPosition(0, 0); }