News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

RadASM 3.0 bugtest

Started by KetilO, May 31, 2010, 12:28:11 PM

Previous topic - Next topic

dedndave

the masm32 library is put together to use root-relative paths
not the way i would have done it - but, then, i didn't do it, either - lol

donkey

Quote from: Shooter on January 13, 2011, 04:13:11 AM
Quote from: donkey on January 12, 2011, 11:35:15 PM
The path is hard coded, $A is not used.

Long pathnames including root drive are required? (I haven't tried a referenced pathname yet. i.e. "\masm32\include\resource.h")

Quote from: Web Definitions - hard codedWhen a literal value, such as 35, is written into a program. Values that are used often in a program are frequently better represented by symbolic constants rather than hard-coded values.

Any path that Windows can understand directly can be used. "/masm32/include/resource.h" is a hardcoded path since it contains no symbolic constants or variables (like $A) and it is a perfectly valid Windows path so its fine. You're thinking of absolute paths, two different things. The path can be relative or absolute, it just has to be hardcoded.
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

Shooter

Quote from: donkey on January 13, 2011, 05:14:57 AM
Any path that Windows can understand directly can be used. "/masm32/include/resource.h" is a hardcoded path since it contains no symbolic constants or variables (like $A) and it is a perfectly valid Windows path so its fine. You're thinking of absolute paths, two different things. The path can be relative or absolute, it just has to be hardcoded.

I guess I need to make myself more clear. The absolute path to this particular project in question is: "E:\Program Files\RadASM\Masm\Bass\Masm\basstest\". The .RC file is located in the "basstest" folder. When it comes to compiling and assembly, how does RadASM treat the path of "\masm32\include\resource.h" while it's written in the .RC file? I mean, does it know to go to "E:\Program Files\RadASM\Masm32\include\"?

It gets confusing when dealing with subfolders of projects and relative paths, but it's nice (when one understands the structure) to be able to store everything on a memory stick and use any computer to edit and compile a project... the benefit of a PE.

-Shooter
Never use direct references to anything ever. Bury everything in
macros. Bury the macros in include files. Reference those include
files indirectly from other include files. Use macros to reference
those include files.

dedndave

root-relative paths use the current drive
if you are running RadAsm from E:, it is likely that E: is the current drive

qWord

FPU in a trice: SmplMath
It's that simple!

KetilO

Hi qWord

I will have a lookn at it as soon as I get the time.

KetilO

KetilO

Hi all

New update.

Version 3.0.0.7k 2011-02-20
---------------------------
o Added support for vkim debug macros with result to RadASM's output window.

Use Tools / Check for Update to get the latest version.

You can find the lib and inc file for vkim debug macros in the RadASM_Update\Masm folder.
Copy the lib and inc folders to the Masm folder in RadASM root folder.

KetilO

cntrump

Quote from: KetilO on June 03, 2010, 02:02:55 PM
Hi all

New upload.

Version 3.0.0.1 2010-06-03
--------------------------
o Added JWasm programming language. Thanks to PauloH.
o Added user defined resource names export.
o Rebuildt all addins since there is a change in RESOPT / ADDINDATA.resopt
o Updated programming language ini files. Debug=0 on all except masm.ini and jWasm.ini.
o Added support for Objects and Methods to Masm.
o Automated updating when using Tools / Check for Updates.
o Fixed some minor resource editor bugs.
o Fixed a bug when building a library. Thanks to madprgmr.
o Fixed a bug where RadASM could crash on exit.

NOTE!
If you are updating, use Tools / Check for Updates to get the zip and unzip it.
Exit RadASM and run UpdateRadASM.exe in RadASM_Update folder.

KetilO


After updated:

Your current version:   RadASM version 3.0.0.7
Version at sourceforge:   RadASM version 3.0.0.7k

Why version number isn't 3.0.0.7k ?

Gunner

Quote from: KetilO on February 21, 2011, 07:59:58 AM
Hi all

New update.

Version 3.0.0.7k 2011-02-20
---------------------------
o Added support for vkim debug macros with result to RadASM's output window.

Now this was a feature I was waiting for!  Thanks!  :bg
~Rob (Gunner)
- IE Zone Editor
- Gunners File Type Editor
http://www.gunnerinc.com

S_Alex

Empty project for asemw.
I type END. After I try to insert empty lines and...

[bug]
Module name: RadASM.exe (RadASM version 3.0.0.7)
Windows XP Service Pack 3
Exception code: C0000005h
EXCEPTION_ACCESS_VIOLATION
Instruction pointer: 00437096h

Registers:
eax=004AD950h ebx=001DD260h ecx=004A7841h
edx=00000000h esi=00000000h edi=00000000h
ebp=0012F26Ch esp=0012F268h eip=00437096h

Segment registers:
CS=001Bh DS=0023h SS=0023h
ES=0023h FS=003Bh GS=0000h
Flags: PF ZF IF
Flags: PF ZF IF
F3h SS=0023h
ES=0023h FS=003Bh GS=0000h


Stack:
0048A1DC 0012F298 00437286 004767A4
004A7841 00000000 00000000 004A7841
004A7841 0012F5A0 00437681 7E369491
0012F538 00437D43 004AD950 00000000
[/bug]

TmX

Just updated RadASM, and when I check for updates again, the output is:
Quote
Your current version:   RadASM version 3.0.0.7
Version at sourceforge:   RadASM version 3.0.0.7k

Strange. I'm already using 3.0.0.7k, isn't it?

donkey

Some changes to the 64 bit build types for GoAsm.ini, these are critical changes in order to fix a link error when building 64 bit programs.

12=Win64 ANSI Release,'/fo rsrc.obj /Machine X64 "$R"',"rsrc.obj",'/c /x64 "$C"',"$C.obj",'$C $M $R',"$C.exe",'',
13=Win64 Unicode Release,'/fo rsrc.obj /Machine X64 "$R"',"rsrc.obj",'/c /x64 /d UNICODE "$C"',"$C.obj",'$C $M $R',"$C.exe",'',
14=DLL64 ANSI Release,'/fo rsrc.obj /Machine X64 "$R"',"rsrc.obj",'/c /x64 "$C"',"$C.obj",'$C $M $R /dll /entry DllEntryPoint',"$C.dll",'',
15=DLL64 Unicode Release,'/fo rsrc.obj /Machine X64 "$R"',"rsrc.obj",'/c /x64 /d UNICODE "$C"',"$C.obj",'$C $M $R /dll /entry DllEntryPoint',"$C.dll",'',
16=Win64 ANSI Debug,'/fo rsrc.obj /Machine X64 "$R"',"rsrc.obj",'/c /x64 "$C"',"$C.obj",'$C $M $R /Debug dbg',"$C.exe",'',
17=Win64 Unicode Debug,'/fo rsrc.obj /Machine X64 "$R"',"rsrc.obj",'/c /x64 /d UNICODE "$C"',"$C.obj",'$C $M $R /Debug dbg',"$C.exe",'',
18=DLL64 ANSI Debug,'/fo rsrc.obj /Machine X64 "$R"',"$R.res",'/c /x64 "$C"',"$C.obj",'$C $M $R /dll /entry DllEntryPoint /Debug dbg',"$C.dll",'',
19=DLL64 Unicode Debug,'/fo rsrc.obj /Machine X64 "$R"',"$R.res",'/c /x64 /d UNICODE "$C"',"$C.obj",'$C $M $R /dll /entry DllEntryPoint /Debug dbg',"$C.dll",'',
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

ragdog

Hi Ketilo

What mak this immediate window in the output?

And can you add this Styemanger in the TreeViewWindow? not popup a new dialog

KetilO

Hi ragdog

"What mak this immediate window in the output?"

It is most useful while using the internal debugger to single step your code (masm, VC6 and jWsm projects only).
However it can also be used as an integer calculator.
Try typing:
?(123+456)*2
Since the result is shown both as decimal and hexadecimal it is also a convinient dec->hex / hex->dec converter.

"And can you add this Styemanger in the TreeViewWindow? not popup a new dialog"

Sorry, too much work .

KetilO

donkey

#284
Some time ago I posted a set of debugging macros for GoAsm that were made to work with RadAsm 3 and based on VKims excellent tools for MASM. Those macros were for 32 bit code only, I have attached a new set for 64 bit code. The macros send all output to the RadAsm output window allowing you to do some quick debugging. The following macros are supported:

Try/EndTry - No parameters. Will print exception info if one occurs between the two macros
PrintDec - (Num) - Will print a qword in decimal notation, will accept a register, memory location or immediate value
PrintHex - (Num) - Will print a qword in hex notation, will accept a register, memory location or immediate value
PrintDouble - (Num) - Will print a double precision value, will accept a register, memory location (no immediate value)
PrintFloat - (Num) - Will print a single precision value, will accept a register, memory location or immediate value
PrintString - (Label) Prints a string variable
PrintStringByAddr - (Addr) Prints a string pointed to by Addr
PrintText - ("Str") Prints an immediate quoted string
PrintError - No parameters. Prints the last error message
PrintOleError - (Erno) Prints the system defined message identified by Erno
DumpMem - (pStart, nLength) Dumps a hex representation of memory beginning at pStart for nLength bytes
DumpFPU - No parameters - Displays the contents of the FPU
DumpMMX - No parameters - Displays the contents of the MMX registers
DumpEFlags - No parameters - Displays the contents of the EFlag register

These are macros and so do not use them with invoke, for example:

PrintText("Hello")

To use them add the following to your code (change the path to match your system)

#define DBG64LIB C:\RadASM30\GoAsm\dbg\Debug64.lib
#include C:\RadASM30\GoAsm\dbg\Debug64.a

You must use the /mix switch with GoLink, set link in project options to /mix $C $M $R

source and lib are attached (you will need lib.exe if you want to build the project)

<see next post, there were 7 downloads>
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable