Version 0.99.1 (January 12, 2006)...

Started by PellesC, January 01, 2006, 02:46:21 PM

Previous topic - Next topic

PellesC

New version 0.93.0. Still "work in progress", still "not a MASM clone"...

EDIT: version 0.93.0 (January 3, 2006):
- added SIZEOF register (see regsize.asm)
- added .ERR [text-literal]
- fixed bug in INVOKE for VARARG parameter with size larger than "machine word" (32 or 64 bits).
- Better handling of <list> in FOR-loop.
- INCLUDELIB "..." containing path/name with spaces should work.
- Initializing structures (< >) didn't work if it came through a macro/FOR-loop/...

EDIT: version 0.99.1 (January 12, 2006):

- Many changes in macro and string processor for IA32/AMD64 target. More stuff should work, but some pre-0.99 stuff might not. This affects everything from macro calls to IF<B/IDN/DIF/...>. Many of the macro changes affect what to (and sometimes not to) expand where, when, and possibly why. Strings with embedded nul-characters ("C" strings; "AAA\0BBB\0\0") will not be truncated in some places (which they were before), but will still be be truncated where they don't make sense, like in INCLUDE and ALIAS directives (only "AAA" will be seen).
- Added ECHO directive for printing "tokens" (continue to use .ECHO for "expressions").
- Added SUBSTR, INSTR, SIZESTR directives. Now predefining macros @SubStr(), @InStr(), @SizeStr() using same directives (and @CatStr using CATSTR/TEXTEQU).
- Added OPTION WARNINGS {ON|OFF} - to enable/disable warnings in (part of) a source file.
- Added ZERO?, CARRY?, OVERFLOW?, SIGN?, PARITY? for tests in pseudo instructions.
- Unknown symbols seen in a CALL instruction (only then) are assumed to be forward references to global labels (not local) when used in a PROC.
- Now warns about DW "XY" case ("emitting as Unicode...").
- New command-line option /Zg, to write PROC prototypes to stdout (source file should have correct syntax).
- Fixed, or at least made invisible, a problem with many short, but forward, jmp's/loop's.
- Fixed a nasty bug with element offsets in nested structures (the offsets were not accumulated correctly).

Pelle

Shantanu Gadgil

Hi, I have the following code: (to test the ".if carry?" expression)
---
stc
.if   carry?
   xor eax,eax
.endif
---
This gives an error:
potest.asm(11): error: Wrong type for condition operand 1.
...for the line ".if carry?"

Please...am I missing something on how to use the "carry?" or is it not supported yet ? :)
To ret is human, to jmp divine!

hutch--

Pelle,

Just so we can keep track of what is being changed and what fixes get done, could you attach a list to each release so we know what to test. It means that the feedback can be more useful to you as it can be targetted to the most recent work that you have done on POASM.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

PellesC

Hutch,

I will try - I don't really want to start a changelog until version 1.0, so it will be from memory only...

Pelle

PellesC

Quote from: shantanu_gadgil on January 01, 2006, 04:56:05 PM
Please...am I missing something on how to use the "carry?" or is it not supported yet ? :)
Your are not missing anything - ZERO?, CARRY?, OVERFLOW?, SIGN?, PARITY? are not implemented, and I'm not sure they will be. I find them pretty useless myself...

Pelle

hutch--

Pelle,

The progress has been truly stunning so far so i am not trying to wear you out. The idea was to try and make the development and testing a bit more compatible. As long as you can keep it up, keep up the good work, this is a giant killer in the making.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

PellesC

Hutch,

Quote from: hutch-- on January 03, 2006, 12:57:31 PM
The progress has been truly stunning so far so i am not trying to wear you out. The idea was to try and make the development and testing a bit more compatible. As long as you can keep it up, keep up the good work, this is a giant killer in the making.
I will try and keep a separate changelog for now. I usually log all changes in the source code, but I find it confusing to start before the first "official" version (=1.0).

Pelle

Shantanu Gadgil

Hi, Pelle...

You said:
...ZERO?, CARRY?, OVERFLOW?, SIGN?, PARITY? are not implemented, and I'm not sure they will be. I find them pretty useless myself...

:) How fair is that :) saying "pretty useless" :)

It was a standard practice for old DOS 16 bit programs to return (from a function or a label) with carry "set" or "clear"
Right now the code I used for testing was "made" to work with "jc", so no "immediate" problem there. Probably you could put this on "very low" priority (but sure), to be implemented later ??? :)

Hutch said:
...this is a giant killer in the making...

definitely !!! More than two thumbs up for an amazing software !!!

Hope the "carry?" request is fair from my side (probably helping in making POASM *more* complete) :) :) :)
To ret is human, to jmp divine!

PellesC

Quote from: shantanu_gadgil on January 03, 2006, 02:35:02 PM
Hope the "carry?" request is fair from my side (probably helping in making POASM *more* complete) :) :) :)
Sure. I have put it on the wishlist.

I just meant that since you probably don't mix "carry? ..." with too many other conditions, it's easy enough to do with a jump. Something like "EAX < 8 && EBX < 8 || ECX > 5" requires a bit more work, and is more interesting to support...

Pelle

Shantanu Gadgil

Pelle said:
I just meant that since you probably don't mix "carry? ..." with too many other conditions, it's easy enough to do with a jump. Something like "EAX < 8 && EBX < 8 || ECX > 5" requires a bit more work, and is more interesting to support...

YES !!! :) I agree.
To ret is human, to jmp divine!

PellesC