Skip to main content

GFA BASIC TIPS & TRICKS by Richard Karsmakers

Since there haven't been much problems lately, you'll notice that 
this article isn't really big this time.  But those that actually 
occured weren't too difficult to answer.

The problems that reached me in this issue were:

1)  How do I make sure that an item selector box doesn't  destroy 
my whole screen when activated in low res?

Answer:  The only way to do this, is to buffer the screen and put 
it  back on the proper place again after the fileselector is  de-
activated. Thus:

 Sget Buffer$
 Fileselect "*.*","",Load$
 Sput Buffer$

2)  I  use several screens in my program,  located  on  different 
locations  in  memory.  I  swap  between  them  using  the  XBIOS 
function number 5. But now and then, my screens get messed up and 
menu bars that I use are scrambled after switching.  What must  I 
do?

Answer:  Your  program probably uses the same space as  that  are 
used  by  GfA  Basic to store variables,  or  to  buffer  certain 
operations. This can be avoided by starting your program with the 
following line:

 Reserve 150000

In most cases,  this line leaves enough space (150 Kb) for Basic. 
If not, just increase or decrease the number.

3)  How  do I calculate length of a string that  will  contain  a 
piece of the screen taken by GET, before it is taken?

Typing in the following program (on the next page) will give  the 
result. The coördinates are specified by the variables X1, Y1, X2 
and Y2. The last line is included to check the accuracy.
 X%=Xbios(4)       !Get res
 If X%=0           !Low res
   X=4             !4 bit planes
 Endif
 If X%=1           !Med res
   X=2             !2 bit planes
 Else              !High res
   X=1             !1 bit plane
 Endif
 X1=0              !Coordinates are here (can vary)
 Y1=0
 X2=1
 Y2=79
 U=((Y2-Y1)+1)*X*(2*((Int((X2-X1)/16))+1))+6
 Print U
 Get X1,Y1,X2,Y2,A$
 Print Len(A$)

4)  Is  there a way to make files readable again that  are  saved 
with the help of the 'PSAVE' command?

Answer: Yes, there is! It is quite a complicated thing to do, ans 
I  was  just trying to find it out (together with  Frank  Lemmen) 
when  an  acquaintance of mine had me copy one of  his  PD  disks 
containing a "PSAVE REVERSE" program. The listing is contained on 
this ST NEWS disk, contained in the folder "PROGRAMS".

5)  How do use the ST Basic (uugh!) command LPRINT USING  in  GfA 
Basic?

Answer:  Since I do not have a printer myself,  I am not sure the 
solution  I give will be full-proof.  But I think you'll have  to 
add one of the lines

    OPEN "O",#1,"LST:"    !For Centronics
    OPEN "O",#1,"AUX:"    !For RS232

before you start printing.  The actual printing would have to  be 
replaced by

    PRINT #1,USING............(etc.)

After printing,  you'll need to close the channel again by adding 
the line

    CLOSE #1

There also were some problems that I could not solve.  Maybe you, 
our reader, can help out.

1) How do I perform communication with modem or such in GfA?
                                R. Bitter

2) How do I change the shape of the cursor (not the mousecursor)?
                                G.A.J. van Oene

That  was it for today!  I only hope someone will find an  answer 
some  time to my VDIBASE problem (see the "Questions  &  Answers" 
column of this issue)!

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.