News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

JWASM, UASM, ASCM - Where's the difference?

Started by bugthis, June 29, 2023, 12:10:05 PM

Previous topic - Next topic

bugthis

On the old sourceforge website, it is stated, that JWASM development has ended and new forks called UASM and ASMC where created.
https://sourceforge.net/projects/jwasm/

And on the Officel JWASM website, it is still stated, that sourceforge is used for bug reports, feature requests and other things:
https://www.japheth.de/JWasm.html

But on sourceforge page it is stated, that
https://github.com/JWasm/JWasm
is now the new address and JWASM development continues.

But the sourceforge page, also says, that JWASM development has ended and the forks
UASM
https://www.terraspace.co.uk/uasm.html
https://github.com/Terraspace/UASM

and ASMC are the new thing:
https://github.com/nidud/asmc

See the screenshot in the zip file.
I marked some informations on the screenshot:
1. JWASM has a new repo on github.
2. japheth.de is still the active website, where it is stated, that sourceforge is the address for bug reports, feature requests etc. about JWASM.
3. In the user section it is stated, that UASM and ASCM are the new thing.
4. Last update was in 2015.
5. Last ticket on sf is 2 years old.

And on the ASMC website, the last source edit was 3 weeks ago, which is a good sign. But there are no informations about the difference to JWASM.

On the UASM website, that information is better, there is at least an ABOUT UASM, which is missing for ASMC:
https://www.terraspace.co.uk/uasm.html
But the last source file edits are 2 years old:
https://github.com/Terraspace/UASM

And on the new JWASM website only minor changes, like a modified Makefile were made. The history is 9 years old.
https://github.com/JWasm/JWasm

And the main JWASM website needs a major update, it seems to be outdated everywhere. For example still saying, that sourforge is the address for bug reports, not github.
https://www.japheth.de/JWasm.html


So, where is the difference between these 3 assemblers and which one is the active version?

Personally i need only an assember for 16 Bit Real Mode programming with a very good compatibility to MASM. I don't need the newer features. For 32 bit and 64 bit assembly I would probably use NASM or FASM.

On the FreeDOS Project, only JWASM version 2.14 from Dec 20, 2020 is included on the FreeDOS Bonus CD. UASM and and ASMC are both missing.

zedd151

https://masm32.com/board/index.php?board=51.0  there is a uasm  board right here.
You can ask there about uasm. A lot of people here use uasm. Ask and you will probably get the answers that you are seeking. I myself do not use it.


ml.exe and ml64.exe do everything I need.

https://masm32.com/board/index.php?board=47.0  Archival JWASM postings board here. Discussing jwasm and the old jwasm site.
jwasm is outdated I believe and japeth's site is no longer maintained by him.


I know nothing of ASMC.

_japheth

#2
Quote from: bugthis on June 29, 2023, 12:10:05 PM
On the old sourceforge website, it is stated, that JWASM development has ended and new forks called UASM and ASMC where created.
https://sourceforge.net/projects/jwasm/

It's mentioned there that jwasm has been moved to github, but be aware of the exact location ( Baron-von-Riedesel ):

https://sourceforge.net/p/jwasm/discussion/927109/thread/c2dc7e7a/


Quote
And on the Officel JWASM website, it is still stated, that sourceforge is used for bug reports, feature requests and other things:
https://www.japheth.de/JWasm.html

Forget this URL, it's an exact copy of the old jwasm site, 10 years old, unmaintained.

UASM and ASMC are forks and have some nice features, but for DOS development, jwasm is the best choice - IMO.
Dummheit, gepaart mit Dreistigkeit - eine furchtbare Macht.

HSE

Jwasm was abandonware for some time  :biggrin:

In that time, some Jwasm problems were solved in what now are Uasm and AsmC. And they included some compilers features.

Uasm included new things mostly in an internal library that you can disable, then Masm compatibilty is maintained.

AsmC included new things in a way you can disable in 32 bits but not in 64 bits. And a couple of years ago become totally Masm incompatible.

Also around same time Jwasm was updated.

Now, because I disable library in Uasm, is close to indifferent to use Jwasm or Uasm (or ML in 32 bits)
Equations in Assembly: SmplMath

jj2007

Quote from: HSE on June 30, 2023, 05:14:28 AMAsmC included new things in a way you can disable in 32 bits but not in 64 bits. And a couple of years ago become totally Masm incompatible.

"Totally" is a bit exaggerated. Attached a fairly complex little proggie, assembled with AsmC version 5 June 2023. To test it, drag a source (*.asm, *.asc, *.rtf) over the exe. You can edit and save the text, or print it.

