History: .
I began working on the RosAsm project in September 1998. The very first version was written with Asm32. I begin this history in July 2000, at a development state that allowed me to set the version number to 1.00.
V1.00 - State:
Assembler/linker/IDE
Editors for Source, Icon, Menu, Dialog
Auto-compiles its source (640,000 octets) in 16.5 seconds on K6/200//Win95
Runs under ReactOs/Win95/95/NT/2000
[V1.01 to V3.07e snipped].
V3.08a
Several improvements in the Resources 'Choice-Bar' (what enables the choice for loading / deleting Resources). This Bar now shows the ID number of the chosen Resource. It also allows exiting any of the processes by a single [Esc] hit. Useful to recall the IDs numbers.
Improvements in the Resources storage. Inside each Resources type, the objects are now sorted in IDs order, when re-compiling. This is required under the NT Family. Also, there was a bug in an internal list management that produced a hang if a Resource was deleted between two Compilations. Fixed.
When stepping with the Debugger Dialog, closing this Dialog stops the Debug Process, (instead of going on running , like it still does when hitting the [OK] Button). This may help a little bit when testing infinite loops or hanging instructions with 'Int 3' inside.
The chosen solution for saving Undo Files is that a Folder is now created by RosAsm at launch time. This Folder, always located aside RosAsm itself, is then used, whatever current Directory further definition. Two alert Boxes are added to inform user of possible problems with Blocks-Undos when running RosAsm multi-instances. (Running RosAsm multi-instances remains allowed...).
Add a test for fixing the problems encountered with CR-ending Blocks. (This happened with [Arrow] Selections).
V3.08b
Implement the possibility of declaring text (including Multi-Lines) Equates. Example:
[SomeText 'Agaga
Agigi
Agogo']
[ViewThisOne: B§ SomeText, 0]
One more Font is added to solve a problem encountered with Users Definition of 'Big Fonts' in the Win Configuration Panel.
V3.08c
Fix two typos in FPATAN and SHRD reg reg CL encodages.
V4.00a/b/c
First release with integrated Disassembler
Implementation of the TITLE feature
Coding Dialog
A couple of minor bugs have been fixed along with these implementations.
Implementation of Body Equates under the form of [MyBodyEquate < 0111, 0222, 0333 >].
V4.01a
Most PE disassembled.
Revue the design of [Home] / [End] in Source Editor.
Move the Expression Parser from after the Equates and Macros Jobs to before the Equates and Macros Job. Win Equates still allowed, but no more User Equates. This is to allow Expressions usage inside Macros Instructions.
New Macros Unfolder that now computes all of Macros and Equates because users can not understand why the unfolding may be different from the real computation when nested Equates are involved Much slower, but yet fast enough, and much better to wait a couple of seconds than having an impossible to understand result, in such complicated cases.
V4.01b
Minor improvements in the Encode / Decode Box.
Extend the Selection of Source Text, on error, to hold the whole Instruction, even with Multi-Lines ones, or for entire Blocks of Data.
Move the Expression Parser job. It is now nested in between the Equates and the Macros jobs, in order to allow Equates inside Expression and Expressions inside Equates.
Auto-clear leading / trailing Spaces inside BodyEquates (turns < eax or 1 > into <eax or 1>)
Add a test: for orphan Colons (Previously, ':' alone was not detected).
V4.01c
Minor improvements in the Dialog Editor Up/Down Controls for moving-Sizing.
Bug fix in the Dialogs Class Record holding: Odd Names was turning the Controls Data unaligned.
The displacement Bytes of effective Addresses, in the Disassembler, were branched to an unsigned Routine. Fixed.
Minor adjustments in the Disassembler String outputting.
Preview implementation of OpHelp.exe as a replacement of the OpCode Table viewing (Mnemonic Right-Click).
Minor adjustments in the Disassembler for Api Functions Pointing and for Text output.
V.E.
First implementation of the Disassembler Code Mapping, Symbolic Analyse, and Export analyses (the Disassembler is now DLLs able).
When nesting the Expression Parser calls intos Equates and Macros jobs, I broke down the error search Function for this chunk of computations. Fixed.
I wrote a particular Routine for cleaning the Clipboard content. Required because, at RosAsm Board, Sources, when formatted as 'Sources' contain a lot of weird control characters , that the Source Editor is then unable to understand, and, of course, the Assembler unable to parse. The bad thing is that, now on, Copy/Paste of any characters up to 127 will be made impossible...
V4.02b
Minor bugs fixes release of previous .02a implementations.
V4.02c
Revue of the Basic Icon search Routines. They were very old and badly organized. The Routines concerned by these modifications are: 'PeekIcon' / 'PokeIcon' / 'OpenRosAsmPe' / 'DisMain'.
A minor bug in the String outputting of the Pe Editor (Strings not visible when written at the end of the Source, without any CR/LF) is fixed.
Third version of the Disassembler Code Mapping Strategy.
Major bug able to destroy Resources fixed.
V4.03a
First version providing an opened area for volunteers who want to write Text HLL interpretation of Disassembly Sources.
Disassembler Data Strings recognition implemented.
Finish the implementation of OpHelp Check Table.
Fix a detail in the [Ctrl][Y] Line Pos management.
V4.04a
First version with external Files for Equates / Structures / Api Functions.
Fix a detail in Auto-Indent (Off >>> IndentCount to zero).
Implementation of the Styles Help in the Dialog Editor.
V4.04b
Fix a minor bug in Disassembly of LEA (wrong 'Lea reg reg' test).
Revue the way it checks for Path\FileName.ext in [new] Option.
First version with a Data Memory View in the Debugger.
V4.04c
Improvements in the Debugger memory View. (+ add of a [View More] Dialog).
Replace the 'ControlX' call by a 'ControlD' call in the [Ctrl][Y] Line deletion feature.
Cut off the Code trailing zeros analyses in the Disassembly job.
Fix a sizing problem in the TITLE feature's Tab Control.
V4.04d
Temporarily reactivate the [Symbolic Analyses] in the Disassembler (they had been made un-available since the last reorganizations of the Api Functions as external File).
Under WINE, '§' Char Marker is not properly outputted. I replace it by '$'. This does not change anything at the user input point of vue. '§' remains available for 'French-like' KeyBoards and the substitution is silently done.
Add a WineReadMe.txt in RosAsm.zip.
Disassembler: On Text ended by a zero Char, the quotes were not closed. Fixed.
V4.04e
Turn the [Search Up] / [Search Down] Double Click Menu Option 'Jump on first shot'.
Enable Dialog Class without Menu (Dialog Editor).
Multi-Lines Comments implemented.
When having both BookMarks and TITLEs, the TITLEs Tab was wrong because of calls order. Fixed.
V4.05a
General revue of RosAsm Source: A bit more HLL (replacement of the old 'CallBack' Macro by 'Proc' one, in particular). Auto-Compilation is now a bit slower because of the new HLL set, which requires one more Macros Jobs pass (17 seconds now, for the whole beast -1.700 Mo- on K6/300).
Restore the Alternate Syntaxes parsings and re organize the Comments and MLC deletions in the Assembler.
Suppress the feature for re-ordering the Local Labels on Right-Click on Block. It was too dirty and of no use.
In the Dialog Editor, rewrite of the feature for retrieving a Template from ClipBoard.
Fix the Flags problem in the Menu Editor -none too late- (When inserting or deleting an Item, the downward Items' Flags were wrongly adjusted, since....).
V4.05b
Implement a TickCount for mouse Block Selection when moving up or down: Slow to fast effect.
Bug found inside the Encoder: When testing all the Instructions one by one, I have fixed a problem for one Instruction producing a wrong code in another one. This was in the 'gg3' encoding of the PSLL / PSRA / PSRL instructions with 'imm to reg' Parameters.
A typo during the V.4.05a clean-up work perverted one of the Sub-Routines of the Memory Manager. Fixed.
Since V.4.01a/b, when the Expression Parser has been moved from before Equates and Macros replacements to inside (nested inside replacements jobs for flexibility), the Real Expressions Parser was fooled by the 'DoneFlag' (High Byte Bit). Restored.
Add a security at the end of the Buffer for the Encode/Decode Box. It was previously able to increase and overflow after several runs.
V4.05c
Error case added for Double Declarations of '&0' meaningless Automatic Labels (in macro).
Hanging bug in [Delete Menu] fixed.
Compilation 2.73 times faster. AutoCompilation on K6/300/Win95 (Source = 1.7 Mo.):
V.4.05b = 16.92 Seconds.
V.5.05c = 6.18 Seconds. (3.6 s/Mo -276 Ko/s -)
Add an Item to the Double-Click Float Menu: On Number >>> [Bases Forms], for Hexa, Decimal, Binary.
V4.05d
Add of [x] Buttons in the User Menu Edition (Configuration], for deleting Items.
Yet a bit faster (yet AutoCompilation on K6/300/Win95 (Source = 1.7 Mo.)):
V.5.05c = 6.18 Seconds
V.5.05d = 5.37 Seconds.
Re-organization of the PEs Headers building, in order to allow DLLs without Data / Reloc / Import sections, plus set the DLL Flag for DLLs in the 'PeHeaderCharacteristics' Record of the PE-Header.
V4.05e
Bug fix in Data building: The usage of Win32 Equates inside '#n' Loops returned a wrong Value, but for the first one.
Add a test in TITLE Tab for preventing from empty TITLED Chunks.
The redefinition of the default [Top] TITLE was impossible because of a bad test in the first Assembler Parser. Fixed.
V4.06a
Right-Click upon text, but not achieving in any action, was fooling the Caret Position. Fixed.
Missing delete of Multi-Lines-Comments in the Macros-Unfolder feature added.
A stupid no use test (left-over of a Copy/Paste...), for Reals, in the Expressions parser, refused to eat some Numbers. Removed.
Implement Kenny's Key-On / Key-Off Table, in order to suppress all calls to the weird Win32 'GetKeyState' Function, and in order to solve some problems under WINE (should be much more portable across the various OSes versions, including ReactOS).
Complete re-write of the two Block-Selections (by KeyBoard and by Mouse) and implementation of a new Windows-like Caret.
Implement a 'Once-for-all' translation from Win32 Equates to Hexa, in the Assembler (before the Equates and Macros jobs), and suppress the multiple downward computations for this.
Re-write of the Win32 Equates File(s) Loader:
Extend the First Char Indices Table to 256 Bytes.
Save the internal use (by the Assembler) Names and Values Tables, under the names of 'Equates.nam' and 'Equates.num'. They are compiled when not found and then saved back to Disk aside 'Equates.equ', ready for reuse, without re-compilation at the next runs.
(The Equates Loader now is ready for working with the next (huge) Win32 Equates File(s) provided by Beyond2000).
Pre-implementation (actually commented out) of an HLL pre-Parser, translating the ' == ' occurrences into the various needed Asm forms ( ; call EqualParser, in 'AsmMain'). It will be un-commented with the implementation of the OOP pre-Parser, and works like a fast and easy internal Macros set. This is the first step of the 'Non-Asm' implementations in RosAsm. (Provided commented out for advanced users tests, opinions, wishes Lists, ...).
The DLL Relocation for Api calls was missing. Added (necessary for DLL Code Relocations, in case, for example, the user gives the same base for the DLL as for the calling PE).
V4.06b
Fix an encoding error for things like 'push D§FS:+0'. (The encoding was wrong, expecting a short form for the Dis, whereas there is none for this case). Also, 'push D§0' is now made possible (without the plus char previously required).
Invalidate the Block Selection for [Ctrl][V].
Disassembler: Implementation of the Routine for translating the old Win Menu Format into the new MenuEx one, used by RosAsm. The IDs problems remains to be solved.
The 'Jmp 'DLL.Function' Instruction is made possible (for Disassembly). 'Mov eax 'DLL.Function', not yet.
V4.07a
The Mod/Rm Byte for FBLD and FBSTP was forced to 035, producing a wrong Code for FBLD T§esp and DBSTP T§esp. Fixed.
Add a [Data is Shared] Flag in the [Output] Dialog.
ReWrite of the Debug Main Dialog. Implementation of the FPU Registers. Reorganization of the downward Dialogs for MemView implementations, and add of a [View from Pointer] in order to view the Memory eventually pointed by a Variable (this is to say, one logical Level deeper than the [More...] option View).
V4.07b
In the Structures Dialog, the Stack form computation of the Structures length was wrong for Structures ended by a Table. (the table length was computed twice). Fixed.
V4.07c
Bug Fix: Align stated on its own boundary (example, Align 32 stated at a 32 Bytes boundary >>> Nothing to be done), was wrong.
Bug Fix: If the last Instruction / Last element, in a Source, was a Win32 Equate, the Win32 Equate replacement was failing (Since the last WinEquates Parser modifications).
Improvement: With 'Int 3' Debugging, the buttons validations are now automatically restored when a Variable has been selected previously (this is to save user from clicking to select an Item, at each Memory Inspector vue, when ruining again and again an 'Int 3').
V4.08a
Implement Dialog Resources saving / loading, to / from Disk.
Add a [F9] On/Off Message in the Status Bar.
Minor bug fix, in the Debugger View of FPU Registers.
V4.08b
Bug fix: No use release of 'OtherFiles' Memory when leaving.
Bug fix: Lack of Registers preservation in the Dialog for 'Other Resources IDs'.
Re organize the Messages Holding in the [Struct] Dialog.
V4.08c
TITLEs:
Loading an asm File (Source Only) with only one TITLE did not work. Fixed.
Replacement of one TITLEd-part only was not implemented. Done.
Add an error case for unexpected Separators (For example [Data: F§ 50/4], with missing parenthesis).
Add an error case for forcing declarations of Size Markers, in case of Real Expressions, in a multiple Data Set, before and after the Expressions of the whole Set.
Debugger: Modify the action of the [Close] Button. When Stepping, after some Int 3, it does no more attempt to close the Debuggee App, because under 2000, this seems impossible. So, the [Go on Running] Button, of no more any use, is suppressed.
Implement import of Functions exported by an EXE (same syntax as with a DLL).
V4.09a
Rewrite of the Api calls concerned Routines, for holding all extensions cases (not only DLLs), and allowing the short forms of call 'Function' , as long as, at least one complete version (call 'MODULE.Function') is available somewhere in the Source.
Add a case in the Disassembler Decoder, for 'Push Word Immediate'. Should never have happened, but...
V4.09b
Restore the [Save to ClipBoard] Function in the Dialog Editor -killed by the V.4.08a implementation of [Save to Disk]-
V4.10a
The Dialog Editor Styles Help was not working as expected under 2000. Fixed, and Positions improved.
Disassembler:
Complete re-write of the targeted File mapping (now loaded the way the Windows Applications Loader does it -01000 aligned-).
The 'SectionsMap' Table and the 'RoutingMap' Table are now the same size as the targeted File mapping one (Flags and File are now 'parallelized' for ease of analizes).
New strategy for pointing out Api Functions calls and Exported Functions Locations and Names.
The Resources reading is now done first (before the re-mapping) in order to keep the same RosAsm internal Routines effective, as previously.
Debugger: I have pointed out why the Debugger misbehaved when the Debuggee App was runing a ShellExecute. When the Child Process is run from the Debuggee App, the Debugger receives an EXCEPTION_BREAKPOINT and an EXIT_PROCESS_DEBUG_EVENT at launch time and at close time, dispite the DEBUG_ONLY_THIS_PROCESS Flag in the 'CreateProcess' call. Fixed. I don't know if this is to be considered a Win bug, but, even if ROS would do it another way, it should work as well, in any cases.
Add two buttons in the 'Choice Bar Dialog' for selecting the first or the last object.
Implement a little Dialog (Tools Menu Option) for translating a Data Set into the Displacements Equates set, needed for pointing Structures Members, as users seem to have some pain at emulating the way STRUCT keyword does it in other Assemblers.
Suppress the Undo limitation -was limited to one single Part- when working with Sources divided by TITLEs, and set the Undo Directory to the Win TempPath.
Encoder modifications for ADD, AND, CMP, OR, SBB, SUB, XOR, with EAX as first Member, and imm8 as second member: For these Mnemonics, encodings may have a shorter alternate form than the one I first used, when the signed imm8 is Byte Size. I have modified my initial choice in order to enable recompilations without possible corrections of the jumps sizes, after Disassembly.
Suppress the error case for Nested-Loop in Data and VirtualData Storages, in order to allow 'len' to work upon Data Sets including multiple subsets with Multi-Data (#xxx) Declarations.
Implement a new reserved Word: PREPARSE. This keywords purpose is to open the door to any number of Pre-Parsers, at no cost for Sources not making use of them, and to allow the implementations of conflicting Pre-Parsers. This also opens the door to 'Non-Assembly' Pre-Parsers, like OOA and HLLs
Add an error case, I forgot, when implementing the new api calls methods, for wrong Modules Names coming in a Source after the good one had been provided for the same Function (was silently replaced by the good one, in the previous version).
V4.10b
Add an error Message, for the [Struct] Menu Option, in case of missing File.
Suppress the more more use [F5] for blocking the TITLEs Tab oncoming (was to save from Undo erasement).
Debugger Stepping was broken by the last 'ShellExecute' bug fix. Restored.
Implement 4 other Keys combinations for Blocks (Ctrl+Del, Ctrl+Insert, Shift+Insert, Ctrl+Back).
V.E.
five encoding was branched to 'D_ST reg' instead of 'D_R ST reg', causing five ST ST to be encoded as fir ST ST. Fixed.
First implementation of Am Fpu TILL.
In the Clip File, implementation of the '@' Char (second Line, first Row of a Template), to say to the Clip Dialog to ignore the Radio-Button selections and to load the Clip unmodified. Useful for ready to use Procedures (Proc). Revue of the Clip File, and add a couple of Clips.
Check the 'Readjourn' Flag in cases of some Key Messages modifying the Sources.
Enable Resources with Consoles Applications (To be verified and tested by Kenny).
Alternate forms, for Numbers, are now allowed: ...HO, ...x, ...B, ...D for the number of leading zeros, which can now be free (at zero compile time cost for clean written Sources. All the compile time penaltys are charged upon the undocumented forms).
Sources Editor: Implement Block Indents (back and forth -works with selected Blocks holding complete Lines, and respects Labels Positions, if any-): [Tab] > Indent++ // [Shilft][Tab] > Indent--
Disassembling of Data and VirtualData (cases of Multiple Data Setsd): If Set Sizes over limits (the arbitrary limits defined in RosAsm Source), split them into as many sub-Sets as needed.
Add a Flag in the Configuration Tab for having an auto-rebuild of the Tree-View after each Compilation.
V4.10d
Fix a bug introduced in 4.10c: The Assembler Body Equates parsing had been corrupted.
V4.10e
In the Dialog Editor, replace the MessageBox, for Menu inclusion, by a Dialog saying [Help][Create New] [Load Existing][Abort].
Fix an alignment problem (introduced with V4.05d reorganizations for DLLs without some Sections).
Add a 'SetCurrentDirectory' when loading from MRU list.
Implement a [F11] [F12] feature: Single shot BookMark with forth and back enable.
V4.11a
In the Dialog Editor, the Dialog Titles were limited to 30 Chars. Extended to 80.
Debugger Memory Inspector: Added, View from Registers, plus a Menu in the Data View, for Font, Form (Hexa, Words, dWords and ASCII with Hexa for low Bytes), Up and Down.
V4.11b
Error case added for '[', CR/LF.
Error case added for calls to a Local label.
Bug fix, in the Dialog Editor, bad Pointer, when re-loading a Dialog with Menu, from Resources.
Disassembler:
* First version of the Code intelligent recognition: When a Non-Accessed Chunk of Code is found after the Routing Analyses, it tries to say, if the Chunk is likely or unlikely Code. Seems effective.
* First attempt of writing the FPU Data Format.
Source Editor: For Sources with TITLEs, the Caret and the 'CurrentWriingPos' Position were not both at the end of the selected Block, when the [Run] errors manager was pointing out the faulty statement. Fixed.
V4.11c
Since V4.09a the Modules (DLLs, ..) loaded when compiling (for checking the Api calls validity), was no more released. Fixed.
Apply Kenny's Patch for main Window in Maximized state.
Restore [Shift][Arrows] Selections (commented out in the previous version for tests (Oooppps)).
Temporary comment out of Disassembly of Real10 (hangs in ST0ToAscii for mantissa 1 Exponent 07FFF).
V4.11d
Typo in the encodage for 'SAR Reg 1'. fixed.
I had messed it all when fixing the Cursor Pos after error pointing in V4.11b. Fixed
V4.11e
Re-read the SharedData Flag when reloading a DLL.
Enable DLLs without any Resources (a default .rsrc stub was left inside, with previous versions).
Enable DLLs with Virtual Data only ( ?Data without any Data).
Add an error Message (and an MRU List update) in case an MRU File would have been deleted or renamed while RosAsm was running.
Source Editor: Add a Flag on Key holding for preventing from rewriting for nop (blinkering effect suppressed).
V4.12a
[Ctrl][F] >>> Find Box.
[Ctrl][R] >>> Replace Box.
[F5] >>> Compile.
[F6] >>> Run.
[Shift][BackSpace] >>> Delete previous Chars up to Indentation alignment.
[Shift][Tab] >>> Caret goes to first valid Char and all the line is moved one Tab Back, if possible.
Dialog Editor: Direct Mouse Edition. Left Button >>> Pos // Right Button >>> Size.
Source Editor: Smart Home Key / Back Tab / [Shift] BackSpace // EnableMenuItem.
Debugger Memory Inspector: Was not showing the Mem from Run-Time pointers (only Compile-Time Pointers were assumed, because of a direct access instead of a ReadProcessMemory). Fixed.
Debugger: Limit the number of windows alternances when stepping (less blinkering).
Add a missing error case saying 'Orphan Bracket' for single Close-Square-Bracket.
Add an 'Include' Item in the File Menu.
Bug Fix: The Export Parser was confusing Text expressions having a Double Colon (' :: ') with declarations when counting how many Exports.
Disassembler: The Float Data restitution should now be good, and ''ST0ToAscii'' Proc should no more hang.
Restore the correct detection of the End of statement, in Error viewing (Error2 Type).
Allow a String under the Statement provided by the Error MessageBox. The 'Error' Macro has been modified in order to hold either one or two Parameters. The second one is for the cases of Pointer given for the internal 'cooked' version of the Statement Member.
V4.12b
With [Ctrl][F] // [R], the Key Up Message for Ctrl was eaten by the Search Dialog Box. Fixed.
V4.12c
Add a [Security] option in the [Configuration] Dialog for saying 'Sure? Quit without Compiling'...
The Mouse Hook for Dialogs Controls drawing was producing a strange mess making the Dialog saving fail. Fixed.
V4.12d
Resources were not saved for DLLs, in V.12. Fixed.
Add a ''SourceHasChanged'' Flag for upper [Security].
Add the WS_BORDER style to Mouse edited Controls, in the Dialog Editor (less durty lines while modifying).
Move the [Ctrl] Key state updating after [Ctrl][F] / [R] right after the concerned calls (GetKeyState, GetAsyncKeyState unusable).
Comment out the FPU Pre-Parser. Development delayed.
V4.12e
Stupid error in upper fix for DLLs with Resource. Fix fixed.
V4.12f
Solve a reg eax conflict between 'Security' and MRU.
Fix a wrong test order in the Structures Dialog Routine for computing the Equates form.
Improve the precision of Caret Pos on Mouse left-Click: In 'SetBlock', replace 'call SimpleMouseTextPos' by 'call MouseTextPos' and add a small delay after Left-Click to let 'SetBlock' a breath.
V4.12g
Finish the implementation for enabling/disabling the various Menus Items. (Resources ones mainly).
V4.13a
Keep Selected Blocks alive when moving the Mouse on Non-Client Area.
Add a 'SoundsWanted' On/Off Flag in [Configuration]/[Text Editor].
Save and restore the Structures Dialog Flags on a session base.
Clip Dialog: Implementations of the Clips File Manager features.
Fix a Typo in User Menu construction (that was limiting the Items number to 5).
Add a 'AppendToCurrentDirectory' Routine, for completing the 'Equates.equ' Path in case the user did not do it, and let this file aside RosAsm.
Tree View:
- With [Rebuild after each Compilation] Flag set on, keep the Tree window minimized, when back to Edition.
- Add a 'ClearTreeLevels' Routine (Tree View) for re-initializing between each Tree building.
- In 'BuildLabelTreeList', suppress a wrong length test for Exported Labels.
Modification of the TITLEs Tab behavior:
- Do no more close on user choice, but on mouse in Client Area.
- On actual Tab selection, the Edition jumps at Top of the Title part.
Implement a 'ReMapSourceMemoryIfNeeded' Routine, that is run for [Ctrl][V] and [Include], in order to allow insertions of Chunks bigger than expected.
Assembler:
- Bad Encoding of setnz fixed.
- Fix a Wrong Error Case Test in SourceClearner Job for '?' Data Declarations.
- Implement an error case for Text Delimiters with no separators before or after the Text.
- Add an error case, in Macros Parsing for '#x' with a number of Parameters bigger than 9, plus one more 'Infinite Loop' test, directly inside the Main Parser (that should be of no use...), plus two other 'Infinite Loop' tests in Equates Replacements and in MacrosAndEquates replacements.
Dialog Editor:
Move the 'Busy' Flag release at the end of MouseHookProc because I have seen an edited Dialog vanishing while Editing... May have been because of reentrant accesses, I suppose.
Disassembler: Implement the division of Sources into TITLEs.
V4.13b
Add several error cases after Short and Long symbols (<, >, <<, >>) for local jumps.
[Configuration]/[User Menu]: Fix a bug re initializing the User Menu Items with the Names from [Other Files] when Clicking [OK] with this Tab open.
Fix a Bad Pointer to the Disassembly End of Memory, that was producing hang when [Include]ing on fresh disassemblies.
Double the number of possible TITLEs Tabs (100 now) and the minimum size of a TITLE Part (1_000_000 Bytes now), in order to fit with the requirements of huge Files Disassemblies.
Add an error case for Equates names ended by a Colon.
Tree View: Save and restore the Pos and State of the Window when [Auto-Rebuild] is On, and preserve the state when [Auto-Hide] is Off.
V4.13c
Review of the Tree View Window Managements.
Clip Manager: Suppress disabling the [add Template] Button is case of no Source selected, and replace this by a MessageBox saying that no Selection was found.
TITLEs: I comment out the test for too big Sources Parts, because, when Disassembling, one single Data Chunk may be bigger than whatever expected size. (This test was more a pain in the ass than helpful anyway, and the users will just see if the part is too big, when having the Editor slow down).
Fixed a series of bugs in the Tables Managements when Disassembling with [Symbolic Analyse] On.
Conflict fixed, in the Source Editor, between the Floating Menu and the TrackBar.
Review the [Ctrl][Left]/[Right] feature in the Source Editor.
V4.13d
Assembler: Add missing Strings tests, in the Routine 'StoreToExportListA'.
Source Editor:
- Auto-Indent (on CRLF) now takes care of Local Labels
- Reverse Smart Home Key behavior (First shot >>> First Char / Second Shot >>> First Row).
- Add a test in 'ReMapSourceMemoryIfNeeded' for Source Length equal zero. This happens when pasting after a [File]/[New].
Disassembler:
- TITLEs: Re-adjust on actual Pos for output when the Data Chunks are bigger than the expected limit for a new TITLE output.
- Double the speed of HLL Analyses based on Api calls.
V4.13e
Output formatting details in the Disassembler.
First reorganization of the Assembler Source Parsers and creation of a new [Parsers] TITLE.
V4.14a
TreeView:
- Local Symbols pointed out in two passes (upper MainLabel plus downward Local Symbol).
- Test added for Disassemblies huge List of Orphan Labels, because building the Tree in this case may take a very long time.
Disassembler:
- Solve the problem we had with short jumps when replacing DLL indirect Call with Direct calls as this: Always do the replacements // when required, turn, for example, the 'jne G5>' into 'jne G5>>'.
- Recognition of MainWindowProc.
Assembler:
- Error case added for non GpReg usage in Effective Addressing (Example: pop F§MM1).
- Error case added for 'lea edi D$ebx+4*eax' (instead of 'lea edi D$ebx+eax*4').
- Error case added for 'movmskps bl xmm0' (32 bits reg only).
V4.14b
Assembler:
- Error case added for '-reg' in effective addressing second reg.
- When pointing an error at the Top of a TITLE or of the Source, the Block Selection was killed by the attempt for moving the Text a couple of Lines upWard. Fixed.
Dialog Editor MouseHook:
- Add a 'WindowFromPoint' to make sure the Edited Dialog is not hooking a Message while under the Editor Dialog, or under any other window.
- KickDims >>> Focus Back to the Edited Dialog.
Disassembler (Last modifications before the third re-shaping of the whole Disassembly analyses strategy):
- Run with the 'One Section trick' in cases when the Entry Point is not in the Code Section.
- Completion of .Import when the Header Look-Up Records are zeroed.
- Various 'tuning' in the Code Labels detections.
- Add a missing loop, in the Code Recognition of 'UnAccessed Code Chunks' (It was not analysing down to the End of Chunk when encountering a RET or JMP Instruction).
V4.15a.
Revue several problems when closing the Dialog Editor. Fix two problems under Win98, for MouseHook, and for the way of closing the Edited Dialog while editing (the 'ShowDialogResult' problems).
After Compilation, restore the Focus from the Tree, back to the Editor.
Mem Inspector Words and dWords to 2 and 4 Bytes was printing 3 and 5 Bytes. Fixed.
Restore the '#n' with '#-1' keys in the Macros Parser.
Encoder Bug fix: +080 // -080 was not on the proper Bytes size limit since a recent modification for solving a Disassembler Problem.
Complete re-organization and rewrite of the Assembler first Parsers by Rikkert Wiggerin.
Implement the Routine that should allow the PREPARSErs developers to declare 'NoMeanLable's in their outputs.
New Disassembly Sections Interpretations strategy aborted.
V4.15b.
Add an error case for CRLF after Bracket.
V4.15c.
Dialog Editor: Review of the direct Mouse Editing. Fix of several problems under 98. Added, securities for preventing from Auto-reverse of the Controls, when re-sizing, and from negative origins when moving. Several Simplifications of the 'MouseProc'.
V4.15d.
Dialog Editor: Fix a Bug, under 95/98 in the MouseHook procedure. Finalize the Minimal allowed re-sizing by Mouse direct actions, for preventing from losing too small Controls.
V4.15e.
Dialog Fix a conflict between '<<<<<' // '>>>>>' Menu Items and Slide Bar when having a Block Selection inside.
Restore the resize Style of the Tree Dialog.
Add two errors cases in the Macros Parser, for Unfolding of Parameters never used in the Macro Body and for overflow of the output in case of nested Macros multiplying the number of Statements at each Level.
Fix a conflicting reuse of the 'TextGoingOn' Flag by the Source Editor and the Assembler. The Compilation was hanging, since V.4.15b, when compiling with some text Data at the bottom of the screen and downward.
V4.15e.
Bug fix: When deleting a Block up, the Cursor Pos, when the selection had been down-up, was wrongly updated.
Fix a conflict between BlockAutoDeletion (when set on &TRUE) and Simulated Blocks for the [Shift][Arrow Keys] Blocks drawing.
V4.15f.
Bug fix in Cool Parsers, Alternates: mov D [eax], ebx replacement was wrong because 'ImplicitSize' was executed first. Now executed last.
Add an error case for two identical Functions Names called in two different DLLs.
Review of the previous Version modifications for the 'BlockAutoDeletion conflicts': They were also breaking the evoluated Tab Functions for Blocks Indentations.
Fix a conflict between the Search Box and the TITLEs tab, and two bugs in the TITLEs Tab 'SetPartialEditionFromPos' Routines, that was making it hang when deleting the very first TITLE part.
V4.15g.
Force the release the [Ctrl] Key after runing the Find and Search Boxes.
Add a [Shift][Del] Selection Deletion.
Fix a hanging conflict between Block Selection and the TITLE Tab feature (one more time... I had forgotten one case in the previous fix).
Add a [Bad Habits] Tab in [Configuration].
First implementation of a Path Browser for the 'Equates.equ' Path in [Configuration].
Implementation of a 'Load last used File on Start-Up' Flag in [Configuration] [Sources Edior].
Implement a NOPE dummy Intruction for writing macros doing nothing at all.
V4.15h.
Fix a bug in previous 'Load last used File on Start-Up' . Was not initializing the File Name for Compilation.
Add a test in the 'Equates.equ' Path Browser for not shutting down, when user aborts, with a valid target previously known.
V4.15i:
[F2] Key: User defined launcher
V4.15j:
When saving Source only, the TITLE Parts Names, were missing the Path. Fixed
_____________________________________________________________
Switch to RosAsm (July, 24 2003).
_____________________________________________________________
V1.1a
Review First release of RosAsm, with the B_U_Asm companion file.
V1.2a
Review of the Menu Optins.
Simplification of the way the TITLE Tab Control reacts to user choices.
V1.3a
Implementation in [Tools] of a Dialog showing the DLLs and Functions found in the actual Source.
Implement a 'forgotten' (..) BinInclude Pre-Parser.
V1.4a
Macros '#X' extension (to signed Byte).
V1.5a
First implementation of the ParaMacros Parser.
V1.5b
Bug fix in 'ReplaceParaMacrosBrackets'.
V1.5c
In 'UnfoldMacro' (Double-Left-Click Unfold Menu Option), add a security to force the pairing of ParaMacros Delimiters.
Improve the differenciation of Equates vs Data, when storing the Equates, in order to allow, for example:
> [< b]
V1.6a
Implementation of Scarmatil Equal Pre-Parser.
V1.6b
Extension of Scarmatil Equal Pre-Parser to FPU Expressions.
Modify a wBit Test, in order to enable formulatins like 'push Label+4'. (At the end of 'FirstParameterLabel').
V1.7a
Was hanging when loading some DOS EXEs Files. Fixed.
First implement of the IncIncluder.
Rewrite of the Disassembler Sections Recognitions.
The Macros Parser was hanging on the Base3 'Uses' Macro, evocated without any Parameter (hang in ResetForNewBracket). Fixed.
Complete rewrite the Api Calls encoding, in the Assembler, in order to assume all of the fancyfull stuff found in Disassemblies (like 'mov eax 'Kernel32.GetTickCount''), and re-implementation of the DLLs Functions called-by-Numbers encoding (this functionality was wrong, previoulsy).
Simplify the Disassembler functions for loading Resources. No more options for [Without Rsrc] or [Resources on requests]. The Resources registred by Names are now saved by the IDs' Numbers substitutions. The Strings Addresses Displacements are re-used to form the IDs.
Encoding: Limit pinsrw and pextrw third Parameter from 0 to 7. Pmullw was pmulw. Fixed. Set the pshufw immediate limit to 0FF, instead of 3.
Bug fix: With the Configuration Flag for saving the Pos on closure set on, closing the RosAsm Window from the Task Bar (with the Right Button menu), the next upload was hanging because of the Pos Values. Fixed by forcing the Window in the restored state, before closing.
V1.7b
Disassembler:
Several minor fixes in the Main Menu Items outputs.
Implement the output of Unicode strings and fix some minor problems with Strings restitutions.
Force Pointers restitutions (in Data), even if they are not properly aligned.
fstcw / fstenv decoding was wrong. Fixed.
Flow of identical Words and dWords were wrong. Fixed.
V1.7c
Disassembler: Simple update of several minor fixes.
V1.8a
Implement the [Ctrl][K] feature for BackUps.
Implement a 'ExportScanner' in [Tool] Menu.
Implement Auto-Initialization, for a first run, after having unziped the whole Package.
Disassembler:
Switch the bad Code Alignments Chunks ('BadDecode' Routine) to Data.
Add a String recognition call (15 Chars) before the call to 'MarkShortJumps'.
V1.8b
PUNPCKLDQ and PUNPCKLWD Disassembly was wrong. Fixed by Ludwig.
PSHUFD imm limit is not 3, but 0FF. Fixed by Ludwig.
Rewrite of the Source Instructions pointing in the Debugger ('SourceDebugPos' Routine).
Fix an awfull bug in the call to IsItProcessMemory, in case of Pointers to Pointers (with a value of the first Pointer pointing to RosAsm Memory itself while calling, and generating all of these strange and randomaly failing operations in the Inspector). Implement a new 'IsItProcessMemoryFromPointer' to cover such cases. This difficult bug was there since the begining of the Memory Inspector, which should, now, work much better.
Disassembler: Split the Strings Recogniton into Ascii Recognition and Unicode Recognition. Review the Unicode output in 'WriteData'.
V1.8c
Debugger: Reworked version of 'SourceDebugPos' Routine.
Assembler: Improve the 'ShortDis' Jumps error Message: I now says how many Bytes out of range.
Disassembler:
FNSTCW disassembly was wrong. fixed.
Solve a String Pointers problem in Data.
Split the multiple trailing zeros from end of Strings to Multiple Data Sets, with a forced Label.
V1.8d
Implement the Dialog for the Menu option [Tool]/[Source Informations]/[Exports].
V1.9a
Disassembler: Fix a Problem with the restitutions of Code and Data Pointers, in Data (they were sometimes proposed as commented out options -when a chunk was splitted by some Label-). Several adjustements in the various Recognitions. General re-organisation of the various Recognition order, and clean up.
Implement the Blinking Caret.
Implement the Code Completions for User defined Symbols and for Api calls.
Add the LBS_NOSEL Style for List Boxes, in the Dialog Editor.
V1.9b
Fix a TITLE Tab blinking problem with the Blincking Cursor.
Code Completion:
It was underlining when finding the same (length) Symbol. Fixed.
Speed up the Code Completion effective replacezment when applying on Source with TITLEs?
Some symbols were not replaced because of a bad parsing of Comments vs Multi-Lines-Comments, in the Replacement Routine.
V1.9c
Encoder: FISUBR: The 066 Word Prefix was arased on Dword sizes. Fixed.
V1.10a
New release of Scarmatil Equal Preparser:
- Added functions: cos(), sin(), abs(), tan() and sqrt().
- Sizes convertions.
- No more need of overall enclosing Parenthesis.
- More reliable.
- Less operands Types limitations.
Disassembler rewrite the Routine for pointing the PE Tag (to enable disassembling the GoAsm produced PEs, and to overwrite wrong MZ Header).
Disassembly: Fix a little bug that came out with the previous re-organisation of Routines calls order.
Switch the Source Editor Blank Line writing to 'FillRect', in order to assume wrong hight Fonts with the Code Completion Underlinement feature.
First complete release of Code Completion, with OS Equates, Pos of ListBox plus source input, and so on.
V1.10b
Simple improvements of the Code Completion feature. Mainly, closing the ListBox on user actions out of the Completion scope.
Review of the Source Editor Lines arasing (required for arasing CodeCompletion underlinements with Font not having really the required 16 pixels hight).
V1.10c
The Code Completion ListBox Dialog was not working under the 95 family. Fixed.
V1.10d
The Vertical Arrow Keys and the Return Key now directely select the items in the Code Completion ListBox, when open, while user is inputing the Prefix in the Source.
Bug fix: In the Source Editor, when having a huge Block Selection, the Caret Position computation could have hang, in some cases of Error pointing.
New release of Scarmatil Equal Pre-parser: Fixing of a detail problem for Symbolics with '.' inside. Implementation of the Equal Statement Unfolder, working the same way as the Macros Unfolder, from the Double-Left-Click Float Menu.
V1.10c
Update of Scarmatil Equal Pre-parser for minor Bug Fixes, and first Optization of the outputed Code.
V1.11a
First implementation of the last important Recognition: Code Interpretations breaking valid Codes Labels now switched to Data.
Implementation of a quick Find-Replace Box for replacements inside a Selected Block (By addition of an Item in the Float Menu of Right-Click on Block).
Fix a bug in the [Ctrl][V] Memory extender: It was not preserving the initial CurrentWritingPos for the Paste operation.
First implementation of the Tag feature.
V.1.11b
Implemented the flags for [Wole Word] / [Case sensitive] in the quick Find Replace on Block Dialog.
Review of the Right-Click feature, that was failing to point out some Declarations in case of Macros with Names not followed by a Pipe Separator.
V.1.12a
With upper Right-Click feature modification, i forgot the release of a Flag making the if fail randomaly. Fixed.
Disassembler improvements.
New version of Ludwig Debugger, with new interface and all.
V.1.12b
Implement the Int3 insertion by Double-Left-Click in the Editor left margin.
Restore the Disassembler in its working state, broken with a recent release.
V.1.12c/d
First effective release with static Mouse defined Break-Points ready for Ludwig Dynamic implementation.
Enable the Paramacros Declarations inside Macros Declarations.
Add a security test in the IncIncluder. It was hanging when not finding the required File.
V.1.13a
More improvements on the static versions of the Mouse defined Break-Points. Red Elipse instead of a red Char, in the margin. Assumes now the TITLEs Sources. Float Menu implemented.
New release of Ludwig Debugger.
New RosAsm GPL License.
V.1.13b/c
Simple bug fix in WriteImm32 Routine, when called from the Debugger for decoding the next Instruction.
Partial Download of RosAsm now with Licenses aside.
V.1.14a
Final version of the Disassembler Code vs Data Recognitions.
[New Dialog] Menu Item was disabled in the previous release. Fixed.
V.1.14b
Reduce a little bit the Dialog Editor Main List Box because of overlap problems underWin95-OSR2 (Much probably a Font problem, in fact...).
Bug fix: The selection of ListView Styles was wrong, in the Dialog Editor.
Add a Memory Extension for big IncInclude.
V.1.15a
Bug fix: some duplicated symbols were not pointed out.
Complete review of the Interface:
ToolBar inplemented.
Sizable text implemented in the Source Editor.
Titles Tab moved Down and StatusBar turn always on.
Review of the PrintColorText Routine, with new Mouse Pos Functions.
Each Interface Component is now a separated window (Edit, Status, ToolBar, ScrollBar).
V.1.15b
Code Completion was locked in the Configuration of V.1.15a. Fixed.
Bug Fix: BookMarking Local Symbols labels was missbehaving on Sources including TITLEs.
Plus several minor fixes.
V.1.15c
Close the TITLEs Tab, when the Mouse moves on the ScrollBar.
Re-initialize the DCBPs output between two Compilations.
Fix a bug in the Status Bar Name output.
V.1.16a
New version of the Debugger. Now completed, with Dynamic BreakPoints, and all.
Minor bug fix in the Disassembler.
V.1.16b
Minor bug fixes:
The ScrollBar was not made silent when no File.
The [F4] BreakPoints setting was not working on files having TITLEs.
BookMarks lenghts was wrong
V.1.16c
Add a WM_XBUTTONDOWN case in the MainWindowProc
Debugger minor bugs fixes, plus selection by Double-Clicks, in the Virtual Pages Table.
V.1.17a
Implement the AAM and AAD encodings with immediate specification
Fix a minor bug in the MRU.
Restore the NM_CLICK message, for having the TITLEs Tab producing an Edition jump to the Top of Title, in case of Click on the actual Tab (it had been wrongly modified with the previous general IDE review).
Suppress the limitation for Virtual Data Declarations (by Flag in the [Bad Habits] Configuration Tab).
Replace 'EditClassName' by 'ClassName', in the Edition Window creation, to make Donkey shut up. :))
Minor bug fix in the Debugger.
Rewrite the 'IsItanEqual' Routine.
The DLL Extension was not made upper case when creating a new DLL. Fixed.
Disassembler:
The Align Recognition had been unfortunately commented out. Restored.
Implement a Routine for not breaking Previously identified Data with the priority of Pointers Recognitions.
V.1.18a
Implement the Visual Tuts stuff.
Disassembler:
The negative recognition was not working. Fixed.
Implement the positive recognitions of Data.
The 'PE' Pointer was not saved in case of regular File, causing the resources loading to fail. Fixed.
V.1.18b
I killed a part of the Main Menu with the VisualTuts holding. Fixed.
V.1.18c
Some menu option for resources had been grayed. Restored.
V.1.19a
Disassembler String, uString and Pointers Interpretations improved.
Complete rewrite of the 'PrintColorText' Functionality in the Source Editor, and genreal reorganistion of the Source Editor.
Debugger update for minor bugs.
Implementation of the Binary form saving, loading, replacing, in the Dialog Editor.
V.1.19b
Sources Editor: Complete the Right-Scroll Functionalities, retore and modify the Caret in Overwrite Mode, and Restore the CR/LF and ESC messages holding for the Find DialogBox.
V.1.19c
Suppress the Border Style of the Source Editor surface.
The Main Menu was perverted by the Configuration Tab (adding again the VisualTuts Menu). Fixed.
Points drawing, in the Main Icon Editor, reviewed by Keldon.
V.1.20a
Fix a bug in the F11/F12 feature.
Dialog Editor: Implement the DialogList Sort, in order to view the Dialog in the proper order, before any Compilation. Implement a security, for refusing to store a New Dialog, with an already used ID.
Debugger: ReWrite of the address space handling, plus some Pointers View refreshing, and reducttion of the size of the Debugger Dialog. Minor bug fix in the DCBP deletions.
Assembler: Alien Numbers formats could have been wrongly interpretated, when used, for for Data Sets Aligments. Example: '[<0200h'. Fixed.
Disassembler: Fix a typo in Ascii Interpretations.
V.1.20b
The new security for saving the Dilaog ID, in Resources did not take care of re-editions. Fixed.
Disable the Source Editor Blinking Caret, while choosing and/or Editing a Dialog.
V.1.20c
Sources Editor: Fix a bad Font Heigh problem and restore the instant updates, when choosing Fonts and/or Colors, in the Configuration Tab (they had been killed since the last V.1.15a rewrite of the Editor).
V.1.20d
Insert the 'Show caller' Menu Item, in the Debugger.
Restore the Editor Focus after Dialog Choice.
Implement the Binary Files managements, for the menus (same as previously done for Dialogs in V.1.19a).
V.1.21a
Implement [F4] working On/Off for setting/Removing DCBPs.
Review the DCBP storage on the Editor side.
Implementation of the DCBP saving in the Undo Table.
Fix a bug in the Undo feature, when dealing with Sources having DCBP inside.
Fasten the Source Editor (the full remapping of colors was too slow on old Computers).
V.1.21b
Set the user's BackGround on StartUp (Read the Registry before window creation).
The V.1.20a implementation of a security in Dialog IDs numbering was not allowing to save back a Resources loaded Dialog. Fixed.
Remove the WS_VISIBLE style of the Tree Dialog, in Resources, to save from a flickering effect.
Fix a TreeView Dims problem.
V.1.22a
Assembler: Implement the wishable Routine for testing the accuracy of a LOCK Prefix (Checking for valid Instruction and for valid Destination Parameter).
TrewView positioned on the Edit Surface. User TreeView Width saved in the Registry.
Re-enable the 'Nested Data Loop' error case, for Declarations like [Data1: 0 #100 1, 2, 3 #10]
Re-organisation of the Main Menu.
New Dialog for Resources Menus choice.
First implementation of the Write-Time Syntax Checker.
Implement the [Save RC Data] Option.
Update of the Debugger and of the Debugger Main Dialog Menu.
Fix a Bug in the Registry Size-Marker Color saving.
V.1.22b
The DCBP Double-Click was leaving with the Caret at Row zero. Fixed.
Update of the Debugger and of the Debugger Dialogs.
The 'NotReady to Run' Flag was not set after usage of the new Resources Binary Saving implementations. Fixed.
The Selected Blocks, when showing faultive Instructions with Commas and Strings inside, were including the next downward Line. Fixed.
Minor Bug fix in the Equal Pre-Parser (odd Instruction delimiters).
TreeView: Isolate the Pos Definition from the building Routine and preserve the WindowPlacement Fags.
The User Menu Deletion had been left over at the Pos it was before the last Menu re-organisation. Fixed.
V.1.23a
Review the organisation of the [Ctrl] key Message Holding for enabling [Ctrl][C] while Debugging.
Emit the 'Close Debugger' Message for cases of [Del]
Disassembler: EVOCATED was killed inside interpertations of Flows of Pointers, so that the intermediate labels were not given. Fixed.
Some never accessed Data nested in between Code were never restituted because of the missing EVOCATED Flag. Fixed.
V.1.24a
Debugger:
* Show declaration option for data labels
* Goto user-defined address
* Fixed FPU tagword interpretation
Speed-up the Assembler. Now between 1 and 1.5 Megas Megas/Second at 1.3 Ghz
Lock the [Del] Key, in Debug Session, and enable [Ctrl][C].
Minor review of the Editor's Keys holding cases.
Disassembler: Some improvements on the Data Interpretations.
V.1.24b
Forgot to update the Unfolding Function accordingly to the new Assembler Speed-Up modifications. Fixed.
V.1.24c
The function for ReMaping the Source Memory in case of huge pasting was not considering Files with TITLEs inside. Fixed.
Implement two Routines for checking, at once, if the Control Key is up or down after all the [Ctrl][x] actions. Works as well under 95 and 2000.
New Dialog for Statistics after [Compile].
Merge a couple of the 'CoolParsers' and 'HotParsers' Routines. Now 1.6 Mega/Second at 1.3 Ghz for RosAsm Auto-Compilation.
After the V.1.24a review of the Editor's Keys holding, fast alternated inputs of some keys combinations, like [Key Down]/[Key Left] could have overlapped, forcing the user to clearly release one key before depressing the other one. Fixed by considering the real KEYDOWN Message, instead of the Key Table, for these 'mono-key' cases.
V.1.24d
Problem in the Sources Editor Keys Holding. Found nothing but a bad location for turning the KeyDown one to zero. Many doubts that could be the problem, but i can't make it missbehave again.
V.1.24e
Temporary disable the [Write time errors detection] because of unwished side effects, in the Sources Editor (conflicts with the 'Bad Habit' [Blocks AutoDeletions]).
Improve the CheckSum64 by adding the parsed word length to ebx.
Freeze all non-assumed [Ctrl][char] (was previoulsy taken as [char] and produced a problem for [Ctrl][Return].
V.1.25a
New Debugger Version.
Internal Searches, and Right-Click Symbols, Searches now consider the Dash Lines (find the Declaration with or without Dash Lines inside either the Source and/or the Destination). Mostly for the Debugger to find out the Declarations with Dash Lines, in the Sources.
Hook for the Double-Click Float Menu, to un-select the activated Block, in cases when the user hits [Escape].
Finalization of the Assembler CheckSums Table managements.
Restore the TITLE Name printing, in the Status Bar, and insert a security for TITLE detection.
Preserve the Focus on the Find-Replace Dialog when needed.
Set a [Ctrl][A] Option in the Configuration [Bad Habits] Tab.
Implement a Flag, in eax for 'SourceHasChanged', depending on [Ctrl][Char] cases.
Restore some of the KEYUP forcings, to see if this solve some reported problems, that i do not understand, about the Caret Position.
V.1.25b
New Debugger / Common / FPU TITLEs Versions.
V.1.25c
Restore and review the Multiple Structures Files holding in the new Main Menu.
Bad Flag in V.1.25a [Ctrl][Char] cases thingie (MOV instead of OR...).
Suppress a blinking effect, on some screens, when having the Blinking Caret et On.
V.1.25d
Sources Editor:
Review of the [Ctrl][PgDn]/[PgUp] managements.
Implement a Flag for making the difference between a [Shift] Selected Block and the other forms of selected Blocks.
Add a test for cases of redraw with a '@' as first Char on Screen (when having the colored Sizes Markers enable).
Implement the [Ctrl][Shift][Left-Right-PgDn-PgUp-Up-Down] extended Block-Selections.
Implement a Routine in charge of outputing the char under the Cursor. Usefull when having partial redraw called by the Blinking Cursor (when set On), particulary, in overwrite mode.
V.1.25e/f
Problems in Block Selection introduced by the split between Shift-Blocks and normal-Blocks. Fixed.
Insert the desirable call to 'ClearQwordCheckSum' in the Encode/Decode Box.
Encode Box, ErorLevel 7 was not appropriated to hold the 'Too many Parameters' error case. Fixed.
V.1.25g
Set the verbose closure of the Debugger in all wished cases.
The title of RosAsm Main Window now keeps the Version number visible after have loaded a File.
Fix a Bug in the last CoolParsers Modifications coming with V.1.24c.
V.1.26a
Two Flags were missing for the ComboBoxes Styles Management. Fixed.
Debugger:
Dump 'OutputDebugString' values to file (debug.log)
Extended CPU Information (works now for P4)
Show EIP on the debug register tab
Tab navigation in debug dialog
Minor bug-fixes
V.1.26b
When marking a DCBP close to the TITLE Tab area, by [F4], the Tab was rising up because of a bad forced pos of the Mouse. Fixed.
Implement a Sort for the Menu Items of the Visual Tutorials.
Sources Editor: The last Line Selections and Coloured Size Markers were not viewed. Fixed.
Implement an error case for LEA, Byte form.
Fix the TITLE-Tab Ctrl-Z Bug.
V.1.27a
Split between the Official and the Developements Releases Versions.
Extend the capacity of the Visual Tutorials Buffer, to hold the new Beginners ones.
Reverse the order of the MRU Menu Files. (Most recent now at Top).
V.1.27b
Error in the previous MRU modification. Fixed.
Remove the WS_THICKFRAME style of the Statistics Box.
V.1.27bc
The last Menu Items, for the Visual Tutorials, could not have been accessed. Fixed.
V.1.28a
Review of the Help Menu, Help Files Items. Added SDL, DevIL and Sqlite. Plus Help Button for where to get them.
Add the DevIL Equates into the Equates.equ File.
Disassembler improvements: Now takes care of 'No-Return-Calls'.
Implement a functionality for saving all TITLEs into as many asm Files in the [Ctrl][S] feature.
ParaMacrosParser: The CoolParser checking ParaMacros was only testing Pipe and not CRLF, and was breaking the compatibility with some older Macros (Half Documentation.exe 'EndP' Macro). Fixed.
Change the 'ReuseSourceAForCodeList' alignement from 010000 to 01000 (Problem suspected, under ReactOS, with this).
V.2.001a
Encoder: Re-organisation of the SIB with two Regs only and implement an error Message for esp+esp.
Extend the Code DB encodage to hold Ascii Strings.
Add an error Message for compilation of Sources without any Statement (in 'CountStatement' Routine).
The StatusBar routine, for extracting the File Name was hanging on Files.ext including multiple Points. Fixed.
Implement an error message for FADDP not having ST0 as second Reg.
Implement the SALC Opcode.
The order of XCHG and of TEST reg reg Parameters was reversed. Fixed (No effect on anything, but matching accuracy with the Disassembler(s) output(s)).
Various improvements on the Disassembler.
First implementation of the junction mecanisms between RosAsm and the first Wizard. Done by Scarmatil.
First implementation of the Wizard Menu Item, with Automatic detection.
V.2.002a
Some Multi-Lines Text inside single quotes were not properly detected. Fixed.
The Redraw, in 'StringSearch' had been commented out. Restored.
Switch RosAsm Dialogs Styles from DS_SYSMODAL to DS_SETFOREGROUND.
Implement the [File] / [New] Dialog, with filling Resources and Routines for various Files Types and Macros Styles.
V.2.003a
The previous Dialogs Sytles modifications did not work. Removed.
Separated Dialogs for [Control] / [S] and for [Replace Source Only].
New release of the Form Wizard.
V.2.003b
The Len KeyWord, for Leading Sizes of the OS Structures can now be computed as dWord and as Word. The normal Len remains, of course, dWord only.
The ClipBoard length included 4 trailing zeros, instead of one. Fixed.
The ParaMacros parser, for on line Macros, was broken since V.1.24a. Restored.
V.2.003c
Fix two minor bugs in the Sources Editor.
The previous review of the Len Keyword, for Word Size was not effective. Fixed.
New release of the Tag TITLE, for the Form Wizard.
V.2.004a
Fix a Source Lenght problem when starting a [New] Standard exe with no startup with only Standard macros.
Implement a complete computation to fully detect the pairing of Equates, for the Right-Click feature.
Bug fixed in the Menus Editor (was loosing track of the Flags, in some cases).
Extend the Macros &Variables to 100 Records of 128 Bytes each, and review of the concerned Routines
Modify the Local Symbols completion so that it does not touch the Macros Declarations, and call for it a second time, after the Macros Job, to fullfill the Local Symbols unfolded by the Macros job
Disassembler: Modifiy the 'WriteExportedFunctionLabel' Function to hold some disorganized Export Sections.
V.2.004b
Forgot an INT3, in the Right-Click Equates Search pairing control.
Toolbar hanging on [Structures] Item without MenuID. Forced to simulate the default 'Structure.str'
V.2.004c
Rewrite of the 'CoolParsers' Routine in charge of upairing error detections of '()(, '[]', and '{}', with direct pointing into the user Source. Mixed cases assumed.
Preverse a copy of the default Icon, for retoring it, in the case of [New] File.
Remove the Resources size limitation. and fix a bug in reading the Resources number (by IDs + by Names).
V.2.004d
Forgot to the call to 'ReplaceWin32Equates', in the Double-Left-Click [Unfold] (Macro), menu Option functionality. Fixed.
[New] File Dialog:
* The Do_Loop Macro was wrongly used in the Hexprint Default. Fixed.
* The DLL choice was not reflected in the File Name. Fixed.
V.2.005a
Make a copy of the default Main Icon, so that it could be recovered when doing a [New] File after the edition of another File, with another Icon.
The Routine checking the presence of 'Main:', in the Source, was not updated (using obsolete Routines), and was not detecting a modification of 'Main' in between to Compilation. Updated and fixed.
Fix a bug in the recent &Variables extensions to 100*128 Bytes (was no more compiling a Macro with trailing Evocation).
Debugger: Release of Version 1.4, with:
* Show module name for outside-stepping/exception
* Continueable exceptions
* Some bug fixes
V.2.006a
Implement an error Message to forbid the usage of Number as Symbolic Names.
First test-implementation of the Internationlization of The Errors Messages.
New Dialog for the Error Messages, with review of the Error Routines, to match with the National Languages
Fix a conflict between the [Bad Habits] / Auto-Deletion and the Code Completion.
Remove the 'Auto-Writing' effect in the Code Completion.
The Macros unfolder was hanging, when parsing a Statement terminated by a bad comma. Fixed.
Change the Automatic labels Names from 'AAAAAAAA', increasing, to 'ZZZZZZZZ', decreasing, in order to have them at the bottom of the Debugger Data View.
Debugger [Version 1.5b]
* Bypass the PSAPI and the toolhelp functions
* Experimental implementation of the call-stack
* Many bug-fixes
V.2.007a
The V.2.004a Routine, for the Equates pairing, was not assuming the Declaration of Macros, without any Space, between [MacroName|Bla...]. Restored.
Disassembler: Found a way to support the Api Table wild Jumps, in Code: If not MOV, CALL, the Jumps Table is now targeted under the form of its direct Code label. At this Location (the Jumps Table), there is no more the interpretated Label (Api Name form), as it is already shown by the JMP: Instead, at the caller position, the 'call CodeXXXXX is now followed by a comment saying what api name it is, in the Jumps Table.
Example:
> jne Code0404528 ; 'USER32.DefWindowProcA'
> ...
> Code0404528: A8:
> jmp 'USER32.DefWindowProcA'
The Instructions Prefixes were not shown, in the Disassemblies 'Commented Hexa Code'. Done.
Encoder: The errors in the form of 'mov D$edi+ax 1' were coming with an inappropriated error Message. Fixed.
Review of the Dialog Editor Function for Loading a Dialog Template from ClipBoard.
First release of Diego Fraga review of the Resources Manager, with Named IDs assumed, for the Disassembler.
V.2.007b
Bug fix, in the management of Missing Symbols error (modsifed in previous version).
V.2.007c/d
Bug fix: The Dialog Editor was leaving an empty Record, before the last one, in case of mixed deletions / creations.
V.2.007e
Bug fix: In the HotParsers, 'StripUneededEOI' was not assuming the case of EOI followed by a CloseBraket, producing a hang, in case of CRLF between a trailing '#1', for example and the ']'.
V.2.007f
Generalise the 'SourceHasChanged' Flag for all cases of Exit after Resources Editions.
Bug Fix: Error case 3 was using a obsolete ecx for scan.
V.2.007g
Source Editor: Add a Flag, in the [Configuration] for a screen (screen only) substitution of red '$' by '§'.
Direct branching of the Number-Bases Dialog from Right-Click on Numbers (same as with Double-Click / Float Menu / [Number Bases]).
The Macros Parameters bigger than 9 were not assumed in cases of Nested Data Macro Declarations. Implemented.
Bug fix: The Error Manager, for error Case 3, entered in a infinite loop when searching for a non-existing String, in the user Source (String created by Macro unfolding).
V.2.007h
The Macro Unfolder was not properly parsing the Win32 Equates. Fixed.
The bottom limit, for the label symbols List was set at the Source physical limit, instead of the available Memory Limit, causing a failure of the search of the last Symbols, in cases of too long names expanded by Macros, bigger than the original Source. Fixed.
V.2.007i
The error case 3 Dialog, in the Assembler, was not showing the proper searched Name, in case of search failure. Fixed.
The GetCLOFilename was enclosing the File Name in double quotes (>>> failure of the creation of the Command Line File). Fixed.
New proposition for the Small Chunks Memory Manager.
New version of the LibScanner.
V.2.007j
Restore the bad GetCLOFilename Routine, because, when it work, it produces downward errors.
V.2.007k
It was not possible to have, both at a time, Parenthesis Expressions and ParaMacros. Fixed.
V.2.008a
Implementations of the SSE3 Instructions in the Assembler and in the Disassembler.
Major release version of the Debugger, with reorganisation, bug fixes, and implementation of the Functionalities for debugging the DLLs.
Implementation of the 'Un-used Symbols' Dialog, from the Statistics given after a Compilation.
V.2.008b
Implement the 'SkipDashLines' Flag, in the Search Functionality, so that the 'Unused Symbols Box could point to the proper Declaration in all cases, plus, add an 'InternalRightClick' Search after the Text Search to make sure we are pointing to the Declaration, and not, for example, to a Comment.
V.2.008c
Fix of a Typo killing the encodage of LEAVE (done when imlplementing the SSE3 Extension).
V.2.008d
Disassembler: Values of 'LastCodeRef' not matching with anything were omitted. Fixed.
Assembler: The Unused Symbols List was not assuming Labels evocations in Data: Fixed.
Source Editor: Minor modification of the colored Size Markers output.
Debugger: Full Command Line assumed.
V.2.009a
Assembler: Implement a rescue attempt of loading a Module, for the OS versions, that would not assume the Current Directory, in the expected way: TryModuleFromAppDirectory.
Debugger New feature:
When debugging, if you move the mouse over a data label, a hint with the content is shown. The current implementation takes care of the size markers (R$Label) but ignores offsets (e.g. D$Label+4).
Segment registers are shown with corresponding base & limit values.
Memory inspector address edit is now autoscroll-able and supports selector overrides e.g. 'FS:010' jumps to the TEB with offset 010.
Better string recognition in data viewer
Dataviewer shows address aside label names (address removed in value list)
V.2.009b
Sources Editor:
* Preserve the '§' Chars in the ClipBord Copy.
* Add a Checking for bad pairing of CR/LFs corrections.
V.2.009c
The Relocation of Api calls was wrong, in DLLs .reloc, since the modifications assuming things like MOV EDI 'Module.Function', as found in some HLL PEs Disassemblies. Fixed.
V.2.009d
Skip-over mechanism for TITLEs smaller than the screen height.
Bug fix in the Right-Click fix on Dash-Lines.
Horizontal Scroll Style added, in the Output Dialog Edit Control for long Command Lines.
Extend the Buffer, for the Structures Dialog ClipBoard from 2000 to 4000 Bytes.
V.2.010a
Implement a Flag, to prevent from rebuilding the full Source, for redrawing the DCBPs, in the Editor, in case a WM-REDRAW Message would be sent by a Dialog, under some OSes, while the full Source, is already rebuilt.
Add an error Message for cases of Macro removing a Text Delimiter, with the ''#X!'' keyword.
V.2.011a
New release of Scarmatil Equal Pre-Parser.
Sources Editor: Add a CRLF to TITLEs terminating without any, and so forth, having the last Char right before the 'T' of the next 'TITLE'. (It was possible to do this, previously, because, if a real Source says
''Blabla, CRLF, TITLE Blabla''
... setting the Edition Cursor at the very last Pos, is equvalent to set the Cursor at Pos 1/1, of the next TITLE, for inserting a Char, before the ''T'' of ''TITLE''.
The [Replace] Functionality was broken since some Block Pos modification. Restored.
V.2.011b
Modified Style for the Menu Dialog's Edit Control.
V.2.011c
Having a ''@Label:'' viewed at Pos 1/1, in the Editor, was producing a Blink effect. Fixed.
The Resources ID Choice-Bar was hanging for some Resources Types when Clicking upon [First]. Fixed by sending the Table origin as a Dialog 'Initialization Value'.
V.2.012a
Add a security, that shuts down the Unused Symbols List, before re-Compiling.
Exit case implemented, for Right-Click on Dash-Line lines.
Re-Enable the Unfold functionality for the Equal Pre-Parser Statements.
First release of the Conditional Macros parser.
V.2.012b/c
Add the Conditional Macros case of '#N<>' (forgotten previoulsy).
Insert the Case of '#N=' (above the '#=' one) in the normal Macros System, to unifie the writing convention with the Conditional Macros ones.
V.2.012d
Developements of the Conditional Macros Errors Messages.
Bug fix: The last speed-up of the [Replace All] Functionality was conflicting with the Undo Feature. Reversed.
V.2.013a
First release with the completed Conditional macros.
Implementation of the &&1,... &&99 Internal Counters, in the normal Macros System, with the Error 'Pos', for the Conditional macros.
New release of the IncInc PreParser.
.
V.2.013b
The Import List Dialog ([Lists] Menu) did not assume the various Cases, for 'call'. Fixed.
In cases of DLLs making use of Statements like MOV EAX 'abcd', without any .Import, the Encoder was hanging when scaning the empty .Import Table. Fixed.
The extension of the ''Trash'' Table Size was making the [Wizard] Menu also showing the VisualTuts Items (Second Table no more zeored. Fixed).
V.2.013c
Review the Source Colouring pattern.
Implement a mechanism for re-launching the [Unsused Symbols] Box, in cases of re-compliation.
Fix a bug in the Data Relocations, for big DLLs.
Extend the macros Internal Counters Attributions to hexa, Decimal, Binary and Text.
V.2.013d
Minor bug fix for the Internal Counter writing, plus added error cases, to limit the outputs to '1' to '9' and 'A' to 'Z'.
V.2.014a
Preview of the new Debugger, with Right-Click Menu on Data Names.
V.2.015a
Merge of the previous two versions, with minor bug fix in the 'EnumComboChilds' CallBack, for the 95 regs.
V.2.015b
Minor Bug fixes in the Debugger and in the Source Editor (Bad braching in 'DebugDialog_GetCPUInfo' and Bad Mouse Pos at the end of Files smaller than a Screen, in 'LeftButton').
V.2.015c
The 'MouseOverDataHint' Routine of the Debugger was corrupting the Caret Pos. Fixed.
Implementation of a PREPARSE EntryPoint Statement, for 'Main' substitution.
V.2.016a
Re-Implementation of the Win32 Equates Management, based on the new CheckSum64 Engine. Suppression of the 'Equates.nam' and 'Equates.num' Files. Assembler Speed-Up between 1.5 and 5%, depending on the Processor.
Implementation of a couple of no use Mnemonics: PUSHFD, PUSHFW, POPFD, POPFW, PUSHAW, POPAW, for matching with Disassembly Sources.
Implement a ''On D§LineNumber <s 1, ret'', in 'TryToMove''.
Re-initialize the Undo Table in cases of creation / deletion of TITLEs.
V.2.017a
New version of the Equal Pre-Parser.
Review the Equal [Unfold] Selection.
Fix a minor bug in the Editor (badly commented out redraw, in the &WM_KEY holding).
V.2.018a
Finalize the Internationalization of the Error Messages. Choose Font implemented in the Configuration, for these Messages.
General re-organisation of the AsmMain with review of the very old 'A to B' rule, that was not fully respected.
Older Routines had been left in, for resolving the Win32Equates by the Structures Dialog, so that this Dialog was hanging when translating into the Equates Form. Fixed.
The new Right-Click Functionality for &EQUATE was keeping silent in cases of &EQUATE] . Fixed.
Add a [Zero or Question Mark] Radio Button, in the Structures Dialog.
Insert a temporary fix in 'IsReturnAddressInSource', for cases of conflicting exceptionhandlers, in the debugged Application.
V.2.018b
Structures Dialog: Remove the Square Brackets from the Structures under Data Form. (No more any use).
Internationalized Strings were not shown for the error Messages with ErrorLevel 9. Fixed.
Forgot to load the international Strings Font, after reading the Registry. Done.
V.2.018c
The cases of bad Win32 Equates Error Searches like, for example, '&TRU' where pointing to the first encounted '&TRUE'. Fixed.
Add an Horizontal ScrollBar, in the Api Function Dialog (Right-Click Feature).
Structures Dialog in Equates Form: The Win32 Equates and the Multiple Names for one record, were not considered. Done.
While storing the User Defined Equates, the cases of '[<Data:...]', where sometimes perverting the StatementsTable Records (used for Error Pointing). Fixed.
V.2.018d
Same as V.2.018c, but removed a wrong modification i did whil tracking down the '[<Data:...]' Bug.
V.2.019a
New release of the Debugger:
* [Feature] Event log (thread creation/destruction, module load/unload, debug strings)
Call 'Kernel32.OutputDebugString' to log messages
* [Feature] Debugger configuration is saved now (show advanced regs, stepping mode, font)
* [Feature] Change notification for register values
* [Feature] Support for 80 bit (T$) floating point values (data view/mouse hints)
* [Feature] Double click in Data view takes to memory inspector
* [Bugfix] CPU feature recognition in CPU info was not working correctly
* [Bugfix] Variable column width for data viewer & memory inspector
V.2.019b
The T§ Data were not assumed by the Structures Dialog. Added.
The previous Debugger Update had been made with old Files. It Should have been:
Changes since previous release:
* [Change] Virtual Page table replaced by Address Space tree
* [Feature] Event log (thread creation/destruction, module load/unload, debug strings)
Call 'Kernel32.OutputDebugString' to log messages
* [Feature] Debugger configuration is saved now (show advanced regs, stepping mode, font)
* [Feature] Change notification for register values
* [Feature] Support for 80 bit (T$) floating point values (data view/mouse hints)
* [Feature] Double click in Data view takes to memory inspector
* [Bugfix] CPU feature recognition in CPU info was not working correctly
* [Bugfix] Variable column width for data viewer & memory inspector
* [Bugfix] Pause sometimes crashed when using external threads
V.2.019c
The [German] Button was missing. Added.
The ending zero was set after the CRLF, for the National Strings, showing two small squares at the end. Fixed.
V.2.020a
The encoding of SIB with esp inside had been corrupted by a Typo. Fixed.
Debugger:
* [Feature] Mouse hints now support address arithmetic (e.g. D$Data+ecx*2+EQUATE)
* [Bugfix] Crash fixed when clicking the value list while no label is selected
* [Bugfix] Infrequent callstack crash fixed
* [Change] Exception auto-forward to external handler reenabled
General review of the Undo Feature, and implementation of the Redo Feature.
Speed-up of the DCBP Drawing.
V.2.020b
The cases of Block-Indent was arasing the Block, when having the Block Auto-Deletion set on, in the Bad Habits Tab of the Configuration. Fixed.
The re-alignment of the Block-Start was bad, if the initial position was not aligned on the Tab Size. Fixed.
The DCBP were not shown with the full Source restored. Fixed.
V.2.020c
Review of the Names in the Edit Menu.
Minor improvements in the Block Indentations Selections.
First implementation of the 'Tag Unicode Label' Dialog.
V.2.021a
Assembler: The Data Alignment default to 4 Bytes is now only in cases when no Size Specifier is given after the first label. If a Size Specifier is found there, the default Alignement depends on this leading definition (1 Byte for B$, 2 Bytes, for W$,... 8 Bytes for R$,...).
'Tag Unicode Label' Dialog: Font choice saved, and NumberOfChars computed.
V.2.021b
ParaMacros Parser: Insert an infinite loop test.
Unicode Tag Editor: The Font Handle was not zeroed after the Font release. Fixed.
V.2.021c
Review of the user's Source state (Partial vs Full-Source) in Debug sessions.
V.2.021d
Debugger:
* [Change] Debug dialog position & size is saved now
* [Bugfix] Mouse Hints did not work correctly when toolbar was activated
* [Bugfix] Title management reviewed
* [Bugfix] Async Terminate now sends WM_CLOSE to debuggees main windows
V.2.022a
I forgot to set the 'FileReadyToRun' Flag to FALSE after the Main Icon Edition and after all of the Tag Functionalities (causing [F6] to not re-compile before Runing). Fixed.
The [Lang] Tab of the [Configuration] Dialog was not made Child. Fixed.
When [With Security] was set [On] in the Configuration, it was hanging, when opening a File after having run the Encode-Decode Box. Fixed.
New release of the Equal Pre-Parser, with, mainly, implementations of exp(), log2(), log10(), ln(), atan(), and table as Destinations, plus a 'String maker' Functionality.
Restore the [Unfold] Functionality, for the Equal Pre-Paser, that was pointing to the wrong Buffer, since a recent re-organization of the Assembler Buffers.
New release of the Disassembler. First implementation of the Map File, with User switch of Data and Code Labels. Implementation of the Short Jumps Analyses.
In 'NewBrackets', there were cases when some macros Declarations of multiple nested {Data:...} that could pervert by one Record scaling, the error Pointing for the upward Statements. Fixed.
New release of the Debugger:
* [Bugfix] Reactivation of 'Hold On Breakpoints' crash fixed (Win98 mainly)
* [Bugfix] Select address space tab before module init (firewall block) crash fixed
* [Bugfix] Watchpoints feature reviewed (was crashing the debuggee when used in synchronous mode)
Asynchronous mode (set watchpoints while running) deactivated for the time being
* [Bugfix] Buffer overrun protection in call stack reconstruction
* [Bugfix] Better handling of failed call stack reconstruction
* [Bugfix] Fixed possible infinite loop case when stepping module code
V.2.022b
Update of the Api Functions, for 'sqlite3', by Marcello.
Disable the previous implementation for Disassembly Map File (does not work).
V.2.023a
Second implementation of the Disassembly Map Files.
New release of the Equal Pre-Parser, with review of the Parenthesis management.
V.2.023b/c
The Relocations of DLLs with Resources inside was failing. Fixed.
V.2.023d
Bugs fixed in the Conditional Macros Parser:
- The 'Imm' Condition was failing on Parameters, in case the 'High Bit' was set on, by the Equates Parser.
- The Conditions depending on the Internal Counters where inversed for '<' and '>'.
- For some combinations of #If and Statements an additional Separator was left over at the end, by 'ExpandMacroOnParametersLoop'
Assembler:
- the 'No Api calls' Cases of EXEs are now allowed (Error case replaced by a 'Yes/No' Box)
Disassembler:
- Same as for the Assembler: Now accepting PEs without .Import Section.
- Add a security, in 'FixMzParagraphsNumber' Method one, for case of wrong Displacements, bigger than the Disassembled File.
V.2.023e
Add a security test, in the Disassembler Routine scanning the .Import.
The Error Manager was hanging, in cases of missing Entry-Point on empty Sources. Fixed.
Re-organization of the Macros Parser, and review of the '#N' Key: It now assumes the Number of Parameters, in all cases (remove the very old, and never used, '#n' for backward parsings).
V.2.023f
Add the ''!!'' Marker, in the Macros Engine vocabulary, for removing the 2 first Chars of a Parameter.
Add the Conditional Comparison cases of '<=' and '>=', for the '#N' and '&&Counters' conditional Macros.
For some Macros created by Macros, additional Spaces in the '{..}' nested Declaration could have foolished the Macros Parser. Missing case implemented in 'StripUnneededSpaces'.
V.2.023g
Add a missing security (possible hang) in the 'KillTrailingSpaces' Routine.
V.2.024a
Implement the Jumps Size Optimizations.
V.2.024b
Bug Fix in the Macros Engine: The new 'MultiParametersUnfolding' Routine was not taking care of Text forms when scanning '}'.
V.2.025a
The above bug fix was incomplete. Reviewed.
The Unfold Box was not closing automatically after an Unfold Error, showing first, the error Box, then the empty Unfold Box. Done.
Implement the possibility of having several Clip Files.
Bugs Fixes release of the Equal Pre-Parser.
Macros Parser: When expanding some {... #2>L} nested Macro Declaration, for Macros/Equates creation by Macro, the trailing '}' was emitted as part of the Parameter. Fixed.
Restart the LibScanner from scratch, first working on a complete Asm listing Interpretation of all of the Lib contents.
Implement the Tag Menu ID, with automatic replacement of the Source Menu IDs Tables.
Implement another RosAsm Developements Test, for Serial Compilations.
Turn the Ascii Chart AutoScroll, to assume case when the Font would not be available on the user's configuration (Could mess-up the view, in case when the replacement Font would be a little bigger than expected).
New version of the Debugger:
* [Feature] Local symbol support for mouse hints and call stack
* [Feature] New filter capabilities in call stack (context menu)
* [Feature] Sort data labels by Address or Name (select in context menu)
* [Feature] Toolbar
* [Change] Flags moved into toolbar (can be hidden)
* [Change] General code cleanup
* [Bugfix] Rare 'Invalid path' problem fixed
New version of the Form Wizard:
* Made compatible with the new management of the Win32 Equates File.
* Treeview display for styles
* New management for styles (sorted which can be easily added and raw styles which are fix)
* Form position window
* Grid
V.2.025b
Form Wizard:
* listview and form position window display problems fixed
* fonts (accidentally removed in the previous release)
V.2.025c
Add an error Case, when storing Equates Names including Special Chars.
Forgot a developement test in the Jumps Size Optimizations. Fixed.
Start of the Obj(s) Parsing, in the LibScanner.
Sources Editor Bug Fix: The Redo feature was miss-behaving in case of CRLFs and/or Tabs.
V.2.025d
Right-Click was keeping silent on cases of ''&EQUATE)''. Fixed.
In 'HotParsers', invert the order of of the 'TranslateAsciiToMyAscii' and 'StripUnderscore'.
LibScanner: First version with parsing of the Object Sections.
V.2.025e
In store 'StoreMacroVariable' (Macros Engine), removing the no-use '|', for the output, was deleting the ':', in case of Evocations directly following a Label Declaration, when the Macro-Variable Statement was the first one, in the Macro Declaration. Fixed.
Minor Update of the Debugger, with new Documentation for B_U_Asm.
Disassembler: Some Strings Interpretations were missing the leading Char. Fixed.
V.2.025f
Implement the PUSHW imm Encodage.
Apply the V.2.025e Disassembly Strings Interpretation modification, to the cases of Unicode Strings.
Dialog Editor: Implement the WS_GROUP Flag for the CroupBoxes Controls.
Update of the Win32 Equates Right-Click Dialog.
New version of the IncIncluder.
LibScanner: Implementations of the COFF Sections with Reloc records, and first implementation of the Auxiliary Formats, for the COFF Reloc Records.
Disassembler: Remove the execution of the 'IsItNoReturnCall' Routine, in cases of Api CALLs.
V.2.025g/h
Add two errors Messages, in the Assembler: Security for '{}' abuses, and Source usage of Symbols in form of Automatic Labels.
V.2.025e introduced a bug in the Macros Parser. Fixed.
V.2.026a
New release of the Disassembler.
V.2.027a
Remove the errors Messages, in 'ComputeExpression', to enable the computation of Expressions including Equates declared by macros, in a second general Pass. Errors cases assumed by the downward Computations.
Debugger:
* [Bugfix] Menu did not work on Win95
* [Bugfix] MMX register contents did not show properly on Win9x
* [Bugfix] Occasional crash when mouse hints showed up behind other windows on Win98
New DisAssembler Version.
* Recognition of alternated Pointers.
* Review of the Data Pointer, with matching Code
* First direct implementation of the Api Parameters Recognitions (Code vs Data).
* Reorganization of the Ascii and Unicode Strings Recognitions.
* Recognition of repetitive Data Bytes.
* Better Code Recognition
V.2.028a
Disassembler:
* Rewrite of all the Data output stuff, in the Disassembler.
* Implement the Recognition of isolated Pointers, in Data.
* Implement the missing cases of PUSHW imm, in the Disassembler Engine.
* Fix a typo in MOVDQA (op7F form).
* Review of the Interactive Functionalities.
* The analyses of RosAsm produced PEs without Sources were failing. Fixed.
Review of the 'KillDebugger' cases, in the MainWindowProc.
Modify the ergonomy of the Dynamic Break-Points. (Two char margin // One Click and one [F4] for BPs On/Off // [Ctrl] for Floating Menu // [Shift] for all BPs Off).
Editor: Default Font set to Courier New 10.
Fix of several minor bugs.
V.2.028b
Disassembler:
- Fix a Typo in the 'MOVQ' Interpretation of Effective Address.
- Fix a minor bug in 'FlagsCoherency' for the FP10 Cases.
- Switch the Strings Recognition to Strings Identifications (Positive Recognitions to Try&See recognitions).
- Degressive tuning of the Strings Recognitions, in between the Negative Recognitions.
- Extend the Api Names Buffer to 128 Chars by Function.
PMOVMSKB: The Intel Doc i used in 2001 was wrong (reversed order of Parameters in the Reg/rm Byte). Fixed in the Assembler and in the Disassembler.
V.2.028c
Aborted
V.2.029a
Disassembler:
- Implement the 'Minus Indice' in Effective Addresses. Example: jmp D$eax*4+Data0438E28-4
- Negative Recognitions: Implement all LOCK cases (matching Instructions and E.A.)
- Fix a Typo in CVTPD2PS.
Assembler:
- Error Pointing, in Source, now located before the ErrorBox Messages.
- The Size of the two main 'Switch Buffers' (CodeSourceA / CodeSourceB) were not identical. Fixed.
Debugger:
- Restore the normal state of the 'WeAreInTheCodeBox' Flag, in 'InstructionDecode'. (Was causing occasional hangs of the Assembler).
IDE:
- Titles Tab made independant.
- 'call LoadBookMarks' added in cases of MRU. (Had been forgotten).
- DCBPs: Specific window for the Margin, with different Mouse Shapes for Edit and DCBPs.
- General review of this Functionality, with minor bug fix.
Completions:
- Review of the Completion Buffer sizes. Computation of the real size instead of estimation.
- Win32 Equates Completion: Fix a minor Bug causing the failure of the detection of Names with Numerics inside.
V.2.029b
Consider the ToolBar Height, when ToolBar is [On], for the 'dead-point' computation of the TITLEs' Tab Control.
V.2.029c
Implement the cases of D$FPU_8_Data+4, in the Disassembler outputs. (Used for pushing FPU_8 on the Stack. Second Label not outputed by the Disassembler, in Data, to keep with the FPU Data rendering).
V.2.029d
Bug Fix: Could have hang, because of a Pointer not yet zeroed, while loading a File needing a MessageBox, and therefore sending a WM_PAINT. Typically loading twice a Disassembly with no Icon found.
Disassembler: In the previous '+4', in E.A. adjustment, i forgot taking care of ajusting the Tables Limits, for the tests. Fixed.
V.2.030a
Extend the security limit for Api Functions Names to 200 Bytes.
In [Lists] Export and Import, the Source states (Full vs Partial - TITLEs inside -) had not been updated to the actual management (Always Partial in between two Edit Actions), causing the search Functionalities to fail, when raising the TITLEs Bar, in between two Searches. Fixed.
List Export Box: Uses the LBS_SORT Flag
List Import Box: Assumes the Api calls by Jumps Table (for the Disassembled Sources).
Disassembler:
* First Implementation of the Symbolics' Strings Table (Applied to 'Main', MainWindowProc', 'DialogProcs', 'ThreadProcs', 'EnumChildWindowProcs', HookProcs).
* Simplification of the Disassembler Options: Remove the [Group Data at Top] and [With HLL Ananlyses] Flags.
V.2.030b
Disassembler: Multiple WindowClasses: Select only the one closest to 'Main:' as 'MainWindowProc', in the Strings Table, and the others as 'WindowProc'.
V.2.031a
New version of the Debugger, with the Debugger's Strings internationalisation.
V.2.031b
Inclusion of the Norvegian Language.
I forgot to update the [Lists]//[Imports]/[Exports] to conform with the new convention of the TITLEs Managements. Fixed.
V.2.032a
Preview of the GUIDs Dialog.
V.2.033a
Disassembler: Extend the Recognitions of repetitive Data to 9 occurencies, for cases of Dummy multiple 'push/pop eax', in 'MarkRepetitiveDataBytes'.
Debugger: The FPU FLags, in the ToolBar, were inactivated. Fixed.
Form Wizard: Fix of a minor IDE bug.
V.2.033b
Move the release of the 'EquateSubstitutes' Table into the 'InitIndex1' stuff.
V.2.033c
Minor Bug fix release for the Debugger
V.2.033d
Clip File Templates coming with '@' Flag: The Length was wrong. Fixed
Sources Editor: The CRLFs Applied at the beginning of a Line begining with a Local Label were wrongly applied the Local Labels Indentation. Fixed.
Menu Item [Output] Grayed when required.
Dynamic Break-Points: Floating Menu fired either by Double-Left-Click or by Right-Click. Option in the Configuration Tab.
Disassembler: Restore, at least, one Strings Recognition, before the negative Recognitions.
V.2.033e
Bug Fix, in the Disassembler in the Recognition of Api Calls Parameters locations.
V.2.034a
Editor: The Char storage was missing in the Undo Feature, for the Lines drawing. Fixed.
The Help branching, from the Clip Dialog was obsolete. Updated.
Fix a minor bug in the Clip Viewer (searching for ':', even when none inside).
When locating at the very first Line of a Source, in the Source Editor, the Ctrl-X / D Functions were not assuming the missing CRLF, locating the Caret 2 Chars further. Fixed.
New version of the LibScanner.
New version of the Unused Symbols Dialog
Review of the [Run], [Compile] and [Optimize] commands logic.
V.2.034b
Review of the [Local] TITLE by Scarmatil.
Add of a couple of securities in the UnfoldMacros Routines.
The new 'Compile' Routine of V.2.023a was buggy. Fixed.
V.2.035a
Review the branching to the 'CreateFile' Routine. Remove the Return to caller of caller Tip, for maintainance ease.
Add some missing error cases for LOOPxx with plain labels.
New version of the IncIncluder (Half).
Add a case for assuming the strings in 'UnfoldOneOfMultiPara'.
Enable the GUIDs Menu Item. Fix a minor bug in the vTables Text.
Disassembler: In 'WriteDisAscii', isolated cases of 13, or 10, could have been confused with CRLF. Fixed.
Review some details in the TITLE Tab Window Positioning, colour on Mouse over, and fix a minor bug in case of MRU load, which was not setting the TITLE Tab on the actual TITLE.
New version of the [RosAsm Mems] tool ([RosAsm Devs Tests]), by Guga.
V.2.035b
Bug fix: The Help did not work since the unification of its calls.
V.2.035c
Bug fix: EBX was not preserved in the Disassembler Engine 'Dis_rm16_Sreg' and 'Dis_rm32_Sreg' Routines, causing some MM, XMM and Seg Regs, to not be outputed the correct way.
Minor Bug fix in the Disassembler Menus.
V.2.035d
Disassembler: Implementation of a Routine for flaging the SEE Data Types.
~~~~~~~