1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-01 09:10:37 +00:00

Begins updating help files for v1.4. [ci-skip]

This commit is contained in:
Fellippe Heitor 2020-01-19 23:36:46 -03:00
parent 82614df960
commit 75e1b07eea
44 changed files with 763 additions and 1217 deletions

View file

@ -0,0 +1,45 @@
The [[$ASSERTS]] metacommand enables debug tests with the [[_ASSERT]] macro.
{{PageSyntax}}
:[[$ASSERTS]]
:[[$ASSERTS]]:CONSOLE
{{PageDescription}}
* If an error message is passed to the [[_ASSERT]] statement, it is displayed in the console window if [[$ASSERTS|$ASSERTS:CONSOLE]] is used.
==Availability==
* '''Version 1.4 and up'''.
{{PageExamples}}
''Example:'' Adding test checks for parameter inputs in a function.
{{CodeStart}}
{{Cl|$ASSERTS}}:CONSOLE
{{Cl|DO}}
a = {{Cl|INT}}({{Cl|RND}} * 10)
b$ = myFunc$(a)
{{Cl|PRINT}} a, , b$
{{Cl|_LIMIT}} 3
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|_KEYHIT}}
{{Cl|FUNCTION}} myFunc$ (value {{Cl|AS}} {{Cl|SINGLE}})
{{Cl|_ASSERT}} value > 0, "Value cannot be zero"
{{Cl|_ASSERT}} value <= 10, "Value cannot exceed 10"
{{Cl|IF}} value > 1 {{Cl|THEN}} plural$ = "s"
myFunc$ = {{Cl|STRING$}}(value, "*") + {{Cl|STR$}}(value) + " star" + plural$ + " :-)"
{{Cl|END}} {{Cl|FUNCTION}}
{{CodeEnd}}
{{PageSeeAlso}}
* [[_ASSERT]]
* [[$CHECKING]]
* [[Relational Operations]]
{{PageNavigation}}

39
internal/help/$COLOR.txt Normal file
View file

@ -0,0 +1,39 @@
[[$COLOR]] is a metacommand that adds named color [[CONST|constants]] in a program.
{{PageSyntax}}
: [[$COLOR]]:0
: [[$COLOR]]:32
{{PageDescription}}
* [[$COLOR]]:0 adds [[CONST|constants]] for colors 0-15. The actual constant names can be found in the file '''source/utilities/color0.bi'''.
* [[$COLOR]]:32 adds [[CONST|constants]] for 32-bit colors, similar to HTML color names. The actual constant names can be found in the file '''source/utilities/color32.bi'''.
* [[$COLOR]] is a shorthand to manually using [[$INCLUDE]] pointing to the files listed above.
{{PageExamples}}
''Example 1:'' Adding named color constants for SCREEN 0:
{{CodeStart}}
{{Cl|$COLOR}}:0
{{Cl|COLOR}} BrightWhite, Red
{{Cl|PRINT}} "Bright white on red."
{{CodeEnd}}
''Example 2:'' Adding named color constants for 32-bit modes:
{{CodeStart}}
{{Cl|SCREEN}} {{Cl|_NEWIMAGE}}(640, 400, 32)
{{Cl|$COLOR}}:32
{{Cl|COLOR}} CrayolaGold, DarkCyan
{{Cl|PRINT}} "CrayolaGold on DarkCyan."
{{CodeEnd}}
{{PageSeeAlso}}
* [[COLOR]], [[SCREEN]]
* [[_NEWIMAGE]], [[$INCLUDE]]
* [[Metacommand]]
{{PageNavigation}}

View file

@ -0,0 +1,25 @@
The [[$NOPREFIX]] metacommand allows all QB64 functions and statements to be used without the leading underscore (_).
{{PageSyntax}}
:[[$NOPREFIX]]
{{PageDescription}}
* QB64-specific keywords are by default prefixed with an underscore, in order to differentiate them from legacy keywords inherited from QBasic/QuickBASIC 4.5.
* The convention exists in order to allow older code to be loaded and compiled in QB64 without naming conflicts with existing variables or constants.
* If you are writing new code with QB64, and not importing code from QBasic/QuickBASIC 4.5, [[$NOPREFIX]] allows you to reduce typing by not having to use underscores in modern keywords.
* When [[$NOPREFIX]] is used, QB64 keywords can be used both with or without the leading underscore, so that both [[_DISPLAY]] and [[_DISPLAY|DISPLAY]] are valid in the same program, for example.
* [[$NOPREFIX]] must be the first line in a program.
==Availability==
* '''Version 1.4 and up'''.
{{PageSeeAlso}}
* [[Keyword Reference - Alphabetical]]
* [[Metacommand]]
{{PageNavigation}}

View file

@ -1,4 +1,4 @@
The [[ABS]] function returns the the unsigned numerical value of a variable or literal value.
The [[ABS]] function returns the unsigned numerical value of a variable or literal value.
{{PageSyntax}}

View file

