GFA BASIC VERSION 2.0 AND THE GFA BASIC COMPILER
by Richard Karsmakers
Everybody knows that GfA Basic was the best Basic interpreter
available for the ST. GfA Systemtechnik must have thought that
all could be done better, since they have launched the new GfA
Basic - GfA Basic version 2.0 - in November. It incorporates over
thirty new commands and comes with an extended manual of 35
pages. The principles of GfA Basic haven't changed, but users
have to be aware of the fact that programs written in GfA Basic
V2.0 don't nessecarely work on the previous versions! Upward
compatibiliy, however, is said to be provided (I haven't had any
problems myself with running 'old' programs on the new
interpreter). Well, what are the new commands? Here's a list of
them:
* Indirect giving-over of variables and arrays
! Allows remarks behind a command in a line
== Compare operator 'approximately equal'
BASEPAGE Gives the address of the Basepage of GfA Basic
BITBLT Raster-copy command
BGET Reads from a data channel into memory
BMOVE Quick moving of memory blocks
BPUT Write memory to data channel
CLR Clearing of variables (also specific variables)
CRSCOL/CSRLIN Gives the cursor position (column/line)
DEFNUM Rounds off all numbers to a specified number of
characters
EVEN Checks if a variable is even
EXEC Command to enable to execution of compiled/machine
language programs
FALSE Constant 0
FORM INPUT Enables the changing of strings in a program
HIDEM Hide the mouse cursor
HIMEM Checks the address from which GfA Basic doesn't use
memory anymore
INP? Checks if a certain channel has a character
available or not
MID$ This command now enables changing of strings
MONITOR Calls a memory-resident monitor or command-
extension
ODD Checks if a variable is odd
ON MENU BUTTON GOSUB
Checks mouse clicks
OPTION BASE This command is included for use with the compiler
OUT? Checks of a specified channel allows sending of
a character
RESERVE Decrease or increase of memory that's used by BASIC
SGET Gets the whole screen (32 Kb) in a string variable
SHOWM Show the mouse pointer
SPUT Puts the whole screen (32 Kb) from a string on the
screen
TROFF/TRON This doesn't need explaining
TRUE Constant -1
TYPE Allows you to check for the type of variable
(integer, string, floating point, etc.)
VDIBASE I don't get the meaning of this one (although I
have the manual)
VOID When a command is preceeded by this, it is per-
formed but nothing is done with the result (this
tends to save some time)
VSYNC Synchronizes the vertical sync with screen building
That's all there is to know about the new GfA Basic version 2.0.
If you want to order it in Holland, please contact Mark Software,
Mat. Marisstr. 76, 3314 TP, Dordrecht. In Germany, you should
contact GfA Systemtechnik GmbH, Heerdter Sandberg 30, D-4000
Düsseldorf 11, West Germany. Tel. 0211-588011. The GfA compiler
can also be bought at these addresses for the corresponding
countries, as well as at Commedia, Eerste Looierdwarsstraat 12,
1016 VM, Amsterdam, The Netherlands (Tel. Holland 020-231740).
Call for the latest prices!
Now about the compiler. Even though Christmas was a very busy
time for the postman, they still were able to deliver Commedia's
reviewing sample just before Christmas, so I was able to include
this review in this issue of ST NEWS. Well, I think the GfA Basic
compiler significantly strengthens the position of GfA Basic in
the world of ST computer programming. You must understand that it
has an immediate advantage over all other Basic versions (even
"Fast Basic", that we've tested but that's much slower on all
aspects than GfA Basic). GfA Basic now is the first Basic (and
the best Basic ever seen anywhere on any computer by me) that has
a generally available compiler. One big advantage of GfA Basic is
that is a interpreter-rather than a compiler language. When you
program in C, Modula 2 or Pascal, you'll always have to leave the
compiler after compiling after which you can test the program.
Using GfA Basic you can design and test out your program easily,
after which you can speed things up by throwing the program
through the Compiler.
There are a few bugs, however. When your program works perfectly
from the Interpreter, it might encounter a few errors after
Compilation. For example, the MOD command isn't compiled
properly; this makes a "Division by Zero" error occur. Also, the
SETCOLOR c,r,g,b command doesn't work perfectly. You can get rid
of this error on a very easy way, however, by using the second
syntax of this command: SETCOLOR c,r*256+g*16+b (the number
you'll get ranges from 0 to 1911). No bother after that anymore.
Frank has had some trouble with the HIDEM command, that isn't
executed after compilation in certain cases. I've never had any
problems with that uptil now, but in other cases this might very
well be a problem.
On start-up, you are welcomed by the GfA Compiler menu screen.
Firstly, you can select whether a program should be stoppable or
not. Each time you build in a check for ALT+CTRL+SHIFT, it costs
4 bytes so you'd better select "Nie" (never) for space's sake.
The next option is "TRAPV". You can select '+' or '-'. When '+'
is selected, you'll get bombs on a TRAPV overflow error (#107),
otherwise you will not get one. Next, there's a selection of
"Bomben" (Bombs). If you select '+', fatal errors are caught,
whereas selecting '-' just causes bombs to appear on the screen
of somethings goes terribly wrong. Selecting '+' makes the
compiled program bigger, since the compiler has to build in
routines to 'catch' bombs.
You can furtheron select whether an error that occurs in a
compiled program should be displayed as a number or as text.
Selecting "Zahl" (number) makes the compiled program smaller.
After selection, you simply select "Compiliere" (that's German
for 'to compile') and you simply follow the computer's
instructions. After a while (a very short while, I might add),
this 2-pass compiler has created a compact program that can be
run from the desktop (so you can finally delete your run-only
interpreter!).
Since the actual GfA Basic Interpreter and the Compiler put
together often costs (much) less than comparable systems for
other languages, I think it isn't hard to make a selection: GfA
Basic is it! I now even think that Metacomco's new Basic will be
a bit late, and it cannot be better than GfA Basic either!
Disclaimer
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.