I'm just curious, what advantages do SPASM have? I'm thinking about shifting to SPASM....
Posted on 2001-11-16 06:59:20 by Tsongkie[ii]
You'd better get betov to reply on that one, he's one of the few that
can see any advantages, giggle ;)
Posted on 2001-11-16 07:43:21 by f0dder
Well, you can have multiple mnemonics per line - more compact code means less scrolling. SpASM doesn't use a linker - goes straight to EXE. There is a help file on betov's page explaining the reasons for his course.
Posted on 2001-11-16 09:00:06 by bitRAKE
Fodder, the quantity is not the quality (no smily).

Well, the inconvenient first (of course):

- It produces only Win32 PE (actually EXE, SCR, DLL, CON -Drivers, not yet-).
- It does not compile MASM/TASM/NASM/FASM sources (the 'alternate syntaxes'
feature is not enough to hold all of other Assemblers syntaxes variations).

The advantages:

- A really powerfull and easy Macro system.
- Ease of use (no installation at all, outputs Apps in one Click).
- Speed (at least, half time than MASM, will be accelerated in close futur).
- True Assembler (as opposed to C-Like).
- Simplified syntax (no possible confusion between Values and Addresses,
for example).
- Both low level Assembler, internaly, and HLL Assembler by user defined Macros
(as a beginner can't create these Macros sets first, several sets are provided).
- No limitation for strings Length (including direct CR/LF).
- Multi-Instructions Lines and multi-Lines Instructions.
- Integrated RAD.
- Integrated Debugger.
- Integrated symbols Lists for Equates, Structures, Api. (No inc required
for Win Equates, Api, Structures).
- Reusable code by (no INC / LIB).
- Free Open Source Assembler, allowing things like full reuse of SpAsm for
writing Applications Builders, and, of course, full guaranty that your work
will not be lost when ReactOS and/or other Open Source OSes will have
definitively pushed Windows out (times are coming).
- Mono-File Management of Applications. All the components of your Application
are saved inside the PE, including the Source (that can be stripped off with
a provided tool, for commercial distributions). This is to say that, for
saving all of your work, all you have to do is , and that for recovering
all of your work, all you have to do is to the PE.
- Local Symbols and meaningless Local labels with direction and jmp size control.
- Auto-compilable.

Advantages of IDE:

- Instant Right-Click search of any symbol (+ moves recording for BackWarding).
- Many context dependant features with Right-Click and Double-Left-Click.
- Tree-View + Bookmarks.
- Macros tester.
- Errors pointed directely in the Source both at compile time and at run time
- Integrated Editors for all Resources (including full Dialog Editor offering
the ability of saving Dialog Templates in the ClipBoard for pasting inside
the Source Data). (Missing Resource actually: RT_VERSION -no info about what
it really is inside resources...-).
- True Assembly versions of the Win Structures (3 forms -of course none for
the odious MASM C-Like STRUC-).
- Source Editor re-written from scratch (not a simple RichEdit Control) that
is specifically designed for Source editing requirements (screen dependant Caret,
no automative deletions, and so on...).

... And finally, the possibility for users to contribute at new wished
implementations, bugs fixing and improvements (SpAsm is written with SpAsm...),
with an active and answering author, who is at it full time. Several features,
even when i did not like them a lot, have been implemented this way.

Posted on 2001-11-16 12:27:32 by Betov
Betov, if you're talking about .SYS drivers, how come spasm can't
create them? They're just standard PE files (with different imports
than usual files), you just have to compute the PE checksum...
or am I missing something? :).

Btw, keep up your work with spasm, diversity is always nice, even
if I prefer masm (for the time being).
Posted on 2001-11-16 12:36:31 by f0dder
Yes, i know they are nothing but PEs. I just have had no time,
up to now, to study the verious details for outputing them. (only
two hands,... and an old tired brain...).

Posted on 2001-11-16 13:46:11 by Betov
Betov, as for outputting SYS files... set file extension to .SYS, and
use code I have posted on this messageboard to fix the PE header
(it's very easy. Your start by setting pehdr.checksum to zero, then
you run the checksum algo on ALL the file, and then you update
the pehdr.checksum). There shouldn't be any other details involved
in outputting SYS files - the various DLL files and such to use should
be the users responsibility.
Posted on 2001-11-16 13:53:22 by f0dder