@ -235,9 +235,7 @@ DO
{{WhiteStart}}' '''ASCII Keyboard Codes'''
'
'''' Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Sys ScL Pause'''
' 27 +59 +60 +61 +6
4000
2 +63 +64 +65 +66 +67 +68 +133 +134 - - -
' 27 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +133 +134 - - -
'''' `~ 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ BkSp Ins Hme PUp NumL / * -'''
' 126 33 64 35 36 37 94 38 42 40 41 95 43 8 +82 +71 +73 - 47 42 45
''' 96 49 50 51 52 53 54 55 56 57 48 45 61''

View file

@ -253,9 +253,7 @@ Arrays can be sorted numerically or alphabetically using various sorting routine
Since variables and arrays exist in memory, data is lost when a program closes. To preserve program data you must either create a permanent [[DATA]] field or save the data to files.
The next time a program is used, it can [[OPEN]] that file and quickly restore all of the array data using a loop or '''QB64''' can [[GET]] the entire file's data in one GET. Use [[LINE INPUT (file statement)|LINE INPUT]] # to set the array sizes by counting the number of data rows in a file if you used a [[WRITE]] '''CSV'''(comma separated values) or a [[PRINT (file statement)|PRINT]] # sequencial file. The number of records in a [[TYPE]] or [[FIELD]] defined [[RANDOM]] access file can be found by dividing the record size into the [[LOF]]. You may want
3640
to make the array slightly larger for new entries.
The next time a program is used, it can [[OPEN]] that file and quickly restore all of the array data using a loop or '''QB64''' can [[GET]] the entire file's data in one GET. Use [[LINE INPUT (file statement)|LINE INPUT]] # to set the array sizes by counting the number of data rows in a file if you used a [[WRITE]] '''CSV'''(comma separated values) or a [[PRINT (file statement)|PRINT]] # sequencial file. The number of records in a [[TYPE]] or [[FIELD]] defined [[RANDOM]] access file can be found by dividing the record size into the [[LOF]]. You may want to make the array slightly larger for new entries.
<center>[[#toc|Return to Top]]</center>

View file

@ -1,65 +1 @@
The [[BYVAL]] statement is used to pass a numerical parameter's value with procedures made in other programming languages.
{{PageSyntax}}
: SUB ProcedureName ([[BYVAL]] {{Parameter|variable1}}, [[BYVAL]] {{Parameter|variable2}})
{{PageDescription}}
* '''QB64''' can only use BYVAL in [[DECLARE LIBRARY]] procedures that add DLL or Operating System API functions.
* Supported with [[DECLARE LIBRARY]] [[SUB]] and [[FUNCTION]] procedure declarations when passing '''numerical values only'''.
* Passing numerical values BYVAL assures that the original numerical variable value is not changed by another procedure.
* Use [[parenthesis]] around program [[SUB]] or [[FUNCTION]] parameters passed '''by value'''. Ex: ''CALL Procedure ((x&), (y&))''
{{PageErrors}}
* '''Do not use BYVAL before [[STRING]] or [[TYPE]] variables or in regular prograam [[SUB]] or [[FUNCTION]] parameters.'''
* '''NOTE: Many QBasic keywords can be used as variable names if they are created as [[STRING]]s using the suffix '''$'''. You cannot use them without the suffix, use a numerical suffix or use [[DIM]], [[REDIM]], [[_DEFINE]], [[BYVAL]] or [[TYPE]] variable [[AS]] statements.'''
==QBasic/QuickBASIC==
* QBasic versions below 7 do not use BYVAL unless the [[SUB]] program referred to is from a different programming language.
* PDS versions can use BYVAL as it is intended in any [[SUB]] or [[FUNCTION]] parameters.
* BYVAL could also be used with [[ABSOLUTE]] in QBasic.
{{PageExamples}}
''Example 1:'' BYVAL is used to preserve the values sent to an external procedure so they remain the same after they are used:
{{CodeStart}} '' ''
{{Cl|DECLARE LIBRARY}} "SDL"
{{Cl|SUB}} MouseMove {{Cl|ALIAS}} SDL_WarpMouse ({{Cl|BYVAL}} xoffset&, {{Cl|BYVAL}} yoffset&)
{{Cl|DECLARE LIBRARY|END DECLARE}}
{{CodeEnd}}
: ''Note:'' The DLL call above uses the SDL library, which was included with QB64 up to version 0.954. Won't work with '''version 1.000 and up'''.
''Example 2:'' Passing parameters "by value" using [[parenthesis|brackets]] when calling a [[SUB]] or [[FUNCTION]] in QBasic or QB64.
{{CodeStart}} '' ''
{{Cl|CALL}} MySUB (a%, (b%), (c%)) 'CALL SUB b and c stay 0 after sub
MySUB a%, b%, (c%) 'call SUB again without CALL only c stays 0 after sub
{{Cl|PRINT}} "After procedures: "; a%, b%, c%
{{Cl|SUB}} MySUB (a%, b%, c%)
a% = a% + 1: b% = b% + 1: c% = c% + 1
{{Cl|PRINT}} "Inside procedure: "; a%, b%, c%
{{Cl|END SUB}} '' ''
{{CodeEnd}}
{{OutputStart}}
Inside procedure: 1 1 1
Inside procedure: 2 1 1
After procedures: 2 1 0
{{OutputEnd}}
:''Explanation:'' Both SUB calls pass just the '''values''' of b% and c% to the procedure. The first variable, a%, is passed by '''reference''' (the default) so the value was changed by the SUB procedure. Brackets can only be used in the [[CALL]] or function reference.
{{PageSeeAlso}}
* [[DECLARE LIBRARY]]
* [[SUB]], [[FUNCTION]]
* [[CALL]], [[ALIAS]]
* [[DECLARE]], [[DECLARE (non-BASIC statement)]] {{text|(not used by QB64)}}
* [[Libraries#C++_Variable_Types|C++ Variable Types]]
{{PageNavigation}}
#REDIRECT [[DECLARE LIBRARY]]

View file

@ -202,9 +202,7 @@ text$ = "HelloWorld"
''Example 8:'' Changing light gray text in [[SCREEN]] 0 to a 32 bit custom color using a [[LONG]] HTML hexadecimal value:
{{CodeStart
2b54
}} '' ''
{{CodeStart}} '' ''
{{Cl|COLOR}} 7
{{Cl|PRINT}} "Color 7 is gray"
K$ = {{Cl|INPUT$}}(1)

View file

@ -33,7 +33,7 @@
{{PageExamples}}
''Example 1:'' This example plays Midi files using the ''playmidi32.dll'' documented here: [http://libertybasicuniversity.com/lbnews/nl110/midi3.htm Liberty Basic University].                         Download the following DLL file to your main QB64 folder: [http://www.qb64.net/playmidi32.dll PlayMidi32.dll]
''Example 1:'' This example plays Midi files using the ''playmidi32.dll'' documented here: [http://libertybasicuniversity.com/lbnews/nl110/midi3.htm Liberty Basic University]. Download the following DLL file to your main QB64 folder: [https://www.qb64.org/resources/Playmidi32.dll PlayMidi32.dll]
{{CodeStart}} '' ''
{{Cl|DECLARE DYNAMIC LIBRARY}} "playmidi32"
{{Cl|FUNCTION}} PlayMIDI& (filename {{Cl|AS}} {{Cl|STRING}})

View file

@ -86,37 +86,6 @@ MouseMove 200, 200 '' ''
: '''Note: What libraries are or aren't automatically used in the linking process is not formally defined, nor is it guaranteed to stay that way in future versions of QB64.'''
''Example 3:'' For this next example, download the file 'add.lib' and place it in you QB64 folder: http://www.qb64.net/add.lib
{{CodeStart}} '' ''
{{Cl|DECLARE LIBRARY}} "add"
{{Cl|FUNCTION}} addtwo& ({{Cl|BYVAL}} value&)
{{Cl|END}} DECLARE
PRINT addtwo(1) '' ''
{{CodeEnd}}
:''Explanation:'' Here, we tell QB64 to link to '''add.lib''' (QB64 searches for '''add.lib''', '''add.a''', and '''add.o''' in that order and uses the first that it finds). The function '''addtwo''' exists inside the library file '''add.lib''' but isn't defined anywhere else. QB64 creates the C definition for the function '''addtwo''' so that it can be called from our QB64 code.
: '''Note: If the C function definition auto-created by QB64 does not exactly match the definition in the library file, it will not work. As a result of this it is often better to provide the C function definitions in the form of a C header file, such as in the following example.'''
''Example 4:'' NTport is a commercial library hosted at http://www.zealsoftstudio.com/ntport/, but it does provide an evaluation version (it has a 3 second wait pop-up window) which we will use here. You don't need to download NTport, just download the following 3 files and put them in your QB64 folder:
<center>[http://www.qb64.net/ntport/ntport.lib NTport.lib]            [http://www.qb64.net/ntport/ntport.h NTport.h]               [http://www.qb64.net/ntport/ntport.dll Ntport.dll]</center>
:'''IMPORTANT:''' The DLL is loaded automatically by the static library, we are not linking directly to the DLL, we are '''static linking''' (NOT directly or dynamically linking). This is an important concept to understand!
{{CodeStart}}
DECLARE LIBRARY "ntport"
FUNCTION GetLPTPortAddress% (BYVAL PortNo%)
END DECLARE
PRINT "&H" + HEX$(GetLPTPortAddress%(1))
{{CodeEnd}}
:''Explanation:'' DECLARE LIBRARY also searches for C header files with a '''.h''' extension. So in this case it is using the header '''ntport.h''' and linking with '''ntport.lib''' just by specifying "NTPORT". The C function definitions are stored in '''ntport.h''' so even if our QB64 functions don't exactly match (eg. LONG instead of INTEGER) it will still work.
:If you look inside ''''ntport.h'''' you'll find the following line containing the C function definition of the command we used:
{{TextStart}} WORD WINAPI GetLPTPortAddress(WORD PortNo);
{{TextEnd}}
<center>Galleon's '''OpenGL''' Library with demo program download: http://www.qb64.net/gl_package.zip</center>
<center>'''QB64 version 1.000 and up produce standalone executables. External DLL files must be distributed with your program.'''</center>
<center>'''Note: QB64 versions prior to 1.000 require all default DLL files to either be with the program or in the C:\WINDOWS\SYSTEM32 folder.'''</center>
@ -130,7 +99,6 @@ PRINT "&H" + HEX$(GetLPTPortAddress%(1))
* [[OpenGL Libraries]], [[SDL Libraries]]
* [[SFML Libraries]]
* [[SQL Client]]
* [http://www.qb64.net/forum/index.php?topic=11810.msg102081#msg102081 DECLARE LIBRARY and C++ Variable Types]
{{PageNavigation}}

View file

@ -2,7 +2,7 @@ The [[FIELD]] statement creates a [[STRING]] type definition for a [[RANDOM|rand
{{PageSyntax}}
: [[FIELD]] [#]{{Parameter|fileNumber&}} {{Parameter|fieldWidth1%}} AS {{Parameter|variable1$}}[, {{Parameter|fieldWidthN%}} AS {{Parameter|variableN$}}]
: [[FIELD]] [#]{{Parameter|fileNumber&}}, {{Parameter|fieldWidth1%}} AS {{Parameter|variable1$}}[, {{Parameter|fieldWidthN%}} AS {{Parameter|variableN$}}]
{{PageDescription}}

View file

@ -198,9 +198,7 @@ DO
''Example 7:'' Creating upper [[ASCII]] characters in a QB program using '''Alt +''' three number keys:
{{CodeStart}}
DO
A$ = "": {{Cl|
2a79
WHILE}} A$ = "": A$ = {{Cl|INKEY$}}: {{Cl|WEND}}
A$ = "": {{Cl|WHILE}} A$ = "": A$ = {{Cl|INKEY$}}: {{Cl|WEND}}
{{Cl|IF...THEN|IF}} {{Cl|LEN}}(A$) = 2 {{Cl|THEN}} '2 byte INKEY$ return
B$ = {{Cl|RIGHT$}}(A$, 1) 'read second byte
b% = {{Cl|ASC}}(B$) 'read second byte code

View file

@ -144,9 +144,7 @@
' '''CapL A S D F G H J K L ;: '" Enter 4/◄- 5 6/-► E'''
' 391 203 217 202 208 205 206 196 193 194 145 141 167 426 431 432 '''n'''
' '''Shift Z X C V B N M ,< .> /? Shift ▲ 1/End 2/▼ 3/PD t'''
' 390 212 222 201 224 204 200 199
4000
130 136 133 389 443 427 428 432 '''e'''
' 390 212 222 201 224 204 200 199 130 136 133 389 443 427 428 432 '''e'''
' '''Ctrl Win Alt Spacebar Alt Win Menu Ctrl ◄- ▼ -► 0/Insert ./Del r'''
' 412 413 410 182 409 414 405 411 442 444 441 86 420 421
'

View file

@ -1,5 +1,5 @@
__NOTOC__
<div id="toc"><p style="text-align: center"><br> '''Alphabetical QB64 Keyword Listings''' <br><br>     '''QB 64:'''  [[#uA|_A]] [[#uB|_B]] [[#uC|_C]] [[#uD|_D]] [[#uE|_E]] [[#uF|_F]] [[#uG|_G]] [[#uH|_H]] [[#uI|_I]] [[#uK|_K]] [[#uL|_L]] [[#uM|_M]] [[#uN|_N]] [[#uO|_O]] [[#uP|_P]] [[#uR|_R]] [[#uS|_S]] [[#uT|_T]] [[#uU|_U]] [[#uV|_V]] [[#uW|_W]]                <br><br>'''QBasic:'''  [[#A|A]]   [[#B|B]]   [[#C|C]]   [[#D|D]]   [[#E|E]]    [[#F|F]]   [[#G|G]]   [[#H|H]]    [[#I| I]]    [[#K|K]]   [[#L|L]]   [[#M|M]]   [[#N|N]]    [[#O|O]]   [[#P|P]]    [[#R|R]]   [[#S|S]]    [[#T|T]]   [[#U|U]]   [[#V|V]]   [[#W|W]]   [[#X|X]]   <br><br>'''OpenGL:'''   [[#glA|A]]    [[#glB|B]]    [[#glC|C]]    [[#glD|D]]    [[#glE|E]]     [[#glF|F]]    [[#glG|G]]    [[#glH|H]]    [[#glI| I  ]]   [[#glL|L]]    [[#glM|M]]    [[#glN|N]]     [[#glO|O]]    [[#glP|P]]     [[#glR|R]]    [[#glS|S]]     [[#glT|T]]    [[#glV|V]]       <br><br> [[#symbols|Symbols]] '''   -   ''' [[#references|References]]<br><br>[[Full Story|{{small|Menu Created by Cyperium}} ]]</p></div>
<div id="toc"><p style="text-align: center"><br> '''Alphabetical QB64 Keyword Listings''' <br><br>     '''QB 64:'''  [[#uA|_A]] [[#uB|_B]] [[#uC|_C]] [[#uD|_D]] [[#uE|_E]] [[#uF|_F]] [[#uG|_G]] [[#uH|_H]] [[#uI|_I]] [[#uK|_K]] [[#uL|_L]] [[#uM|_M]] [[#uN|_N]] [[#uO|_O]] [[#uP|_P]] [[#uR|_R]] [[#uS|_S]] [[#uT|_T]] [[#uU|_U]] [[#uV|_V]] [[#uW|_W]]                <br><br>'''QBasic:'''  [[#A|A]]   [[#B|B]]   [[#C|C]]   [[#D|D]]   [[#E|E]]    [[#F|F]]   [[#G|G]]   [[#H|H]]    [[#I| I]]    [[#K|K]]   [[#L|L]]   [[#M|M]]   [[#N|N]]    [[#O|O]]   [[#P|P]]    [[#R|R]]   [[#S|S]]    [[#T|T]]   [[#U|U]]   [[#V|V]]   [[#W|W]]   [[#X|X]]   <br><br>'''OpenGL:'''   [[#glA|A]]    [[#glB|B]]    [[#glC|C]]    [[#glD|D]]    [[#glE|E]]     [[#glF|F]]    [[#glG|G]]    [[#glH|H]]    [[#glI| I  ]]   [[#glL|L]]    [[#glM|M]]    [[#glN|N]]     [[#glO|O]]    [[#glP|P]]     [[#glR|R]]    [[#glS|S]]     [[#glT|T]]    [[#glV|V]]       <br><br> [[#symbols|Symbols]] '''   -   ''' [[#references|References]]<br><br>{{small|Menu Created by Cyperium}}</p></div>
@ -41,6 +41,8 @@ __NOTOC__
* [[Mathematical_Operations|_ARCSEC]] (function) {{text|is the inverse function of the secant. http://mathworld.wolfram.com/InverseSecant.html}}
* [[_ASIN]] (function) {{text|Returns the principal value of the arc sine of x, expressed in radians.}}
* [[_ASINH]] (function) {{text|Returns the arc hyperbolic sine of x, expressed in radians.}}
* [[_ASSERT]] (statement) {{text|Performs debug tests.}}
* [[$ASSERTS]] (metacommand) {{text|Enables the [[_ASSERT]] macro}}
* [[_ATAN2]] (function) {{text|Returns the principal value of the [[ATN|arc tangent]] of y/x, expressed in radians.}}
* [[_ATANH]] (function) {{text|Returns the arc hyperbolic tangent of x, expressed in radians.}}
* [[_AUTODISPLAY]] (statement) {{text|enables the automatic display of the screen image changes previously disabled by [[_DISPLAY]].}}
@ -69,6 +71,8 @@ __NOTOC__
<div id = "uC">_C</div>
* [[_CAPSLOCK (function)]] {{text|returns -1 when Caps Lock is on}}
* [[_CAPSLOCK]] (statement) {{text|sets Caps Lock key state}}
* [[$CHECKING]] (QB64 C++ [[Metacommand]]) {{text|turns event error checking OFF or ON.}}
* [[_CEIL]] (function) {{text|Rounds x upward, returning the smallest integral value that is not less than x.}}
* [[_CLEARCOLOR (function)]] {{text|returns the current transparent color of an image.}}
@ -78,6 +82,7 @@ __NOTOC__
* [[_CLIPBOARD$ (statement)]] {{text|sets and overwrites the [[STRING]] value in the operating system's clipboard.}}
* [[_CLIPBOARDIMAGE (function)]] {{text|pastes an image from the clipboard into a new QB64 image in memory.}}
* [[_CLIPBOARDIMAGE]] {{text|(statement) copies a valid QB64 image to the clipboard.}}
* [[$COLOR]] (metacommand) {{text|includes named color constants in a program}}
* [[_COMMANDCOUNT]] (function) {{text|returns the number of arguments passed to the compiled program from the command line.}}
* [[_CONNECTED]] (function) {{text|returns the status of a TCP/IP connection handle.}}
* [[_CONNECTIONADDRESS$]] (TCP/IP function) {{text|returns a connected user's STRING IP address value using the handle.}}
@ -109,6 +114,7 @@ __NOTOC__
* [[DECLARE DYNAMIC LIBRARY|DECLARE DYNAMIC LIBRARY (QB64 statement)]] {{text|declares DYNAMIC, CUSTOMTYPE or STATIC library (DLL) [[SUB]] or [[FUNCTION]].}}
* [[_DEFAULTCOLOR]] (function) {{text|returns the current default text color for an image handle or page.}}
* [[_DEFINE]] (statement) {{text|defines a range of variable names according to their first character as a data type.}}
* [[_DEFLATE$]] (function) {{text|compresses a string}}
* [[_DELAY]] (statement) {{text|suspends program execution for a [[SINGLE]] number of seconds.}}
* [[_DEPTHBUFFER]] (statement) {{text|enables, disables, locks or clears depth buffering.}}
* [[_DESKTOPHEIGHT]] (function) {{text|returns the height of the desktop (not program window).}}
@ -131,9 +137,7 @@ __NOTOC__
----
<div id
4000
= "uE">_E</div>
<div id = "uE">_E</div>
* [[_ECHO]] (statement) {{text|used in conjunction with $IF for the precompiler.}}
* [[$ELSE]] (Pre-Compiler [[Metacommand]]) {{text|used in conjunction with $IF for the precompiler.}}
* [[$ELSEIF]] (Pre-Compiler [[Metacommand]]) {{text|used in conjunction with $IF for the precompiler.}}
@ -189,6 +193,7 @@ __NOTOC__
* [[_ICON]] (statement) {{text|designates a [[_LOADIMAGE]] image file handle to be used as the program's icon or loads the embedded icon (see [[$EXEICON]]).}}
* [[_INCLERRORFILE$]] {function) {{text|returns the name of the original source code $INCLUDE module that caused the most recent error.}}
* [[_INCLERRORLINE]] (function) {{text|returns the line number in an included file that caused the most recent error.}}
* [[_INFLATE$]] (function) {{text|decompresses a string}}
* [[_INSTRREV]] (function) {{text|allows searching for a substring inside another string, but unlike [[INSTR]] it returns the last occurrence instead of the first one.}}
* [[_INTEGER64]] (&& numerical type) {{text|can hold whole numerical values from -9223372036854775808 to 9223372036854775807.}}
@ -257,6 +262,9 @@ __NOTOC__
<div id = "uN">_N</div>
* [[_NEWIMAGE]] (function) {{text|creates a designated size program [[SCREEN]] or page image and returns a handle value.}}
* [[$NOPREFIX]] (metacommand) {{text|allows QB64-specific keywords to be used without the underscore prefix.}}
* [[_NUMLOCK (function)]] {{text|returns -1 when Num Lock is on}}
* [[_NUMLOCK]] (statement) {{text|sets Num Lock key state}}
<p style="text-align: center">([[#toc|Return to Table of Contents]])</p>
@ -299,6 +307,8 @@ __NOTOC__
* [[_R2G]] (function) {{text|converts radians to gradient angle values.}}
* [[_RED]] (function) {{text|function returns the palette or the red component intensity of a 32-bit image color.}}
* [[_RED32]] (function) {{text|returns the red component intensity of a 32-bit color value.}}
* [[_READBIT]] (function) {{text|returns the state of the specified bit of an integer variable.}}
* [[_RESETBIT]] (function) {{text|is used to set the specified bit of an integer variable to 0.}}
* [[$RESIZE]] ([[Metacommand]]) {{text|used with ON allows a user to resize the program window where OFF does not.}}
* [[_RESIZE]] (statement) {{text|sets resizing of the window ON or OFF and sets the method as _STRETCH or _SMOOTH.}}
* [[_RESIZE (function)]] {{text|returns -1 when a program user wants to resize the program screen.}}
@ -331,8 +341,11 @@ __NOTOC__
* [[_SCREENSHOW]] (statement) {{text|displays the program window after it has been hidden by [[_SCREENHIDE]].}}
* [[_SCREENX]] (function) {{text|returns the program window's upper left corner horizontal position on the desktop.}}
* [[_SCREENY]] (function) {{text|returns the program window's upper left corner vertical position on the desktop.}}
* [[_SCROLLLOCK (function)]] {{text|returns -1 when Scroll Lock is on}}
* [[_SCROLLLOCK]] (statement) {{text|sets Scroll Lock key state}}
* [[_SETALPHA]] (statement) {{text|sets the alpha channel transparency level of some or all of the pixels of an image.}}
* [[_SETBIT]] (function) {{text|is used to set the specified bit of an integer variable to 1.}}
* [[_SHELLHIDE]] (function) {{text|returns the code sent by a program exit using [[END]] or [[SYSTEM]] followed by an [[INTEGER]] value.}}
* [[_SHL]] (function) {{text|used to shift the bits of a numerical value to the left}}
* [[_SHR]] (function) {{text|used to shift the bits of a numerical value to the right.}}
@ -375,6 +388,7 @@ __NOTOC__
* [[Mathematical_Operations|_TANH]] (function) {{text|Returns the hyperbolic tangent of x radians.}}
* [[_TITLE]] (statement) {{text|sets the program title [[STRING|string]] value.}}
* [[_TITLE$]] (function) {{text|gets the program title [[STRING|string]] value.}}
* [[_TOGGLEBIT]] (function) {{text|is used to toggle the specified bit of an integer variable from 1 to 0 or 0 to 1.}}
* [[_TOTALDROPPEDFILES]] (function) {{text| returns the number of items (files or folders) dropped in a program's window after [[_ACCEPTFILEDROP]] is enabled.}}
* [[_TRIM$]] (function) {{text|shorthand to [[LTRIM$]]([[RTRIM$]]("text"))}}
@ -590,9 +604,7 @@ __NOTOC__
<div id = "K">K</div>
* [[KEY n]] (statement) {{text|used with [[ON KEY(n)]]
4000
events to assign a "softkey" string to a key or create a user defined key.}}
* [[KEY n]] (statement) {{text|used with [[ON KEY(n)]] events to assign a "softkey" string to a key or create a user defined key.}}
* [[KEY(n)]] (statement) {{text|used with [[ON KEY(n)]] events to assign, enable, disable or suspend event trapping.}}
* [[KEY LIST]] (statement) {{text|lists the 12 Function key soft key string assignments going down left side of screen.}}
* [[KILL]] (statement) {{text|deletes the specified file without a warning. Remove empty folders with [[RMDIR]].}}
@ -818,8 +830,6 @@ events to assign a "softkey" string to a key or create a user defined key.}}
<div id = "W">W</div>
* [[WAIT]] (statement) {{text|waits until a vertical retrace is started or a [[SCREEN|screen]] draw ends.}}
* [[WEND]] (statement) {{text|the bottom end of a [[WHILE...WEND]] loop.}}
4000
* [[WHILE]] (condition) {{text|evaluates a [[DO...LOOP]] or [[WHILE...WEND]] condition until it is False.}}
* [[WHILE...WEND]] (statement) {{text|sets a recursive procedure loop that can only be exited using the [[WHILE]] conditional argument.}}
* [[WIDTH]] (statement) {{text|sets the text column and row sizes in several [[SCREEN]] modes.}}
@ -1139,9 +1149,7 @@ events to assign a "softkey" string to a key or create a user defined key.}}
* [[_glRasterPos4dv]] (statement) {{text|OpenGL command}}
<p style="text-align: center">([[#toc|Return to Table of Contents]])</p>
* [[_glRasterPos4f]] (statement) {{text|OpenGL command}}
* [[_glRasterPos4fv]
4000
] (statement) {{text|OpenGL command}}
* [[_glRasterPos4fv]] (statement) {{text|OpenGL command}}
* [[_glRasterPos4i]] (statement) {{text|OpenGL command}}
* [[_glRasterPos4iv]] (statement) {{text|OpenGL command}}
* [[_glRasterPos4s]] (statement) {{text|OpenGL command}}

View file

@ -168,9 +168,7 @@ Keywords beginning with an _underscore can only be compiled in QB64.
* [[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
4000
with values from -32768 to 32767. [[_UNSIGNED|Unsigned]] to 65535.}}
* [[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.}}
@ -424,9 +422,7 @@ The following table describes the error codes that are reported by the '''QB64''
* [[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 o
4000
r DOS handle number.}}
* [[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.}}
@ -631,9 +627,7 @@ r DOS handle number.}}
* [[DECLARE LIBRARY| END DECLARE]] (QB64 Only) {{text|required at the END of the block of Library declarations in QB64.}}
<center>'''QB64 also supports [[$INCLUDE]] text code file Libr
4000
aries. QB64 does not support QLB Libraries or OBJ files.'''</center>
<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>
@ -871,9 +865,7 @@ aries. QB64 does not support QLB Libraries or OBJ files.'''</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/NE
4000
XT or WHILE/WEND)}}
* [[_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.}}
@ -1067,9 +1059,7 @@ XT or WHILE/WEND)}}
* [[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]] (
4000
function) {{text|used in [[PRINT]] and [[LPRINT]] statements to print or output 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 file

@ -287,9 +287,7 @@ END FUNCTION '' ''
ARCSCH(x) = ARSINH(x) ^ -1
ARCOTH(x) = ARTANH(x) ^ -1
4000
'''Hyperbolic sine and cosine satisfy the Pythagorean trig. identity:'''
'''Hyperbolic sine and cosine satisfy the Pythagorean trig. identity:'''
(COSH(x) ^ 2) - (SINH(x) ^ 2) = 1

View file

@ -276,9 +276,7 @@ pcolorp = gcolorp
pcolorp = {{Cl|INSTR}}("0123456789abcdef", {{Cl|LCASE$}}({{Cl|MID$}}(p$, p, 1))) - 1
{{Cl|END SELECT}}
{{Cl|IF...THEN|IF}} {{Cl|NOT}} pcolorp = -1 {{Cl|THEN}}
{
2b3c
{Cl|IF...THEN|IF}} gscalep > 1 {{Cl|THEN}}
{{Cl|IF...THEN|IF}} gscalep > 1 {{Cl|THEN}}
{{Cl|LINE}} ((gposxp - 1) * gscalep, (gposyp - 1) * gscalep)-{{Cl|STEP}}(gscalep - 1, gscalep - 1), pcolorp, BF
{{Cl|ELSE}}:
{{Cl|PSET}} (gposxp, gposyp), pcolorp

View file

@ -10,8 +10,9 @@ The '''PRINT #''' statement sends QB64 formatted data to an open connection hand
* Always check connections to handles before sending data.
''Availability:''
* Version 0.954 and older. For version 1.000 and up use [[PUT (TCP/IP statement)]]
==Availability==
* '''Version 0.954 and older'''.
** For version 1.000 and up use [[PUT (TCP/IP statement)]]
:::::'''Communicating using QB64 Formatted messages:'''

