GFA BASIC TIPS & TRICKS by Richard Karsmakers
In a special article, elsewhere in this issue of ST NEWS, you'll
find an article that covers a topic that is very often asked
concerning its functioning in GfA Basic: Windows. Written by
master-programmer Stefan Posthuma, it is quite readable and even
accompanied by a documented source program.
Another answer that I have received several times already was the
question how it is possible to play digitized sound from GfA
Basic. Lucky enough, I had use of some of G-Data's "Sound Sampler
II" software to explain it (the code, since it may be included in
your own programs as well, is supplied on this disk). The source
file (called "SEQUENCE.BAS", and written in GfA Basic) is self-
explanatory. The "SAMPLER.IMG" file belongs to it; both files
should be in the same folder.
If you are interested in Sound Sampling, please contact G-Data,
who offer some good sampling hardware as well as splendid
software. Their address is Siemensstr. 16, D-4630 Bochum 1, West
A lot of people also seem to have problems with the GfA basic
Exec command, according to some of the questions that came in.
Exec can be used as a command or as a function. The respective
EXEC flag,name string,command string,environment string
EXEC(flag,name string,command string,environment string)
The 'flag' is a numeric variable, and can have the following
0 = Load and run
3 = Load only
The other variables are string variables, and they have the
Name string: The name of the program to load
Command string: This is the string that you specify when
a file would be a .TTP or .APP. An empty
string ("") is enough most of the times
Environment string: An empty string ("") is mostly enough.
Before using the Exec command, you should reserve a certain
amount of memory that Basic wants to use. RESERVE 50000 will be
enough for most applications. The following program loads and
executes a program to one's choice (might be an idea for a menu
That's all there is to it. Remarkable simple, isn't it? The
'function' version of the Exec command can be used to determine
the base page address of the program that you load. The following
should do the same as the above program, but a little bit
A%=Exec(3,Lo$,"","") !A%=Basepage address
Add A%,256 !Skip basepage
Another question had to do with the GEM counterpart of the Exec
command: GEM function &h4B.
Mr. Chris Whitelock of Bristol, England, had typed in the
following program, and all he got was a '2 bomb error'. Why?
In GEMDOS-, XBIOS-and BIOS functions, GfA Basic requires
specification of longwords or words. When none is given, it
assumes that a word (2 bytes) is meant. However, the addresses
(Varptr) are longwords (4 bytes). So the last line should be
and everything works smoothly. Do take care of memory management!
The last question is no real question, but a hint given by Hans
van der Linden for people that have problems reading the FAT.
This is indispensable for a good file monitor. Once you know the
first cluster position, you should read in the FAT and keep
yourself to the following rules.
Cl%=?? !First cluster of the file
Ncl%=Int(1.5*Cl%)!This is the place of the Low byte
' High byte=Ncl%+1
If Cl% Mod 2=0 Then Ncl%=Ncl% And $FFF
Else Ncl%=(Ncl% Shiftright 4) and $FFF
Repeat this until $FF8<=Ncl%<=$FFF ($FF0-$FF7 = Bad Cluster)
Do note: This is no GfA Basic, but a kind of 'flowchart'. It's
only there to give you some guidelines.
The text of the articles is identical to the originals like they appeared in old ST NEWS issues. Please take into consideration that the author(s) was (were) a lot younger and less responsible back then. So bad jokes, bad English, youthful arrogance, insults, bravura, over-crediting and tastelessness should be taken with at least a grain of salt. Any contact and/or payment information, as well as deadlines/release dates of any kind should be regarded as outdated. Due to the fact that these pages are not actually contained in an Atari executable here, references to scroll texts, featured demo screens and hidden articles may also be irrelevant.