GFA BASIC

Last updated
GFA BASIC
Original author(s) Frank Ostrowski
Initial release1986;38 years ago (1986)
Final release
3.6
Operating system Amiga, Atari ST, MS-DOS, Microsoft Windows
Type BASIC

GFA BASIC is a 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.

Contents

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 Commodore Amiga, DOS and 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 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

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. 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.

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 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 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 GEM and TOS, the Atari ST's operating system, providing menus, dialog boxes, and mouse control. (See WIMP interface.)

Although the source code was usually stored in a 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 libraries. The tokenized source files were a benefit in other ways too — 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

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] 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.

Windows version

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. 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 (.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

É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]

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.

Related Research Articles

<span class="mw-page-title-main">BASIC</span> Family of programming languages

BASIC is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1963. They wanted to enable students in non-scientific fields to use computers. At the time, nearly all computers required writing custom software, which only scientists and mathematicians tended to learn.

In computing, source code, or simply code or source, is text that conforms to a human-readable programming language and specifies the behavior of a computer. A programmer writes code to produce a program that runs on a computer.

Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6.0 built into most desktop Microsoft Office applications. Although based on pre-.NET Visual Basic, which is no longer supported or updated by Microsoft, the VBA implementation in Office continues to be updated to support new Office features. VBA is used for professional and end-user development due to its perceived ease-of-use, Office's vast installed userbase, and extensive legacy in business.

<span class="mw-page-title-main">PowerBASIC</span> Software compiler

PowerBASIC, formerly Turbo Basic, is the brand of several commercial compilers by PowerBASIC Inc. that compile a dialect of the BASIC programming language. There are both MS-DOS and Windows versions, and two kinds of the latter: Console and Windows. The MS-DOS version has a syntax similar to that of QBasic and QuickBASIC. The Windows versions use a BASIC syntax expanded to include many Windows functions, and the statements can be combined with calls to the Windows API.

<span class="mw-page-title-main">Windows API</span> Microsofts core set of application programming interfaces on Windows

The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running.

Microsoft BASIC is the foundation software product of the Microsoft company and evolved into a line of BASIC interpreters and compiler(s) adapted for many different microcomputers. It first appeared in 1975 as Altair BASIC, which was the first version of BASIC published by Microsoft as well as the first high-level programming language available for the Altair 8800 microcomputer.

A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on Android devices is a cross compiler.

<span class="mw-page-title-main">MinGW</span> Free and open-source software for developing applications in Microsoft Windows

MinGW, formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications.

CodeView is a standalone debugger created by David Norris at Microsoft in 1985 as part of its development toolset. It originally shipped with Microsoft C 4.0 and later. It also shipped with Visual Basic for MS-DOS, Microsoft BASIC PDS, and a number of other Microsoft language products. It was one of the first debuggers for MS-DOS to be full-screen oriented, rather than line-oriented.

The Microsoft Macro Assembler (MASM) is an x86 assembler that uses the Intel syntax for MS-DOS and Microsoft Windows. Beginning with MASM 8.0, there are two versions of the assembler: One for 16-bit & 32-bit assembly sources, and another (ML64) for 64-bit sources only.

<span class="mw-page-title-main">Turbo-BASIC XL</span>

Turbo-BASIC XL is an advanced version of the BASIC programming language for the Atari 8-bit family of home computers. It is a compatible superset of the Atari BASIC that shipped with the Atari 8-bit systems. Turbo-Basic XL was developed by Frank Ostrowski and published in the December 1985 issue of German computer magazine Happy Computer. A version for the 400/800 models was released shortly after as Frost Basic 1.4. Several modified versions working with different DOS systems have been released by other authors.

Optimized Systems Software (OSS) was a company that produced disk operating systems, programming languages with integrated development environments, and applications primarily for Atari 8-bit computers. The founders of OSS previously developed Atari DOS, Atari BASIC, and the Atari Assembler Editor for Atari, Inc., and many OSS products are substantially improved versions. OS A+ and DOS XL are based on Atari DOS. BASIC A+, BASIC XL, and BASIC XE are based on Atari BASIC. EASMD and MAC/65 are modeled on the Atari Assembler Editor. Action! is an ALGOL-inspired compiled programming language with an integrated full-screen editor. OSS also sold some software for the Apple II.

<span class="mw-page-title-main">Parallax Propeller</span> Multi-core microcontroller

The Parallax P8X32A Propeller is a multi-core processor parallel computer architecture microcontroller chip with eight 32-bit reduced instruction set computer (RISC) central processing unit (CPU) cores. Introduced in 2006, it is designed and sold by Parallax, Inc.

The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an overview of the core libraries that are included with every modern Windows installation, on top of which most Windows applications are built.

<span class="mw-page-title-main">Visual Basic (classic)</span> Microsofts programming language based on BASIC and COM

Visual Basic (VB) before .NET, sometimes referred to as Classic Visual Basic, is a third-generation programming language, based on BASIC, and an integrated development environment (IDE), from Microsoft for Windows known for supporting rapid application development (RAD) of graphical user interface (GUI) applications, event-driven programming and both consumption and development of components via the Component Object Model (COM) technology.

<span class="mw-page-title-main">Atari 8-bit computer software</span>

Many games, utilities, and educational programs were available for Atari 8-bit computers. Atari, Inc. was primarily the publisher following the launch of the Atari 400/800 in 1979, then increasingly by third parties. Atari also distributed "user written" software through the Atari Program Exchange from 1981 to 1984. After APX folded, many titles were picked up by Antic Software.

<span class="mw-page-title-main">MikroSim</span> Educational computer program released in 1992

MikroSim is an educational computer program for hardware-non-specific explanation of the general functioning and behaviour of a virtual processor, running on the Microsoft Windows operating system. Devices like miniaturized calculators, microcontroller, microprocessors, and computer can be explained on custom-developed instruction code on a register transfer level controlled by sequences of micro instructions (microcode). Based on this it is possible to develop an instruction set to control a virtual application board at higher level of abstraction.

Absoft Fortran Compilers are set of Fortran compilers for Microsoft Windows, Apple Macintosh, and Linux produced by Absoft Corporation. The compilers are source code compatible across platforms.

<span class="mw-page-title-main">BASIC interpreter</span> Interpreter that enables users to enter and run programs in the BASIC language

A BASIC interpreter is an interpreter that enables users to enter and run programs in the BASIC language and was, for the first part of the microcomputer era, the default application that computers would launch. Users were expected to use the BASIC interpreter to type in programs or to load programs from storage.

References

  1. Welcome at GFA Online!
  2. GFA-BASIC 32 for Windows Archived 2016-04-06 at the Wayback Machine on google.com
  3. GFA-BASIC 32 for Windows Stuff by Sjouke Hamstra
  4. "GFA Basic Compiler". 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!
  5. Another World Édition Spéciale 15ème Anniversaire for Windows, included making-of. Released by ElektroGames and SdLL (2006).
  6. "The Thalion Source - Fragen & Antworten -".