The MASM Forum

Projects => ObjAsm => Topic started by: Biterider on August 15, 2019, 06:57:19 PM

Title: ObjAsm C.1.0 release
Post by: Biterider on August 15, 2019, 06:57:19 PM
Hi
I've finished the the ObjAsm C.1.0 release version adding some translated projects and a few new projects.

Homepage link: http://objasm.x10host.com/ (http://objasm.x10host.com/)
Download link: http://objasm.x10host.com/DwnFiles/Ver_C.1/ObjAsm_C.1-WebInstaller.exe (http://objasm.x10host.com/DwnFiles/Ver_C.1/ObjAsm_C.1-WebInstaller.exe)

I spend some time writing a WebInstaller using NSIS. In its current version (3.04) it is a very powerful tool. Although not a new tool, it offers all the features you need for a modern installer. To reduce the download size, I tested several compressing tools. The best for this purpose is by far 7zip, which I used for the installer.

Please test it and feedback is as always appreciated.  :thumbsup:

Regards, Biterider



Title: Re: ObjAsm C.1.0 release
Post by: fearless on August 15, 2019, 10:02:04 PM
Looks like it works fine. It does ask about rebooting computer at the end of installation though.
Title: Re: ObjAsm C.1.0 release
Post by: Biterider on August 16, 2019, 12:23:31 AM
Hi fearless
Thanks for testing!
This is the intended behavior to ensure that the new environment variables are properly propagated.  :icon_idea:

Biterider
Title: Re: ObjAsm C.1.0 release
Post by: LiaoMi on August 16, 2019, 02:41:26 AM
Quote from: Biterider on August 16, 2019, 12:23:31 AM
Hi fearless
Thanks for testing!
This is the intended behavior to ensure that the new environment variables are properly propagated.  :icon_idea:

Biterider

Hi Biterider,

I have problems with paths ...
MSVS_PATH=%programfiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\Hostx64\x64
RADASM_PATH=D:\RadAsmXXX

I do not have these directories, it would be cool if during installation, you could specify the path to these directories.

The web installer is very convenient  :thumbsup:
Title: Re: ObjAsm C.1.0 release
Post by: Biterider on August 16, 2019, 04:02:40 PM
Hi LiaoMi
Thanks for your feedback.  :thumbsup:
I documented what to do in the (manual) installation notes. The affected files that uses these 2 paths are \ObjAsm\Build\OA_SET.cmd and \ObjAsm\Code\ObjMem\InstallObjMem.cmd. The last one is only relevant if you use RadASM. MSVS_PATH on the other side is important to locate the link and lib utilities.

I'll try to put some input boxes to ask for these paths during installation. In the meantime, please adjust them manually.  :rolleyes:

Regards, Biterider
Title: Re: ObjAsm C.1.0 release
Post by: HSE on August 17, 2019, 01:27:23 AM
Fantastic the installer  :thumbsup:
Title: Re: ObjAsm C.1.0 release
Post by: Biterider on August 18, 2019, 01:13:10 AM
Hi HSE
I think it was you idea to build a Web Installer  :thumbsup:

Biterider
Title: Re: ObjAsm C.1.0 release
Post by: Biterider on August 18, 2019, 01:16:16 AM
Hi
I took LiaoMi's idea and added a custom page to setup the environment variables.  :cool:
I polished a bit the code and uploaded a new version of the installer.

The link is the same as above.

Regards, Biterider
Title: Re: ObjAsm C.1.0 release
Post by: HSE on August 18, 2019, 03:13:19 AM
Quote from: Biterider on August 18, 2019, 01:13:10 AM
I think it was you idea to build a Web Installer

LiaoMi's idea! (but after download the ten pieces I agree totally  :biggrin:)
Title: Re: ObjAsm C.1.0 release
Post by: LiaoMi on August 31, 2019, 09:45:40 PM
Hi Biterider,

all files have a modified creation date, October 2017, in the archives this date is also visible, what is the reason for this change?  :rolleyes:
Title: Re: ObjAsm C.1.0 release
Post by: Biterider on August 31, 2019, 11:38:06 PM
Hi LiaoMi
I normalized all timestamps for all files from this release, so it becomes easier to check what has been modified afterwards.
The new timestamp corresponds to the start of this third main release of ObjAsm.


Regards, Biterider


Title: Re: ObjAsm C.1.0 release
Post by: 2B||!2B on December 01, 2019, 08:55:37 PM
Hi Biterider,

I can not compile any of the projects with ObjASM

C:\masm32\bin\ML.EXE /c /coff /Cp /nologo /Zd /Zi /I"C:\masm32\include" "Demo02.asm"
WARNING: Legacy SysSetup argument - WINDOWS - using WIN32
User Interface: WINDOW
Binary Format:  EXE
Bitness:        32
OOP Support:    ENABLED
String Type:    WIDE (UNICODE)
Mode:           RELEASE
Demo02.asm(12) : Error A2210: Syntax error: IncludeAPIs
Inheritance path: OA_Primer
Inheritance path: OA_Primer,OA_DesLUT
Inheritance path: OA_Primer,OA_Stream
Inheritance path: OA_Primer,OA_Streamable
Inheritance path: OA_Primer,OA_Streamable,OA_WinPrimer
Inheritance path: OA_Primer,OA_Streamable,OA_WinPrimer,OA_Dialog
Inheritance path: OA_Primer,OA_Streamable,OA_WinPrimer,OA_Dialog,OA_DialogModal
Inheritance path: OA_Primer,OA_Streamable,OA_WinPrimer,OA_Dialog,OA_DialogModal,OA_DialogAbout
Inheritance path: OA_Primer,OA_Streamable,OA_WinPrimer,OA_WinApp
Inheritance path: OA_Primer,OA_Streamable,OA_WinPrimer,OA_WinApp,OA_SdiApp
Inheritance path: OA_Primer,OA_Streamable,OA_WinPrimer,OA_WinApp,OA_SdiApp,OA_DemoApp02
Demo02_Main.inc(65) : Error A2102: Symbol not defined : DialogAbout
Demo02_Main.inc(65): Included by
  Demo02.asm(20): Main line code
