Skip to content
This repository has been archived by the owner on Apr 19, 2024. It is now read-only.

v0.2

Latest
Compare
Choose a tag to compare
@NiV-L-A NiV-L-A released this 31 May 18:57
· 2 commits to main since this release

Version 0.2 (31/05/2023)
- Added support for writing in MIPS assembly.
- Implemented the Keystone engine (version 0.9.2) to parse and assemble the instructions.
- Keystone.Net.dll was acquired by building the Keystone.Net project in Release mode, with target framework .Net Standard 2.0. The project can be found at https://github.com/keystone-engine/keystone/tree/master/bindings/csharp.
- keystone.dll was acquired by downloading the source code and following the guide at https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-WINDOWS.md.
- NOTE: After running the "..\nmake-dll.bat" command, no .dll was created in "\build\llvm\lib", contrary to what the guide says. Instead, the .dll was in the "\build\llvm\bin" directory.
- NOTE: Before building keystone.dll, the file located at "\llvm\include\llvm\MC\MCInstrDesc.h" has been changed so that the function "hasDelaySlot()" will always return false.
- Added an autocompletion list.
- The list pops up automatically as text is inserted into TextArea.
- By default, the list has the abbreviated commands listed in CLPS2C_Documentation.txt.
- The list auto-fills with words that have already been written before.
- Added the snippets function. Paste the snippets through the Snippets menu.
- By using the Snippets.txt file in the same path as the executable, the app can load chunk of text from it.
- The file can be changed manually to provide custom snippets. Read the section "Snippets" in CLPS2C_Documentation.txt to know more about the syntax of the snippets.
- Note that the app reads the file only once, on startup. If you modify the file, you must restart the app for the changes to take effect.
- If the file can't be found or if the file has no valid snippets, an error message will pop up saying so. In either case, the snippets function gets disabled.
- Added File->New (Ctrl+N).
- Creates a temporary new file.
- Added File->Open (Ctrl+O).
- When opening a file, the window's title is changed to the filename of the file opened.
- If the file opened has been modified since the opening, the character "" will appear in the window's title.
- Added File->Save (Ctrl+S).
- If the file has been modified and has been saved, the "
" character gets removed.
- Added File->Save as... (Ctrl+Shift+S).
- Added Settings->Keep output's window scroll bar position.
- Added Settings->Enable SendRaw command.
- Added Settings->Enable auto-completion list.
- Added Settings->Write opcodes as comments in assembly's output.
- Changed Settings->Auto-indentation to Settings->Enable auto-indentation.
- Added a button to copy to clipboard the contents of the output's window.
- Added a message that pops up if the user is about to close the app and the current file has not been saved.
- Added regex to remove comments.
- Removed usage of Microsoft.CodeAnalysis to remove comments.
- Removed redundant packages from project.
- Polished code.
- Changed CLPS2C_Documentation.txt structure format.
- Fixed bugs:
- Prevent control characters from getting inserted into TextArea.
- Fixed a bug when only writing "" in TextArea and then sync.
- Known bugs:
- RemoveComments() doesn't detect single line comments in which quotes are present (example: SendRaw " //"OKAY").
- E-type codes have a maximum of 0xFF lines that they can execute. CLPS2C ignores it.
- If a label is missing in the assembly region, the error line displayed is at the "ASM_END" line (not really a bug but let's say it is).
- Zooming in the TextArea window eventually hides the line indicator on the left.
- If an opcode has a period (for example: abs.s), the letters after the period will not be highlighted.