File diff suppressed because it is too large Load diff

View file

@ -15,7 +15,7 @@ The '''RSET''' statement right-justifies a string according to length of the str
{{CodeStart}} '' ''
{{Cl|CLS}}
{{Cl|DIM}} thestring {{Cl|AS}} {{Cl|STRING}} * 10
{{Cl|PRINT}} "12345678901234567890
{{Cl|PRINT}} "12345678901234567890"
{{Cl|RSET}} thestring = "Hello!"
{{Cl|PRINT}} thestring
anystring$ = {{Cl|SPACE$}}(20)

View file

@ -7,8 +7,8 @@ The '''SGN''' function returns the sign of a number value.
* Returns -1 when a sign is negative, 0 when a value is zero or 1 when a value is positive.
* Used to hold the original sign of a number.
* Returns -1 when a sign is negative, 0 when a value is zero, or 1 when a value is positive.
* Function is used to store the original sign of a number.
* '''QB64''' allows programs to return only [[_UNSIGNED]] variable values using a [[_DEFINE]] statement.

View file

@ -48,16 +48,14 @@ Center 10, 15, "This text is centered." ' example module sub call
{{Cl|DEFINT}} A-Z ' only code allowed before SUB line is a DEF statement or a comment
{{Cl|SUB}} Center (Tclr, Trow, Text$)
{{Cl|DEF SEG}} = &H40
Columns = {{Cl|PEEK}}(&H4A)
{{Cl|DEF SEG}}
Columns = {{Cl|_WIDTH}} / {{Cl|_FONTWIDTH}} 'Convert _WIDTH (in pixels) to width in characters
Middle = (Columns \ 2) + 1 ' reads any screen mode width
Tcol = Middle - ({{Cl|LEN}}(Text$) \ 2)
{{Cl|COLOR}} Tclr: {{Cl|LOCATE}} Trow, Tcol: {{Cl|PRINT}} Text$; ' end semicolon prevents screen roll
{{Cl|END SUB}} '' ''
{{CodeEnd}}
:''Explanation:'' The procedure centers text printed to the screen. The parameters are the text color, row and the text itself as a string or string variable. The maximum width of the screenmode is found and divided in half to find the center point. The text string's length is also divided in half and subtracted from the screen's center position. The procedure will also work when the [[WIDTH]] statement has been used. When adding variables to Text$ use the + concatenation operator. Not semicolons!
:''Explanation:'' The procedure centers text printed to the screen. The parameters are the text color, row and the text itself as a string or string variable. The maximum width of the screen mode in characters is found and divided in half to find the center point. The text string's length is also divided in half and subtracted from the screen's center position. The procedure will also work when the [[WIDTH]] statement has been used. When adding variables to Text$ use the + concatenation operator. Not semicolons!
''Example 2:'' SUB and [[FUNCTION]] procedures always return to the place they were called in the main or other sub-procedures:

