Hmmmm, that explains some.....

Still, I had dev-c++ from bloodshed.net
There are probably a hundred or so .h files included with the dload, and then some still that can be dloaded seperately and from other sites. I have about 10 or so .inc files in fasmw/include directory. If I needed one of these other header files, would I have to translate it?

Also you said almost always work. hmmmm, if not, am I screwballed?
call me paranoid.... Someday, years down the road.... I want to use fasm to program a pace maker for some futuristic time... No one is here to answer my question, and .inc doesn't work.....

Sounds silly, but really what I'm saying is...... I like fasm.... simple clean and small, also very quick....
but If I choose an assembler, and dedicate,,,, I'm sure 1 to 2 good years of my life getting good at it.... I kind of want to assure myself that it will do any and everything I want it to. If it doesn't I would like to know that I can make it do it, even if I have to write my own .inc.......

Honestly, I have programmed years ago, with basic, some commador 64 games, some atari, and some old 8088--8086 stuff, mostly gwbasic, qbasic, and some simple c stuff.... I hate HLL.... They seem to have a lot of over head and some confusing backward stuff.

I know assembly is very hard to learn, but I also know that it hasn't really changed much since 40 some years.
Knew processor, a few new instruction but over all, if you could program and 8088 you could program on a pentium without a whole world of difference. Unlike c then c++ now c# to much....

I have the commitment to learn assembly but at 36 I don't have a lot of time to waste....

Long story short........ sorry for rambling..... Will fasm do anything I'll ever need to do?

Thanks a lot for you time....

:alright:
Posted on 2003-03-07 01:43:19 by va3gdr
If I needed one of these other header files, would I have to translate it?
Possibly. What a lot of us do is translate only what you need and not the whole file. There are free programs that will translate the whole file for you (h2inc).

As you know, assembly allows you to do everything an HLL can and more. I've never used fasm so I can't comment on it.
Posted on 2003-03-07 08:21:04 by drhowarddrfine
The h2inc tool is included in the previous masm32 package (v7)
Posted on 2003-03-07 08:34:28 by Vortex
Ok, cool....

I got the h2inc program, and converted the windows.h file from dev-pascal to windows.inc... It compiles alright with fasm, no complaints....

How do I use it....?????




MAX_PATH EQU 000000104h
LF_FACESIZE EQU 000000020h
LF_FULLFACESIZE EQU 000000040h
ELF_VENDOR_SIZE EQU 000000004h
SECURITY_STATIC_TRACKING EQU 000000000h
SECURITY_DYNAMIC_TRACKING EQU 000000001h
MAX_DEFAULTCHAR EQU 000000002h
MAX_LEADBYTES EQU 00000000ch
EXCEPTION_MAXIMUM_PARAMETERS EQU 00000000fh
CCHDEVICENAME EQU 000000020h
CCHFORMNAME EQU 000000020h
MENU_TEXT_LEN EQU 000000028h
MAX_LANA EQU 0000000feh
NCBNAMSZ EQU 000000010h


This is a sample of what's in the file... The file is huge though....

So if I wrote let's say....

format PE GUI 4.0

include '%include%/windows.inc'

?
?
?
?
?

Please fill in what would use something in this file.....

Thanks......


PS

is this giving pointers to memory addresses which contain these windows funtions????
Posted on 2003-03-08 22:14:29 by va3gdr
Va3gdr,
earlier in the thread u posted this code
if u havent been able to get it to work try this, ExitProcess requires 1 parameter
to be pushed onto the stack. i reccomend getting the api reference if u dont have it already so u know wat parameters are required.



push MB_OK
push _mytext
push _mytitle
push NULL
call [MessageBox]
push NULL <-----Change here
call [ExitProcess]


hope this helps.later
Posted on 2003-03-09 03:49:15 by keyoke
The part of the inc file you show doesn't have anything I've used before but, as an example, you could:

mov eax, MAX_PATH

and eax would then be loaded with 000000104h

Remember that just because all this stuff exists doesn't mean you use it. There are many incs that are never used and many incs where you may only use one line inside it. Windows may have a definition for something and the only way to find the definition is in the inc file. There are times when I don't even include the inc if there is just one or two lines I use. Maybe in my own module I define it myself.
Posted on 2003-03-09 12:32:01 by drhowarddrfine
>The part of the inc file you show doesn't have anything I've used before but, as an example, you could:

>mov eax, MAX_PATH

>and eax would then be loaded with 000000104h

>Remember that just because all this stuff exists doesn't mean you use it. There are many incs that are never >used and many incs where you may only use one line inside it. Windows may have a definition for something >and the only way to find the definition is in the inc file. There are times when I don't even include the inc if >there is just one or two lines I use. Maybe in my own module I define it myself.

I think this is where I'm stuck......

What is 000000104h

Windows mays have a definition for something..... a definition is" " pse fill in blank... is it a routine
is 000000104h a memory pointer to a routine, this is my big problem with includes, and windows api. I don't understand what the number 104h means....

I can have _mytext db 'mytext' this I understand is a string constant.... somewhere in memory is an address to this string, also a pointer to the string is on the stack, I believe. If I get the pointer to my string constant from the stack, I could manipulate it in many ways, to point to a different constant, etc. If I get the address I can change the contents at the address, so long as they fit the double word address space. Right?

is 104h a pointer to a code segment, which windows has in memory, so then I can use that bit of code.
is it an address to that code. or am I way off all together....

Thanks..... I'm sure it's obvious that I'm a compete beginner at all of this, but using the mnemonics is actually quite easy once I understand what the mnemonic is doing.... It's the rest of this api stuff which makes my program work with windows which is killing me....

Thanks again.... you guys are all great for answering my baby step questions....
Posted on 2003-03-09 21:59:50 by va3gdr
Va3gdr,
I dont think 104h is a pointer to anywhere ....it is just a value which is defined as a constant in the inc's. When u pass the value to an api i would think that it checks to see wat value was passed and then acts accordingly. This is not always the case tho it's only the case with constants, other values can be passed to an api and these can include pointers or user values. So now i think this mite help this is just wat i think and may be completely wrong but ya :p
Posted on 2003-03-10 04:12:03 by keyoke

What is 000000104h
It's a number...in hexadecimal notation. Hexadecimal 104 = decimal 260. The more important question is "What is MAX_PATH?" And the answer is it's the maximum number of characters in a file path that can be handled by Win9x.

Some numbers are sizes or counts. Some numbers are bit masks. Some numbers represent options of some function.
Posted on 2003-03-10 21:18:11 by tenkey