I am sure Microsoft sit up at night sobbing silently while wiping away the tear stains because of your dissatisfaction with ML64
Just found a very interesting exchange of views, over 11 years ago, between
Microsoft (Kang Su Gatlin, Visual C++ Program Manager) and some members of this forum titled
MASM on x64:
M$: how important is "INVOKE" for x64 MASM? ... Would you rank INVOKE as more or less important than the high-level control flow directives such as .WHILE, .IF, etc...?
Randy Hyde: The *vast* majority of MASM32 projects I've ever seen certainly use both.
Eugen: I am using MASM for writing fairly complex commercial applications (mainly shareware games) and i consider critical to be able to use both invoke and if/else HLL constructs.
hutch--: a properly designed INVOKE style syntax becomes critical to this range of users. Particularly for C/C++ programmers who are used to prototyping and the reliability of size and parameter count checking, bare mnemonics are very unpalatable to them.
Tedd: rough guesses on what I personally use, though I dare say others are similar.. invoke - LOTS, proc/endproc - lots, .IF/.ELSEIF/.ELSE - very often
GregL: PROTO / INVOKE are very important to me, as well as .IF. .WHILE and .LOOP would be next in importance.
BogdanOntanu: I will never use an assembler that has no invoke or extended call syntax and .IF .ELSEIF .ELSE .ENDIF constructs included in the assembler.
hutch--: In terms of priority of pseudo high level constructions, I would tend to place them in this order.
1. INVOKE Critical for C/C++ programmer who are used to prototyping and who have little chance of writing bare mnemonic code.
2. .IF block syntax for sequential conditional testing. Nearly as critical for reliable higher level code.
3. .WHILE / .REPEAT loop code syntax. Useful but can generally be replaced with manual loop code.
M$: I'd like to thank EVERYONE for their feedback.