Releases: davispuh/gear-emu
Release Version 22.09.02 SpinView Graphics Upgrade
Refactored to optimize drawing speed and have an improved GUI on SpinView
.
Commit d07cd7a CogView graphics upgrade completed
- Release Version v22.09.02.
- Refactored Spin memory view completed:
- Improved redraw of memory data, with faster drawing of headers, address column, and main memory values itself.
- Added a new program setting for drawing top and bottom headers.
- Added
GUI/DrawingSectionManager.cs
andUtils/EnumTraverseExtension.cs
to help to ordered drawing of every section.
- Improved graphics render quality of text and graphics elements on custom controls:
CogView
,MemoryView
,SpinView
,HubView
andCogView
. Marginal impact on performance, by improvements in drawing algorithms on each control. - Added Icon support on floating windows.
- Cleaned code for double-buffering on
CogView
,MemoryView
,SpinView
. - Removed unused referenced assembly:
PresentationFramework
. Prevent not found dependencies error when open GEAR project on MonoDevelop. - Added documentation on some empty description methods.
Commit 4e679f0 CogView graphics upgrade
- CogView graphics upgrade: use system highlight color for current executting line (program cursor).
Commit bbee325 Doxygen documentation upgrade part 1
- Doxygen documentation upgrade: changed to xml style for many tags (summary, remarks, returns).
Release Version 22.09.01 CogView, SpinView and MemoryView optimizations & enhancements
Refactored to optimize drawing speed and have a improved GUI on CogView
, SpinView
and MemoryView
.
Commit 87d906d CogView appareance enhanced.
- Changes on
CogView.cs
:- The appareance of the current executting line (program cursor) now is selectable program setting. Can be bold text, a frame around the text line, or both.
- Gear Emulator window starts now with a size of 1024x768, to help to standarize documentation images.
- Updated
.gitignore
: added more visual studio and vscode definitions. - Updated secuence diagrams files: Changed extension
.mcsgen
to more standard.msc
. Changed path of documentation files toDoc/sorce/
. Modified doxygen documentation accordlingly.
Commit 1e6cd95 CogView, SpinView and MemoryView optimizations.
- Refactored code to improve performance, using double buffering on CogView, SpinView and MemoryView.
- Refactored drawing logic to be time efficient.
- Changes on
CogView.cs
:- In SPIN interpreted mode, now up to five memory values are showed, conforming an encoded instruction. The show memory button now shows the binary representation of each instruction, using the same length of bytes of the instruction.
- When cog is running in PASM native mode, the hovering message now explains more, giving details if origin or destination fields are used by the instruction, if them are using a inmmediate value, or a pointer to a memory and its value.
- When following program cursor, the panel is completely white, else grey. This simplification allowed to accelerate of drawing, by removing variables and operations.
- The spin interpreted details are drawn like a separated panel. The stack now have a header, showing its length, and have a level number.
- The default start value of display decoded program values as hexadecimal or decimal, now is a program setting.
- Using Parallel proccesing to improve performance:
- Initially fill the array of color brushes used to paint each byte of SPIN map (32KB), using Parallel.ForEach with automatic partitioner. Also, generate icons for each type of node of tree view in a separate thread. Both changed in
SpinView.cs
.
- Initially fill the array of color brushes used to paint each byte of SPIN map (32KB), using Parallel.ForEach with automatic partitioner. Also, generate icons for each type of node of tree view in a separate thread. Both changed in
- Added methods to determine the length of SPIN instruction, advancing the memory accordlingly on
InstructionDisassembler.cs
andMemorySegment.cs
. Also added methods to get binary text representation of PASM instruction. - Corrected reset values on TV & VGA Plugins.
Commit 1a8a849 Minor changes previous to CogView optimizations.
- Some name changing on methods and local variables on
InstructionDisassembler.cs
andEmulator.cs
. - Changed some potential localized strings to inmutables on
AboutGear.cs
,InstructionDisassembler.cs
,InterpretedCog.cs
. - Added custom debugger text for
Gear.Propeller.DirectMemory
andGear.GUI.CogView
classes. - Minor changes on documentation.
Commit eea6143 Reset image on TV & VGA Plugins 2nd part.
- Corrected plugin files added.
Commit 0e2e5b2 Reset image on TV & VGA Plugins.
- Added OnReset() methods on Television and vgamonitor plugins: now the screen is cleaned when the user reset the emulator.
- Corrected resources files to be validated against XSD schema: using the correct
http:
prefix, to be correctly validated on VS Studio 2019. Apllied to all*.resx
files. - Fixed format of resharper commentaries.
- Added Parallax Propeller as vector images:
.svg
files.
Release Version 22.08.01 Code cleanup UI on CogView.
Commit 9648f0f Release v22.08.01
- Minor corrections on
readme.md
andchangelog.md
.
Commit 27093c2 Merge commit '195e7f5' new version v22.08.01
- New version v22.08.01
Commit 2fdeb0a Code cleanup UI on CogView.
- Changed in Cog View UI:
- Separated and ordered in two different toolstips: buttons to perform actions, and labels to show information.
- When a cog is stopped, the panel is cleared, to visually differentiate when a cog is running.
- When PASM code is shown, added the option to show value of operation as hexadecimal or decimal base, like SPIN bytecode. changes in
InstructionDisassembler.cs
andCogView.cs
.
- Corrected error on restore in wrong position a unpinned tab when other where selected to pinned, in
Emulator.cs
andTabManager.cs
. - Added header to memory panel, to show the offset to each address, in Spin Map tab
SpinView.cs
. - Modified header background color of Main Memory tab, to use the same of other headers, in
MemoryView.cs
. - Code cleanup and refactoring in
CogView.cs
and in some parts ofCog.cs
, affecting alsoInterpretedCog.cs
andNativeCog.cs
.- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Use of data bindings to global properties, for
FreqFormat
to show clock frequency on Spin byte code. - Added XML & Doxygen comments in files.
- Removed extra spaces at line ends.
- Code renaming on classes and files, documenting almost all.
- Name changes of
SubInstruction
toInstructionVariant
,ParsedInstruction
toDecodedPASMInstruction
,SubAssignment
toAssignmentVariant
,ParsedMemoryOperation
toDecodedMemoryOperation
,ParsedAssignment
toDecodedAssignment
, affectingPropeller/Assembly.cs
,Disassembler/Assembly.cs
,Propeller/Spin.cs
,Disassembler/Spin.cs
,AssemblyInstructions.cs
,SpinAssignments.cs
,SpinInstructions.cs
,InstructionDisassembler.cs
. - Name change of
MemoryManager
toMemorySegment
class, also splitting old filePropeller/MemoryManager.cs
intoMemorySegment.cs
andDirectMemory.cs
to separate classesMemorySegment
andDirectMemory
to its own file. - Name change of
DataUnpacker
toDataDecoder
class, also changing old fileDataUnpacker.cs
toDataDecoder.cs
.
- Name changes of
- Prepared modification of Main graphics context variable for the direct painting of MemoryView and SpinView panels, like CogView does, instead to use a bitmap backbuffer, in
MemoryView.cs
andSpinView.cs
. - Added documentation on SpinBytecode to repository, and added link to it on
readme.md
.
Release Version 22.07.01 Code cleanup UI on SpinView.
Commit 195e7f5 Update version data
- version 22.07.01
Merge commit 'f2647ca'
Commit 9a615fb Code cleanup UI on SpinView.
- Changed constant name
PropellerCPU.MaxRAMAddress
toPropellerCPU.MaxMemoryAddress
, to clarify it refers to top of ROM, not RAM. AffectsPropellerCPU.cs
,CogView.cs
,InterpretedCog.cs
,MemoryManager.cs
,SpinView.cs
. - Code cleanup and refactoring in
SpinView.cs
and in some parts ofEmulator.cs
.- Improved visualization of Spin objects in map, with more details and different colors. Added three alignment modes on map: none, at Byte, or at Word, with a new tool strip selector with icons.
- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Use of data bindings to global properties, for
FreqFormat
to show clock frequency on Spin byte code. - Added XML & Doxygen comments in files.
- Removed extra spaces at line ends.
- Corrected Doxygen documentation on mcsgen diagrams, for method name change of
Gear.GUI.Emulator.LoadPluginFromFile()
.
Release Version 22.06.03 Fix issue #30
Commit f2647ca Fix issue #30 - Linux-Mono: Version 22.06.02 crashes directly after loading a binary.
- Wrong initialization order of components in
HubView.cs
andMemoryView.cs
.
Release Version 22.06.02 Code cleanup UI on RingMeter & MemoryView + performance improvement
Commit 812346a Code cleanup UI on RingMeter & MemoryView + performance improvement
-
Changed Gear image on ring meter: updated to better quality and colorful image and improved performance, thanks to refactoring, use precalculated screen positions for numbers on ring, pre-defined images, paralellism to load resources and precalculate.
-
Corrected error if no file name was selected on dialog to open a plugin or binary file, but pressed open button. Corrected methods
PluginEditor.OpenButton_Click(.)
,GearDesktop.OpenPluginButton_Click(.)
,GearDesktop.OpenBinaryButton_Click(.)
,Emulator.OpenPlugin_Click(.)
,Emulator.OpenBinary_Click(.)
. -
Auto update of program properties, using binding instead of custom methods, for
EmbeddedCode
,TabSize
,LastPlugin
andUseAnimations
in filesAppPropertiesEditor.cs
,Emulator.cs
,PluginEditor.cs
. -
Added Refresh button and manage visibility of Reset button on
AppPropertiesEditor.cs
. -
Improved font rendering and drawing aliased lines on
Emulator.cs
,HubView.cs
,RingMeter.cs
,BitView.cs
,MemoryView.cs
,PluginEditor.cs
. -
Code cleanup and refactoring in files:
RingMeter.cs
,MemoryView.cs
and in some places inPluginBase.cs
,PluginEditor.cs
,PropellerCPU.cs
,ModuleCompiler.cs
.- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Identify paralellism points with complexity.
- Added XML & Doxygen comments in files.
- Removed extra spaces at line ends.
-
New file
CommonUI.cs
to declare common objects for User Interface. Moved there declaration ofIRequestRepaintable
interface.
Release Version 22.06.01 UI Speed optimizations
Commit 27bcd05 Code cleanup UI BitView + paint optimization
-
Improved performance of GUI on
BitView
control, redrawing it only on value changes.- Conditional control painting: only pins changed or full redraw if it is requested.
- Pre-calculated rectangle coordinates for each pin.
- Refactored logic to set
Brush
only once in constructor.
-
Code cleanup and refactoring in files:
BitView.cs
, and in some places inHubView.cs
,Emulator.cs
.- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Identify paralellism points with complexity.
- Added XML & Doxygen comments in files.
- Removed extra spaces at line ends.
-
Added custom Text for debugging with selected information, on files:
BitView.cs
,Emulator.cs
,HubView.cs
,PropellerCPU.cs
. -
Compacted decorations in attributes or members with multiple Attributes on
TimeUnitComboBox.cs
,TimeUnitMgmt.cs
,TimeUnitToolStripComboBox.cs
. -
Added file name in header comments on
xx.Designer.cs
files.
Commit 3202daf Code cleanup UI Emulator, FloatedWindow, PluginEditor and AboutGear
-
Fixed bug when running emulator, but floated windows were not updated on
Emulator.cs
. -
The order of tabs on emulator is remembered when a view is pinned/unpinned or floated/unfloated. Also, now tab repetitions are numbered if multiple copies of a plug-in are loaded. Created
GUI.TabManager class
to manage the document tabs. -
Fixed bug on enable/disable buttons (step Instruction and step Clock) when the emulator arrives to a breakpoint.
-
Added new app property:
UseAnimations
, to enable/disable the use of animations on splitters of Emulator. -
Corrected namespace dependency of app properties on
Gear.Utils
for classesTimeUnitsEnum
andNumberFormatEnum
. -
Moved
RememberRTBoxPosition
class toGear/GUI
namespace and folder, on File 'RememberRTBoxPosition.cs'. -
Code cleanup in files:
Emulator.cs
,FloatedWindow.cs
,AboutGear.cs
,AppPropertiesEditor.cs
,CollapsibleSplitter.cs
,TabManager.cs
,PluginEditor.cs
.- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Added legacy TODO tags in Doxygen documentation, and also identify paralellism points with complexity.
- Added XML & Doxygen comments in files.
- Updated format of
@version
tags tovYY.MM.dd
. - Removed extra spaces at line ends.
-
Added
.gitattributes
file to preserve line endings for*.sh
files on windows.
Release Version 22.05.04 Emulator Core code Cleanup
Release Version 22.05.04 Emulator Core code Cleanup
Commit d2613c4 Bugfix VGA & television not working
- Fixes bug on clearing arrays that broke VGA and television plugins, on
PropellerCPU.cs
.
Commit 0b06168 Code cleanup on PropellerCPU
- Ordered update of
ClockMode
,XtalFrequency
&CoreFrequency
in HubView, using event detection when that properties changes inPropellerCPU
. Files:HubView.cs
,HubView.Designer.cs
,Emulator.cs
andPropellerCPU.cs
. - Code cleanup in files: specially on
PropellerCPU.cs
, but also inNativeCog.cs
,InterpretedCog.cs
,Cog.cs
.- Added
Cog.CogNum
property that replacePropellerCPU.CogID()
. - Changed method names to
Cog.RequestHubOperation()
andPropellerCPU.ExecuteHubOperation()
to clarify the colaboration between classes. - Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Added legacy TODO tags in Doxygen documentation, and also identify paralellism points.
- Put extra UserControl documentation of SPIN interpreted code at the end of methods, lefting more cleaner the headers of methods.
- Added XML & Doxygen comments in files.
- Added
- Added first version of documentation of target .Net Framework and C# versions
Gear_Emulator_C#_Versions.md
.
Commit bf3509d Code cleanup on NativeCog
- Code cleanup in files: specially on
NativeCog.cs
,NativeCogInstructions.cs
, and alsoClockSource
,FreqGenerator.cs
,PLL.cs
,PLLGroup.cs
,SystemXtal.cs
,VideoGenerator.cs
.- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Added XML & Doxygen comments in files.
Commit 484a19e Code cleanup on InterpretedCog
- Corrected visibility of abstract method
Cog.Boot()
toprivate protected
, affecting descendents classesInterpretedCog
andNativeCog
. - Code cleanup in files: specially
InterpretedCog.cs
.- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Added XML & Doxygen comments in files.
Commit 2db28c5 PASM Condition codes to be intuitive evaluated
- Invert sense of return value on
Cog.ConditionCompare()
, to a intuitive one: ReturnsTRUE
if logic condition is valid, elseFALSE
. Files:Cog.cs
,FreqGenerator.cs
,NativeCog.cs
.
Release Version 22.05.03 Refactored EmulationCore.Cog, Code cleanup 6
- Code cleanup in files: specially
Cog.cs
andDisassembler/Assembly.cs
,Propeller/Assembly.cs
,AssemblyInstructions.cs
,DataUnpacker.cs
,InstructionDisassembler.cs
,NativeCogInstructions.cs
,Disassembler/Spin.cs
.- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Added XML & Doxygen comments in files.
- Unification of references to a PropellerCPU, using the same name convention: CpuHost. Files
Cog.cs
,InterpretedCog.cs
,NativeCog.cs
,VideoGenerator.cs
.
Release Version 22.05.02 Emulator speedup and code cleanup 5
-
Temporal emulator speedup: Corrected latency on rerun emulator. The definitive solution is use a new background thread to run the emulation cicle and incorporate paralellism to
Emulator.Step()
. -
Code cleanup in files:
Propeller/Spin.cs
,SpinAssignments.cs
,SpinInstructions.cs
,SpinMathInstruction.cs
,SpinRegisters.cs
,PluginBase.cs
,BinarySizeException.cs
,SingleInstanceException.cs
.- Refactored naming and visibility of members, parameters and local variables in classes, methods and enums.
- Added XML & Doxygen comments in files.
-
Fix security warning CA2105: 'Array fields should not be read only', adopting ReadOnlyCollection static object as storage in files
SpinAssignments.cs
,SpinInstructions.cs
,SpinMathInstruction.cs
,SpinRegisters.cs
. -
File name changed from
ModuleLoader.cs
toModuleCompiler.cs
, to be sincronized the class name with the file, as good practice. -
Updated documentation for plugins in
Plugins_notes
,PluginTemplate.cs
and correspondly format corrections on xml pluginsPinNoise.xml
,SerialIO.xml
,Stimulus.xml
,Television.xml
,vgamonitor.xml
. -
Corrected documentation on method PluginBase.PresentChip() of
PluginBase.cs
. Also updated onPluginTemplate.cs
andPlugins_notes.md
.