<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://retroprogramming.iwashere.eu/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://retroprogramming.iwashere.eu/feed.php">
        <title>Retroprogramming by spotlessmind1975 ugbasic:user:kw</title>
        <description></description>
        <link>https://retroprogramming.iwashere.eu/</link>
        <image rdf:resource="https://retroprogramming.iwashere.eu/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-20T01:57:31+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:abs?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:add?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:addc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:after...call?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:after...gosub?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:allow?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:and?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:animate?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:animating?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:animation?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:app?rev=1741168144&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_count?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_max?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_min?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_operator?rev=1729881005&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_sum?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:asc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ascii_code?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:asciicode?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:asm?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:at?rev=1729244681&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:atlas_load?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank...at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_address?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_count?rev=1727619831&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_read?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_size?rev=1727619831&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_uncompress?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_write?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bar?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_copper...end_copper?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_copper...endcopper?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_gameloop?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_storage...end_storage?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_storage?rev=1731671854&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_type...end_type?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bell?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:big_endian?rev=1729256488&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bin?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bindollar?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bit...of?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap?rev=1729714334&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_clear?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_disable?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_enable?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmapaddress?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:black?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:blit?rev=1729262152&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:blit_image?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:block?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:blue?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:boom?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:border?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bottom?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:box?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:brown?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:buffer_definition?rev=1729881005&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:call?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:can_screen?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:case?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:case_else?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:casting_operator?rev=1729258127&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cdown?rev=1729270021&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:center?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:centre?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cgoto?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:chain?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:char_at?rev=1729270855&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:charset_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:chr?rev=1729273067&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:chrdollar?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:circle?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:circle_fill?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:clear?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cleft?rev=1729270021&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cline?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:clip?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:clr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cls?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cmob?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cmove?rev=1729275614&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:collision?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_back?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_background?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_border?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_sprite?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:colormap_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:colormap_clear?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:colour?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:combine_nibble?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:configure?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:console?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_restore?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_save?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_use?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:const?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:const_global?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:const_shared?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper...end_copper?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color_background?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color_border?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_move?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_nop?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_poke?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_poked?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_pokew?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_store?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_use?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_wait_line?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cos?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:count?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_path?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_port?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_vector?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cright?rev=1729270021&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cset?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:csprite?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cup?rev=1729270021&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cyan?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:d?rev=1729880773&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dark_blue?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dark_grey?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:data?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:debug?rev=1622556089&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dec?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_function?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_proc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_procedure?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:defdgr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_animation?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_keyboard_delay?rev=1729410746&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_keyboard_rate?rev=1729410746&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_movement?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_string_count?rev=1729410746&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_string_space?rev=1729410746&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:defining_labels?rev=1729881405&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:degree?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:destroy_port?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dim?rev=1729412439&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:disable_interrupt?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:distance?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:div?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dload?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dload_error?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:do...loop?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:do_..._loop?rev=1619689286&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:do_null?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_app?rev=1741168144&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_create_port?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_destroy_port?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_error?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_find_port?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_get_message?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_login?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_open_port?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_peek_message?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_ping?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_put_message?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_ready?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_receive?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_send?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_success?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dollardollar?rev=1729630238&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:double_buffer?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:downb?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:downw?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:draw?rev=1729421877&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dsave?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dsave_error?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dtile?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dtiles?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dup?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ellipse?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ellipse_fill?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:empty_tile?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:emptytile?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:enable_interrupt?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:end?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:end_gameloop?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:endif?rev=1619613890&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:endselect?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:envelope?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:error?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:every...call?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:every...gosub?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:every_off?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:every_on?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exec?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_if?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc_if?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc_with...if?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure_if?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure_with...if?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exp?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade_in?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade_out?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fcircle?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fheight?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:file?rev=1729538782&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:file_size?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:filesize?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_height?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_port?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_width?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fire?rev=1729445710&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:flash?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:flip?rev=1697036140&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:flip_image?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_height?rev=1729448345&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_load?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_width?rev=1729448345&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:for...next?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:for_..._next?rev=1619689286&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:forbid?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:frame?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:frames?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:frames_count?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:free?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:freeze?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fsize?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_bytes?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_close?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_connected?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_device?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_error?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_http_post_bin?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_login?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_open?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_parse_json?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_password?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_read?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_ready?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_set_channel_mode?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_set_json_query?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_status?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_write?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:function?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fwidth?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:get?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_bitmap?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_image?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_message?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:global?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:global_const?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:gold?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:gosub?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:goto?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:gr_locate?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:graphic?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:graphics?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:green?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:grey?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:halt?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:has_bit?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:has_not_bit?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hash_operator?rev=1729179903&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:height?rev=1715017589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hex?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hires?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hit?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:home?rev=1729451996&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hscroll?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then...else...elseif...endif?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then...else...endif?rev=1697038985&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then?rev=1619614968&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if?rev=1729451996&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if_..._then?rev=1619613890&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image?rev=1729513179&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_from_buffer?rev=1729881005&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_height?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_load?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_width?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_count?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_from_buffer?rev=1729881005&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_load?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:in?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:inc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:include?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ink?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:inkb?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:inkey?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:input?rev=1722165082&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:insert?rev=1729531057&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:inst?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:instr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:instrument?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:is?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:is_not?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jdown?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jfire?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jleft?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jmove?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy_count?rev=1729278598&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy_x?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joycount?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joydir?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joyx?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joyy?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jright?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jup?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_pressed?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_shift?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_state?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:keyget?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:keyshift?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:keystate?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:kill?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:labels?rev=1696795242&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lavender?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lbottom?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lbound?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lcase?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:left?rev=1729545633&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:leftb?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:leftw?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:len?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_blue?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_green?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_grey?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_red?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:line?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:line_input?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:little_endian?rev=1729256488&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_atlas?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_image?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_images?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_music?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_sequence?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tile?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tilemap?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tiles?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tileset?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:local_task_variable_operator?rev=1729881005&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:locate?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:log?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:login?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:loop...end_loop?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lower?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:magenta?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:max?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memclr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memcont?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memdef?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memlen?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memload?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memor?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memorize?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mempeek?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mempos?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memrestore?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memsave?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mid?rev=1729609036&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:min?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mmob?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mmove?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob?rev=1685014732&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_at?rev=1685014732&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_hide?rev=1685014732&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_off?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_on?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_render?rev=1685014732&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_show?rev=1685014732&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mod?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:move?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:move_tile?rev=1697043839&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:movement?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:moving?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:msprite?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:msprite_update?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mul?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi_off?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi_on?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_pause?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_resume?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_seek?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_stop?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_atlas?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_image?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_images?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_music?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_sequence?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_animation?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_raster?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_raster_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:nop?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:not?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:nrm?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:offset?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:olive_green?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...gosub?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...goto?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...proc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll...call?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll...gosub?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll..call?rev=1697045917&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll..gosub?rev=1697045917&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:open_port?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:option_explicit?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:or?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:orange?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:origin?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:out?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:paint?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:palette?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:paper?rev=1729409944&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:param?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pause?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pcls?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peach?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peek?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peek_message?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peekd?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peekw?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pen?rev=1729409944&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:percentpercent?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pick?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ping?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pink?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:place?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:play?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:play_off?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:plot?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:plotr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pmode?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:point?rev=1697048708&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:point_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:poke?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:poked?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pokew?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:polyline?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop_proc?rev=1729440019&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop_procedure?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:port?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pow?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:print?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:print_buffer?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:proc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:procedure...end_proc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:purple?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_bitmap?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_image?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_key?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_message?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_tile?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_tilemap?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:radian?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:random?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:random_height?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:random_width?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:randomize?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:range?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:raster_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:raster_line?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:read?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:read_end?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ready?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rec?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:receive?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rect?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:red?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rem?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:remember?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:repeat...until?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:repeat_..._until?rev=1619690891&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:reset?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:resolution?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:respawn?rev=1729679392&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:restore?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:resume?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:return?rev=1729680266&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rgb?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:right?rev=1729680266&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rightb?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rightw?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rnd?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rot?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rotate_vector?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:run?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:run_parallel?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:running?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:scale?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:scancode?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen?rev=1729685814&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_columns?rev=1735330773&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_height?rev=1715017589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_horizontal_scroll?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_off?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_on?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_page?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_rows?rev=1729680266&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_swap?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_tiles_height?rev=1715017589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_tiles_width?rev=1715017589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_vertical_scroll?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_width?rev=1715017589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:select_case...case...case_else...endselect?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:send?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:separating_instructions?rev=1729881005&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sequence_load?rev=1729877163&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_error?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_read?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_write?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:set_line?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:set_tab?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sgn?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:shared?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:shared_const?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:shoot?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sin?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:size?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sleep?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:slice_image?rev=1735329442&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sound?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sound_off?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:space?rev=1729710818&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:spawn?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:spc?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:spen?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite?rev=1729710818&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_at?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_color?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_compress?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_data_from?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_disable?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_enable?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_expand?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_max_x?rev=1729710818&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_max_y?rev=1729710818&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_min_x?rev=1729710818&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_min_y?rev=1729710818&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_monocolor?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_multicolor?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_off?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_on?rev=1727626961&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sqr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:stop_animation?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:stop_movement?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:storage...end_storage?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:storage...endstorage?rev=1731671854&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:store?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:str?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:string?rev=1696876214&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:strip_load?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:strptr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:success?rev=1739558218&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sum?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:suspend?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:swap?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sys?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tab?rev=1729185713&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tabdollar?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tan?rev=1729713206&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:text?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:text_disable?rev=1622326660&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:text_enable?rev=1622326660&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:textaddress?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:textmap_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ti?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tick_per_second?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ticks_per_second?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_belong_to?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_class?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_first?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_height?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_id?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_load?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_probability?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_width?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap?rev=1729714334&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_disable?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_enable?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_height?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_index?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_tile_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_width?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_at?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_height?rev=1715017589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_load?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_width?rev=1715017589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tileset_of?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:timer?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:travel?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:travel_path?rev=1733301222&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:triangle?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:turquoise?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:type...end_type?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ubound?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ucase?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:unfreeze?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:upb?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:upper?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:upw?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:use_tileset?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:val?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:var?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:varbank?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:varbankptr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:varptr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:vcenter?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:vcentre?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:vhcenter?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:vhcentre?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:violet?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_max?rev=1734777924&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_min?rev=1734777924&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_off?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_cycles?rev=1619422227&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_fire?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_key?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_key_or_fire?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_parallel?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_until?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_vbl?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_while?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:while...wend?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:white?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:width?rev=1715017589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:writing?rev=1729715227&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_curs?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_graphic?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_pen?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_text?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xcurs?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xgr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xgraphic?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xor?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xpen?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xtext?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_curs?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_graphic?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_pen?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_text?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ycurs?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:yellow?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:yellow_green?rev=1729261685&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ygr?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ygraphic?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:yield?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ypen?rev=1765625589&amp;do=diff"/>
                <rdf:li rdf:resource="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ytext?rev=1765625589&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://retroprogramming.iwashere.eu/lib/tpl/dokuwiki/images/favicon.ico">
        <title>Retroprogramming by spotlessmind1975</title>
        <link>https://retroprogramming.iwashere.eu/</link>
        <url>https://retroprogramming.iwashere.eu/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:abs?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:abs</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:abs?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ABS ✓

SYNTAX
   = ABS(expression)
PURPOSE

The ABS command is a mathematical function that returns the absolute value 
of a number. In essence, it removes the negative sign from a number, always 
returning a positive or zero value. The parameter</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:add?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:add</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:add?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ADD ✓

SYNTAX
   ADD var, expr [, min TO max] [CLAMP]
PURPOSE

The ADD statement is used to increment the value of a numeric variable by 
a specified amount. In other words, it is like adding one number to another. 

The basic syntax take the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:addc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:addc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:addc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ADDC

SYNTAX

PURPOSE

ABBREVIATION
 A$
ALIAS FOR

ADD

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:after...call?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:after...call</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:after...call?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

AFTER...CALL ✓

SYNTAX
   AFTER value[,timer] TICKS CALL identifier
PURPOSE

The AFTER...CALL command implement a countdown timer for your program.
It is a very useful tool for making a piece of code run after a specific interval, 
essentially turning your program into a countdown. You must specifying the length 
of time to wait, measured in</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:after...gosub?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:after...gosub</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:after...gosub?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

AFTER...GOSUB ✓

SYNTAX
   AFTER value[,timer] TICKS GOSUB label
PURPOSE

Define the call of a subroutine after a specific time, without 
interfering with the main program. You must specifying the length of time 
to wait, measured in TICKS. The ugBASIC branches to the 
subroutine after</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:allow?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:allow</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:allow?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ALLOW

SYNTAX
   ALLOW
PURPOSE

The ALLOW instruction is the opposite of the FORBID function. While FORBID
completely blocks multitasking, ALLOW re-enables it, allowing ugBASIC to schedule 
again the execution of other tasks, passing the execution from one task to another 
according to its scheduling policy. If a</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:and?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:and</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:and?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

AND

SYNTAX
   = x AND y
PURPOSE

Performs a logical conjunction on two expressions, as a bitwise conjunction. For comparisons managed
as a boolean result (TRUE or FALSE), result is TRUE if, and 
only if, both expresions evaluate to</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:animate?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:animate</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:animate?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ANIMATE

SYNTAX
   ANIMATE prefix WITH anim [AT x, y]
PURPOSE

The ANIMATE command allows you to activate a specific animation at the current 
position, or at one indicated in the command. If an animation is already active, 
it will be abruptly interrupted and the indicated one will be started</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:animating?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:animating</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:animating?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ANIMATING

SYNTAX
   = ANIMATING(prefix)
   = ANIMATING(prefix,animation)
PURPOSE

This statement lets you know if there is a specific animation running 
on an animatable element.

EXAMPLE
  IF NOT ANIMATING(wheel,animRotating) THEN
     ANIM wheel WITH animBrake
  ENDIF</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:animation?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:animation</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:animation?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ANIMATION

SYNTAX
   [DEFINE] ANIMATION type name WITH atlas [od] [in] [out] USING prefix [nx] [vbl] [bg]
      type: SIMPLE | LOOP | BOUNCE
      od: DELAY delay
      in: EASEIN upframe [DELAY delay]
      out: EASEOUT ofrom [DELAY delay]
      nx: NEXT [WITH EASIN] anim
      vbl: WAIT VBL
      bg: PRESERVE BACKGROUND</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:app?rev=1741168144&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-05T10:49:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:app</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:app?rev=1741168144&amp;do=diff</link>
        <description>ugBASIC User Manual

APP

SYNTAX
   [DOJO] APP
PURPOSE

The APP command allows you to uniquely identify an application with respect to the services 
exposed by DOJO.

EXAMPLE
  handle = APP( &quot;test&quot; )
AVAILABLE ON

	*  

ALIAS FOR

DOJO APP

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:array</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:array?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ARRAY

SYNTAX
   ARRAY var = ...
   ARRAY var := ...
PURPOSE

The ARRAY keyword allows you to copy a block of memory from a static definition
to an array at run time. In simple terms, it copies an array of bytes from the right
expression to a</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_count?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:array_count</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_count?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_max?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:array_max</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_max?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_min?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:array_min</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_min?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_operator?rev=1729881005&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T20:30:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:array_operator</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_operator?rev=1729881005&amp;do=diff</link>
        <description>ugBASIC User Manual

array operator

SYNTAX
   ... = var( o1 [, i2 [, ...] ] )
   var( o1 [, i2 [, ...] ] ) = expr
   ... = var$( o1 [, i2 [, ...] ] )
   var$( o1 [, i2 [, ...] ] ) = expr$
PURPOSE