Demo02_Main.inc(75) : Warning A4150: Too many arguments in macro call: New: , esi, [esi].hWnd, eax, offset szAboutText
Demo02_Main.inc(75): Included by
  Demo02.asm(20): Main line code
Demo02_Main.inc(83) : Error A2160: INVOKE requires prototype for procedure
Demo02_Main.inc(83): Included by
  Demo02.asm(20): Main line code
Demo02.asm(25) : Error A2210: Syntax error: ResGuard_Start
Demo02.asm(26) : Error A2102: Symbol not defined : TPL_DemoApp02
$GetInstance32(1)[Objects.inc]: Macro called from
  MethodInvoke(89)[Objects.inc]: Macro called from
   OCall(5)[Objects.inc]: Macro called from
    Demo02.asm(26): Main line code
Demo02.asm(27) : Error A2102: Symbol not defined : TPL_DemoApp02
$GetInstance32(1)[Objects.inc]: Macro called from
  MethodInvoke(89)[Objects.inc]: Macro called from
   OCall(5)[Objects.inc]: Macro called from
    Demo02.asm(27): Main line code
Demo02.asm(28) : Error A2102: Symbol not defined : TPL_DemoApp02
$GetInstance32(1)[Objects.inc]: Macro called from
  MethodInvoke(89)[Objects.inc]: Macro called from
   OCall(5)[Objects.inc]: Macro called from
    Demo02.asm(28): Main line code
Demo02.asm(29) : Error A2210: Syntax error: ResGuard_Show
Demo02.asm: 33 lines, 1 passes, 366 ms, 1 warnings, 8 errors

Make error(s) occured.
Total compile time 499 ms


What wrong with it?
I am using ObjAsm C.1.0 with UASM 2.49.
Title: Re: ObjAsm C.1.0 release
Post by: Biterider on December 01, 2019, 10:03:48 PM
Hi 2B||!2B
I notice 2 things here:

1. "C:\masm32\bin\ML.EXE /c /coff /Cp..." you are using ML , not UASM
2. "WARNING: Legacy SysSetup argument - WINDOWS - using WIN32" you are using probably one of the projects from previous versions.

I suggest to make a fresh install and verify all environment variables. Sometimes a reboot is required to load them with the new values.

Biterider
Title: Re: ObjAsm C.1.0 release
Post by: 2B||!2B on December 02, 2019, 08:39:38 AM
Quote from: Biterider on December 01, 2019, 10:03:48 PM
Hi 2B||!2B
I notice 2 things here:

1. "C:\masm32\bin\ML.EXE /c /coff /Cp..." you are using ML , not UASM
2. "WARNING: Legacy SysSetup argument - WINDOWS - using WIN32" you are using probably one of the projects from previous versions.

I suggest to make a fresh install and verify all environment variables. Sometimes a reboot is required to load them with the new values.

Biterider

Hi Bitrider,

No, the ML.exe is actually the UASM itself. I have renamed it to be that so all radasm projects use it by default.
Title: Re: ObjAsm C.1.0 release
Post by: HSE on December 02, 2019, 12:17:11 PM
Hamlet:
There is some differences between OA32 and OAF.
Because spacename, now you must write $Obj(DialogAbout)  or OA_DialogAbout .
Now you have to make New without Init, and later OCall object Init.

Regards. HSE.
Title: Re: ObjAsm C.1.0 release
Post by: Biterider on December 03, 2019, 07:53:26 AM
Hi 2B||!2B
Any progress with the fresh installation?
Biterider
Title: Re: ObjAsm C.1.0 release
Post by: 2B||!2B on December 03, 2019, 08:31:27 AM
Hi biterider,

Thanks for the advice.
I have yes old ObjASM and uninstalled then did fresh installation.
However, there seems to have an error in the path. I have already set it in the installer to the correct one but in radasm, it still shows the old paths?

Paths set on installer:
%ProgramFiles%\Microsoft Visual Studio 14.0\VC\bin
%ProgramFiles%\Windows Kits\8.1\bin\x86


Paths show in RadASM project options
4,O,C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\rc.exe /v /I$H,1
5,O,"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\Hostx64\x64\link.exe" @$A\Build\Options\OPT_LNK_DBG_32.txt /OUT:"$5" "$3" "$4"

0,0,"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe" $5,5

PS: RadASM path is set to empty in installer. Is this the reason?
I am on a 32bit Windows.
Title: Re: ObjAsm C.1.0 release
Post by: Biterider on December 03, 2019, 05:44:36 PM
Hi 2B||!2B
The installer does not set the paths into RadAsm rap files. You have to set them for your system.
I used the RadAsm project configuration (Menu/Project/Project options) to switch between 32- and 64-bit targets instead of debug and release mode. The paths are more or less the ones I used on my computer.
The preferred way to compile the ObjAsm projects is to use the make.cmd files in each project directory. If you set up the paths correctly using the installer, then this should work out of the box. If not, check the environment variables OBJASM_PATH, WINKIT_PATH, MSVS_PATH. RADASM_PATH is not critical and is only used when sharing information with RadAsm, e.g. Proc names for syntax highlighting.
In the \ObjAsm\Help\ folder there is a file called "Manual Setup Instructions.txt". It may help you to setup your environment.

Biterider