{| align="Right" | __TOC__ |} [[QB64 FAQ|Go to Frequently Asked Questions about QB64]] [[Keyword Reference - Alphabetical|Go to Alphabetical keywords]] [[Keywords currently not supported by QB64]] [[Keywords currently not supported by QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Keywords Not Supported in Linux or MAC versions]] == [[Arrays]] and Data Storage == <center>'''Arrays'''</center> * [[_DEFINE]] (statement) {{text|defines a range of untyped variable names according to their first character as a datatype.}} * [[_PRESERVE]] ([[REDIM]] option) {{text|preserves the existing element values when an array is resized.}} * [[CLEAR]] (statement) {{text|resets all variable values and array element values to 0 or null [[STRING|strings]] and closes all open files.}} * [[DIM]] (statement) {{text|dimensions(sizes) a [[STATIC|static]] array and defines the type.}} * [[$DYNAMIC]] (metacommand) {{text|defines that all arrays are dynamic or changeable in size.}} * [[ERASE]] (array statement) {{text|clears a [[STATIC|static]] array of all values and totally removes a [[$DYNAMIC|dynamic]] array.}} * [[LBOUND]] (array function) {{text|returns the lowest valid index (lower boundary) of an [[arrays|array]].}} * [[OPTION BASE]] (statement) {{text|sets the default starting index of an array to 0 or 1.}} * [[REDIM]] (statement) {{text|re-dimensions the number of elements in a [[$DYNAMIC|dynamic]](resizeable) [[arrays|array]] and defines the type.}} * [[SHARED]] (statement) {{text|designates variable values that can be shared with sub-procedures without using parameters.}} * [[STATIC]] (statement) {{text|defines a variable or list of variables that will retain their values after the sub-procedure is exited.}} * [[$STATIC]] (metacommand) {{text|defines that all arrays are static or unchangeable in size.}} * [[SWAP]] (statement) {{text|trades the values of two numerical or string values or array elements.}} * [[UBOUND]] (array function) {{text|returns the highest valid index (upper boundary) of an [[arrays|array]].}} : See also: [[Arrays]] <center>'''Fixed Program DATA'''</center> * [[DATA]] (statement) {{text|creates a field of built-in program data values separated by commas.}} * [[READ]] (statement) {{text|reads the DATA from the data field sequentially.}} * [[RESTORE]] (statement) {{text|sets the data pointer to the start of all DATA or a specified DATA field.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == [[COLOR|Colors]] and Transparency == * [[_ALPHA]] (function) {{text|returns the alpha channel transparency level of a color value used on a screen page or image.}} * [[_ALPHA32]] (function) {{text|function returns the alpha channel level of a 32 bit color value only.}} * [[_BACKGROUNDCOLOR]] (function) {{text|returns the current background color.}} * [[_BLEND]] (statement) {{text|turns on alpha blending for the current image or a specific one.}} * [[_BLEND (function)]] {{text|returns if blending is enabled or disabled for the current window or a specified image handle.}} * [[_BLINK]] (statement) {{text|statement turns blinking colors on/off in SCREEN 0}} * [[_BLINK (function)]] {{text|returns -1 if enabled or 0 if disabled by [[_BLINK]] statement.}} * [[_BLUE]] (function) {{text|returns the palette intensity OR the blue component intensity of a 32-bit image color.}} * [[_BLUE32]] (function) {{text|returns the blue component intensity of a 32-bit image color.}} * [[_CLEARCOLOR]] (statement) {{text|sets a specific color to be treated as transparent in an image}} * [[_CLEARCOLOR (function)]] {{text|returns the current transparent color of an image.}} * [[_COPYPALETTE]] (statement) {{text|copies the color palette intensities from one image to another image or screen page.}} * [[_DEFAULTCOLOR]] (function) {{text|returns the current default text color for an image handle or page.}} * [[_DONTBLEND]] (statement) {{text|turns off alpha blending for an image handle.}} * [[_GREEN]] (function) {{text|returns the palette index OR the green component intensity of a 32-bit image.}} * [[_GREEN32]] (function) {{text|returns the green component intensity of a 32-bit image color.}} * [[_NEWIMAGE]] (function) {{text|prepares a custom sized program [[SCREEN]] or page surface that can use 256 or 32 bit colors.}} * [[_PALETTECOLOR]] (statement) {{text|sets the color value of a palette entry of an image using 256 color modes or less (4 or 8 BPP).}} * [[_PALETTECOLOR (function)]] {{text|returns the 32 bit attribute color setting of an image or screen page handle's palette.}} * [[_PIXELSIZE]] (function) {{text|returns the color depth (Bits Per Pixel) of an image.}} * [[_RED]] (function) {{text|returns the palette index OR the red component intensity of a 32-bit screen.}} * [[_RED32]] (function) {{text|returns the red component intensity of a 32-bit image color.}} * [[_RGB]] (function) {{text|returns the closest palette attribute index OR the [[LONG]] 32 bit color value in 32 bit screens.}} * [[_RGB32]] (function) {{text|returns the [[LONG]] 32 bit color value only.}} * [[_RGBA]] (function) {{text|returns the closest palette attribute index OR the [[LONG]] 32 bit color value in [[_ALPHA]] screens.}} * [[_RGBA32]] (function) {{text|returns the [[LONG]] 32 bit [[_ALPHA]] color value only.}} * [[_SETALPHA]] (statement) {{text|sets the alpha channel transparency level of some or all of the pixel colors of an image.}} * [[CLS]] (statement) {{text|clears the screen and can set the background color in QB64.}} * [[COLOR]] (statement) {{text|sets the current text color attribute or [[_RGB]] value to be used or background colors in some screen modes.}} * [[INP]] (function) {{text|returns the RGB color intensity values from color port register &H3C9 for a specific attributes.}} * [[OUT]] (statement) {{text|sets the color port access mode and sets the RGB color intensity values using &H3C9.}} * [[PALETTE]] (statement) {{text|sets the Red, Green and Blue color attribute intensities using a RGB multiplier calculation.}} * [[PALETTE USING]] (statement) {{text|sets the color intensity settings using a designated [[arrays|array]].}} * [[POINT]] (function) {{text|returns a pixel coordinate color attribute or the [[LONG]] [[_RGB]] color value of a 32 bit color.}} * [[PRESET]] (statement) {{text|sets a pixel coordinate to the background color or a color specified.}} * [[PSET]] (statement) {{text|sets a pixel coordinate a specified color or uses the current color when not designated.}} * [[SCREEN]] {{text|sets the screen mode of a program which may determine the number of colors available in legacy modes.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> ==[[Console Window]]== * [[$CONSOLE]] (QB64 [[Metacommand]]) {{text|creates a console window throughout the program.}} * [[_CONSOLE]] (statement) {{text|can be used to turn the console window OFF or ON or designate it as [[_DEST]] _CONSOLE for output.}} * [[_CONSOLETITLE]] (statement) {{Text|creates a title for the console window using a literal or variable [[STRING|string]].}} * [[$SCREENHIDE]] (QB64 [[Metacommand]]) {{text|hides the program window throughout the program until [[$SCREENSHOW]] is used.}} * [[_SCREENHIDE]] {{text|hides the main program window in a section of code until [[_SCREENSHOW]] is used.}} * [[$SCREENSHOW]] (QB64 [[Metacommand]]) {{text|displays the main program window throughout the program after [[$SCREENHIDE]] has been used.}} * [[_SCREENSHOW]] {{text|displays the main program window in a section of code after [[_SCREENHIDE]] has been used.}} * [[SHELL (function)|SHELL (QB64 function)]] {{text|executes a DOS command or calls another program. Returns codes sent by [[END]] or [[SYSTEM]].}} * [[_SHELLHIDE]] (function) {{text|hides a DOS command or call to another program. Returns codes sent by [[END]] or [[SYSTEM]].}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Conditional Operations == * [[AND (boolean)]] {{text|returns True if all of the arguments are True.}} * [[NOT]] (boolean) {{text|returns the opposite condition of an argument.}} * [[OR (boolean)]] {{text|returns True if one of the arguments is True.}} * [[XOR (boolean)]] {{text|returns True if only one of two arguments are True.}} {{Template:RelationalOperationsTable}} <center>See also: [[#Logical Bitwise Operations|Logical Operations]] and [[Relational Operations]]</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Definitions and Variable Types == * [[_BIT]] {` numerical [[TYPE|type]]) {{text|values of 0 (bit off) or -1 (bit on). [[_UNSIGNED|Unsigned]] of 0 or 1.}} * [[_BYTE]] {%% numerical [[TYPE|type]]) {{text|values from -128 to 127 (one byte or 8 [[_BIT]]s). [[_UNSIGNED|Unsigned]] from 0 to 255.}} * [[_DEFINE]] (statement) {{text|defines a range of untyped variable names according to their first character as a datatype.}} * [[_FLOAT]] {## numerical [[TYPE|type]]) {{text|values offer the maximum floating-point decimal precision available using QB64.}} * [[_INTEGER64]] (&& numerical [[TYPE|type]]) {{text|values -9223372036854775808 to 9223372036854775807. [[_UNSIGNED|Unsigned]] to 18446744073709551615.}} * [[_MEM]] (variable type) {{text|contains read only dot elements for the OFFSET, SIZE, TYPE and ELEMENTSIZE of a block of memory.}} * [[_OFFSET]](%& variable type) {{text|can store any memory offset integer value when using [[DECLARE LIBRARY]] or [[_MEM]]ory only.}} * [[_UNSIGNED]] {~ numerical [[TYPE|type]]) {{text|defines an integer numerical value as being positive only in QB64.}} * [[COMMON]] (statement) {{text|shares common variable values with other Linked or [[CHAIN]]ed programs.}} * [[COMMON SHARED]] (statement) {{text|shares common variable values with all sub-procedures and other Linked or CHAINed programs.}} * [[CONST]] (statement) {{text|defines one or more named numeric or string shared values which can not change in a program.}} * [[DEFDBL]] (statement) {{text|defines undefined variable starting letters AS [[DOUBLE]] variables instead of the [[SINGLE]] type default.}} * [[DEFINT]] (statement) {{text|defines undefined variable starting letters AS [[INTEGER]] variables instead of the [[SINGLE]] type default.}} * [[DEFLNG]] (statement) {{text|defines undefined variable starting letters AS [[LONG]] variables instead of the [[SINGLE]] type default.}}}} * [[DEFSNG]] (statement) {{text|defines undefined variable starting letters AS [[SINGLE]] variables instead of the [[SINGLE]] type default.}} * [[DEFSTR]] (statement) {{text|defines undefined variable starting letters AS [[STRING]] variables instead of the [[SINGLE]] type default.}} * [[DIM]] {{text|defines a variable or size a [[$STATIC|static]] array and can define the type of value it returns.}} * [[DOUBLE]] {# numerical [[TYPE|type]]) {{text|an 8 byte floating decimal variable type with numerical values up to 15 decimal places.}} * [[INTEGER]] {% numerical [[TYPE|type]]) {{text|a two byte variable type with values from -32768 to 32767. [[_UNSIGNED|Unsigned]] to 65535.}} * [[LONG]] {& numerical [[TYPE|type]]) {{text|Integer values can be from -2147483648 to 2147483647. [[_UNSIGNED]] values to 4294967295.}} * [[OPTION BASE]] (statement) {{text|sets the default starting index of an [[arrays|array]] to 0 or 1.}} * [[REDIM]] {{text|defines and sizes a [[$DYNAMIC|dynamic]](changeable) array and can define the type of value returned.}} * [[SHARED]] (statement) {{text|designates variable values that can be shared with sub-procedures without using [[SUB]] parameters.}} * [[SINGLE]] (! numerical [[TYPE|type]]) {{text|a 4 byte floating decimal variable type with numerical values up to 7 decimal places.}} * [[STATIC]] (statement) {{text|defines a variable or list of variables that will retain their values after the sub-procedure is exited.}} * [[STRING]] ($ variable type) {{text|one byte text variable with [[ASCII]] code values from 0 to 255.}} * [[TYPE]] (statement) {{text|defines variable types that can hold more than one variable type value of a fixed byte length.}} <center>See also: [[Variable Types|QB64 Variable Types]] and [[Libraries#C.2B.2B_Variable_Types|C++ Variable Types]]</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == External Disk and API calls == * [[_ACCEPTFILEDROP]] (statement) {{text|turns a program window into a valid drop destination for dragging files from Windows Explorer.}} * [[_DEVICE$]] (function) {{text|returns a [[STRING]] expression listing device names and input types of system input devices.}} * [[_DEVICES]] (function) {{text|returns the number of input devices found on a computer system.}} * [[_DIREXISTS]] (function) {{text|returns -1 if the directory folder name [[STRING|string]] parameter exists. Zero if it does not.}} * [[_DROPPEDFILE]] (function) {{text| returns the list of items (files or folders) dropped in a program's window after [[_ACCEPTFILEDROP]] is enabled.}} * [[_CLIPBOARD$ (statement)]] {{text|sends [[STRING]] data to the Clipboard.}} * [[_CLIPBOARD$]] (function) {{text|returns the current contents of the Clipboard as a [[STRING|string]].}} * [[_CLIPBOARDIMAGE (function)]] {{text|pastes an image from the clipboard into a new QB64 image in memory.}} * [[_CLIPBOARDIMAGE]] (statement) {{text|copies a valid QB64 image to the clipboard.}} * [[_CWD$]] (function) {{text|returns the current working directory path as a [[STRING]].}} * [[_DONTWAIT]] (SHELL action) {{text|allows the program to continue without waiting for the other program to close.}} * [[_FILEEXISTS]] (function) {{text|returns -1 if the file name [[STRING|string]] parameter exists. Zero if it does not.}} * [[_FINISHDROP]] (statement) {{text| resets [[_TOTALDROPPEDFILES]] and clears the [[_DROPPEDFILE]] list of items (files/folders).}} * [[_HIDE]] (SHELL action) {{text|hides the DOS screen output during a shell.}} * [[_LASTBUTTON]] (function) {{text|returns the number of buttons available on a specified number device listed by [[DEVICE$]].}} * [[_OS$]] (function) {{text| returns the QB64 compiler version in which the program was compiled as [WINDOWS], [LINUX] or [MACOSX] and [32BIT] or [64BIT].}} * [[_SCREENCLICK]] {{text|simulates clicking the mouse at a position on the screen to get focus.}} * [[_SCREENIMAGE]] {{text|captures the current desktop screen image.}} * [[_SCREENPRINT]] {{text|simulates keyboard entries on the desktop.}} * [[_SHELLHIDE]] (function) {{text|executes a DOS command or calls another program. Returns codes sent by [[END]] or [[SYSTEM]].}} * [[_STARTDIR$]] (function) {{text|returns the user's program calling path as a [[STRING]].}} * [[_TOTALDROPPEDFILES]] (function) {{text| returns the number of items (files or folders) dropped in a program's window after [[_ACCEPTFILEDROP]] is enabled.}} * [[CHDIR]] (statement) {{text|changes the program path to a new path.}} * [[COMMAND$]] (function) {{text|returns command line parameters sent when a program is started.}} * [[ENVIRON]] (statement) {{text|temporarily sets an environmental key/pair value.}} * [[ENVIRON$]] (function) {{text|returns the environmental settings of the computer.}} * [[FILES]] (statement) {{text|displays a specified list of files.}} * [[MKDIR]] (statement) {{text|creates a new directory folder in the designated path.}} * [[NAME]] (statement) {{text|renames a file.}} * [[RMDIR]] (statement) {{text|removes an empty directory folder from the specified path.}} * [[SHELL]] (statement) {{text|performs a command line operation in DOS.}} * [[SHELL (function)|SHELL (QB64 function)]] {{text|executes a DOS command or calls another program. Returns codes sent by [[END]] or [[SYSTEM]].}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Error Codes == The following table describes the error codes that are reported by the '''QB64''' compiler, as well as possible causes and solutions: {| border="1" cellpadding="2" |- ! colspan="6"|QB/64 Error Codes |- ! Code || Description || Common cause/Resolution || QB64 Differences |- | 1 || [[NEXT]] without [[FOR]] || Missing loop end or look for a missing [[END IF]] or [[END SELECT]] statement. || none |- | 2 || Syntax error || Mistyped keyword statements or puctuation errors can create syntax errors. || none |- | 3 || [[RETURN]] without [[GOSUB]] || Place sub-procedure line label after program [[END]] or [[EXIT]] in a [[SUB]]-procedure.|| none |- | 4 || Out of DATA || A [[READ]] has read past the end of [[DATA]]. Use [[RESTORE]] to reset to data start. . || none |- | 5 || Illegal function call || A parameter passed does not match the function type or exceeds certain function limitations. See [[Illegal Function]]. || none |- | 6 || Overflow || A numerical value has exceeded the limitations of a [[Variable Types|variable type]]. || none |- | 7 || Out of memory || A module has exceeded the 64K memory limitation of QB. Try breaking the code up to smaller modules.|| no limit |- | 8 || Label not defined || [[GOTO]] or [[GOSUB]] tries to branch to a label that doesn't exist. || none |- | 9 || Subscript out of range || An [[Arrays|array's]] [[UBOUND|upper]] or [[LBOUND|lower]] [[DIM|dimensioned]] boundary has been exceeded. || none |- | 10 || Duplicate definition || You can't define a variable twice with [[DIM]], the first time a variable is used it is also defined. || none |- | 11 || Division by zero || You cannot divide any value by zero! Even using [[MOD]]. || none |- | 12 || Illegal in direct mode || A statement (like [[DIM]]) in the Immediate window wasn't allowed. || N/A |- | 13 || Type mismatch || A [[SUB]] or [[FUNCTION]] parameter does not match the procedure Declaration. || none |- | 14 || Out of [[STRING|string]] space || A module has exceeded the 32767 text character limit. Use SUB print procedures. || no limit. |- | 16 || String formula too complex. || A string formula was too long or [[INPUT]] statement requested more than 15 strings || N/A |- | 17 || Cannot continue. || The program while debugging has changed in a way that it cannot continue. || no debug |- | 18 || Function not defined. || The function used by the program must be defined. Did you include the .bi file while using a library? || none |- | 19 || No [[RESUME]]. || Use [[RESUME]] at the end of the [[ON ERROR]] [[GOTO]] routine, not [[RETURN]]. || none |- | 20 || RESUME without error. || [[RESUME]] can only be used in an error handler called by [[ON ERROR]] [[GOTO]]. || none |- | 24 || Device timeout. || Use DS0 (DSzero)in the [[OPEN COM]] statement to avoid modem timeouts. || none |- | 25 || Device fault. || Device not connected or does not exist. || none |- | 26 || [[FOR]] without [[NEXT]]. || Missing loop end or look for a missing [[END IF]] or [[END SELECT]] statement. || none |- | 27 || Out of paper || A printer paper error when using [[LPRINT]]. || none |- | 29 || [[WHILE]] without [[WEND]]. || [[WEND]] must end a [[WHILE]] loop. Otherwise look for missing [[END IF]] or [[END SELECT]] || none |- | 30 || [[WEND]] without [[WHILE]] || Missing loop end or look for a missing [[END IF]] or [[END SELECT]] statement. || none |- | 33 || Duplicate label || Line numbers or labels cannot be used twice in a procedure. || none |- | 35 || Subprogram not defined. || Often occurs when the Quickbasic Library is not used with [[CALL ABSOLUTE]] or [[INTERRUPT]] or a [[SUB]] or [[FUNCTION]] procedure has not been created for a [[CALL]]. || none |- | 37 || Argument-count mismatch || The number of sub-procedure [[parameters]] do not match the call. || none |- | 38 || Array not defined || [[Arrays]] using more than 10 elements must be [[DIM|DIMensioned]]. || none |- | 40 || Variable required. || [[LEN]] cannot read literal numerical values. A [[GET]] or [[PUT]] statement must specify a variable when reading or writing a file opened in [[BINARY]] mode. || none |- | 50 || [[FIELD]] overflow. || A [[FIELD]] statement tried to allocate more bytes than were specified for the record length of a random access file. || none |- | 51 || Internal error. || An internal malfunction occured in QuickBASIC or QB64. || none |- | 52 || Bad file name or number. || The filename must follow the rules for filenames in the OS and use filenumbers from 1 and 255. Use [[FREEFILE]] to avoid duplicate [[OPEN]] file numbers. || none |- | 53 || File not found. || File not in current directory or path. Use [[_FILEEXISTS]] to verify file names. || none |- | 54 || Bad file mode. || File access mode does not match a current [[OPEN]] file procedure. || none |- | 55 || File already open. || [[CLOSE]] a file to open it in a different mode. || none |- | 56 || FIELD statement active. || '''WRITEME''' || N/A |- | 57 || Device I/O error. || '''WRITEME''' || N/A |- | 58 || File already exists. || The filename specified in the [[NAME]] statement was identical to a file that already exists. || none |- | 59 || Bad record length. || Record length exceeds 32767 bytes or is 0 || none |- | 61 || Disk full. || The amount of data to write to the disk was more than the free space available, remove some files you don't need and try again. || none |- | 62 || Input past end of file. || Check for the end of file with [[EOF]] when reading from a file. || none |- | 63 || Bad record number. || [[GET]] read exceeds number of records in a [[RANDOM]] file. || none |- | 64 || Bad file name || File name contains illegal characters or exceeds 12 characters. || none |- | 67 || Too many files || Over 15 files are open in Qbasic. || none |- | 68 || Device unavailable. || Device does not exist, busy or not connected. || none |- | 69 || Communication-buffer overflow. || '''WRITEME''' || N/A |- | 70 || Permission denied || A file or port is in use on a network, blocked, read only or locked. || none |- | 71 || Disk not ready. || Disk is busy or has no media. || none |- | 72 || Disk-media error. || Improper media format or bad data. || none |- | 73 || Feature unavailable. || Based on the DOS version available. || none |- | 74 || Rename across disks. || '''WRITEME''' || N/A |- | 75 || Path/File access error. || File or path cannot be accessed. || none |- | 76 || Path not found. || Path is not access-able or does not exist. Use [[_DIREXISTS]] to check paths.|| none |- | 97 || (no error message) || Can be used to trigger an error trap event with [[ERROR]] 97, nothing else will cause this error, so create your own errors for [[ON ERROR]]. || none |- |} <center>'''N/A means Not Available or Not Applicable to QB64.'''</center> {| border="1" cellpadding="2" ! colspan="6"|QB64 Error Codes |- ! Code || Description || Common cause/resolution || QB Differences |- | 258 || Invalid handle || Zero or bad handle values cannot be used by the QB64 procedure creating the error. || N/A |} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Error Trapping == * [[_ASSERT]] (statement) {{text|Performs debug tests.}} * [[$ASSERTS]] (metacommand) {{text|Enables the [[_ASSERT]] macro}}* [[$CHECKING]] ([[Metacommand]]) {{text|turns off or on error event checking and strips error code from compiled programs.}} * [[_ERRORLINE]] (function) {{text|returns the actual text code line where a program error occurred.}} * [[ERR]] (function) {{text|returns the error code number of the last error to occur.}} * [[ERROR]] (statement) {{text|simulates a program error based on the error code number used.}} * [[ERL]] (function) {{text|returns the closest line number before an error occurred if the program uses them.}} * [[ON ERROR]] (statement) [[GOTO]] {{text|sends the program to a line number or label when an error occurs. Use to avoid program errors.}} * [[RESUME]] (statement) {{text|error statement sends the program to the [[NEXT]] code line or a designated line number or label .}} <center>See the [[ERROR Codes|Error Code Table]] reference.</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Event Trapping == * [[_AUTODISPLAY]] (statement) {{text|enables the automatic display of the screen image changes previously disabled by [[_DISPLAY]].}} * [[_DELAY]] (statement) {{text|suspends program execution for a [[SINGLE]] value of seconds down to milliseconds.}} * [[_DISPLAY]] (statement) {{text|turns off automatic display while only displaying the screen changes when called.}} *[[_EXIT (function)]] {{text|prevents a user exit and indicates if a user has clicked the close X window button or CTRL + BREAK.}} *[[_FREETIMER]] (function) {{text|returns a free TIMER number for multiple [[ON TIMER(n)]] events.}} * [[_MOUSEINPUT]] (function) {{text|reports any changes to the mouse status and MUST be used to read those changes.}} * [[_SHELLHIDE]] (function) {{text|returns the code sent by a program exit using [[END]] or [[SYSTEM]] followed by an [[INTEGER]] value.}} * [[OFF]] {{text|turns event checking off and does not remember subsequent events.}} * [[ON]] {{text|turns event checking on.}} * [[ON ERROR]] [[GOTO]] (event statement) {{text|executes when a program error occurs}} * [[ON KEY(n)]] (event statement) {{text|executes when a keypress or keypress combination occurs.}} * [[ON TIMER(n)]] (event statement) {{text|executes when a timed event occurs. QB64 can use multiple numbered timers.}} * [[ON...GOSUB]] (event statement) {{text|branches to a line number or label according to a numerical ordered list of labels.}} * [[ON...GOTO]] (event statement) {{text|branches to a line number or label according to a numerical ordered list of labels.}} * [[STOP]] {{text|suspends event checking and remembers subsequent events that are executed when events are turned back on.}} * [[TIMER]] (function) {{text|returns the number of seconds past the previous midnite down to a QB64 accuracy of one millisecond.}} * [[TIMER (statement)]] {{text|enables, turns off or stops timer event trapping. In QB64 TIMER(n) FREE can free multiple timers. }} * [[WAIT]] (statement) {{text|normally used to delay program display execution during or after vertical retrace periods.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == File Input and Output == * [[_DIREXISTS]] (function) {{text|returns -1 if the directory folder name [[STRING|string]] parameter exists. Zero if it does not.}} * [[_FILEEXISTS]] (function) {{text|returns -1 if the file name [[STRING|string]] parameter exists. Zero if it does not.}} * [[ACCESS]] (clause) {{text|used in a networking [[OPEN]] statement to allow READ or WRITE access to files.}} * [[APPEND]] (file mode) {{text|opens or creates a file that can be appended with data at the end.}} * [[BINARY]] (file mode) {{text|opens or creates a file that can be byte accessed using both [[GET]] and [[PUT]].}} * [[BLOAD]] (statement) {{text|opens a binary file and loads the contents to a specific array.}} * [[BSAVE]] (statement) {{text|creates a binary file that holds the contents of a specified array.}} * [[CHDIR]] (statement) {{text|changes the program path to a new path.}} * [[CLOSE]] (statement) {{text|closes a specified file or all open files.}} * [[EOF]] (file function) {{text|returns -1 when the end of a file has been read.}} * [[FIELD]] (statement) {{text|creates a [[STRING]] type definition for a random-access file buffer.}} * [[FILEATTR]] (function) {{text|can return a file's current file mode or DOS handle number.}} * [[FILES]] (statement) {{text|displays a specified list of files.}} * [[FREEFILE]] (file function) {{text|returns a file access number that is currently not in use.}} * [[GET]] (file I/O statement) {{text|reads file data by byte or record positions.}} * [[INPUT (file mode)]] {{text|only [[OPEN]]s existing sequential files for program INPUT.}} * [[INPUT (file statement)]] {{text|reads sequential file data that was created using PRINT # or WRITE #. }} * [[INPUT$]] (function) {{text|reads a specific number of bytes from random or binary files.}} * [[KILL]] (statement) {{text|deletes a specified file without asking for verification. Remove empty folders with [[RMDIR]].}} * [[LINE INPUT (file statement)]] {{text|reads an entire text row of printed sequential file data.}} * [[LOC]] (function) {{text|finds the current file location or size of a [[COM]] port receive buffer.}} * [[LOCK]] (statement) {{text|prevents access to a file.}} * [[LOF]] (file function) {{text|returns the size of a file in bytes.}} * [[MKDIR]] (statement) {{text|creates a new folder in the designated path.}} * [[NAME]] (statement) {{text|renames a file [[AS]] a new file name.}} * [[OPEN]] (file I/O statement) {{text|opens a specified file FOR an access mode with a set reference number.}} * [[OUTPUT]] (file mode) {{text|opens or creates a new file that holds no data.}} * [[PRINT (file statement)]] {{text|writes text and numerical data into a file.}} * [[PRINT USING (file statement)]] {{text|writes template formatted text into a file.}} * [[PUT]] (file I/O statement) {{text|writes data into a [[RANDOM]] or [[BINARY]] file by byte or record position.}} * [[RANDOM]] (file mode) {{text|opens or creates a file that can be accessed using both [[GET]] and [[PUT]].}} * [[RESET]] (statement) {{text|closes all files and writes the directory information to a diskette.}} * [[RMDIR]] (statement) {{text|removes an empty folder from the specified path.}} * [[SEEK]] (function) {{text|returns the current read or write byte position in a file.}} * [[SEEK (statement)]] {{text|sets the current read or write byte position in a file.}} * [[UNLOCK]] (statement) {{text|unlocks access to a file.}} * [[WIDTH]] (statement) {{text|sets the text width of a file.}} * [[WRITE (file statement)]] {{text|writes numerical and string data to a sequential file using comma separators.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Fonts == * [[_FONT (function)]] {{text|creates a new alphablended font handle from a designated image handle}} * [[_FONT]] (statement) {{text|sets the current [[_LOADFONT]] function font handle to be used by [[PRINT]] or [[_PRINTSTRING]].}} * [[_FONTHEIGHT]] (function) {{text|returns the font height of a font handle created by [[_LOADFONT]].}} * [[_FONTWIDTH]] (function) {{text|returns the font width of a MONOSPACE font handle created by [[_LOADFONT]].}} * [[_FREEFONT]] (statement) {{text|frees a font handle value from memory}} * [[_LOADFONT]] (function) {{text|loads a TrueType font (.TTF) file of a specific size and style and returns a font handle value.}} * [[_MAPUNICODE]] (statement) {{text|maps a [[Unicode]] value to an [[ASCII]] character code value.}} * [[_PRINTMODE (function)]] {{text|returns the present _PRINTMODE status as a numerical value.}} * [[_PRINTMODE]] (statement) {{text|sets the text or [[_FONT]] printing mode on a background image when using [[PRINT]] or [[_PRINTSTRING]].}} :*_KEEPBACKGROUND {{text|(1): Text background transparent. Only the text is displayed over anything behind it.}} :*_ONLYBACKGROUND {{text|(2): Text background is only displayed. Text is transparent to anything behind it.}} :*_FILLBACKGROUND {{text|(3): Text and background block anything behind them like a normal [[PRINT]]. Default setting.}} * [[_PRINTSTRING]] (statement) {{text|prints text or custom font strings using graphic column and row coordinate positions.}} * [[_PRINTWIDTH]] (function) {{text|returns the width in pixels of the [[_FONT]] or text [[STRING|string]] that a program will print.}} * [[PRINT]] (statement) {{text|prints numeric or [[STRING|string]] expressions to the program screen.}} * [[PRINT USING]] (statement) {{text|prints template formatted numeric or string values to the program screen.}} * [[WRITE]] (screen I/O statement) {{text|writes a comma-separated list of values to the screen.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Game Controller Input (Joystick) == * [[_AXIS]] (function) {{text|returns a [[SINGLE]] value between -1 and 1 indicating the maximum distance from device axis center 0.}} * [[_BUTTON]] (function) {{text|returns -1 when a device button is pressed and 0 when button is released.}} * [[_BUTTONCHANGE]] (function) {{text|returns -1 when a device button has been pressed and 1 when released. Zero indicates no change.}} * [[_DEVICE$]] (function) {{text|returns a [[STRING]] expression listing a designated numbered input device name and types of input.}} * [[_DEVICEINPUT]] (function) {{text|returns the [[_DEVICES]] number of an [[_AXIS]], [[_BUTTON]] or [[_WHEEL]] event.}} * [[_DEVICES]] (function) {{text|returns the number of input devices found on a computer system including the keyboard and mouse.}} * [[_LASTAXIS]] (function) {{text|returns the number of axis available on a specified number device listed by [[_DEVICE$]].}} * [[_LASTBUTTON]] (function) {{text|returns the number of buttons available on a specified number device listed by [[DEVICE$]].}} * [[_LASTWHEEL]] (function) {{text|returns the number of scroll wheels available on a specified number device listed by [[_DEVICE$]].}} * [[_MOUSEMOVEMENTX]] (function) {{text|returns the relative horizontal position of the mouse cursor compared to the previous position.}} * [[_MOUSEMOVEMENTY]] (function) {{text|returns the relative vertical position of the mouse cursor compared to the previous position.}} * [[_WHEEL]] (function) {{text|returns -1 when a device wheel is scrolled up and 1 when scrolled down. Zero indicates no activity.}} * [[ON STRIG(n)]] (event statement) {{text|directs program flow upon a button press event of a game controller device.}} * [[STICK]] (function) {{text|returns the directional axis coordinate values from 1 to 254 of game port (&H201) or USB controller devices.}} * [[STRIG]] (function) {{text|returns the True or False button press status of game port (&H201) or USB controller devices.}} * [[STRIG(n)]] (statement) {{text|enables, suspends or disables event trapping of STRIG button return values.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Graphic Commands == * [[_COPYIMAGE]] (function) {{text|can copy a software surface to a hardware accelerated surface handle using mode 33.}} * [[_DISPLAY]] (statement) {{text|renders surfaces visible in the [[_DISPLAYORDER]] previously set in the QB64 program.}} * [[_DISPLAYORDER]] {{text|sets the rendering order of _SOFTWARE, _HARDWARE and _GLRENDER with [[_DISPLAY]].}} * [[_LOADIMAGE]] (function) {{text|can load images as hardware accelerated using mode 33.}} * [[_MOUSESHOW]] (statement) {{text|a special string parameter after command in GL allows some special cursor shapes.}} * [[_PUTIMAGE]] (statement) {{text|can place GL surfaces and allows the _SMOOTH action to blend stretched surfaces.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Graphics and Imaging: == * [[_AUTODISPLAY]] (statement) {{text|enables the automatic display of the screen image changes previously disabled by [[_DISPLAY]].}} * [[_CLIP]] ([[PUT (graphics statement)|PUT]] action) {{text|allows placement of an image partially off of the screen.}} * [[_COPYIMAGE]] (function) {{text|function duplicates an image handle from a designated handle.}} * [[_COPYPALETTE]] (statement) {{text|copies the color palette intensities from one image to another image or screen page.}} * [[_DEST]] (statement) {{text|sets the current write image or page. All graphics will go to this image.}} * [[_DEST (function)]] {{text|returns the current write destination image or page.}} * [[_DISPLAY]] (statement) {{text|turns off automatic display while only displaying the screen changes when called.}} * [[_DISPLAY (function)]] {{text|returns the handle of the current image that is displayed on the screen.}} * [[_FULLSCREEN (function)]] {{text|returns the present full screen mode setting of the screen window.}} * [[_FULLSCREEN]] (statement) {{text|sets the full screen mode of the screen window. Alt + Enter can do it manually.}} * [[_FREEIMAGE]] (statement) {{text|releases an image handle value from memory when no longer needed.}} * [[_HEIGHT]] (function) {{text|returns the height of an image handle or current write page.}} * [[_ICON]] (function) {{text|places an image in the title bar using a [[_LOADIMAGE]] handle.}} * [[_LOADIMAGE]] (function) {{text|loads a graphic file image into memory and returns an image handle.}} * [[_MAPTRIANGLE]] (statement) {{text|maps a triangular portion of an image to a destination image or screen page.}} * [[_NEWIMAGE]] (function) {{text|prepares a window image or page surface and returns the handle value.}} * [[_PIXELSIZE]] (function) {{text|returns the color depth (Bits Per Pixel) of an image.}} * [[_PRINTSTRING]] (statement) {{text|prints text or custom font strings using graphic column and row coordinate positions.}} * [[_PUTIMAGE]] (statement) {{text|maps a rectangular area of a source image to an area of a destination image in one operation}} * [[_SCREENIMAGE]] (function) {{text|creates an image of the current desktop and returns an image handle.}} * [[_SOURCE]] (statement) {{text|establishes the image SOURCE using a designated image handle}} * [[_SOURCE (function)]] {{text|returns the present image _SOURCE handle value.}} * [[_WIDTH (function)]] {{text|returns the width of an image handle or current write page.}} * [[CIRCLE]] (statement) {{text|is used in graphics SCREEN modes to create circles, arcs or ellipses.}} * [[CLS]] (statement) {{text|clears a screen page or the program [[SCREEN]]. QB64 can clear with a color.}} * [[COLOR]] (statement) {{text|sets the current text color attribute or [[_RGB]] value to be used or background colors in some screen modes.}} * [[DRAW]] (statement) {{text|uses a special type of [[STRING|string]] expression to draw lines on the screen.}} * [[GET (graphics statement)]] {{text|used to store a box area image of the screen into an [[INTEGER]] array.}} * [[LINE]] (statement) {{text|used in graphic [[SCREEN]] modes to create lines or boxes.}} * [[PAINT]] (statement) {{text|used to color enclosed graphic objects with a designated fill color and border color.}} * [[PALETTE]] (statement) {{text|can swap color settings, set colors to default or set the Red, Green, Blue color palette.}} * [[PALETTE USING]] (statement) {{text|sets all RGB screen color intensities using values from an array.}} * [[PCOPY]] (statement) {{text|copies one source screen page to a destination page in memory.}} * [[PMAP]] (function) {{text|returns the physical or [[WINDOW]] view coordinates.}} * [[POINT]] (function) {{text|returns the pixel [[COLOR]] attribute or [[_RGB]] value at a specified graphics coordinate.}} * [[PRESET]] (statement) {{text|sets a pixel coordinate to the background color or a designated color.}} * [[PSET]] (statement) {{text|sets a pixel coordinate to the default color or designated color attribute.}} * [[PUT (graphics statement)]] {{text|statement is used to place [[GET (graphics statement)|GET]] saved or [[BSAVE]]d images stored in an array.}} * [[SCREEN]] {{text|sets the screen mode of a program. No statement defaults the program to SCREEN 0 text only mode.}} * [[STEP]] (relational statement) {{text|is used to step through FOR loop values or use relative graphical coordinates.}} * [[VIEW]] (graphics statement) {{text|creates a graphics view port area by defining the coordinate limits to be viewed.}} * [[WINDOW]] (statement) {{text|defines the coordinate dimensions of the current graphics viewport.}} <center>'''See also: [[Bitmaps]], [[Icons and Cursors]], [[SAVEIMAGE]], [[GIF Images]]'''</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Keyboard Input == * [[_CONTROLCHR]] (statement) {{text|[[OFF]] allows the control characters to be used as text characters. [[ON]](default) can use them as commands.}} * [[_CONTROLCHR (function)]] {{text| returns the current state of _CONTROLCHR as 1 when OFF and 0 when ON.}} * [[_EXIT (function)]] {{text|prevents a program user exit and indicates if a user has clicked the close X window button or CTRL + BREAK.}} * [[_KEYDOWN]] (function) {{text|returns whether modifying keys like CTRL, ALT, SHIFT, and any other keys are pressed.}} * [[_KEYHIT]] (function) {{text|returns ASCII one and two byte, SDL Virtual Key and Unicode keyboard key press codes.}} * [[_SCREENPRINT]] (statement) {{text|simulates typing text into another OS program using the keyboard.}} * [[INKEY$]] (function) {{text|returns the [[ASCII]] [[STRING|string]] character of a keypress.}} * [[INPUT]] (statement) {{text|requests a [[STRING]] or numerical keyboard entry from a program user.}} * [[INPUT$]] (function) {{text|used to get a set number of keypress characters or bytes from a file.}} * [[INP]] (function) {{text|returns a scan code value from keyboard register &H60(96) to determine key presses.}} * [[KEY n]] (event statement) {{text|is used to assign a "softkey" string to a key and/or display them.}} * [[KEY(n)]] (event statement) {{text|assigns, enables, disables or suspends event trapping of a keypress.}} * [[KEY LIST]] (statement) {{text|lists the 12 Function key soft key string assignments going down left side of screen.}} * [[LINE INPUT]] (statement) {{text|requests a [[STRING]] keyboard entry from a program user.}} * [[ON KEY(n)]] (event statement) {{text|defines a line number or label to go to when a specified key is pressed.}} * [[SLEEP]] (statement) {{text|pauses the program for a specified number of seconds or a until a key press.}} <center>See also: [[Keyboard scancodes]], [[ASCII|ASCII Codes]] references or [[Windows_Libraries#Hot_Keys_.28maximize.29|Hot Keys for Windows]].</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == [[Libraries]] == * [[_OFFSET (function)]] {{text|returns the memory offset of a variable when used with [[DECLARE DYNAMIC LIBRARY]] only.}} * [[_OFFSET]](variable type) {{text|can be used store the value of an offset in memory when using [[DECLARE DYNAMIC LIBRARY]] only.}} * [[ALIAS]] (statement) {{text|tells the program that you will use a different name than the name used in the Library file.}} * [[BYVAL]] (statement) {{text|used to pass a parameter's value with sub-procedures from a Library.}} * [[DECLARE LIBRARY]] {{text|allows the use of OS specific, SDL or C++ external library [[SUB]] and [[FUNCTION]] procedures}} * [[DECLARE DYNAMIC LIBRARY]] {{text|declares DYNAMIC, CUSTOMTYPE or STATIC library(DLL) [[SUB]]s or [[FUNCTION]]s.}} * [[DECLARE LIBRARY| END DECLARE]] {{text|required at the END of the block of Library declarations in QB64.}} <center>'''QB64 also supports [[$INCLUDE]] text code file Libraries. QB64 does not support QLB Libraries or OBJ files.'''</center> <center>See also: [[Libraries#C++_Variable_Types|C++ Variable Types]]</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Logical Bitwise Operations == * [[AND]] (operator) {{text|the bit is set when both bits are set.}} * [[EQV]] (operator) {{text|the bit is set when both are set or both are not set.}} * [[IMP]] (operator) {{text|the bit is set when both are set or both are unset or the second condition bit is set.}} * [[OR]] (operator) {{text|the bit is set when either bit is set.}} * [[NOT]] (operator) {{text|the bit is set when a bit is not set and not set when a bit is set.}} * [[XOR]] (operator) {{text|the bit is set when just one of the bits are set.}} {{Template:LogicalTruthTable}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Mathematical Functions and Operations == * [[_ROUND]] (function) {{text|rounds to the closest EVEN [[INTEGER]], [[LONG]] or [[_INTEGER64]] numerical value.}} * [[+|+ addition operation]] * [[-|- subtraction or negation operation]] * [[*|* multiplication operation]] * [[/|/ decimal point division operation]] * [[\|\ integer division operation]] * [[^|^ exponential operation]] * [[MOD|MOD integer remainder operation]] * [[ABS]] (function) {{text|returns the the positive value of a variable or literal numerical value.}} * [[ATN]] (function) {{text|or arctangent returns the angle in radians of a numerical [[TAN|tangent]] value.}} * [[CDBL]] (function) {{text|closest double rounding function}} * [[CINT]] (function) {{text|closest integer rounding function}} * [[CLNG]] (function) {{text|closest long integer rounding function}} * [[COS]] (function) {{text|cosine of a radian angle}} * [[CSNG]] (function) {{text|closest single rounding function}} * [[EXP]] (function) {{text|returns the value of e to the power of the parameter used.}} * [[FIX]] (function) {{text|rounds positive or negative values to integer values closer to 0}} * [[INT]] (function) {{text|rounds to lower integer value}} * [[LOG]] (function) {{text|natural logarithm of a specified numerical value.}} * [[SIN]] (function) {{text|sine of a radian angle.}} * [[SQR]] (function) {{text|square root of a positive number.}} * [[TAN]] (function) {{text|returns the ratio of [[SIN]]e to [[COS]]ine or tangent value of an angle measured in radians.}} <center>See also: [[Mathematical Operations]] and [[#Logical Bitwise Operations:|Logical Operations:]] </center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Memory Handling and Clipboard == * [[_CLIPBOARD$ (function)]] {{text|returns the current [[STRING]] contents of the system Clipboard.}} * [[_CLIPBOARD$ (statement)]] {{text|sets and overwrites the [[STRING]] contents of the current system Clipboard.}} * [[_MEM (function)]] {{text|returns _MEM block referring to the largest continuous memory region beginning at a designated variable's offset.}} * [[_MEM]] (variable type) {{text|contains read only dot elements for the OFFSET, SIZE, TYPE and ELEMENTSIZE of a block of memory.}} * [[_MEMCOPY]] (statement) {{text|copies a value from a designated OFFSET and SIZE [[TO]] a block of memory at a designated OFFSET.}} * [[_MEMELEMENT]] (function) {{text|returns a [[_MEM]] block referring to a variable's memory (but not past it).}} * [[_MEMEXISTS]] (function) {{text|verifies that a memory block exists for a memory variable name or returns zero.}} * [[_MEMFILL]] (statement) {{text|fills a designated memory block OFFSET with a certain SIZE and TYPE of value.}} * [[_MEMFREE]] (statement) {{text|frees a designated memory block in a program. Only free memory once!}} * [[_MEMGET]] (statement) {{text|reads a designated value from a designated memory OFFSET}} * [[_MEMGET (function)]] {{text|returns a value from a designated memory block and OFFSET using a designated variable [[TYPE]].}} * [[_MEMIMAGE]] (function) {{text|returns a [[_MEM]] block referring to a designated image handle's memory}} * [[_MEMNEW]] (function) {{text|allocates new memory with a designated SIZE and returns a [[_MEM]] block referring to it.}} * [[_MEMPUT]] (statement) {{text|places a designated value into a designated memory [[_OFFSET]]}} * [[_OFFSET (function)]] {{text|returns the memory offset of a variable when used with [[DECLARE LIBRARY]] or [[_MEM]] only.}} * [[_OFFSET]](%& numerical type) {{text|can be used store the value of an offset in memory when using [[DECLARE LIBRARY]] or [[_MEM]] only.}} <center>'''Functions and statements using QB64's emulated 16 bit memory'''</center> * [[DEF SEG]] (statement) {{text|defines the segment address in memory.}} * [[PEEK]] (function) {{text|returns the value that is contained at a certain memory address offset.}} * [[POKE]] (statement) {{text|sets the value of a specified memory address offset.}} * [[SADD]] (function) {{text|returns the address of a STRING variable as an offset from the current data segment.}} * [[VARPTR]] (function) {{text|returns an [[INTEGER]] value that is the offset pointer of the memory address within it's [[segment]].}} * [[VARPTR$]] (function) {{text|returns a STRING representation of a variable's memory address value}} * [[VARSEG]] (function) {{text|returns an [[INTEGER]] value that is the [[segment]] part of a variable or array memory address.}} <center>See also: [[Screen Memory]] or [[Using _OFFSET]]</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Metacommands == :Metacommands are commands that affect a program globally after they are in used. Error checking can be turned [[OFF]] or [[ON]]. <center>'''QB64 [[Metacommand]]s do NOT allow commenting or [[REM]]!'''</center> * [[$CHECKING]]:OFF/ON {{text|(QB64 only) turns event and error checking ON and OFF. ON (default) can only be used after it is OFF.}} * [[$CONSOLE]] {{text|creates a console window throughout the program.}} * [[$SCREENHIDE]] {{text|hides the program window throughout the program until [[$SCREENSHOW]] is used.}} * [[$SCREENSHOW]] {{text|displays the main program window throughout the program only after [[$SCREENHIDE]] or [[_SCREENHIDE]] has been used.}} <center>'''Qbasic [[Metacommand]]s do not require commenting or [[REM]] in QB64!'''</center> * '[[$DYNAMIC]] {{text|defines that all arrays are dynamic or changeable in size using [[DIM]] or [[REDIM]].}} * '[[$INCLUDE]]: 'filename$' {{text|includes a text library file with procedures to be used in a program. Comment both sides of file name also.}} * '[[$STATIC]] {{text|defines that all arrays are static or unchangeable in size using [[DIM]].}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Mouse Input == * [[_AXIS]] (function) {{text|returns a [[SINGLE]] value between -1 and 1 indicating the maximum distances from device center 0.}} * [[_BUTTON]] (function) {{text|returns -1 when a device button is pressed and 0 when button is released. 2 is the mouse center or scroll button}} * [[_BUTTONCHANGE]] (function) {{text|returns -1 when a device button has been pressed and 1 when released. Zero indicates no change.}} * [[_DEVICE$]] (function) {{text|returns a [[STRING]] expression listing device names and input types of system input devices.}} * [[_DEVICEINPUT]] (function) {{text|returns the [[_DEVICES]] number of an [[_AXIS]], [[_BUTTON]] or [[_WHEEL]] event. Mouse is normally _DEVICEINPUT(2).}} * [[_DEVICES]] (function) {{text|returns the number of input devices found on a computer system. The mouse is normally device 2.}} * [[_EXIT (function)]] {{text|prevents a program user exit and indicates if a user has clicked the close X window button or CTRL + BREAK.}} * [[_LASTAXIS]] (function) {{text|returns the number of axis available on a specified number device listed by [[_DEVICE$]].}} *[[_LASTBUTTON]] (function) {{text|returns the number of buttons available on a specified number device listed by [[DEVICE$]].}} * [[_LASTWHEEL]] (function) {{text|returns the number of scroll wheels available on a specified number device listed by [[_DEVICE$]].}} * [[_MOUSEBUTTON]] (function) {{text|returns whether a specified mouse button number has been clicked. 3 is the mouse center or scroll button}} * [[_MOUSEHIDE]] (statement) {{text|hides the OS mouse pointer from view.}} * [[_MOUSEINPUT]] (function) {{text|must be used to monitor and read all changes in the mouse status.}} * [[_MOUSEMOVE]] (statement) {{text|moves the mouse cursor pointer to a designated coordinate.}} * [[_MOUSEMOVEMENTX]] (function) {{text|returns the relative horizontal position of the mouse cursor.}} * [[_MOUSEMOVEMENTY]] (function) {{text|returns the relative vertical position of the mouse cursor.}} * [[_MOUSESHOW]] (statement) {{text|displays(default) the mouse cursor after it has been hidden.}} * [[_MOUSEWHEEL]] (function) {{text|returns a positive or negative count the mouse scroll wheel clicks since the last read.}} * [[_MOUSEX]] (function) {{text|indicates the current horizontal position of the mouse pointer.}} * [[_MOUSEY]] (function) {{text|indicates the current vertical position of the mouse pointer.}} * [[_SCREENCLICK]] {{text|simulates clicking the mouse at a position on the screen to get focus.}} * [[_WHEEL]] (function) {{text|returns -1 when a device wheel is scrolled up and 1 when scrolled down. Zero indicates no activity.}} * [[CALL ABSOLUTE|CALL ABSOLUTE]] (statement) {{text|used to access Interrupt vector &H33 to work with the mouse. Functions 0 to 3 implemented.}} * [[INTERRUPT]] (statement) {{text|used to access Interrupt vector &H33 to work with the mouse. Functions 0 to 3 implemented. }} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Numerical Manipulation and Conversion == * [[&B]] [[Binary]] {{text|base number prefix used in QB64 to represent [[_BIT]]s on as 1 or off as 0.}} * [[_CV]] (function) {{text|used to convert [[_MK$]] [[ASCII]] [[STRING|string]] values to specified numerical value types.}} * [[_MK$]] (function) {{text|converts a specified numerical type into an [[ASCII]] [[STRING|string]] value that must be converted back using [[_CV]].}} * [[_PRESERVE]] ([[REDIM]] action) {{text|preserves the current contents of an [[arrays|array]], when re-dimensioning it.}} * [[_UNSIGNED]] {numerical [[TYPE|type]]) {{text|defines a numerical value as being positive only using QB64.}} * [[ABS]] (function) {{text|returns the the positive value of a variable or literal numerical value.}} * [[ASC]] (function) {{text|returns the [[ASCII]] code number of a certain [[STRING]] text character or a keyboard press.}} * [[CDBL]] (function) {{text|converts a numerical value to the closest [[DOUBLE]]-precision value.}} * [[CHR$]] (function) {{text|returns the character associated with a certain [[ASCII]] character code as a [[STRING]].}} * [[CINT]] (function) {{text|returns the closest [[INTEGER]] value of a number.}} * [[CLEAR]] (statement) {{text|clears all variable values to 0 or null [[STRING|strings]] and closes all open files.}} * [[CLNG]] (function) {{text| rounds decimal point numbers up or down to the nearest [[LONG]] integer value.}} * [[CSNG]] (function) {{text|converts a numerical value to the closest [[SINGLE]]-precision number.}} * [[CVD]] (function) {{text|converts [[STRING]] values to [[DOUBLE]] numerical values.}} * [[CVDMBF]] (function) {{text|converts a 8-byte Microsoft Binary format [[STRING|string]] value to a [[DOUBLE]] precision number.}} * [[CVI]] (function) {{text|converts 2 byte STRING values to [[INTEGER]] numerical values.}} * [[CVL]] (function) {{text|converts 4 byte STRING values to [[LONG]] numerical values.}} * [[CVS]] (function) {{text|converts 4 byte STRING values to [[SINGLE]] numerical values.}} * [[CVSMBF]] (function) {{text|converts a 4-byte Microsoft Binary format [[STRING|string]] value to a [[SINGLE]]-precision number.}} * [[DIM]] (statement) {{text|used to declare a variable type or dimension a [[STATIC]] array.}} * [[ERASE]] (array statement) {{text|clears a [[STATIC]] array of all values and totally removes a [[$DYNAMIC]] array.}} * [[HEX$]] (function) {{text|converts decimal [[INTEGER]] values to hexadecimal [[STRING]] number values. Prefix values with [[&H]]}} * [[INT]] (function) {{text|rounds a numeric value down to the next whole number or [[INTEGER]] value.}} * [[LEN]] (function) {{text|returns the byte size of strings or numerical variables.}} * [[OCT$]] {{text|converts decimal numerical values to Octal [[STRING]] number values. Prefix values with [[&O]]}} * [[RANDOMIZE]] (statement) {{text|seeds the [[RND]] random number generation sequence.}} * [[REDIM]] (statement) {{text|re-dimensions the number of elements in a [[$DYNAMIC|dynamic]](resizeable) [[arrays|array]].}} * [[RND]] (function) {{text|returns a randomly generated number from 0 to .9999999}} * [[SGN]] (function) {{text|returns the sign as -1 for negative, zero for 0 and 1 for positive numerical values.}} * [[STR$]] (function) {{text|converts a numerical value to a [[STRING]] value.}} * [[SWAP]] (statement) {{text|trades the values of two numerical types or [[STRING|strings]].}} * [[VAL]] (function) {{text|converts number [[STRING|strings]] into numerical values until it runs into a non-numeric character.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Port Input and Output (COM and LPT) == * [[COM(n)]] (statement) {{text|used in an OPEN COM statement to open "COM1" or "COM2".}} * [[GET]] (file I/O statement) {{text|reads port data data by byte or record positions.}} * [[LOC]] (function) {{text|finds the current file location or size of a [[COM]] port receive buffer.}} * [[ON COM(n)]] (event statement) {{text|branches to a line number or label when there is a value in the serial port specified.}} * [[OPEN COM]] (statement) {{text|opens a computer serial COMmunications port.}} * [[OUT]] (statement) {{text|sends values to register or port hardware addresses (emulated - limited access).}} * [[PRINT (file statement)]] {{text|writes text and numerical data to a port transmit buffer.}} * [[PUT]] (file I/O statement) {{text|writes data into a [[RANDOM]] or [[BINARY]] port by byte or record position.}} <center>'''See [[Port Access Libraries]] for other ways to access COM and LPT ports.'''.</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Print formatting == * [[LPRINT USING]] (statement) {{text|prints template formatted [[STRING]] text to an LPT or USB printer page.}} * [[PRINT USING]] (statement) {{text|prints template formatted [[STRING]] text to the screen.}} * [[PRINT USING (file statement)]] {{text|prints template formatted [[STRING]] text to a text file.}} {{PrintUsing}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Printer Output (LPT and USB) == * [[_PRINTIMAGE]] (statement) {{text|prints an image stretched to the size of the paper setting of an LPT or USB printer.}} * [[LPOS]] (function) {{text|returns the current parallel(LPT) printer head position.}} * [[LPRINT]] (statement) {{text|prints text to an LPT or USB printer page.}} * [[LPRINT USING]] (statement) {{text|prints template formatted [[STRING]] text to an LPT or USB printer page.}} <center>'''QB64 will use the default system printer selected. [[_PRINTIMAGE]] images will be stretched to the paper size setting.'''</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Program Flow and Loops == * [[_CONTINUE]] (statement) {{text|skips the remaining lines in a control block (DO/LOOP, FOR/NEXT or WHILE/WEND)}} * [[_DEST]] (statement) {{text|sets the current write image or page. All graphics will go to this image.}} * [[_DEST (function)]] {{text|returns the current write destination image or page.}} * [[_EXIT (function)]] {{text|prevents a user exit and indicates if a user has clicked the close X window button or CTRL + BREAK.}} * [[_SOURCE]] (statement) {{text|establishes the image SOURCE using a designated image handle}} * [[_SOURCE (function)]] {{text|returns the present image _SOURCE handle value.}} * [[_SHELLHIDE]] (function) {{text|returns the code sent by a program exit using [[END]] or [[SYSTEM]] followed by an [[INTEGER]] value.}} * [[CALL]] (statement) {{text|sends code execution to a subroutine procedure in a program.}} * [[CASE]] ([[SELECT CASE]] statement) {{text|used within a SELECT CASE block to specify a conditional value of the compared variable.}} * [[CASE ELSE]] ([[SELECT CASE]] statement) {{text|used in a SELECT CASE block to specify an alternative to other CASE values.}} * [[CASE IS]] ([[SELECT CASE]] statement) {{text|used within a SELECT CASE block to specify a conditional value of the compared variable.}} * [[DO...LOOP]] (loop statement) {{text|used in programs to repeat code or return to the start of a procedure.}} * [[ELSE]] (statement) {{text|used in [[IF...THEN]] statements to offer an alternative to other conditional statements.}} * [[ELSEIF]] (statement) {{text|used in [[IF...THEN]] block statements to offer an alternative conditional statement.}} * [[END]] (statement) {{text|ENDs a conditional block statement, a sub-procedure or ends the program with "Press any key..."}} * [[END IF]] (IF statement end) {{text|ENDs an IF statement block.}} * [[ERROR]] (error statement) {{text|used to simulate an error in a program.}} * [[EXIT]] (statement) {{text|exits a loop, function or sub-procedure early.}} * [[FOR...NEXT]] (statement) {{text|a counter loop procedure that repeats code a specified number of times.}} * [[GOSUB]] (statement) {{text|send the program to a designated line label procedure in the main module or a [[SUB]] procedure.}} * [[GOTO]] (statement) {{text|sends the program to a designated line number or label.}} * [[IF...THEN]] (statement) {{text|a conditional flow statement or block of statements.}} * [[LOOP]] {{text|end of a DO...LOOP procedure that repeats code until or while a condition is true.}} * [[RESUME]] (error statement) {{text|an error statement that can return the program to the NEXT code line or a specific line number.}} * [[RETURN]] (statement) {{text|a sub-procedure statement that returns the program to the code immediately after the procedure call.}} * [[RUN]] (statement) {{text|clears and restarts the program currently in memory or executes another specified program.}} * [[SELECT CASE]] (statement) {{text|determines the program flow by comparing the value of a variable to specific values.}} * [[SHELL]] (DOS statement) {{text|directly accesses the Operating System's command line procedures.}} * [[SLEEP]] (statement) {{text|stops program progression for a specific number of seconds or until a keypress is made.}} * [[STEP]] (relational statement) {{text|is used to step through FOR loop values or use relative graphical coordinates.}} * [[STOP]] (statement) {{text|is used when troubleshooting a program to stop the program at a specified code line.}} * [[SYSTEM]] (statement) {{text|immediately exits a program and closes the program window.}} * [[UNTIL]] (conditional statement) {{text|continues a DO LOOP procedure until a condition is true.}} * [[WHILE]] (statement) {{text|continues a DO LOOP procedure while a condition is true.}} * [[WHILE...WEND]] (statement) {{text|a loop procedure that repeats code while a condition is true.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Sounds and Music == * [[_SNDBAL]] (statement) {{text|sets the balance or 3D position of a sound.}} * [[_SNDCLOSE]] (statement) {{text|frees and unloads an open sound using a _SNDOPEN or _SNDCOPY handle.}} * [[_SNDCOPY]] (function) {{text|copies a sound to a new handle so that two or more of the same sound can be played at once.}} * [[_SNDGETPOS]] (function) {{text|returns the current playing position in seconds of a designated sound handle.}} * [[_SNDLEN]] (function) {{text|returns the length of a sound in seconds of a designated sound handle.}} * [[_SNDLIMIT]] (statement) {{text|stops playing a sound after it has been playing for a set number of seconds.}} * [[_SNDLOOP]] (statement) {{text|loops the playing of a specified sound handle.}} * [[_SNDOPEN]] (function) {{text|loads a sound file with certain capabilities and returns a handle value.}} * [[_SNDPAUSE]] (statement) {{text|pauses a specified sound handle if it is playing.}} * [[_SNDPAUSED]] (function) {{text|returns the pause status of a specified sound handle.}} * [[_SNDPLAY]] (statement) {{text|plays a designated sound file handle.}} * [[_SNDPLAYCOPY]] (statement) {{text|copies a sound, plays it and automatically closes the copy using a handle parameter}} * [[_SNDPLAYFILE]] (statement) {{text|a simple command to play a sound file with limited options.}} * [[_SNDPLAYING]] (function) {{text|returns whether a sound handle is being played.}} * [[_SNDRATE]] (function) {{text|returns the sample rate frequency per second of the current computer's sound card.}} * [[_SNDRAW]] (statement) {{text|plays sound wave sample frequencies created by a program.}} * [[_SNDRAWDONE]] (statement) {{text|pads a [[_SNDRAW]] stream so the final (partially filled) buffer section is played.}} * [[_SNDRAWLEN]] (function) {{text|returns the length, in seconds, of a _SNDRAW sound currently queued.}} * [[_SNDRAWOPEN]] (function) {{text|returns a handle to a new, separate [[_SNDRAW]] audio stream.}} * [[_SNDSETPOS]] (statement) {{text|changes the current/starting playing position of a sound in seconds.}} * [[_SNDSTOP]] (statement) {{text|stops a playing or paused sound handle.}} * [[_SNDVOL]] (statement) {{text|sets the volume of a sound handle being played.}} * [[BEEP]] (statement) {{text|makes a beep sound when called or CHR$(7) is printed.}} * [[PLAY]] (music statement) {{text|uses a custom string statement to play musical notes.}} * [[SOUND]] (statement) {{text|creates sounds of a specified frequency for a set duration.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == String Text Manipulation and Conversion == * [[_CLIPBOARD$]] (function) {{text|returns the current [[STRING]] contents of the system Clipboard.}} * [[_CLIPBOARD$ (statement)]] {{text|sets the [[STRING]] contents of the current system Clipboard.}} * [[_CONTROLCHR]] (statement) {{text|[[OFF]] allows the control characters to be used as text characters. [[ON]](default) can use them as commands.}} * [[_CONTROLCHR (function)]] {{text| returns the current state of _CONTROLCHR as 1 when OFF and 0 when ON.}} * [[_CV]] (function) {{text|used to convert [[_MK$]] [[ASCII]] [[STRING|string]] values to numerical values.}} * [[_MK$]] (function) {{text|converts any numerical type into an [[ASCII]] [[STRING|string]] value that must be converted back using [[_CV]].}} * [[ASC (statement)]] {{text|allows a QB64 program to change a character at any position of a predefined STRING.}} * [[HEX$]] (function) {{text|returns the base 16 hexadecimal representation of an [[INTEGER]] value as a [[STRING]].}} * [[INSTR]] (function) {{text|searches for the first occurance of a search STRING within a string and returns the position.}} * [[LCASE$]] (function) {{text|changes the uppercase letters of a STRING to lowercase.}} * [[LEFT$]] (function) {{text|returns a part of a STRING from the start a designated number of character places.}} * [[LEN]] (function) {{text|returns the number of bytes or characters in a [[STRING]] value.}} * [[LSET]] (statement) {{text|left-justifies a fixed length string expression based on the size of the STRING.}} * [[LTRIM$]] (function) {{text|returns a string with all leading spaces removed.}} * [[MID$ (statement)]] {{text|returns a portion of a string from the start position a designated number of characters.}} * [[MKD$]] (function) {{text|converts a [[DOUBLE]] numerical value into an 8 byte [[ASCII]] [[STRING]] value.}} * [[MKDMBF$]] (function) {{text|converts a double-precision number to a string containing a value in Microsoft Binary format.}} * [[MKI$]] (function) {{text|converts a numerical [[INTEGER]] value to a 2 byte [[ASCII]] string value.}} * [[MKL$]] (function) {{text|converts a numerical [[LONG]] value to a 4 byte [[ASCII]] string value.}} * [[MKS$]] (function) {{text|converts a numerical [[SINGLE]] value to a 4 byte [[ASCII]] string value.}} * [[MKSMBF$]] (function) {{text|converts a single-precision number to a string containing a value in Microsoft Binary format.}}}} * [[OCT$]] (function) {{text|returns the base 8 Octal representation of an INTEGER value.}} * [[RIGHT$]] (function) {{text|returns a set number of characters in a STRING variable starting from the end.}} * [[RSET]] (statement) {{text|right-justifies a string according to length of the string expression.}} * [[RTRIM$]] (function) {{text|returns a string with all of the spaces removed at the right end of a string.}} * [[SPACE$]] (function) {{text|returns a STRING consisting of a number of space characters.}} * [[STR$]] (function) {{text|converts a numerical value to a [[STRING]].}} * [[STRING]] ($ variable type) {{text|one byte text variable with [[ASCII]] code values from 0 to 255.}} * [[STRING$]] (function) {{text|returns a STRING consisting of a single character repeated a set number of times.}} * [[SWAP]] (statement) {{text|used to exchange two string variable or array element values.}} * [[UCASE$]] (function) {{text|returns a string with all letters as uppercase.}} * [[VAL]] (function) {{text|converts a string number value to a numerical value.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Sub procedures and Functions == <center>'''Qbasic and QB64'''</center> * [[CALL]] (statement) {{text|sends code execution to a [[SUB]] procedure in a program. Parameter brackets are required when used.}} * [[CALL ABSOLUTE|CALL ABSOLUTE]] (statement) {{text|used to access Interrupts on the computer or execute assembly type procedures.}} * [[CHAIN]] (statement) {{text|changes seamlessly from one program module to another.}} * DECLARE (BASIC statement) {{text|used to tell that a SUB or FUNCTION is created to be used in the program. NOT USED by QB64!}} * [[END]] (statement) {{text|ends a [[SUB]] or [[FUNCTION]] procedure.}} * [[EXIT]] (statement) {{text|exits a [[SUB]] or [[FUNCTION]] procedure early.}} * [[FUNCTION]] (statement) {{text|a procedure that holds ONE return value in the function's name which is a variable type. }} * [[GOSUB]] (statement) {{text|sends the program to a sub program that uses a line number or label.}} * [[$INCLUDE]] (metacommand) {{text|used to insert a source code text file into your program at the point of the insertion.}} * [[INTERRUPT]] (statement) {{text|a built in assembly routine for accessing computer information registers.}} * [[RETURN]] (statement) {{text|used in GOSUB procedures to return to the original call code line.}} * [[RUN]] (statement) {{text| flow statement that clears and restarts the program currently in memory or executes another specified program.}} * [[SHARED]] (statement) defines a variable or list of variables as shared with the main program module.}} * [[SHELL]] (statement) {{text|allows a program to use OS command lines.}} * [[STATIC]] (statement) {{text|defines a variable or list of variables that will retain their values after the sub-procedure is exited.}} * [[SUB]] (statement) {{text|procedures are programs within programs that can return multiple calculations.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == TCP/IP Networking and Email == <center>'''All Statements and Functions Compile in QB64 Only!'''</center> * [[_CONNECTED]] (function) {{text|returns the connection status of a TCP/IP connection handle.}} * [[_CONNECTIONADDRESS$]] (function) {{text| function returns a connected user's [[STRING]] IP address value.}} * [[_OPENCLIENT]] (function) {{text|connects to a Host on the Internet as a Client and returns the Client status handle.}} * [[_OPENCONNECTION]] (function) {{text|open's a connection from a client that the host has detected and returns a status handle.}} * [[_OPENHOST]] (function) {{text|opens a Host which listens for new connections and returns a Host status handle.}} * [[CLOSE]] (statement) {{text|closes an opened internet connection using the handle assigned in an OPEN statement.}} * [[GET (TCP/IP statement)]] {{text|reads unformatted(raw) data from an opened connection using the connection handle.}} * [[PUT (TCP/IP statement)]] {{text|sends unformatted(raw) data to an open connection using a user's handle.}} <center>See also: [[Downloading Files]]</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Text on Screen == * [[_CONTROLCHR]] {{text|[[OFF]] allows [[ASCII]] characters 0 to 31 to be used as text characters. [[ON]](default) resets to default usage.}} * [[_FONT (function)]] {{text|creates a new alphablended font handle from a designated image handle}} * [[_FONT]] (statement) {{text|sets the current [[_LOADFONT]] function font handle to be used by [[PRINT]] or [[_PRINTSTRING]].}} * [[_MAPUNICODE]] (statement) {{text|maps a [[Unicode]] value to an [[ASCII]] character code value.}} * [[_PRINTSTRING]] (statement) {{text|prints text or custom font strings using graphic column and row coordinate positions.}} * [[_SCREENPRINT]] (statement) {{text|simulates typing text into a Windows program using the keyboard.}} * [[CHR$]] (function) {{text|returns the text character associated with a certain [[ASCII]] character code as a one byte [[STRING]].}} * [[CLS]] (statement) {{text|clears a screen page or the program [[SCREEN]]. QB64 can clear with a color.}} * [[COLOR]] (statement) {{text|used to change the color of the text and background in some legacy screen modes.}} * [[CSRLIN]] (function) {{text|returns the current print cursor row position on the screen.}} * [[INPUT]] (statement) {{text|requests a [[STRING]] or numerical keyboard entry from a program user.}} * [[KEY LIST]] (statement) {{text|vertically lists all the [[ON KEY(n)]] softkey strings associated with each function key F1 to F12.}} * [[LINE INPUT]] (statement) {{text|requests a [[STRING]] keyboard entry from a program user.}} * [[LOCATE]] (statement) {{text|locates the screen text row and column positions for a [[PRINT]] or [[INPUT]] procedure.}} * [[POS]] (function) {{text|returns the current print cursor column position.}} * [[PRINT]] (statement) {{text|prints numeric or [[STRING|string]] expressions to the program screen.}} * [[PRINT USING]] (statement) {{text|prints template formatted numeric or string values to the program screen.}} * [[SCREEN]] (statement) {{text|sets the screen mode of a program. No statement defaults the program to SCREEN 0 text mode.}} * [[SCREEN (function)]] {{text|returns the [[ASCII]] code of a text character or the color attribute at a set text location on the screen.}} * [[SPACE$]] (function) {{text|returns a [[STRING|string]] consisting of a number of space characters.}} * [[SPC]] (function) {{text|used in [[PRINT]] and [[LPRINT]] statements to print or output a number of space characters.}} * [[STR$]] (function) {{text|returns the [[STRING]] representation of a numerical value.}} * [[STRING$]](function) {{text| returns a [[STRING]] consisting of a single character repeated a set number of times.}} * [[TAB]] (function) {{text|used in [[PRINT]] and [[LPRINT]] statements to move to a specified text column position.}} * [[VIEW PRINT]] (statement) {{text|defines the boundaries of a text viewport [[PRINT]] area.}} * [[WIDTH]] (statement) {{text|changes the text dimensions of certain [[SCREEN]] modes or printer page widths}} * [[WRITE]] (screen I/O statement) {{text|writes a comma-separated list of values to the screen.}} <center> See also: [[#Fonts and Unicode:|Fonts and Unicode]] or [[ASCII|ASCII Code Table]]</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Time, Date and Timing == * [[_AUTODISPLAY]] (statement) {{text|enables the automatic display of the screen image changes previously disabled by [[_DISPLAY]].}} * [[_DELAY]] (statement) {{text|suspends program execution for a [[SINGLE]] value of seconds down to milliseconds.}} * [[_DISPLAY]] (statement) {{text|turns off automatic display while only displaying the screen changes when called.}} *[[_FREETIMER]] (function) {{text|returns a free TIMER number for multiple [[ON TIMER(n)]] events.}} * [[_KEYDOWN]] (function) {{text|returns whether modifying keys like CTRL, ALT, SHIFT, and any other keys are pressed.}} * [[_KEYHIT]] (function) {{text|returns ASCII one and two byte, SDL Virtual Key and Unicode keyboard key press codes.}} * [[_LIMIT]] (statement) {{text|sets the loop repeat rate of a program to so many per second, relinquishing spare cpu cycles.}} * [[DATE$]] (function) {{text|returns the present computer date in a mm-dd-yyyy [[STRING|string]] format}} * [[INKEY$]] (function) {{text| can be used in a loop to wait for a keypress or a [Ctrl] + letter key combination.}} * [[INPUT]] (statement) {{text|can be used to wait for an [Enter] key press or a text or numerical menu entry.}} * [[INPUT$]] (function) {{text|can be used to wait for a key press or a fixed length text entry.}} * [[ON KEY(n)]] (event statement) {{text|executes when a keypress or keypress combination occurs.}} * [[ON TIMER(n)]] (event statement) {{text|executes when a timed event occurs. QB64 can use multiple numbered timer events.}} * [[SLEEP]] (statement) {{text|pauses the program for a specified number of seconds or a until a key press is made.}} * [[TIME$]] (function) {{text|returns the present computer time in a hh:mm:ss 24 hour [[STRING|string]] format}} * [[TIMER]] (function) {{text|returns the number of seconds past the previous midnite down to a QB64 accuracy of one millisecond.}} * [[TIMER (statement)]] {{text|enables, turns off or stops timer event trapping. In QB64 TIMER(n) FREE can free multiple timers. }} * [[WAIT]] (statement) {{text|normally used to delay program display execution during or after vertical retrace periods.}} <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == Window and Desktop == <center>'''All Statements and Functions except [[SCREEN]] Compile in QB64 Only!'''</center> * [[_FULLSCREEN (function)]] {{text|returns the present full screen mode setting number of the screen window.}} * [[_FULLSCREEN]] (statement) {{text|sets the full screen mode of the screen window. Alt + Enter can do it manually.}} * [[_HEIGHT]] (function) {{text|returns the height of a [[_SCREENIMAGE]] handle to get the desktop resolution.}} * [[_ICON]] (statement) {{text|creates a program icon from an image file handle created by [[_LOADIMAGE]]. Cannot use .ICO files!}} * [[_NEWIMAGE]] (statement) {{text|function prepares a window image surface and returns the handle value.}} * [[$RESIZE]] ([[Metacommand]]) {{text|used with ON allows a user to resize the program window where OFF does not.}} * [[_RESIZE (function)]] {{text|returns -1 when a program user attempts to resize the program screen.}} * [[_RESIZEHEIGHT]] (function) {{text|returns the requested new user screen height when [[$RESIZE]]:ON allows it.}} * [[_RESIZEWIDTH]] (function) {{text|returns the requested new user screen width when [[$RESIZE]]:ON allows it.}} * [[_SCREENCLICK]] {{text|simulates clicking the mouse at a position on the screen to get focus.}} * [[_SCREENEXISTS]] (function) {{text|returns a -1 value once a screen has been created.}} * [[$SCREENHIDE]] (QB64 [[Metacommand]]) {{text|hides the program window throughout the program until [[$SCREENSHOW]] is used.}} * [[_SCREENHIDE]] (statement) {{text|hides the main program window in a section of code until [[_SCREENSHOW]] is used.}} * [[_SCREENIMAGE]] (function) {{text|creates an image of the current desktop and returns an image handle.}} * [[_SCREENMOVE]] (statement) {{text|positions the program window on the desktop using designated coordinates or _MIDDLE.}} * [[_SCREENPRINT]] (statement) {{text|simulates typing text into a Windows program using the keyboard.}} * [[$SCREENSHOW]] (QB64 [[Metacommand]]) {{text|displays the main program window throughout the program after [[$SCREENHIDE]].}} * [[_SCREENSHOW]] (statement) {{text|displays the main program window in a section of code after [[_SCREENHIDE]] has been used.}} * [[_SCREENX]] (function) {{text|returns the current program window's upper left corner column position on the desktop.}} * [[_SCREENY]] (function) {{text|returns the current program window's upper left corner row position on the desktop.}} * [[_TITLE]] (statement) {{text|sets the program name [[STRING|string]] in the title bar of the program window.}} * [[_WIDTH (function)]] {{text|returns the width of a [[_SCREENIMAGE]] handle to get the desktop resolution.}} * [[SCREEN]] {{text|sets the screen mode of a program. No statement defaults the program to SCREEN 0 text mode.}} <center>''See also:'' [[C_Libraries#Console_Window|Console Window]], [[Windows_Libraries#Hot_Keys_.28maximize.29|Windows Hot Keys]] or [[Windows_Libraries#Focus|Focus on Program]].</center> <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == QB64 Programming Symbols == <center>'''QB64 and QB Symbols'''</center> <center>''[Note: All symbols below can also be used inside of literal quoted strings except for quotation marks.]''</center> :'''Print, Input or File Formatting''' * [[Semicolon|; Semicolon]] after a [[PRINT]] stops the invisible cursor at end of the printed value. Can prevent screen rolling! * [[Comma|, Comma]] after a [[PRINT]] tabs the invisible cursor past the end of the printed value. * [[Quotation mark|" Quotation mark]] delimits the ends of a literal [[STRING]] value in a [[PRINT]], [[INPUT]] or [[LINE INPUT]] statement. * [[Question mark|? Question mark]] is a shortcut substitute for the [[PRINT]] keyword. Will change to PRINT when cursor leaves the code line. :'''Program Code Markers''' * [[Apostrophe|' Apostrophe]] denotes a program comment, to ignore a code line or a Qbasic [[Metacommand]]. Same as using [[REM]]. * [[Comma|, Comma]] is a statement variable or [[DATA]], [[SUB]] or [[FUNCTION]] parameter separator. * [[Colon|: Colon]]s can be used to separate two procedure statements on one code line. * [[Dollar_Sign|$ Dollar sign]] prefix denotes a Qbasic [[Metacommand]]. Only '''QB64''''s event [[$CHECKING]] should NOT be commented. * [[Parenthesis|( ) Parenthesis]] enclose a math or conditional procedure order, [[SUB]] or [[FUNCTION]] parameters or to pass by value. * [[+|+ Plus]] [[concatenation]] operator MUST be used to combine literal string values in a variable definition. * [[Quotation mark|" Quotation mark]] delimits the ends of a literal [[STRING]] value. Use [[CHR$]](34) to insert quotes in a text [[STRING]]. * [[REM]] or apostrophe are used to make comments or ignore code or precedes a [[Metacommand]]. * [[Underscore|_ Underscore]] at the end of a code line is used to continue a line of code to the next program line in '''QB64 only'''. <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> :'''Variable Name Type Suffixes''' * [[STRING|$ STRING]] text character type: 1 byte * [[SINGLE|! SINGLE]] floating decimal point numerical type (4 bytes) * [[DOUBLE|# DOUBLE]] floating decimal point numerical type (8 bytes) * [[_FLOAT|## _FLOAT]] '''QB64''' decimal point numerical type (32 bytes) * [[_UNSIGNED|~ _UNSIGNED]] '''QB64''' [[INTEGER|whole]] positive numerical type when it precedes the 6 numerical suffixes below: * [[INTEGER|% INTEGER]] [[INTEGER|whole]] numerical type (2 bytes) * [[LONG|& LONG]] [[INTEGER|whole]] numerical type (4 bytes} * [[_INTEGER64|&& _INTEGER64]] '''QB64''' [[INTEGER|whole]] numerical type (8 bytes) * [[_BIT|` _BIT]] '''QB64''' [[INTEGER|whole]] numerical type (1 bit)(Key below tilde(~) or [[CHR$]](96)) * [[_BYTE|%% _BYTE]] '''QB64''' [[INTEGER|whole]] numerical type (1 byte) * [[_OFFSET|%& _OFFSET]] '''QB64''' [[INTEGER|whole]] numerical pointer address type (any byte size required) <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> :'''Numerical Base Prefixes''' * [[&B|&B Binary]] base 2 Digits 0 or 1 ['''QB64'''] * [[&O|&O Octal]] base 8 Digits 0 to 7 * [[&H|&H Hexadecimal]] base 16: Digits 0 to F :'''[[Mathematical Operations]]''' *[[+|+ Addition]] operator or sign *[[-|- Subtraction]] operator or sign *[[*|* Multiplication]] operator *[[/|/ Division]] (floating decimal point) operator *[[\|\ Integer division]] operator *[[^|^ Exponential]] operator *[[MOD|MOD Integer Remainder division]] operator :'''[[Relational Operations]]''' * [[Equal|=]] (Equal to condition) * [[Greater_Than|>]] (Greater than condition) * [[Less_Than|<]] (Less than condition) * [[Not_Equal|<>]] (Not equal to condition) * [[Greater_Than_Or_Equal|>=]] (Greater than or equal to condition) * [[Less_Than_Or_Equal|<=]] (Less than or equal to condition) <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> == QB64 Programming References == <center>'''WIKI Pages''' [[Keyword Reference - Alphabetical#QB64 specific keywords:|Go to QB64 specific keywords]] [[Keyword Reference - Alphabetical#Original QBasic keywords:|Go to Top of Original QB keywords]] [[Keyword Reference - Alphabetical|Go to Alphabetical keywords]] [[Main_Page#Appendix:|Main Page with Appendix and Tutorials]] '''Got a question about something?''' [[QB64 FAQ|Visit the QB64 FAQ]] [http://qb64phoenix.com Visit the QB64 Main Site] [http://qb64phoenix.com/forum/index.php Visit QB64 Community Forum] <p style="text-align: center">([[#toc|Return to Table of Contents]])</p> <