The source:
GuiParas equ "Hello World", w500, h400, m4, b LiteBlueGreen, icon Printer ; width+height, margins, background colour
GuiMenu equ @File, &Open, &Save, &Print, -, E&xit, @Edit, Undo, Copy, Paste
include \masm32\MasmBasic\Res\MbGui.asm
  GuiControl MyEdit, "RichEdit", wCL$(), bcol LiteYellow, fcol Black, font -14 ; colours & fonts have no effect with rtf files
  GuiControl MyStatus, "statusbar", wRec$("Started "+fTime$())
Event Command
  Switch_ MenuID
  Case_ 0
  .if FileOpen$("Rich sources=*.asc|All sauces=*.as?;*.inc|All files=*.*")
SetWin$ hMyEdit=FileRead$(FileOpen$())
  .endif
  Case_ 1 ; standard GetSaveFileName dialog
  .if FileSave$("Rich sources=*.asc|All sauces=*.as?;*.inc|All files=*.*")
MsgBox 0, Cat$("Saving "+FileSave$()+CrLf$+"is not yet implemented"), "Hi", MB_OK
  .endif
  Case_ 2: <void PrintRtf(hMyEdit)> ; print selection or whole document
  Case_ 3: invoke SendMessage, hGui, WM_CLOSE, 0, 0
  Endsw_
GuiEnd
Rsrc
#include "resource.h"
01 RT_MANIFEST "\\Masm32\\MasmBasic\\Res\\XpManifest.xml"
Rsrc OPT_Arg1 ?:\Masm32\MasmBasic\Res\SkelGuiMini.asc
OPT_Assembler AsmC


AsmC works mostly fine for my 16-, 32- and 64-bit programs. I still prefer UAsm64 for my coding.

P.S.: Even the 24,660 lines of the RichMasm source assemble just fine with the latest AsmC version, in 1500 milliseconds. For comparison, UAsm64 needs 2100ms. Micros*t MASM is roughly a factor 3-5 slower, and fails miserably for that source.

HSE

Quote from: jj2007 on June 30, 2023, 08:40:58 AM
"Totally" is a bit exaggerated.

Maybe you are lucky. I don't think AsmC could be compatible again, but I don't know.

You have to test Jwasm16  :thumbsup:
Equations in Assembly: SmplMath

Greenhorn

Quote from: HSE on June 30, 2023, 09:42:44 AM
Quote from: jj2007 on June 30, 2023, 08:40:58 AM
"Totally" is a bit exaggerated.

Maybe you are lucky. I don't think AsmC could be compatible again, but I don't know.

You have to test Jwasm16  :thumbsup:

Have a look at the command line switches -Zme and -Znk.

https://github.com/nidud/asmc/blob/master/doc/command/Zne.md
https://github.com/nidud/asmc/blob/master/doc/command/Znk.md

Haven't tested it, but looks promising ...
Kole Feut un Nordenwind gift en krusen Büdel un en lütten Pint.

jj2007

Quote from: Greenhorn on June 30, 2023, 06:59:26 PMHaven't tested it, but looks promising ...

RichMasm adds /Zne to the commandline if it detects AsmC. That has been working fine for over 4 years.

Quote from: jj2007 on May 11, 2019, 02:09:35 AM
Quote from: HSE on May 11, 2019, 12:00:08 AMApparently MasmBasic don't work anymore with AsmC.

At least with default settings, AsmC is no longer MASM-compatible. You can try to add these options at the end of the source:
OPT_Assembler AsmC
OPT_DebugA /Zne

HSE

 :thumbsup:

32 bits AsmC source code it's what become Masm incompatible. I was forgetting what was  :biggrin:

I don't used anymore after know that AsmC in 64 bit was not Masm compatible. I asked Nidud, and is just that.
Equations in Assembly: SmplMath

jj2007

Quote from: HSE on June 30, 2023, 09:31:58 PM32 bits AsmC source code it's what become Masm incompatible.
Quote from: jj2007 on June 30, 2023, 08:40:58 AMAsmC works mostly fine for my 16-, 32- and 64-bit programs.

QuoteI don't used anymore after know that AsmC in 64 bit was not Masm compatible. I asked Nidud, and is just that.

Maybe Nidud fumbled a bit too much with procs and their default behaviour and loads of exotic options :sad:

My 64-bit JBasic sources assemble fine using \masm32\bin\AsmC /c /Zp8 /Zne -win64

HSE


Quote from: HSE on June 30, 2023, 09:31:58 PM32 bits AsmC source code it's what become Masm incompatible.

Quote from: jj2007 on June 30, 2023, 09:58:06 PM
My 64-bit JBasic sources assemble fine

Fantastic! Good to know. Perhaps some new code will work. 0% of my 64 bits code build when I tested  :biggrin:

How worked Jwasm 16 with your big sources?
Equations in Assembly: SmplMath

jj2007

Quote from: HSE on July 01, 2023, 02:21:28 AMHow worked Jwasm 16 with your big sources?
No time right now to test it, but I will :thumbsup: