News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

UASM 2.46 Release

Started by johnsa, December 05, 2017, 01:11:19 AM

Previous topic - Next topic

johnsa

jj, can you try assemble it using -nomlib command line option ?

jj2007

Quote from: johnsa on December 05, 2017, 08:33:19 PM
jj, can you try assemble it using -nomlib command line option ?

No effect, linker chokes at exactly the same location as before. Sorry... :icon14:

johnsa

Hmm.. ok I was thinking perhaps the pre-processor additions were swallowing those lines for some reason, as nothing has been touched in extern/coff/obj output at all to warrant this sudden issue.

How do you declare the extern ? Maybe there is something else specific about the line

jj2007

Quote from: johnsa on December 05, 2017, 09:52:42 PMHow do you declare the extern ? Maybe there is something else specific about the line

Quote from: habran on December 05, 2017, 08:16:28 PM
It is interesting that these vars are missing, have look here:

extern _DllTable: dword           extern _DllTable: dword   
extern _MbFH: dword               extern _MbFH: dword       
extern _MbExeFolder$: dword                                 
extern _Dw2BinBuffer: byte        extern _Dw2BinBuffer: byte
extern _wfd: dword                                           
extern _MbCat$: dword             extern _MbCat$: dword     
extern _hSetWin: dword            extern _hSetWin: dword     
extern _CrLf$: dword                                         
extern _Lf$: dword                extern _Lf$: dword         

It's all in MasmBasic.inc:
ExternDef MbExeFolder$:DWORD
ExternDef MbFH:DWORD
ExternDef DllTable:DWORD
ExternDef MbCat$:DWORD
ExternDef wfd:WIN32_FIND_DATAW
ExternDef hSetWin:DWORD
ExternDef Cr$:DWORD
ExternDef Lf$:DWORD
ExternDef CrLf$:DWORD
ExternDef Dw2BinBuffer:DWORD

etc...
align 4 ; end of MbDATA
.data ; common initialised data
align 4
CrLf$ dd CrLf_txt ; pointer to 0D0A
Cr$ dd Cr_txt ; chr(13)
Lf$ dd Lf_txt ; chr(10)
Tb$ dd Tab_txt ; chr(9)
MbExeFolder$ dd MbExFoBuf
MbDefNum dd 7 ; f2sPrec
MbError$ dd mcErrBuf


Nothing unusual; and it works with ML, UAsm 2.45 and earlier, AsmC, linkv615, linkv9, polink...

Vortex

Hi habran and johnsa

Testing the example below, I get the following error message :

.386
.model flat,stdcall
option casemap:none

include     \masm32\include\windows.inc
include     \masm32\include\kernel32.inc
include     \masm32\include\user32.inc

includelib  \masm32\lib\kernel32.lib
includelib  \masm32\lib\user32.lib
includelib  \masm32\lib\msvcrt.lib

printf      PROTO C :DWORD,:VARARG
sum         PROTO :DWORD,:DWORD

.data

str1        db '%u',0

.code

start:

    sum(90,sum(20,10))
    printf( ADDR str1,sum( 80,20 ) )
    invoke  ExitProcess,0

sum PROC x:DWORD,y:DWORD

    mov     eax,x
    add     eax,y
    ret

sum ENDP

END start


UASM v2.46, Dec  4 2017, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.


***********
ASCII build
***********

Test.asm(24) : Error A2178: Too many arguments to INVOKE
Test.asm(25) : Error A2228: Missing right parenthesis in expression
Test.asm(25) : Error A2102: Symbol not defined : arginvoke
Test.asm(25) : Error A2210: Syntax error: )
Test.asm: 36 lines, 1 passes, 264 ms, 0 warnings, 4 errors

johnsa

Mea culpa.. I completely forgot to add 32bit version ...  :icon_redface:
I'm adding in the 32bit macros now and have added in additional tests to the automated tests for these, will have that ready tomorrow :)
I also have an idea what might be causing the issue for JJ, it's not confirmed it's only a suspicion, fingers crossed though.