47
internal/help/_ASSERT.txt Normal file
View file

@ -0,0 +1,47 @@
{{DISPLAYTITLE:_ASSERT}}
The [[_ASSERT]] statement can be used to perform tests in code that's in development, for debugging purposes.
{{PageSyntax}}
:[[_ASSERT]] {{Parameter|condition}}[, {{Parameter|errorMessage$}}]
{{PageDescription}}
* {{Parameter|condition}} is the condition that must be met in order to consider the _ASSERT valid.
* Optional {{Parameter|errorMessage$}} is the message to be displayed in the console window if [[$ASSERTS|$ASSERTS:CONSOLE]] is used.
* If the condition is not met (that is, if it evaluates to 0), an error occurs ("_ASSERT failed on line #") and program execution stops.
==Availability==
* '''Version 1.4 and up'''.
{{PageExamples}}
''Example:'' Adding test checks for parameter inputs in a function.
{{CodeStart}}
{{Cl|$ASSERTS}}:CONSOLE
{{Cl|DO}}
a = {{Cl|INT}}({{Cl|RND}} * 10)
b$ = myFunc$(a)
{{Cl|PRINT}} a, , b$
{{Cl|_LIMIT}} 3
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|_KEYHIT}}
{{Cl|FUNCTION}} myFunc$ (value {{Cl|AS}} {{Cl|SINGLE}})
{{Cl|_ASSERT}} value > 0, "Value cannot be zero"
{{Cl|_ASSERT}} value <= 10, "Value cannot exceed 10"
{{Cl|IF}} value > 1 {{Cl|THEN}} plural$ = "s"
myFunc$ = {{Cl|STRING$}}(value, "*") + {{Cl|STR$}}(value) + " star" + plural$ + " :-)"
{{Cl|END}} {{Cl|FUNCTION}}
{{CodeEnd}}
{{PageSeeAlso}}
* [[$ASSERTS]]
* [[$CHECKING]]
* [[Relational Operations]]
{{PageNavigation}}

View file

@ -0,0 +1,19 @@
{{DISPLAYTITLE:_CAPSLOCK}}
The [[_CAPSLOCK]] statement sets the state of the Caps Lock key.
{{PageSyntax}}
: [[_CAPSLOCK]] {ON|OFF|_TOGGLE}
==Availability==
* Version 1.4 and up.
* [[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Not available in Linux or macOS]].
{{PageSeeAlso}}
* [[_CAPSLOCK (function)]], [[_NUMLOCK (function)]], [[_SCROLLLOCK (function)]]
* [[_NUMLOCK]] (statement), [[_SCROLLLOCK]] (statement)
{{PageNavigation}}

View file

@ -0,0 +1,19 @@
{{DISPLAYTITLE:_CAPSLOCK (function)}}
The [[_CAPSLOCK (function)| _CAPSLOCK]] function returns the current state of the Caps Lock key as on (-1) or off (0).
{{PageSyntax}}
: {{Parameter|keyStatus%%}} = [[_CAPSLOCK (function)| _CAPSLOCK]]
==Availability==
* Version 1.4 and up.
* [[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Not available in Linux or macOS]].
{{PageSeeAlso}}
* [[_NUMLOCK (function)]], [[_SCROLLLOCK (function)]]
* [[_CAPSLOCK]] (statement), [[_NUMLOCK]] (statement), [[_SCROLLLOCK]] (statement)
{{PageNavigation}}

View file

