Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
GFA BASIC
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== 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.]] 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 β [[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 β 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,<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.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)