parkertenbroeck / mips Goto Github PK
View Code? Open in Web Editor NEWA Java based Assembler and Emulator for the MIPS assembly language.
License: Apache License 2.0
A Java based Assembler and Emulator for the MIPS assembly language.
License: Apache License 2.0
Both [sltiu (ArithLogI) $t = ($s <SE(i))] and [addiu (ArithLogI) $t = $s + SE(i)] have the same OP code of 0b001001. Because of this Only one can be supported. See the MIPS ISA / Encoding reference
doc.zip
for more information
Add Color Themes
Create a Memory Paging system to improve memory usage
Allow multiple files to be opened at once
Each file will be a tab alongside the top of the formatted text area
The file to act as the main will be the first tab to the left
Convert all logging to use the java logger
add logging file so logs are saved
show the plugin name for every log it generates
Remove old unwanted files stored in the Documents folder (Excluding User Projects)
Create a Plugin Folder System to allow each plugin to have and manage their own folder
Folders will be created with the same name and in the same directory as the plugin
Move to a plugin based system for assembly compiling and machine code execution
requirements
Replace current register GUI with a panel unique to each ISA to display internal state of CPU however fit
Runtime system calls will still be registered through the SystemCall plugin handler so that new system calls will be registered the same for all ISA implementations.
Assembly will be handled (Havent decided yet)
Other
Implement a dependency system for plugins
ex:
plugin x requires plugin y and z in order to work
When using the SCREEN_IS_KEY_PRESSED system call this error can happen
[Error] [RunTime] [System Call] System Call: SCREEN_IS_KEY_PRESSED from plugin: Screen
java.lang.NullPointerException
at org.parker.mips.plugin.internal.syscall.Screen.isKeyPressed(Screen.java:85)
at org.parker.mips.plugin.internal.syscall.ScreenSystemCalls$1.handleSystemCall(ScreenSystemCalls.java:26)
at org.parker.mips.plugin.syscall.SystemCallPluginHandler.SystemCall(SystemCallPluginHandler.java:110)
at org.parker.mips.processor.InstructionDecode$4.runInstruction(InstructionDecode.java:62)
at org.parker.mips.processor.InstructionDecode.runInstruction(InstructionDecode.java:598)
at org.parker.mips.processor.Processor.singleStep(Processor.java:116)
at org.parker.mips.processor.Processor.run(Processor.java:70)
at java.base/java.lang.Thread.run(Thread.java:834)
Whenever a new GUI was created that registered a value observer on an option the observer would not be removed at the end of the GUI component lifetime, This would also keep reference to any objects inside the observer. Now options are registered with a linked observer. an object (normally the caller) is passed into the addLinkedObserver method. This allows for the observer to be removed when the object is at the end of its lifetime (normally called when the window closes)
Finish the Javadoc for the SystemCallPlugin class
-add automatic memory label remapping to allow users to have non interfering memory labels inside of each inline command
-add option to have each statement be compiled ahead of time(cannot access memory lables outside of definline if this option is used)
For many updates the Live Memory Editor / Viewer has been ignored
-Allow for different views (dec, hex, bin, ascii)
-Allow live editing of memory values
-Allow for searching of memory by index or by memoryLable names
-Possibly allow for memory to be highlighted in a range say index 100- index 200 or MemoryLable1: - MemoryLable2:
Move all of the compiler Documentation into one HTML File
also Make appearance better?
Re write the error logging system inorder to give better indications of what has gone wrong
-This Mostly Applies to Loading and running plugins
-currently no features of the preprocessing statement if are working
Optimize the GUI so the frame wont lag as much when autoUpdating during the CPU auto run
Allow the pre processor to request information about specific system calls ie. Their system call ID, if they have a hard or soft ID
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.