@ -3,7 +3,7 @@ The [[_COPYIMAGE]] function creates an identical designated image in memory with
{{PageSyntax}}
: newhandle& = [[_COPYIMAGE]][({{Parameter|imageHandle&]][, {{Parameter|mode%]])]]
: newhandle& = [[_COPYIMAGE]][({{Parameter|imageHandle&}}[, {{Parameter|mode%}})]]
{{Parameters}}

View file

@ -0,0 +1,48 @@
{{DISPLAYTITLE:_DEFLATE$}}
The [[_DEFLATE$]] function compresses a [[STRING|string]].
{{PageSyntax}}
:{{Parameter|result$}} = [[_DEFLATE$]]({{Parameter|stringToCompress$}})
{{PageDescription}}
* {{Parameter|result$}} will contain the compressed version of {{Parameter|stringToCompress$}}.
* To decompress the resulting string, use [[_INFLATE$]].
==Availability==
* '''Version 1.4 and up'''.
{{PageExamples}}
''Example 1:'' Compressing a long string of text.
{{CodeStart}}
a$ = "The quick brown fox jumps over the lazy dog. "
{{Cl|PRINT}} "Original string (a$): "; a$
{{Cl|FOR}} i = 1 {{Cl|TO}} 15
a$ = a$ + a$
{{Cl|NEXT}}
{{Cl|PRINT}} "After concatenating it into itself several times, LEN(a$) ="; {{Cl|LEN}}(a$)
b$ = {{Cl|_DEFLATE$}}(a$)
{{Cl|PRINT}} "After using _DEFLATE$ to compress it, LEN ="; {{Cl|LEN}}(b$)
{{Cl|PRINT}} {{Cl|USING}} "(compressed size is #.###% of the original)"; (({{Cl|LEN}}(b$) * 100) / {{Cl|LEN}}(a$))
c$ = {{Cl|_INFLATE$}}(b$)
PRINT "After using _INFLATE$ to decompress it, LEN ="; {{Cl|LEN}}(c$)
{{CodeEnd}}
{{OutputStart}}
Original string (a$): The quick brown fox jumps over the lazy dog
After concatenating it into itself several times, LEN(a$) = 1474560
After using _DEFLATE$ to compress it, LEN = 4335
(compressed size is 0.295% of the original)
After using _INFLATE$ to decompress it, LEN = 1474560
{{OutputEnd}}
{{PageSeeAlso}}
* [[_INFLATE$]]
{{PageNavigation}}

View file

@ -12,9 +12,10 @@ The [[_DONTBLEND]] statement turns off 32 bit alpha blending for the current ima
{{PageDescription}}
* If {{Parameter|imageHandle&}} is not valid, an [[ERROR Codes|Invalid handle]] error will occur.
* [[_DONTBLEND]] is faster than the default [[_BLEND]] unless you really need to use it in 32 bit.
* [[_DONTBLEND]] is faster than the default [[_BLEND]]. '''You may want to disable it''', unless you really need to use it in 32 bit.
* '''32 bit screen surface backgrounds (black) have zero [[_ALPHA]] so that they are transparent when placed over other surfaces.'''
* Use [[CLS]] or [[_DONTBLEND]] to make a new surface background [[_ALPHA]] 255 or opaque.
* Use [[CLS]] to make a new surface background [[_ALPHA]] 255 or opaque.
* Both [[_SOURCE]] and [[_DEST]] must have [[_BLEND]] enabled, or else colors will NOT blend.
{{PageExamples}}
@ -41,7 +42,7 @@ SaveBackground& = {{Cl|_COPYIMAGE}}(0)
{{Cl|END FUNCTION}}
{{Cl|SUB}} RestoreBackground (Image {{Cl|AS}} {{Cl|LONG}})
{{Cl|_PUTIMAGE}} (200, 200), Image, 0
{{Cl|_PUTIMAGE}} , Image, 0
{{Cl|END SUB}} '' ''
{{CodeEnd}}

View file

@ -0,0 +1,46 @@
{{DISPLAYTITLE:_INFLATE$}}
The [[_INFLATE$]] function decompresses a [[STRING|string]] compressed by the [[_DEFLATE$]] function.
{{PageSyntax}}
:{{Parameter|result$}} = [[_INFLATE$]]({{Parameter|stringToDecompress$}})
{{PageDescription}}
* {{Parameter|result$}} will contain the original version of {{Parameter|stringToDecompress$}}.
==Availability==
* '''Version 1.4 and up'''.
{{PageExamples}}
''Example 1:'' Compressing a long string of text.
{{CodeStart}}
a$ = "The quick brown fox jumps over the lazy dog. "
{{Cl|PRINT}} "Original string (a$): "; a$
{{Cl|FOR}} i = 1 {{Cl|TO}} 15
a$ = a$ + a$
{{Cl|NEXT}}
{{Cl|PRINT}} "After concatenating it into itself several times, LEN(a$) ="; {{Cl|LEN}}(a$)
b$ = {{Cl|_DEFLATE$}}(a$)
{{Cl|PRINT}} "After using _DEFLATE$ to compress it, LEN ="; {{Cl|LEN}}(b$)
{{Cl|PRINT}} {{Cl|USING}} "(compressed size is #.###% of the original)"; (({{Cl|LEN}}(b$) * 100) / {{Cl|LEN}}(a$))
c$ = {{Cl|_INFLATE$}}(b$)
PRINT "After using _INFLATE$ to decompress it, LEN ="; {{Cl|LEN}}(c$)
{{CodeEnd}}
{{OutputStart}}
Original string (a$): The quick brown fox jumps over the lazy dog
After concatenating it into itself several times, LEN(a$) = 1474560
After using _DEFLATE$ to compress it, LEN = 4335
(compressed size is 0.295% of the original)
After using _INFLATE$ to decompress it, LEN = 1474560
{{OutputEnd}}
{{PageSeeAlso}}
* [[_DEFLATE$]]
{{PageNavigation}}

View file

@ -208,9 +208,7 @@ DO
xx1% = DPLANE2D(0, 0): yy1% = DPLANE2D(0, 1)
xx3% = DPLANE2D(2, 0): yy3% = DPLANE2D(2, 1)
xx4% = DPLANE2D(3, 0): yy4% = DPLANE2D(3, 1)
{{Cl|_MAPTRIANGLE}} (0, 0
4000
)-(255, 255)-(255, 0), TextureImage& TO(xx3%, yy3%)-(xx1%, yy1%)-(xx4%, yy4%)
{{Cl|_MAPTRIANGLE}} (0, 0)-(255, 255)-(255, 0), TextureImage& TO(xx3%, yy3%)-(xx1%, yy1%)-(xx4%, yy4%)
'CALL DrawTriangle(xx1%, yy1%, xx3%, yy3%, xx4%, yy4%, col%)
{{Cl|END IF}}
{{Cl|NEXT}}
@ -636,9 +634,7 @@ DO
y1% = y2%
ydiff1% = y3% - y1%
ydiff2% = y3% - y2%
{{Cl|IF...
2fb2
THEN|IF}} ydiff1% <> 0 {{Cl|THEN}}
{{Cl|IF...THEN|IF}} ydiff1% <> 0 {{Cl|THEN}}
slope1! = (x3% - x1%) / ydiff1%
{{Cl|ELSE}}
slope1! = 0

View file

@ -0,0 +1,19 @@
{{DISPLAYTITLE: _NUMLOCK}}
The [[_NUMLOCK]] statement sets the state of the Num Lock key.
{{PageSyntax}}
: [[_NUMLOCK]] {ON|OFF|_TOGGLE}
==Availability==
* Version 1.4 and up.
* [[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Not available in Linux or macOS]].
{{PageSeeAlso}}
* [[_CAPSLOCK (function)]], [[_NUMLOCK (function)]], [[_SCROLLLOCK (function)]]
* [[_CAPSLOCK]] (statement), [[_SCROLLLOCK]] (statement)
{{PageNavigation}}

View file

@ -0,0 +1,19 @@
{{DISPLAYTITLE: _NUMLOCK (function)}}
The [[_NUMLOCK (function)| _NUMLOCK]] function returns the current state of the Num Lock key as on (-1) or off (0).
{{PageSyntax}}
: {{Parameter|keyStatus%%}} = [[_NUMLOCK (function)| _NUMLOCK]]
==Availability==
* Version 1.4 and up.
* [[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Not available in Linux or macOS]].
{{PageSeeAlso}}
* [[_CAPSLOCK (function)]], [[_SCROLLLOCK (function)]]
* [[_CAPSLOCK]] (statement), [[_NUMLOCK]] (statement), [[_SCROLLLOCK]] (statement)
{{PageNavigation}}

View file

