hi all,

as someone maybe remember, i've paid to buy Tasm some year ago, and now that i've build some tasm experience (i like it) i've never tought to switch to masm or aother assembler.

But seems tasm have a non resolvable problem:

if i do

call GetModuleHandle
mov hInstance,eax

push hInstance
pop wc.hInstance

i get assembler error for duplicate symbol hInstance, so i have to change it in hInstance in hInst or to change wc.hInstance in wc.wc_hInstance.

Get same error if 2 structures of data have a memeber that use the same name.

Seems masm don't have this same problem.
And i don't like this thing becouse i need to change many symbols in my .inc file. That also is a non-compatibility with masm.

I've looked at many tasm sources. Seems no-one has solved this problem. All has changed hInstance in hInst an changed all the structurres memeber names adding a prefix or changing some letter to uppercase (msg.msgWPARAM).

quirk, masm directives don't help to workaround the problem !

Only solution seems to define structures in every procedure as LOCAL. But if i'm in the beginning, near EntryPoint, outside from procedures i can't use LOCAL.

That's all. If someone know a way it would be great...

Posted on 2002-01-30 01:04:48 by Bit7
Its been a long time since I used TASM, even though I paid for my copy as well but from memory this was one of the reasons I went to MASM for 32 bit code, TASM has problems with structures, hash space, its still OMF and Borland do not upgrade it any longer.

Contrast this with MASM, it can handle very large include files, its structure handling is normal and it produces smaller EXE and DLL files in 32 bit because it is COFF format.


Posted on 2002-01-30 01:58:14 by hutch--
so i have no chance .....
Posted on 2002-01-30 05:29:32 by Bit7
duplicate member names among multiple structures in tasm are allowed only if you're using ideal mode.
Posted on 2002-01-30 05:47:55 by Tola

call GetModuleHandle
mov hInstance,eax

push hInstance
pop wc.hInstance

Why not

mov wc.hInstance, 400000h

:) In current Windows Versions it's always 400000h... maybe it will change in 64bit :confused:
Posted on 2002-01-30 05:56:07 by bazik
thanks Tola, i will see... it need to learn all the IDEAL syntax but it could be a way out...

bAZiK, thanks for the workaround you suggest. But it reamains the problem that i cant duplicate members name in stuctures...

I will see this IDEAL mode... but i dont like to change all the syntax for it....

Posted on 2002-01-30 06:01:53 by Bit7
ok ok,

now yes that i have the solution....

here we go...

Bye B7
Posted on 2002-01-30 14:13:26 by Bit7

shouldn't you recycle that? protect the environment, you know :tongue:
Posted on 2002-01-30 14:44:20 by Tola
I should have post this pic when i switched to MASM earlier this month. But anyway... :grin:

By the way, that's one dilemma why I switched to MASM...But a lot of factors we're considered too. You should check PASM the evolved form of TASM.
Posted on 2002-01-30 14:54:37 by stryker
So i am the last and only one still using TASM here :)


IDEAL mode is not that bad: just put STRUC/PROC in front of NAME and byte ptr inside brackets (i allways use brackets anyway)

Prefixing structure members with structure name is not that bad either, at least i know from what structure is is. This also helps in symbol searching.

Never had big problems (only long names sometimes) with include files. And we have many big ones in HE.

Current hash table=32Ksymbols => ok for now.

Assemble speed is:200Klines in 3 seconds => very good for HE

Licence/EULA lets me make other non-MS Operating Systems =>OK

I guess i will still use TASM for a while ... should i be the last one :P
Posted on 2002-01-30 16:50:41 by BogdanOntanu

So i am the last and only one still using TASM here :)

no, you're not :)
Posted on 2002-01-30 17:06:22 by Tola
really not!
TASM rulez!

http://kickme.to/bratalarm - Tasm-IDE
Posted on 2002-01-30 17:17:46 by Rennsemmel
I still use it too...But not that much anymore. IDEAL mode rocks!!!
Posted on 2002-01-30 17:22:26 by stryker
I liked tasm ideal mode better than masm, it even have a object oriented notion, but still since its not upgraded, and inprise/borland never bother to give the source is much of a death project. The last one is 5.3, and when I tried asking whats new in the tasm newsgroup I didnt get a single repply. Since like not evem the people that call themselves TeamBorland know whats different on 5.3. (if anything).

Meanwhile, my best reasons for switching to masm:


Get the point, since technology advances assemblers should advance too. Otherwise they get to be obsolete.

Has for nasm, spasm and fasm. They are great intents and are evolving. Eventually they could get to be better than masm, (Sorry betov), but IMO they are not yet there. In my case the assembler is not a toy but a tool, so I have not the time to experiment with them until they are solid. And with a mature enough interface.
Posted on 2002-01-30 18:32:49 by dxantos

i've picked up TASM from the bog.

I want to try the chance of IDEAL mode.

But's not properly as you said....

Seems i can't use no more .data? .data .const directives.....
Posted on 2002-01-31 06:12:04 by Bit7

pippo SOMESTRUC <>

seems don't be good anymore,

Tasm Manual don't talk about new syntax for IDEAL but...
Posted on 2002-01-31 06:55:31 by Bit7
For TASM I would recomend the book, "Mastering Turbo Assembler" its the best (only?) one that teaches assembly using the ideal mode syntax of TASM. (including its OO features). The are some drawbacks, its dated (teaches about 16 bit assembly, but ideal mode is the same on both so no problem there), its not free, and its difficult to find (since its old).
Posted on 2002-01-31 07:10:03 by dxantos
SOMESTRUCT works with TASM 4.0.
You do need to say struc SOMESTRUCT instead of SOMESTRUCT struc.
You can also use {} instead of <> with structures.

.code, .data, .data?, and .const are replaced by codeseg, dataseg, udataseg, and const.
Posted on 2002-01-31 17:34:02 by tank
"Has for nasm, spasm and fasm. They are great intents and are
"evolving. Eventually they could get to be better than masm,
"(Sorry betov), but IMO they are not yet there. In my case the
"assembler is not a toy but a tool, so I have not the time to
"experiment with them until they are solid. And with a mature
"enough interface.

I can only agrea with the fact that Assemblers need to be solid
and mature. But the actual situation is that, just because you
all use MASM, none of the free and Open Sources Assemblers is
envolving at the speed it should. For 20 or 40 Messages here
there is 1 at NASM Board and 1 at SpAsm board. Same averages
for users. I am not pushing SpAsm when saying this. You could
as well contribute to FASM or NASM and i would be happy of it
(even if i don't want to talk any more with Thomasz, and even
if i completely disagrea with the wrong syntax, his Assembler
is clean, good and much interresting, easy to read, easy to
develop and to improve).

So, if the existing Assemblers do not fit your needs, you just
have what you diserve. If one tenth of the work stupid guys did
at writing marvelous and inumerous IDEs for the Bill Gates
Assembler legaly stolen by Hutch had be spent at improving one
of the free Assemblers, you'd have it solid and mature actually.
Along the last 3 years i wrote the 2 Megas of SpAsm Source, i
have received about 50 lines of Code from users... Thanks to
them few, anyway.

Posted on 2002-01-31 20:14:01 by Betov

The problem as i see it is one of access to the form of an evolving assembler. I have for some time made the point that the work you have done is a monument to the perseverance you have put in to writing a working assembler and I think that is admirable but it does not help you in terms of support.

MASM is a seperate assembler and requires a linker to make it work but everything else can be configured by the user to do what they need, their own choice of IDE, whatever include files they like, libraries if they want it and any code design they can get to work.

If the format of Spasm was a lot more flexible, many more people would use it and contribute to making it a better and more powerful assembler but at the moment, its locked in an IDE that is very different to what most people write code in, it has an unusual syntax that most people find difficult to grasp and it does not support modular code in terms of libraries and similar.

Rather than seeing my comments as a criticism, I would prefer that you saw it as someone who would like to see Spasm develop into a powerful and flexible assembler.

As I see it, the things that would help a lot is,

1. Unlock it from the IDE so it can be used by itself.

2. Allow a syntax that is a lot closer to standard Intel syntax even if it has NASM style addressing.

3. Build at least an INCLUDE directive so that the programmer can include ASCII format files into the code at their own choice.

If you can bend a little with these things, a lot more people could do some work in Spasm without having to completely relearn the way they code.


Posted on 2002-01-31 21:24:26 by hutch--