In ugBASIC, arrays are accessed using the parenthesis operator (</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_sum?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:array_sum</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:array_sum?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:asc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:asc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:asc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ASC ✓

SYNTAX
   = ASC( string )
PURPOSE

The ASC command performs a very specific function: it converts the first 
character of a string into its corresponding ASCII code. ASCII stands for 
American Standard Code for Information Interchange and it is a standard 
encoding that associates each alphanumeric character and many symbols 
with an integer between 0 and 127. This number represents the internal 
representation of the character within the computer.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ascii_code?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ascii_code</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ascii_code?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ASCII CODE

SYNTAX
   = ASCII CODE
PURPOSE

The ASCII CODE command capture a keystroke “on the Fly”,
and return the equivalent ASCII code instead of internal SCANCODE.
This command is a fundamental tool for making programs more interactive. 
It allows you to read a character typed by the user without having to press 
the enter key.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:asciicode?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:asciicode</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:asciicode?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ASCIICODE

SYNTAX
   = ASCIICODE
PURPOSE

EXAMPLE
  IF ASCIICODE = 42 THEN
     PRINT &quot;ASTERISK has been pressed!&quot;
  ENDIF
AVAILABLE ON

SEE ALSO

SCANCODE

ALIAS FOR

ASCII CODE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:asm?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:asm</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:asm?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ASM

SYNTAX
   ASM line
   BEGIN ASM
      ...
   END ASM
PURPOSE

The ASM command is a bridge between ugBASIC and the assembly language. 
It allows you to directly insert instructions in machine language or 
assembly language into the source code.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:at?rev=1729244681&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T11:44:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:at?rev=1729244681&amp;do=diff</link>
        <description>ugBASIC User Manual

AT ✓

SYNTAX
   = AT$( x , y )
   = AT( x , y )
   AT var1, var2
PURPOSE

The AT function is used to create a string to position the cursor to an exact position on the screen,
when it will be printed on the screen. It's like telling a painter where to start painting on a canvas,
not moving immediately but storing the command in a string.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:atlas_load?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:atlas_load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:atlas_load?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ATLAS LOAD

SYNTAX

PURPOSE

ABBREVIATION
 Atl#Ld
ALIAS FOR

LOAD ATLAS LOAD IMAGES IMAGES LOAD

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank...at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bank...at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank...at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BANK...AT

SYNTAX
   BANK [id] AT #address [AS type] [WITH filename]
PURPOSE

Define a bank of memory named id, starting from address
and of type type. Optionally, fill the bank of memory with static 
data coming from a specific</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bank</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BANK

SYNTAX
   BANK id
PURPOSE

The BANK command allows you to change the currently selected bank. All 
operations that are performed on the banks, and that do not explicitly indicate 
the bank to operate on, work with the implicit bank, which is set by this command. 
The minimum bank number is zero (</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_address?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bank_address</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_address?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BANK ADDRESS

SYNTAX
   = BANK ADDRESS(id)
PURPOSE

The BANK ADDRESS function allows you to know the memory address where the swap 
window with the expanded memory appears, for the given bank. In the case of 
expansion memories with DMA access, this area does not exist and therefore the
function returns zero. Exactly the same value returned in case there are no memory expansions.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_count?rev=1727619831&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T16:23:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bank_count</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_count?rev=1727619831&amp;do=diff</link>
        <description>ugBASIC User Manual

BANK COUNT ✓

SYNTAX
   = BANK COUNT
PURPOSE

This function returns the number of (expansion) banks available.
If the computer has more memory areas than the 
normally addressable one, this function returns the number of banks. 
Each bank is a Sharing space with a</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_read?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bank_read</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_read?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BANK READ

SYNTAX
   BANK READ bank FROM address1 TO address2 SIZE size
PURPOSE

This instruction can be used to read a number of bytes from an 
out-of-memory bank in main memory. You must therefore indicate 
one of the available banks, the memory address from which you 
want to copy (the $0000 implies the beginning of the bank), 
the size in bytes and finally the destination address, 
which will be the RAM memory.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_size?rev=1727619831&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T16:23:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bank_size</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_size?rev=1727619831&amp;do=diff</link>
        <description>ugBASIC User Manual

BANK SIZE

SYNTAX
   = BANK SIZE(#bank)
   = BANK SIZE(bank)
PURPOSE

The BANK SIZE returns the size of the shared memory area for 
the bank, that is the memory area reachable by the CPU and on 
which it is “mapped” to the main memory.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_uncompress?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bank_uncompress</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_uncompress?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BANK UNCOMPRESS

SYNTAX

PURPOSE

ABBREVIATION
 BkUNCOMPRESS
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_write?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bank_write</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bank_write?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BANK WRITE

SYNTAX
   BANK WRITE bank FROM address1 TO address2 SIZE size
PURPOSE

This instruction can be used to write a number of bytes to an 
out-of-memory bank from main memory. You must therefore indicate 
one of the available banks, the memory address from which you 
want to copy, the size in bytes and finally the destination 
address (the $0000 implies the beginning of the bank), 
which will be the bank memory.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bar?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bar</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bar?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BAR ✓

SYNTAX
   BAR [x1], [y1], [x2], [y2], [c]
   BAR [x1], [y1] TO [x2], [y2]
   BAR TO [x2], [y2][, c ]
PURPOSE

The BAR instruction will draw a filled rectangle on the screen, specifying the 
coordinates of its opposite corners. The</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_copper...end_copper?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:begin_copper...end_copper</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_copper...end_copper?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_copper...endcopper?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:begin_copper...endcopper</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_copper...endcopper?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_gameloop?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:begin_gameloop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_gameloop?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BEGIN GAMELOOP

SYNTAX
   BEGIN GAMELOOP
PURPOSE

The command BEGIN GAMELOOP define the starting point of the game loop.
A game loop is a fundamental concept in video game programming, especially
in simple video games like those for 8-bit computers. Think of the game 
loop as the heartbeat of a video game: it is a continuous cycle of actions 
that are constantly repeated, giving life to the gaming experience.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_storage...end_storage?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:begin_storage...end_storage</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_storage...end_storage?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BEGIN STORAGE...END STORAGE ✓

SYNTAX
   BEGIN STORAGE name [AS filename] ... END STORAGE
   STORAGE name [AS filename] ... END STORAGE
PURPOSE

The BEGIN STORAGE..END STORAGE allows to begin describing 
the content of a storage media. The syntax of this command
allows to define up to two parameter. The first parameter,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_storage?rev=1731671854&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-15T12:57:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:begin_storage</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_storage?rev=1731671854&amp;do=diff</link>
        <description>ugBASIC User Manual

BEGIN STORAGE ✓

SYNTAX
   BEGIN STORAGE [name] [AS filename]
   STORAGE [name] [AS filename]
PURPOSE

The BEGIN STORAGE allows to begin describing 
the content of a storage media. The syntax of this command
allows to define up to two parameter. The first parameter,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_type...end_type?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:begin_type...end_type</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:begin_type...end_type?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bell?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bell</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bell?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BELL

SYNTAX
   BELL
   BELL note
   BELL note, duration
   BELL note, duration ON channels
PURPOSE

The BELL command makes the computer emit a sound, usually a short beep, 
through the internal speaker or audio chipset. This sound serves as an 
acoustic signal to the user, indicating that an action has been completed, 
reporting an error, or simply to attract attention.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:big_endian?rev=1729256488&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T15:01:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:big_endian</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:big_endian?rev=1729256488&amp;do=diff</link>
        <description>ugBASIC User Manual

BIG ENDIAN

SYNTAX
   = BIG ENDIAN
PURPOSE

Returns not zero if the CPU has big endian byte order, zero otherwise.

EXAMPLE
  IF BIG ENDIAN THEN : PRINT &quot;BIG ENDIAN&quot; : ENDIF
ABBREVIATION
 BigEnd
AVAILABLE ON

	*  
	*  Atari (400/800)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bin?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bin</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bin?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BIN

SYNTAX
   = BIN( value [, digits] [, zero, one ] )
PURPOSE

The BIN command allows you to convert a decimal number into a binary 
representation. In other words, it takes a number that we are used to 
writing in base 10 (with the digits 0 through 9) and turns it into a 
sequence of 0s and 1s, which is the base that computers use to represent 
data internally. It decode from the most significant to the least significant.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bindollar?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bindollar</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bindollar?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BIN$

SYNTAX
   = BIN$( value [, digits] )
PURPOSE

ALIAS FOR

BIN

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bit...of?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bit...of</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bit...of?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BIT...OF

SYNTAX
   = BIT position OF value
PURPOSE

EXAMPLE
  IF BIT 2 OF x THEN: PRINT &quot;bit 2 is 1!&quot;: ENDIF
ABBREVIATION
 BtOF
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap?rev=1729714334&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T22:12:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bitmap</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap?rev=1729714334&amp;do=diff</link>
        <description>ugBASIC User Manual

BITMAP ✓

SYNTAX
   ... = BITMAP
PURPOSE

This is the bitmask used to select the BITMAP mode.

EXAMPLE
  IF SCREEN IS BITMAP THEN: PRINT &quot;bitmap is native!&quot;: ENDIF
See also the following example files:

	*  screens_bitmap_01.bas

ABBREVIATION
 Bm
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bitmap_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BITMAP AT

SYNTAX
   BITMAP AT address
PURPOSE

The BITMAP AT instruction allows you to change the starting address of the bitmap, 
in the graphics modes of the video chipset. Since not all chipsets can address 
any address, it is possible that the input value is normalized. This normalized 
address will then be used by ugBASIC for subsequent graphics operations.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_clear?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bitmap_clear</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_clear?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BITMAP CLEAR

SYNTAX
   BITMAP CLEAR [ WITH value ]
PURPOSE

This command is currently and alias for CLS. Previously, when it
was not deprecated, it fills the bitmap with a certain pattern (by default is ZERO, used to indicate
the blank screen). The filled part is exclusively that linked to the bitmap, 
so the color information is kept unchanged. Note that bitmap must be 
enabled at least once with instruction</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_disable?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bitmap_disable</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_disable?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BITMAP DISABLE

SYNTAX
   BITMAP DISABLE
PURPOSE

The BITMAP DISABLE command disables bitmap graphics on the target machine.

EXAMPLE
  BITMAP DISABLE
ABBREVIATION
 BmDx
AVAILABLE ON

	*  Dragon 32 (6809)
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_enable?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bitmap_enable</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmap_enable?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BITMAP ENABLE ✓

SYNTAX
   BITMAP [ENABLE]
   BITMAP [ENABLE] (colors)
   BITMAP [ENABLE] (width, height)
   BITMAP [ENABLE] (width, height, colors)
   BITMAP [ENABLE] WIDTH width
   BITMAP [ENABLE] HEIGHT width
PURPOSE

The BITMAP ENABLE' command is a fundamental tool, since it allows to
configure the graphics mode of the screen, that is, to define how data 
was displayed on the screen, determining aspects such as the number of 
horizontal and vertical pixels that make up t…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmapaddress?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bitmapaddress</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bitmapaddress?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:black?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:black</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:black?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

BLACK ✓

SYNTAX
   = BLACK
PURPOSE

This keyword represents the color black. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (0,0,0)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:blit?rev=1729262152&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:35:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:blit</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:blit?rev=1729262152&amp;do=diff</link>
        <description>ugBASIC User Manual

BLIT ✓

SYNTAX
   BLIT identifier AS expression
PURPOSE

The “BLITTING” is a data operation used in computer graphics in which several bitmaps 
are combined into one using a boolean (or mathematical) function. The operation involves
at least two bitmaps: a “source” (or “foreground”) and a “destination” (or “background”), 
and other fields, called “masks” or something like that. The result may be written to a 
final bitmap, though often it replaces the “destination” field.…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:blit_image?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:blit_image</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:blit_image?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BLIT IMAGE ✓

SYNTAX
   BLIT IMAGE i1, i2, ... AT [x], [y] WITH b
   BLIT IMAGE i1, i2, ... FRAME frame AT [x], [y] WITH b
   BLIT IMAGE i1, i2, ... STRIP s FRAME f AT [x], [y] WITH b
PURPOSE

The “BLITTING” is a data operation used in computer graphics in which several bitmaps 
are combined into one using a boolean (or mathematical) function. The operation involves
at least two bitmaps: a “source” (or “foreground”) and a “destination” (or “background”), 
and other fields, c…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:block?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:block</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:block?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BLOCK ✓

SYNTAX
   BLOCK x1, y1, x2, y2, fq
PURPOSE

EXAMPLE
  BLOCK x, y, x+29, y+19, 0
See also the following example files:

	*  tsb_block_rec_01.bas

ABBREVIATION
 Blk
AVAILABLE ON

ALIAS FOR

BAR

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:blue?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:blue</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:blue?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

BLUE ✓

SYNTAX
   = BLUE
PURPOSE

This keyword represents the color blue. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (0,0,170)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:boom?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:boom</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:boom?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BOOM

SYNTAX
   BOOM [duration [MS]] [ON channel]
PURPOSE

This command makes the computer emit an explosion-like sound. It is possible to indicate 
the duration of sound effect and on which voices the system should emit the sound. If omitted, it will be issued on all.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:border?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:border</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:border?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BORDER

SYNTAX
   BORDER shade
PURPOSE

ABBREVIATION
 Bo
ALIAS FOR

COLOR BORDER

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:bottom?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:bottom</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:bottom?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:box?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:box</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:box?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

BOX ✓

SYNTAX
   BOX [x1], [y1] TO x2, y2[, c ]
   BOX TO x2, y2[, c ]
PURPOSE

This instruction draws a rectangle on the screen, starting from the coordinates (x1, y1)
to arrive at the coordinates (x2, y2), using the color c. The start
coordinates can be omitted: in this case, ugBASIC will draw starting from 
the last drawn position. If the color is 
omitted, the last color selected with the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:brown?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:brown</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:brown?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

BROWN

SYNTAX
   = BROWN
PURPOSE

This keyword represents the color brown. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (221, 136, 101)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:buffer_definition?rev=1729881005&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T20:30:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:buffer_definition</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:buffer_definition?rev=1729881005&amp;do=diff</link>
        <description>ugBASIC User Manual

buffer definition ✓

SYNTAX
   ... = #[xx...
   ... = #[xx...]
PURPOSE

ugBASIC is able to define a byte buffer “in line”, ie directly in the code. 
This can be useful in those occasions where it is necessary to include 
binary data, not being able to access an external file.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:call?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:call</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:call?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CALL ✓

SYNTAX
   CALL name
   CALL name parameters &quot;[&quot; [par1 [, par2[, ...]]] &quot;]&quot;
PURPOSE

The CALL command is used to call a previously defined procedure 
(or subroutine) within the same program. A procedure is a separate 
block of code designed to perform a specific task. By using</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:can_screen?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:can_screen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:can_screen?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CAN SCREEN ✓

SYNTAX
   = CAN SCREEN mode
PURPOSE

This instruction allows you to check if a certain screen mode is available or
not. If that mode is available, the instruction will return the value TRUE. 
Otherwise, the statement will return</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:case?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:case</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:case?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CASE

SYNTAX
   CASE value
PURPOSE

The CASE command is part of SELECT...ENDSELECT construct. Each CASE
represents a possible value of the expression. After each case, you can insert 
the statements that will be executed if the value of the expression matches that case.
The code will be executed up to the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:case_else?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:case_else</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:case_else?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CASE ELSE

SYNTAX
   CASE ELSE
PURPOSE

The CASE ELSE command is part of SELECT...ENDSELECT construct.
It is optional and is executed if none of the previous cases are true.
The code will be executed up to the ENDSELECT instruction.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:casting_operator?rev=1729258127&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T15:28:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:casting_operator</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:casting_operator?rev=1729258127&amp;do=diff</link>
        <description>ugBASIC User Manual

casting operator ✓

SYNTAX
   ... = ( type ) #value
   ... = ( type ) (expression)
PURPOSE

ugBASIC is a loosely typed language. However, there are occasions when the use of certain
types is not permitted without the explicit consent of the programmer. For this purpose, 
a</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cdown?rev=1729270021&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T18:47:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cdown</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cdown?rev=1729270021&amp;do=diff</link>
        <description>ugBASIC User Manual

CDOWN ✓

SYNTAX
   CDOWN
PURPOSE

By using the CDOWN command you can force the text cursor down a single line.

EXAMPLE
  CDOWN
See also the following example files:

	*  texts_position_04.bas

ABBREVIATION
 Cd
AVAILABLE ON

	*  
	*  Atari (400/800)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:center?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:center</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:center?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CENTER ✓

SYNTAX
   CENTER text [;]
PURPOSE

The CENTER command aligns a text string in the center of a line. In other words, 
it allows you to position a word or phrase so that it occupies the available space 
in a symmetrical manner. The</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:centre?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:centre</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:centre?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CENTRE ✓

SYNTAX
   CENTRE text [;]
PURPOSE

EXAMPLE
  CENTRE &quot;HELLO!&quot;
  CENTRE &quot;HELLO!&quot;;
See also the following example files:

	*  texts_position_07.bas
	*  contrib_joystick.bas
	*  contrib_What_a_wonderful_world.bas
	*  screens_resolution_02.bas

AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cgoto?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cgoto</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cgoto?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CGOTO ✓

SYNTAX
   CGOTO expression
PURPOSE

Calculate the number of the line to which the program execution must pass. 
Allows you to jump to a variable program line number, determined by the result 
of a calculation. CGOTO is a command that replaces long jump tables behind 
the BASIC command</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:chain?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:chain</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:chain?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:char_at?rev=1729270855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T19:00:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:char_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:char_at?rev=1729270855&amp;do=diff</link>
        <description>ugBASIC User Manual

CHAR AT

SYNTAX

PURPOSE

ABBREVIATION
 CHARAt
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:charset_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:charset_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:charset_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CHARSET AT

SYNTAX

PURPOSE

ABBREVIATION
 CHARSETAt
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:chr?rev=1729273067&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T19:37:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:chr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:chr?rev=1729273067&amp;do=diff</link>
        <description>ugBASIC User Manual

CHR ✓

SYNTAX
   = CHR$(value)
PURPOSE

The CHR$ function converts a numeric code (usually an integer) into a 
corresponding character. In other words, it takes a number and returns 
the character associated with that number in the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:chrdollar?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:chrdollar</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:chrdollar?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CHR$ ✓

SYNTAX
   = CHR$(value)
PURPOSE

The CHR$ function converts a numeric code (usually an integer) into a 
corresponding character. In other words, it takes a number and returns 
the character associated with that number in the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:circle?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:circle</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:circle?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CIRCLE ✓

SYNTAX
   CIRCLE [x], [y], r[, c]
   CIRCLE x, y, rx, ry[, c]
PURPOSE

The CIRCLE command in BASIC draws a circle on the screen. In other words, it defines 
a complete circle based on the coordinates and radius that you specify.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:circle_fill?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:circle_fill</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:circle_fill?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:clear?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:clear</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:clear?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CLEAR

SYNTAX
   CLEAR size
PURPOSE

The CLEAR command serves two purposes: the primary semantics of the CLEAR
command is to re-initialize (integers) variables to their starting values. 
Which are usually zero but, of course, can be different from zero. At the moment, 
their starting value is equal to the assignment during the definition. Other data 
types (like FLOAT or BIT) are not re-initialized. This is especially useful at the
beginning of a program to ensure that there…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cleft?rev=1729270021&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T18:47:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cleft</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cleft?rev=1729270021&amp;do=diff</link>
        <description>ugBASIC User Manual

CLEFT ✓

SYNTAX
   CLEFT
PURPOSE

By using the CLEFT command you can force the text cursor left by a single character.

EXAMPLE
  CLEFT
See also the following example files:

	*  texts_position_04.bas

ABBREVIATION
 Cle
AVAILABLE ON

	*  
	*  Atari (400/800)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cline?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cline</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cline?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CLINE ✓

SYNTAX
   CLINE [chars]
PURPOSE

The CLINE command is used to clear the line currently occupied by the text 
cursor. If CLINE is followed by a number, then that number of characters 
get cleared, starting from the current cursor position and leaving the cursor 
exactly where it is.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:clip?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:clip</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:clip?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CLIP ✓

SYNTAX
   CLIP x1,y1 TO x2, x2
PURPOSE

The CLIP instruction allows you to delimit the area in which the graphics 
are actually drawn. In general, the area corresponds to the entire surface 
of the screen (0,0)-(SCREEN WIDTH-1,SCREEN HEIGHT-1)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:clr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:clr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:clr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CLR

SYNTAX
   CLR size
PURPOSE

EXAMPLE
  CLR 2048
AVAILABLE ON

ALIAS FOR

CLEAR

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cls?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cls</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cls?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CLS ✓

SYNTAX
   CLS
   CLS color
   CLS x, y, w, h
PURPOSE

The CLS command is used to clear the screen and return the cursor to the
upper left corner. In other words, CLS clears the screen, eliminating 
everything that was previously printed.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cmob?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cmob</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cmob?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CMOB

SYNTAX
   CMOB c1, c2
PURPOSE

The CMOB instruction attribute the two colors that are the same for all multicolor 
sprites in VIC-II registers. Color for individual sprites are available with the 
MOB SET command or, even,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cmove?rev=1729275614&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T20:20:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cmove</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cmove?rev=1729275614&amp;do=diff</link>
        <description>ugBASIC User Manual

CMOVE ✓

SYNTAX
   CMOVE [dx], [dy]
PURPOSE

CMOVE allows to move the text cursor a pre-set distance away from its current position. 
The command is followed by a pair of variables that represent the width and height of the 
required offset, and these values are added to the current cursor coordinates. Like</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:collision?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:collision</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:collision?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLLISION

SYNTAX
   = COLLISION(sprite)
PURPOSE

Verify if a sprite has had a collision with another sprite. If the sprite
has collided, the function will return TRUE. Otherwise, it will return FALSE.

EXAMPLE
  x = COLLISION(1)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:color</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:color?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLOR

SYNTAX
   COLOR index, shade
   COLOR border, background, foreground
   COLOR [border,][background] (if TSB is enabled)
   COLOR border
   COLOR ,foreground
PURPOSE

The COLOR command allows you to redefine the colors used by the graphics chipset, 
where this is possible.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_back?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:color_back</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_back?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLOR BACK ✓

SYNTAX
   COLOR BACK color
PURPOSE

The COLOR BACK command used on target that support both color graphics,
backgorund colors and specialized clearing screen routines. Its primary function 
is to set the background color of the screen or a specific area of the screen,
and then clearing the screen using that color.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_background?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:color_background</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_background?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLOR BACKGROUND

SYNTAX
   COLOR BACKGROUND value
   COLOR BACKGROUND index TO value
PURPOSE

The COLOR BACKGROUND command allows you to redefine the color used by the graphics chipset
for the background, where this is possible.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_border?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:color_border</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_border?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLOR BORDER ✓

SYNTAX
   COLOR BORDER value
PURPOSE

The COLOR BORDER command allows you to redefine the color used by the graphics chipset
for the border, where this is possible. “Redefinition” means assigning one of the possible 
colors to specific registers called</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_sprite?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:color_sprite</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:color_sprite?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLOR SPRITE

SYNTAX
   COLOR SPRITE index TO color
PURPOSE

The COLOR SPRITE command allows you to redefine the (common) colors used by the graphics chipset
for the sprites, where this is possible and/or they are available. “Redefinition</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:colormap_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:colormap_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:colormap_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLORMAP AT

SYNTAX
   COLORMAP AT #address
PURPOSE

Set the starting address, in memory, for the colormap. The input parameter 
is decoded and declined according to the hardware limits. So it is not said 
that exactly the given address is set.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:colormap_clear?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:colormap_clear</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:colormap_clear?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLORMAP CLEAR

SYNTAX
   COLORMAP CLEAR WITH #fore ON #back
   COLORMAP CLEAR WITH fore ON back
   COLORMAP CLEAR
PURPOSE

Erase the entire color map, using a foreground and a background color.

EXAMPLE
  COLORMAP CLEAR WITH #$0 ON #$1
  COLORMAP CLEAR WITH YELLOW ON RED
  COLORMAP CLEAR</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:colour?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:colour</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:colour?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COLOUR

SYNTAX
   COLOUR index, shade
PURPOSE

EXAMPLE
  COLOUR 0, $fff
AVAILABLE ON

	*  Dragon 32 (6809)
	*  Commodore 128 (Zilog Z80)
	*  Commodore 128 (MOS 8502)
	*  Commodore 64
	*  Commodore VIC-20
	*  Atari (400/800)
	*  Atari XL/XE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:combine_nibble?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:combine_nibble</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:combine_nibble?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COMBINE NIBBLE

SYNTAX
   = COMBINE NIBBLE( value1, value2 )
PURPOSE

The command COMBINE NIBBLE allows you to combine two variables that 
contains a 4 bit value (nibble) into a single 8 bit value. The first
value is the high nibble.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:configure?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:configure</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:configure?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CONFIGURE

SYNTAX
   CONFIGURE STATIC hw SET p1 = v1 [, p2 = v2 [, ...]]
   CONFIGURE DYNAMIC hw SET p1 = v1 [, p2 = v2 [, ...]]
PURPOSE

The CONFIGURE command allow to customize hardware configuration, and 
gives the possibility of generating hardware selection menus via software. 
The configuration allows two types of manipulation: a</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:console?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:console</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:console?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CONSOLE

SYNTAX
   CONSOLE x1, y1 TO x2, y2
PURPOSE

The CONSOLE command allows you to define an area of the screen where the
text output will take place. This area can be defined in both text and graphical
mode. Normally, it is set to the entire screen surface, but can be limited with this
command. This command works only with texts. The parameters describe the four vertices.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_restore?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:console_restore</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_restore?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CONSOLE RESTORE

SYNTAX
   CONSOLE RESTORE number
PURPOSE

The command CONSOLE RESTORE allows you to restore the constraints of the given 
console, previously saved with the command CONSOLE SAVE.

EXAMPLE
  CONSOLE RESTORE 2
ABBREVIATION</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_save?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:console_save</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_save?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CONSOLE SAVE

SYNTAX
   CONSOLE SAVE number
PURPOSE

The command CONSOLE SAVE allows you to save the constraints of the given 
console.

EXAMPLE
  CONSOLE SAVE 2
ABBREVIATION
 CnsSv
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_use?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:console_use</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:console_use?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CONSOLE USE

SYNTAX
   CONSOLE USE number
PURPOSE

EXAMPLE
  CONSOLE USE 2
ABBREVIATION
 CnsUx
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)
	*  Commodore 64
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:const?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:const</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:const?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CONST ✓

SYNTAX
   [POSITIVE] CONST identifier = value
   CONST identifier IN (min,max) = value
   CONST identifier IN &quot;[&quot; min,max) = value
   CONST identifier IN (min,max &quot;]&quot; = value
   CONST identifier IN &quot;[&quot; min,max &quot;]&quot;&quot; = value</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:const_global?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:const_global</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:const_global?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CONST GLOBAL ✓

SYNTAX
   [POSITIVE] CONST GLOBAL identifier = value
   CONST GLOBAL identifier IN (min,max) = value
   CONST GLOBAL identifier IN &quot;[&quot; min,max) = value
   CONST GLOBAL identifier IN (min,max &quot;]&quot; = value
   CONST GLOBAL identifier IN &quot;[&quot; min,max &quot;]&quot;&quot; = value</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:const_shared?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:const_shared</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:const_shared?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CONST SHARED ✓

SYNTAX
   [POSITIVE] CONST SHARED identifier = value
   CONST SHARED identifier IN (min,max) = value
   CONST SHARED identifier IN &quot;[&quot; min,max) = value
   CONST SHARED identifier IN (min,max &quot;]&quot; = value
   CONST SHARED identifier IN &quot;[&quot; min,max &quot;]&quot;&quot; = value</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper...end_copper?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper...end_copper</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper...end_copper?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_color</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color_background?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_color_background</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color_background?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color_border?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_color_border</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_color_border?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_move?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_move</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_move?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_nop?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_nop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_nop?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_poke?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_poke</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_poke?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_poked?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_poked</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_poked?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_pokew?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_pokew</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_pokew?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_store?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_store</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_store?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_use?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_use</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_use?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_wait_line?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:copper_wait_line</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:copper_wait_line?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cos?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cos</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cos?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

COS ✓

SYNTAX
   = COS(angle)
PURPOSE

This function will calculate the cosine value of an angle. The cosine of an acute
angle are defined in the context of a right triangle: for the specified angle, 
its sine is the ratio of the length of the side that is opposite that angle to 
the length of the longest side of the triangle (the hypotenuse), and the cosine
is the ratio of the length of the adjacent leg to that of the hypotenuse.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:count?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:count</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:count?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_path?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:create_path</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_path?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CREATE PATH

SYNTAX
   = CREATE PATH( x0, y0 TO x1, y1 )
   = CREATE PATH( x0, y0,  x1, y1 )
PURPOSE

This command allows you to generate a PATH element that calculates the shortest (linear) 
path between two given points. The points can be purely geometric or referable to the user 
screen. The path can then be</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_port?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:create_port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_port?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CREATE PORT

SYNTAX
   [DOJO] CREATE PORT [()]
PURPOSE

The CREATE PORT statement creates a communication port on the DOJO server, which allows you to send and 
receive messages. Each port has 256 independent communication channels, on which you can send and receive 
messages. This statement returns a unique port identifier, which can be communicated to the user via the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_vector?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:create_vector</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:create_vector?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cright?rev=1729270021&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T18:47:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cright</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cright?rev=1729270021&amp;do=diff</link>
        <description>ugBASIC User Manual

CRIGHT ✓

SYNTAX
   CRIGHT
PURPOSE

By using the CRIGHT command you can force the text cursor right by a single character.

EXAMPLE
  CRIGHT
See also the following example files:

	*  texts_position_04.bas

ABBREVIATION
 Crg
AVAILABLE ON

	*  
	*  Atari (400/800)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cset?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cset</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cset?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CSET

SYNTAX
   CSET value
PURPOSE

The CSET command switches with value between the two character sets 
of the VIC-II: uppercase graphics characters (0) and uppercase/lowercase 
(CSET 1). You can also use this to switch to graphics mode without clearing 
the graphics memory (see</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:csprite?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:csprite</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:csprite?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

CSPRITE

SYNTAX
   = CSPRITE ( name flags )
   = CSPRITE ( name, previous flags )
PURPOSE

This statement allows you to define a composite sprite. Composite sprites are those 
sprites that are rendered by means of an overlay of hardware sprites. The definition 
corresponds to the transfer of graphic information from the graphic resource to the 
memory space of the machine's hardware. In practice, it is the moment in which the 
sprite is defined graphically, to be displayed.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cup?rev=1729270021&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T18:47:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cup</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cup?rev=1729270021&amp;do=diff</link>
        <description>ugBASIC User Manual

CUP ✓

SYNTAX
   CUP
PURPOSE

By using the CUP command you can force the text cursor up a single line.

EXAMPLE
  CUP
See also the following example files:

	*  texts_position_04.bas

ABBREVIATION
 Cu
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:cyan?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:cyan</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:cyan?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

CYAN

SYNTAX
   = CYAN
PURPOSE

This keyword represents the color cyan. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (170,255,230)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:d?rev=1729880773&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T20:26:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:d</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:d?rev=1729880773&amp;do=diff</link>
        <description>ugBASIC User Manual

D

SYNTAX

PURPOSE

ALIAS FOR

POKEW

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY

index</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dark_blue?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dark_blue</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dark_blue?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

DARK BLUE

SYNTAX
   = DARK BLUE
PURPOSE

This keyword represents the color dark blue. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dark_grey?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dark_grey</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dark_grey?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

DARK GREY

SYNTAX
   = DARK GREY
PURPOSE

This keyword represents the color dark grey. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:data?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:data</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:data?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DATA ✓

SYNTAX
   DATA data1 [, data2 [, data3 ... ] ]
  DATA [AS data type] data1 [, data2 [, data3 ... ] ]
  DATA LOAD &quot;filename&quot; AS TEXT
PURPOSE

The DATA command is used to create a list of data that will be used 
in other parts of the program. It is like a container where values are 
stored that will then be</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:debug?rev=1622556089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-06-01T16:01:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:debug</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:debug?rev=1622556089&amp;do=diff</link>
        <description>ugBASIC User Manual

DEBUG

SYNTAX
   DEBUG [expression]
PURPOSE

Outputs a string with the value contained in the indicated expression.
For speed of implementation 
it uses the function of the KERNAL, so it cannot work if the ROM is disabled.

EXAMPLE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dec?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dec</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dec?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DEC

SYNTAX
   DEC variable
PURPOSE

The DEC command is used to decrement (i.e. decrease) the value 
of a numeric variable by one. It is a quick and concise way to subtract 
1 from the value contained in a variable. In place of variable</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_function?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:declare_function</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_function?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DECLARE FUNCTION ✓

SYNTAX
   DECLARE [SYSTEM] FUNCTION name AT address [ ( par1 [, par2 [, ... ] ] ) ] RETURN ret [ ON targets ]
   par : name AS type ON register
   par : name AS type ON STACK(width)
   ret : register AS type | STACK(width) AS type
   width: BYTE | WORD | DWORD
   targets : name of targets, separated by comma (,)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_proc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:declare_proc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_proc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DECLARE PROC ✓

SYNTAX
   DECLARE [SYSTEM] PROC name AT address [ ( par [, par [, ... ] ] ) ] [ ON targets ]
     par : name AS type ON register
     par : name AS type ON STACK(width)
     width: BYTE | WORD | DWORD
     targets : name of targets, separated by comma (,)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_procedure?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:declare_procedure</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:declare_procedure?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DECLARE PROCEDURE ✓

SYNTAX
   DECLARE [SYSTEM] PROCEDURE name AT address [ ( par [, par [, ... ] ] ) ] [ ON targets ]
     par : name AS type ON register
     par : name AS type ON STACK(width)
     width: BYTE | WORD | DWORD
     targets : name of targets, separated by comma (,)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:defdgr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:defdgr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:defdgr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DEFDGR ✓

SYNTAX
   DEFDGR[$](char) = b0, b1, ... , b7
PURPOSE

This command allows you to customize a single character from those used in graphical
mode. The character is defined by means of an 8 pixel by 8 pixel monochrome matrix. 
The</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_animation?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:define_animation</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_animation?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_keyboard_delay?rev=1729410746&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T09:52:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:define_keyboard_delay</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_keyboard_delay?rev=1729410746&amp;do=diff</link>
        <description>ugBASIC User Manual

DEFINE KEYBOARD DELAY

SYNTAX
   DEFINE KEYBOARD DELAY value
PURPOSE

This command allows you to define the delay to wait before the characters will be 
repeated by the input system, with the INPUT or INKEY command. The delay depends
on the target, with a minimum value of 1 (no delay) to a maximum value of 
255 (maximum delay).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_keyboard_rate?rev=1729410746&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T09:52:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:define_keyboard_rate</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_keyboard_rate?rev=1729410746&amp;do=diff</link>
        <description>ugBASIC User Manual

DEFINE KEYBOARD RATE

SYNTAX
   DEFINE KEYBOARD RATE value
PURPOSE

This command allows you to define the speed with which the characters will be 
received by the input system on repetition, with the INPUT or INKEY command. The speed depends
on the target, with a minimum value of 0 (maximum speed) to a maximum value of 
254 (minimum speed).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_movement?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:define_movement</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_movement?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_string_count?rev=1729410746&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T09:52:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:define_string_count</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_string_count?rev=1729410746&amp;do=diff</link>
        <description>ugBASIC User Manual

DEFINE STRING COUNT

SYNTAX
   DEFINE STRING COUNT strings
PURPOSE

With the DEFINE STRING COUNT instruction it is possible to define the number 
of concurrent dynamic strings allowed.

EXAMPLE
  DEFINE STRING COUNT 64
ABBREVIATION</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_string_space?rev=1729410746&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T09:52:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:define_string_space</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:define_string_space?rev=1729410746&amp;do=diff</link>
        <description>ugBASIC User Manual

DEFINE STRING SPACE

SYNTAX
   DEFINE STRING SPACE bytes
PURPOSE

With the DEFINE STRING SPACE instruction it is possible to define the space 
dedicated to dynamic strings.

EXAMPLE
  DEFINE STRING SPACE 512
ABBREVIATION
 DeS1Sp
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:defining_labels?rev=1729881405&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T20:36:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:defining_labels</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:defining_labels?rev=1729881405&amp;do=diff</link>
        <description>ugBASIC User Manual

defining labels ✓

SYNTAX
   number instruction
   label: instruction
   [label:] instruction
PURPOSE

In ugBASIC it is possible to indicate the position within a program with the use of 
so-called “labels”. The labels can be represented in the BASIC standard, i.e. with numeric 
labels, or with alphanumeric labels, and are used to jump within specific positions of the program.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:degree?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:degree</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:degree?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DEGREE

SYNTAX
   DEGREE
PURPOSE

This command allows you to select the angle mode with 
trigonometric functions, setting it to 360 degrees.

EXAMPLE
  x1 = COS(3.1415)
  DEGREE
  x2 = COS(180)
  PRINT x1;&quot; &quot;;x2
ABBREVIATION
 Deg</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:destroy_port?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:destroy_port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:destroy_port?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

DESTROY PORT

SYNTAX
   DESTROY PORT portId
PURPOSE

The DESTROY PORT instruction destroy a message port that is not more
needed. The portId parameter is the same one that returned the call to 
CREATE PORT function, and identifies the working port at that moment.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dim?rev=1729412439&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T10:20:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dim</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dim?rev=1729412439&amp;do=diff</link>
        <description>ugBASIC User Manual

DIM ✓

SYNTAX
   DIM variable [AS datatype] [, variable [AS datatype] [ , variable [AS datatype] ] ]
   DIM variable [AS datatype] = constant
   DIM id [AS type] ( d1 [, d2 [ , ... ] ] )
   DIM id [AS type] ( d1 [, d2 [ , ... ] ] ) = #[hex]
   DIM id [AS type] ( d1 [, d2 [ , ... ] ] ) = #{v1, v2, ... }
   DIM id [AS type] WITH v ( d1 [, d2 [ , ... ] ] )</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:disable_interrupt?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:disable_interrupt</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:disable_interrupt?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DISABLE INTERRUPT

SYNTAX
   DISABLE INTERRUPT
PURPOSE

An interrupt is a signal that temporarily stops the normal execution of a program, 
allowing the processor to handle external events or internal exceptions. These events can be
a key being pressed on the keyboard, data arriving from a serial port or a timer reaching zero.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:distance?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:distance</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:distance?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DISTANCE ✓

SYNTAX
   = DISTANCE( [x1], [y1] TO [x2], [y2] )
PURPOSE

The DISTANCE function calculates the geometric distance between two points. 
The distance is calculated with the application of the Pythagorean theorem, 
the result of which is however returned with the nnly integer part. If any 
component is omitted, the last screen position is used, instead.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:div?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:div</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:div?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DIV ✓

SYNTAX
   DIV var, divisor[, remainder]
PURPOSE

The DIV statement allows you to make a division using the dividend 
as a variable where the result will be stored. Optionally, and only with
integer types, it is possible to indicate a variable where to store the 
remainder of the division operation.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dload?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dload</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dload?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DLOAD

SYNTAX
   DLOAD filename [FROM offset] [TO address] [SIZE size]
PURPOSE

The DLOAD command  load data from a mass storage (normally, a floppy disk) into 
the computer's memory. This data can be programs, numeric data, text, or any 
other information that has previously been saved to disk.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dload_error?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dload_error</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dload_error?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DLOAD ERROR

SYNTAX
   = DLOAD ERROR
PURPOSE

The DLOAD ERROR function lets you know whether the last 
DLOAD instruction returned an error or not.

ABBREVIATION
 DlEr
SEE ALSO

DLOAD

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:do...loop?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:do...loop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:do...loop?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DO...LOOP ✓

SYNTAX
   DO
     ... instructions ...
   LOOP [WHILE expr | UNTIL expr]
PURPOSE

The DO...LOOP command is used for repeatedly executing a
block of statements. It creates a loop, which is a sequence of 
statements that is executed repeatedly, forever (unless exits
using the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:do_..._loop?rev=1619689286&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-29T11:41:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:do_..._loop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:do_..._loop?rev=1619689286&amp;do=diff</link>
        <description>ugBASIC User Manual

DO ... LOOP

SYNTAX

	*  DO ... LOOP

PURPOSE

Implement an unconditional loop. The DO instruction defines the starting 
point of the loop, while the LOOP instruction defines the end point.

EXAMPLE
  DO : x = x + 1 : LOOP
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:do_null?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:do_null</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:do_null?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DO NULL ✓

SYNTAX
   DO NULL
PURPOSE

Wait for a keystroke. If a program comes to a DO NULL instruction, it waits until the user presses
a key. Differently from TSB, further commands can follow on the same BASIC line in the progra,
and it can be used in an</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_app?rev=1741168144&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-05T10:49:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_app</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_app?rev=1741168144&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_create_port?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_create_port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_create_port?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO CREATE PORT

SYNTAX

PURPOSE

ABBREVIATION
 DjCrtP^
ALIAS FOR

CREATE PORT

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_destroy_port?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_destroy_port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_destroy_port?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO DESTROY PORT

SYNTAX
   DESTROY PORT portId
PURPOSE

EXAMPLE
  sessionId = DOJO LOGIN( &quot;user&quot;, &quot;password&quot; )
  port = DOJO CREATE PORT( sessionId, &quot;testApp&quot; )
  DOJO DESTROY PORT port
ABBREVIATION
 DjDesPrt
AVAILABLE ON

	*  Commodore 64</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_error?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_error</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_error?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_find_port?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_find_port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_find_port?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO FIND PORT

SYNTAX
   port = DOJO FIND PORT( sessionId, username, application )
PURPOSE

EXAMPLE
  sessionId = DOJO LOGIN( &quot;user&quot;, &quot;password&quot; )
  port = DOJO FIND( sessionId, &quot;user2&quot;, &quot;testApp&quot; )
ABBREVIATION
 DjFndPrt
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_get_message?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_get_message</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_get_message?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO GET MESSAGE

SYNTAX

PURPOSE

ABBREVIATION
 DjGeMa
ALIAS FOR

GET MESSAGE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_login?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_login</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_login?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO LOGIN

SYNTAX
   = DOJO CREATE PORT( sessionId, application )
PURPOSE

EXAMPLE
  sessionId = DOJO LOGIN( &quot;user&quot;, &quot;password&quot; )
ABBREVIATION
 DjLgn
AVAILABLE ON

	*  Commodore 64
	*  Commodore 64+REU
	*  TRS-80 Color Computer 3</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_open_port?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_open_port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_open_port?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_peek_message?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_peek_message</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_peek_message?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO PEEK MESSAGE

SYNTAX

PURPOSE

ABBREVIATION
 DjPkMa
ALIAS FOR

PEEK MESSAGE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_ping?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_ping</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_ping?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO PING

SYNTAX

PURPOSE

ABBREVIATION
 DjPin
ALIAS FOR

PING

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_put_message?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_put_message</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_put_message?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO PUT MESSAGE

SYNTAX

PURPOSE

ABBREVIATION
 DjPuMa
ALIAS FOR

PUT MESSAGE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_ready?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_ready</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_ready?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO READY

SYNTAX
   = DOJO READY()
PURPOSE

EXAMPLE
  IF DOJO READY( ) THEN
     PRINT &quot;DOJO data is available&quot;
  ENDIF
ABBREVIATION
 DjR#y
AVAILABLE ON

	*  Commodore 64
	*  Commodore 64+REU
	*  TRS-80 Color Computer 3
	*  TRS-80 Color Computer</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_receive?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_receive</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_receive?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO RECEIVE

SYNTAX
   = DOJO RECEIVE()
PURPOSE

EXAMPLE
  IF DOJO READY( ) THEN
     PRINT DOJO RECEIVE()
  ENDIF
ABBREVIATION
 DjRcv
AVAILABLE ON

	*  Commodore 64
	*  Commodore 64+REU
	*  TRS-80 Color Computer 3
	*  TRS-80 Color Computer</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_send?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_send</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_send?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO SEND

SYNTAX
   DOJO SEND data
PURPOSE

EXAMPLE
  IF DOJO READY( ) THEN
     PRINT DOJO RECEIVE()
  ENDIF
ABBREVIATION
 DjSen
AVAILABLE ON

	*  Commodore 64
	*  Commodore 64+REU
	*  TRS-80 Color Computer 3
	*  TRS-80 Color Computer</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_success?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dojo_success</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dojo_success?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

DOJO SUCCESS

SYNTAX
   = DOJO SUCCESS( )
PURPOSE

EXAMPLE
  success = DOJO SUCCESS( )
ABBREVIATION
 DjSu
AVAILABLE ON

	*  Commodore 64
	*  Commodore 64+REU
	*  TRS-80 Color Computer 3
	*  TRS-80 Color Computer

ALIAS FOR

SUCCESS

ANY PROBLEM?</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dollardollar?rev=1729630238&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-22T22:50:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dollardollar</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dollardollar?rev=1729630238&amp;do=diff</link>
        <description>ugBASIC User Manual

$$

SYNTAX
   = $$(expression)
PURPOSE

EXAMPLE
  x = $$( 42 )
  PRINT $$( y )
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)
	*  Commodore 64
	*  Commodore 64+REU</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:double_buffer?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:double_buffer</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:double_buffer?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DOUBLE BUFFER

SYNTAX
   DOUBLE BUFFER [ON|OFF]
PURPOSE

The DOUBLE BUFFER is a command that enable / disable the graphics programming 
technique used to avoid screen flickering, which is especially noticeable in 
animations and interactive graphics applications. It is especially useful in 
8-bit computers, where graphics resources are limited.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:downb?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:downb</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:downb?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:downw?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:downw</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:downw?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:draw?rev=1729421877&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T12:57:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:draw</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:draw?rev=1729421877&amp;do=diff</link>
        <description>ugBASIC User Manual

DRAW ✓

SYNTAX
   DRAW [x1], [y1] TO x2, y2[, c]
   DRAW TO x2, y2[, c]
   DRAW (x1,y1) - (x2,y2)[,mode][,B|,BF]
PURPOSE

This instruction draws a line on the screen, starting from the coordinates (x1, y1)
to arrive at the coordinates</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dsave?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dsave</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dsave?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DSAVE

SYNTAX
   DSAVE filename [TO offset] [FROM address] [SIZE size]
PURPOSE

Dynamically (at run-time) save a file to a mass storage. The DSAVE command 
allows you to (dynamically) save a file to a mass device. The syntax allows 
you to save a specific file (</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dsave_error?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dsave_error</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dsave_error?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DSAVE ERROR

SYNTAX
   = DSAVE ERROR
PURPOSE

The DSAVE ERROR function lets you know whether the last 
DSAVE instruction returned an error or not.

ABBREVIATION
 DsaEr
SEE ALSO

DSAVE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dtile?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dtile</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dtile?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DTILE

SYNTAX
   DTILE v ROW y, x1 TO x2[, c]
   DTILE v COLUMN x, y1 TO y2[, c]
PURPOSE

This command allows you to draw a row or column of “tiles”, 
or predefined characters.

ABBREVIATION
 Dt
ALIAS FOR

DTILES

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dtiles?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dtiles</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dtiles?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DTILES

SYNTAX
   DTILES v ROW y, x1 TO x2[, c]
   DTILES v COLUMN x, y1 TO y2[, c]
PURPOSE

ABBREVIATION
 Dts
ALIAS FOR

DTILE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:dup?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:dup</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:dup?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

DUP

SYNTAX
   = DUP( string, times )
PURPOSE

The DUP command allows you to duplicate portions of text 
within a program. This feature is especially useful when you 
need to repeat a sequence of characters multiple times, without 
having to retype it manually.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ellipse?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ellipse</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ellipse?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ELLIPSE ✓

SYNTAX
   ELLIPSE [x],[y],[rx],[ry][, c]
PURPOSE

This command allows you to draw an ellipse with starting coordinates in (x,y)
and radius rx for the horizontal component and ry for the vertical component. 
The color is indicated by the parameter</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ellipse_fill?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ellipse_fill</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ellipse_fill?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:empty_tile?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:empty_tile</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:empty_tile?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EMPTY TILE

SYNTAX
   = EMPTY TILE
   EMPTY TILE = ...
PURPOSE

This is a special parameter of ugBASIC, which allows you to change what 
is considered the “space” character on the screen. It is used, in text 
modes, to clear the screen.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:emptytile?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:emptytile</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:emptytile?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EMPTYTILE

SYNTAX
   = EMPTYTILE
   EMPTYTILE = ...
PURPOSE

EXAMPLE
  EMPTYTILE = 65
  CLS
ABBREVIATION
 Emt
AVAILABLE ON

ALIAS FOR

EMPTY TILE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:enable_interrupt?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:enable_interrupt</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:enable_interrupt?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ENABLE INTERRUPT

SYNTAX
   ENABLE INTERRUPT
PURPOSE

An interrupt is a signal that temporarily stops the normal execution of a program, 
allowing the processor to handle external events or internal exceptions. These events can be
a key being pressed on the keyboard, data arriving from a serial port or a timer reaching zero.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:end?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:end</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:end?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

END

SYNTAX
   END
PURPOSE

The END command is used to terminate the execution of a program. 
When the computer encounters this command, it stops executing 
subsequent instructions.

Generally, the END command is placed at the end of a program 
to indicate its conclusion. It can be used within the program to 
interrupt execution in a controlled manner, for example when a 
particular condition occurs.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:end_gameloop?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:end_gameloop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:end_gameloop?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

END GAMELOOP

SYNTAX
   END GAMELOOP
PURPOSE

Define the ending point of a game loop.

EXAMPLE
  END GAMELOOP
ABBREVIATION
 EeGl
AVAILABLE ON

	*  
	*  Commodore 64
	*  Commodore 128 (Zilog Z80)
	*  Commodore 128 (MOS 8502)
	*  ColecoVision</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:endif?rev=1619613890&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-28T14:44:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:endif</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:endif?rev=1619613890&amp;do=diff</link>
        <description>ugBASIC User Manual

ENDIF

SYNTAX

	*  ENDIF

PURPOSE

Implement the end of conditional jump.

EXAMPLE
 IF ( x == 42 ) THEN x = 0: ENDIF
AVAILABLE ON

	*  Commodore 64
	*  ZX Spectrum 48K

SEE ALSO</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:endselect?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:endselect</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:endselect?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ENDSELECT

SYNTAX
   CASE expression
PURPOSE

The ENDSELECT command is part of SELECT...ENDSELECT construct, and
delimit the end of the SELECT CASE.

EXAMPLE
  SELECT CASE answer
     CASE 42
        PRINT &quot;The answer!&quot;
     CASE ELSE
        PRINT &quot;I am still thinking...&quot;
  ENDSELECT</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:envelope?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:envelope</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:envelope?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ENVELOPE

SYNTAX
   ENVELOPE voice, attack, decay, sustain, release
PURPOSE

The ENVELOPE command is used to define the volume of a sound over 
time, or its envelope. In simpler terms, it allows you to create 
richer and more complex sound effects, by defining the initial phase 
in which the sound rapidly increases in volume, the phase in which 
the sound decreases in volume, the final phase in which the sound 
fades away until it disappears. The</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:error?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:error</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:error?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:every...call?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:every...call</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:every...call?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EVERY...CALL ✓

SYNTAX
   EVERY value[,timer] TICKS CALL identifier
PURPOSE

The EVERY allows to execute a procedure at specified intervals of time. 
It is especially useful for creating animations, handling real-time events, 
and simulating dynamic behavior in your programs. You can give the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:every...gosub?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:every...gosub</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:every...gosub?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EVERY...GOSUB ✓

SYNTAX
   EVERY value[,timer] TICKS CALL identifier
   EVERY value TICKS GOSUB identifier
PURPOSE

The EVERY allows to call a subroutine at specified intervals of time. 
It is especially useful for creating animations, handling real-time events, 
and simulating dynamic behavior in your programs. You can give the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:every_off?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:every_off</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:every_off?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EVERY OFF ✓

SYNTAX
   EVERY OFF [timer]
PURPOSE

With EVERY OFF you can enable (or re-enable) the timed calls.

EXAMPLE
  EVERY OFF
See also the following example files:

	*  control_periodic_02.bas
	*  control_periodic_03.bas

ABBREVIATION
 EvOf
AVAILABLE ON

	*  
	*  Dragon 32 (6809)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:every_on?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:every_on</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:every_on?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EVERY ON ✓

SYNTAX
   EVERY ON [timer]
PURPOSE

With EVERY ON you can enable (or re-enable) the timed calls.

EXAMPLE
  EVERY ON
See also the following example files:

	*  control_periodic_02.bas
	*  control_periodic_03.bas

ABBREVIATION
 EvON
AVAILABLE ON

	*  
	*  Dragon 32 (6809)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exec?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exec</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exec?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXEC ✓

SYNTAX
   EXEC address _
        [ WITH REG(r1)=v1[, REG(r2)=v2 [, ... ] ] ] _
        [ RETURN x1=REG(r1)[, x2=REG(r2)[, ... ] ] ] _
        [ ON target1[, target2[, ... ] ] ]
PURPOSE

This command allows you to start the execution of a subroutine, written directly 
in machine language, starting from the indicated address. It must be noted that 
this jump is intended as a return: any assembly instruction that returns from 
execution will continue the execution of th…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exit</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXIT ✓

SYNTAX
   EXIT [number]
PURPOSE

The EXIT command is used to stop execution of a specific block of code
and transfer control of the program to the first statement following that block.
It is often used inside FOR...NEXT</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_if?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exit_if</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_if?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXIT IF ✓

SYNTAX
   EXIT IF expression[, number]
   EXIT number IF expression
PURPOSE

The instruction forces the program to leave a loop, such as FOR...NEXT, 
REPEAT...UNTIL, WHILE...WEND and DO...LOOP under a specific 
set of conditions. The</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exit_proc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXIT PROC ✓

SYNTAX
   EXIT PROC
PURPOSE

EXAMPLE
  EXIT PROC
See also the following example files:

	*  procedures_jumping_02.bas

ABBREVIATION
 ExPrb
AVAILABLE ON

ALIAS FOR

POP PROCEDURE EXIT PROCEDURE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc_if?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exit_proc_if</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc_if?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXIT PROC IF ✓

SYNTAX
   EXIT PROC IF expression
PURPOSE

EXAMPLE
  EXIT PROC IF
See also the following example files:

	*  procedures_jumping_02.bas

ABBREVIATION
 ExPrbIf
AVAILABLE ON

ALIAS FOR

EXIT PROCEDURE IF

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc_with...if?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exit_proc_with...if</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_proc_with...if?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXIT PROC WITH...IF

SYNTAX
   EXIT PROC WITH value IF expression
PURPOSE

EXAMPLE
  PROCEDURE test[ x AS INTEGER ]
     EXIT PROC WITH 0 IF x &gt; 10
     PRINT &quot;X is less or equal to 10&quot;
     RETURN 1
  END PROC
ABBREVIATION
 ExPrbWiIf</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exit_procedure</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXIT PROCEDURE

SYNTAX
   EXIT PROCEDURE
PURPOSE

The EXIT PROCEDURE command is used to stop execution of a specific procedure,
and transfer control of the program to the first statement following the calling
of that procedure.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure_if?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exit_procedure_if</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure_if?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXIT PROCEDURE IF

SYNTAX
   EXIT PROCEDURE IF expression
PURPOSE

The EXIT PROCEDURE IF command is used to stop execution of a specific procedure,
and transfer control of the program to the first statement following the calling
of that procedure, in case an expression is true.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure_with...if?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exit_procedure_with...if</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exit_procedure_with...if?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXIT PROCEDURE WITH...IF

SYNTAX
   EXIT PROCEDURE WITH value IF expression
PURPOSE

The EXIT PROCEDURE WITH...IF command is used to stop execution of a specific function,
and transfer control of the program to the first statement following the calling
of that procedure, giving back a value in case an expression is true.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:exp?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:exp</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:exp?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

EXP

SYNTAX
   = EXP(number)
PURPOSE

The EXP command is a mathematical function that calculates the natural 
exponential of a number. In other words, it raises Napier's number (e = 2.71828) 
to the specified power.

The EXP function has numerous applications in mathematics, science, 
and engineering. It is used to describe phenomena that grow at a rate 
proportional to the amount present, such as population growth or 
radioactive decay. The natural exponential is closely re…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fade</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade_in?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fade_in</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade_in?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade_out?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fade_out</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fade_out?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fcircle?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fcircle</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fcircle?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fheight?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fheight</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fheight?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:file?rev=1729538782&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-21T21:26:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:file</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:file?rev=1729538782&amp;do=diff</link>
        <description>ugBASIC User Manual

FILE ✓

SYNTAX
   FILE source [AS target]
PURPOSE

The FILE command, inserted inside a BEGIN STORAGE - ENDSTORAGE block, 
allows you to define the content of the mass storage element. The basic syntax requires 
indicating the name of the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:file_size?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:file_size</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:file_size?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:filesize?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:filesize</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:filesize?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_height?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:find_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_height?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_port?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:find_port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_port?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

FIND PORT

SYNTAX
   port = FIND PORT( sessionId, username, application )
PURPOSE

The FIND PORT function is needed to find out a port where to send
message. To send a message, we need to know the address of that message 
port. A message box is identified by a unique identifier, called</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_width?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:find_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:find_width?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fire?rev=1729445710&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T19:35:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fire</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fire?rev=1729445710&amp;do=diff</link>
        <description>ugBASIC User Manual

FIRE

SYNTAX
   = FIRE( port )
PURPOSE

Read the joystick port and check for “fire button” bit.

EXAMPLE
  x = FIRE(0)
ABBREVIATION
 Fi
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:flash?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:flash</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:flash?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:flip?rev=1697036140&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-11T16:55:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:flip</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:flip?rev=1697036140&amp;do=diff</link>
        <description>ugBASIC User Manual

FLIP ✓

SYNTAX
   = FLIP( [string] )
PURPOSE

This function will flip a given string, reversing the order of letters.

EXAMPLE
  x = FLIP( &quot;test&quot; )
See also the following example files:

	*  strings_flip_01.bas

ABBREVIATION
 Fl
AVAILABLE ON

	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:flip_image?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:flip_image</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:flip_image?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

FLIP IMAGE

SYNTAX
   FLIP IMAGE resource [X|Y|XY|YX]
   FLIP IMAGE resource FRAME frame [X|Y|XY|YX]
   FLIP IMAGE resource STRIP sequence FRAME frame [X|Y|XY|YX]
   FLIP [X|Y|XY|YX] IMAGE resource
   FLIP [X|Y|XY|YX] IMAGE resource FRAME frame
   FLIP [X|Y|XY|YX] IMAGE resource STRIP sequence FRAME frame
   FLIP IMAGE resource DIRECTION direction
   FLIP IMAGE resource FRAME frame DIRECTION direction
   FLIP IMAGE resource STRIP sequence FRAME frame DIRECTION direction
   F…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_height?rev=1729448345&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T20:19:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:font_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_height?rev=1729448345&amp;do=diff</link>
        <description>ugBASIC User Manual

FONT HEIGHT

SYNTAX
   = FONT HEIGHT
PURPOSE

This function allows you to obtain the height of the current font, expressed in pixels. 
The height depends on the currently selected graphics mode, and it can change at runtime.

There is also a compile-level function for this keyword, which is called when the value 
is used to initialize a constant. In this case, the value is that taken from inspecting 
the instructions at the time of compilation.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_load?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:font_load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_load?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

FONT LOAD

SYNTAX
   FONT LOAD filename [TO index]
PURPOSE

The FONT LOAD command allows you to load an image and to convert it into
a font.

The command support a set of modern image format, like:

	*  JPEG baseline &amp; progressive</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_width?rev=1729448345&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T20:19:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:font_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:font_width?rev=1729448345&amp;do=diff</link>
        <description>ugBASIC User Manual

FONT WIDTH

SYNTAX
   = FONT WIDTH
PURPOSE

This function allows you to obtain the width of the current font, expressed in pixels. 
The width depends on the currently selected graphics mode, and it can change at runtime.

There is also a compile-level function for this keyword, which is called when the value 
is used to initialize a constant. In this case, the value is that taken from inspecting 
the instructions at the time of compilation.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:for...next?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:for...next</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:for...next?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

FOR...NEXT ✓

SYNTAX
   FOR var = start TO end [ STEP increment ]
      ...
   NEXT [var]
PURPOSE

The FOR...NEXT  is a basic tool for executing a block of code a 
specified number of times. It is a control structure that creates a 
loop, which is a segment of code that is repeated until a certain 
condition is met. Once inside the loop, the index used to loop
can be read and modified by the program as if it is a normal variable.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:for_..._next?rev=1619689286&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-29T11:41:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:for_..._next</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:for_..._next?rev=1619689286&amp;do=diff</link>
        <description>ugBASIC User Manual

FOR ... NEXT

SYNTAX

	*  FOR [identifier] = [expression] TO [expression] { STEP [expression] }
	*  FOR [identifier] = [expression] TO [expression] { STEP [expression] }

PURPOSE

Implement an conditional loop. 

Implement an conditional loop.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:forbid?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:forbid</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:forbid?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

FORBID

SYNTAX
   FORBID
PURPOSE

In some situations, it is necessary to ensure that a sequence of operations is executed 
atomically, without interruption. The FORBID instruction plays a crucial role 
in this way, offering the programmer a way to take full control of the system's execution, 
at least temporarily.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:frame?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:frame</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:frame?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

FRAME

SYNTAX
   = FRAME(images)
PURPOSE

EXAMPLE
  animazione := LOAD ATLAS(&quot;images.png&quot;) FRAME SIZE (16, 16)
  FOR i = 0 TO FRAME(animazione)
     PRINT &quot;frame &quot;;i
  NEXT
ABBREVIATION
 Fr
AVAILABLE ON

ALIAS FOR

FRAMES IMAGES COUNT IMAGE COUNT

ANY PROBLEM?</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:frames?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:frames</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:frames?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

FRAMES ✓

SYNTAX
   = FRAMES(images)
PURPOSE

This function allows you to obtain the number of frames that make up a set of images (ATLAS).
If applied to a single image resource (IMAGE), however, it always returns 1. 
The value is obtained by retrieving it from the resource itself, and therefore is 
constant for the entire duration of the execution.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:frames_count?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:frames_count</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:frames_count?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

FRAMES COUNT ✓

SYNTAX
   = FRAMES COUNT(images)
PURPOSE

EXAMPLE
  animazione := LOAD IMAGES(&quot;images.png&quot;) FRAME SIZE (16, 16)
  FOR i = 0 TO FRAMES COUNT(animazione)
     PRINT &quot;frame &quot;;i
  NEXT
See also the following example files:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:free?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:free</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:free?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

FREE

SYNTAX
   ... = FREE
PURPOSE

Retrieves the free space still available for strings, in terms of bytes. 
This is how many characters are still available to be stored. The maximum 
value when calling this function is that indicated by the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:freeze?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:freeze</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:freeze?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fsize?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fsize</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fsize?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_bytes?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_bytes</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_bytes?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_close?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_close</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_close?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_connected?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_connected</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_connected?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_device?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_device</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_device?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_error?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_error</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_error?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_http_post_bin?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_http_post_bin</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_http_post_bin?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_login?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_login</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_login?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_open?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_open</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_open?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_parse_json?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_parse_json</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_parse_json?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_password?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_password</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_password?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_read?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_read</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_read?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_ready?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_ready</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_ready?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_set_channel_mode?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_set_channel_mode</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_set_channel_mode?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_set_json_query?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_set_json_query</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_set_json_query?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_status?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_status</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_status?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_write?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fujinet_write</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fujinet_write?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:function?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:function</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:function?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:fwidth?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:fwidth</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:fwidth?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:get?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:get</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:get?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GET

SYNTAX
   GET var
PURPOSE

EXAMPLE
  GET tasto
ABBREVIATION
 Ge
AVAILABLE ON

ALIAS FOR

INKEY

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_bitmap?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:get_bitmap</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_bitmap?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GET BITMAP

SYNTAX
   GET BITMAP var FROM [x], [y]
PURPOSE

The purpose of the GET BITMAP command is to store the contents of the screen 
in a variable, just the bitmap component so without color component. The syntax 
requires the point from which to start storing the image, whose dimensions are 
implicitly obtained from the variable. This command ssupports</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_image?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:get_image</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_image?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GET IMAGE

SYNTAX
   GET IMAGE var FROM [x], [y]
   GET (x1,y1) - (x2,y2), var[, G]
PURPOSE

The purpose of the GET IMAGE command is to store the contents of the screen 
in a variable. The first syntax is where the programmer provides the coordinates 
of the rectangle to be stored. This syntax will store only the bitmap of the
image. You need to give the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_message?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:get_message</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:get_message?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GET MESSAGE

SYNTAX
   = [DOJO] GET [MESSAGE]( port[, channel] )
   [DOJO] GET [MESSAGE] port[, channel], variable
PURPOSE

The GET MESSAGE statement allows you to retrieve the message present on the 
specified port (port), and possibly on the specific channel (</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:global?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:global</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:global?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GLOBAL ✓

SYNTAX
   GLOBAL var[, var[, ...]]
   GLOBAL string
   GLOBAL [var1[, var2[, ...] ]]
   GLOBAL &quot;string1&quot;[, &quot;string2&quot;[, ...] ]
   GLOBAL : REM is like GLOBAL &quot;*&quot;
PURPOSE

When you write a program, variables are like containers that store data. 
Depending on where you declare them, these variables can have different</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:global_const?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:global_const</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:global_const?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GLOBAL CONST ✓

SYNTAX
   [POSITIVE] GLOBAL CONST identifier = value
   GLOBAL CONST identifier IN (min,max) = value
   GLOBAL CONST identifier IN &quot;[&quot; min,max) = value
   GLOBAL CONST identifier IN (min,max &quot;]&quot; = value
   GLOBAL CONST identifier IN &quot;[&quot; min,max &quot;]&quot;&quot; = value</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:gold?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:gold</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:gold?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

GOLD

SYNTAX
   = GOLD
PURPOSE

This keyword represents the color gold. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:gosub?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:gosub</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:gosub?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GOSUB ✓

SYNTAX
   GOSUB label
PURPOSE

The GOSUB command allows you to “jump” to a specific part of the program,
execute a set of instructions and then return exactly to the point where 
you started. 

It allows you to break a program into smaller, more manageable 
blocks of code, improving readability and maintenance. A subroutine can be called 
multiple times from different parts of the program, avoiding rewriting the same 
code multiple times. It helps organize the flow …</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:goto?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:goto</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:goto?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GOTO ✓

SYNTAX
   GOTO label
   GOTO number
PURPOSE

The GOTO command is a statement that allows you to jump unconditionally 
to another part of the program. In practice, instead of executing the instructions 
in sequence, the program</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:gr_locate?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:gr_locate</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:gr_locate?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GR LOCATE ✓

SYNTAX
   GR LOCATE [x], [y]
PURPOSE

The GR LOCATE allows you to position the graphics cursor in a specific position on the screen, 
thus preparing the ground for subsequent drawing operations, such as printing text, drawing lines 
or shapes.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:graphic?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:graphic</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:graphic?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

GRAPHIC

SYNTAX
   GRAPHIC
PURPOSE

Do a quickly initialization with the high resolution graphics mode. 

EXAMPLE
  GRAPHIC
ABBREVIATION
 Gr
AVAILABLE ON

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:graphics?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:graphics</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:graphics?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:green?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:green</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:green?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

GREEN ✓

SYNTAX
   = GREEN
PURPOSE

This keyword represents the color green. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (0,204,85)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:grey?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:grey</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:grey?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

GREY

SYNTAX
   = GREY
PURPOSE

This keyword represents the color grey. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:halt?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:halt</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:halt?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

HALT

SYNTAX
   HALT
PURPOSE

This instruction stops the program execution, in “busy” mode. The implementation is
by means of an infinite loop, which is executed when the instruction is executed. 
With this expedient, the execution of interrupts will continue without being 
interrupted while all other operations will be interrupted, including multithreading.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:has_bit?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:has_bit</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:has_bit?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

HAS BIT ✓

SYNTAX
   = value HAS BIT position
PURPOSE

Think of a number as a sequence of switches, each of which can be on (1) or off (0). 
Each switch represents a bit. The HAS BIT instruction will check
a bit on (1), by checking the state of a specific switch within this sequence.
The parameter</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:has_not_bit?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:has_not_bit</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:has_not_bit?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

HAS NOT BIT ✓

SYNTAX
   = value HAS NOT BIT position
PURPOSE

Think of a number as a sequence of switches, each of which can be on (1) or off (0). 
Each switch represents a bit. The HAS NOT BIT instruction will check
a bit off (0), by checking the state of a specific switch within this sequence.
The parameter</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hash_operator?rev=1729179903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-17T17:45:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:hash_operator</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:hash_operator?rev=1729179903&amp;do=diff</link>
        <description>ugBASIC User Manual

hash operator

SYNTAX
   = #constant
PURPOSE

In general, the hash operator (#) allows you to indicate the will to refer, 
explicitly, to a constant rather than to a value mediated by a variable. 
Without this operator, ugBASIC may decide to make a temporary copy of the 
value before using it. This can be inefficient. Therefore it is possible to 
indicate the will to actually refer to the equivalent value. 
For this reason, this operator works only if it is used with a const…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:height?rev=1715017589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-06T19:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:height?rev=1715017589&amp;do=diff</link>
        <description>ugBASIC User Manual

HEIGHT ✓

SYNTAX
   = HEIGHT
PURPOSE

This function allows you to obtain the height of the current screen, expressed in pixels. 
The height depends on the currently selected graphics mode, and can change at runtime.

There is also a compile-level function for this keyword, which is called when the value 
is used to initialize a constant. In this case, the value is that taken from inspecting 
the instructions at the time of compilation.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hex?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:hex</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:hex?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

HEX

SYNTAX
   = HEX(expression)
PURPOSE

The HEX statement is used to convert a decimal number to a hexadecimal number. 
Hexadecimal, or base 16, is a numbering system that uses 16 digits (0 through 9 and 
the letters A through F) to represent numbers.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hires?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:hires</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:hires?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

HIRES ✓

SYNTAX
   HIRES ink, paper
PURPOSE

`HIRES` is used to switch from text to high-resolution graphics mode and to use the specified colors: 
ink for the writing color and paper for the background color (both with values from 0 to</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hit?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:hit</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:hit?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

HIT

SYNTAX
   = HIT(#sprite)
   = HIT(var)
PURPOSE

Verify if a sprite has had a collision with a tile. The result 
(0 = no collision, &lt;&gt; 0 = collision occurred) is returned as result.

EXAMPLE
  IF HIT( starship ) THEN
     POINT AT (100,100)
  ENDIF</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:home?rev=1729451996&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T21:19:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:home</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:home?rev=1729451996&amp;do=diff</link>
        <description>ugBASIC User Manual

HOME ✓

SYNTAX
   HOME
PURPOSE

The HOME command moves the text cursor back to the top left-hand corner 
of the screen in a hurry.

EXAMPLE
  HOME
See also the following example files:

	*  texts_position_02.bas

ABBREVIATION
 Hm
AVAILABLE ON

	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:hscroll?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:hscroll</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:hscroll?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

HSCROLL

SYNTAX
   HSCROLL LEFT
   HSCROLL SCREEN LEFT
   HSCROLL RIGHT
   HSCROLL SCREEN RIGHT
PURPOSE

Il comando HSCROLL permette di effettuare lo scrolling orizzontale, 
sia di una singola linea che di tutto lo scherrmo, a destra oppure 
a sinistra.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then...else...elseif...endif?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:if...then...else...elseif...endif</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then...else...elseif...endif?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IF...THEN...ELSE...ELSEIF...ENDIF ✓

SYNTAX
   IF expression THEN
      ...
   ELSE
      ...
   ENDIF
   IF expression THEN
      ...
   ELSEIF expression2 THEN
      ...
      ...
   ELSE
      ...
   ENDIF
   IF expression THEN GOTO number
   IF expression THEN number [ELSE number]
   IF expression THEN statement</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then...else...endif?rev=1697038985&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-11T17:43:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:if...then...else...endif</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then...else...endif?rev=1697038985&amp;do=diff</link>
        <description>ugBASIC User Manual

IF...THEN...ELSE...ENDIF

SYNTAX

PURPOSE

ABBREVIATION
 IfThElEi
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then?rev=1619614968&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-28T15:02:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:if...then</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:if...then?rev=1619614968&amp;do=diff</link>
        <description>ugBASIC User Manual

IF...THEN ✓

SYNTAX

	*  IF [ expression ] THEN : ... : { ELSE : ... : } ENDIF

PURPOSE

Implement a conditional jump. This implementation assumes that
an expression passed as a parameter is 0 (for false) and not 
zero (for true). In this case, if the expression is zero, it 
jumps directly to the statement following the corresponding</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if?rev=1729451996&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T21:19:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:if</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:if?rev=1729451996&amp;do=diff</link>
        <description>ugBASIC User Manual

IF

SYNTAX
   = IF (exp, valueTrue, valueFalse )
PURPOSE

The IF function allows you to evaluate whether a certain expression is TRUE (not 0) or FALSE. 
(0). Depending on that check, the function will return the second (if TRUE) or third (if</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:if_..._then?rev=1619613890&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-28T14:44:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:if_..._then</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:if_..._then?rev=1619613890&amp;do=diff</link>
        <description>ugBASIC User Manual

IF ... THEN

SYNTAX

	*  IF [ expression ] THEN
	*  IF [ expression ] THEN ... ELSE ...

PURPOSE

Implement the conditional jump. This implementation assumes that
an expression passed as a parameter is 0 (for false) and not 
zero (for true). In this case, if the expression is zero, it 
jumps directly to the statement following the corresponding 
ENDIF. Otherwise, the following code will be executed (up to 
ENDIF).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image?rev=1729513179&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-21T14:19:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:image</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:image?rev=1729513179&amp;do=diff</link>
        <description>ugBASIC User Manual

IMAGE

SYNTAX
   = IMAGE( resource FRAME num )
   = IMAGE( resource SEQUENCE seq FRAME num )
PURPOSE

The IMAGE command allows you to extract an image from a collection of images 
stored in an IMAGES or SEQUENCE variable. Note that extraction occurs at compile 
time: therefore, no extra resources are allocated in the compiled program. This command 
is intended for all those commands that need an image to function, but want to exploit a
graphic resource already loaded and opt…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_from_buffer?rev=1729881005&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T20:30:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:image_from_buffer</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_from_buffer?rev=1729881005&amp;do=diff</link>
        <description>ugBASIC User Manual

IMAGE from buffer

SYNTAX
   = (IMAGE)#[hexadecimal string]
PURPOSE

The (IMAGE)#[...] command allows you to load an image from a buffer.

EXAMPLE
  starship = (IMAGE)#[100010100010ff20ff20...ffff]
ABBREVIATION
 Imfrombuffer
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_height?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:image_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_height?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IMAGE HEIGHT

SYNTAX
   = IMAGE HEIGHT(image)
PURPOSE

This function allows you to obtain the height of a given IMAGE or a given
set of IMAGES. The height is expressed in pixels.

There is also a compile-level function for this keyword, which is called when the value 
is used to initialize a constant. In this case, the value is that taken from inspecting 
the instructions at the time of compilation.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_load?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:image_load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_load?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IMAGE LOAD

SYNTAX

PURPOSE

ABBREVIATION
 ImLd
ALIAS FOR

LOAD IMAGE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_width?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:image_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:image_width?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IMAGE WIDTH

SYNTAX
   = IMAGE WIDTH(image)
PURPOSE

This function allows you to obtain the width of a given IMAGE or a given
set of IMAGES. The width is expressed in pixels.

There is also a compile-level function for this keyword, which is called when the value 
is used to initialize a constant. In this case, the value is that taken from inspecting 
the instructions at the time of compilation.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_count?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:images_count</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_count?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IMAGES COUNT ✓

SYNTAX
   = IMAGES COUNT(images)
PURPOSE

EXAMPLE
  animazione := LOAD IMAGES(&quot;images.png&quot;) FRAME SIZE (16, 16)
  FOR i = 0 TO IMAGES COUNT(animazione)
     PRINT &quot;frame &quot;;i
  NEXT
See also the following example files:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_from_buffer?rev=1729881005&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T20:30:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:images_from_buffer</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_from_buffer?rev=1729881005&amp;do=diff</link>
        <description>ugBASIC User Manual

IMAGES from buffer

SYNTAX

PURPOSE

The (IMAGES)#[...] command allows you to load an image and to convert 
in an array of images, starting from a buffer.

ABBREVIATION
 Imsfrombuffer
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_load?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:images_load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:images_load?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IMAGES LOAD

SYNTAX

PURPOSE

ABBREVIATION
 ImsLd
ALIAS FOR

LOAD ATLAS ATLAS LOAD LOAD IMAGES

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:in?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:in</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:in?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IN

SYNTAX
   = IN(port)
PURPOSE

The IN command is used to read a value from a specific input/output (I/O) port.
The port parameter indicates the exact address of the I/O port from which you want to 
acquire the data. The port address varies depending on the architecture of the 
computer and the connected peripheral.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:inc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:inc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:inc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

INC ✓

SYNTAX
   INC var
PURPOSE

The INC command is used to increment (i.e. increase) the value 
of a numeric variable by one. It is a quick and concise way to add 
1 from the value contained in a variable. In place of variable</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:include?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:include</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:include?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

INCLUDE

SYNTAX
   INCLUDE filename
PURPOSE

The INCLUDE command allows you to insert a source from an external 
file. In practice, what happens is that the content of the file, without 
any interpretation, is copied “as is” at the point where the statement 
was inserted. All variables and scopes will be maintained.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ink?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ink</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ink?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

INK

SYNTAX
   INK color
PURPOSE

EXAMPLE
  INK 4
ABBREVIATION
 Ik
AVAILABLE ON

ALIAS FOR

PEN

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:inkb?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:inkb</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:inkb?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:inkey?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:inkey</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:inkey?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

INKEY

SYNTAX
   = INKEY$
PURPOSE

The INKEY' (or INKEY$) capture a single character typed by the user 
without having to press enter. In other words, the program is “listening” 
to the keyboard and, as soon as a key is pressed,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:input?rev=1722165082&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-28T13:11:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:input</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:input?rev=1722165082&amp;do=diff</link>
        <description>ugBASIC User Manual

INPUT ✓

SYNTAX
   INPUT var1 [, var2 [, ..]] [;]
   INPUT [prompt;] [var1] [, var2 [, ..]] [;]
   INPUT [prompt,] [var1] [, var2 [, ..]] [;]
PURPOSE

The INPUT provides a standard way of entering information into one or more variables. 
There are two possible formats for this instruction.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:insert?rev=1729531057&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-21T19:17:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:insert</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:insert?rev=1729531057&amp;do=diff</link>
        <description>ugBASIC User Manual

INSERT ✓

SYNTAX
   = INSERT(&lt;string&gt;,&lt;altstring&gt;,&lt;pos&gt;)
PURPOSE

INSERT inserts the character string &lt;string&gt; (first argument) into the character string 
&lt;altstring&gt; (second argument) starting at the position &lt;pos&gt; (third argument), whereby 
the counting starts with</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:inst?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:inst</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:inst?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

INST ✓

SYNTAX
   = INST( string, alt, pos )
PURPOSE

The INST function overwrites the characters of the string alt' with the character string 
string (first argument) in the character string alt (second argument) from the position</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:instr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:instr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:instr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

INSTR ✓

SYNTAX
   = INSTR( text, searched [, start] )
PURPOSE

This function can be called to search through strings for individual characters or sub-strings:
it allows you to search for all instances of one string inside another. The string is searched 
for the first occurrence of the second strings. If it is found, its location will be reported 
in the form of the number of characters from the left-hand side of the searched string. 
If the search is unsuccessful, a result…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:instrument?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:instrument</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:instrument?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

INSTRUMENT

SYNTAX
   INSTRUMENT #instrument [ON #channels]
   INSTRUMENT name [ON #channels]
PURPOSE

This command allows you to select one of the available tools. Instruments 
can be set for all voices, or for a set of particular voices.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:is?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:is</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:is?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IS ✓

SYNTAX
   = value IS position
PURPOSE

EXAMPLE
  IF x IS 2 THEN: PRINT &quot;bit 2 is 1!&quot;: ENDIF
See also the following example files:

	*  controls_joy_02.bas
	*  controls_keyboard_03.bas

AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:is_not?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:is_not</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:is_not?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

IS NOT ✓

SYNTAX
   = value IS NOT position
PURPOSE

EXAMPLE
  IF x IS NOT 2 THEN: PRINT &quot;bit 2 is 0&quot;: ENDIF
See also the following example files:

	*  controls_joy_02.bas
	*  controls_keyboard_05.bas

ABBREVIATION
 ISNt
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jdown?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:jdown</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:jdown?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JDOWN

SYNTAX
   = JDOWN( port )
PURPOSE

Read the joystick port and check for “direction down” bit.

EXAMPLE
  x = JDOWN(0)
ABBREVIATION
 Jd
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jfire?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:jfire</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:jfire?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JFIRE

SYNTAX
   = JFIRE( port )
PURPOSE

Read the joystick port and check for “fire button” bit.

EXAMPLE
  x = JFIRE(0)
ABBREVIATION
 Jf
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jleft?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:jleft</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:jleft?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JLEFT

SYNTAX
   = JLEFT( port )
PURPOSE

Read the joystick port and check for “direction left” bit.

EXAMPLE
  x = JLEFT(0)
ABBREVIATION
 Jl
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jmove?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:jmove</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:jmove?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:joy</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JOY

SYNTAX
   = JOY( port )
PURPOSE

Read the value from the joystick port. 

EXAMPLE
  x = JOY(0)
ABBREVIATION
 Jy
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy_count?rev=1729278598&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T21:09:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:joy_count</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy_count?rev=1729278598&amp;do=diff</link>
        <description>ugBASIC User Manual

JOY COUNT

SYNTAX
   = JOY COUNT
PURPOSE

Read the number of joysticks installed into the system.

EXAMPLE
  x = JOY COUNT
ABBREVIATION
 JyC%
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy_x?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:joy_x</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:joy_x?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JOY X

SYNTAX
   = JOY X( port )
PURPOSE

Read the horizontal axys of an analogical joystick, if it is present.
A negative value means “left” while a positive one means “right”.
The value near 0 means “no direction”.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joycount?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:joycount</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:joycount?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JOYCOUNT

SYNTAX
   = JOYCOUNT
PURPOSE

Read the number of joysticks installed into the system.

EXAMPLE
  x = JOYCOUNT
ABBREVIATION
 Jyc
AVAILABLE ON

ALIAS FOR

JOY COUNT

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joydir?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:joydir</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:joydir?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joyx?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:joyx</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:joyx?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JOYX

SYNTAX
   = JOYX( port )
PURPOSE

EXAMPLE
  x = JOYX(0)
ABBREVIATION
 Jyx
AVAILABLE ON

	*  TRS-80 Color Computer
	*  TRS-80 Color Computer 3
	*  Dragon 32
	*  Dragon 64

ALIAS FOR

JOY X

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:joyy?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:joyy</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:joyy?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JOYY

SYNTAX
   = JOY Y( port )
   = JOYY( port )
PURPOSE

Read the vertical axys of an analogical joystick, if it is present.
A negative value means “up” while a positive one means “down”.
The value near 0 means “no direction</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jright?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:jright</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:jright?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JRIGHT

SYNTAX
   = JRIGHT( port )
PURPOSE

Read the joystick port and check for “direction right” bit.

EXAMPLE
  x = JRIGHT(0)
ABBREVIATION
 Jr
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:jup?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:jup</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:jup?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

JUP

SYNTAX
   = JUP( port )
PURPOSE

Read the joystick port and check for “direction up” bit.

EXAMPLE
  x = JUP(0)
ABBREVIATION
 Ju
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_pressed?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:key_pressed</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_pressed?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

KEY PRESSED

SYNTAX
   = KEY PRESSED(keycode)
PURPOSE

The KEY PRESSED command allows you to know the pressing state of a
single specific key, during the “duty cycle” of the keyboard driver.
The reading is deferred: therefore, it is 
possible to detect the pressing of just one key at a time but there is 
no possibility that the pressing of the key is not detected.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_shift?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:key_shift</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_shift?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

KEY SHIFT

SYNTAX
   = KEY SHIFT
PURPOSE

The KEY SHIFT function returns the current status of the various 
control keys. These keys such as SHIFT or ALT cannot be 
detected using the standard INKEY$ or SCANCODE functions. 
But you can easily test for any combination of control keys with 
just a single call to the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_state?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:key_state</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:key_state?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

KEY STATE

SYNTAX
   = KEY STATE(keycode)
PURPOSE

The KEY STATE command allows you to know the pressing state of a
single specific key. The reading is immediate: therefore, it is 
possible to detect the pressing of even more than one key at a time 
and, if the user is too fast or the program is too slow, there is 
the possibility that the pressing of the key is not detected.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:keyget?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:keyget</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:keyget?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

KEYGET

SYNTAX
   KEYGET variable
PURPOSE

The KEYGET' capture a single character typed by the user 
without having to press enter. In other words, the program is “listening” 
to the keyboard and, as soon as a key is pressed,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:keyshift?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:keyshift</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:keyshift?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

KEYSHIFT

SYNTAX
   = KEYSHIFT
PURPOSE

EXAMPLE
  CENTER &quot;Press some control keys&quot;
  DO
     LOCATE 14, 4
     PRINT BIN$(KEYSHIFT, 8)
  LOOP
ABBREVIATION
 Ks
AVAILABLE ON

ALIAS FOR

KEY SHIFT

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:keystate?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:keystate</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:keystate?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

KEYSTATE

SYNTAX
   = KEY STATE(keycode)
PURPOSE

ABBREVIATION
 Kt
ALIAS FOR

KEY STATE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:kill?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:kill</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:kill?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

KILL

SYNTAX
   KILL id[,id[,...]]
PURPOSE

The KILL command terminates the execution of a thread, 
thereby stopping its execution and returning it to a “terminated”
state. This command occurs regardless of what the thread is doing; 
therefore, it can cause processes or procedures to fail. Any 
thread can be killed at any time, as long as it is active. 
If a thread is not active, killing it will have no effect.
You can interrupt a set of threads contained in an array 
by sup…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:labels?rev=1696795242&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-08T22:00:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:labels</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:labels?rev=1696795242&amp;do=diff</link>
        <description>ugBASIC User Manual

labels ✓

SYNTAX
   number instruction
   label: instruction
   [label:] instruction
PURPOSE

In ugBASIC it is possible to indicate the position within a program with the use of 
so-called “labels”. The labels can be represented in the BASIC standard, i.e. with numeric 
labels, or with alphanumeric labels, and are used to jump within specific positions of the program.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lavender?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:lavender</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:lavender?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

LAVENDER

SYNTAX
   = LAVENDER
PURPOSE

This keyword represents the color lavender. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lbottom?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:lbottom</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:lbottom?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lbound?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:lbound</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:lbound?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LBOUND

SYNTAX
   = LBOUND( array [, dimension])
PURPOSE

The LBOUND command (short for “lower bound”) is used to determine the
lowest index of an array. In other words, it tells you where the count 
of elements in an array begins.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lcase?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:lcase</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:lcase?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LCASE

SYNTAX
   = LCASE( text )
PURPOSE

EXAMPLE
  x = LCASE( &quot;ugBASIC&quot; )
ABBREVIATION
 Lca
AVAILABLE ON

ALIAS FOR

LOWER

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:left?rev=1729545633&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-21T23:20:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:left</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:left?rev=1729545633&amp;do=diff</link>
        <description>ugBASIC User Manual

LEFT ✓

SYNTAX
   = LEFT( text, position )
PURPOSE

The LEFT command replaces the leftmost characters in the 
destination string with the equivalent characters from the given
strings. The command has two parameters. 

The first parameter is the string expression to change.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:leftb?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:leftb</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:leftb?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:leftw?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:leftw</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:leftw?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:len?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:len</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:len?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LEN ✓

SYNTAX
   = LEN( text )
PURPOSE

the LEN command (short for “length”) is used to determine the length 
of a string, or the total number of characters in the string. This 
is a very useful command when you need to know the size of a string 
to perform manipulation or comparison operations.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_blue?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:light_blue</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_blue?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

LIGHT BLUE

SYNTAX
   = LIGHT BLUE
PURPOSE

This keyword represents the color light blue. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_green?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:light_green</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_green?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

LIGHT GREEN

SYNTAX
   = LIGHT GREEN
PURPOSE

This keyword represents the color light green. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_grey?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:light_grey</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_grey?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

LIGHT GREY

SYNTAX
   = LIGHT GREY
PURPOSE

This keyword represents the color light grey. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_red?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:light_red</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:light_red?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

LIGHT RED

SYNTAX
   = LIGHT RED
PURPOSE

This keyword represents the color light red. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:line?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:line</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:line?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LINE ✓

SYNTAX
   LINE [x1], [y1] TO x2, y2[, c]
   LINE TO x2, y2[, c]
   LINE (x1,y1) - (x2,y2)[,mode]
PURPOSE

EXAMPLE
  LINE 10,10 TO 100,100,WHITE
  LINE TO 100,100
See also the following example files:

	*  graphics_color_01.bas
	*  graphics_lines_01.bas
	*  graphics_shapes_01.bas
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:line_input?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:line_input</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:line_input?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LINE INPUT

SYNTAX
   LINE INPUT [prompt];v1
   LINE INPUT [prompt],v1
PURPOSE

The LINE INPUT command takes a complete line of text entered 
by the user and assign it to a string variable. Unlike the INPUT
command, which stops at the first comma or space,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:little_endian?rev=1729256488&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T15:01:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:little_endian</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:little_endian?rev=1729256488&amp;do=diff</link>
        <description>ugBASIC User Manual

LITTLE ENDIAN

SYNTAX
   = LITTLE ENDIAN
PURPOSE

Returns not zero if the CPU has little endian byte order, zero otherwise.

EXAMPLE
  IF LITTLE ENDIAN THEN : PRINT &quot;LITTLE ENDIAN&quot; : ENDIF
ABBREVIATION
 LitEnd
AVAILABLE ON

	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD ✓

SYNTAX
   = LOAD( filename[,address] )
   = LOAD( filename AS alias[,address] )
PURPOSE

The LOAD command allows you to load a generic binary file from the file system 
of the host system and use it, as a buffer, directly in the program. Loading occurs 
at compile time: there is no access to the target system's file system. If multiple 
uploads are made to the same file, a single buffer will still be generated.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_atlas?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_atlas</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_atlas?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD ATLAS

SYNTAX
   = LOAD ATLAS( filename [AS alias][,mode] ) frame [ORIGIN(dx,dy)] [fl] [tr] [op] [bg] [bk] [READONLY]
   = LOAD ATLAS( filename [AS alias][,mode] ) frame [fl] [tr] [op] [bg] [bk] [READONLY]
       frame : [ FRAME SIZE(w, h) [OFFSET(dx,dy)] [ORIGIN(zx, zy)] | FRAME AUTO]
       fl : [FLIP X] [FLIP Y] [FLIP XY] [FLIP YX]
            [COMPRESSED] [OVERLAYED] [EXACT]
            [ROLL X] [ROLL Y] [ROLL XY] [ROLL YX]
       tr : [TRANSPARENCY | TRANSPARENCY c…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_image?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_image</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_image?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD IMAGE ✓

SYNTAX
   = LOAD IMAGE( filename [AS alias][,mode] ) [fl] [tr] [op] [bg] [bk] [READONLY]
       fl : [FLIP X] [FLIP Y] [FLIPXY] [FLIPYX]
            [COMPRESSED] [OVERLAYED] [EXACT]
       tr : [TRANSPARENCY | TRANSPARENCY color]
       op : [OPACITY | OPACITY color]
       bg : [BACKGROUND color]
       bk : [UNBANKED | BANKED | BANKED(number)]</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_images?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_images</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_images?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD IMAGES

SYNTAX

PURPOSE

ABBREVIATION
 LdIms
ALIAS FOR

LOAD ATLAS ATLAS LOAD IMAGES LOAD

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_music?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_music</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_music?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD MUSIC

SYNTAX
   = LOAD MUSIC( filename )
   = LOAD MUSIC( filename AS alias )
PURPOSE

The LOAD MUSIC command allows you to load a music file from the file system 
of the host system and use it, as music, directly in the program. Loading occurs 
at compile time: there is no access to the target system's file system. If multiple 
uploads are made to the same file, a single buffer will still be generated.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_sequence?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_sequence</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_sequence?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD SEQUENCE

SYNTAX
   = LOAD SEQUENCE( filename [AS alias][,mode] ) frame [ORIGIN(dx,dy)] [fl] [tr] [op] [bg] [bk] [READONLY]
   = LOAD SEQUENCE( filename [AS alias][,mode] ) frame [fl] [tr] [op] [bg] [bk] [READONLY]
       frame : [ FRAME SIZE(w, h) [OFFSET(dx,dy)] [ORIGIN(zx, zy)] | FRAME AUTO]
       fl : [FLIP X] [FLIP Y] [FLIP XY] [FLIP YX]
            [COMPRESSED] [OVERLAYED] [EXACT]
            [ROLL X] [ROLL Y] [ROLL XY] [ROLL YX]
       tr : [TRANSPARENCY | TRANS…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tile?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_tile</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tile?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD TILE

SYNTAX
   = LOAD TILE( filename [AS alias][,mode] ) [fl]
       fl : [FLIP X] [FLIP Y] [FLIP XY] [FLIP YX]
       fl : [ROLL X] [ROLL Y] [ROLL XY] [ROLL YX]
PURPOSE

The LOAD TILE command allows you to load an image and to convert it into 
an</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tilemap?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_tilemap</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tilemap?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD TILEMAP

SYNTAX
   = LOAD TILEMAP(filename)
PURPOSE

The LOAD TILEMAP command allow to load a TILEMAP datatype that will represent a map
of those drawn by means of Tiled. 

EXAMPLE
  x = LOAD TILEMAP(&quot;dungeon.tmx&quot;)
ABBREVIATION</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tiles?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_tiles</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tiles?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD TILES

SYNTAX
   = LOAD TILE( filename [AS alias][,mode] ) [fl]
       fl : [FLIP X] [FLIP Y] [FLIP XY] [FLIP YX]
       fl : [ROLL X] [ROLL Y] [ROLL XY] [ROLL YX]
PURPOSE

The LOAD TILES command allows you to load an image and to convert it into 
multiple</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tileset?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:load_tileset</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:load_tileset?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOAD TILESET

SYNTAX
   = LOAD TILESET( filename )
   = LOAD TILESET( filename AS alias )
PURPOSE

The LOAD TILESET command allows you to load a tileset with the “Tiled TSX”
file format. Offset and other parameters will be calculated automatically
on the base of the file content.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:local_task_variable_operator?rev=1729881005&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T20:30:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:local_task_variable_operator</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:local_task_variable_operator?rev=1729881005&amp;do=diff</link>
        <description>ugBASIC User Manual

local task variable operator ✓

SYNTAX
   = [variable]
   [variable] = expression
   = [variable$]
   [variable$] = expression
PURPOSE

To guarantee the use of local variables within parallel procedures, since the procedure does 
not have a stack, it is necessary to prepare an array to contain this type of information. 
Therefore, using the array access operator, it is then possible to access the individual 
variables, using the task identifier as an index.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:locate?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:locate</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:locate?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOCATE ✓

SYNTAX
   LOCATE [x],[y]
PURPOSE

The LOCATE command moves the text cursor to specific coordinates, 
and this new location sets the start position for all subsequent 
text printing until commanded otherwise. 

All console positions are measured in “text coordinates”, which are 
measured in units of one printed character on console, with the 
x-coordinate controlling the horizontal position and the 
y-coordinate referring to the vertical.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:log?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:log</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:log?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOG

SYNTAX
   = LOG(number)
PURPOSE

The LOG instruction calculate the natural logarithm of the given number,
that must be FLOAT. This is a mathematical function that is the inverse 
of the natural exponential 
(with base e). In other words, the natural logarithm of a number</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:login?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:login</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:login?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

LOGIN

SYNTAX
   = LOGIN( username, password )
PURPOSE

The LOGIN function will allow to connect with a DOJO server. On DOJO 
servers there is no different process between registration and access 
to the systems: this is because, in fact, it is unlikely that the user's 
situation has persisted on the retrocomputers. It follows that, at the 
first attempt to access, there will also be contextual registration of the 
user; after the first access, each subsequent access must ha…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:loop...end_loop?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:loop...end_loop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:loop...end_loop?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOOP...END LOOP

SYNTAX
   LOOP
     ... instructions ...
   END LOOP
PURPOSE

EXAMPLE
  LOOP
    x = x + 1
  END LOOP
ABBREVIATION
 LpEeLp
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:lower?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:lower</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:lower?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

LOWER ✓

SYNTAX
   = LOWER( text )
PURPOSE

The LOWER function converts all uppercase characters in a string to lowercase. 
In other words, it takes a string as input and returns a new string that is 
identical to the first, but with all the letters lowercase.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:magenta?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:magenta</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:magenta?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

MAGENTA

SYNTAX
   = MAGENTA
PURPOSE

This keyword represents the color magenta. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:max?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:max</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:max?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MAX ✓

SYNTAX
   = MAX(#const1,#const2)
   = MAX(val1,val2)
   = MAX(string1,string2)
   = MAX(array)
PURPOSE

The MAX function allows you to identify the greater of two values. If both terms 
are (numeric) constants, the evaluation is carried out at the time of compilation. Otherwise, the 
value is calculated at runtime.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memclr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memclr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memclr?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memcont?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memcont</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memcont?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memdef?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memdef</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memdef?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memlen?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memlen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memlen?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memload?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memload</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memload?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memor?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memor</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memor?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memorize?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memorize</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memorize?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MEMORIZE ✓

SYNTAX
   MEMORIZE
PURPOSE

The MEMORIZE command allows you to store the current position of the cursor, 
in terms of coordinates, relative to the current console. The cursor coordinates
can be restored with the REMEMBER</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mempeek?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mempeek</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mempeek?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mempos?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mempos</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mempos?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memrestore?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memrestore</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memrestore?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:memsave?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:memsave</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:memsave?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mid?rev=1729609036&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-22T16:57:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mid</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mid?rev=1729609036&amp;do=diff</link>
        <description>ugBASIC User Manual

MID ✓

SYNTAX
   MID( text, position[, len] ) = value
PURPOSE

The MID statement allows to change a (dynamic) string containing a specified number 
of characters from a string. It has three parameters.

The first parameter is the string expression to modify.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:min?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:min</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:min?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MIN ✓

SYNTAX
   = MIN(#const1,#const2)
   = MIN(val1,val2)
   = MIN(string1,string2)
   = MIN(array)
PURPOSE

The MIN function allows you to identify the smaller of two values. If both terms 
are (numeric) constants, the evaluation is carried out at the time of compilation. Otherwise, the 
value is calculated at runtime.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mmob?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mmob</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mmob?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mmove?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mmove</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mmove?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MMOVE

SYNTAX
   MMOVE [MEMORY] address1 TO [MEMORY] address2 SIZE size
   MMOVE [MEMORY] address1 TO VIDEO address2 SIZE size
   MMOVE VIDEO address1 TO [MEMORY] address2 SIZE size
PURPOSE

This command moves a block of memory of</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob?rev=1685014732&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-25T13:38:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mob</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob?rev=1685014732&amp;do=diff</link>
        <description>ugBASIC User Manual

MOB ✓

SYNTAX
   MOB [index],[image] {VISIBILE|HIDDEN}
   MOB [index],[image] AT {[x]},{[y]} {VISIBILE|HIDDEN}
   MOB([image])
PURPOSE

The MOB command allows you to define a movable object. In order to be used, 
you must have loaded the image. The simplest syntax provides, in fact, the 
definition of the object. It is possible to indicate a starting position 
for the object, different from (0,0) and whether the object is visible or not. 
Additional syntaxes are available fo…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_at?rev=1685014732&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-25T13:38:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mob_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_at?rev=1685014732&amp;do=diff</link>
        <description>ugBASIC User Manual

MOB AT ✓

SYNTAX
   MOB [index] AT {[x]},{[y]}
PURPOSE

The MOB AT command allows you to put a movable object on a specific position.

EXAMPLE
  MOB 2 AT 200,200
See also the following example files:

	*  mobs_example_01.bas

ABBREVIATION
 Mb At
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_hide?rev=1685014732&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-25T13:38:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mob_hide</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_hide?rev=1685014732&amp;do=diff</link>
        <description>ugBASIC User Manual

MOB HIDE ✓

SYNTAX
   MOB HIDE [index]
PURPOSE

The MOB HIDE command allows you to show (enable) a movable object.

EXAMPLE
  MOB HIDE starship
See also the following example files:

	*  mobs_example_01.bas

ABBREVIATION
 Mb Hd
AVAILABLE ON

	*  Commodore 64</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_off?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mob_off</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_off?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MOB OFF

SYNTAX
   MOB OFF
PURPOSE

ABBREVIATION
 MbOf
ALIAS FOR

SPRITE DISABLE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_on?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mob_on</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_on?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MOB ON

SYNTAX
   MOB ON
PURPOSE

ABBREVIATION
 MbON
ALIAS FOR

SPRITE ENABLE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_render?rev=1685014732&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-25T13:38:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mob_render</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_render?rev=1685014732&amp;do=diff</link>
        <description>ugBASIC User Manual

MOB RENDER ✓

SYNTAX
   MOB RENDER
PURPOSE

The MOB RENDER force the refresh of MOBs.

EXAMPLE
  MOB RENDER
See also the following example files:

	*  mobs_example_01.bas

ABBREVIATION
 Mb Rend
AVAILABLE ON

	*  Commodore 64

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_show?rev=1685014732&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-25T13:38:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mob_show</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mob_show?rev=1685014732&amp;do=diff</link>
        <description>ugBASIC User Manual

MOB SHOW ✓

SYNTAX
   MOB SHOW [index]
PURPOSE

The MOB SHOW command allows you to show (enable) a movable object.

EXAMPLE
  MOB SHOW starship
See also the following example files:

	*  mobs_example_01.bas

ABBREVIATION
 Mb Sh
AVAILABLE ON

	*  Commodore 64</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mod?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mod</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mod?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MOD

SYNTAX
   = x MOD y
PURPOSE

The MOD operator is used to perform the modulo operation. This operation 
returns the remainder of the integer division of two numbers.
The result of a MOD operation will not retain the sign of any, and so it may be 
only positive. The result is always in the range</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:move?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:move</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:move?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:move_tile?rev=1697043839&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-11T19:03:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:move_tile</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:move_tile?rev=1697043839&amp;do=diff</link>
        <description>ugBASIC User Manual

MOVE TILE

SYNTAX

PURPOSE

ABBREVIATION
 MvTl
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:movement?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:movement</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:movement?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:moving?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:moving</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:moving?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:msprite?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:msprite</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:msprite?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MSPRITE

SYNTAX

PURPOSE

ABBREVIATION
 Msp
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:msprite_update?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:msprite_update</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:msprite_update?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MSPRITE UPDATE

SYNTAX

PURPOSE

This instruction causes multiplexed sprites to be updated, 
where an asynchronous update has been requested.

ABBREVIATION
 MspUpd
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:mul?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:mul</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:mul?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MUL

SYNTAX
   MUL var, expr
PURPOSE

The MUL statement is used to multiply the value of a numeric variable by 
a specified amount. In other words, it is like multiply one number with another.
It is the same as var = var * expr.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:multi</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MULTI

SYNTAX
   MULTI color1, color2, color3
PURPOSE

MULTI sets three of the colors of the C64's multicolor mode and switches 
the multicolor mode on. The fourth possible color (the background color, 
multicolor bit combination %00, controlled by memory address $D021) is defined with 
the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi_off?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:multi_off</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi_off?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MULTI OFF

SYNTAX
   MULTI OFF
PURPOSE

MULTI OFF deactivates the multicolor mode.

EXAMPLE
  MULTI OFF
ABBREVIATION
 MltOf
AVAILABLE ON

SEE ALSO

MULTI ON

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi_on?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:multi_on</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:multi_on?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MULTI ON

SYNTAX
   MULTI ON
PURPOSE

MULTI ON activates the multicolor mode without setting any colors. 

EXAMPLE
  MULTI ON
ABBREVIATION
 MltON
AVAILABLE ON

SEE ALSO

MULTI OFF

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:music</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:music?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MUSIC

SYNTAX
   MUSIC [LOOP] music [format]
   MUSIC music [format] [LOOP]
PURPOSE

The MUSIC command starts a piece of music from the music variable. This
music will be played independently of your program, without affecting it in the
slightest.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_pause?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:music_pause</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_pause?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MUSIC PAUSE

SYNTAX
   MUSIC PAUSE
PURPOSE

The MUSIC PAUSE command allows you to temporarily suspend the performance of a piece of music. 
The suspension is carried out either by interrupting the execution of the notes and by setting 
the volume to zero. The music can be reactivated using the command</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_resume?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:music_resume</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_resume?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MUSIC RESUME

SYNTAX
   MUSIC RESUME
PURPOSE

The MUSIC RESUME command allows you to resume a suspended performance of a piece of music. 
The music can be suspended using the command MUSIC PAUSE.

EXAMPLE
  MUSIC PAUSE: WAIT KEY: MUSIC RESUME</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_seek?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:music_seek</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_seek?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MUSIC SEEK

SYNTAX
   MUSIC SEEK position
PURPOSE

The MUSIC SEEK command allows you to move the reproduction to a specific position.

EXAMPLE
  MUSIC SEEK 42
ABBREVIATION
 Mussk
AVAILABLE ON

	*  
	*  Commodore 128 (Zilog Z80)
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_stop?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:music_stop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:music_stop?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

MUSIC STOP

SYNTAX
   MUSIC STOP
PURPOSE

The MUSIC STOP command allows you to halt definitively the performance of a piece of music. 

EXAMPLE
  MUSIC STOP
ABBREVIATION
 MusSt
AVAILABLE ON

	*  Commodore 128 (Zilog Z80)
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_atlas?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:new_atlas</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_atlas?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NEW ATLAS

SYNTAX
   = NEW ATLAS( frames, width, height )
PURPOSE

The NEW ATLAS command allows you to define a memory area where you can 
store a set of images coming from the screen (with the GET IMAGE command), or 
from another graphic resource.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_image?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:new_image</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_image?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NEW IMAGE ✓

SYNTAX
   = NEW IMAGE( width, height )
PURPOSE

The NEW IMAGE command allows you to define a memory area where you can 
store an image coming from the screen (with the GET IMAGE command), or 
from another graphic resource.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_images?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:new_images</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_images?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NEW IMAGES

SYNTAX

PURPOSE

ABBREVIATION
 NwIms
ALIAS FOR

NEW ATLAS

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_music?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:new_music</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_music?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NEW MUSIC

SYNTAX
   = NEW MUSIC( size )
PURPOSE

The NEW MUSIC command allows you to define a memory area where you can 
store a set of notes for a MUSIC.

EXAMPLE
  track = NEW MUSIC(1260)
ABBREVIATION
 NwMus
AVAILABLE ON

ANY PROBLEM?</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_sequence?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:new_sequence</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:new_sequence?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NEW SEQUENCE

SYNTAX
   = NEW SEQUENCE( strips, frames, width, height )
PURPOSE

The NEW SEQUENCE command allows you to define a memory area where you can 
store a set of images coming from the screen (with the GET IMAGE command), or 
from another graphic resource.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_animation?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:next_animation</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_animation?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_raster?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:next_raster</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_raster?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NEXT RASTER

SYNTAX
   NEXT RASTER
PURPOSE

The NEXT RASTER instruction will resume execution of the main program from
where it had stopped, before serving the interrupt for the raster.

Wait for the next raster. Meanwhile, the execution of the main 
code will resume where it left off.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_raster_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:next_raster_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:next_raster_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NEXT RASTER AT

SYNTAX
   NEXT RASTER AT line WITH label
   NEXT RASTER label AT line
PURPOSE

The NEXT RASTER AT instruction will resume execution of the main program from
where it had stopped, before serving the interrupt for the raster, and will set
the next raster line where the main program will be interrupted.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:nop?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:nop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:nop?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NOP

SYNTAX
   NOP
PURPOSE

NOP is short for “No OPeration” and it is a very special instruction:
it generates an equivalent instruction in assembly languages that
does not perform any useful operation, that is, it does not change the
state of the processor or the data in memory.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:not?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:not</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:not?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NOT

SYNTAX
   = NOT x
PURPOSE

Performs a logical negation on an expression, as a bitwise negation. For 
comparisons managed as a boolean result (TRUE or FALSE), result is TRUE
if expresions evaluate as FALSE. The following table shows how result 
is determined:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:nrm?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:nrm</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:nrm?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

NRM ✓

SYNTAX
   NRM
PURPOSE

NRM resets the chipset to its default values: the graphic mode is switched off,
uppercase and lowercase font is activated, the extended color mode is switched off.

EXAMPLE
  NRM
See also the following example files:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:offset?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:offset</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:offset?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:olive_green?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:olive_green</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:olive_green?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

OLIVE GREEN

SYNTAX
   = OLIVE GREEN
PURPOSE

This keyword represents the color olive green. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...gosub?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:on...gosub</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...gosub?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ON...GOSUB ✓

SYNTAX
   ON expression GOSUB label1[, label2 [, ... ] ]
PURPOSE

This command is used to force a unconditional jump with returning to a pre-defined position when a 
specific expression is calculated. The choice is done against several positions,
and it depends on what value is held by the expression at the time it is spotted.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...goto?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:on...goto</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...goto?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ON...GOTO ✓

SYNTAX
   ON expression GOTO label1[, label2[, ... ] ]
PURPOSE

This command is used to force a unconditional jump to a pre-defined position when a 
specific expression is calculated. The choice is done against several positions,
and it depends on what value is held by the expression at the time it is spotted.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...proc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:on...proc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:on...proc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ON...PROC ✓

SYNTAX
   ON expression PROC name1[, name2 [, ... ] ]
PURPOSE

This command is used to force a call to subroutine when a 
specific expression is calculated. The choice is done against several positions,
and it depends on what value is held by the expression at the time it is spotted.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll...call?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:on_scroll...call</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll...call?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ON SCROLL...CALL

SYNTAX
   ON SCROLL UP ROW CALL label
   ON SCROLL DOWN ROW CALL label
   ON SCROLL LEFT COLUMN CALL label
   ON SCROLL RIGHT COLUMN CALL label
PURPOSE

This command is used to force a procedure call 
when the screen is scrolled down by an entire row or column.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll...gosub?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:on_scroll...gosub</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll...gosub?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ON SCROLL...GOSUB

SYNTAX
   ON SCROLL UP ROW GOSUB label
   ON SCROLL DOWN ROW GOSUB label
   ON SCROLL LEFT COLUMN GOSUB label
   ON SCROLL RIGHT COLUMN GOSUB label
PURPOSE

This command is used to force a unconditional jump with returning to a pre-defined position 
when the screen is scrolled down by an entire row or column.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll..call?rev=1697045917&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-11T19:38:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:on_scroll..call</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll..call?rev=1697045917&amp;do=diff</link>
        <description>ugBASIC User Manual

ON SCROLL..CALL

SYNTAX
   ON SCROLL {UP ROW|DOWN ROW|LEFT COLUMN|RIGHT COLUMN} CALL [label]
PURPOSE

This command is used to force a procedure call
when the screen is scrolled down by an entire row or column. 

EXAMPLE
  ON SCROLL UP ROW CALL scrolledAway</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll..gosub?rev=1697045917&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-11T19:38:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:on_scroll..gosub</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:on_scroll..gosub?rev=1697045917&amp;do=diff</link>
        <description>ugBASIC User Manual

ON SCROLL..GOSUB

SYNTAX
   ON SCROLL {UP ROW|DOWN ROW|LEFT COLUMN|RIGHT COLUMN} GOSUB [label]
PURPOSE

This command is used to force a unconditional jump with returning to a pre-defined position 
when the screen is scrolled down by an entire row or column.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:open_port?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:open_port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:open_port?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:option_explicit?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:option_explicit</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:option_explicit?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

OPTION EXPLICIT

SYNTAX
   OPTION EXPLICT [ON]
   OPTION EXPLICT OFF
PURPOSE

When OPTION EXPLICT or OPTION EXPLICIT ON appears in a source file,
the programmer must explicitly declare all variables by using the VAR or
DIM statements.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:or?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:or</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:or?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

OR

SYNTAX
   = x OR y
PURPOSE

Performs a logical disjunction on two expressions, as a bitwise disjunction. For 
comparisons managed as a boolean result (TRUE or FALSE), result is TRUE
if just one expresions evaluate to TRUE. The following table shows how result 
is determined:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:orange?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:orange</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:orange?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

ORANGE ✓

SYNTAX
   = ORANGE
PURPOSE

This keyword represents the color orange. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (161, 104, 60)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:origin?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:origin</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:origin?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ORIGIN

SYNTAX
   ORIGIN x, y UP
   ORIGIN x, y [DOWN]
PURPOSE

The ORIGIN command can be used to set the origin of the cartesian axes with 
respect to which drawing instructions will operate. The command accepts the 
coordinates</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:out?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:out</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:out?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

OUT

SYNTAX
   OUT port, value
PURPOSE

The OUT command is a statement that allows your program to interact directly 
with your computer's hardware, specifically its input/output (I/O) ports. This
command is especially useful in contexts where you want to control external 
devices connected to your computer, such as printers, sound cards, or 
data acquisition devices.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:paint?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:paint</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:paint?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PAINT

SYNTAX
   PAINT (x,y)[, c[, b]]
   PAINT x, y, fq
PURPOSE

The PAINT command is used in high resolution graphics modes, to fill a 
shape with a specified colour.

The x,y are the coordinates of the point where the painting is to start.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:palette?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:palette</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:palette?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PALETTE

SYNTAX
   PALETTE c0[,c1[,c2[,...]]]
PURPOSE

The PALETTE command allows you to define and modify the range of colors that can
be used to draw on the screen. You can give a number for each element of the
palette, sequentially. Thenumber is then used to refer to the specific color 
when drawing shapes or objects. Thanks to RGB function you can change the 
red, green and blue value of each color in the palette, allowing you to 
create custom color combinations, provid…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:paper?rev=1729409944&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T09:39:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:paper</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:paper?rev=1729409944&amp;do=diff</link>
        <description>ugBASIC User Manual

PAPER

SYNTAX
   PAPER expression
PURPOSE

This command allow to select a background colour on which your text is
to be printed. The command is 
followed by a colour index number between 0 and PAPER COLORS, 
depending on the graphics mode in use, in exactly the same way 
as</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:param?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:param</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:param?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PARAM ✓

SYNTAX
   = PARAM(name)
   = PARAM$(name)
PURPOSE

The PARAM function takes the result of an expression in an END PROC / END PROCEDURE statement
(or from a RETURN statement), and returns it. If the variable you are interested 
in is a string variable, the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pause?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pause</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pause?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pcls?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pcls</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pcls?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PCLS

SYNTAX

PURPOSE

ABBREVIATION
 Pc
ALIAS FOR

CLS

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peach?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:peach</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:peach?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

PEACH

SYNTAX
   = PEACH
PURPOSE

This keyword represents the color peach. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peek?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:peek</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:peek?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PEEK

SYNTAX
   = PEEK( address )
PURPOSE

PEEK is a command that allows you to “peek” into 
your computer's memory. In practice, it allows you to read the value stored 
in a specific memory cell.

When using PEEK, you give the command the memory</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peek_message?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:peek_message</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:peek_message?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PEEK MESSAGE

SYNTAX
   [DOJO] PEEK [MESSAGE]( port[, channel] )
PURPOSE

The PEEK MESSAGE statement lets you know whether or not a message is present 
on a given port (and channel). If it is present, it returns TRUE, otherwise 
it returns</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peekd?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:peekd</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:peekd?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PEEKD

SYNTAX
   = PEEKD( address )
PURPOSE

PEEKD is a command that allows you to “peek” into 
your computer's memory. In practice, it allows you to read the value stored 
in a specific memory cell.

When using PEEKD, you give the command the memory</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:peekw?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:peekw</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:peekw?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PEEKW

SYNTAX
   = PEEKW( address )
PURPOSE

PEEKW is a command that allows you to “peek” into 
your computer's memory. In practice, it allows you to read the value stored 
in a specific memory cell.

When using PEEKW, you give the command the memory</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pen?rev=1729409944&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T09:39:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pen?rev=1729409944&amp;do=diff</link>
        <description>ugBASIC User Manual

PEN

SYNTAX
   PEN color
PURPOSE

The PEN command define the color that will be used to draw lines, shapes, or write text 
on the screen. In practice, it is like choosing the color of a pen or marker before you 
start drawing. Depending on the hardware capabilities of the computer, the range of colors 
available could be limited or very large. Some systems used predefined color palettes, 
while others allowed you to define your own colors.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:percentpercent?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:percentpercent</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:percentpercent?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

%%

SYNTAX
   = %%(expression)
PURPOSE

EXAMPLE
  x = %%( 42 )
  PRINT %%( y )
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)
	*  Commodore 64
	*  Commodore 64+REU</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pick?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pick</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pick?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PICK

SYNTAX
   = PICK( string, offset )
PURPOSE

The PICK function allows you to obtain the ASCII code of any character present in a 
string, provided that the offset within the string is provided.

EXAMPLE
  PRINT PICK( &quot;TEST&quot;, 2 )</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ping?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ping</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ping?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PING

SYNTAX
   [DOJO] PING[ ( [param1 [,param2] ] ) ]
PURPOSE

The PING instruction allows you to check whether the server is active and 
whether communication is occurring correctly. It can be invoked without parameters, 
to check whether the connection is working, or with one or two parameters, to check 
whether the connection does not compromise the data transmitted. To check this, 
you need to know that the two parameters, if provided, will be used to compose the 
respo…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pink?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pink</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pink?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

PINK

SYNTAX
   = PINK
PURPOSE

This keyword represents the color pink. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:place?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:place</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:place?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PLACE

SYNTAX
   = PLACE( text, searched [, start] )
PURPOSE

EXAMPLE
  x = PLACE( &quot;ugBASIC&quot;, &quot;A&quot; )
  x = PLACE( &quot;ugBASIC&quot;, &quot;A&quot;, 2 )
ABBREVIATION
 Pla
AVAILABLE ON

ALIAS FOR

INSTR

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:play?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:play</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:play?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PLAY

SYNTAX

PURPOSE

ABBREVIATION
 Py
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY

index</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:play_off?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:play_off</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:play_off?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PLAY OFF

SYNTAX
   PLAY OFF [ON #channels]
PURPOSE

This command allows you to stop the play on all channels or specific channels.

EXAMPLE
  PLAY OFF
  PLAY OFF ON #%001
ABBREVIATION
 PyOf
AVAILABLE ON

	*  
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:plot?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:plot</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:plot?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PLOT ✓

SYNTAX
   PLOT [x], [y][, color]
PURPOSE

The PLOT command allows you to draw individual points on the screen, laying 
the foundation for creating more complex shapes such as lines or rectangles.
The origin (0,0) is usually located in the upper left corner of the screen, but can
be changed using</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:plotr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:plotr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:plotr?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pmode?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pmode</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pmode?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PMODE

SYNTAX
   PMODE mode, startpage
PURPOSE

The instruction PMODE allow to select the mode and startpage, using the
Dragon BASIC syntax. The mode is a number from 0 to 4, and startpage 
is the page in video RAM you wish to start writing to. Note that</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:point?rev=1697048708&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-11T20:25:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:point</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:point?rev=1697048708&amp;do=diff</link>
        <description>ugBASIC User Manual

POINT

SYNTAX

PURPOSE

ABBREVIATION
 Pt
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY

index</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:point_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:point_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:point_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

POINT AT ✓

SYNTAX
   POINT AT ( [x], [y] )
   POINT AT(#x, #y)
   POINT AT(x, y)
PURPOSE

The POINT AT instruction allows you to draw a point on the screen, at 
the (x, y) coordinate. The color is the default color, the one set with 
the last</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:poke?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:poke</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:poke?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

POKE

SYNTAX
   POKE address, value
PURPOSE

The POKE is the write equivalent of the PEEK command, meaning it allows you 
to modify the contents of a specific memory cell. Essentially, POKE allows you 
to “write” a numeric value to a particular location in your computer's memory.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:poked?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:poked</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:poked?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

POKED

SYNTAX
   POKED address, value
PURPOSE

The POKED is the write equivalent of the PEEKD command, meaning it allows you 
to modify the contents of four memory cells. Essentially, POKED allows you 
to “write” a numeric value to a particular location in your computer's memory.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pokew?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pokew</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pokew?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

POKEW

SYNTAX
   POKEW address, value
PURPOSE

The POKEW is the write equivalent of the PEEKW command, meaning it allows you 
to modify the contents of two memory cells. Essentially, POKEW allows you 
to “write” a numeric value to a particular location in your computer's memory.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:polyline?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:polyline</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:polyline?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

POLYLINE

SYNTAX
   POLYLINE [[x1],[y1]] TO [x2],[y2] [TO [x3],[y3] [TO [x4],[y4]]]...
PURPOSE

The POLYLINE command allows you to draw a 
certain number of concatenated lines.

EXAMPLE
  POLYLINE 10,10 TO 20,10 TO 20,20 TO 10,20 TO 10,10</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pop</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

POP ✓

SYNTAX
   POP
PURPOSE

Remove the caller address from GOSUB call. So you can do a GOTO
instead of RETURN.

EXAMPLE
  POP
See also the following example files:

	*  control_popping_01.bas

ABBREVIATION
 Pp
AVAILABLE ON

	*  
	*  Atari (400/800)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop_proc?rev=1729440019&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T18:00:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pop_proc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop_proc?rev=1729440019&amp;do=diff</link>
        <description>ugBASIC User Manual

POP PROC ✓

SYNTAX
   POP PROC
PURPOSE

This keyword will exit from a procedure. 

EXAMPLE
  POP PROC
See also the following example files:

	*  procedures_jumping_02.bas

ABBREVIATION
 PpPrb
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop_procedure?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pop_procedure</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pop_procedure?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

POP PROCEDURE ✓

SYNTAX
   POP PROCEDURE
PURPOSE

EXAMPLE
  POP PROCEDURE
See also the following example files:

	*  procedures_jumping_02.bas

ABBREVIATION
 PpP1
AVAILABLE ON

ALIAS FOR

EXIT PROCEDURE EXIT PROC

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:port?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:port</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:port?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:pow?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:pow</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:pow?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

POW ✓

SYNTAX
   = POW( base, exponent )
   = base ^ exponent
PURPOSE

The POW instruction is short for “power” and is used to calculate the
power of a number. In other words, it allows you to raise a base number 
to a certain exponent. It multiplies the base by itself a number of times 
equal to the exponent. For example,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:print?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:print</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:print?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PRINT ✓

SYNTAX
   PRINT [[RAW] expr] [; [[RAW]expr] [; ...] ... ]
   PRINT [[RAW] expr] [, [[RAW]expr] [, ...] ... ]
   PRINT @expr, [, [[RAW]expr] [, ...] ... ]
PURPOSE

The PRINT instruction displays information on the screen, starting from the current
cursor position. An item or a list of items can follow the command. If any item is omitted, 
a blank line is printed. The list of items can consist of any group of strings, variables or constants.
Each element in the list m…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:print_buffer?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:print_buffer</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:print_buffer?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PRINT BUFFER ✓

SYNTAX
   PRINT BUFFER [expression]{;|,[expression]|;[expression]} ...
PURPOSE

EXAMPLE
  file := load(&quot;example.txt&quot;)
  PRINT BUFFER file
See also the following example files:

	*  buffers_print_01.bas

ABBREVIATION
 ?Bf
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:proc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:proc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:proc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PROC ✓

SYNTAX
   PROC name
PURPOSE

This keyword has multiple meaning. If the identifier that follows this
command is not already defined, this can be used to give a label (name)
to a part of the program. This makes subprograms independent of their 
position in the program and makes it easier for the programmer to keep 
track of things (names are easier to assign to a purpose than line numbers).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:procedure...end_proc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:procedure...end_proc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:procedure...end_proc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PROCEDURE...END PROC ✓

SYNTAX
   PROCEDURE name[ par1[, par2[, ... ]]] ]
    ...
   END PROC[ expression ]
PURPOSE

This couple of keywords create a procedure by giving it a name. The name is
then followed by a list of parameters and the procedure must be ended 
with an</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:purple?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:purple</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:purple?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

PURPLE

SYNTAX
   = PURPLE
PURPOSE

This keyword represents the color purple. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_bitmap?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:put_bitmap</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_bitmap?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PUT BITMAP ✓

SYNTAX
   PUT BITMAP resource [ AT [x],[y] ] [DOUBLE Y]
   PUT BITMAP resource FRAME f [ AT [x],[y] ] [DOUBLE Y]
   PUT BITMAP resource STRIP s FRAME f [ AT [x],[y] ] [DOUBLE Y]
PURPOSE

This function draws the bitmap component of an image at a specific position on the screen.
The programmer can draw on the screen a single bitmap (</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_image?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:put_image</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_image?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PUT IMAGE ✓

SYNTAX
   PUT IMAGE resource AT [x],[y]
   PUT IMAGE resource FRAME frame AT [x],[y]
   PUT IMAGE resource STRIP sequence FRAME frame AT [x],[y]
   PUT IMAGE resource [ AT [x],[y] ] [fl]
   PUT IMAGE resource FRAME f [ AT [x],[y] ] [fl]
   PUT IMAGE resource STRIP s FRAME f [ AT [x],[y] ] [fl]
     fl: [WITH TRANSPARENCY] [DOUBLE Y]
   PUT ([x1],[y1])-(x2,y2),resource[,fl2]
     fl2: PSET|PRESET|AND|OR|NOT</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_key?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:put_key</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_key?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PUT KEY

SYNTAX
   PUT KEY string
PURPOSE

The PUT KEY command allows you to simulate pressing a key on your computer 
keyboard. Basically, you enter a string of characters and ugBASIC will use
it as if they were typed one after the other. This can be very useful for 
automating certain actions, such as automatically entering your password 
or emulating keystrokes.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_message?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:put_message</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_message?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PUT MESSAGE

SYNTAX
   = [DOJO] PUT [MESSAGE]( port[, channel], message )
   [DOJO] PUT [MESSAGE] port[, channel], message )
PURPOSE

The PUT MESSAGE statement allows you to send a message to the port (and optionally 
the given channel</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_tile?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:put_tile</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_tile?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PUT TILE

SYNTAX

PURPOSE

ABBREVIATION
 PuTl
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_tilemap?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:put_tilemap</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:put_tilemap?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

PUT TILEMAP

SYNTAX
   PUT TILEMAP resource [ LAYER layer ] [ FROM x, y ]
PURPOSE

The command PUT TILEMAP can be used to draw a map on the screen. Note how the same map draws the
same way on different screens. The map is however within the available screen size. If the 
map is bigger than the screen, the comamnd only draws a part of the map. To scroll the map you 
can use the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:radian?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:radian</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:radian?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RADIAN

SYNTAX
   RADIAN
PURPOSE

This command allows you to select the angle mode with 
trigonometric functions, setting it to radiants.

EXAMPLE
  DEGREE
  x1 = COS(180)
  RADIAN
  x2 = COS(3.1415)
  PRINT x1;&quot; &quot;;x2
ABBREVIATION</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:random?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:random</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:random?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RANDOM

SYNTAX
   = RANDOM type
PURPOSE

This function allows you to calculate a random number, in the range
that can be represented by the type of data indicated as a parameter.

EXAMPLE
  randomScore = RANDOM BYTE
  randomColor = RANDOM COLOR</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:random_height?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:random_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:random_height?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RANDOM HEIGHT

SYNTAX
   = RANDOM HEIGHT
PURPOSE

This instruction allows you to get a random number between 0 and the current height of the screen 
(intended as SCREEN HEIGHT) minus one. It is particularly useful for positioning pixels or 
graphic elements, randomly, on the screen.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:random_width?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:random_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:random_width?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RANDOM WIDTH

SYNTAX
   = RANDOM WIDTH
PURPOSE

This instruction allows you to get a random number between 0 and the current width of the screen 
(intended as SCREEN WIDTH) minus one. It is particularly useful for positioning pixels or 
graphic elements, randomly, on the screen.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:randomize?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:randomize</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:randomize?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RANDOMIZE

SYNTAX
   RANDOMIZE seed
PURPOSE

Initialize the random seed.

EXAMPLE
  RANDOMIZE
ABBREVIATION
 Rdm
AVAILABLE ON

	*  Commodore 128 (MOS 8502)

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:range?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:range</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:range?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:raster_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:raster_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:raster_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RASTER AT

SYNTAX
   RASTER AT line WITH label
   RASTER label AT line
PURPOSE

The RASTER AT instruction will set the next execution raster line for a
raster routine. A raster routine is a small program or sequence of instructions 
that uses a particular moment in the screen display to be activated. This is 
when the electron beam (the raster beam) scans the screen, line by line, to 
draw the image.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:raster_line?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:raster_line</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:raster_line?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RASTER LINE

SYNTAX
   = RASTER LINE
PURPOSE

The RASTER LINE keyword gives the current raster line, or the
current vertical position of a raster beam. A raster beam is a beam 
of electrons or light that systematically scans an area, moving from 
left to right and top to bottom, like the lines that form an image 
on a cathode ray tube or CRT television. This movement creates a grid 
of points of light, called pixels, that together form the complete image.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:read?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:read</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:read?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

READ ✓

SYNTAX
   READ var
PURPOSE

The READ is used for reading constant values from DATA lines into the
given variables. This command is able to read more constants at once with a 
variable list separated by commas.

If using the wrong type of variable (for example read a character string into a
numerical variable like float or integer), the variable will be untouched.
Such behavior can be prevented by generally using a variable of the same type
like the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:read_end?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:read_end</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:read_end?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

READ END ✓

SYNTAX
   = READ END
PURPOSE

The READ END function allows you to know if you have reached the last value
to read with the READ command. If the function returns true, this means that 
the next READ command will ignore the read.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ready?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ready</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ready?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

READY

SYNTAX
   = READY()
PURPOSE

The READY function lets you know if there is a byte available on DOJO 
connection.

EXAMPLE
  IF READY( ) THEN
     PRINT &quot;DOJO data is available&quot;
  ENDIF
ABBREVIATION
 R#y
AVAILABLE ON

	*  Commodore 64</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rec?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rec</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rec?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

REC ✓

SYNTAX
   REC x, y, sa, sb, fq
PURPOSE

REC draws a rectangle. The location of the top left corner is determined by the first two 
parameters x and y, the width and height of the rectangle by parameters three and four 
(</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:receive?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:receive</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:receive?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

RECEIVE

SYNTAX
   = RECEIVE()
PURPOSE

The RECEIVE function waits for a character from DOJO connection.

EXAMPLE
  IF READY( ) THEN
     PRINT RECEIVE()
  ENDIF
ABBREVIATION
 Rcv
AVAILABLE ON

	*  Commodore 64
	*  Commodore 64+REU</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rect?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rect</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rect?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:red?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:red</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:red?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

RED ✓

SYNTAX
   = RED
PURPOSE

This keyword represents the color red. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (255,0,0). However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rem?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rem</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rem?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

REM

SYNTAX
   REM [comment]
   ' [comment]
PURPOSE

In BASIC, the REM keyword (also abbreviated by the single quotation character (')) 
is used to insert comments into code. A comment is a note or explanation that is added 
to code to make it easier for the developer to understand, as well as for other
programmers who may read it in the future.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:remember?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:remember</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:remember?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

REMEMBER ✓

SYNTAX
   REMEMBER
PURPOSE

The REMEMBER command restores the cursor position previously stored by 
the MEMORIZE command. The REMEMBER command can be executed multiple
times, and this will restore the cursor position to the last stored position. 
Note that the stored position refers to the current console. If there are no 
consoles defined, one equal to full screen will be defined.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:repeat...until?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:repeat...until</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:repeat...until?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

REPEAT...UNTIL ✓

SYNTAX
   REPEAT
       ...
   UNTIL expression
PURPOSE

The 'REPEAT...UNTIL command will repeatedly execute a block of code until a certain 
condition is met. In essence, it creates a loop that continues to repeat until a specific 
exit condition is met.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:repeat_..._until?rev=1619690891&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-29T12:08:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:repeat_..._until</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:repeat_..._until?rev=1619690891&amp;do=diff</link>
        <description>ugBASIC User Manual

REPEAT ... UNTIL

SYNTAX

	*  REPEAT ... UNTIL [expression]

PURPOSE

Implement an conditional loop. 

EXAMPLE
  REPEAT ... UNTIL
AVAILABLE ON

	*  Commodore 64
	*  ZX Spectrum 48K

SEE ALSO</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:reset?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:reset</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:reset?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:resolution?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:resolution</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:resolution?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RESOLUTION

SYNTAX
   RESOLUTION width, height
PURPOSE

This keyword allows to have a “virtual” resolution. Even when you select a graphical mode with only 
160 pixel x 200 pixel, the graphical instructions execute the same thing, the only difference is that 
the pixels will be proportional to virtual resolution. The choice to add this instruction is guided 
by mathematical ratio, since</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:respawn?rev=1729679392&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T12:29:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:respawn</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:respawn?rev=1729679392&amp;do=diff</link>
        <description>ugBASIC User Manual

RESPAWN

SYNTAX
   RESPAWN [name][{[parameter],{[parameter],....}}]
PURPOSE

This keyword will restart a (finished) (parallel) procedure. 

EXAMPLE
  RESPAWN factorialHandle(42)
ABBREVIATION
 Rn
AVAILABLE ON

	*  
	*  Atari (400/800)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:restore?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:restore</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:restore?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RESTORE ✓

SYNTAX
   RESTORE label
PURPOSE

The RESTORE command is used to reset the data read pointer to the beginning 
of a list of DATA. Imagine having a cassette tape with numbers on it, and 
you want to read those numbers one at a time. When you use</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:resume?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:resume</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:resume?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:return?rev=1729680266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T12:44:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:return</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:return?rev=1729680266&amp;do=diff</link>
        <description>ugBASIC User Manual

RETURN ✓

SYNTAX
   RETURN
PURPOSE

Return from unconditional jump. The execution will continue to the instruction next
to the caller's one.

EXAMPLE
  RETURN
See also the following example files:

	*  control_returning_01.bas
	*  control_returning_02.bas

ABBREVIATION
 Rt
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rgb?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rgb</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rgb?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RGB ✓

SYNTAX
   = RGB( red, green, blue )
PURPOSE

The RGB function allows you to obtain the equivalent value of a color, given its red, green and blue 
components. The value of this function, where it is supported by the target, can be used in place of a 
nominal color. Where it is not defined, it always returns a value of zero, which may (or may not) correspond 
to a valid color.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:right?rev=1729680266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T12:44:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:right</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:right?rev=1729680266&amp;do=diff</link>
        <description>ugBASIC User Manual

RIGHT

SYNTAX
   RIGHT( [text], [position] ) = [expression]
PURPOSE

EXAMPLE
  RIGHT( &quot;TEST&quot;, 2 ) = &quot;AM&quot;
ABBREVIATION
 Rg
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rightb?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rightb</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rightb?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rightw?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rightw</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rightw?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rnd?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rnd</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rnd?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RND ✓

SYNTAX
   = RND(max)
PURPOSE

The RND function generates integers at random, between zero and any number specified
in brackets (minus one). If your specified number is greater than zero, random numbers will be generated 
up to that maximum number (minus one).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rot?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rot</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rot?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

ROT ✓

SYNTAX
   ROT angle[, step]
PURPOSE

The ROT command is used to set the starting angle and step for subsequent 
drawing operations with the DRAW command.

The angle corresponds to the quadrant of interest, starting towards north (0) with an angle 
of 0 degree, and then proceeding clockwise: 1 = 45 degrees, 2 = 90 degrees and so on.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:rotate_vector?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:rotate_vector</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:rotate_vector?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:run?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:run</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:run?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RUN

SYNTAX
   RUN
PURPOSE

the RUN command restarts the execution of a program. When the program encounter this
command, the computer begins executing from the very firstr instructions in your program, 
one after the other.

EXAMPLE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:run_parallel?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:run_parallel</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:run_parallel?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

RUN PARALLEL

SYNTAX
   RUN PARALLEL
PURPOSE

This keyword will execute all previously invoked procedures. 

EXAMPLE
  RUN PARALLEL
ABBREVIATION
 RuPr
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:running?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:running</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:running?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:scale?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:scale</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:scale?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:scancode?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:scancode</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:scancode?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCANCODE

SYNTAX
   = SCANCODE
PURPOSE

The SCANCODE' (or SCAN CODE) capture a single character typed by the user 
without having to press enter. In other words, the program is “listening” 
to the keyboard and, as soon as a key is pressed,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen?rev=1729685814&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T14:16:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen?rev=1729685814&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN ✓

SYNTAX
   SCREEN #mode
   SCREEN #type, #colorset
   ... = SCREEN
PURPOSE

The SCREEN command allows to select a specific hardware-dependent
screen mode. Every target has a specific list of modes. Normally,
these modes are selected by describing resolution and color depth.
This is another way to select graphical modes.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_columns?rev=1735330773&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-27T21:19:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_columns</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_columns?rev=1735330773&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN COLUMNS

SYNTAX

PURPOSE

ABBREVIATION
 ScCms
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_height?rev=1715017589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-06T19:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_height?rev=1715017589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN HEIGHT ✓

SYNTAX
   = SCREEN HEIGHT
PURPOSE

This function allows you to obtain the height of the current screen, expressed in pixels. 
The height depends on the currently selected graphics mode, and can change at runtime.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_horizontal_scroll?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_horizontal_scroll</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_horizontal_scroll?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN HORIZONTAL SCROLL

SYNTAX
   SCREEN HORIZONTAL SCROLL offset
PURPOSE

The SCREEN HORIZONTAL SCROLL command is designed to scroll the screen 
horizontally, but its interpretation and the meaning of the parameter supplied 
vary significantly depending on the hardware platform on which the program is 
running. This peculiarity makes it essential to understand the specifics of each 
system to correctly use this command and achieve the desired effect.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_off?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_off</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_off?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN OFF

SYNTAX
   SCREEN OFF
PURPOSE

Turn off the screen.

EXAMPLE
  SCREEN OFF
ABBREVIATION
 ScOf
AVAILABLE ON

	*  Commodore 128 (MOS 8502)
	*  Commodore 64
	*  Commodore VIC-20
	*  Commodore 64+REU
	*  Commodore PLUS/4
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_on?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_on</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_on?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN ON

SYNTAX
   SCREEN ON
PURPOSE

Turn on the screen.

EXAMPLE
  SCREEN ON
ABBREVIATION
 ScON
AVAILABLE ON

	*  Commodore 128 (MOS 8502)
	*  Commodore 64
	*  Commodore VIC-20
	*  Commodore 64+REU
	*  Commodore PLUS/4
	*  Commodore C16</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_page?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_page</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_page?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN PAGE

SYNTAX
   = SCREEN PAGE
PURPOSE

The semantics of this keyword is different, depending on whether double buffering 
is enabled or not. If double buffering is enabled, the SCREEN PAGE function
allows to know which page the program is on. There are two pages, page 0 (</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_rows?rev=1729680266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T12:44:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_rows</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_rows?rev=1729680266&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN ROWS

SYNTAX
   SCREEN ROWS [integer]
   SCREEN ROWS [expression]
PURPOSE

Changes the number of lines that can be displayed. Depending 
on the hardware, the effect can be different as different 
are the acceptable values.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_swap?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_swap</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_swap?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN SWAP

SYNTAX

PURPOSE

ABBREVIATION
 ScSwp
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_tiles_height?rev=1715017589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-06T19:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_tiles_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_tiles_height?rev=1715017589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN TILES HEIGHT

SYNTAX
   = SCREEN TILES HEIGHT
PURPOSE

This function allows you to obtain the height of the current screen, expressed in tiles. 
A tile is a box of pixels that can be addressed elementary by a specific screen code.
Normally, it is used in</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_tiles_width?rev=1715017589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-06T19:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_tiles_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_tiles_width?rev=1715017589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN TILES WIDTH

SYNTAX
   = SCREEN TILES WIDTH
PURPOSE

This function allows you to obtain the width of the current screen, expressed in tiles. 
A tile is a box of pixels that can be addressed elementary by a specific screen code.
Normally, it is used in</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_vertical_scroll?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_vertical_scroll</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_vertical_scroll?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN VERTICAL SCROLL

SYNTAX
   SCREEN VERTICAL SCROLL [integer]
   SCREEN VERTICAL SCROLL [expression]
PURPOSE

Performs an hardware scroll of the screen. The scroll is always in 
the direction from bottom to up, so with a displacement of 0 the 
screen is exactly as it would be without scrolling while with the 
value 7 you would have a scroll of 7 pixels upwards.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_width?rev=1715017589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-06T19:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:screen_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:screen_width?rev=1715017589&amp;do=diff</link>
        <description>ugBASIC User Manual

SCREEN WIDTH ✓

SYNTAX
   = SCREEN WIDTH
PURPOSE

This function allows you to obtain the width of the current screen, expressed in pixels. 
The width depends on the currently selected graphics mode, and can change at runtime.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:select_case...case...case_else...endselect?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:select_case...case...case_else...endselect</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:select_case...case...case_else...endselect?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SELECT CASE...CASE...CASE ELSE...ENDSELECT ✓

SYNTAX
   SELECT CASE expression
      CASE value1:
         ...
      CASE value2:
         ...
      ...
      [ CASE ELSE ]
         ...
   ENDSELECT
PURPOSE

The SELECT CASE command is part of the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:send?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:send</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:send?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

SEND

SYNTAX
   SEND data
PURPOSE

The SEND function send a character to DOJO connection.

EXAMPLE
     SEND &quot;a&quot;
ABBREVIATION
 Sen
AVAILABLE ON

	*  Commodore 64
	*  Commodore 64+REU
	*  TRS-80 Color Computer 3
	*  TRS-80 Color Computer</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:separating_instructions?rev=1729881005&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T20:30:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:separating_instructions</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:separating_instructions?rev=1729881005&amp;do=diff</link>
        <description>ugBASIC User Manual

separating instructions

SYNTAX
   instruction1 : instruction2 : ...
PURPOSE

In ugBASIC, the instructions are separated using a colon character (:). Since this character
is used also as a suffix for a label, you have to use the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sequence_load?rev=1729877163&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-25T19:26:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sequence_load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sequence_load?rev=1729877163&amp;do=diff</link>
        <description>ugBASIC User Manual

SEQUENCE LOAD

SYNTAX

PURPOSE

ABBREVIATION
 SeqLd
ALIAS FOR

LOAD SEQUENCE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_error?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:serial_error</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_error?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_read?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:serial_read</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_read?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_write?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:serial_write</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:serial_write?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:set_line?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:set_line</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:set_line?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SET LINE

SYNTAX
   SET LINE pattern
PURPOSE

The SET LINE statement changes the pattern used to draw lines.

EXAMPLE
  SET LINE %1010101010101010
ABBREVIATION
 SeLn
AVAILABLE ON

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:set_tab?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:set_tab</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:set_tab?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SET TAB ✓

SYNTAX
   SET TAB expression
PURPOSE

The SET TAB command specifies the number of characters 
that the text cursor will move to the right when the next 
TAB$ is printed.

EXAMPLE
  SET TAB 10
See also the following example files:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sgn?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sgn</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sgn?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SGN ✓

SYNTAX
   = SGN(number)
PURPOSE

The SGN function is a very simple but useful mathematical function. Its main 
function is to determine the sign of a number. In other words, SGN tells you 
whether a number is positive, negative, or zero. So, it returns 1 if number 
is positive, 0 if</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:shared?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:shared</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:shared?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SHARED ✓

SYNTAX
   SHARED var1[, var2[, ...] ]
   SHARED &quot;string1&quot;[, &quot;string2&quot;[, ...] ]
PURPOSE

This keyword sets up a list of variables of a procedure that can be accessed from absolutely 
anywhere in your program.

There is a facility of using strings in procedure definitions. 
As with disc names, the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:shared_const?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:shared_const</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:shared_const?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SHARED CONST ✓

SYNTAX
   [POSITIVE] SHARED CONST identifier = value
   SHARED CONST identifier IN (min,max) = value
   SHARED CONST identifier IN &quot;[&quot; min,max) = value
   SHARED CONST identifier IN (min,max &quot;]&quot; = value
   SHARED CONST identifier IN &quot;[&quot; min,max &quot;]&quot;&quot; = value</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:shoot?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:shoot</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:shoot?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SHOOT

SYNTAX
   SHOOT {ON #[channel]}
PURPOSE

This command makes the computer emit an shoot-like sound. It is possible to indicate 
on which voices the system should emit the sound. If omitted, it will be issued on all.

EXAMPLE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sin?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sin</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sin?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SIN ✓

SYNTAX
   = SIN(angle)
PURPOSE

This function will calculate the sine value of an angle. The sine of an acute
angle are defined in the context of a right triangle: for the specified angle, 
its sine is the ratio of the length of the side that is opposite that angle to 
the length of the longest side of the triangle (the hypotenuse), and the cosine
is the ratio of the length of the adjacent leg to that of the hypotenuse.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:size?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:size</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:size?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SIZE ✓

SYNTAX
   ... = SIZE(variable)
PURPOSE

To get the size of a variable you can use the SIZE command. This command 
will return, in bytes, the size of the memory area used by that
variable. It is possible to apply this  command to any type of static data, 
such as</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sleep?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sleep</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sleep?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:slice_image?rev=1735329442&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-27T20:57:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:slice_image</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:slice_image?rev=1735329442&amp;do=diff</link>
        <description>ugBASIC User Manual

SLICE IMAGE

SYNTAX
   SLICE IMAGE [image] AT [x],[y]
PURPOSE

EXAMPLE
  SLICE IMAGE airplane TO plane
ABBREVIATION
 SlCIm
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)
	*  Commodore 128 (Zilog Z80)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sound?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sound</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sound?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SOUND

SYNTAX
   SOUND f1[,d1][;f1[,d2][;...]] [ON channels]
   SOUND #[freq] {, #[duration] {ON #[channels]}}
   SOUND [freq] {, [duration] {ON [channels]}}
PURPOSE

The SOUND command add a touch of interactivity and liveliness to your programs. Simply put, 
the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sound_off?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sound_off</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sound_off?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SOUND OFF

SYNTAX
   SOUND OFF {ON [channels]}
   SOUND OFF {ON #channels}
PURPOSE

The SOUND OFF command can be used to stop play a sound on a channel or on all channels.

This command allows you to stop the play on all channels or specific channels.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:space?rev=1729710818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T21:13:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:space</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:space?rev=1729710818&amp;do=diff</link>
        <description>ugBASIC User Manual

SPACE ✓

SYNTAX
   = SPACE( [number] )
PURPOSE

This function can be used to create 
a new string filled with the required number of spaces.

EXAMPLE
  x = SPACE( 42 )
See also the following example files:

	*  strings_space_01.bas

ABBREVIATION
 Sp</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:spawn?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:spawn</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:spawn?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SPAWN

SYNTAX
   [HALTED] SPAWN [identifier]
PURPOSE

This keyword will invoke a (parallel) procedure. The procedure can be
invoked in an “halted” state using the keyword HALTED, so that a RESPAWN
command must be issued in order to</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:spc?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:spc</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:spc?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SPC ✓

SYNTAX
   PRINT SPC(spaces)
PURPOSE

The function SPC can be used to set a number of spaces, which are printed
onto screen. SPC can be used several times in a sentence.

Also note that SPC will not overwrite and erase things already printed 
on screen, so</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:spen?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:spen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:spen?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite?rev=1729710818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T21:13:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite?rev=1729710818&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE

SYNTAX
   SPRITE index command1 [command2 [command3 ...]]
   SPRITE command1 [command2 [command3 ...]]
PURPOSE

The SPRITE instructions can be used to prefix one or more commands on specific 
hardware sprites. Commands can be specified, one after the other, after specifying which 
sprite to refer to. If the sprite number is omitted, it is assumed that the 
operations will be performed on all hardware sprites.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_at?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_at?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE AT

SYNTAX
   SPRITE # [integer] AT ( # [integer], # [integer] )
   SPRITE [expression] AT ( [expression], [expression] )
PURPOSE

Position a sprite to the (x,y) on the screen.

EXAMPLE
  SPRITE #1 AT ( #42, #42 )
  SPRITE starship AT ( starshipX, starshipY )</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_color?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_color</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_color?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE COLOR

SYNTAX
   SPRITE # [integer] COLOR # [integer]
   SPRITE [expression] COLOR [expression]
PURPOSE

Change specific color for a given sprite.

EXAMPLE
  SPRITE #1 COLOR #2
  SPRITE #1 COLOR YELLOW
ABBREVIATION
 Spr Cr</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_compress?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_compress</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_compress?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE COMPRESS

SYNTAX
   SPRITE # [integer] COMPRESS HORIZONTAL
   SPRITE [expression] COMPRESS HORIZONTAL
   SPRITE # [integer] COMPRESS VERTICAL
   SPRITE [expression] COMPRESS VERTICAL
PURPOSE

Compress a given sprite, vertically or horizontally,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_data_from?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_data_from</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_data_from?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE DATA FROM

SYNTAX
   SPRITE # [integer] DATA FROM # [integer]
   SPRITE [expression] DATA FROM [expression]
PURPOSE

Set the starting address of the sprite's graphical data.

EXAMPLE
  SPRITE #$1 DATA FROM #$0800
  SPRITE starship DATA FROM starshipGraphicalData</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_disable?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_disable</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_disable?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE DISABLE

SYNTAX
   SPRITE #number DISABLE
   SPRITE DISABLE
   SPRITE sprite DISABLE
PURPOSE

Disable the sprite (by its number). If the number is omitted, all sprites
will be disable.

EXAMPLE
  SPRITE #1 DISABLE
  SPRITE starship DISABLE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_enable?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_enable</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_enable?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE ENABLE

SYNTAX
   SPRITE # [integer] ENABLE
   SPRITE [expression] ENABLE
PURPOSE

Enable the sprite given (by its number). If the number is omitted, 
all sprites will be enabled.

EXAMPLE
  SPRITE #1 ENABLE
  SPRITE starship ENABLE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_expand?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_expand</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_expand?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE EXPAND

SYNTAX
   SPRITE # [integer] EXPAND VERTICAL
   SPRITE [expression] EXPAND VERTICAL
   SPRITE # [integer] EXPAND HORIZONTAL
   SPRITE [expression] EXPAND HORIZONTAL
PURPOSE

Expand a given sprite, vertically or horizontally,</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_max_x?rev=1729710818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T21:13:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_max_x</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_max_x?rev=1729710818&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE MAX X

SYNTAX
   = SPRITE MAX X
PURPOSE

This constant allows us to know which is the largest abscissa 
(x) that can assume the horizontal position of a sprite. It 
may or may not coincide with the horizontal resolution of the 
screen, in the sense that some graphics chipsets can move 
sprites far beyond what is representable (example: border 
management on the VIC-II).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_max_y?rev=1729710818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T21:13:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_max_y</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_max_y?rev=1729710818&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE MAX Y

SYNTAX
   = SPRITE MAX Y
PURPOSE

This constant allows us to know which is the largest ordinate
(y) that can assume the vertical position of a sprite. It 
may or may not coincide with the horizontal resolution of the 
screen, in the sense that some graphics chipsets can move 
sprites far beyond what is representable (example: border 
management on the VIC-II).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_min_x?rev=1729710818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T21:13:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_min_x</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_min_x?rev=1729710818&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE MIN X

SYNTAX
   = SPRITE MIN X
PURPOSE

This constant allows us to know which is the smallest abscissa 
(x) that can assume the horizontal position of a sprite. It 
may or may not coincide with zero of the 
screen, in the sense that some graphics chipsets can move 
sprites far beyond what is representable (example: border 
management on the VIC-II).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_min_y?rev=1729710818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T21:13:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_min_y</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_min_y?rev=1729710818&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE MIN Y

SYNTAX
   = SPRITE MIN Y
PURPOSE

This constant allows us to know which is the smallest ordinate 
(y) that can assume the vertical position of a sprite. It 
may or may not coincide with zero of the 
screen, in the sense that some graphics chipsets can move 
sprites far beyond what is representable (example: border 
management on the VIC-II).</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_monocolor?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_monocolor</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_monocolor?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE MONOCOLOR

SYNTAX
   SPRITE # [integer] MONOCOLOR
   SPRITE [expression] MONOCOLOR
PURPOSE

Disable multicolor for sprite.

EXAMPLE
  SPRITE #1 MONOCOLOR
  SPRITE starship MONOCOLOR
ABBREVIATION
 Spr Mc
AVAILABLE ON

	*  Olivetti Prodest PC128</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_multicolor?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_multicolor</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_multicolor?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE MULTICOLOR

SYNTAX
   SPRITE # [integer] MULTICOLOR
   SPRITE [expression] MULTICOLOR
PURPOSE

Enable multicolor for sprite.

EXAMPLE
  SPRITE #1 MULTICOLOR
  SPRITE starship MULTICOLOR
ABBREVIATION
 Spr Mcs
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_off?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_off</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_off?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE OFF

SYNTAX
   SPRITE #number OFF
   SPRITE OFF
   SPRITE sprite OFF
PURPOSE

Disable the sprite, alias di SPRITE DISABLE.

EXAMPLE
  SPRITE #1 OFF
  SPRITE starship OFF
ABBREVIATION
 Spr Of
AVAILABLE ON

	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_on?rev=1727626961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-29T18:22:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sprite_on</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sprite_on?rev=1727626961&amp;do=diff</link>
        <description>ugBASIC User Manual

SPRITE ON

SYNTAX
   SPRITE # [integer] ON
   SPRITE [expression] ON
PURPOSE

Enable the sprite, alias of SPRITE ENABLE.

EXAMPLE
  SPRITE #1 ON
  SPRITE starship ON
ABBREVIATION
 Spr ON
AVAILABLE ON

	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sqr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sqr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sqr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SQR ✓

SYNTAX
   = SQR(expression)
PURPOSE

The SQR command (short for “square root”) is a mathematical function that
is used to calculate the square root of a number. In other words, given a number
x, the command SQR(x) returns the number that, when multiplied by itself, 
gives the result</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:stop_animation?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:stop_animation</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:stop_animation?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:stop_movement?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:stop_movement</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:stop_movement?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:storage...end_storage?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:storage...end_storage</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:storage...end_storage?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

STORAGE...END STORAGE ✓

SYNTAX
   STORAGE name [AS filename] .. END STORAGE
   STORAGE name [AS filename] .. END STORAGE
PURPOSE

EXAMPLE
  BEGIN STORAGE &quot;dischetto&quot;
  ...
  ENDSTORAGE
See also the following example files:

	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:storage...endstorage?rev=1731671854&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-15T12:57:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:storage...endstorage</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:storage...endstorage?rev=1731671854&amp;do=diff</link>
        <description>ugBASIC User Manual

STORAGE...ENDSTORAGE

SYNTAX

PURPOSE

To conclude the definition of a mass memory, the ENDSTORAGE command can be used.

ABBREVIATION
 StrEns
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:store?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:store</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:store?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:str?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:str</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:str?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

STR ✓

SYNTAX
   = STR(number)
PURPOSE

This function converts numbers into strings. This can be used to overcome some 
limitations posed by functions which does not accept numbers as parameters, 
but will work happily with parameters in the form of strings. 
Also, when string adding is performed, all operand must be strings,
so this function is really useful.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:string?rev=1696876214&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-09T20:30:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:string</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:string?rev=1696876214&amp;do=diff</link>
        <description>ugBASIC User Manual

STRING ✓

SYNTAX
   = STRING( text, repetitions )
PURPOSE

This function can be used to create  a new string filled with the 
required number of copies of the first character from an existing 
string.

EXAMPLE
  x = STRING( &quot;A&quot;, 42 )</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:strip_load?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:strip_load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:strip_load?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

STRIP LOAD

SYNTAX

PURPOSE

ABBREVIATION
 StiLd
ALIAS FOR

LOAD SEQUENCE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:strptr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:strptr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:strptr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

STRPTR

SYNTAX
   = STRPTR(var)
PURPOSE

This function allows you to retrieves the address 
in memory where the actual text of a given string is located.

EXAMPLE
  address = STRPTR(x)
ABBREVIATION
 Spt
AVAILABLE ON

ANY PROBLEM?</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:success?rev=1739558218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-14T19:36:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:success</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:success?rev=1739558218&amp;do=diff</link>
        <description>ugBASIC User Manual

SUCCESS

SYNTAX
   = SUCCESS( )
PURPOSE

The SUCCESS function will return TRUE if the last DOJO command
has been successfully executed.

EXAMPLE
  IF SUCCESS( ) THEN PRINT &quot;ok!&quot;
ABBREVIATION
 Su
AVAILABLE ON

	*  Commodore 64
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sum?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sum</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sum?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:suspend?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:suspend</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:suspend?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:swap?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:swap</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:swap?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SWAP

SYNTAX
   SWAP var1, var2
PURPOSE

The SWAP command is used to swap the values of two variables. In practice, 
the contents of the first variable are assigned to the second and vice versa, 
in a single operation.

The SWAP command makes code more concise and readable by avoiding the use 
of a temporary variable for swapping. Since swapping elements is a fundamental 
operation in many sorting algorithms, such as bubble sort, it is important
that it is an efficient opera…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:sys?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:sys</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:sys?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

SYS ✓

SYNTAX
   SYS address _
        [ WITH REG(r1)=v1[, REG(r2)=v2 [, ... ] ] ] _
        [ RETURN x1=REG(r1)[, x2=REG(r2)[, ... ] ] ] _
        [ ON target1[, target2[, ... ] ] ]
PURPOSE

This command allows you to start the execution of a subroutine, written directly 
in machine language, starting from the indicated address. It must be noted that 
this jump is intended as a return: any assembly instruction that returns from 
execution will continue the execution of the …</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tab?rev=1729185713&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-17T19:21:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tab</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tab?rev=1729185713&amp;do=diff</link>
        <description>ugBASIC User Manual

TAB ✓

SYNTAX
   = TAB$
PURPOSE

The TAB$ function returns a special control character called TAB, 
which carries the ASCII code of 9. When this character is printed, 
the text cursor is automatically moved to the next tabulated column 
setting (tab) to the right. The default setting for this is four
characters, which can be changed using</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tabdollar?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tabdollar</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tabdollar?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TAB$ ✓

SYNTAX
   = TAB$
PURPOSE

The TAB$ function returns a special control character called TAB, 
which carries the ASCII code of 9. When this character is printed, 
the text cursor is automatically moved to the next tabulated column 
setting (tab) to the right. The default setting for this is four
characters, which can be changed using</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tan?rev=1729713206&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T21:53:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tan</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tan?rev=1729713206&amp;do=diff</link>
        <description>ugBASIC User Manual

TAN ✓

SYNTAX
   = TAN([angle])
PURPOSE

This function will calculate the tangent value of an angle. It is the ratio 
of the opposite side and the adjacent side of the angle in consideration in 
a right-angled triangle.

EXAMPLE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:text?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:text</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:text?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TEXT

SYNTAX
   TEXT [AT] x, y, string
PURPOSE

The TEXT command allows you to write text at a certain position on the screen.

ABBREVIATION
 Tx
SEE ALSO

LOCATE PRINT

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:text_disable?rev=1622326660&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-30T00:17:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:text_disable</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:text_disable?rev=1622326660&amp;do=diff</link>
        <description>ugBASIC User Manual

TEXT DISABLE

SYNTAX
   TEXT ENABLE
PURPOSE

Disable the text mode.

EXAMPLE
  TEXT ENABLE
AVAILABLE ON

	*  Commodore 64

POWERED BY

index</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:text_enable?rev=1622326660&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-30T00:17:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:text_enable</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:text_enable?rev=1622326660&amp;do=diff</link>
        <description>ugBASIC User Manual

TEXT ENABLE

SYNTAX
   TEXT ENABLE
PURPOSE

Enable the text mode.

EXAMPLE
  TEXT ENABLE
AVAILABLE ON

	*  Commodore 64

POWERED BY

index</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:textaddress?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:textaddress</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:textaddress?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TEXTADDRESS

SYNTAX
   = TEXTADDRESS
   TEXTADDRESS = ...
PURPOSE

This is a variable (16 bit) that contains the actual address of the textmap,
the video memory containing the various chars that makes a text on the screen
in text mode. It could refer to a  certain position in RAM memory or in a separate
video memory. It  depends on the computer you are programming.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:textmap_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:textmap_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:textmap_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TEXTMAP AT

SYNTAX
   TEXTMAP AT [expression]
PURPOSE

EXAMPLE
  TEXTMAP AT newTextmapAddress
ABBREVIATION
 TxmAt
AVAILABLE ON

	*  Dragon 32 (6809)
	*  Thomson MO5
	*  Commodore 64
	*  Commodore VIC-20
	*  Dragon 32 (6309)
	*  Dragon 64 (6809)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ti?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ti</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ti?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TI

SYNTAX

PURPOSE

ALIAS FOR

TIMER

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY

index</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tick_per_second?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tick_per_second</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tick_per_second?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TICK PER SECOND

SYNTAX
   = TICK PER SECOND
PURPOSE

This constant holds the number of ticks that occur each second.

ABBREVIATION
 TkPexSec
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ticks_per_second?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ticks_per_second</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ticks_per_second?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TICKS PER SECOND ✓

SYNTAX
   = TICKS PER SECOND
PURPOSE

The TICKS PER SECOND returns the number of ticks per second that can 
be detected using the TIMER keyword. Note that this value is calculated 
dynamically at the start of the program, and is therefore no longer modified. 
However, because there may be versions of the same hardware running at 
different frequencies, the value cannot be used as a compile-time constant.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE AT

SYNTAX
   = TILE AT([x],[y])
PURPOSE

This function allows you to know which is the tile drawn at a certain position
on the tilemap. Since it is possible to draw both single TILE and TILES, 
the information on the drawn tile is not, automatically, the identifier of a 
TILES but it is the single tile of which it is formed. To know if the tile belongs to a
group of tiles it is necessary to use the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_belong_to?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_belong_to</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_belong_to?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE BELONG TO

SYNTAX
   = TILE tile BELONG TO tiles
PURPOSE

The TILE ... BELONG TO ...  command allows you to check if a certain TILE belongs 
to the set of tiles that make up a TILES. In general, TILES are made up of multiple 
simple tiles and, when drawn, actually occupy multiple tiles. This command allows you to 
make distinctions.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_class?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_class</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_class?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE CLASS ✓

SYNTAX
   = TILE CLASS(tileset, id)
PURPOSE

This function allows you to know the class to which a certain tile belongs. 
Note that this information is available only at the time of compilation: 
therefore, the parameter with the tile identifier must be a constant.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_first?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_first</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_first?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE FIRST

SYNTAX
   = TILE FIRST([tiles])
PURPOSE

This function allows you to obtain the first TILE of a given
set of TILES

EXAMPLE
  firstTile = TILE FIRST( LOAD TILES(&quot;starship.png&quot;) )
ABBREVIATION
 TlFST
AVAILABLE ON

	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_height?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_height?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE HEIGHT

SYNTAX
   = TILE HEIGHT([tile])
   = TILE HEIGHT([tileset])
PURPOSE

This function allows you to obtain the height of a given TILE or a given
set of TILES. The width is expressed in tiles. If the parameter is a
``TILESET``, this is the height of a single tile.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_id?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_id</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_id?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE ID ✓

SYNTAX
   = TILE ID(tileset, name)
PURPOSE

This function allows you retrieve the (numeric) identification, given the
symbolic name of the tile. Note that this information is available only 
at the time of compilation: therefore, the parameter with the tile 
identifier must be a constant.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_load?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_load?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE LOAD

SYNTAX

PURPOSE

ABBREVIATION
 TlLd
ALIAS FOR

LOAD TILE

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_probability?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_probability</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_probability?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE PROBABILITY ✓

SYNTAX
   = TILE PROBABILITY( tileset, id )
PURPOSE

This function allows you to know the probability to which a certain tile will be
produced. Note that this information is available only at the time of compilation: 
therefore, the parameter with the tile identifier must be a constant.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_width?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tile_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tile_width?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILE WIDTH

SYNTAX
   = TILE WIDTH([tile])
   = TILE WIDTH([tileset])
PURPOSE

This function allows you to obtain the width of a given TILE or a given
set of TILES. The width is expressed in tiles. If the parameter is a
``TILESET``, this is the width of a single tile.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap?rev=1729714334&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T22:12:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tilemap</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap?rev=1729714334&amp;do=diff</link>
        <description>ugBASIC User Manual

TILEMAP ✓

SYNTAX
   ... = TILEMAP
PURPOSE

This is the bitmask used to select the TILE mode.

EXAMPLE
  IF SCREEN IS TILEMAP THEN: PRINT &quot;tilemap is native!&quot;: ENDIF
See also the following example files:

	*  screens_bitmap_01.bas

ABBREVIATION
 Tm</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tilemap_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILEMAP AT

SYNTAX
   = TILEMAP [LAYER layer] map AT([x],[y])
PURPOSE

This function allows to know which is the tile present in a tilemap, 
given the coordinates of the tile itself. If the tilemap has more than
one layer, the first layer will be returned. If you need to retrieve the
tile of a different level, you have to indicate the layer with the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_disable?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tilemap_disable</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_disable?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILEMAP DISABLE

SYNTAX
   TILEMAP DISABLE
PURPOSE

Disable the tilemap mode.

EXAMPLE
  TILEMAP DISABLE
ABBREVIATION
 TmDx
AVAILABLE ON

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_enable?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tilemap_enable</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_enable?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILEMAP ENABLE

SYNTAX
   TILEMAP ENABLE
PURPOSE

Enable the tilemap mode.

EXAMPLE
  TILEMAP ENABLE
ABBREVIATION
 TmEn
AVAILABLE ON

	*  
	*  Commodore 128 (Zilog Z80)
	*  Commodore 128 (MOS 8502)
	*  SEGA SG-1000
	*  ZX Spectrum 48</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_height?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tilemap_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_height?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILEMAP HEIGHT

SYNTAX
   = TILEMAP HEIGHT(tilemap)
PURPOSE

This function allows you to obtain the height of a given TILEMAP. The height
is expressed in tiles

EXAMPLE
  starshipHeight = TILEMAP HEIGHT( tilemap )
ABBREVIATION
 TmHg</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_index?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tilemap_index</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_index?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILEMAP INDEX

SYNTAX
   = TILEMAP INDEX( column, row [, layer] )
PURPOSE

The TILEMAP INDEX allows you to know the identifier of the tile located 
in correspondence with the given set of coordinates. In particular, given a 
tile map as parameter, you can know what the tile is at the x, y position and, 
if present and given, at the given layer.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_tile_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tilemap_tile_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_tile_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILEMAP TILE AT

SYNTAX
   = TILEMAP TILE AT( column, row [, layer] )
PURPOSE

EXAMPLE
  index = TILEMAP TILE AT( 0, 0 )
  index = TILEMAP TILE AT( 0, 0, 1 )
ABBREVIATION
 TmTlAt
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_width?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tilemap_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tilemap_width?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILEMAP WIDTH

SYNTAX
   = TILEMAP WIDTH(tilemap)
PURPOSE

This function allows you to obtain the width of a given TILEMAP. The width
is expressed in tiles

EXAMPLE
  w = TILEMAP WIDTH( tilemap )
ABBREVIATION
 TmWd
AVAILABLE ON</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_at?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tiles_at</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_at?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILES AT

SYNTAX
   TILES AT # [integer]
   TILES AT [expression]
PURPOSE

Set the starting address, in memory, for the tiles (for textual mode).
The input parameter is decoded and declined according to the hardware 
limits. So it is not said that exactly the given address is set.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_height?rev=1715017589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-06T19:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tiles_height</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_height?rev=1715017589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILES HEIGHT

SYNTAX

PURPOSE

Alias for SCREEN TILES HEIGHT.

ABBREVIATION
 Tls Hg
SEE ALSO

SCREEN TILES HEIGHT

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_load?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tiles_load</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_load?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILES LOAD

SYNTAX

PURPOSE

ABBREVIATION
 TlsLd
ALIAS FOR

LOAD TILES FONT LOAD

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_width?rev=1715017589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-06T19:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tiles_width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tiles_width?rev=1715017589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILES WIDTH

SYNTAX

PURPOSE

Alias for SCREEN TILES WIDTH.

ABBREVIATION
 Tls Wd
SEE ALSO

SCREEN TILES WIDTH

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:tileset_of?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:tileset_of</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:tileset_of?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TILESET OF

SYNTAX
   = TILESET OF [tilemap]
PURPOSE

This command allows you to obtain the TILESET of a given TILEMAP.

EXAMPLE
  ts = TILESET OF map
ABBREVIATION
 TseOF
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:timer?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:timer</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:timer?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

TIMER ✓

SYNTAX
   = TIMER
   TIMER = [50th/60th seconds]
PURPOSE

This variable represents a “timer”, which is the number of sixtieths / fiftieths 
of a second that have passed since the machine was turned on. This variable, 
when used as a value, measures the elapsed time. However, it can be set to an 
arbitrary value, such as 0, to measure a defined period of time.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:travel?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:travel</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:travel?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:travel_path?rev=1733301222&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-04T09:33:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:travel_path</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:travel_path?rev=1733301222&amp;do=diff</link>
        <description>ugBASIC User Manual

TRAVEL PATH

SYNTAX
   TRAVEL PATH path TO x, y
PURPOSE

ABBREVIATION
 TrvPth
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:triangle?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:triangle</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:triangle?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:turquoise?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:turquoise</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:turquoise?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

TURQUOISE

SYNTAX
   = TURQUOISE
PURPOSE

This keyword represents the color turquoise. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:type...end_type?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:type...end_type</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:type...end_type?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ubound?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ubound</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ubound?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

UBOUND

SYNTAX
   = UBOUND( array [, dimension])
PURPOSE

The UBOUND command (short for “upper bound”) is used to determine the 
highest index of an array. In other words, it tells you how far up 
the array goes.

Imagine you have a box of numbered chocolates.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ucase?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ucase</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ucase?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

UCASE ✓

SYNTAX
   = UCASE(text)
PURPOSE

EXAMPLE
  x = UCASE( &quot;ugBASIC&quot; )
See also the following example files:

	*  strings_cases_01.bas

ABBREVIATION
 Uca
AVAILABLE ON

ALIAS FOR

UPPER

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:unfreeze?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:unfreeze</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:unfreeze?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:upb?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:upb</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:upb?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:upper?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:upper</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:upper?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

UPPER ✓

SYNTAX
   = UPPER(text)
PURPOSE

The UPPER command (short for “Upper Case”) is a function that converts all lowercase 
letters in a string to uppercase. In other words, it takes any string and returns a 
new string that is identical to the first, but with all letters in uppercase.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:upw?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:upw</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:upw?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:use_tileset?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:use_tileset</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:use_tileset?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

USE TILESET

SYNTAX
   USE TILESET tileset
PURPOSE

The USE TILESET command allows you to change the current active tileset.

EXAMPLE
  USE TILESET schema1
ABBREVIATION
 UxTse
AVAILABLE ON

	*  Atari (400/800)
	*  VG-5000

ANY PROBLEM?</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:val?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:val</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:val?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

VAL ✓

SYNTAX
   = VAL(string)
PURPOSE

The VAL command is a function that allows you to convert a string that represents 
a number into a integer numeric value. In other words, it takes a string that contains 
numbers and returns the corresponding numeric value.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:var?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:var</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:var?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

VAR

SYNTAX
   VAR variable [AS datatype] [, variable [AS datatype] [ , variable [AS datatype] ] ]
   VAR variable [AS datatype] = constant
PURPOSE

EXAMPLE
  VAR x = 42
ABBREVIATION
 Vr
AVAILABLE ON

	*  
	*  Atari (400/800)
	*</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:varbank?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:varbank</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:varbank?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

VARBANK

SYNTAX
   = VARBANK( variable )
PURPOSE

Returns the bank assigned for the given variable, -1 if the variable is on resident memory.

EXAMPLE
  DIM x as INTEGER: DIM largeArray( 100, 100 ) AS INTEGER BANKED
  x = 42
  BANK WRITE VARBANK( largeArray ) FROM VARPTR( x ) TO VARBANKPTR( largeArray ) SIZE 2</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:varbankptr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:varbankptr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:varbankptr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

VARBANKPTR

SYNTAX
   = VARBANKPTR( variable )
PURPOSE

Returns the address assigned for the given variable inside a bank of memory expansion.

EXAMPLE
  DIM x as INTEGER: DIM largeArray( 100, 100 ) AS INTEGER BANKED
  x = 42
  BANK WRITE VARBANK( largeArray ) FROM VARPTR( x ) TO VARBANKPTR( largeArray ) SIZE 2</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:varptr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:varptr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:varptr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

VARPTR

SYNTAX
   = VARPTR(var)
PURPOSE

The VARPTR command (short for “variable pointer”) is a pretty advanced statement 
that lets you get the memory address of a variable. Essentially, it tells you “where”
in memory the value of a specific variable is stored.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:vcenter?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:vcenter</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:vcenter?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:vcentre?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:vcentre</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:vcentre?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:vhcenter?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:vhcenter</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:vhcenter?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:vhcentre?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:vhcentre</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:vhcentre?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:violet?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:violet</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:violet?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

VIOLET

SYNTAX
   = VIOLET
PURPOSE

This keyword represents the color violet. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (204,68,204)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:volume</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

VOLUME

SYNTAX
   VOLUME #[value] {ON #[channels]}
   VOLUME [volume] {ON [channels]}
PURPOSE

This command allows you to change the volume at which the audio is generated. 
In general, you can change the overall audio, or that of each individual voice.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_max?rev=1734777924&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-21T11:45:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:volume_max</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_max?rev=1734777924&amp;do=diff</link>
        <description>ugBASIC User Manual

VOLUME MAX

SYNTAX
   = VOLUME MAX
PURPOSE

Maximum value usable for audio volume.

ABBREVIATION
 VoMx
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_min?rev=1734777924&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-21T11:45:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:volume_min</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_min?rev=1734777924&amp;do=diff</link>
        <description>ugBASIC User Manual

VOLUME MIN

SYNTAX
   = VOLUME MIN
PURPOSE

Minimum value usable for audio volume.

ABBREVIATION
 VoMn
ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_off?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:volume_off</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:volume_off?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

VOLUME OFF

SYNTAX
   VOLUME OFF {ON #[channels]}
   VOLUME OFF {ON [channels]}
PURPOSE

This command allows you to mute the audio. 
In general, you can mute the overall audio, or each individual voice.

EXAMPLE
  VOLUME OFF
  VOLUME OFF ON #%001
  VOLUME OFF ON voice1</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT ✓

SYNTAX
   WAIT cycles [CYCLES] [PARALLEL]
   WAIT ticks TICK
   WAIT ticks TICKS
   WAIT time MILLISECOND
   WAIT time MILLISECONDS
   WAIT time MS
PURPOSE

Pauses execution for a certain period of time. The WAIT statement can be 
accompanied by a suffix statement, which indicates the unit of measurement of
the time to wait. The suffix</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_cycles?rev=1619422227&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-26T09:30:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait_cycles</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_cycles?rev=1619422227&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT CYCLES

SYNTAX

	*  WAIT # [integer] CYCLES
	*  WAIT [expression] CYCLES

PURPOSE

Engages the CPU in a busy wait.

EXAMPLE
 WAIT #42 CYCLES
 WAIT timing CYCLES
AVAILABLE ON

	*  ZX Spectrum 48K
	*  Commodore 64

SEE ALSO</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_fire?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait_fire</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_fire?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT FIRE

SYNTAX
   WAIT FIRE [(port)] [RELEASE]
PURPOSE

This instruction allows you to wait for the pressure of the FIRE key on the 
joystick. If the port number is not indicated, it means the first available 
(the one with index 0). If the keyword</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_key?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait_key</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_key?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT KEY

SYNTAX
   WAIT KEY [RELEASE]
PURPOSE

This instruction allows you to wait for any key to be pressed
key on the keyboard. If the keyword RELEASE is appended,
the instruction will wait for the release of the key, as well.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_key_or_fire?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait_key_or_fire</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_key_or_fire?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT KEY OR FIRE

SYNTAX
   WAIT KEY OR FIRE [([port])] [RELEASE]
PURPOSE

This instruction allows you to wait for the pressure of the FIRE key on the 
joystick or any key from keyboard. If the port number is not indicated, it means the first available 
(the one with index 0). If the keyword</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_parallel?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait_parallel</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_parallel?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT PARALLEL

SYNTAX
   WAIT PARALLEL id
PURPOSE

The WAIT PARALLEL command allows you to wait for the completion 
of a previously running mandatory thread. In order for the thread 
to be considered completed, it must reach the last statement of 
the parallel procedure, or have executed the</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_until?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait_until</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_until?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT UNTIL

SYNTAX
   WAIT UNTIL expression
PURPOSE

The WAIT UNTIL command allows you to suspend the execution of a thread until 
the indicated condition becomes TRUE. In other words, the expression is 
evaluated and, if FALSE, the execution will be suspended to send another 
scheduled thread to execute. If it becomes</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_vbl?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait_vbl</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_vbl?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT VBL

SYNTAX
   WAIT VBL [raster line]
PURPOSE

The WAIT VBL command pauses program execution until a “vertical blank” is encountered. 
This is a signal that is triggered at each screen refresh, which usually occurs at 50 Hz 
in PAL standard and 60 Hz in NTSC standard.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_while?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:wait_while</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:wait_while?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WAIT WHILE

SYNTAX
   WAIT WHILE expression
PURPOSE

The WAIT WHILE command allows you to suspend the execution of a thread until 
the indicated condition becomes FALSE. In other words, the expression is 
evaluated and, if TRUE, the execution will be suspended to send another 
scheduled thread to execute. If it becomes</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:while...wend?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:while...wend</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:while...wend?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

WHILE...WEND ✓

SYNTAX
   WHILE expression
     ...
   WEND
PURPOSE

This instruction define a conditional loop, or a list of statements that will be executed
while an expression is true. WHILE acts as the starting position while</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:white?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:white</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:white?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

WHITE ✓

SYNTAX
   = WHITE
PURPOSE

This keyword represents the color white. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (255,255,255)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:width?rev=1715017589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-06T19:46:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:width</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:width?rev=1715017589&amp;do=diff</link>
        <description>ugBASIC User Manual

WIDTH

SYNTAX

PURPOSE

Alias for SCREEN WIDTH.

ABBREVIATION
 Wd
SEE ALSO

SCREEN WIDTH

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:writing?rev=1729715227&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-23T22:27:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:writing</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:writing?rev=1729715227&amp;do=diff</link>
        <description>ugBASIC User Manual

WRITING

SYNTAX
   WRITE {[mode]},{[parts]}
PURPOSE

The WRITING command is used to control how the text is presented on the screen. 
The first value selects one of five writing modes:

 * REPLACE (0) – new text replaces any existing screen data;
 *</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:x</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:x?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_curs?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:x_curs</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_curs?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

X CURS

SYNTAX
   = X CURS
PURPOSE

ABBREVIATION
 XCURS
ALIAS FOR

XCURS

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_graphic?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:x_graphic</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_graphic?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

X GRAPHIC ✓

SYNTAX
   = X GRAPHIC(x)
PURPOSE

This function performs the conversion of text abscissa to graphic abscissa, and can be
used to position text over an area of graphics on the screen.

EXAMPLE
  x = X GRAPHIC(10)
See also the following example files:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_pen?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:x_pen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_pen?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_text?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:x_text</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:x_text?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

X TEXT ✓

SYNTAX
   = X TEXT(x)
PURPOSE

This function performs the conversion of graphic abscissa to text abscissa, and can be
used to position an area of graphics on the screen, over the text.

EXAMPLE
  x = X TEXT(100)
See also the following example files:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xcurs?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:xcurs</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:xcurs?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

XCURS

SYNTAX
   = XCURS
PURPOSE

Returns the X value of the cursor position.

ABBREVIATION
 Xcs
ALIAS FOR

X CURS

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xgr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:xgr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:xgr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

XGR

SYNTAX
   = XGR
PURPOSE

Returns the X value of the last graphical position.

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xgraphic?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:xgraphic</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:xgraphic?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

XGRAPHIC

SYNTAX

PURPOSE

ABBREVIATION
 Xg
ALIAS FOR

X GRAPHIC

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xor?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:xor</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:xor?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

XOR

SYNTAX
   = x OR y
PURPOSE

Performs a logical exclusion on two expressions, as a bitwise exclusion. For 
comparisons managed as a boolean result (TRUE or FALSE), result is TRUE
if both expresions evaluate differently each other. The following table shows how result 
is determined:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xpen?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:xpen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:xpen?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

XPEN

SYNTAX
   = XPEN( )
PURPOSE

The XPEN command is used to query the hardware and get the horizontal 
position (X coordinate) of a light pen attached to the system, if the 
hardware supports such a device. When the XPEN' command is executed 
within a program, the underlying hardware attempts to read the X coordinate 
value detected by the light pen. This value represents the horizontal position 
of where the pen is currently pointing on the screen or a touch-sensitive su…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:xtext?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:xtext</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:xtext?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

XTEXT

SYNTAX

PURPOSE

ABBREVIATION
 Xt
ALIAS FOR

X TEXT

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:y</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:y?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_curs?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:y_curs</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_curs?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

Y CURS

SYNTAX
   = Y CURS
PURPOSE

ABBREVIATION
 YCURS
ALIAS FOR

YCURS

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_graphic?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:y_graphic</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_graphic?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

Y GRAPHIC ✓

SYNTAX
   = Y GRAPHIC(y)
PURPOSE

This function performs the conversion of text ordinate to graphic ordinate, and can be
used to position text over an area of graphics on the screen.

EXAMPLE
  x = Y GRAPHIC(10)
See also the following example files:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_pen?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:y_pen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_pen?rev=1765625589&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_text?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:y_text</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:y_text?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

Y TEXT ✓

SYNTAX
   = Y TEXT(y)
PURPOSE

This function performs the conversion of graphic ordinate to text ordinate, and it can be
used to position an area of graphics on the screen, over the text.

EXAMPLE
  x = Y TEXT(100)
See also the following example files:</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ycurs?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ycurs</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ycurs?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

YCURS

SYNTAX
   = YCURS
PURPOSE

Returns the Y value of the cursor position.

ABBREVIATION
 Ycs
ALIAS FOR

Y CURS

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:yellow?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:yellow</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:yellow?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

YELLOW ✓

SYNTAX
   = YELLOW
PURPOSE

This keyword represents the color yellow. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space, usually (238,238,119)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:yellow_green?rev=1729261685&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T16:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:yellow_green</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:yellow_green?rev=1729261685&amp;do=diff</link>
        <description>ugBASIC User Manual

YELLOW GREEN

SYNTAX
   = YELLOW GREEN
PURPOSE

This keyword represents the color yellow green. Depending on the methodology and technique, 
as well as the available hardware, it can correspond to a specific color in the RGB 
space. However, not all computers have this color. In which case, 
it is approximated by the closest color available, which is usually also used in 
decoding images to identify the color to use.</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ygr?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ygr</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ygr?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

YGR

SYNTAX
   = YGR
PURPOSE

Returns the Y value of the last graphical position.

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ygraphic?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ygraphic</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ygraphic?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

YGRAPHIC

SYNTAX

PURPOSE

ABBREVIATION
 Yg
ALIAS FOR

Y GRAPHIC

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:yield?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:yield</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:yield?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

YIELD

SYNTAX
   YIELD
PURPOSE

This keyword will suspend the current thread, waiting for the
next slice of time. 

EXAMPLE
  YIELD
ABBREVIATION
 Yi
AVAILABLE ON

	*  
	*  Atari (400/800)
	*  Atari XL/XE
	*  Commodore 128 (MOS 8502)</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ypen?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ypen</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ypen?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

YPEN

SYNTAX
   = YPEN( )
PURPOSE

The YPEN command is used to query the hardware and get the vertical 
position (Y coordinate) of a light pen attached to the system, if the 
hardware supports such a device. When the YPEN' command is executed 
within a program, the underlying hardware attempts to read the Y coordinate 
value detected by the light pen. This value represents the vertical position 
of where the pen is currently pointing on the screen or a touch-sensitive surfac…</description>
    </item>
    <item rdf:about="https://retroprogramming.iwashere.eu/ugbasic:user:kw:ytext?rev=1765625589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-13T12:33:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ugbasic:user:kw:ytext</title>
        <link>https://retroprogramming.iwashere.eu/ugbasic:user:kw:ytext?rev=1765625589&amp;do=diff</link>
        <description>ugBASIC User Manual

YTEXT

SYNTAX

PURPOSE

ABBREVIATION
 Yt
ALIAS FOR

Y TEXT

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY</description>
    </item>
</rdf:RDF>
