<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://xc-basic.net/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://xc-basic.net/feed.php">
        <title>XC=BASIC</title>
        <description></description>
        <link>https://xc-basic.net/</link>
        <image rdf:resource="https://xc-basic.net/lib/tpl/writr/images/favicon.ico" />
       <dc:date>2026-04-07T22:32:00+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=abs&amp;rev=1561921780&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=aliasfn&amp;rev=1613654884&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=arrays&amp;rev=1561614324&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=asm&amp;rev=1561921804&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=at&amp;rev=1580028415&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=atn&amp;rev=1561921822&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=call&amp;rev=1575960988&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=cast&amp;rev=1561921838&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=charat&amp;rev=1561921915&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=command_reference&amp;rev=1613654884&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=compiler_options&amp;rev=1576740823&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=const&amp;rev=1610348236&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=cos&amp;rev=1561921952&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=curpos&amp;rev=1558592578&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=data&amp;rev=1568872826&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=dec&amp;rev=1557211028&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=deek&amp;rev=1557403455&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=dim&amp;rev=1579939130&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=disableirq&amp;rev=1575961150&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=doke&amp;rev=1557403544&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=enableirq&amp;rev=1570472373&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=end&amp;rev=1610304886&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=examples&amp;rev=1605188901&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=expressions&amp;rev=1561445704&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=extensions_tutorial&amp;rev=1576178059&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=extensions&amp;rev=1613249699&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=ferr&amp;rev=1557213530&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=fornext&amp;rev=1665646569&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=fun&amp;rev=1596783747&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=functions&amp;rev=1576175729&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=future_plans&amp;rev=1576175868&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=game_gallery&amp;rev=1632603179&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=gosubreturn&amp;rev=1557226029&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=goto&amp;rev=1557228571&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=ifthenelse&amp;rev=1563178679&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=inc&amp;rev=1610170614&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=incbin&amp;rev=1564776661&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=include&amp;rev=1581511010&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=inkey&amp;rev=1557231117&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=input&amp;rev=1568958717&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_1_down&amp;rev=1613654112&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_1_fire&amp;rev=1613654197&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_1_left&amp;rev=1613654141&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_1_right&amp;rev=1613654165&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_1_up&amp;rev=1613654085&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_2_down&amp;rev=1613654263&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_2_fire&amp;rev=1613654350&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_2_left&amp;rev=1613654290&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_2_right&amp;rev=1613654323&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=joy_2_up&amp;rev=1613654224&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=let&amp;rev=1610304440&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=load&amp;rev=1557256447&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=lshift&amp;rev=1609570348&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=memcpy&amp;rev=1562762268&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=memory_layout&amp;rev=1564569924&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=memset&amp;rev=1562761615&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=memshift&amp;rev=1562762223&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=numeric_literals&amp;rev=1561614309&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=on&amp;rev=1560061589&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=operators&amp;rev=1610348003&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=origin&amp;rev=1557256939&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=peek&amp;rev=1557403464&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=performance&amp;rev=1610302884&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=petscii_escape_sequences&amp;rev=1566753292&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=poke&amp;rev=1557257548&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=pragma&amp;rev=1562581642&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=print&amp;rev=1576100341&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=proc&amp;rev=1596783156&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=procedures&amp;rev=1561614346&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=releases&amp;rev=1617885143&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=rem&amp;rev=1610318178&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=repeat&amp;rev=1567746202&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=ri_off&amp;rev=1613654620&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=ri_on&amp;rev=1613654593&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=ri_set_isr&amp;rev=1613654716&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=ri_syshandler_off&amp;rev=1613654860&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=ri_syshandler_on&amp;rev=1613654805&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=rnd&amp;rev=1610966155&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=rshift&amp;rev=1609570386&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=save&amp;rev=1557259527&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=sfx_init&amp;rev=1613655118&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=sfx_play&amp;rev=1613655183&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=sfx_start&amp;rev=1613655412&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=sgn&amp;rev=1558679017&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=sidebar&amp;rev=1654420802&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=sin&amp;rev=1557259657&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_behindbg&amp;rev=1599030545&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_cleardblheight&amp;rev=1613653068&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_cleardblwidth&amp;rev=1613653183&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_data_collision&amp;rev=1613653936&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_disable&amp;rev=1605188384&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_enable&amp;rev=1605188409&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_overbg&amp;rev=1605188566&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_setcolor&amp;rev=1613652959&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_setdblheight&amp;rev=1613653033&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_setdblwidth&amp;rev=1613653165&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_sethires&amp;rev=1613653396&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_setmulti&amp;rev=1613653422&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_setpos&amp;rev=1613653572&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_setposx&amp;rev=1613653599&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_setposy&amp;rev=1613653628&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_setshape&amp;rev=1613653909&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=spr_spr_collision&amp;rev=1613653980&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=sqr&amp;rev=1558679209&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=start&amp;rev=1639397172&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=strcmp&amp;rev=1558549820&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=strcpy&amp;rev=1558554661&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=strings&amp;rev=1610303913&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=strlen&amp;rev=1558548930&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=strncpy&amp;rev=1586847510&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=strpos&amp;rev=1558983425&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=syntax&amp;rev=1575877212&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=sys&amp;rev=1557259813&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=tan&amp;rev=1557292782&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=textat&amp;rev=1583224907&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=tutorials&amp;rev=1612426727&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=usage&amp;rev=1613288711&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=usr&amp;rev=1557294670&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=val&amp;rev=1559503971&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=variables&amp;rev=1580507918&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=wait&amp;rev=1561925191&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=watch&amp;rev=1561981869&amp;do=diff"/>
                <rdf:li rdf:resource="https://xc-basic.net/doku.php?id=while&amp;rev=1567746183&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://xc-basic.net/lib/tpl/writr/images/favicon.ico">
        <title>XC=BASIC</title>
        <link>https://xc-basic.net/</link>
        <url>https://xc-basic.net/lib/tpl/writr/images/favicon.ico</url>
    </image>
    <item rdf:about="https://xc-basic.net/doku.php?id=abs&amp;rev=1561921780&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-30T21:09:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ABS()</title>
        <link>https://xc-basic.net/doku.php?id=abs&amp;rev=1561921780&amp;do=diff</link>
        <description>ABS()

Since version 2.0

Syntax:
abs(&lt;int expression&gt;) | abs%(&lt;float expression&gt;)

The ABS() function returns the absolute value (value without the sign) of the given numeric expression.

Argument type and return type must match.

Examples:
print abs(-3)
rem -- will print 3

print abs%(-3.14)
rem -- will print 3.14</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=aliasfn&amp;rev=1613654884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:28:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ALIASFN</title>
        <link>https://xc-basic.net/doku.php?id=aliasfn&amp;rev=1613654884&amp;do=diff</link>
        <description>ALIASFN

Since version 2.2

Syntax:
aliasfn &lt;const int address&gt;, &quot;&lt;function name&gt;&quot;

The ALIASFN directive registers a new function alias in order to make it possible to call a user function without the USR keyword. This directive is mainly used in extensions.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=arrays&amp;rev=1561614324&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-27T07:45:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Arrays</title>
        <link>https://xc-basic.net/doku.php?id=arrays&amp;rev=1561614324&amp;do=diff</link>
        <description>Arrays

Arrays must be defined using the DIM statement. As of the current version, maximum two-dimensional arrays are supported and both dimensions are limited to a length of 32767 elements. However, this is just a theoretical limit, in practice you'll run out of memory earlier. Arrays are zero-based (the first index is 0). Floats are not allowed as indices.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=asm&amp;rev=1561921804&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-30T21:10:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ASM</title>
        <link>https://xc-basic.net/doku.php?id=asm&amp;rev=1561921804&amp;do=diff</link>
        <description>ASM

Since version 2.0

Syntax:
asm &quot;&lt;assembly code&gt;&quot;
The ASM directive injects bare assembly code into the compiled code, without any modification. As XC=BASIC itself produces DASM code, the injected assembly code must also be in DASM format. The code within the double quote may include newlines.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=at&amp;rev=1580028415&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-26T09:46:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>@ (address of)</title>
        <link>https://xc-basic.net/doku.php?id=at&amp;rev=1580028415&amp;do=diff</link>
        <description>@ (address of)

Since version 1.1

Used within an expression, the @ operator returns the memory address of the variable or label that it is prepended to, as an integer.

Example:
rem define a new variable
let x=1
	
rem retrieve information about the variable
print &quot;the value of x is &quot;, x
print &quot;the address of x is &quot;, @x</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=atn&amp;rev=1561921822&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-30T21:10:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ATN()</title>
        <link>https://xc-basic.net/doku.php?id=atn&amp;rev=1561921822&amp;do=diff</link>
        <description>ATN()

Since version 2.0

Syntax:
atn%(&lt;float expression&gt;)

The ATN() function returns the arc tangent value of the given numeric expression. The function only accepts a float as its single argument and can only return a float.

Example:
print atn%(1.0) * 4.0
rem -- the above outputs 3.1415266</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=call&amp;rev=1575960988&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-10T07:56:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CALL</title>
        <link>https://xc-basic.net/doku.php?id=call&amp;rev=1575960988&amp;do=diff</link>
        <description>CALL

Since version 0.9

Syntax:
[call] &lt;proc_name&gt; [(&lt;argument1&gt;, &lt;argument2&gt;, ...)]
The CALL command calls a procedure.   

proc_name is the identifier of a previously defined procedure. The argument list is optional.

See PROC ... ENDPROC for more information and examples.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=cast&amp;rev=1561921838&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-30T21:10:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CAST()</title>
        <link>https://xc-basic.net/doku.php?id=cast&amp;rev=1561921838&amp;do=diff</link>
        <description>CAST()

Since version 2.0

Syntax:
cast(&lt;any expression&gt;) | cast!(&lt;any expression&gt;) | cast%(&lt;any expression&gt;)

The CAST() function converts an expression of any type to the required type. If there is a possibility of precision loss or truncation, the compiler will display a warning.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=charat&amp;rev=1561921915&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-30T21:11:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CHARAT</title>
        <link>https://xc-basic.net/doku.php?id=charat&amp;rev=1561921915&amp;do=diff</link>
        <description>CHARAT

Since version 0.9

Syntax:
charat &lt;byte or int x_pos&gt;, &lt;byte or int y_pos&gt;, &lt;byte or int screencode&gt;

The CHARAT command outputs a character at the given x and y position on the screen. All arguments can be of byte or integer type.

Example:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=command_reference&amp;rev=1613654884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:28:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>XC=BASIC command reference</title>
        <link>https://xc-basic.net/doku.php?id=command_reference&amp;rev=1613654884&amp;do=diff</link>
        <description>XC=BASIC command reference

The following is the list of all commands, functions and directives supported by the current version of XC=BASIC:

Core commands



	*  @ (address of)
	*  ABS()
	*  ASM
	*  ATN()
	*  CAST()
	*  CALL
	*  CHARAT
	*  CONST
	*  COS()
	*  CURPOS
	*  DATA
	*  DEC
	*  DEEK()
	*  DIM
	*  DISABLEIRQ
	*  DOKE
	*  ENABLEIRQ
	*  END</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=compiler_options&amp;rev=1576740823&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-19T08:33:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Compiler options</title>
        <link>https://xc-basic.net/doku.php?id=compiler_options&amp;rev=1576740823&amp;do=diff</link>
        <description>Compiler options

Compiler options can be set within the source code, via the PRAGMA statement. The following is a list of supported compiler options:
 Option       Since version        Description           Default value  civars     2.1      If set to 1, the compiler will treat variable names case-insensitive</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=const&amp;rev=1610348236&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-11T07:57:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CONST</title>
        <link>https://xc-basic.net/doku.php?id=const&amp;rev=1610348236&amp;do=diff</link>
        <description>CONST

Since version 0.9

Syntax:
const &lt;varname&gt; = &lt;number&gt;

The CONST directive defines a constant. The constant can be subsequently used as a regular variable, except that it is read-only.

Constants of any numeric types (bytes, integers or floats) may be defined. The number must be a numeric literal (no expression is allowed here).</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=cos&amp;rev=1561921952&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-30T21:12:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>COS()</title>
        <link>https://xc-basic.net/doku.php?id=cos&amp;rev=1561921952&amp;do=diff</link>
        <description>COS()

Since version 2.0

Syntax:
cos%(&lt;float expression&gt;)

The COS() function returns the cosine value of the given numeric expression. The function only accepts a float as its single argument and can only return a float.

Example:
print cos%(0.0)
rem -- the above outputs 1</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=curpos&amp;rev=1558592578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-23T08:22:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CURPOS</title>
        <link>https://xc-basic.net/doku.php?id=curpos&amp;rev=1558592578&amp;do=diff</link>
        <description>CURPOS

Syntax:
curpos &lt;byte or int column&gt;, &lt;byte or int row&gt;

The CURPOS command positions the cursor to the given column and row. Example:
print &quot;{CLR}&quot;
curpos 14 , 12 
print &quot;centered text&quot;</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=data&amp;rev=1568872826&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-19T08:00:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DATA</title>
        <link>https://xc-basic.net/doku.php?id=data&amp;rev=1568872826&amp;do=diff</link>
        <description>DATA

Syntax:
  data varname[] = &lt;value1&gt;, &lt;value2&gt;, &lt;value3&gt;, ...
Or in combination with the INCBIN directive:
  data varname![] = incbin &quot;path/to/binary_file&quot;
The DATA directive allocates a one-dimensional static array in memory filled with pre-initialized data</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=dec&amp;rev=1557211028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T08:37:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DEC</title>
        <link>https://xc-basic.net/doku.php?id=dec&amp;rev=1557211028&amp;do=diff</link>
        <description>DEC

Syntax:
dec &lt;byte or int variable&gt;
The DEC command decrements the value of a byte or integer variable by 1. This is considerably faster than doing LET x = x - 1. Example:
let myVar = 10
dec myVar
print myVar
The above will output 9.

Note: the DEC</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=deek&amp;rev=1557403455&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-09T14:04:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DEEK()</title>
        <link>https://xc-basic.net/doku.php?id=deek&amp;rev=1557403455&amp;do=diff</link>
        <description>DEEK()

Syntax:
deek(&lt;int address&gt;)

The DEEK function returns the value that is read from a two-byte memory location: address and address+1. The function always returns an integer.

Note: the address will be recognized  as an unsigned integer.

Example:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=dim&amp;rev=1579939130&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-25T08:58:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DIM</title>
        <link>https://xc-basic.net/doku.php?id=dim&amp;rev=1579939130&amp;do=diff</link>
        <description>DIM

Syntax:
dim &lt;any variable&gt;[&lt;const byte or int x_dim&gt; [, &lt;const byte or int y_dim&gt;]] [fast | @&lt;const int address&gt;]
The DIM directive defines a variable or an array in compile time. See the Arrays page for more information about arrays.

Variables do not need to be predefined, but the</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=disableirq&amp;rev=1575961150&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-10T07:59:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DISABLEIRQ</title>
        <link>https://xc-basic.net/doku.php?id=disableirq&amp;rev=1575961150&amp;do=diff</link>
        <description>DISABLEIRQ

Since version 2.1

Syntax:
disableirq

The DISABLEIRQ command sets the CPU's interrupt flag, preventing the CPU from responding
to IRQ interrupt events.

To re-enable the respond to IRQ, use ENABLEIRQ

WARNING: keyboard scanning will be disabled if you turn off interrupts. Make sure interrupts are enabled when you intend to use</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=doke&amp;rev=1557403544&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-09T14:05:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DOKE</title>
        <link>https://xc-basic.net/doku.php?id=doke&amp;rev=1557403544&amp;do=diff</link>
        <description>DOKE

Syntax:
doke &lt;int address&gt;, &lt;int value&gt;
The DOKE command stores a value into the given memory address, using two bytes: address and address+1. The value will be stored in low byte - high byte order.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=enableirq&amp;rev=1570472373&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-10-07T20:19:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ENABLEIRQ</title>
        <link>https://xc-basic.net/doku.php?id=enableirq&amp;rev=1570472373&amp;do=diff</link>
        <description>ENABLEIRQ

Since version 2.1

Syntax:
enableirq

The ENABLEIRQ command clears the CPU's interrupt flag, allowing the CPU to respond
to IRQ interrupt events.

To disable the respond to IRQ, use DISABLEIRQ</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=end&amp;rev=1610304886&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-10T19:54:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>END</title>
        <link>https://xc-basic.net/doku.php?id=end&amp;rev=1610304886&amp;do=diff</link>
        <description>END

Syntax:
end

The END command halts the execution of the program. It can be used within the normal program flow or at the end of the program as well, but the latter is not necessary. See GOSUB for an example.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=examples&amp;rev=1605188901&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-12T14:48:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Examples</title>
        <link>https://xc-basic.net/doku.php?id=examples&amp;rev=1605188901&amp;do=diff</link>
        <description>Examples

These are sample pieces of XC=BASIC source code.

Example 1: Fibonacci series
rem ** fibonacci series **

max = 32767
t1 = 0
t2 = 1

print &quot;fibonacci series:&quot;
loop:
  print t1, &quot; &quot;
  nx = t1 + t2
  t1 = t2
  t2 = nx
  if nx &lt; max then goto loop
end</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=expressions&amp;rev=1561445704&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-25T08:55:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Expression evaluation</title>
        <link>https://xc-basic.net/doku.php?id=expressions&amp;rev=1561445704&amp;do=diff</link>
        <description>Expression evaluation

This article explains how expressions are evaluated in XC=BASIC.

Expression</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=extensions_tutorial&amp;rev=1576178059&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-12T20:14:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Tutorial: Extension writing</title>
        <link>https://xc-basic.net/doku.php?id=extensions_tutorial&amp;rev=1576178059&amp;do=diff</link>
        <description>Tutorial: Extension writing

As mentioned before, an extension is simply an XC=BASIC source code file. You can define procedures, functions and constants in your extension just the way you'd do it in an  XC=BASIC program.

Naming your symbols

To avoid naming collisions, you should choose a</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=extensions&amp;rev=1613249699&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-13T21:54:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Extensions</title>
        <link>https://xc-basic.net/doku.php?id=extensions&amp;rev=1613249699&amp;do=diff</link>
        <description>Extensions

XC=BASIC supports third-party extensions since version 2.2. Extensions are includable source files that define

	*  new COMMANDS
	*  new FUNCTIONS
	*  new CONSTANTS
	*  new VARIABLES

Extensions can be written in assembly language or in XC=BASIC</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=ferr&amp;rev=1557213530&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T09:18:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>FERR()</title>
        <link>https://xc-basic.net/doku.php?id=ferr&amp;rev=1557213530&amp;do=diff</link>
        <description>FERR()

Syntax:
ferr() | ferr!()
The FERR() function returns error information subsequent to the last LOAD or SAVE statement. The function can return a byte or an integer.

If the return value is zero, no error occurred. Otherwise the value will hold the matching KERNAL error code.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=fornext&amp;rev=1665646569&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-13T09:36:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>FOR ... NEXT</title>
        <link>https://xc-basic.net/doku.php?id=fornext&amp;rev=1665646569&amp;do=diff</link>
        <description>FOR ... NEXT

Syntax:
for &lt;byte or int variable&gt; = &lt;byte or int initial_value&gt; to &lt;byte or int end_value&gt; [step &lt;byte or int step&gt;]
[statements...]
next [&lt;variable&gt;]

The FOR ... NEXT construct will assign the result of initial_value to the given variable, then iterate the variable until it reaches the value of</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=fun&amp;rev=1596783747&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-07T09:02:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>FUN ... ENDFUN</title>
        <link>https://xc-basic.net/doku.php?id=fun&amp;rev=1596783747&amp;do=diff</link>
        <description>FUN ... ENDFUN

Since version 2.2

Syntax:
fun &lt;fun_name&gt;&lt;sigil&gt; [(&lt;arg1&gt;, &lt;arg2&gt;, &lt;argn&gt; ...)]
  [&lt;statements&gt;]
  return &lt;expression&gt;
endfun

The FUN ... ENDFUN directives are used for defining a user function. Functions are similar to procedures with the exception that:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=functions&amp;rev=1576175729&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-12T19:35:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Functions</title>
        <link>https://xc-basic.net/doku.php?id=functions&amp;rev=1576175729&amp;do=diff</link>
        <description>Functions

Functions in XC=BASIC are procedures that return a value of a certain type.

XC=BASIC supports:

	*  Several built-in functions
	*  The USR() function to call a machine language function
	*  User-defined functions (since version 2.2)

Calling overloaded functions

Some of the built-in functions are overloaded and thus they may return values of miscellaneous types. When calling a function, you must explicitly specify which type you wish to call by appending the right</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=future_plans&amp;rev=1576175868&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-12T19:37:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Future plans</title>
        <link>https://xc-basic.net/doku.php?id=future_plans&amp;rev=1576175868&amp;do=diff</link>
        <description>Future plans

These are the planned features of a future version. Plans may change of course.

	*  Compilation of the same source for multiple 6502-based architectures
	*  Extension system: the language will consist of the core language and optional extensions. Userland extensions can be added, e. g. graphics, sound, i/o, you name it.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=game_gallery&amp;rev=1632603179&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-25T22:52:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Game and demo gallery</title>
        <link>https://xc-basic.net/doku.php?id=game_gallery&amp;rev=1632603179&amp;do=diff</link>
        <description>Game and demo gallery

The following programs were written in XC=BASIC. If you've written a working XC=BASIC program, please add it to the examples/ directory in the develop branch of the GitHub repo and submit a PR. Or you can just send it to me to feketecsaba at gmail dot com.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=gosubreturn&amp;rev=1557226029&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T12:47:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>GOSUB ... RETURN</title>
        <link>https://xc-basic.net/doku.php?id=gosubreturn&amp;rev=1557226029&amp;do=diff</link>
        <description>GOSUB ... RETURN

Syntax:
gosub &lt;label&gt;
return
The GOSUB command calls a subroutine marked by a label. RETURN will pass control back to the caller. Nesting subroutines are supported (GOSUB and RETURN compiles to just plain JSR and RTS, nothing fancy). Stack overflow is not checked in runtime, but is quite unlikely to encounter. Example:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=goto&amp;rev=1557228571&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T13:29:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>GOTO</title>
        <link>https://xc-basic.net/doku.php?id=goto&amp;rev=1557228571&amp;do=diff</link>
        <description>GOTO

Syntax:
goto &lt;label&gt;
The GOTO command passes execution to the code that begins at the given label.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=ifthenelse&amp;rev=1563178679&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-15T10:17:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IF ... THEN ... ELSE</title>
        <link>https://xc-basic.net/doku.php?id=ifthenelse&amp;rev=1563178679&amp;do=diff</link>
        <description>IF ... THEN ... ELSE

Syntax:
if &lt;any relation&gt; [and | or &lt;any relation&gt;] then &lt;statements&gt; [else &lt;statements&gt;]

or, since version 2.1:
if &lt;any relation&gt; [and | or &lt;any relation&gt;] then
  &lt;statements&gt;
[else
  &lt;statements&gt;]
endif
Conditional structure. Executes the statements after</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=inc&amp;rev=1610170614&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-09T06:36:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>INC</title>
        <link>https://xc-basic.net/doku.php?id=inc&amp;rev=1610170614&amp;do=diff</link>
        <description>INC

Syntax:
inc &lt;byte or int variable&gt;
The INC command increments the value of a byte or integer variable by 1. This is considerably faster than doing LET x = x + 1. Example:
let myVar = 10
inc myVar
print myVar
The above will output 11.

Note: the INC command does not work on floats.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=incbin&amp;rev=1564776661&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-02T22:11:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>INCBIN</title>
        <link>https://xc-basic.net/doku.php?id=incbin&amp;rev=1564776661&amp;do=diff</link>
        <description>INCBIN

Syntax:
incbin &quot;path/to/binary_file&quot;
Or - in combination with DATA:
data varname![] = incbin &quot;path/to/binary_file&quot;
The INCBIN directive instructs the assembler to include a custom binary file. This is useful to include graphics, music or any kind of data - even machine code routines - in your program.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=include&amp;rev=1581511010&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-12T13:36:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>INCLUDE</title>
        <link>https://xc-basic.net/doku.php?id=include&amp;rev=1581511010&amp;do=diff</link>
        <description>INCLUDE

Syntax:
include &quot;filename.bas&quot;
include &quot;path/to/filename.bas&quot;

The INCLUDE directive instructs the compiler to fetch the contents of another source file and include it in the current source. Nested includes are supported.

Note: the path must be a relative path to the current source file.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=inkey&amp;rev=1557231117&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T14:11:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>INKEY()</title>
        <link>https://xc-basic.net/doku.php?id=inkey&amp;rev=1557231117&amp;do=diff</link>
        <description>INKEY()

Syntax:
inkey() | inkey!()

The INKEY() function returns the keyboard code of the last pressed key. If no key was pressed, the return value is 0. 

The function can return an integer or a byte.

Example:
print &quot;press a key&quot;
loop:
  let key! = inkey!()
  if key! = 0 then goto loop
print &quot;you pressed: &quot;, key!</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=input&amp;rev=1568958717&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-20T07:51:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>INPUT</title>
        <link>https://xc-basic.net/doku.php?id=input&amp;rev=1568958717&amp;do=diff</link>
        <description>INPUT

Syntax:
input &lt;string pointer destination&gt;, &lt;byte max_length&gt; [,&lt;string mask&gt;]

The INPUT command calls a built-in routine that allows the user to input a string using the keyboard. The user input will be limited to max_length characters. After the user has pressed the</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_1_down&amp;rev=1613654112&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:15:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_1_DOWN()</title>
        <link>https://xc-basic.net/doku.php?id=joy_1_down&amp;rev=1613654112&amp;do=diff</link>
        <description>JOY_1_DOWN()

Defined in xcb-ext-joystick

Syntax:
joy_1_down!()
This function returns 1 if the joystick in port 1 is being pulled down, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_1_fire&amp;rev=1613654197&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:16:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_1_FIRE()</title>
        <link>https://xc-basic.net/doku.php?id=joy_1_fire&amp;rev=1613654197&amp;do=diff</link>
        <description>JOY_1_FIRE()

Defined in xcb-ext-joystick

Syntax:
joy_1_fire!()
This function returns 1 if the fire button on joystick in port 1 is depressed, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_1_left&amp;rev=1613654141&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:15:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_1_LEFT()</title>
        <link>https://xc-basic.net/doku.php?id=joy_1_left&amp;rev=1613654141&amp;do=diff</link>
        <description>JOY_1_LEFT()

Defined in xcb-ext-joystick

Syntax:
joy_1_left!()
This function returns 1 if the joystick in port 1 is being pulled left, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_1_right&amp;rev=1613654165&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:16:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_1_RIGHT()</title>
        <link>https://xc-basic.net/doku.php?id=joy_1_right&amp;rev=1613654165&amp;do=diff</link>
        <description>JOY_1_RIGHT()

Defined in xcb-ext-joystick

Syntax:
joy_1_right!()
This function returns 1 if the joystick in port 1 is being pulled right, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_1_up&amp;rev=1613654085&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_1_UP()</title>
        <link>https://xc-basic.net/doku.php?id=joy_1_up&amp;rev=1613654085&amp;do=diff</link>
        <description>JOY_1_UP()

Defined in xcb-ext-joystick

Syntax:
joy_1_up!()
This function returns 1 if the joystick in port 1 is being pulled up, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_2_down&amp;rev=1613654263&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:17:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_2_DOWN()</title>
        <link>https://xc-basic.net/doku.php?id=joy_2_down&amp;rev=1613654263&amp;do=diff</link>
        <description>JOY_2_DOWN()

Defined in xcb-ext-joystick

Syntax:
joy_2_down!()
This function returns 1 if the joystick in port 2 is being pulled down, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_2_fire&amp;rev=1613654350&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:19:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_2_FIRE()</title>
        <link>https://xc-basic.net/doku.php?id=joy_2_fire&amp;rev=1613654350&amp;do=diff</link>
        <description>JOY_2_FIRE()

Defined in xcb-ext-joystick

Syntax:
joy_2_fire!()
This function returns 1 if the fire button on joystick in port 2 is depressed, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_2_left&amp;rev=1613654290&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:18:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_2_LEFT()</title>
        <link>https://xc-basic.net/doku.php?id=joy_2_left&amp;rev=1613654290&amp;do=diff</link>
        <description>JOY_2_LEFT()

Defined in xcb-ext-joystick

Syntax:
joy_2_left!()
This function returns 1 if the joystick in port 2 is being pulled left, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_2_right&amp;rev=1613654323&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:18:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_2_RIGHT()</title>
        <link>https://xc-basic.net/doku.php?id=joy_2_right&amp;rev=1613654323&amp;do=diff</link>
        <description>JOY_2_RIGHT()

Defined in xcb-ext-joystick

Syntax:
joy_2_right!()
This function returns 1 if the joystick in port 2 is being pulled right, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=joy_2_up&amp;rev=1613654224&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:17:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JOY_2_UP()</title>
        <link>https://xc-basic.net/doku.php?id=joy_2_up&amp;rev=1613654224&amp;do=diff</link>
        <description>JOY_2_UP()

Defined in xcb-ext-joystick

Syntax:
joy_2_up!()
This function returns 1 if the joystick in port 2 is being pulled up, 0 otherwise.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=let&amp;rev=1610304440&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-10T19:47:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LET</title>
        <link>https://xc-basic.net/doku.php?id=let&amp;rev=1610304440&amp;do=diff</link>
        <description>LET

Syntax:
[let] &lt;any variable&gt; = &lt;any expression&gt;
The LET command assigns the value of an expression to a variable. If the variable does not exist, the compiler will create it.

Examples:
let somevar = 5
let somearray[n] = x * 2

Important! Prior to version 1.0, the</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=load&amp;rev=1557256447&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T21:14:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LOAD</title>
        <link>https://xc-basic.net/doku.php?id=load&amp;rev=1557256447&amp;do=diff</link>
        <description>LOAD

Syntax:
load &quot;filename&quot;, &lt;byte or int device_no&gt; [, &lt;int start_address&gt;]

The LOAD command loads a binary file from the given device into memory using the KERNAL load routine. If start_address is not specified, the first to bytes (LB/HB) of the file will be used as the start address. Otherwise the first two bytes of the file will be discarded and the rest will be loaded into the memory address specified by</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=lshift&amp;rev=1609570348&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-02T07:52:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LSHIFT()</title>
        <link>https://xc-basic.net/doku.php?id=lshift&amp;rev=1609570348&amp;do=diff</link>
        <description>LSHIFT()

Since version 2.1

Syntax:
lshift!(&lt;byte expression&gt; [, &lt;byte positions&gt;])
or
lshift(&lt;int expression&gt; [, &lt;byte positions&gt;])

The LSHIFT() function shifts each bit in expression to the left by the number of positions and returns the result of the operation.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=memcpy&amp;rev=1562762268&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-10T14:37:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>MEMCPY</title>
        <link>https://xc-basic.net/doku.php?id=memcpy&amp;rev=1562762268&amp;do=diff</link>
        <description>MEMCPY

Since version 2.1

Syntax:
memcpy &lt;int source_address&gt;, &lt;int destination_address&gt;, &lt;int length&gt;

The MEMCPY command calls a built-in routine that copies length number bytes in memory from source_address to destination_address.



The routine is overlapping-safe</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=memory_layout&amp;rev=1564569924&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-31T12:45:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Memory layout</title>
        <link>https://xc-basic.net/doku.php?id=memory_layout&amp;rev=1564569924&amp;do=diff</link>
        <description>Memory layout

This page describes the default memory layout of an XC=BASIC program along with the reserved zero page and other locations.

Default memory configuration

On startup, the XC=BASIC runtime library sets up the following memory configuration:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=memset&amp;rev=1562761615&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-10T14:26:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>MEMSET</title>
        <link>https://xc-basic.net/doku.php?id=memset&amp;rev=1562761615&amp;do=diff</link>
        <description>MEMSET

Since version 2.1

Syntax:
memset &lt;int source_address&gt;, &lt;int length&gt;, &lt;byte fill_value&gt;
The MEMSET command calls a built-in routine that sets length number of bytes in memory to fill_value starting from source_address. The same functionality can be achieved with</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=memshift&amp;rev=1562762223&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-10T14:37:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>MEMSHIFT</title>
        <link>https://xc-basic.net/doku.php?id=memshift&amp;rev=1562762223&amp;do=diff</link>
        <description>MEMSHIFT

Since version 2.1

Syntax:
memshift &lt;int source_address&gt;, &lt;int destination_address&gt;, &lt;int length&gt;

The MEMSHIFT command calls a built-in routine that copies length number bytes in memory from source_address to destination_address.



The routine is overlapping-safe</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=numeric_literals&amp;rev=1561614309&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-27T07:45:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Numeric literals</title>
        <link>https://xc-basic.net/doku.php?id=numeric_literals&amp;rev=1561614309&amp;do=diff</link>
        <description>Numeric literals

There are several ways you can express a number in XC=BASIC and there are a few rules you have to keep in mind.

Data types

Currently three numeric types are supported: byte, integer and float. The compiler will follow these rules when parsing numbers:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=on&amp;rev=1560061589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-09T08:26:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ON</title>
        <link>https://xc-basic.net/doku.php?id=on&amp;rev=1560061589&amp;do=diff</link>
        <description>ON

Syntax:
on &lt;byte or int index&gt; goto label [ ,label ...]
or:
on &lt;byte or int index&gt; gosub label [ ,label ...]

The ON language construct creates a conditional branch that accepts an index and a list of labels. The expression index will be evaluated and the corresponding label from the list will be passed to</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=operators&amp;rev=1610348003&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-11T07:53:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Operators</title>
        <link>https://xc-basic.net/doku.php?id=operators&amp;rev=1610348003&amp;do=diff</link>
        <description>Operators

Numeric expressions are evaluated similarly to BASIC V2 or any other BASIC dialects, with some minor incompatibilities. The currently supported operators are:

Arithmetic operators

	*  * (multiplication)
	*  / (division)
	*  + (addition)</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=origin&amp;rev=1557256939&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T21:22:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ORIGIN</title>
        <link>https://xc-basic.net/doku.php?id=origin&amp;rev=1557256939&amp;do=diff</link>
        <description>ORIGIN

Syntax:
origin &lt;int number address&gt;
The ORIGIN command instructs the underlying assembler to compile subsequent code or data to a new address instead of the current address.

	*  If the new address is less than the current address, the program won't compile.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=peek&amp;rev=1557403464&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-09T14:04:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PEEK()</title>
        <link>https://xc-basic.net/doku.php?id=peek&amp;rev=1557403464&amp;do=diff</link>
        <description>PEEK()

Syntax:
peek(&lt;int address&gt;) | peek!(&lt;int address&gt;)

The PEEK function returns the value that is read from a memory address. The function can return a byte or an integer. In the latter case the value will be promoted to integer type.

Note: the address will be recognized  as an unsigned integer.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=performance&amp;rev=1610302884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-10T19:21:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Performance tips</title>
        <link>https://xc-basic.net/doku.php?id=performance&amp;rev=1610302884&amp;do=diff</link>
        <description>Performance tips

You can follow a couple of good practices to speed up your XC=BASIC programs.

Tip #1: Use the right type

While floats allow a much wider range of values, it's way much slower to operate on them. Always use integers if you don't need the precision of floats.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=petscii_escape_sequences&amp;rev=1566753292&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-25T19:14:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PETSCII escape sequences</title>
        <link>https://xc-basic.net/doku.php?id=petscii_escape_sequences&amp;rev=1566753292&amp;do=diff</link>
        <description>PETSCII escape sequences
 Sequence       Alias(es)         Value{ARROW_LEFT} {ARROW LEFT}  $5f{ARROW_UP} {ARROW UP}  $5e{BLACK}   $90{BLUE}   $1f{BROWN}   $95{CLR} {CLEAR}  $93{CRSR_DOWN} {DOWN}  $11{CRSR_LEFT} {LEFT}  $9d{CRSR_RIGHT} {RIGHT}  $1d{CRSR_UP}</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=poke&amp;rev=1557257548&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T21:32:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>POKE</title>
        <link>https://xc-basic.net/doku.php?id=poke&amp;rev=1557257548&amp;do=diff</link>
        <description>POKE

Syntax:
poke &lt;int address&gt;, &lt;byte or int value&gt;
The POKE command stores a value into the given memory address. The following type conversions are possible:

	*  address will be recognized as an unsigned integer
	*  if value is an integer, it will be truncated to a byte</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=pragma&amp;rev=1562581642&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-08T12:27:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PRAGMA</title>
        <link>https://xc-basic.net/doku.php?id=pragma&amp;rev=1562581642&amp;do=diff</link>
        <description>PRAGMA

Since version 2.1

Syntax:
pragma &lt;option_name&gt; = &lt;value&gt;

The PRAGMA directive sets a compiler option. You can find the list of the supported options here. If the option is not supported, a warning will be emitted.

Note: PRAGMA directives must be placed in the beginning of the program. The only statement allowed before a</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=print&amp;rev=1576100341&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-11T22:39:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PRINT</title>
        <link>https://xc-basic.net/doku.php?id=print&amp;rev=1576100341&amp;do=diff</link>
        <description>PRINT

Syntax:
print &lt;any expression or string&gt; [, &lt;any exrpession or string&gt;, ...] [;]

The PRINT command prints strings or numbers (values of any expression) on the screen using the KERNAL CHAROUT routine. Any number of arguments are accepted. The arguments must be separated with a comma (</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=proc&amp;rev=1596783156&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-07T08:52:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PROC ... ENDPROC</title>
        <link>https://xc-basic.net/doku.php?id=proc&amp;rev=1596783156&amp;do=diff</link>
        <description>PROC ... ENDPROC

Syntax:
proc &lt;proc_name&gt; [(&lt;any param1&gt;, &lt;any param2&gt;, ...)]
&lt;statements&gt;
endproc
call &lt;proc_name&gt; [(&lt;any param1&gt;, &lt;any param2&gt;, ...)]
The PROC command introduces a new procedure that spans until the ENDPROC command. Procedures are named subroutines that have a unique variable and label scope. Procedures may have one or more parameters that are passed to by the</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=procedures&amp;rev=1561614346&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-27T07:45:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Procedures</title>
        <link>https://xc-basic.net/doku.php?id=procedures&amp;rev=1561614346&amp;do=diff</link>
        <description>Procedures

XC=BASIC supports the procedural style of programming through the PROC ... ENDPROC statements. To call a procedure, use the CALL command.

A procedure is similar to a subroutine, except that

	*  A procedure opens a unique variable and label scope
	*  A procedure can have zero or more parameters</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=releases&amp;rev=1617885143&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-08T14:32:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Releases</title>
        <link>https://xc-basic.net/doku.php?id=releases&amp;rev=1617885143&amp;do=diff</link>
        <description>Releases
 Current stable      version 2.3.11 [ Release page ] Older releases     version 2.2.05 [ download .zip ] version 2.102 [ download .zip ] version 2.0 [ download .zip ]  version 1.1 [ download .zip ]  version 1.0 [ download .zip ]  version 0.9.1 [ download .zip ] 
What's new in version 2.3?

(1) New GitHub action for automatic build</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=rem&amp;rev=1610318178&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-10T23:36:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>REM</title>
        <link>https://xc-basic.net/doku.php?id=rem&amp;rev=1610318178&amp;do=diff</link>
        <description>REM

Syntax:
rem &lt;anything&gt;

The REM directive denotes a comment until the end of that line. The compiler will ignore it.

Since v2.1, the semicolon character (;) and single quote character (') are aliases of REM.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=repeat&amp;rev=1567746202&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-06T07:03:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>REPEAT ... UNTIL</title>
        <link>https://xc-basic.net/doku.php?id=repeat&amp;rev=1567746202&amp;do=diff</link>
        <description>REPEAT ... UNTIL

Since version 2.1

Syntax:
repeat
  &lt;statements&gt;
until &lt;condition&gt;

The REPEAT command starts a post-test loop. The statements in the loop will be run at least once. If the condition in the UNTIL statement evaluates to true, the loop exits.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=ri_off&amp;rev=1613654620&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:23:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RI_OFF</title>
        <link>https://xc-basic.net/doku.php?id=ri_off&amp;rev=1613654620&amp;do=diff</link>
        <description>RI_OFF

Defined in xcb-ext-rasterinterrupt

Syntax:
ri_off
Disables raster interrupts. Please see the extension's documentation for further details.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=ri_on&amp;rev=1613654593&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:23:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RI_ON</title>
        <link>https://xc-basic.net/doku.php?id=ri_on&amp;rev=1613654593&amp;do=diff</link>
        <description>RI_ON

Defined in xcb-ext-rasterinterrupt

Syntax:
ri_on
Enables raster interrupts. Please see the extension's documentation for further details.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=ri_set_isr&amp;rev=1613654716&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:25:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RI_SET_ISR</title>
        <link>https://xc-basic.net/doku.php?id=ri_set_isr&amp;rev=1613654716&amp;do=diff</link>
        <description>RI_SET_ISR

Defined in xcb-ext-rasterinterrupt

Syntax:
ri_set_isr &lt;byte isr_number&gt;, &lt;int isr_address&gt;, &lt;int raster_line&gt;
Defines an Interrupt Service Routine (isr). Please see the extension's documentation for further details.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=ri_syshandler_off&amp;rev=1613654860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:27:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RI_SYSHANDLER_OFF</title>
        <link>https://xc-basic.net/doku.php?id=ri_syshandler_off&amp;rev=1613654860&amp;do=diff</link>
        <description>RI_SYSHANDLER_OFF

Defined in xcb-ext-rasterinterrupt

Syntax:
ri_syshandler_off
Instructs the runtime NOT to call the KERNAL interrupt handler. If you set this, keyboard input and cursor blinking will not work while raster interrupts are enabled. Please see the extension's documentation for further details.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=ri_syshandler_on&amp;rev=1613654805&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:26:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RI_SYSHANDLER_ON</title>
        <link>https://xc-basic.net/doku.php?id=ri_syshandler_on&amp;rev=1613654805&amp;do=diff</link>
        <description>RI_SYSHANDLER_ON

Defined in xcb-ext-rasterinterrupt

Syntax:
ri_syshandler_on
Instructs the runtime to call the KERNAL interrupt handler at $ea31 on each interrupt cycle to make sure that keyboard input and cursor blinking works while raster interrupts are on. Please see the</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=rnd&amp;rev=1610966155&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-18T11:35:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RND()</title>
        <link>https://xc-basic.net/doku.php?id=rnd&amp;rev=1610966155&amp;do=diff</link>
        <description>RND()

Syntax:
rnd!() | rnd() | rnd%()

The RND() function returns a pseudo-random number. Depending on the requested type, the return value can be:

	*  a byte between 0 and 255
	*  an integer between -32768 and +32767
	*  a float between 0 and 1

Example:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=rshift&amp;rev=1609570386&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-02T07:53:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>RSHIFT()</title>
        <link>https://xc-basic.net/doku.php?id=rshift&amp;rev=1609570386&amp;do=diff</link>
        <description>RSHIFT()

Since version 2.1

Syntax:
rshift!(&lt;byte expression&gt; [, &lt;byte positions&gt;])
or
rshift(&lt;int expression&gt; [, &lt;byte positions&gt;])

The RSHIFT() function shifts each bit in expression to the right by the number of positions and returns the result of the operation.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=save&amp;rev=1557259527&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T22:05:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SAVE</title>
        <link>https://xc-basic.net/doku.php?id=save&amp;rev=1557259527&amp;do=diff</link>
        <description>SAVE

Syntax:
save &quot;filename&quot;, &lt;byte or int device_no&gt;, &lt;int start_address&gt;, &lt;int end_address&gt;
The SAVE command saves the given memory area into a file on the given device by calling the KERNAL SAVE routine. The first two bytes in the file will contain the start address.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=sfx_init&amp;rev=1613655118&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:31:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SFX_INIT</title>
        <link>https://xc-basic.net/doku.php?id=sfx_init&amp;rev=1613655118&amp;do=diff</link>
        <description>SFX_INIT

Defined in xcb-ext-sfx

Syntax:
sfx_init &lt;int sfx_addr&gt;, &lt;byte voice3_reserved&gt;
Initializes SID and sets up the play routine. Parameters:

	*  sfx_addr the address where sfx data are found in memory
	*  voice3_reserved whether the routine should exclude SID's voice no 3 from playing (</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=sfx_play&amp;rev=1613655183&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:33:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SFX_PLAY</title>
        <link>https://xc-basic.net/doku.php?id=sfx_play&amp;rev=1613655183&amp;do=diff</link>
        <description>SFX_PLAY

Defined in xcb-ext-sfx

Syntax:
sfx_play
This command must be issued on every screen refresh (or every 1/50th of a second) in order to play sounds. Please see the extension's documentation for further details.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=sfx_start&amp;rev=1613655412&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:36:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SFX_START</title>
        <link>https://xc-basic.net/doku.php?id=sfx_start&amp;rev=1613655412&amp;do=diff</link>
        <description>SFX_START

Defined in xcb-ext-sfx

Syntax:
sfx_start &lt;byte sound_number!&gt;
Starts a sound. sound_number must be a number from 0 to 23.. Please see the extension's documentation for further details.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=sgn&amp;rev=1558679017&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-24T08:23:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SGN()</title>
        <link>https://xc-basic.net/doku.php?id=sgn&amp;rev=1558679017&amp;do=diff</link>
        <description>SGN()

Syntax:
sgn(&lt;int of float expression&gt;)

The SGN() function returns the sign of a numerical argument as follows:
ArgumentResultnegative value-1zero0positive value (excluding zero) 1</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=sidebar&amp;rev=1654420802&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-05T11:20:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sidebar</title>
        <link>https://xc-basic.net/doku.php?id=sidebar&amp;rev=1654420802&amp;do=diff</link>
        <description>*  Releases
	*  Usage
	*  Gallery
	*  Tutorials
	*  Language Reference
			*  Syntax
			*  Numeric Literals
			*  Variables
			*  Arrays
			*  Operators
			*  Strings
			*  Procedures
			*  Functions
			*  Command Reference
			*  Appendices
					*  Compiler Options
					*  Memory Layout
					*  PETSCII Escape Sequences


	*  Extensions
	*  Performance Tips 
	*  News &amp; Announcements
	*  Discussion
	*  Issues</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=sin&amp;rev=1557259657&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T22:07:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SIN()</title>
        <link>https://xc-basic.net/doku.php?id=sin&amp;rev=1557259657&amp;do=diff</link>
        <description>SIN()

Syntax:
sin%(&lt;float expression&gt;)

The SIN() function returns the sine value of the given numeric expression. The function only accepts a float as its single argument and can only return a float.

Example:
print sin%(1.0)
rem -- the above outputs 0.841470985</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_behindbg&amp;rev=1599030545&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-02T09:09:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_BEHINDBG</title>
        <link>https://xc-basic.net/doku.php?id=spr_behindbg&amp;rev=1599030545&amp;do=diff</link>
        <description>SPR_BEHINDBG

Defined in xcb-ext-sprite

Syntax:
spr_behindbg &lt;byte sprite_number&gt;
This command makes the sprite identified by sprite_number appear behind other graphics. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_cleardblheight&amp;rev=1613653068&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T13:57:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_CLEARDBLHEIGHT</title>
        <link>https://xc-basic.net/doku.php?id=spr_cleardblheight&amp;rev=1613653068&amp;do=diff</link>
        <description>SPR_CLEARDBLHEIGHT

Defined in xcb-ext-sprite

Syntax:
spr_cleardblheight &lt;byte sprite_number&gt;
This command unsets vertical expanded mode for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_cleardblwidth&amp;rev=1613653183&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T13:59:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_CLEARDBLWIDTH</title>
        <link>https://xc-basic.net/doku.php?id=spr_cleardblwidth&amp;rev=1613653183&amp;do=diff</link>
        <description>SPR_CLEARDBLWIDTH

Defined in xcb-ext-sprite

Syntax:
spr_cleardblwidth &lt;byte sprite_number&gt;
This command unsets horizontal expanded mode for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_data_collision&amp;rev=1613653936&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:12:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_DATA_COLLISION()</title>
        <link>https://xc-basic.net/doku.php?id=spr_data_collision&amp;rev=1613653936&amp;do=diff</link>
        <description>SPR_DATA_COLLISION()

Defined in xcb-ext-sprite

Syntax:
spr_data_collision!(&lt;byte spr_no&gt;)
This function returns 1 if sprite collides with graphics, 0 otherwise. spr_no! must be between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_disable&amp;rev=1605188384&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-12T14:39:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_DISABLE</title>
        <link>https://xc-basic.net/doku.php?id=spr_disable&amp;rev=1605188384&amp;do=diff</link>
        <description>SPR_DISABLE

Defined in xcb-ext-sprite

Syntax:
spr_disable &lt;byte sprite_number&gt;
This command turns an individual sprite off. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_enable&amp;rev=1605188409&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-12T14:40:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_ENABLE</title>
        <link>https://xc-basic.net/doku.php?id=spr_enable&amp;rev=1605188409&amp;do=diff</link>
        <description>SPR_ENABLE

Defined in xcb-ext-sprite

Syntax:
spr_enable &lt;byte sprite_number&gt;
This command turns an individual sprite on. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_overbg&amp;rev=1605188566&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-12T14:42:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_OVERBG</title>
        <link>https://xc-basic.net/doku.php?id=spr_overbg&amp;rev=1605188566&amp;do=diff</link>
        <description>SPR_OVERBG

Defined in xcb-ext-sprite

Syntax:
spr_overbg &lt;byte sprite_number&gt;
This command makes the sprite identified by sprite_number appear over other graphics. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_setcolor&amp;rev=1613652959&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T13:55:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETCOLOR</title>
        <link>https://xc-basic.net/doku.php?id=spr_setcolor&amp;rev=1613652959&amp;do=diff</link>
        <description>SPR_SETCOLOR

Defined in xcb-ext-sprite

Syntax:
spr_setcolor &lt;byte sprite_number&gt;, &lt;byte color&gt;
This command sets color for sprite identified by sprite_number. sprite_number must be a number between 0 and 7. color must be a number between 0 and 15.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_setdblheight&amp;rev=1613653033&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T13:57:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETDBLHEIGHT</title>
        <link>https://xc-basic.net/doku.php?id=spr_setdblheight&amp;rev=1613653033&amp;do=diff</link>
        <description>SPR_SETDBLHEIGHT

Defined in xcb-ext-sprite

Syntax:
spr_setdblheight &lt;byte sprite_number&gt;
This command sets vertical expanded mode for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_setdblwidth&amp;rev=1613653165&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T13:59:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETDBLWIDTH</title>
        <link>https://xc-basic.net/doku.php?id=spr_setdblwidth&amp;rev=1613653165&amp;do=diff</link>
        <description>SPR_SETDBLWIDTH

Defined in xcb-ext-sprite

Syntax:
spr_setdblwidth &lt;byte sprite_number&gt;
This command sets horizontal expanded mode for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_sethires&amp;rev=1613653396&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:03:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETHIRES</title>
        <link>https://xc-basic.net/doku.php?id=spr_sethires&amp;rev=1613653396&amp;do=diff</link>
        <description>SPR_SETHIRES

Defined in xcb-ext-sprite

Syntax:
spr_sethires &lt;byte sprite_number&gt;
This command sets high resolution mode for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_setmulti&amp;rev=1613653422&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:03:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETMULTI</title>
        <link>https://xc-basic.net/doku.php?id=spr_setmulti&amp;rev=1613653422&amp;do=diff</link>
        <description>SPR_SETMULTI

Defined in xcb-ext-sprite

Syntax:
spr_setmulti &lt;byte sprite_number&gt;
This command sets multicolor mode for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_setpos&amp;rev=1613653572&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:06:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETPOS</title>
        <link>https://xc-basic.net/doku.php?id=spr_setpos&amp;rev=1613653572&amp;do=diff</link>
        <description>SPR_SETPOS

Defined in xcb-ext-sprite

Syntax:
spr_setpos &lt;byte sprite_number&gt;, &lt;int x&gt;, &lt;byte y&gt;
This command sets both x and y coordinates for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_setposx&amp;rev=1613653599&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:06:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETPOSX</title>
        <link>https://xc-basic.net/doku.php?id=spr_setposx&amp;rev=1613653599&amp;do=diff</link>
        <description>SPR_SETPOSX

Defined in xcb-ext-sprite

Syntax:
spr_setposx &lt;byte sprite_number&gt;, &lt;int x&gt;
This command sets the x coordinate for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_setposy&amp;rev=1613653628&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:07:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETPOSY</title>
        <link>https://xc-basic.net/doku.php?id=spr_setposy&amp;rev=1613653628&amp;do=diff</link>
        <description>SPR_SETPOSY

Defined in xcb-ext-sprite

Syntax:
spr_setposy &lt;byte sprite_number&gt;, &lt;byte y&gt;
This command sets the y coordinate for the sprite identified by sprite_number. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_setshape&amp;rev=1613653909&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:11:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SETSHAPE</title>
        <link>https://xc-basic.net/doku.php?id=spr_setshape&amp;rev=1613653909&amp;do=diff</link>
        <description>SPR_SETSHAPE

Defined in xcb-ext-sprite

Syntax:
spr_setshape &lt;byte spr_number&gt;, &lt;byte shape&gt;
This command sets the shape of the sprite identified by sprite_number. sprite_number must be a number between 0 and 7. shape must be equal to the memory location divided by 64.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=spr_spr_collision&amp;rev=1613653980&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-18T14:13:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SPR_SPR_COLLISION()</title>
        <link>https://xc-basic.net/doku.php?id=spr_spr_collision&amp;rev=1613653980&amp;do=diff</link>
        <description>SPR_SPR_COLLISION()

Defined in xcb-ext-sprite

Syntax:
spr_spr_collision!(&lt;byte sprite_number&gt;)
This function returns 1 if sprite collides with another sprite, 0 otherwise. sprite_number must be a number between 0 and 7.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=sqr&amp;rev=1558679209&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-24T08:26:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SQR()</title>
        <link>https://xc-basic.net/doku.php?id=sqr&amp;rev=1558679209&amp;do=diff</link>
        <description>SQR()

Syntax:
sqr(&lt;int expression&gt;) | sqr%(&lt;float expression&gt;)

The SQR() function returns the square root of the argument. The return type must mach the argument type. Only integers and floats are supported. If the argument is negative, the program will emit an</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=start&amp;rev=1639397172&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-13T13:06:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Welcome to the XC=BASIC Wiki</title>
        <link>https://xc-basic.net/doku.php?id=start&amp;rev=1639397172&amp;do=diff</link>
        <description>Welcome to the XC=BASIC Wiki

XC=BASIC is a dialect of the BASIC programming language for the Commodore-64 and xcbasic64 is a cross-compiler that compiles XC=BASIC source code to 6502 machine code. The language is extensible.


Releases


----------

Some of the advantages of programming in</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=strcmp&amp;rev=1558549820&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-22T20:30:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>STRCMP()</title>
        <link>https://xc-basic.net/doku.php?id=strcmp&amp;rev=1558549820&amp;do=diff</link>
        <description>STRCMP()

Syntax:
strcmp(&lt;string pointer arg1&gt;, &lt;string pointer arg2&gt;)

The STRCMP() function is used to compare two strings. It compares the strings that the arguments point to, character by character. The comparison stops at the first unmatched character, or if one of the strings end. The function returns an integer as the result of the comparison:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=strcpy&amp;rev=1558554661&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-22T21:51:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>STRCPY</title>
        <link>https://xc-basic.net/doku.php?id=strcpy&amp;rev=1558554661&amp;do=diff</link>
        <description>STRCPY

Syntax:
strcpy &lt;string pointer destination&gt;, &lt;string pointer source&gt;

The STRCPY command copies the string pointed by source (including the null character) to the string pointed by destination.

Example:
dim buffer![16]
a$ = &quot;xc=basic&quot;
b$ = @buffer!
strcpy b$, a$
print b$
rem -- the above will output &quot;xc=basic&quot;</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=strings&amp;rev=1610303913&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-10T19:38:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Strings</title>
        <link>https://xc-basic.net/doku.php?id=strings&amp;rev=1610303913&amp;do=diff</link>
        <description>Strings

While XC=BASIC is pretty similar to CBM BASIC in many areas, it follows an entirely different approach in others. Strings are definitely one of the latter kind. If you intend to work with strings in your program, you should read this page carefully and get yourself familiar with the concept of strings in</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=strlen&amp;rev=1558548930&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-22T20:15:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>STRLEN()</title>
        <link>https://xc-basic.net/doku.php?id=strlen&amp;rev=1558548930&amp;do=diff</link>
        <description>STRLEN()

Syntax:
strlen!(&lt;string pointer&gt;)

The STRLEN() function returns the length of a string. The function accepts a string pointer (a literal string, a string pointer or a string pointer expression) as its single argument and returns a byte.

Example:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=strncpy&amp;rev=1586847510&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-14T08:58:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>STRNCPY</title>
        <link>https://xc-basic.net/doku.php?id=strncpy&amp;rev=1586847510&amp;do=diff</link>
        <description>STRNCPY

Syntax:
strncpy &lt;string pointer destination&gt;, &lt;string pointer source&gt;, &lt;byte n&gt;

The STRNCPY command is similar to STRCPY, the difference is that STRNCPY will copy the first n characters only. Copying will stop at the end of source even if n is greater than the length of</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=strpos&amp;rev=1558983425&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-27T20:57:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>STRPOS()</title>
        <link>https://xc-basic.net/doku.php?id=strpos&amp;rev=1558983425&amp;do=diff</link>
        <description>STRPOS()

Syntax:
strpos!(&lt;string pointer haystack&gt;, &lt;string pointer needle&gt;)

The STRPOS() function searches for the string needle in the string haystack. If needle is found, the function returns the position of its first occurrence within haystack. If needle is not found, the function returns 255.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=syntax&amp;rev=1575877212&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-09T08:40:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Syntax</title>
        <link>https://xc-basic.net/doku.php?id=syntax&amp;rev=1575877212&amp;do=diff</link>
        <description>Syntax

An XC=BASIC program is built from one or more plain ASCII text files that consist of lines, allowing one or more statements per line.

Each line may optionally contain a label and zero or more statements separated by a colon (:):
label1: print &quot;hello world&quot;
label2:
print &quot;hello again&quot;
let x = 5 : print x : rem &quot;these were more statements in a line&quot;</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=sys&amp;rev=1557259813&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-07T22:10:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SYS</title>
        <link>https://xc-basic.net/doku.php?id=sys&amp;rev=1557259813&amp;do=diff</link>
        <description>SYS

Syntax:
sys &lt;int address&gt;
The SYS command calls a machine language routine at the specified address. 

The expression must evaluate to an integer and will be treated as unsigned. Once the machine language routine returns using the RTS opcode, the</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=tan&amp;rev=1557292782&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-08T07:19:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TAN()</title>
        <link>https://xc-basic.net/doku.php?id=tan&amp;rev=1557292782&amp;do=diff</link>
        <description>TAN()

Syntax:
tan%(&lt;float expression&gt;)

The TAN() function returns the tangent value of the given numeric expression. The function only accepts a float as its single argument and can only return a float.

Example:
print tan%(1.0)
rem -- the above outputs 1.55740772</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=textat&amp;rev=1583224907&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-03T09:41:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TEXTAT</title>
        <link>https://xc-basic.net/doku.php?id=textat&amp;rev=1583224907&amp;do=diff</link>
        <description>TEXTAT

Syntax:
textat &lt;byte or int column&gt;, &lt;byte or int row&gt;, &quot;string literal&quot;

or:
textat &lt;byte or int column&gt;, &lt;byte or int row&gt;, &lt;any expression&gt;

The TEXTAT command outputs a string or a number at the given column and row on the screen without affecting the current cursor position. Column and row numbers are zero-based.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=tutorials&amp;rev=1612426727&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-04T09:18:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Tutorials</title>
        <link>https://xc-basic.net/doku.php?id=tutorials&amp;rev=1612426727&amp;do=diff</link>
        <description>Tutorials

	*  How to write TETRIS</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=usage&amp;rev=1613288711&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-14T08:45:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Usage</title>
        <link>https://xc-basic.net/doku.php?id=usage&amp;rev=1613288711&amp;do=diff</link>
        <description>Usage

Note: the bellow guide applies to versions 2.3 or later. If you're looking for the older usage guide, please read the old version of this page.

Installation

Before getting started, have a look at this figure to understand how XC=BASIC source files are compiled to C64 executable programs. There are two steps involved. First, the</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=usr&amp;rev=1557294670&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-08T07:51:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>USR()</title>
        <link>https://xc-basic.net/doku.php?id=usr&amp;rev=1557294670&amp;do=diff</link>
        <description>USR()

Syntax:
usr(&lt;int address&gt; [, &lt;any arg1&gt;, &lt;any arg2&gt;, ...])
usr!(&lt;int address&gt; [, &lt;any arg1&gt;, &lt;any arg2&gt;, ...])
usr%(&lt;int address&gt; [, &lt;any arg1&gt;, &lt;any arg2&gt;, ...])
The USR function passes an arbitrary length of parameters to a machine language routine and executes it. The function is evaluated to the return value of the ML routine.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=val&amp;rev=1559503971&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-02T21:32:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>VAL()</title>
        <link>https://xc-basic.net/doku.php?id=val&amp;rev=1559503971&amp;do=diff</link>
        <description>VAL()

Syntax:
val!(&lt;string ptr str&gt;) |  val(&lt;string ptr str&gt;) | val%(&lt;string ptr str&gt;)

The VAL() function tries to parse the numeric value in a string pointed by str to the numeric type of the function.

Parsing rules for VAL!()

The VAL!() function will return 0 if:</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=variables&amp;rev=1580507918&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-31T22:58:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Variables</title>
        <link>https://xc-basic.net/doku.php?id=variables&amp;rev=1580507918&amp;do=diff</link>
        <description>Variables

Variables in XC=BASIC are statically allocated memory areas that are assigned an identifier (name) and a type that can not be changed.

Variable definition

Variables don't need to be explicitly defined. The compiler will create the variable the first time it encounters them in a</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=wait&amp;rev=1561925191&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-30T22:06:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>WAIT</title>
        <link>https://xc-basic.net/doku.php?id=wait&amp;rev=1561925191&amp;do=diff</link>
        <description>WAIT

Since version 2.1

Syntax:
wait &lt;byte or int address&gt;, &lt;byte or int mask&gt; [, &lt;byte or int trig&gt;]
Identically to CBM BASIC, the WAIT command waits for a bit pattern on a specified memory address.

Please read this comprehensive article from Compute! Magazine for more information.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=watch&amp;rev=1561981869&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-01T13:51:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>WATCH</title>
        <link>https://xc-basic.net/doku.php?id=watch&amp;rev=1561981869&amp;do=diff</link>
        <description>WATCH

Since version 2.1

Syntax:
watch &lt;byte or int address&gt;, &lt;byte or int value&gt;

The WATCH command hangs execution until the value read from the specified memory address becomes equal to the given value.</description>
    </item>
    <item rdf:about="https://xc-basic.net/doku.php?id=while&amp;rev=1567746183&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-06T07:03:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>WHILE ... ENDWHILE</title>
        <link>https://xc-basic.net/doku.php?id=while&amp;rev=1567746183&amp;do=diff</link>
        <description>WHILE ... ENDWHILE

Since version 2.1

Syntax:
while &lt;condition&gt;
  &lt;statements&gt;
endwhile

The WHILE command starts a pre-test loop where the given condition is evaluated every time before entering the loop. If the condition evaluates to true, the statements between</description>
    </item>
</rdf:RDF>
