Hypertext file: GFABASIC.hyp with 1020 entries Module GFABASIC OS Atari Database The GFA-Basic Compendium Node Main Node Help Node Document not found Node HYPertext Version Node GFA-Basic Addendum Node Command line options Node Optimizations not covered in the Compiler manual Node Cookie Jar Node Fastload on TOS 1.00/1.02 Alias fastload Node GFA-Basic History Node The Origins of GFA-Basic Node Misc Images Node General Information Node Patches for GFA-Basic Node Known problems with GFA-Basic Node Start-up/Shut-down modules Node Number Table Node Shift Table Node N.AES Functions and Objects Alias N.AES Node Debugging with GFA-Basic and MiNT Node C to GFABASIC Node GFA-Basic v3 float format Node ST-Basic float format Node Assembler Notes Node Compatibility with GFA-BASIC 3.5 Node Understanding GFA's VDI scheme Node GFA-Basic Editor/Interpreter Manual Label 89 AES Library Node GFA_PTCH.TXT Node LIBPATCH.TXT Node VDIBASE.TXT Node ATTRDEF.H Node BASEPAGE.H Node ERRNO.H Node LINEAVAR.H Node LINEAEQU.S Node The local=FN bug Node Using GEMSYS Node A Study of VDISYS Node VDI Revisited Node Optimizing FUNCTION Calls Node Assembler and GFABASIC Node Compiler Option $M Node Compiler Option $P Node External Arrays Node Structures Node Porting other BASICs Node GCC Extended Program Header Node 256 color VDI/Hardware table Node Publisher Node GFA Software Technologies, Inc. Node MichTron, Inc. Node Antic Software Node Chapter 1 - Introduction Node About This Manual Alias avar Alias aexp Alias svar Alias sexp Alias ivar Alias iexp Alias bexp Node Using GFA-Basic 3 For The First Time Node The Editor Alias Fundamentals Node The Cursor Keypad Node The Numeric Keypad Node The Modifier Keys Node Further Editing Commands Node Further Control Commands Node The Menu Bar and Function Keys Label 76 ==> Label 91 . Label 91 .dot commands Label 91 .LL Label 91 .PL Label 91 .FF Label 91 .HE Label 91 .FO Label 91 .LR Label 91 .L- Label 91 .L+ Label 91 .Nx Label 91 .N0 Label 91 .PA Label 91 .P- Label 91 .P+ Label 91 .IN Node Special Commands Node DEFWRD Alias DEFBIT Alias DEFBYT Alias DEFINT Alias DEFFLT Alias DEFSTR Alias DEFSNG Alias DEFDBL Node DEFLIST Node $ Alias $compiler option Alias OPTION Node Chapter 2 - Variables and Memory Management Alias Variable Types Alias | Alias & Alias % Alias # Node Arrays Node DIM Alias DIM? Node OPTION BASE Node ARRAYFILL Node Matrix Commands Node MAT BASE Node MAT CLR Alias MAT SET Alias MAT ONE Node MAT READ Alias MAT PRINT Alias MAT ? Alias MAT INPUT Node MAT CPY Alias MAT XCPY Alias MAT TRANS Node MAT ADD Alias MAT Alias MAT SUB Alias MAT MUL Alias MAT NORM Alias MAT DET Alias MAT QDET Alias MAT RANG Alias MAT INV Node MAT ABS Alias MAT NEG Node Type Transformation Node TYPE Node ASC Alias CHR$ Node STR$ Alias BIN$ Alias OCT$ Alias HEX$ Node VAL Alias VAL? Node CVI Alias CVL Alias CVS Alias CVF Alias CVD Alias MKI$ Alias MKL$ Alias MKS$ Alias MKF$ Alias MKD$ Node CINT Alias CFLOAT Node Pointer Operations Node PEEK Alias DPEEK Alias LPEEK Alias POKE Alias DPOKE Alias LPOKE Alias SPOKE Alias SDPOKE Alias SLPOKE Node WORD Alias {} Alias BYTE Alias INT Alias LONG Alias FLOAT Alias CARD Alias SINGLE Alias DOUBLE Alias CHAR Node VARPTR Alias V: Alias ARRPTR Alias * Alias *variable pointer Alias *var= Alias descriptor Alias Descriptor Node ABSOLUTE Node Deleting and Exchanging Node CLEAR Alias CLR Alias ERASE Node SWAP Node QSORT Alias SSORT Alias xSORT Node INSERT Alias DELETE Node Reserved Variables Node PI Alias FALSE Alias TRUE Node SETTIME Alias DATE$ Alias TIME$ Alias DATE$= Alias TIME$= Alias TIMER Node _C Alias _X Alias _Y Node Special Node LET Node VOID Alias ~ Node Memory Management Node FRE Node BMOVE Node BASEPAGE Alias HIMEM Node RESERVE Node INLINE Node MALLOC Alias MSHRINK Alias MFREE Node Chapter 3 - Operators Node Arithmetic Operators Alias MOD Alias - Alias ^ Alias \ Node Logical Operators Node NOT Node AND Node OR Node XOR Node IMP Node EQV Node Concatenation Operator Alias + Node Comparison Operators Node = Node == Node < Alias > Alias <= Alias =< Alias >= Alias => Node <> Alias >< Node Assignment Operator Alias &H Alias &X Alias &O Node Operator Hierarchy Alias () Node Chapter 4 - Numerical Functions Node Mathematical Functions Node ABS Alias SGN Node EVEN Alias ODD Node INT() Alias TRUNC Alias FIX Alias FRAC Node ROUND Node MIN Alias MAX Node SQR Node EXP Alias LOG Alias LOG10 Node SIN Alias COS Alias TAN Alias ASIN Alias ACOS Alias ATN Alias DEG Alias RAD Alias SINQ Alias COSQ Node FACT Alias VARIAT Alias COMBIN Node SCALE Node Random Number Generator Node RANDOM Alias RND Alias RAND Alias RANDOMIZE Node Integer Arithmetic Alias Commands and Functions Node DEC Alias INC Node ADD Alias SUB Alias MUL Alias DIV Node PRED Alias SUCC Node ADD() Alias SUB() Alias MUL() Alias DIV() Alias MOD() Node Bit Operations Node BCLR Alias BSET Alias BCHG Alias BTST Node SHR Alias SHR& Alias SHR| Alias SHL Alias SHL& Alias SHL| Alias ROL Alias ROL& Alias ROL| Alias ROR Alias ROR& Alias ROR| Node AND() Alias OR() Alias XOR() Alias IMP() Alias EQV() Node SWAP() Node BYTE() Alias CARD() Alias WORD() Node Chapter 5 - String Manipulation Alias String Manipulation Node RIGHT$ Alias LEFT$ Node MID$ Node MID$() Node PRED() Alias SUCC() Node LEN Alias TRIM$ Node INSTR Node RINSTR Node STRING$ Alias SPACE$ Alias SPC Node UPPER$ Node RSET Alias LSET Node Chapter 6 - Input and Output Node Keyboard and Screen Handling Node INKEY$ Node INPUT Node LINE INPUT Node FORM INPUT Alias FORM INPUT AS Node PRINT Alias PRINT AT Alias WRITE Alias LOCATE Alias ? Alias ; Node PRINT USING Node MODE Node DEFNUM Node CRSCOL Alias CRSLIN Alias POS Alias TAB Alias HTAB Alias VTAB Node KEYxxx Commands Node KEYPAD Node KEYTEST Alias KEYGET Alias KEYLOOK Node KEYPRESS Node KEYDEF Node Data Input and Output Node Data Commands Alias DATA Alias READ Alias RESTORE Alias _DATA Alias _DATA= Node File Management Node Directory Handling Node DFREE Alias CHDRIVE Alias DIR$ Alias CHDIR Node DIR Alias FILES Node FGETDTA Alias FSETDTA Alias DTA Node FSFIRST Alias FSNEXT Node MKDIR Alias RMDIR Node Files Node EXIST Node OPEN Alias LST: Alias AUX: Alias CON: Alias MID: Alias IKB: Alias VID: Alias PRN: Alias LPT: Alias COM: Alias STD: Node CLOSE Alias LOF Alias LOC Alias EOF Alias TOUCH Node NAME Alias RENAME Alias KILL Node BLOAD Alias BSAVE Alias BGET Alias BPUT Node Sequential Access Node INP Alias INP& Alias INP% Alias OUT # Alias OUT& # Alias OUT% # Node INPUT$ Node INPUT # Alias LINE INPUT # Node PRINT # Alias PRINT # USING Alias WRITE # Node STORE Alias RECALL Node SEEK Alias RELSEEK Node Random Access Node FIELD Alias FIELD # Node RECORD Alias GET # Alias PUT # Alias RECORD # Node Communicating with Peripherals Alias Byte by Byte Input and Output Node INP() Alias INP&() Alias INP%() Alias INP? Alias OUT Alias OUT& Alias OUT% Alias OUT? Node Serial (RS232) and MIDI Interfaces Alias INPAUX$ Alias INPMID$ Node Mouse and Joysticks Node MOUSE Alias MOUSEX Alias MOUSEY Alias MOUSEK Node SETMOUSE Node HIDEM Alias SHOWM Node STICK Alias STRIG Node PADT Alias PADX Alias PADY Alias PADx Node LPENX Alias LPENY Alias LPENx Node Printing Node HARDCOPY Alias LPRINT Alias LPOS Node Sound Generation Node SOUND Alias WAVE Node DMASOUND Alias DMACONTROL Node MW_OUT Node Chapter 7 - Program Structure Node Decision Commands Node IF Alias THEN Alias ELSE Alias ENDIF Alias IF-ENDIF Node ELSE IF Node Multiple Branching Node ON GOSUB Node SELECT Alias SWITCH Alias CASE Alias CONT Alias DEFAULT Alias ENDSELECT Alias ENDSWITCH Alias OTHERWISE Node Loops Node FOR Alias STEP Alias DOWNTO Alias NEXT Alias ENDFOR Node REPEAT Alias UNTIL Alias ENDREPEAT Node WHILE Alias WEND Alias ENDWHILE Node DO Alias LOOP Alias ENDDO Node DO WHILE Alias DO UNTIL Alias LOOP WHILE Alias LOOP UNTIL Node EXIT IF Node Procedures and Functions Node PROCEDURE Alias RETURN Alias GOSUB Alias @ Alias proc Alias ENDSUB Alias ENDPROC Node VAR Node LOCAL Node FUNCTION Alias ENDFUNC Alias RETURN x Node DEFFN Alias FN Alias @func Node Error Handling Node ON BREAK Alias ON BREAK CONT Alias ON BREAK GOSUB Alias Break Keys Node ON ERROR Alias ON ERROR GOSUB Alias RESUME Alias RESUME NEXT Alias RESUME label Node ERROR Alias ERR Alias ERR$ Alias FATAL Node Interrupt Programming Alias EVERY Alias AFTER Alias EVERY GOSUB Alias EVERY CONT Alias EVERY STOP Alias AFTER GOSUB Alias AFTER CONT Alias AFTER STOP Node Other Commands Node REM Alias ! Alias ' Alias / Alias // Alias /* Node GOTO Alias label: Alias : Node DELAY Alias PAUSE Node EDIT Alias END Alias STOP Node NEW Node LOAD Node SAVE Alias PSAVE Node LIST Alias LLIST Node CHAIN Node RUN Node QUIT Alias SYSTEM Node Program Tracing Node TRON Alias TROFF Alias TRON # Node TRACE$ Alias TRON proc Node DUMP Node Chapter 8 - Graphics Node Graphics Definition Commands Node SETCOLOR Alias VSETCOLOR Alias COLOR Node DEFMOUSE Node DEFMARK Node DEFFILL Node BOUNDARY Node DEFLINE Node DEFTEXT Node GRAPHMODE Node General Graphics Commands Node CLIP Alias CLIP OFF Alias CLIP OFFSET Alias OFFSET Node PLOT Alias LINE Alias DRAW Alias DRAW TO Node SETDRAW Alias DRAW() Node BOX Alias PBOX Alias RBOX Alias PRBOX Node CIRCLE Alias PCIRCLE Alias ELLIPSE Alias PELLIPSE Node POLYLINE Alias POLYMARK Alias POLYFILL Node POINT Node FILL Node CLS Node TEXT Node SPRITE Node CURVE Node Grabbing Sections of the Screen Node SGET Alias SPUT Node GET Alias PUT Node VSYNC Node BITBLT Node GETSIZE Node Chapter 9 - Event, Menu, and Window Management Alias Event Management Node ON MENU Node MENU() Node ON MENU BUTTON Node ON MENU KEY Node ON MENU IBOX Alias ON MENU OBOX Node ON MENU MESSAGE Node Pull-down Menus Node ON MENU GOSUB Alias MENU Alias MENU OFF Alias MENU KILL Node Window Commands Node OPENW Alias CLOSEW Node W_HAND Alias W_INDEX Node CLEARW Alias TITLEW Alias INFOW Alias TOPW Alias FULLW Node WINDTAB Node Other Window-related Commands Node RC_INTERSECT Node RC_COPY Node ALERT Node FILESELECT Node Chapter 10 - System Routines Alias System Routines Node BIOS, XBIOS, and GEMDOS Alias BIOS Alias XBIOS Alias GEMDOS Node W: Alias L: Node Line-A Calls Alias Line-A Alias Line-A calls Alias LINE-A Node ACLIP Node PSET Node PTST Node ALINE Node HLINE Node ARECT Node APOLY Node ACHAR Node ATEXT Node BITBLT adr% Alias BITBLT x%() Node L~A Node VDI Routines Alias VDI Node CONTRL Alias INTIN Alias INTOUT Alias PTSIN Alias PTSOUT Node VDISYS Node VDIBASE Node WORK_OUT Node Special VDI Routines and GDOS Alias VDI functions Node GDOS? Node V~H Node V_OPNWK Alias V_CLSWK Node V_OPNVWK Alias V_CLSVWK Node V_CLRWK Alias V_UPDWK Node VST_LOAD_FONTS Alias VST_UNLOAD_FONTS Node VQT_EXTENT Node VQT_NAME Node Non-BASIC Routine Calls Node C: Node MONITOR Node CALL Node RCALL Node EXEC Alias EXEC() Node Other System-related Commands Alias TT? Alias STE? Node Chapter 11 - AES Libraries Alias AES Alias GCONTRL Alias GINTIN Alias GINTOUT Alias ADDRIN Alias ADDROUT Alias GB Node GEMSYS Node Object Structure Alias OBJECT Alias OB_NEXT Alias OB_HEAD Alias OB_TAIL Alias OB_TYPE Alias OB_FLAGS Alias OB_STATE Alias OB_SPEC Alias OB_X Alias OB_Y Alias OB_W Alias OB_H Alias OB_ADR Node Text Data Structure (TEDINFO) Alias TEDINFO Node Icon Data Structure (ICONBLK) Alias ICONBLK Node Bit Image Block Structure (BITBLK) Alias BITBLK Node Application Block Structure (APPLBLK) Alias APPLBLK Node Parameter Block Structure (PARMBLK) Alias PARMBLK Node Color Icon Data Structure (CICONBLK) Alias CICONBLK Node Color Icon Structure (CICON) Alias CICON Node Switch Button Structure (SWINFO) Alias SWINFO Node Pupup Menu Structure (POPINFO) Alias POPINFO Node Application Services Library Node appl_control Node APPL_EXIT Node APPL_FIND Node appl_getinfo Node APPL_INIT Node APPL_READ Node appl_search Node APPL_TPLAY Alias APPL_TRECORD Node APPL_WRITE Node appl_yield Node _appl_yield Node Event Library Node EVNT_BUTTON Node EVNT_DCLICK Node EVNT_KEYBD Node EVNT_MESAG Node EVNT_MOUSE Node EVNT_MULTI Node EVNT_TIMER Node Menu Library Node menu_attach Node MENU_BAR Node MENU_ICHECK Node MENU_IENABLE Node menu_istart Node menu_popup Node MENU_REGISTER Node menu_settings Node MENU_TEXT Node MENU_TNORMAL Node Object Library Node OBJC_ADD Node OBJC_CHANGE Node OBJC_DELETE Node OBJC_DRAW Node OBJC_EDIT Node OBJC_FIND Node OBJC_OFFSET Node OBJC_ORDER Node objc_sysvar Node objc_xfind Node Form Library Node FORM_ALERT Node FORM_BUTTON Node FORM_CENTER Node FORM_DIAL Node FORM_DO Node FORM_ERROR Node FORM_KEYBD Node form_popup Node Graphics Library Node GRAF_DRAGBOX Node GRAF_GROWBOX Node GRAF_HANDLE Node GRAF_MKSTATE Node GRAF_MOUSE Node GRAF_MOVEBOX Node graf_multirubber Node GRAF_RUBBERBOX Node GRAF_SHRINKBOX Node GRAF_SLIDEBOX Node GRAF_WATCHBOX Node Scrap Library Node SCRP_READ Node SCRP_WRITE Node File Selector Library Node fsel_exinput Node FSEL_INPUT Node Window Library Node WIND_CALC Node WIND_CLOSE Node WIND_CREATE Node WIND_DELETE Node wind_draw Node WIND_FIND Node WIND_GET Node wind_new Node WIND_OPEN Node WIND_SET Node wind_sget Node WIND_UPDATE Node Resource Library Node RSRC_FREE Node RSRC_GADDR Node RSRC_LOAD Node RSRC_OBFIX Node rsrc_rcfix Node RSRC_SADDR Node Shell Library Node SHEL_ENVRN Node SHEL_FIND Node SHEL_GET Node shel_help Node SHEL_PUT Node SHEL_READ Node shel_rdef Node shel_wdef Node SHEL_WRITE Node Sample Programs Node GRAF_SMP.GFA Node DIAL_SMP.GFA Node MENU_SMP.GFA Node WIND_SMP.GFA Node FORM_ERROR() Comparision Table Node Chapter 12 - Appendix Alias Appendix Node Compatibility with GFA-BASIC 2 Node GEMDOS() Table Node BIOS() Table Node XBIOS() Table Node Line-A Variable Table Node V_OPNWK() and V_OPNVWK() Input Parameter Table Node VDI WORK_OUT() Array Table Node VT-52 Escape Code Table Alias VT-52 Node Scan Code Table Alias Scan Node ASCII Table Alias ASCII Node Special ASCII Characters Node Fill Pattern Table Node Line Style Table Node Error Codes Node Editor Error Messages Node Interpreter Error Codes Node BIOS Error Codes Node GEMDOS Error Codes Node Bomb Error Codes Node GFA-Basic Compiler/Linker Manual Node Author/Publisher Alias EULA Alias End-user License Agreement Node Introduction Alias Getting Started Node The Function of the Compiler Node Commands Not Accepted by the Compiler Node Interpreter - Compiler Differences Node Using the Menu Shell Program Node The File Menu Node The Options Menu Node The Sets Menu Alias G3LIB Alias G3OBJ Alias G3PRG Alias G3MOVE Alias G3WAIT Node The Shell-Listing Node Using with DOS Shells Node Program Return Value Node The Compiler Alias Array Index Checking Node Integer Overflow Node The Compiler Options Alias Overview of Compiler Options Node Integer Division Alias $%0 Alias $%3 Node Integer Multiplication Alias $*& Alias $*% Node Reserving Memory Space Alias $M Node Return Value of a Function Alias $F% Node RC_INTERSECT() Parameters Alias $RC& Alias $RC% Node Externally Linked Routines Alias $X Node Checking the BREAK keys, EVERY and AFTER Alias $U Alias $U+ Alias $U- Alias $Ux Node Interrupt Routines Alias $I+ Alias $I- Node SELECT-CASE Parameter Alias $S| Alias $S& Alias $S% Node SELECT-CASE Optimization Alias $S> Alias $S< Node Error Messages Alias $E$ Alias $E# Node Error Numbers Instead of Bombs Alias $B+ Node Subroutines Alias $P> Alias $P< Node ENDFUNC Generation Alias $F> Alias $F< Node Register Saving Alias $C+ Alias $C- Node FOR-NEXT Loop Checking Alias $N+ Alias $N- Node Integer Rounding Alias $%6 Node The Linker Alias The Linker Options Alias Overview of Linker Options Node Symbol Table Alias -s Node Library Selection Node Linking Object Files Node Do not Link TEST.O Node Run in TT Ram Alias -t Node Including C Functions Alias cdecl Node Linking C Functions without C Libraries Node Linking with C Libraries Node Some Peculiarities Node Linker Error Messages Node Programming Accessories Alias The Structure of Accessories Alias accessory Alias accessories Alias Desk Accessory Node Programming Example Node Longer Programming Examples Node Program Optimization Node Simple Additions Node Multiplication Node Division Node More Complicated Calculations Node Loop Commands Node Character Strings Node Local and Global Variables Node Technical Support Node Additional Information Node Index