GFA BASIC: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
 
imported>Dgpop
History: updated platform links + copyediting
 
Line 1: Line 1:
{{Short description|Computer programming language}}
{{Short description|Computer programming language}}
{{Original research|date=February 2016}}
{{Infobox software
{{Infobox software
| name                  = GFA BASIC
| name                  = GFA BASIC
Line 30: Line 29:
| AsOf                  =  
| AsOf                  =  
}}
}}
'''GFA BASIC''' is a [[Dialect (computing)|dialect]] of the [[BASIC]] [[programming language]], by [[Frank Ostrowski]].  The name is derived from the company ("GFA Systemtechnik GmbH"), which distributed the software. In the mid-1980s to the 1990s it enjoyed popularity as an advanced BASIC dialect, but has been mostly superseded by several other programming languages. Official support ended in the early 2000s.
'''GFA BASIC''' is a [[Dialect (computing)|dialect]] of the [[BASIC]] [[programming language]].


==History==
==History==
GFA BASIC was developed by [[Frank Ostrowski]] at "GFA Systemtechnik GmbH" (later "GFA Software"), a German company in [[Kiel]] and [[Düsseldorf]], as a proprietary version of his free BASIC implementation, [[Turbo-Basic XL]]. GFA is an acronym for "Gesellschaft für Automatisierung" ("Company for Automation"), which gave name to the software. The first GFA BASIC version was released in 1986. In the mid and late 1980s it became very popular for the [[Atari ST]] home computer range, since the [[Atari ST BASIC]] shipped with them was more primitive. Later, ports for the [[Amiga|Commodore Amiga]], [[DOS]] and [[Microsoft Windows|Windows]] were marketed. Version 2.0 was the most popular release of GFA BASIC as it offered then many more advanced features compared to alternatives. GFA BASIC 3.0 included further improvements like support for user-defined structures and other agglomerated data types. The final released version was 3.6. Around 2002 GFA software [[End-of-life (product)|ceased all GFA BASIC activities]] and shut down the [[mailinglist]] and website in 2005.<ref>[https://web.archive.org/web/20031216035228/http://www.gfasoft.gfa.net/ Welcome at GFA Online!]</ref> Due to official support of GFA BASIC having ceased the user community took over the support and installed an own communication infrastructure.<ref>[https://sites.google.com/site/gfabasic322/ GFA-BASIC 32 for Windows] {{Webarchive|url=https://web.archive.org/web/20160406045704/https://sites.google.com/site/gfabasic322/ |date=2016-04-06 }} on google.com</ref><ref>[http://gfabasic32.blogspot.de/ GFA-BASIC 32 for Windows Stuff] by Sjouke Hamstra</ref>
GFA BASIC was developed by [[Frank Ostrowski]] at "GFA Systemtechnik GmbH" (later "GFA Software"), a German company in [[Kiel]] and [[Düsseldorf]], as a proprietary version of his free BASIC implementation, [[Turbo-Basic XL]]. GFA is an acronym for "Gesellschaft für Automatisierung" ("Company for Automation"), which gave name to the software. The first GFA BASIC version was released in 1986. In the mid and late 1980s it became popular for the [[Atari ST]], because the [[Atari ST BASIC]] shipped with them was more primitive. Ports were later released for the [[Amiga]], [[MS-DOS]], and [[Windows]].
 
Version 2.0 was the most popular release of GFA BASIC as it offered more advanced features compared to alternatives. GFA BASIC 3.0 added support for user-defined structures and other agglomerated data types. The final released version was 3.6. Around 2002 GFA software [[End-of-life (product)|ceased all GFA BASIC activities]] and shut down the [[mailinglist]] and website in 2005.<ref>[https://web.archive.org/web/20031216035228/http://www.gfasoft.gfa.net/ Welcome at GFA Online!]</ref> Due to official support of GFA BASIC having ceased the user community took over the support and installed an own communication infrastructure.<ref>[https://sites.google.com/site/gfabasic322/ GFA-BASIC 32 for Windows] {{Webarchive|url=https://web.archive.org/web/20160406045704/https://sites.google.com/site/gfabasic322/ |date=2016-04-06 }} on google.com</ref><ref>[http://gfabasic32.blogspot.de/ GFA-BASIC 32 for Windows Stuff] by Sjouke Hamstra</ref>


== Features and functionality ==
== Features and functionality ==
[[Image:Gfa basic screenshot.png|thumb|320px|right|A screenshot of a GFA BASIC program running at medium resolution, under the WinSTon emulator. Note the menu and window which were programmed with GFA BASIC using the ST's [[Graphics Environment Manager|GEM]] functions.]]
[[Image:Gfa basic screenshot.png|thumb|320px|right|A screenshot of a GFA BASIC program running at medium resolution, under the WinSTon emulator. Note the menu and window which were programmed with GFA BASIC using the ST's [[Graphics Environment Manager|GEM]] functions.]]{{Empty section|date=August 2025}}
 
As of version 2.0, the most popular release, GFA BASIC was a very modern programming language for its time. Line numbers were not used and one line was equivalent to one command. To greatly simplify maintenance of long listings, the IDE later even allowed for [[code folding]]. It had a reasonable range of [[structured programming]] commands&nbsp;— [[subroutine|procedures]] with local variables and parameter passing by value or reference, loop constructs, etc. Modularization was only rudimentary, making GFA BASIC 2.0 best suited for small and medium-sized projects.
 
The GFA BASIC [[BASIC interpreter|interpreter]] is compact and reasonably fast, and was shipped with a runtime that could be distributed freely with one's programs. When a [[compiler]] was made available, execution speed could be increased by approximately a factor of 2. GFA BASIC allowed extreme optimisations for execution speed, supporting some direct assembler-level calls, and even the ability to embed sections of assembler code directly within the BASIC source code. GFA BASIC integrated neatly into [[Graphics Environment Manager|GEM]] and [[Atari TOS|TOS]], the [[Atari ST]]'s [[operating system]], providing menus, dialog boxes, and mouse control. (See [[WIMP (computing)|WIMP]] interface.)
 
Although the source code was usually stored in a [[Lexical analysis|tokenized]] version to save room on disk, pieces of code could also be saved in [[ASCII]] form, and as such made it possible to set up reusable [[Library (computing)|libraries]]. The tokenized source files were a benefit in other ways too&nbsp;— for instance, GFA BASIC allowed users to include binary data in their BASIC code via an "INLINE" statement, and could even be integrated with the GFA Assembler to allow users to develop machine code programs inside INLINE statements in order to accelerate particular areas of a program. It also meant that the BASIC interpreter (and later the compiler) didn't need to tokenise a program when it was loaded, which would have been a significant load-time overhead for some of the larger GFA BASIC programs that were written.


===Manual===
== Manual ==
Some editions of the GFA manual were printed with black ink on red paper, in an attempt to thwart photocopying and bootlegging. The effectiveness of this tactic was questionable,<ref>{{cite web|url=http://www.page6.org/archive/issue_30/page_46.htm|title=GFA Basic Compiler|quote=Another point is that it has been printed on a bright red paper, a technique used to stop photocopying. I tested this and found that with a bit of experimentation, the photocopy was easier to read than the original manual!}}</ref> and the manual returned to the usual black-on-white format after complaints from colour blind users and the proliferation of re-typed copies on the Internet.
Some editions of the GFA manual were printed with black ink on red paper, in an attempt to thwart photocopying and bootlegging. The effectiveness of this tactic was questionable.<ref>{{cite web|url=http://www.page6.org/archive/issue_30/page_46.htm|title=GFA Basic Compiler|quote=Another point is that it has been printed on a bright red paper, a technique used to stop photocopying. I tested this and found that with a bit of experimentation, the photocopy was easier to read than the original manual!}}</ref>


== Windows version ==
== Windows version ==
{{unreferenced section|date=February 2018}}
{{Empty section|date=August 2025}}
 
GFA BASIC for Microsoft Windows included a thorough implementation of the Windows API calls. Although the product had a number of technical advantages over some of the more popular products (the combination of an "easy" language with robust architecture and fast, compiled, reliable code), it didn't achieve great success in the Windows market. Software professionals who wanted high-performance code tended to stay with the more "technical" languages, and to regard BASICs as inferior. For professionals who didn't have a problem with BASIC, a number of well-established software tool vendors such as [[Microsoft]] and [[Borland]] were actively promoting new "visual" programming systems such as [[Visual Basic (classic)|Visual Basic]]. These allowed users to create windows and dialog boxes populated by standard components (text, buttons, frame outlines) with the help of a drag-and-drop interface and object-oriented editing.
 
One of the advantages of GFA BASIC for Windows was that the compiler (sold separately) could create stand-alone .exe files, and also included a relatively easy option for creating [[Dynamic-link library|Dynamic Link Library]] (.DLL) files for Windows. This allowed a user to write and test routines within GFA Basic, export them as functions to a Windows .DLL file, and then access those pre-compiled functions from within other tools or programs, such as Visual Basic 3.0, which was unable to produce compiled code. This feature allowed GFA BASIC to be used as a "number-crunching" add-on product for Visual Basic, for writing high-speed routines for applications such as database sorting or media signal processing that would have been impractical under the then-current version of Visual Basic.
 
In the United States at least, GFA BASIC did not have the same brand recognition enjoyed by products from companies such as Microsoft and Borland. As a simple text-based code creation system, it also lacked the exciting new "visual" user interfaces of its better-known competitors. Although GFA BASIC for Windows was developed further to include support for Visual Basic's components, their use under GFA was more technical than under Visual Basic. Without a large marketing budget, or a clear reason why journalists should write about it, GFA BASIC for Windows remained a comparatively obscure product.


== Applications ==
== Applications ==
Line 60: Line 49:


Karsten Köper of Thalion software wrote all the basic game editing software for the "Amberstar" series using GFA Basic.<ref>{{cite web | url=http://thethalionsource.w4f.eu/Artikel/fua.htm | title=The Thalion Source - Fragen & Antworten - }}</ref>
Karsten Köper of Thalion software wrote all the basic game editing software for the "Amberstar" series using GFA Basic.<ref>{{cite web | url=http://thethalionsource.w4f.eu/Artikel/fua.htm | title=The Thalion Source - Fragen & Antworten - }}</ref>
The [[Dashboard of Sustainability]] is coded mostly in GFA Basic. The source is about 500kB, plus about 100kB of assembly mainly for accessing 32-bit Windows functions.


== References ==
== References ==
Line 72: Line 59:
*[http://gfabasic32.blogspot.co.uk GFA-BASIC 32 for Windows]&nbsp;— Free Community version
*[http://gfabasic32.blogspot.co.uk GFA-BASIC 32 for Windows]&nbsp;— Free Community version
*[https://www.youtube.com/@gfabasic32 GFA-BASIC 32 (FAN-SITE) on YouTube]&nbsp;— A fan hosted YouTube channel to promote the fun of coding.
*[https://www.youtube.com/@gfabasic32 GFA-BASIC 32 (FAN-SITE) on YouTube]&nbsp;— A fan hosted YouTube channel to promote the fun of coding.
*[http://x11-basic.sourceforge.net/ X11-Basic] — a free cross-platform BASIC with very similar syntax, including GUI functionality
*[https://x11-basic.sourceforge.net/ X11-Basic] — a free cross-platform BASIC with very similar syntax, including GUI functionality
*[http://preverdy.free.fr/preverdy/kg2j/index.html Atari GFA Basic 3 (LST format) to Java 1.0 converter]
*[http://preverdy.free.fr/preverdy/kg2j/index.html Atari GFA Basic 3 (LST format) to Java 1.0 converter]
*[http://www.run-software.de  RUN! Software]&nbsp;— comprehensive IDE, application builder, run-only interpreter, library with new features and bugfixes (site German, documents English)
*[http://www.run-software.de  RUN! Software]&nbsp;— comprehensive IDE, application builder, run-only interpreter, library with new features and bugfixes (site German, documents English)

Latest revision as of 15:53, 28 September 2025

Template:Short description Script error: No such module "Infobox".Template:Template other Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters". GFA BASIC is a dialect of the BASIC programming language.

History

GFA BASIC was developed by Frank Ostrowski at "GFA Systemtechnik GmbH" (later "GFA Software"), a German company in Kiel and Düsseldorf, as a proprietary version of his free BASIC implementation, Turbo-Basic XL. GFA is an acronym for "Gesellschaft für Automatisierung" ("Company for Automation"), which gave name to the software. The first GFA BASIC version was released in 1986. In the mid and late 1980s it became popular for the Atari ST, because the Atari ST BASIC shipped with them was more primitive. Ports were later released for the Amiga, MS-DOS, and Windows.

Version 2.0 was the most popular release of GFA BASIC as it offered more advanced features compared to alternatives. GFA BASIC 3.0 added support for user-defined structures and other agglomerated data types. The final released version was 3.6. Around 2002 GFA software ceased all GFA BASIC activities and shut down the mailinglist and website in 2005.[1] Due to official support of GFA BASIC having ceased the user community took over the support and installed an own communication infrastructure.[2][3]

Features and functionality

File:Gfa basic screenshot.png
A screenshot of a GFA BASIC program running at medium resolution, under the WinSTon emulator. Note the menu and window which were programmed with GFA BASIC using the ST's GEM functions.

Script error: No such module "Unsubst".

Manual

Some editions of the GFA manual were printed with black ink on red paper, in an attempt to thwart photocopying and bootlegging. The effectiveness of this tactic was questionable.[4]

Windows version

Script error: No such module "Unsubst".

Applications

Éric Chahi wrote a game editor in GFA basic to create his game Another World, including scene design and game scripting; only the game engine (polygon rendering and music) was done in assembler. This editor was used to make all ports of the game, including for consoles and the Collector Edition for Windows released in 2006.[5]

Karsten Köper of Thalion software wrote all the basic game editing software for the "Amberstar" series using GFA Basic.[6]

References

<templatestyles src="Reflist/styles.css" />

  1. Welcome at GFA Online!
  2. GFA-BASIC 32 for Windows Template:Webarchive on google.com
  3. GFA-BASIC 32 for Windows Stuff by Sjouke Hamstra
  4. Script error: No such module "citation/CS1".
  5. Another World Édition Spéciale 15ème Anniversaire for Windows, included making-of. Released by ElektroGames and SdLL (2006).
  6. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Script error: No such module "Navbox".

Template:Authority control