  THE ULTIMATE XLANG (FOR X-GUI 3) PROGRAMMERS GUIDE (v1.0) (Guide v0.2)
-----------------------------------------------------------------

1) What is XLANG?
2) How does XLANG work?
3) Getting started programming for XLANG
4) Why XLANG is not like other languages
5) Getting speed out of XLANG
6) Variables

More to come in later versions or patch releases...






PART 1- What is XLANG?
----------------------
 XLANG is a programming language that was invented by Kenneth Garin
and Joe Bardell for the X-GUI desktop software environment.
 With XLANG you can create applications in this scripting language
to make software applications for X-GUI version 3+. The scripting
language uses a Assembly Language (Asm) like syntax to create
applications. You may use anyname variables that are anysize and
can even use special characters in the variables name. Even labels
for statements in XLANG can be anysize length and have special
characters like !,@,#,$,%,ect...
 X-GUI is a desktop software GUI that allows the user to manage
his or her own desktop with iconic graphics and windows, ect...
X-GUI can run XLANG script files within a window and manage full
software programs this way. X-GUI also has the simple ability to
run MS-DOS or PC-DOS programs (applications) in full screen.

MS-DOS(R)- Microsoft.


PART 2- How does XLANG work?
----------------------------
 XLANG uses some special programming techniques that allow software
applications to have lots of power for it. XLANG does not do any
multitasking. Since it is a simple scripting language we thought
it would be better just to have exclusive tasking. Exclusive
tasking means that processes in the background wait until they
become the active task to do anything.
 In XLANG there are sections that define where the code is executed
and when it is. For example the SECTION CLOSE is the section where
the code gets executed as the application is just about to be closed.
Within that section you would close out all the open files your
program has opened, and do any jobs before the window totally closes.
There are lots of different sections in XLANG, here is the standard
ones...
 SECTION CLOSE           Code to run just before window closes.
 SECTION INFO            Information interpreted when first ran.
 SECTION REFRESHED       Code to run on a windows graphic refresh.
 SECTION LOOPED          Code to run when the window is active.
 SECTION DATA            Data, contains all the defines for variables.
If you look at the source codes for X-GUI 3 you will find that each
application currently running has a IP saved into the array IP(x).
IP stands for "Instruction Pointer" and always contains the value
for the next instruction to execute for the program as value x.
This is almost like emulating the processor it's self, but this is
what sets XLANG aside from other script languages out there.
 XLANG manages variables directly from it's memory. When you
change a variables contents it will change the defined part
under SECTION DATA directly in memory. When it wants to read
a variable it will just read the data directly from memory.
This will never affect your program on the disk drive because
it is all done in memory, just like the real processor would!


PART 3- Getting started programming for XLANG
---------------------------------------------
 If you have programmed in computer languages before and done
well at it then XLANG should be easy for you after looking at
the examples included for X-GUI. For a basic skeleton program
please refer to XLANG.TXT help file. That same file also
contains all the current commands that XLANG has built into it.
 XLANG is easy to learn and use, it's just a matter of getting
use to it. Since XLANG is sortof like Assembly it will be very
hard to just plane start out programming in. It is recommended
that you read this FULL file and along with XLANG.TXT to get
started! MAKE SHURE to look at the example programs, they all
have a extention *.XSF that stands for (Xlang Script File).


PART 4- Why XLANG is not like other languages
---------------------------------------------
 The only thing even remotely close to XLANG is assembly language.
Of cource if you have used Assembly language before you do know
how hard it can be to learn, but how easy it is to program in
after you have. XLANG is almost like this, within 1 week you should
be making simple applications w/o no real problems.
 In languages like QBasic and C,ect... you have STATEMENTS and
FUNCTIONS. XLANG has only really STATEMENTS because a FUNCTION calls
a procedure and returns a value, STATEMENTS call a procedure with
variables and CAN return values into those same variables.
Example-(QBASIC): FUNCTION: A$ = MyFunction$ (something%)
Example-(QBASIC): STATEMENT: MyStatement something%,something$,ect..
 Sometimes in XLANG we may refer to something as a FUNCTION but
only because this is nothing more then a buzz word we use, we
really mean STATEMENT! =)
 We don't know of what XLANG would be as far as a high level or low
level language since it is kind of both! We will call it a mid level
language, another buzz word that Kenneth Garin has named.

QBasic(R)-Microsoft.


PART 5- Getting speed out of XLANG
----------------------------------
 If your program seems slow you have two options to choose
from...
1) Wait until a newer X-GUI version has been released. Any
   newer versions of our software is almost always faster!
2) Look at your source code very well, see where and what
   slows it down and try to fix that problem(s) by removing
   code or using less and faster code.


PART 6- Variables
-----------------
 There are only 2 kinds of variables in XLANG. First is the
floating point variable with a define as %. Second is the
string variable with a define as $. Below is a list of
correct names used...
 A$
 MyLongNamedVariable$
 Something_!!!$
 MyNumberHolder%
 Something!%
All of these are correct names and work kind of like the same
way they do in BASIC programming, however the % stands for a
integer in QBasic, where as in XLANG it is for floating point
math.