johnsa

x86/x64 packages updated with the fix for the issue JJ was experiencing.

Vortex, I've added the 32bit macros in now so your example works, it's also included as a regression test-case now and I've taken it one step further with a 2nd test case as follows:



.686p
.mmx
.xmm
.model flat,stdcall
option casemap:none
option literals:on

include     c:\masm32\include\windows.inc
include     c:\masm32\include\kernel32.inc
include     c:\masm32\include\user32.inc

includelib  c:\masm32\lib\kernel32.lib
includelib  c:\masm32\lib\user32.lib
includelib  c:\masm32\lib\msvcrt.lib

printf      PROTO C :PTR, :VARARG
sum         PROTO :DWORD, :DWORD
sumAsFlt    PROTO REAL4 :DWORD, :DWORD

.data

str1        db '%u',13,10,0
str2        db '%f',13,10,0

.code

start:

    sum( 90, sum( 20, 10 ) )
    printf( ADDR str1, sum( 80, 20 ) )
    printf( ADDR str2, 1.0 )
    printf( "%f\n", sumAsFlt( 20, 30 ) )

    invoke  ExitProcess,0

sum PROC x:DWORD, y:DWORD
    mov eax,x
    add eax,y
    ret
sum ENDP

sumAsFlt PROC REAL4 x:DWORD, y:DWORD
mov eax,x
add eax,y
cvtsi2ss xmm0,eax
ret
sumAsFlt ENDP

END start



LiaoMi

the site is not available  :icon_eek: tried it from different countries

QuoteThis site can't be reached

www.terraspace.co.uk's server DNS address could not be found.
Search Google for terraspace co uk uasm
ERR_NAME_NOT_RESOLVED

QuoteUnable to connect

Firefox can't establish a connection to the server at www.terraspace.co.uk.

    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer's network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Tor Browser is permitted to access the Web.

johnsa

F'ing hosting companies... it says the domain has expired on WHOIS, yet on their control panel it's paid up for another 2 years... wtf... time to fight

GoneFishing

Good sign
Looks like you've been noticed
Congrats and Take care

aw27

Quote from: johnsa on December 08, 2017, 03:59:04 AM
F'ing hosting companies... it says the domain has expired on WHOIS, yet on their control panel it's paid up for another 2 years... wtf... time to fight
After experimenting with many others, I am using contabo.com (they are German  :bgrin:) and am happy for the last couple of years. They have plans starting from a couple of bucks per month.
My plan is a VPS with windows and 2 extra IP, 1000 GB storage space, 4 cores, 14 GB RAM - all about 20 euro/month.

Vortex

Hi johnsa,

Thanks for your efforts. I will wait for your site to be online so no worries. I know that those hosting companies can sometimes be real headaches. Take your time to fix the hosting issue and thanks again.

jj2007

John,
Easiest solution: Zip up the exe only and post it here temporarily.

fearless

Why not just mirror the package releases on github? create a 'releases' folder on the main repo, put stuff in there and/or additionally add a 'Latest Release' on the releases page and have the packages linked there to the releases folder

Releases page:

tag: latest
Title: Latest Releases

## UASM
![uasm246_x64.zip](https://github.com/Terraspace/UASM/blob/master/releases/uasm246_x64.zip?raw=true)
![uasm246_x86.zip](https://github.com/Terraspace/UASM/blob/master/releases/uasm246_x86.zip?raw=true)


?raw=true in the url allows the file to be downloaded rather than github redirecting to the file and trying to display it then failing - because its binary and cant display raw.

Also you can create a github page - terraspace.github.io or uasm.github.io to mirror most of the information on terraspace.co.uk: see https://pages.github.com/ for details

johnsa

I'd thought about, it's useful to have the extra copy of the page and information on github directly with releases... I shall do that :)