<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://sharpbasic.com/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://sharpbasic.com/wiki/feed.php">
        <title>documentation</title>
        <description></description>
        <link>https://sharpbasic.com/wiki/</link>
        <image rdf:resource="https://sharpbasic.com/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-07-10T20:08:40+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=acase&amp;rev=1687732175&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=add&amp;rev=1687682803&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=afunc&amp;rev=1690454348&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=and&amp;rev=1687768758&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=bitwise-operators&amp;rev=1688195924&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=buffer-type&amp;rev=1688973997&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=call&amp;rev=1688931024&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=cbuf&amp;rev=1690210430&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=clbuf&amp;rev=1690067135&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=control-flow&amp;rev=1748011400&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=datatypes&amp;rev=1688120443&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=decl&amp;rev=1688587356&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=eqv&amp;rev=1687768790&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=fall&amp;rev=1747987679&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=file-handling&amp;rev=1689695175&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=functions&amp;rev=1688995045&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=imp&amp;rev=1687768814&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=inline-assembly&amp;rev=1688200884&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=instr&amp;rev=1687732583&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=introduction&amp;rev=1687164447&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=lcase&amp;rev=1687732608&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=logical-operators&amp;rev=1687940204&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=nor&amp;rev=1687768848&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=not&amp;rev=1687768880&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=or&amp;rev=1687768929&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=pbuf&amp;rev=1688285270&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=pcase&amp;rev=1687732774&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=pointers&amp;rev=1687181267&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=program-structure&amp;rev=1645527498&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=record&amp;rev=1688584115&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=reference-guide&amp;rev=1689439312&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=relational-operators&amp;rev=1687940112&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=reserved-words&amp;rev=1747987999&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=return&amp;rev=1688920937&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=start&amp;rev=1688894674&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=statement-terminator&amp;rev=1687509403&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=statements&amp;rev=1687680793&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=sub&amp;rev=1688631644&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=subroutines&amp;rev=1688560063&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=tcase&amp;rev=1687732805&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=ucase&amp;rev=1687732836&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=user-guide&amp;rev=1688148826&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=variables&amp;rev=1645527979&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=with&amp;rev=1689177159&amp;do=diff"/>
                <rdf:li rdf:resource="https://sharpbasic.com/wiki/doku.php?id=xor&amp;rev=1687768958&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://sharpbasic.com/wiki/lib/tpl/dokuwiki/images/favicon.ico">
        <title>documentation</title>
        <link>https://sharpbasic.com/wiki/</link>
        <url>https://sharpbasic.com/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=acase&amp;rev=1687732175&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T00:29:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>acase</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=acase&amp;rev=1687732175&amp;do=diff</link>
        <description>acase

alternate case - a string processing function that returns a string argument with each letter alternated.

syntax

acase(string)

	*  string can be a string variable, function or literal

See also lcase, pcase, tcase, ucase

details

acase works with variable-, fixed-length and constant strings. The result can be assigned to a variable or fixed-length string, and passed to a string parameter or function result. If the specified string is in lowercase then acase has the same effect as ucas…</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=add&amp;rev=1687682803&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-25T10:46:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>add</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=add&amp;rev=1687682803&amp;do=diff</link>
        <description>add

The add keyword in an open function specifies that the file is to be opened for sequential access, and sets the file pointer to the end of the file. The write function then appends to (extends) the file.

See also open, write, inp, out

example

In this example a file is opened with the</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=afunc&amp;rev=1690454348&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-27T12:39:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>afunc</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=afunc&amp;rev=1690454348&amp;do=diff</link>
        <description>afunc

anonymous function - allows for the definition and execution of a nameless function within an execution compound statement.

syntax

----------

afunc([parameterlist])

[variable declarations]

do

[statements]

return expression

end

----------</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=and&amp;rev=1687768758&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T10:39:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>and</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=and&amp;rev=1687768758&amp;do=diff</link>
        <description>and

and is a logical-conjunction operator

syntax

result = numeric-expression1 and numeric-expression2

See also or, nor, not, xor, eqv, imp

details

the and logical conjunction operator compares two expressions and returns the boolean value true if and only if both expressions are true (non-zero). In any other case, the result is</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=bitwise-operators&amp;rev=1688195924&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-01T09:18:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bitwise-operators</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=bitwise-operators&amp;rev=1688195924&amp;do=diff</link>
        <description>Bitwise Operators

Bitwise operators are used to perform operations on bits. Unlike logical and relational operations, bitwise operations do not return boolean true or false, but rather the value of the operation's result:

In the above example the result is 1 because the bits of both operands are compared with the bitwise</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=buffer-type&amp;rev=1688973997&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-10T09:26:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>buffer-type</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=buffer-type&amp;rev=1688973997&amp;do=diff</link>
        <description>buffer type

A buffer type is a general memory buffer with a fixed size that must be specified while declared using the dim statement:



The four buffer types are:

	*  byte (1 byte)
	*  word (2 bytes)
	*  dword (4 bytes)
	*  qword (8 bytes)

The next two declarations both create a memory buffer of 2048 bytes:</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=call&amp;rev=1688931024&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-09T21:30:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>call</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=call&amp;rev=1688931024&amp;do=diff</link>
        <description>call

call - a statement that transfers control to a subroutine

syntax
call name[(argumentlist)]
	*  name is the subroutine's identifier
	*  argumentlist lists the variables or constants passed to the subroutine

See also decl, sub

details

In a call statement, the keyword</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=cbuf&amp;rev=1690210430&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-24T16:53:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cbuf</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=cbuf&amp;rev=1690210430&amp;do=diff</link>
        <description>cbuf

copy to buffer - allows data to be copied directly to a buffer data type.

syntax
cbuf(argument [, offset])
	*  argument can be any numeric or alpha-numeric data type
	*  offset is optional; if specified it sets the offset into the buffer where to store the data</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=clbuf&amp;rev=1690067135&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-23T01:05:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>clbuf</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=clbuf&amp;rev=1690067135&amp;do=diff</link>
        <description>clbuf

clear buffer - clears a buffer by filling it with spaces or with a specified character

syntax
clbuf(buffer [, character code])
	*  buffer is an identifier of type buffer
	*  character code is an optional character, used to clear (fill) the buffer with</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=control-flow&amp;rev=1748011400&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-23T16:43:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>control-flow</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=control-flow&amp;rev=1748011400&amp;do=diff</link>
        <description>Control Flow

SharpBASIC has several statements to control the flow of a program. There is the conditional statement if, the comparison/switch statement when, and the loop statements for and loop.

IF statement

An if statement tests a condition, which is a boolean expression, and executes the block following if the result of the boolean expression is true:</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=datatypes&amp;rev=1688120443&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-30T12:20:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>datatypes</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=datatypes&amp;rev=1688120443&amp;do=diff</link>
        <description>Data Types

SharpBASIC supports 23 predefined data types (on 64 bits architectures). The predefined data types can be categorized in numeric types, character or string types and general buffer types.

Data types do not have traditional names such as</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=decl&amp;rev=1688587356&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-05T22:02:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>decl</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=decl&amp;rev=1688587356&amp;do=diff</link>
        <description>decl

declare - a non-executable statement that declares references to SharpBASIC procedures and invokes argument type checking

syntax
decl {sub | func} name [(parameterlist)]

* name is the identifier that will be used to call the procedure
* parameterlist indicates the number and type of arguments that will be used to call the procedure</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=eqv&amp;rev=1687768790&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T10:39:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>eqv</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=eqv&amp;rev=1687768790&amp;do=diff</link>
        <description>eqv

eqv is a logical-equivalence operator

syntax

result = numeric-expression1 eqv numeric-expression2

See also or, nor, not, xor, and, imp

details

the eqv logical-equivalence operator compares two expressions and returns the boolean value true if both expressions are either</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=fall&amp;rev=1747987679&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-23T10:07:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fall</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=fall&amp;rev=1747987679&amp;do=diff</link>
        <description>fall

fall through - a statement to indicate that the next is branch of a by statement must be tested

syntax
fall;
See also by

details

By default, the by statement, which is SharpBASIC's switch statement, does not support implicit fall-through, so the fall</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=file-handling&amp;rev=1689695175&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-18T17:46:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>file-handling</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=file-handling&amp;rev=1689695175&amp;do=diff</link>
        <description>File handling

With SharpBASIC data can be read from and written to files on disk. SharpBASIC supports three different file types: text files, binary files and random access files. There are several functions and statements to handle files.

open function</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=functions&amp;rev=1688995045&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-10T15:17:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>functions</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=functions&amp;rev=1688995045&amp;do=diff</link>
        <description>Functions are procedures similar to subroutines, and the same rules largely apply. The main difference between functions and subroutines is that functions return a value. A function is declared and defined with the keyword func.

Output:

100

----------

function result</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=imp&amp;rev=1687768814&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T10:40:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>imp</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=imp&amp;rev=1687768814&amp;do=diff</link>
        <description>imp

imp is a logical-implication operator

syntax

result = numeric-expression1 imp numeric-expression2

See also or, nor, not, xor, eqv, and

details

the imp logical-implication operator compares two expressions and returns the boolean value true if both expressions are</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=inline-assembly&amp;rev=1688200884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-01T10:41:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>inline-assembly</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=inline-assembly&amp;rev=1688200884&amp;do=diff</link>
        <description>Inline Assembly

SharpBASIC supports inline assembly code written in NASM (Netwide Assembler), which is also used by the compiler as back-end. To include assembly code, use the asm-statement:


SharpBASIC identifiers can be used inside assembly code blocks. Hexadecimal numbers can be used as well, either in</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=instr&amp;rev=1687732583&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T00:36:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>instr</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=instr&amp;rev=1687732583&amp;do=diff</link>
        <description>instr

in string - a string processing function that returns the character position of the first occurrence of a string in another string

syntax

instr(string1, string2 [, start])

	*  string1 is the string to be searched
	*  string2 is the string to look for</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=introduction&amp;rev=1687164447&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-19T10:47:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>introduction</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=introduction&amp;rev=1687164447&amp;do=diff</link>
        <description>Introduction

SharpBASIC is a new procedural programming language that is currently in development. As the name suggests, the language should be considered a sharper BASIC, more powerful, less verbose but with a clear structure. The compiler is aimed to produce 32 and 64 bits native code, first for Linux and later also for Windows and Mac.</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=lcase&amp;rev=1687732608&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T00:36:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>lcase</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=lcase&amp;rev=1687732608&amp;do=diff</link>
        <description>lcase

lower case - a string processing function that returns a string argument with all letters in lowercase

syntax

lcase(string)

	*  the string argument can be a string variable, constant, function or literal

See also instr, acase, pcase, tcase, ucase

details

lcase works with variable-, fixed-length and constant strings. The result can be assigned to a variable or fixed-length string, and passed to a string parameter or function result.</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=logical-operators&amp;rev=1687940204&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-28T10:16:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>logical-operators</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=logical-operators&amp;rev=1687940204&amp;do=diff</link>
        <description>Logical Operators

Logical operators (and relational operators) perform tests on multiple relations and return a “true” (non-zero) or “false” (zero) value, which can be used to make decisions:


SharpBASIC has the following seven logical operators:
not  - logical complement
and  - logical conjunction
nor  - logical conjunction
or   - logical inclusive or
xor  - logical exclusive or
eqv  - logical equivalence
imp  - logical implication</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=nor&amp;rev=1687768848&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T10:40:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nor</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=nor&amp;rev=1687768848&amp;do=diff</link>
        <description>nor

nor is a logical-conjunction operator

syntax

result = numeric-expression1 nor numeric-expression2

See also and, or, not, xor, eqv, imp

details

the nor logical operator compares two expressions and returns the boolean value true if and only if both expressions are false (non-zero). In any other case, the result is</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=not&amp;rev=1687768880&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T10:41:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>not</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=not&amp;rev=1687768880&amp;do=diff</link>
        <description>not

not is a logical-complement operator

syntax

result = not numeric-expression

See also or, nor, and, xor, eqv, imp

details

the not logical-complement operator evaluates the numeric expression and returns its complement. See the table below.
expression    result
   true        false
   false       true</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=or&amp;rev=1687768929&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T10:42:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>or</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=or&amp;rev=1687768929&amp;do=diff</link>
        <description>or

or is a logical “inclusive or” operator

syntax

result = numeric-expression1 or numeric-expression2

See also and, nor, not, xor, eqv, imp

details

the or logical operator compares two expressions and returns the boolean value true if one of the expressions is true (non-zero). See the table below for possible results.</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=pbuf&amp;rev=1688285270&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-02T10:07:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pbuf</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=pbuf&amp;rev=1688285270&amp;do=diff</link>
        <description>pbuf

peek buffer - retrieves data from a buffer at a specific position and size

syntax
string = pbuf(buffer, offset, size)
number = pbuf(buffer [, offset)
	*  buffer is the memory buffer from which to retrieve the data
	*  offset is the start position in the buffer from where to retrieve the data</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=pcase&amp;rev=1687732774&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T00:39:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pcase</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=pcase&amp;rev=1687732774&amp;do=diff</link>
        <description>pcase

proper case - a string processing function that returns a string argument with every first letter of a word in uppercase

syntax

pcase(string)

	*  the string argument can be a string variable, constant, function or literal

See also acase, lcase, tcase, ucase

details</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=pointers&amp;rev=1687181267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-19T15:27:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pointers</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=pointers&amp;rev=1687181267&amp;do=diff</link>
        <description>Pointers

SharpBASIC has a general pointer type ptr. It is general in that it will not bind to a specific type. Hence there is no type checking other than the pointer type itself (optionally enforced by the option strict directive). So pointers can point to any address and it is up to the programmer to take responsibility when using pointers.</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=program-structure&amp;rev=1645527498&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-22T11:58:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>program-structure</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=program-structure&amp;rev=1645527498&amp;do=diff</link>
        <description>Program Structure

SharpBASIC is a very structured programming language. There is a general distinction between declaration/definition sections and execution sections. There are specific statements that can only occur in one of these sections.

Main Section</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=record&amp;rev=1688584115&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-05T21:08:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>record</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=record&amp;rev=1688584115&amp;do=diff</link>
        <description>record

record is a declaration statement that defines a record data type containing one or more elements.

syntax
record name is
  fieldname: typename;
  [fieldname: typename;]
end
	*  name is the record name that identifies this specific record type. Variable naming rules for identifiers apply.</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=reference-guide&amp;rev=1689439312&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-15T18:41:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>reference-guide</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=reference-guide&amp;rev=1689439312&amp;do=diff</link>
        <description>Reference Guide

----------

	*  reserved words</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=relational-operators&amp;rev=1687940112&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-28T10:15:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>relational-operators</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=relational-operators&amp;rev=1687940112&amp;do=diff</link>
        <description>Relational Operators

Relational operators are used to compare two values. The result of the comparison is either “true” (non-zero) or “false” (zero). This result can then be used to make a decision regarding program flow.

SharpBASIC has the following relational operators:</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=reserved-words&amp;rev=1747987999&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-23T10:13:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>reserved-words</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=reserved-words&amp;rev=1747987999&amp;do=diff</link>
        <description>reserved words

----------

	*  acase
	*  add
	*  afunc
	*  and
	*  any
	*  aof
	*  asc
	*  asm
	*  bin
	*  break
	*  by
	*  bya
	*  call
	*  cbool
	*  cbuf
	*  cdecl
	*  chr
	*  cint
	*  clbuf
	*  close
	*  common
	*  const
	*  cptr
	*  cstr
	*  cuint
	*  cval
	*  cvd
	*  cvi
	*  cvl
	*  cvs
	*  decl
	*  dim
	*  do
	*  else
	*  end
	*  enum
	*  eof
	*  eqv
	*  extern
	*  fall
	*  fld
	*  for
	*  func
	*  get
	*</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=return&amp;rev=1688920937&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-09T18:42:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>return</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=return&amp;rev=1688920937&amp;do=diff</link>
        <description>return

return - a control flow statement that returns control from a subroutine or function

syntax
return [expression]
- expression is optional and can be numeric or string

details

return can be used in a subroutine or function to return immediately to the code that follows on the subroutine or function call. In case of a function, an optional return value can be provided. A return statement in a subroutine cannot return a value.</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=start&amp;rev=1688894674&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-09T11:24:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=start&amp;rev=1688894674&amp;do=diff</link>
        <description>Welcome to the SharpBASIC documentation wiki. Follow the links below to browse through the documentation. If you still have questions, please check out the forum.

----------

	*  Introduction
	*  User Guide
	*  Reference Guide

----------

website</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=statement-terminator&amp;rev=1687509403&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-23T10:36:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>statement-terminator</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=statement-terminator&amp;rev=1687509403&amp;do=diff</link>
        <description>Statement terminator

A statement terminator ends a statement. In SharpBASIC every statement must end with a statement terminator, which is the semi-colon (;) for line statements and the keyword end for compound statements. Because the keyword end is considered a compound statement terminator, it is not followed by a semi-colon. Omitting a statement terminator will result in a compile error.</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=statements&amp;rev=1687680793&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-25T10:13:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>statements</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=statements&amp;rev=1687680793&amp;do=diff</link>
        <description>Statements

There are two kinds of statements, single statements and compound statements. Single statements always end with a semicolon, which is called a statement terminator. 

Single Statement

A single statement is a stand-alone statement that can be coded on a single line or over multiple lines and ends with the</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=sub&amp;rev=1688631644&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-06T10:20:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sub</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=sub&amp;rev=1688631644&amp;do=diff</link>
        <description>sub

subroutine - a procedure statement that marks the beginning and end of a subroutine

syntax
sub name([parameterlist])
  [declarations]
do
  [statements]
  [return]
  [statements]
end
	*  name is the variable name up to 40 (ascii) characters long, that does not appear as any other variable name in the same program</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=subroutines&amp;rev=1688560063&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-05T14:27:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>subroutines</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=subroutines&amp;rev=1688560063&amp;do=diff</link>
        <description>SharpBASIC offers full support for subroutines, also referred to as procedures or subprograms. Just like functions, subroutines allow for pieces of isolated code with their own scope, i.e. a variable declared in a subroutine, aka a local variable, can have the same name as a global variable, in which case the local variable takes precedence:</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=tcase&amp;rev=1687732805&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T00:40:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>tcase</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=tcase&amp;rev=1687732805&amp;do=diff</link>
        <description>tcase

title case - a string processing function that returns a string argument with every first letter of a word in uppercase while leaving existing uppercase letters unchanged

syntax

tcase(string)

	*  the string argument can be a string variable, constant, function or literal</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=ucase&amp;rev=1687732836&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T00:40:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ucase</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=ucase&amp;rev=1687732836&amp;do=diff</link>
        <description>ucase

upper case - a string processing function that returns a string argument with all letters in uppercase

syntax

ucase(string)

	*  the string argument can be a string variable, constant, function or literal

See also instr, acase, lcase, pcase, tcase

details

ucase works with variable-, fixed-length and constant strings. The result can be assigned to a variable or fixed-length string, and passed to a string parameter or function result.</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=user-guide&amp;rev=1688148826&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-30T20:13:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>user-guide</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=user-guide&amp;rev=1688148826&amp;do=diff</link>
        <description>User Guide

basic topics

	*  program structure
	*  statements
	*  data types
	*  variables
	*  control flow
	*  relational operators
	*  logical operators
	*  bitwise operators
	*  subroutines
	*  functions
	*  file handling

advanced topics

	*  pointers
	*  buffer type (memory buffer)
	*  inline assembly</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=variables&amp;rev=1645527979&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-22T12:06:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>variables</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=variables&amp;rev=1645527979&amp;do=diff</link>
        <description>Variables

A variable in SharpBASIC can be any name that consists of the ASCII-characters A..Z, a..z, 0..9 and underscore, provided that the first character is a letter (A..Z or a..z). Names are case-sensitive, so a variable named 'text' is not the same as a variable named 'Text'. Variables can be declared with the statements</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=with&amp;rev=1689177159&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-12T17:52:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>with</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=with&amp;rev=1689177159&amp;do=diff</link>
        <description>with

with - a compound statement for short-cut access to fields of a user-defined type

syntax
with name do
  [statement]
  [statement]
end
	*  name is a variable that is declared as a (nested) user-defined type instance

See also records

details

A with statement is a compound or block statement that can be used to shorten access notation of user-defined type fields, whereby  the user-defined type instance specified as the name of the</description>
    </item>
    <item rdf:about="https://sharpbasic.com/wiki/doku.php?id=xor&amp;rev=1687768958&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-26T10:42:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>xor</title>
        <link>https://sharpbasic.com/wiki/doku.php?id=xor&amp;rev=1687768958&amp;do=diff</link>
        <description>xor

xor is a logical “exclusive or” operator

syntax

result = numeric-expression1 xor numeric-expression2

See also and, nor, not, or, eqv, imp

details

the xor logical operator compares two expressions and returns the boolean value true if one and only one of the expressions is true (non-zero). See the table below for possible results.</description>
    </item>
</rdf:RDF>
