Message #1 on ’GFA Basic’
Date : 22 Dec 90 02:27:20
From : Jon Webb
To : Jacob Hamacher
Subj : Re: GFA-Basic PC (was: LOC(#2))
> Is there a PC version of GFA-basic?
Yes, there are versions for MS-DOS, OS/2, Windows and Unix. The DOS version
has been released in Germany and Holland. The UK should follow soon. Only
interpreter for now, no compiler.
> Is it difficult to tranfser programs between the ST and the PC,
That depends on what commands you are using. The ST-specific routines
like WIND_OPEN() won’t work, but OPENW for instance _will_ work, and so
will FILESELECT and the menu system! All (or most) graphics commands are
available too.
> and where can I get GFA for my PC?
I think GFA UK handles support for Scandinavia. They can be reached on
++44-734-794941.
Merry Xmas! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #6 on ’GFA Basic’
Date : 31 Dec 90 02:07:48
From : Jon Webb
To : Glenn Johansson
Subj : (4) Re: Making a random file shorter
> How do I make a random access file one entry shorter using GFA BASIC?
You copy all the records but one from the old file to a new one...
OPEN “I”,#1,“oldfile.dat” ! Open old file
OPEN “O”,#2,“newfile.dat” ! Open new file
’
count&=LOF(#1)/len& ! Where len = size of one record
FOR record&=1 TO count&-1 ! For each record but one
PRINT #2,INPUT$(len&,#1); ! Copy record
NEXT record& ! Next record
’
CLOSE #1 ! Close files
CLOSE #2
’
KILL “oldfile.dat” ! Remove old
NAME “newfile.dat” AS “oldfile.dat” ! Rename new to old
That should do the trick.
Happy New Year! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #1 on ’GFA Basic’
Date : 19 Oct 90 15:50:12
From : Peter Bloemendaal
To : All
Subj : select problem
I have the following strange problem :
when I write the following lines in Gfa 3.5E :
SELECT b$
CASE “PRINT”
The P from PRINT disappears ?????
I tried severall other letters instead of the P
Some of them disappear too, others give a syntax error. For example :
CASE “KRINT” Syntax error
CASE “LRINT” The L disappear
Does anyone knows a solution for this problem ?
* Origin: Cosysop Dutchman GFA_LOC always at your service ! (2:280/220.8)
Message #2 on ’GFA Basic’
Date : 20 Oct 90 03:04:04
From : Jon Webb
To : Magic.Alex Badalic
Subj : Re: Bomb Trapping
>> Am I going crazy? Or is GFA to blame?!
> Unfortunately, I’m a very miserable programmer myself, but I’ve heard
> several other people complainig about the compiler. Seems to me it’s
> GfA’s fault!
After lot’s of testing and a few calls to Frank Ostrowski I think I’ve
spotted the problem, see next message.
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #3 on ’GFA Basic’
Date : 20 Oct 90 03:08:04
From : Jon Webb
To : All
Subj : Bomb problems
Hi All,
a few days ago I posted a message in this echo about problems with bomb
trapping. It turns out that when you switch bomb trapping on, you must also
_ALWAYS_ switch interrupts on. Without interrupts the compiled program will
keep on bombing. So:
$B+ Is incorrect
$B+,I+ Is correct
Also, $B+ can _not_ be passed on the command line by a shell. A few other
command line switches are also ignored by the compiler:
RCx RC_INTERSECT() parameters 16 or 32 bit
%0 and %3 Integer division results 16 or 32 bit
U+ Break checking on (locks up the compiler!)
trapping switched on. I claim this is simply a buggy compiler.
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #4 on ’GFA Basic’
Date : 20 Oct 90 03:13:04
From : Jon Webb
To : Peter Bloemendaal
Subj : (1) Re: select problem
> when I write the following lines in Gfa 3.5E :
> SELECT b$
> CASE “PRINT”
> The P from PRINT disappears ?????
The SELECT statement only works on a long, 4 bytes. That’s because the
’SELECT’ value is loaded into a register and compared there. That’s with
source switch $S%, but with $S& only 2 bytes are compared (faster &
smaller code).
If you want to compare more than 4 bytes, use something like:
IF b$=“PRINT”
...
ELSE IF b$=“LPRINT”
...
ELSE IF ...
ENDIF
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #5 on ’GFA Basic’
Date : 20 Oct 90 03:13:28
From : Jon Webb
To : All
Subj : Compiling TTP’s with 3.50 EE
Starting with v3.50 EE you are supposed to be able to compile TTP’s which
don’t mess around with the mouse. However, any source switch will cause
the compiler to insert the AES stuff anyway.
Combine this with the fact that things like bomb trapping can’t be done
from the command line, and you’ll see that you can’t produce a TTP which
traps bombs...
GFA, you’ve done it again...
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #6 on ’GFA Basic’
Date : 20 Oct 90 11:33:48
From : Peter Bloemendaal
To : Jon Webb
Subj : (4) Re: select problem
JW> The SELECT statement only works on a long, 4 bytes. That’s because
JW> the ’SELECT’ value is loaded into a register and compared there.
So if I write the following program :
SELECT b$
CASE “PRIN”
rem Selected also when b$=“PRINT”
This should work ?
Greetings, Peter Bloemendaal
-- LED ST 0.10 rb20
--- ComScan v1.00 TB/ST
* Origin: Cosysop Dutchman GFA_LOC always at your service ! (2:280/220.8)
Message #8 on ’GFA Basic’
Date : 21 Oct 90 05:50:36
From : Jon Webb
To : Albert Mullens
Subj : (7) Re: GfA Basic for the TT
> Hello, does anybody know anything about a patch or version of GfA
> Basic for the great Atari TT? The “ordinary” GfA Basic doesn’t work.
How about reading the messages in the echo before posting a new one? A
few days ago I posted a message about GFA on the TT. There is no version
newer than 3.50 EE, which will run (more or less) in ST resolutions.
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #13 on ’GFA Basic’
Date : 22 Oct 90 18:30:40
From : Jon Webb
To : Joakim Nordlander
Subj : (9) Re: window redraw
>> So you want to create your resource files by keyboard? You must be
>> joking! However, most options & dialog boxes in K-Resource have
>> keyboard shortcuts.
> I dont want to create them, I want to be able to operate them from the
> keyboard.
Ah, you mean shortcuts in the program which uses the resource. Well
that’s easy. All you need to do is write your own FORM_DO() function.
That’s not as difficult as it seems, because most of the work is handled
by the sub-functions FORM_BUTTON() and FORM_KEYBD(). You could put the
shortcut key in the extended state.
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #14 on ’GFA Basic’
Date : 22 Oct 90 18:32:32
From : Jon Webb
To : Joakim Nordlander
Subj : (9) Re: window redraw
> I have wondered about making a program so that you can operate
> an Alertbox with the arrowkeys.
GShell, my GFA shell, does that. You can use the mouse, move the default
option with the cursor keys, or press the key which is underlined in the
button text.
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #16 on ’GFA Basic’
Date : 20 Oct 90 14:43:04
From : Michael Vogt
To : All
Subj : ASCII==>FIDO-MSG
Did anyone have a little *.GFA file for me with witch I can convert an
ascii-textfile to a FIDO-Msg? My problem: I am writing a utility for TB
witch produces ascii-files on my harddisc. In future it should write
these textfiles as messages in one or more echomail-areas. But I don’t
know how to do this! If I can solve this problem with your help this
utility will be available for all sysops who are using TheBox and QBBS-ST.
It analyses the logfile and gives the sysop detailed information about
what was on in his system...
MfG.
\ /
\/
ICK
A&M-SOFT-BBS,1ST ATARI-NODE, Berlin/Brandenburg
-- LED ST 0.10
--- ComScan v1.00 TB/ST
Message #18 on ’GFA Basic’
Date : 27 Oct 90 02:27:56
From : Jon Webb
To : Michael Vogt
Subj : (16) Re: ASCII==>FIDO-MSG
> Did anyone have a little *.GFA file for me with witch I can convert an
> ascii-textfile to a FIDO-Msg? My problem: I don’t know how to do this!
Request QSTRUCT.LZH from 2:282/301. That contains the message base layout.
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #19 on ’GFA Basic’
Date : 27 Oct 90 02:29:24
From : Jon Webb
To : Bernd Renzing
Subj : (17) Re: Options in GFA ?
> How can i read the Command Line in GFA Basic ? Has anybody an Routine ?
cl$=LEFT$(CHAR{BASEPAGE+129},BYTE{BASEPAGE+128})
No proc required, also works with ARGV.
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #20 on ’GFA Basic’
Date : 27 Oct 90 04:24:48
From : Erno Meffert
To : Bernd Renzing
Subj : (17) Re: Options in GFA ?
In a message of <26 Oct 90 00:23:32>, Bernd Renzing (2:245/102) writes:
BR> How can i read the Command Line in GFA Basic ? Has anybody an
BR> Routine ?
This one should do the job :
clr com$
com%=peek(basepage+&80)
if com%<>0
for i%=1 to com%
com$=com$+chr$(peek(basepage+&80+i%))
next i%
endif
com$=trim$(com$)
All this could be compressed in one or two line but this routine tells you
more about where and how the commandline can be found.
At basepage + 128 the length of the commandline is stored.
form basepage + 129 you can find the commandline itself.
Greeting Erno
-- LED ST 0.10 rb20
--- ComScan v1.00 TB/ST
* Origin: QuickBBS ST Arnhem, ++31-(0)85-644262 (2:281/801)
Message #22 on ’GFA Basic’
Date : 26 Oct 90 08:27:10
From : Jens Bauer
To : Jon Webb
Subj : Re: Fileselect on desktop
> Patching TOS huh?
Eeh, GEM, actually ;)
noticed that little ^ funny guy ?
-I’m never using windows, instead I’m using the dialog-boxes (I’ve seen a
crashed ST too many times, while working with windows (also when using the
example files from GfA!!) -does the FORM_DO() and OBJC_DRAW() return those
values ?!?
Great greetings - Jens -
--- QuickBBS ST v1.02+
* Origin: * The VOID BBS, +45 43 54 83 96 (HST) (24hrs) * (2:231/90)
Message #23 on ’GFA Basic’
Date : 28 Oct 90 03:23:36
From : Jon Webb
To : Jens Bauer
Subj : (22) Re: Fileselect on desktop
> -I’m never using windows, instead I’m using the dialog-boxes (I’ve
> seen a crashed ST too many times, while working with windows (also
> when using the example files from GfA!!)
Not when written correctly 8-)
> -does the FORM_DO() and OBJC_DRAW() return those values ?!?
No, FORM_DO() returns the exit object of course. With bit 15 set for
double-click. For redraws you need windows. What you _could_ do is
install your object as a custom desktop with WIND_SET(0, 14, ...). Then
AES will do the redrawing for you. Don’t forget to remove it again when you
exit your program though!
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #24 on ’GFA Basic’
Date : 27 Oct 90 17:43:00
From : Bram Habraken
To : Jon Webb
Subj : Re: GFA 3.0/Big screen
> An average program written in GFA will certainly make a mess of it.
Why should it? A program can be written in GFA Basic to run correctly on every
graphics mode available for the ST/TT.
You can use WORK_OUT(0) and WORK_OUT(1) to get the width and height of the
current screen mode, and you allways should use those variables, NOT the line a
variables ’cos it isn’t sure if they will be supported in the future...
> For two reasons: First you can’t rely on XBIOS(4) to get the
> current resolution (does anyone know what return code you get for a
> BigScreen monitor or a TT?).
On the TT XBIOS 4 returns what was expected!:
0 - ST Low
1 - ST Medium
2 - ST High
3 - TT Low
4 - TT Medium
5 - TT High
Gr.Bram Habraken
---
* Origin: Computershop Utrecht BBS Holland (31-30-660487) (2:281/701)
Message #25 on ’GFA Basic’
Date : 28 Oct 90 18:24:44
From : Peter Bloemendaal
To : All
Subj : Gfa procedures
Recently I try to manage a Gfa basic area. I’am looking for a
number of short routines that make life easy. I think most
programmers have such routines in their pockets. This way we
can build an$enormous library of all kind of short procedures.
Please send your contribution to me or my orig line
Thanks.... Greetings Peter Bloemendaal
--- LED ST 0.10 [BYE 0n23]
* Origin: Cosysop Dutchman GFA_LOC[l^H: your service ! (2:280/220.8)
Message #26 on ’GFA Basic’
Date : 28 Oct 90 17:08:44
From : Jon Webb
To : Bram Habraken
Subj : (24) Re: GFA 3.0/Big screen
>> An average program written in GFA will certainly make a mess of it.
> Why should it? A program can be written in GFA Basic to run correctly
> on every graphics mode available for the ST/TT.
Theoretically yes. But in practice most GFA programmers are too lazy.
Especially when writing PD programs. I think this is due to the fact you
can write GFA programs even if you’ve never heard of VDI, resolution
independant graphics, work stations and all that stuff.
> You can use WORK_OUT(0) and WORK_OUT(1) to get the width and height of
> the current screen mode, and you allways should use those variables,
Either those or the desktop sizes returned by WIND_GET(0,4...).
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #28 on ’GFA Basic’
Date : 29 Oct 90 22:44:04
From : Jon Webb
To : Erno Meffert
Subj : (27) Re: CHAR{}
> Can anyone tell me the difference between:
> CHAR{......} and CHAR{{......}}
{a%} is the same as LONG{a%}, which in turn is more or less identical to
LPEEK(a%). So...
CHAR{a%} returns string at a%
CHAR{{a%}} returns string at LONG{a%}
The main difference between LONG{} and LPEEK() is that LPEEK() is
executed in supervisor mode, whereas LONG{} is executed in user mode.
LONG{} about twice as fast. The same goes for BYTE{}/PEEK() and
CARD{}/DPEEK().
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #29 on ’GFA Basic’
Date : 29 Oct 90 02:00:48
From : Bertrand PETIT
To : Michael Vogt
Subj : (16) Re: ASCII==>FIDO-MSG
In a message of <20 Oct 90 14:43:04>, Michael Vogt (2:242/34) writes:
MV> Did anyone have a little *.GFA file for me with witch I can convert
MV> an ascii-textfile to a FIDO-Msg? My problem: I am writing a utility
Try LED ST (an editor like comscan but with GEM... very nice). It
inculde an ASCII import module.
Bertrand PETIT
alias
>Elrond le demi-Elfe<
--- LED ST 0.10
* Origin: IMLADRIS the house of the Elves -- Paris, France (2:320/4.7)
Message #30 on ’GFA Basic’
Date : 29 Oct 90 02:02:32
From : Bertrand PETIT
To : Bernd Renzing
Subj : (17) Re: Options in GFA ?
In a message of <26 Oct 90 00:23:32>, Bernd Renzing (2:245/102) writes:
BR> How can i read the Command Line in GFA Basic ? Has anybody an
If the command line is passed by a pragram who do that job correctly
(using pascal string definitions) try this:
command_line$=string$(byte{basepage+128},0)
bmove basepage+129,v:command_line$,byte{basepage+128}
This work in GFA 3. if you obtain nothing then try the C string’s
definition:
command_line$=char{basepage+128}
or
command_line$=char{basepage+129}
One of them must work.
Bertrand PETIT
alias
>Elrond le demi-Elfe<
--- LED ST 0.10
* Origin: IMLADRIS the house of the Elves -- Paris, France (2:320/4.7)
Message #1 on ’GFA Basic’
Date : 19 Nov 90 04:55:44
From : Manfred Zeller
To : ALL
Subj : SYS-PARAmeter
Hi folks,
there where some questions about getting screen_resolution with
WORK_OUT().
In the October ST was a Short_List from Stephan Elsner to get some
interesting SYS- parameters :
PROCEDURE sys_para
’ all Parameters global
aufl&=XBIOS(4) !low/mid/high
screen_adr%=XBIOS(2) !Screenaddress
screen_breite&=DPEEK(ADD(L~A,2)) !screenwidth in Bytes
xmax&=WORK_OUT(0) !Max. Pixels X
ymax&=WORK_OUT(1) !Max. Pixels Y
x_pix&=WORK_OUT(3) !Pixelbreite in mm/1000
y_pix&=WORK_OUT(4) !Pixelhoehe in mm/1000
xy_faktor=x_pix&/y_pix& !Pixelgroesse XY_Faktor
max_colors&=WORK_OUT(39) !number colors of colorpalett
bitplanes&=DPEEK(L~A) !number of Bitplanes (LineA)
c_olors&=2^bitplanes& !number of representable colors
CONTRL(0)=5 !vq_chcells
CONTRL(1)=0 !VDI-Escape-Funktion
CONTRL(2)=0 !
CONTRL(3)=0 !
CONTRL(5)=1 !
CONTRL(6)=V~H !
VDISYS ! VDI-Einsprung
zeilen&=INTOUT(0) !number of textlines
spalten&=INTOUT(1) !number of textcolums
z_hoehe&=(ymax&+1)\zeilen& !characterheight in pixel
z_breite&=(xmax&+1)\spalten& !characterwidth in pixel
CLIP 0,0,xmax&,ymax& !set Clipping
ACLIP 0,0,xmax&,ymax& ! “ Line_A ”
RETURN
PROCEDURE sys_show
CLS
PRINT AT(1,1);“Anzeige der Systemparameter :”
PRINT
PRINT “Auflsung : ”;aufl&
PRINT “Bildschirmadresse : ”;screen_adr%
PRINT “ ’’ hexadezimal : ”;HEX$(screen_adr%,10)
PRINT “Bildschirmbreite : ”;screen_breite&;“ Bytes”
PRINT “max. X-Auflsung : ”;xmax&;“ Pixel”
PRINT “max. Y-Auflsung : ”;ymax&;“ Pixel”
PRINT “reale Pixelbreite : ”;x_pix&;“ um”
PRINT “reale Pixelhhe : ”;y_pix&;“ um”
PRINT “Pixel X/Y-Faktor : ”;xy_faktor
PRINT “Palettenumfang : ”;max_colors&;“ Farben”
PRINT “gleichz. darstellbar : ”;colors&;“ Farben”
PRINT “Anzahl Bitplanes : ”;bitplanes&
PRINT “Anzahl Textzeilen : ”;zeilen&
PRINT “Anzahl Textspalten : ”;spalten&
PRINT “Zeichenbreite : ”;z_breite&;“ Pixel”
PRINT “Zeichenhhe : ”;z_hoehe&;“ Pixel”
PRINT
PRINT “weiter mit Taste ....”
REPEAT
UNTIL INP(2)
CLS
RETURN
I’m new in this AREA and i thought to found some interesting routines
here, but here’s only discussion .... I think everybody, programming in
GfA, has some short routines in the deep of his HD and there should be a
friendly exchange between the users of this Area. One should help
beneath the other. Or am i wrong??
. . _ _
mfg. /
/
/_
/
/
/
/__ on (2:247/43.105)
--- LED ST 0.10 [BYE 0.31]
* Origin: GfA’s the BEST :-)) (2:247/43.105)
Message #5 on ’GFA Basic’
Date : 27 Nov 90 02:52:00
From : Jon Webb
To : Glenn Johansson
Subj : (3) Re: SERIAL?
> Does anyone here know why serial access doesnt work with GFA BASIC
> 3.02? I use the commands just as they are written in the
> documentation. Perhaps this is a known bug on this version of GFA
> BASIC?
Serial I/O has always worked fine, but try to get v3.07 or v3.50EE of the
interpreter. Those versions are much more stable.
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
Message #6 on ’GFA Basic’
Date : 28 Nov 90 22:35:16
From : Daniel Hersson
To : Stefan Muench
Subj : Re: IMG
> Has anybody got a routine to read/write (unpack/pack) pics ?
> Thanxalot, Stefan
Well, I got a routine to read compressed Degas pics, if that’s what you’re
looking for.
((( dAnJ{LL )))
--- QuickBBS ST v1.02+
* Origin: -* MultiSoft BBS! *- (+46-753-55854) (2:201/319)
Message #7 on ’GFA Basic’
Date : 27 Nov 90 22:40:00
From : Glenn Johansson
To : All
Subj : Width
I would like to ask anyone if the width of the output can be changed - a
similarity to WIDTH, I mean. The default seems to be 77. Yuck! Even if the
screen cant support 80 charachters, I would be happier if the basic didnt show
the last three chars at all, instead of showing them at the wrong line.
R a p G o b
---
* Origin: AnDan BBS * USR HST 14400 bps * 46-31-307364 (2:203/101.0)
Message #8 on ’GFA Basic’
Date : 02 Dec 90 18:17:00
From : Glenn Johansson
To : All
Subj : LOC(#2)
In other basics I use LOC(#2) to find out if there are any characters waiting
from the serial port. How do I do this with GFA BASIC?
By the way, why do they say that COM1: should be used, when it only works with
SER:??? I have version 3.02.
R a p G o b
---
* Origin: AnDan BBS * USR HST 14400 bps * 46-31-307364 (2:203/101.0)
Message #9 on ’GFA Basic’
Date : 04 Dec 90 00:42:04
From : Jon Webb
To : Glenn Johansson
Subj : (8) Re: LOC(#2)
> In other basics I use LOC(#2) to find out if there are any characters
> waiting from the serial port. How do I do this with GFA BASIC?
Try INP?(1). If it’s TRUE then there’s one waiting.
> By the way, why do they say that COM1: should be used, when it only
> works with SER:??? I have version 3.02.
You mean AUX: don’t you? Or are you talking about the PC version of GFA???
Electronic Greetings! - Jon -
--- QuickNet ST v0.10 beta
* Origin: [ DeltaVision Systems HQ - The Netherlands ] (2:282/301.2)
End of Messages.