@ -15,7 +15,6 @@ The [[_OS$]] function returns the operating system and QB64 compiler bit version
{{PageSeeAlso}}
* [[ENVIRON$]]
* [[QB64_FAQ#Q:_How_do_I_upgrade_the_32_bit_Windows_version_of_QB64_to_64_bit_functionality.3F|Upgrading QB64 to use a 64-bit compiler in Windows]]
{{PageNavigation}}

View file

@ -46,7 +46,6 @@
{{PageDescription}}
* _PUTIMAGE can be used without any handle parameters if the [[_SOURCE]] and/or [[_DEST]] are already defined.
* '''The {{Parameter|sourceHandle&}} and {{Parameter|destHandle&}} cannot be the same or an [[ERROR Codes|Illegal Function Call]] error will occur.'''
* If the area of the source is bigger or smaller than the area of the destination then the image is adjusted to fit that area.
* Supports 32 bit alpha blending, color key transparency, true type fonts, stretching, mirroring/flipping, and a variety of graphics file formats including gif, png, bmp & jpg. '''32 bit screen surface backgrounds (black) have zero [[_ALPHA]] and are transparent when placed over other surfaces.''' Use [[CLS]] or [[_DONTBLEND]] to make a new surface background [[_ALPHA]] 255 or opaque.
* All graphical surfaces, including screen pages, can be acted upon in the same manner, and are referred to as "images".
@ -158,9 +157,7 @@ DO
{{Cl|CASE}} "6": x = x + 10: {{Cl|IF...THEN|IF}} x > 1280 {{Cl|THEN}} x = 1280
{{Cl|CASE}} "8": y = y - 10: {{Cl|IF...THEN|IF}} y < 0 {{Cl|THEN}} y = 0
{{Cl|CASE}} "2": y = y + 10: {{Cl|IF...THEN|IF}} y > 720 {{Cl|THEN}} y = 720
{{Cl|CA
271a
SE}} {{Cl|CHR$}}(32): {{Cl|SYSTEM}}
{{Cl|CASE}} {{Cl|CHR$}}(32): {{Cl|SYSTEM}}
{{Cl|END SELECT}}
{{Cl|_DISPLAY}}
{{Cl|LOOP}} '' ''

View file

@ -0,0 +1,57 @@
{{DISPLAYTITLE:_READBIT}}
The [[_READBIT]] function is used to check the state of a specified bit of a integer value.
{{PageSyntax}}
:{{Parameter|result}} = [[_READBIT]]({{Parameter|numericalVariable}}, {{Parameter|numericalValue}})
{{Parameters}}
* {{Parameter|numericalVariable}} is the variable to read the state of a bit of and can be of the following types: [[_BYTE]], [[INTEGER]], [[LONG]], or [[_INTEGER64]].
* Integer values can be signed or [[_UNSIGNED]].
* {{Parameter|numericalValue}} the number of the bit to be read.
{{PageDescription}}
* Used to check the current state of a bit in an integer value.
* Returns -1 if the bit is set(1), otherwise returns 0 if the bit is not set(0)
* Bits start at 0 (so a [[_BYTE]] has bits 0 to 7, [[INTEGER]] 0 to 15, and so on)
==Availability==
* '''Version 1.4 and up'''.
{{PageExamples}}
''Example 1:''
{{CodeStart}}
A~%% = {{Cl|_SETBIT}}(A~%%,4)
{{Cl|PRINT}} "Bit 4 is currently ";
IF {{Cl|_READBIT}}(A~%%,4) = -1 THEN {{Cl|PRINT}} "ON" ELSE {{Cl|PRINT}} "OFF"
{{Cl|PRINT}} "And bit 2 is currently ";
IF {{Cl|_READBIT}}(A~%%,2) = -1 THEN {{Cl|PRINT}} "ON" ELSE {{Cl|PRINT}} "OFF"
{{CodeEnd}}
{{OutputStart}}
Bit 4 is currently ON
And bit 2 is currently OFF
{{OutputEnd}}
''Example 2:''
{{CodeStart}}
B& = 12589575
{{Cl|PRINT}} "B& ="; B&
FOR I%% = 31 TO 0 STEP -1 '32 bits for a {{Cl|LONG}} value
Binary$ = Binary$ + {{Cl|LTRIM$}}({{Cl|STR$}}({{Cl|ABS}}({{Cl|_READBIT}}(B&, I%%))))
NEXT I%%
{{Cl|PRINT}} "B& in binary is: "; Binary${{CodeEnd}}
{{OutputStart}}
B& = 12589575
B& in binary is: 00000000110000000001101000000111
{{OutputEnd}}
{{PageSeeAlso}}
* [[_SHL]], [[_SHR]], [[INTEGER]], [[LONG]]
* [[_SETBIT]], [[_BYTE]], [[_INTEGER64]]
* [[_RESETBIT]], [[_TOGGLEBIT]]
{{PageNavigation}}

View file

@ -0,0 +1,46 @@
{{DISPLAYTITLE:_RESETBIT}}
The [[_RESETBIT]] function is used to set a specified bit of a numerical value to 0 (OFF state).
{{PageSyntax}}
:{{Parameter|result}} = [[_RESETBIT]]({{Parameter|numericalVariable}}, {{Parameter|numericalValue}})
{{Parameters}}
* {{Parameter|numericalVariable}} is the variable to set the bit of and can be of the following types: [[_BYTE]], [[INTEGER]], [[LONG]], or [[_INTEGER64]].
* Integer values can be signed or [[_UNSIGNED]].
* {{Parameter|numericalValue}} the number of the bit to be set.
{{PageDescription}}
* Can be used to manually manipulate individual bits of an integer value by setting them to 0 (OFF state).
* Resetting a bit that is already set to 0 will have no effect.
* Bits start at 0 (so a [[_BYTE]] has bits 0 to 7, [[INTEGER]] 0 to 15, and so on)
==Availability==
* '''Version 1.4 and up'''.
{{PageExamples}}
''Example 1:''
{{CodeStart}}A~%% = 0 '{{Cl|_UNSIGNED}} {{Cl|_BYTE}}
{{Cl|PRINT}} A~%%
A~%% = {{Cl|_SETBIT}}(A~%%,6) 'set the seventh bit of A~%%
{{Cl|PRINT}} A~%%
A~%% = {{Cl|_RESETBIT}}(A~%%,6) 'Reset the seventh bit of A~%%
{{Cl|PRINT}} A~%%
{{CodeEnd}}
{{OutputStart}}
0
64
0
{{OutputEnd}}
{{PageSeeAlso}}
* [[_SHL]], [[_SHR]], [[INTEGER]], [[LONG]]
* [[_SETBIT]], [[_BYTE]], [[_INTEGER64]]
* [[_READBIT]], [[_TOGGLEBIT]]
{{PageNavigation}}

View file

@ -0,0 +1,19 @@
{{DISPLAYTITLE: _SCROLLLOCK}}
The [[_SCROLLLOCK]] statement sets the state of the Scroll Lock key.
{{PageSyntax}}
: [[_SCROLLLOCK]] {ON|OFF|_TOGGLE}
==Availability==
* Version 1.4 and up.
* [[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Not available in Linux or macOS]].
{{PageSeeAlso}}
* [[_CAPSLOCK (function)]], [[_NUMLOCK (function)]], [[_SCROLLLOCK (function)]]
* [[_CAPSLOCK]] (statement), [[_NUMLOCK]] (statement)
{{PageNavigation}}

View file

@ -0,0 +1,19 @@
{{DISPLAYTITLE: _SCROLLLOCK (function)}}
The [[_SCROLLLOCK (function)| _SCROLLLOCK]] function returns the current state of the Scroll Lock key as on (-1) or off (0).
{{PageSyntax}}
: {{Parameter|keyStatus%%}} = [[_SCROLLLOCK (function)| _SCROLLLOCK]]
==Availability==
* Version 1.4 and up.
* [[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Not available in Linux or macOS]].
{{PageSeeAlso}}
* [[_CAPSLOCK (function)]], [[_NUMLOCK (function)]]
* [[_CAPSLOCK]] (statement), [[_NUMLOCK]] (statement), [[_SCROLLLOCK]] (statement)
{{PageNavigation}}

43
internal/help/_SETBIT.txt Normal file
View file

@ -0,0 +1,43 @@
{{DISPLAYTITLE:_SETBIT}}
The [[_SETBIT]] function is used to set a specified bit of a numerical value to 1 (on state).
{{PageSyntax}}
:{{Parameter|result}} = [[_SETBIT]]({{Parameter|numericalVariable}}, {{Parameter|numericalValue}})
{{Parameters}}
* {{Parameter|numericalVariable}} is the variable to set the bit of and can be of the following types: [[_BYTE]], [[INTEGER]], [[LONG]], or [[_INTEGER64]].
* Integer values can be signed or [[_UNSIGNED]].
* {{Parameter|numericalValue}} the number of the bit to be set.
{{PageDescription}}
* Can be used to manually manipulate individual bits of an integer value by setting them to 1 (on state).
* Setting a bit that is already set to 1 will have no effect.
* Bits start at 0 (so a [[_BYTE]] has bits 0 to 7, [[INTEGER]] 0 to 15, and so on)
==Availability==
* '''Version 1.4 and up'''.
{{PageExamples}}
''Example 1:''
{{CodeStart}}A~%% = 0 '{{Cl|_UNSIGNED}} {{Cl|_BYTE}}
{{Cl|PRINT}} A~%%
A~%% = {{Cl|_SETBIT}}(A~%%,6) 'set the seventh bit of A~%%
{{Cl|PRINT}} A~%%
{{CodeEnd}}
{{OutputStart}}
0
64
{{OutputEnd}}
{{PageSeeAlso}}
* [[_SHL]], [[_SHR]], [[INTEGER]], [[LONG]]
* [[_READBIT]], [[_BYTE]], [[_INTEGER64]]
* [[_RESETBIT]], [[_TOGGLEBIT]]
{{PageNavigation}}

View file

@ -17,7 +17,7 @@ The [[_SHR]] function is used to shift the bits of a numerical value to the righ
* Allows for division of a value by 2 faster than normal division (see example 2 below).
* Bits that reach the end of a variables bit count are dropped.
* The type of variable used to store the results should match the type of the variable being shifted.
* NOTE: When dealing with SIGNED variables, shifting the bits right will leave the sign bit set. This is due to how C++ deals with bit shifting under the hood.
==Availability==
* '''Version 1.3 and up'''.

View file

@ -0,0 +1,46 @@
{{DISPLAYTITLE:_TOGLEBIT}}
The [[_TOGGLEBIT]] function is used to toggle a specified bit of a numerical value.
{{PageSyntax}}
:{{Parameter|result}} = [[_TOGGLEBIT]]({{Parameter|numericalVariable}}, {{Parameter|numericalValue}})
{{Parameters}}
* {{Parameter|numericalVariable}} is the variable to toggle the bit of and can be of the following types: [[_BYTE]], [[INTEGER]], [[LONG]], or [[_INTEGER64]].
* Integer values can be signed or [[_UNSIGNED]].
* {{Parameter|numericalValue}} the number of the bit to be set.
{{PageDescription}}
* Can be used to manually manipulate individual bits of an integer value by toggling their state.
* A bit set to 1 is changed to 0 and a bit set to 0 is changed to 1.
* Bits start at 0 (so a [[_BYTE]] has bits 0 to 7, [[INTEGER]] 0 to 15, and so on)
==Availability==
* '''Version 1.4 and up'''.
{{PageExamples}}
''Example 1:''
{{CodeStart}}A~%% = 0 '{{Cl|_UNSIGNED}} {{Cl|_BYTE}}
{{Cl|PRINT}} A~%%
A~%% = {{Cl|_TOGGLEBIT}}(A~%%,4) 'toggle the fourth bit of A~%%
{{Cl|PRINT}} A~%%
A~%% = {{Cl|_TOGGLEBIT}}(A~%%,4) 'toggle the fourth bit of A~%%
{{Cl|PRINT}} A~%%
{{CodeEnd}}
{{OutputStart}}
0
16
0
{{OutputEnd}}
{{PageSeeAlso}}
* [[_SHL]], [[_SHR]], [[INTEGER]], [[LONG]]
* [[_SETBIT]], [[_BYTE]], [[_INTEGER64]]
* [[_RESETBIT]], [[_READBIT]]
{{PageNavigation}}

38
internal/help/_TRIM$.txt Normal file
View file

@ -0,0 +1,38 @@
{{DISPLAYTITLE:_TRIM$}}
The [[_TRIM$]] function removes both leading and trailing space characters from a [[STRING]] value.
{{PageSyntax}}
:{{Parameter|return$}} = [[_TRIM$]]({{Parameter|text$}})
{{PageDescription}}
* Shorthand to using [[LTRIM$]]([[RTRIM$]]("text"))
* {{Parameter|text$}} is the [[STRING]] value to trim.
* If {{Parameter|text$}} contains no leading or trailing space characters, it is returned unchanged.
* Convert fixed length [[STRING]] values by using a different {{parameter|return$}} variable.
{{PageExamples}}
''Example: Demonstrating how _TRIM$(text$) can replace LTRIM$(RTRIM$(text$)):
{{CodeStart}}
text$ = SPACE$(10) + "some text" + SPACE$(10)
{{Cl|PRINT}} "[" + text$ + "]" '' ''
{{Cl|PRINT}} "[" + {{Cl|RTRIM$}}(text$) + "]" '' ''
{{Cl|PRINT}} "[" + {{Cl|LTRIM$}}(text$) + "]" '' ''
{{Cl|PRINT}} "[" + {{Cl|LTRIM$}}({{Cl|RTRIM$}}(text$)) + "]" '' ''
{{Cl|PRINT}} "[" + {{Cl|_TRIM$}}(text$) + "]" '' ''
{{CodeEnd}}
{{OutputStart}}[ some text ]
[ some text]
[some text ]
[some text]
[some text]
{{OutputEnd}}
{{PageSeeAlso}}
* [[RTRIM$]], [[LTRIM$]]
{{PageNavigation}}

View file

@ -118,9 +118,7 @@ The {{KW|_glPixelStore}} mode affects texture images.
{{KW|_GL_INVALID_OPERATION}} is generated if {{Parameter|type}} is one of {{KW|_GL_UNSIGNED_BYTE_3_3_2}}, {{KW|_GL_UNSIGNED_BYTE_2_3_3_REV}}, {{KW|_GL_UNSIGNED_SHORT_5_6_5}}, {{KW|_GL_UNSIGNED_SHORT_5_6_5_REV}}, or {{KW|_GL_UNSIGNED_INT_10F_11F_11F_REV}}, and {{Parameter|format}} is not {{KW|_GL_RGB}}.
{{KW|_GL_INVALID_OPERATION}} is generated if {{Parameter|type}} is one of {{KW|_GL_UNSIGNED_SHORT_4_4_4_4}}, {{KW|_GL_UNSIGNED_SHORT_4_4_4_4_REV}}, {{KW
3528
|_GL_UNSIGNED_SHORT_5_5_5_1}}, {{KW|_GL_UNSIGNED_SHORT_1_5_5_5_REV}}, {{KW|_GL_UNSIGNED_INT_8_8_8_8}}, {{KW|_GL_UNSIGNED_INT_8_8_8_8_REV}}, {{KW|_GL_UNSIGNED_INT_10_10_10_2}}, {{KW|_GL_UNSIGNED_INT_2_10_10_10_REV}}, or {{KW|_GL_UNSIGNED_INT_5_9_9_9_REV}}, and {{Parameter|format}} is neither {{KW|_GL_RGBA}} nor {{KW|_GL_BGRA}}.
{{KW|_GL_INVALID_OPERATION}} is generated if {{Parameter|type}} is one of {{KW|_GL_UNSIGNED_SHORT_4_4_4_4}}, {{KW|_GL_UNSIGNED_SHORT_4_4_4_4_REV}}, {{KW|_GL_UNSIGNED_SHORT_5_5_5_1}}, {{KW|_GL_UNSIGNED_SHORT_1_5_5_5_REV}}, {{KW|_GL_UNSIGNED_INT_8_8_8_8}}, {{KW|_GL_UNSIGNED_INT_8_8_8_8_REV}}, {{KW|_GL_UNSIGNED_INT_10_10_10_2}}, {{KW|_GL_UNSIGNED_INT_2_10_10_10_REV}}, or {{KW|_GL_UNSIGNED_INT_5_9_9_9_REV}}, and {{Parameter|format}} is neither {{KW|_GL_RGBA}} nor {{KW|_GL_BGRA}}.
{{KW|_GL_INVALID_OPERATION}} is generated if {{Parameter|target}} is not {{KW|_GL_TEXTURE_2D}}, {{KW|_GL_PROXY_TEXTURE_2D}}, {{KW|_GL_TEXTURE_RECTANGLE}}, or {{KW|_GL_PROXY_TEXTURE_RECTANGLE}}, and {{Parameter|internalFormat}} is {{KW|_GL_DEPTH_COMPONENT}}, {{KW|_GL_DEPTH_COMPONENT16}}, {{KW|_GL_DEPTH_COMPONENT24}}, or {{KW|_GL_DEPTH_COMPONENT32F}}.

View file

@ -9,6 +9,8 @@ _ARCCSC,Mathematical_Operations
_ARCSEC,Mathematical_Operations
_ASIN,_ASIN
_ASINH,_ASINH
_ASSERT,_ASSERT
$ASSERTS,$ASSERTS
_ATAN2,_ATAN2
_ATANH,_ATANH
_AUTODISPLAY,_AUTODISPLAY
@ -25,6 +27,8 @@ _BLUE32,_BLUE32
_BUTTON,_BUTTON
_BUTTONCHANGE,_BUTTONCHANGE
_BYTE,_BYTE
_CAPSLOCK,_CAPSLOCK (function)
_CAPSLOCK,_CAPSLOCK
$CHECKING,$CHECKING
_CEIL,_CEIL
_CLEARCOLOR,_CLEARCOLOR (function)
@ -34,6 +38,7 @@ _CLIPBOARD$,_CLIPBOARD$
_CLIPBOARD$,_CLIPBOARD$ (statement)
_CLIPBOARDIMAGE,_CLIPBOARDIMAGE (function)
_CLIPBOARDIMAGE,_CLIPBOARDIMAGE
$COLOR,$COLOR
_COMMANDCOUNT,_COMMANDCOUNT
_CONNECTED,_CONNECTED
_CONNECTIONADDRESS$,_CONNECTIONADDRESS$
@ -58,6 +63,7 @@ DECLARE,DECLARE LIBRARY
DECLARE,DECLARE DYNAMIC LIBRARY
_DEFAULTCOLOR,_DEFAULTCOLOR
_DEFINE,_DEFINE
_DEFLATE$,_DEFLATE$
_DELAY,_DELAY
_DEPTHBUFFER,_DEPTHBUFFER
_DESKTOPHEIGHT,_DESKTOPHEIGHT
@ -105,6 +111,7 @@ $IF,$IF
_ICON,_ICON
_INCLERRORFILE$,_INCLERRORFILE$
_INCLERRORLINE,_INCLERRORLINE
_INFLATE$,_INFLATE$
_INSTRREV,_INSTRREV
_INTEGER64,_INTEGER64
_KEYCLEAR,_KEYCLEAR
@ -147,6 +154,9 @@ _MOUSEWHEEL,_MOUSEWHEEL
_MOUSEX,_MOUSEX
_MOUSEY,_MOUSEY
_NEWIMAGE,_NEWIMAGE
$NOPREFIX,$NOPREFIX
_NUMLOCK,_NUMLOCK (function)
_NUMLOCK,_NUMLOCK
_OFFSET,_OFFSET (function)
_OFFSET,_OFFSET
_OPENCLIENT,_OPENCLIENT
@ -169,6 +179,8 @@ _R2D,_R2D
_R2G,_R2G
_RED,_RED
_RED32,_RED32
_READBIT,_READBIT
_RESETBIT,_RESETBIT
$RESIZE,$RESIZE
_RESIZE,_RESIZE
_RESIZE,_RESIZE (function)
@ -192,7 +204,10 @@ $SCREENSHOW,$SCREENSHOW
_SCREENSHOW,_SCREENSHOW
_SCREENX,_SCREENX
_SCREENY,_SCREENY
_SCROLLLOCK,_SCROLLLOCK (function)
_SCROLLLOCK,_SCROLLLOCK
_SETALPHA,_SETALPHA
_SETBIT,_SETBIT
_SHELLHIDE,_SHELLHIDE
_SHL,_SHL
_SHR,_SHR
@ -227,6 +242,7 @@ _STRICMP,_STRICMP
_TANH,Mathematical_Operations
_TITLE,_TITLE
_TITLE$,_TITLE$
_TOGGLEBIT,_TOGGLEBIT
_TOTALDROPPEDFILES,_TOTALDROPPEDFILES
_TRIM$,_TRIM$
_UNSIGNED,_UNSIGNED
@ -759,277 +775,157 @@ _glRasterPos3sv,_glRasterPos3sv
_glRasterPos4d,_glRasterPos4d
_glRasterPos4dv,_glRasterPos4dv
_glRasterPos4f,_glRasterPos4f
_glRasterPos4fv],_glRasterPos4fv]
_glRasterPos4i,
,
_glRasterPos4iv,tatement) {{text
_glRasterPos4s,_glRasterPos4i
_glRasterPos4fv,_glRasterPos4fv
_glRasterPos4i,_glRasterPos4i
_glRasterPos4sv,_glRasterPos4iv
_glRasterPos4iv,_glRasterPos4iv
_glReadBuffer,_glRasterPos4s
_glRasterPos4s,_glRasterPos4s
_glReadPixels,_glRasterPos4sv
_glRasterPos4sv,_glRasterPos4sv
_glRectd,_glReadBuffer
_glReadBuffer,_glReadBuffer
_glRectdv,_glReadPixels
_glReadPixels,_glReadPixels
_glRectf,_glRectd
_glRectd,_glRectd
_glRectfv,_glRectdv
_glRectdv,_glRectdv
_glRecti,_glRectf
_glRectf,_glRectf
_glRectiv,_glRectfv
_glRectfv,_glRectfv
_glRects,_glRecti
_glRecti,_glRecti
_glRectsv,_glRectiv
_glRectiv,_glRectiv
_GLRENDER,_glRects
_glRects,_glRects
_glRenderMode,_glRectsv
_glRectsv,_glRectsv
_glRotated,_GLRENDER
_GLRENDER,_GLRENDER
_glRotatef,_glRenderMode
_glRenderMode,_glRenderMode
_glScaled,_glRotated
_glRotated,_glRotated
_glScalef,_glRotatef
_glRotatef,_glRotatef
_glScissor,_glScaled
_glScaled,_glScaled
_glSelectBuffer,_glScalef
_glScalef,_glScalef
_glShadeModel,_glScissor
_glScissor,_glScissor
_glStencilFunc,_glSelectBuffer
_glSelectBuffer,_glSelectBuffer
_glStencilMask,_glShadeModel
_glShadeModel,_glShadeModel
_glStencilOp,_glStencilFunc
_glStencilFunc,_glStencilFunc
_glTexCoord1d,_glStencilMask
_glStencilMask,_glStencilMask
_glTexCoord1dv,_glStencilOp
_glStencilOp,_glStencilOp
_glTexCoord1f,_glTexCoord1d
_glTexCoord1d,_glTexCoord1d
_glTexCoord1fv,_glTexCoord1dv
_glTexCoord1dv,_glTexCoord1dv
_glTexCoord1i,_glTexCoord1f
_glTexCoord1f,_glTexCoord1f
_glTexCoord1iv,_glTexCoord1fv
_glTexCoord1fv,_glTexCoord1fv
_glTexCoord1s,_glTexCoord1i
_glTexCoord1i,_glTexCoord1i
_glTexCoord1sv,_glTexCoord1iv
_glTexCoord1iv,_glTexCoord1iv
_glTexCoord2d,_glTexCoord1s
_glTexCoord1s,_glTexCoord1s
_glTexCoord2dv,_glTexCoord1sv
_glTexCoord1sv,_glTexCoord1sv
_glTexCoord2f,_glTexCoord2d
_glTexCoord2d,_glTexCoord2d
_glTexCoord2fv,_glTexCoord2dv
_glTexCoord2dv,_glTexCoord2dv
_glTexCoord2i,_glTexCoord2f
_glTexCoord2f,_glTexCoord2f
_glTexCoord2iv,_glTexCoord2fv
_glTexCoord2fv,_glTexCoord2fv
_glTexCoord2s,_glTexCoord2i
_glTexCoord2i,_glTexCoord2i
_glTexCoord2sv,_glTexCoord2iv
_glTexCoord2iv,_glTexCoord2iv
_glTexCoord3d,_glTexCoord2s
_glTexCoord2s,_glTexCoord2s
_glTexCoord3dv,_glTexCoord2sv
_glTexCoord2sv,_glTexCoord2sv
_glTexCoord3f,_glTexCoord3d
_glTexCoord3d,_glTexCoord3d
_glTexCoord3fv,_glTexCoord3dv
_glTexCoord3dv,_glTexCoord3dv
_glTexCoord3i,_glTexCoord3f
_glTexCoord3f,_glTexCoord3f
_glTexCoord3iv,_glTexCoord3fv
_glTexCoord3fv,_glTexCoord3fv
_glTexCoord3s,_glTexCoord3i
_glTexCoord3i,_glTexCoord3i
_glTexCoord3sv,_glTexCoord3iv
_glTexCoord3iv,_glTexCoord3iv
_glTexCoord4d,_glTexCoord3s
_glTexCoord3s,_glTexCoord3s
_glTexCoord4dv,_glTexCoord3sv
_glTexCoord3sv,_glTexCoord3sv
_glTexCoord4f,_glTexCoord4d
_glTexCoord4d,_glTexCoord4d
_glTexCoord4fv,_glTexCoord4dv
_glTexCoord4dv,_glTexCoord4dv
_glTexCoord4i,_glTexCoord4f
_glTexCoord4f,_glTexCoord4f
_glTexCoord4iv,_glTexCoord4fv
_glTexCoord4fv,_glTexCoord4fv
_glTexCoord4s,_glTexCoord4i
_glTexCoord4i,_glTexCoord4i
_glTexCoord4sv,_glTexCoord4iv
_glTexCoord4iv,_glTexCoord4iv
_glTexCoordPointer,_glTexCoord4s
_glTexCoord4s,_glTexCoord4s
_glTexEnvf,_glTexCoord4sv
_glTexCoord4sv,_glTexCoord4sv
_glTexEnvfv,_glTexCoordPointer
_glTexCoordPointer,_glTexCoordPointer
_glTexEnvi,_glTexEnvf
_glTexEnvf,_glTexEnvf
_glTexEnviv,_glTexEnvfv
_glTexEnvfv,_glTexEnvfv
_glTexGend,_glTexEnvi
_glTexEnvi,_glTexEnvi
_glTexGendv,_glTexEnviv
_glTexEnviv,_glTexEnviv
_glTexGenf,_glTexGend
_glTexGend,_glTexGend
_glTexGenfv,_glTexGendv
_glTexGendv,_glTexGendv
_glTexGeni,_glTexGenf
_glTexGenf,_glTexGenf
_glTexGeniv,_glTexGenfv
_glTexGenfv,_glTexGenfv
_glTexImage1D,_glTexGeni
_glTexGeni,_glTexGeni
_glTexImage2D,_glTexGeniv
_glTexGeniv,_glTexGeniv
_glTexParameterf,_glTexImage1D
_glTexImage1D,_glTexImage1D
_glTexParameterfv,_glTexImage2D
_glTexImage2D,_glTexImage2D
_glTexParameteri,_glTexParameterf
_glTexParameterf,_glTexParameterf
_glTexParameteriv,_glTexParameterfv
_glTexParameterfv,_glTexParameterfv
_glTexSubImage1D,_glTexParameteri
_glTexParameteri,_glTexParameteri
_glTexSubImage2D,_glTexParameteriv
_glTexParameteriv,_glTexParameteriv
_glTranslated,_glTexSubImage1D
_glTexSubImage1D,_glTexSubImage1D
_glTranslatef,_glTexSubImage2D
_glTexSubImage2D,_glTexSubImage2D
_glVertex2d,_glTranslated
_glTranslated,_glTranslated
_glVertex2dv,_glTranslatef
_glTranslatef,_glTranslatef
_glVertex2f,_glVertex2d
_glVertex2d,_glVertex2d
_glVertex2fv,_glVertex2dv
_glVertex2dv,_glVertex2dv
_glVertex2i,_glVertex2f
_glVertex2f,_glVertex2f
_glVertex2iv,_glVertex2fv
_glVertex2fv,_glVertex2fv
_glVertex2s,_glVertex2i
_glVertex2i,_glVertex2i
_glVertex2sv,_glVertex2iv
_glVertex2iv,_glVertex2iv
_glVertex3d,_glVertex2s
_glVertex2s,_glVertex2s
_glVertex3dv,_glVertex2sv
_glVertex2sv,_glVertex2sv
_glVertex3f,_glVertex3d
_glVertex3d,_glVertex3d
_glVertex3fv,_glVertex3dv
_glVertex3dv,_glVertex3dv
_glVertex3i,_glVertex3f
_glVertex3f,_glVertex3f
_glVertex3iv,_glVertex3fv
_glVertex3fv,_glVertex3fv
_glVertex3s,_glVertex3i
_glVertex3i,_glVertex3i
_glVertex3sv,_glVertex3iv
_glVertex3iv,_glVertex3iv
_glVertex4d,_glVertex3s
_glVertex3s,_glVertex3s
_glVertex4dv,_glVertex3sv
_glVertex3sv,_glVertex3sv
_glVertex4f,_glVertex4d
_glVertex4d,_glVertex4d
_glVertex4fv,_glVertex4dv
_glVertex4dv,_glVertex4dv
_glVertex4i,_glVertex4f
_glVertex4f,_glVertex4f
_glVertex4iv,_glVertex4fv
_glVertex4fv,_glVertex4fv
_glVertex4s,_glVertex4i
_glVertex4i,_glVertex4i
_glVertex4sv,_glVertex4iv
_glVertex4iv,_glVertex4iv
_glVertexPointer,_glVertex4s
_glVertex4s,_glVertex4s
_glViewport,_glVertex4sv
_glVertex4sv,_glVertex4sv
;,_glVertexPointer
_glVertexPointer,_glVertexPointer
",comma
?,INPUT
INPUT,INPUT
',Question mark
:,SUB
SUB,SUB
$,FUNCTION
FUNCTION,FUNCTION
,Dollar_Sign
+,SUB
SUB,SUB
",+
_glViewport,_glViewport
;,Semicolon
",Quotation mark
?,Question mark
',Apostrophe
:,Colon
$,Dollar_Sign
,Parenthesis
+,+
_,CHR$
CHR$,CHR$
",Quotation mark
_,Underscore
$,STRING
STRING,STRING
!,Underscore
#,STRING
STRING,STRING
##,SINGLE
!,SINGLE
SINGLE,SINGLE
~,DOUBLE
#,DOUBLE
DOUBLE,DOUBLE
%,_UNSIGNED
##,_FLOAT
_FLOAT,_FLOAT
~,_UNSIGNED
_UNSIGNED,_UNSIGNED
&,INTEGER
%,INTEGER
INTEGER,INTEGER
&&,LONG
&,LONG
LONG,LONG
`,_INTEGER64
&&,_INTEGER64
_INTEGER64,_INTEGER64
%%,INTEGER
INTEGER,INTEGER
%&,_BYTE
`,_BIT
_BIT,_BIT
%%,_BYTE
_BYTE,_BYTE
&B,_OFFSET
%&,_OFFSET
_OFFSET,_OFFSET
&O,INTEGER
INTEGER,INTEGER
&H,&B
&B,&B
+,&H
&O,&O
&H,&H
-,Mathematical Operations
*,+
+,+
/,-
-,-
\,*
*,*
^,/
/,/
MOD,\
\,\
=,MOD
^,^
MOD,MOD
<>,Relational Operations
>,Equal
<,Not_Equal
>=,Greater_Than
<=,Less_Than
=,Equal
<>,Not_Equal
>,Greater_Than
<,Less_Than
>=,Greater_Than_Or_Equal
<=,Less_Than_Or_Equal