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