News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

RichMasm: an editor that remembers your formatting

Started by jj2007, April 11, 2008, 11:46:58 PM

Previous topic - Next topic

jj2007

#15
Version of 24 September fixed a harmless bug (text scrolled when typing something in the Find box), and greatly enhanced the Ctrl K insert hyperlink feature.

jj2007

#16
Version 24 September attached right above:

- Hyperlinks now fully functional, either by pressing Ctrl K or by selecting Format/Insert link. If http: or x:\file.ext are present on clipboard, the edit field will be prefilled.
- Right-click to edit an existing link.
- F4 toggles comments (if first non-whitespace char is ;, then all comments will be removed, if not, ; will be added to all selected lines)
- New Win & Console app option added to File menu
- Build & run option added to File menu
- if int 3 is present, F6 assembles, links and starts OllyDbg; for console apps, the nagging console window will be automatically minimised
Suggestions welcome, of course :bg

jj2007

#17
In addition to "normal" hyperlinks, version 30 September 08 has now text anchors, i.e. you can create html-like anchors in a document to which you can link. Example:

(page 5):
   mov ecx, hList
   .if ShowLB      ; attention may be reset by this procedure
      mov ecx, hRE
      mov eax, BST_UNCHECKED
   .endif

(page 25)
   .if ShowLB
      or ecx, -1
      mov eax, BST_CHECKED
      and ShowLB, 0
   .endif

This feature turned out to be pretty complex, but it seems stable now - feedback and bug reports wanted...

RichMasm saves a temporary plain text file to disk, then launches ml.exe. Internally, an anchor is preceded by a 5 letter (hidden) code telling RichMasm its name and length. This code will obviously be removed before launching the build process. In practice, this means your text anchor can be embedded in the code. The link, however, will not be removed, and therefore must appear in a comment.

Edit: Fixed a minor bug that caused unexpected scrolling.
See top of thread for latest attachment.

jj2007

See top of thread for latest version.

jj2007

Version 10 October, attached above: Improved reading in of plain text sources. Bookmarks are now generated for .data, .data?, .code, macros, procs, and a number of WM_ messages. The guide contains a little table with links to the Masm32 examples.

hutch--

:bg

JJ,

If you ever succeed in getting RichMasm comprehendable to mere mortals it could end up a dangerous weapon. No the important question apart from what you have designed it to do is can it make good cappachino ?

Keep up the good work.  :thumbu
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

jj2007

#21
Quote from: hutch-- on October 10, 2008, 01:09:52 AM
dangerous weapon

I am working on it, as the snippet below shows - for notebooks only, unfortunately.

CheckQuality proc
  call AnalyseCode
  .if NoobScore>20
invoke PlayMidi, chr$("ViolentLaughter.mid")
  .elseif BadCodeScore>20
call CloseCoverAndSmashProgrammersHands
  .else
MsgBox hWnd, chr$("Compliments, your code is fine!"),
addr AppName, MB_OK
  .endif
  ret
CheckQuality endp


Quote
Now the important question apart from what you have designed it to do is can it make good cappuccino?

Now you caught me in the act, Hutch! But I am having problems with the hardware interface. Anybody aware of standard protocols for communicating with a coffee machine?

Quote
Keep up the good work.  :thumbu

You too :thumbu
By the way: I have added a couple of links to the \masm32\examples section into the manual. Usage should be simple enough for mere mortals: Click on the link, and hit F6 when you see code. Afaik they all assemble fine and don't need the build.bat any more... \masm32\RichMasm\bldallRM.bax has some goodies, but beware, I don't check if it has been changed, so every new installation will overwrite the bax.

jj2007

RichMasm has been updated - see above below the screenshot.

Major changes:
- a recent files menu aka MRU (most recently used)
- a template for using TIMERS.ASM (under File/New Masm source)
- assembly output now integrated
- jumps directly to the error line where possible
- autoformat for blocks with ugly formatting
- under the hood: added SSE2 for faster strlen

Feedback welcome, of course.

EDIT: The search function has been improved. Example:

Find uMsg*VK will find all lines where VK follows uMsg. Problem: They are not in the same line...

  .elseif uMsg==WM_KEYDOWN
   .if wParam==VK_RETURN

Find uMsg**VK will find the block above. And in case you have something like this:

  .elseif uMsg==WM_CHAR   ; KeyFiles
   ; status wParam, chr$("CHAR ")
   .if wParam==VK_SPACE || wParam==VK_RETURN

... just add one star more: Find uMsg***VK will find VK within the next two lines.

lingo

Not a big deal but I can't see the menu titles
under Windows 64 bit Vista Ultimate SP1.

[attachment deleted by admin]

jj2007

Quote from: lingo on March 17, 2009, 01:12:25 PM
Not a big deal but I can't see the menu titles
under Windows 64 bit Vista Ultimate SP1.

Thanks, Lingo. It seems that Vista doesn't like painting on the Window DC. "Not a big deal" is an understatement :wink

lingo

"Not a big deal" is an understatement"

"Not a big deal" means Vista has special properties options for exe files and if we mark "Disable desktop composition" option
from Properties\Compatibility of the richmasm.exe all appears OK...



[attachment deleted by admin]

jj2007

Quote from: lingo on March 17, 2009, 07:52:58 PM
if we mark "Disable desktop composition" option from Properties\Compatibility of the richmasm.exe all appears OK...


Ok, I admit you are a genius :bg

jj2007

Update above, below the screenshot.

Handling of linker warnings is now improved, see OPT_NoWarn in File/Configure project.

jj2007

Update above, below the screenshot. Main change: a "Last good version" in the File menu allows to revert to the last version that assembled & linked without errors. Can be a handy feature :bg

UtillMasm

Your editor look good. When will you post code? I guess I can speak for everybody when I say we are curious. :toothy