MichaelW,
I've read your posts before and have learned from you. Thank you. One of the names I trust. Please explain what you mean to shankle in ordinary terms. I have no idea what you are saying, and only sort of at that, so this guy is brand new and really wants to learn this stuff. Why not be clear? Let's make this a big tent. It wasn't too long ago I came here looking for the next step after 65816ville and you guys helped me over and over again. Now I "get" it. Learning GoAsm is not easy. Masm is the popular and a "just perfectly fine" assembler, but we are here because GoAsm is literally the best assembler anyone has ever written. Let's help shankle--and every other person with the guts to program in assembler. And maybe, just maybe--someday let's all collaborate on a project together...
shankle,
Before I start this "whatever you call it" I want to strongly emphasize you read the GoAsm manual again. And again. Really. Jeremy wrote this effing excellent assembler, and he explains it well in the manual, but his coding examples will probably seem very foreign to you. He uses a lot of absolute references to places in memory, using numbers (e.g. +8) instead of labels, especially in the stack. He references memory in a very simple fashion--sort of old school. If you understand 6502, the x86 stack is about the same--but much larger in terms of its use. 256 bytes ($0100-$01FF) for a stack is nothin' today.
What Dave is saying is to create an Environment variable. His advice is good. If you do that you won't have to do the repetitive task of including the "set" line in your .bat file. It's true that the "set" line is only good for the life of the console. Well, that's the life of your programming session-normally. Now, you can do that, and you'll be fine, but what if, and I am testament to this, you change your entire scheme between "now" and "then"? Your programming playground may change. You may want a clean, new place to work. You might begin new work on drive "X." An environment variable is in the system. It's automated. It doesn't change. But---you change.
So what do you do?
This is the reason why I like the idea of a .bat file. When you type "myprog.bat" in the command line you transfer control to a file you wrote that assembles and links your program. It simplifies the mystical process of compiling your program into an .exe. I gave you a working outline in an earlier post. It's all about the current (working) directory, and GoAsm follows that premise. Your .bat file is in the GoAsm folder, as is GoAsm itself (and your files), so the compile process works from there.
Now, why would you name a folder "include.h"? That's a name for a file. You are a programmer, right? Give your folders a proper name--minus an extension. GoAsm looks first in the current folder, and then scours the drive(s) based on a logical formula (defined in the manual) for your files. Remember my batch file example? Try this layout:
G:
\GoAsm
GoAsm
GoLink
your assembly files
your personal .h files
your data files
the star trek .wav file
GoAsm\Help
...all your help files, including .pdf. chm, hlp, txt, doc (and anything else that might help you while programming)
GoAsm\include
Donkey's (Mr. Hansen's) files
other stuff you accumulate, such as number conversions, etc.
Relax. Seriously. I went through this--it was a tough nut to crack--and I've been breathing ASM since like 1975. I don't know--before 8-bit floating point. You'll get this and you'll be better for it. Get your directories in order--right now. They're fugged up (seems to me). Go simpler.
All assy programmers are brothers...