mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-04 02:17:14 +08:00
436 lines
242 KiB
HTML
436 lines
242 KiB
HTML
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>gfxboot reference</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><meta name="description" content="Creating bootloader graphics with gfxboot for syslinux/isolinux, lilo, and grub."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2620232"></a>gfxboot reference</h2></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>
|
||
Creating bootloader graphics with gfxboot for syslinux/isolinux, lilo, and grub.
|
||
</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#overview">Overview</a></span></dt><dt><span class="sect1"><a href="#utilities">Utilities</a></span></dt><dt><span class="sect1"><a href="#reference">Reference</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2672897">Initialisation</a></span></dt><dt><span class="sect2"><a href="#id2672926">Callbacks</a></span></dt><dt><span class="sect2"><a href="#id2676843">Primary words</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="overview"></a>Overview</h2></div></div></div><p>
|
||
To make a graphical boot screen you'll have to write a small script. Optionally you
|
||
might want font files, graphics files and sound files.
|
||
</p><p>
|
||
The script is written in a Postscript-like language.
|
||
You must program everything related to graphics output in it. That does
|
||
include e.g. drawing the background picture and in particular handling all kind
|
||
of user input.
|
||
</p><p>
|
||
Font files have a special format. Create them using
|
||
<a class="link" href="#gfxboot-font"><span class="command"><strong>gfxboot-font</strong></span></a>.
|
||
Maximum font file size is 512kB.
|
||
</p><p>
|
||
If you have written a script, convert it into byte code
|
||
using <a class="link" href="#gfxboot-compile"><span class="command"><strong>gfxboot-compile</strong></span></a>.
|
||
</p><p>
|
||
Debugging this script is rather tedious. For this, <span class="command"><strong>gfxboot-compile -l</strong></span>
|
||
will give you debug information that is useful together with the <code class="function">dtrace</code>
|
||
command.
|
||
</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="utilities"></a>Utilities</h2></div></div></div><p>
|
||
Tools needed to build a boot graphics file.
|
||
</p><div class="itemizedlist"><ul type="disc"><li><p><a name="gfxboot-compile"></a>gfxboot-compile</p><p>
|
||
Compile source into byte code. The result (together with any
|
||
other files you might need) has to be put into a cpio archive. If
|
||
you are using <span class="command"><strong>isolinux</strong></span> or
|
||
<span class="command"><strong>syslinux</strong></span>, this is not required, as you can
|
||
read files directly from the filesystem. The compiled byte code,
|
||
however, always has to be put into the cpio archive.
|
||
</p><div class="example"><a name="id2710454"></a><p class="title"><b>Example<EFBFBD>1.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
# compile 'foo.ps' to 'foo', writing log to foo.log
|
||
# Note: '-O' turns on the optimizer. You'll always want to do this.
|
||
gfxboot-compile -O -v -l foo.log -c foo.ps foo
|
||
|
||
# put it into a cpio archive
|
||
# we'll assume you need a picture 'foo.jpg' and are using font 'foo.fnt'
|
||
echo -e "foo\nfoo.jpg\nfoo.fnt" | cpio -o >bootlogo
|
||
|
||
# 'bootlogo' is ready to use, e.g.
|
||
# as 'gfxboot bootlogo' in isolinux.cfg
|
||
</pre></div></div><p><br class="example-break">
|
||
</p></li><li><p><a name="gfxboot-font"></a>gfxboot-font</p><p>
|
||
Build font file using the freetype rendering engine.
|
||
</p></li><li><p><a name="help2txt"></a>help2txt</p><p>
|
||
Convert html files into the internal online-help format.
|
||
</p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="reference"></a>Reference</h2></div></div></div><p>
|
||
Comments start with '%' and extend to the end of line.
|
||
</p><p>
|
||
To include some other source file, do:
|
||
</p><pre class="programlisting">%% include file</pre><p>
|
||
Numbers are always 32 bit signed integer. Numerical and string constants
|
||
are given in a C-like way (not as in Postscript).
|
||
</p><div class="example"><a name="id2672836"></a><p class="title"><b>Example<EFBFBD>2.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
123, -456
|
||
0x4567
|
||
"Hi there\n"
|
||
'\033', '\x1b', '\u20ac'
|
||
</pre></div></div><br class="example-break"><p>
|
||
But: chars have values in the range 0 .. 0x1fffff.
|
||
</p><p>
|
||
Strings are interpreted as utf8-sequences. Alternatively you can use
|
||
'\uXXXX' or '\UXXXXXXXX' to include Unicode characters.
|
||
</p><div class="example"><a name="id2672856"></a><p class="title"><b>Example<EFBFBD>3.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"1 Euro = 1 €\n"
|
||
"1 Euro = 1 \u20ac\n"
|
||
"1 Euro = 1 \xe2\x82\xac\n"
|
||
</pre></div></div><br class="example-break"><p>
|
||
Logical operations return values of type 'bool'. They are not identical
|
||
with integers. There are no pre-defined constants 'true' and 'false'. But
|
||
you can define them yourself if you need them, e.g.: </p><pre class="programlisting">/true 0 0 eq def</pre><p>
|
||
</p><p>
|
||
Strings and arrays are effectively pointers. So duplicating them on the
|
||
stack does duplicate the pointer, not the object.
|
||
</p><p>
|
||
In addition, there is a unspecific pointer data type. You can use it to
|
||
construct arbitrary memory references.
|
||
</p><p>
|
||
Variable/constants/function names can consist of everything except
|
||
whitespace.
|
||
</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2672897"></a>Initialisation</h3></div></div></div><p>
|
||
During initialization the config file in run. It must leave either an
|
||
empty stack or a boolean 'true' value at the TOS (top of stack) to indicate
|
||
the boot loader that everything worked fine. Otherwise the boot loader will
|
||
assume that some error occured and not continue in graphics mode.
|
||
</p><p>
|
||
If you want to handle input (as you probably do) you must define at least
|
||
the callback function <a class="link" href="#cb_KeyEvent">KeyEvent</a>.
|
||
</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2672926"></a>Callbacks</h3></div></div></div><p>
|
||
Communication with the boot loader is done via callback functions. You are
|
||
responsible to assign useful actions to them.
|
||
See config file examples for more documentation.
|
||
</p><div class="itemizedlist"><ul type="disc"><li><p><code class="function"><a name="cb_KeyEvent"></a>KeyEvent</code></p><p>
|
||
Called if a key is pressed.
|
||
</p></li><li><p><code class="function">MenuInit</code></p><p>
|
||
Should draw boot menu.
|
||
</p></li><li><p><code class="function">InfoBoxInit</code></p><p>
|
||
Show message box (e.g. error messages).
|
||
</p></li><li><p><code class="function">InfoBoxDone</code></p><p>
|
||
Hide message box.
|
||
</p></li><li><p><code class="function">ProgressInit</code></p><p>
|
||
Initialize kernel load progress bar (syslinux/isolinux only).
|
||
</p></li><li><p><code class="function">ProgressDone</code></p><p>
|
||
Hide progress bar.
|
||
</p></li><li><p><code class="function">ProgressUpdate</code></p><p>
|
||
Advance progress bar.
|
||
</p></li><li><p><code class="function">PasswordInit</code></p><p>
|
||
Show password dialog.
|
||
</p></li><li><p><code class="function">PasswordDone</code></p><p>
|
||
Hide password dialog.
|
||
</p></li><li><p><code class="function">Timeout</code></p><p>
|
||
Timeout counter; called every 18.3th second until timeout occurs.
|
||
</p></li><li><p><code class="function">Timer</code></p><p>
|
||
Called every 18.3th second regardless of timeout.
|
||
</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2676843"></a>Primary words</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a name="f_0001"></a><code class="function">{</code> – start code definition</p><p>( — <em class="parameter"><code>code1</code></em> )</p><p><em class="parameter"><code>code1</code></em>: code start marker</p><p>After <code class="function">{</code>, no code is executed until a matching <code class="function"><a class="link" href="#f_0002">}</a></code> is found.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0029">def</a></code>, <code class="function"><a class="link" href="#f_0002">}</a></code></p><div class="example"><a name="id2676943"></a><p class="title"><b>Example<EFBFBD>4.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/++ { 1 add } def % define increment function '++'
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0002"></a><code class="function">}</code> – complete code definition</p><p>( — )</p><p><span class="emphasis"><em>Note:</em></span> <code class="function"><a class="link" href="#f_0001">{</a></code> and <code class="function">}</code> are taken care of already during conversion into bytecode. This means that redefining them does not work as you would expect.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0029">def</a></code>, <code class="function"><a class="link" href="#f_0001">{</a></code></p><div class="example"><a name="id2719973"></a><p class="title"><b>Example<EFBFBD>5.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/dec { 1 sub } def % define decrement function 'dec'
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0096"></a><code class="function">64bit</code> – test if we run on a 64-bit machine</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em> = 1: 64-bit architecture</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0003"></a><code class="function">[</code> – start array</p><p>( — <em class="parameter"><code>mark1</code></em> )</p><p><em class="parameter"><code>mark1</code></em>: array start marker</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code></p><div class="example"><a name="id2720230"></a><p class="title"><b>Example<EFBFBD>6.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
[ 1 2 3 ] % array with 3 elements
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0004"></a><code class="function">]</code> – complete array definition</p><p>( <em class="parameter"><code>mark1</code></em> <em class="parameter"><code>obj1</code></em> ... <em class="parameter"><code>objN</code></em> — <em class="parameter"><code>array1</code></em> )</p><p><em class="parameter"><code>mark1</code></em>: array start marker</p><p><em class="parameter"><code>obj1</code></em> ... <em class="parameter"><code>objN</code></em>: some objects</p><p><em class="parameter"><code>array1</code></em>: N-dimensional array with <em class="parameter"><code>obj1</code></em> ... <em class="parameter"><code>objN</code></em></p><p><span class="emphasis"><em>Note:</em></span> The array uses dynamically allocated memory which must be released using <code class="function"><a class="link" href="#f_0084">free</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0003">[</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2720438"></a><p class="title"><b>Example<EFBFBD>7.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/foo [ "some" "text" ] def % array with 2 elements
|
||
foo free % free memory
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0109"></a><code class="function">_readsector</code> – read sector</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>ptr1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: sector number</p><p><em class="parameter"><code>ptr1</code></em>: sector data</p><p><span class="emphasis"><em>Note:</em></span> internal function. Returns pointer to static buffer. Does not return on error. Returns .undef if function is not implemented.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0020"></a><code class="function">abs</code> – absolute value</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int2</code></em>: |<em class="parameter"><code>int1</code></em>|</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2720833"></a><p class="title"><b>Example<EFBFBD>8.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
-6 abs % 6
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0014"></a><code class="function">add</code> – addition</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p>( <em class="parameter"><code>string1</code></em> <em class="parameter"><code>int4</code></em> — <em class="parameter"><code>string2</code></em> )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>int5</code></em> — <em class="parameter"><code>ptr2</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> + <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>string2</code></em>: substring of <em class="parameter"><code>string1</code></em> at offset <em class="parameter"><code>int4</code></em></p><p><span class="emphasis"><em>Note:</em></span> Strings are treated as byte sequences, not Unicode chars. Sizes of <em class="parameter"><code>string1</code></em> and <em class="parameter"><code>ptr1</code></em> are not checked.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2721081"></a><p class="title"><b>Example<EFBFBD>9.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
1 2 add % 3
|
||
|
||
"abc" 1 add % "bc"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0023"></a><code class="function">and</code> – logical or arithmetical 'and'</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p>( <em class="parameter"><code>bool1</code></em> <em class="parameter"><code>bool2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> & <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool3</code></em>: <em class="parameter"><code>bool1</code></em> && <em class="parameter"><code>bool2</code></em></p><p><span class="emphasis"><em>Note:</em></span> Mixing boolean and integer argument types is possible, in this case integers are converted to boolean first.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2721301"></a><p class="title"><b>Example<EFBFBD>10.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
true false and % false
|
||
|
||
3 6 and % 2
|
||
|
||
10 true and % gives true, but please avoid this
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0008"></a><code class="function">array</code> – create an empty array</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>array1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: array dimension</p><p><em class="parameter"><code>array1</code></em>: new array</p><p><span class="emphasis"><em>Note:</em></span> Use <code class="function"><a class="link" href="#f_0084">free</a></code> to free <em class="parameter"><code>array1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2721475"></a><p class="title"><b>Example<EFBFBD>11.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/foo 10 array def % create array with 10 elements
|
||
foo 4 123 put % foo[4] = 123
|
||
foo free % free foo
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0154"></a><code class="function">blend</code> – - blend image with alpha channel</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>obj2</code></em> <em class="parameter"><code>ptr3</code></em> — )</p><p><em class="parameter"><code>obj1</code></em>: pointer to source image or color value</p><p><em class="parameter"><code>obj2</code></em>: pointer to alpha channel or transparency value</p><p><em class="parameter"><code>ptr3</code></em>: destination</p><p>An image section of <em class="parameter"><code>obj1</code></em> is copied to <em class="parameter"><code>ptr3</code></em> using <em class="parameter"><code>obj2</code></em> as alpha channel. <em class="parameter"><code>obj1</code></em> may be a color value or an unpacked image (<code class="function"><a class="link" href="#f_0077">unpackimage</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>). <em class="parameter"><code>obj2</code></em> may be a transparency value (0..255) or an unpacked image used as alpha channel. The current cursor position is used as offset into <em class="parameter"><code>obj1</code></em> and <em class="parameter"><code>obj2</code></em> if they are images. If both <em class="parameter"><code>obj1</code></em> and <em class="parameter"><code>obj2</code></em> are images, they must have the same dimensions.</p><p><span class="emphasis"><em>Note:</em></span> 16/32-bit modes only.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p></li><li><p><a name="f_0108"></a><code class="function">chdir</code> – set current working directory</p><p>( <em class="parameter"><code>str1</code></em> — )</p><p><em class="parameter"><code>str1</code></em>: file name</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2721835"></a><p class="title"><b>Example<EFBFBD>12.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"/foo/bar" chdir % set working directory
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0115"></a><code class="function">colorbits</code> – current pixel size</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: pixel size in bits</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0111">currentmode</a></code>, <code class="function"><a class="link" href="#f_0053">monitorsize</a></code>, <code class="function"><a class="link" href="#f_0051">screen.size</a></code>, <code class="function"><a class="link" href="#f_0110">setmode</a></code>, <code class="function"><a class="link" href="#f_0114">sysinfo</a></code>, <code class="function"><a class="link" href="#f_0113">videomodeinfo</a></code>, <code class="function"><a class="link" href="#f_0112">videomodes</a></code>, <code class="function"><a class="link" href="#f_0052">vscreen.size</a></code></p></li><li><p><a name="f_0057"></a><code class="function">currentcolor</code> – current drawing color</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: palette index (8-bit mode) or 24-bit RGB-value (16/32-bit modes).</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2722084"></a><p class="title"><b>Example<EFBFBD>13.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
currentcolor not setcolor % inverse color
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0134"></a><code class="function">currenteotchar</code> – current alternative end-of-text char</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: eot char</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0066"></a><code class="function">currentfont</code> – get current font</p><p>( — <em class="parameter"><code>ptr1</code></em> )</p><p><em class="parameter"><code>ptr1</code></em>: current font</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0067">fontheight</a></code>, <code class="function"><a class="link" href="#f_0146">lineheight</a></code>, <code class="function"><a class="link" href="#f_0065">setfont</a></code></p><div class="example"><a name="id2722325"></a><p class="title"><b>Example<EFBFBD>14.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
currentfont % save font
|
||
"16x16_bold.fnt" findfile setfont % set bold font
|
||
"bold text" show % write something in bold font
|
||
setfont % back to normal font
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0069"></a><code class="function">currentimage</code> – currently used image</p><p>( — <em class="parameter"><code>ptr1</code></em> )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p></li><li><p><a name="f_0144"></a><code class="function">currentlink</code> – currently selected link</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: selected link</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0136"></a><code class="function">currentmaxrows</code> – - current maxium number of text rows to display</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: maxium number of text rows to display in a single <code class="function"><a class="link" href="#f_0072">show</a></code> command.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0111"></a><code class="function">currentmode</code> – current video mode</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: current video mode number</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0115">colorbits</a></code>, <code class="function"><a class="link" href="#f_0053">monitorsize</a></code>, <code class="function"><a class="link" href="#f_0051">screen.size</a></code>, <code class="function"><a class="link" href="#f_0110">setmode</a></code>, <code class="function"><a class="link" href="#f_0114">sysinfo</a></code>, <code class="function"><a class="link" href="#f_0113">videomodeinfo</a></code>, <code class="function"><a class="link" href="#f_0112">videomodes</a></code>, <code class="function"><a class="link" href="#f_0052">vscreen.size</a></code></p></li><li><p><a name="f_0061"></a><code class="function">currentpoint</code> – current cursor position</p><p>( — <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: x, y (upper left: 0, 0)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p></li><li><p><a name="f_0142"></a><code class="function">currenttextcolors</code> – current text markup colors</p><p>( — <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> <em class="parameter"><code>int4</code></em> )</p><p><em class="parameter"><code>int1</code></em>: normal color</p><p><em class="parameter"><code>int2</code></em>: highlight color</p><p><em class="parameter"><code>int3</code></em>: link color</p><p><em class="parameter"><code>int4</code></em>: selected link color</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0132"></a><code class="function">currenttextwrap</code> – current text wrap column</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: text wrap column</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0147"></a><code class="function">currenttitle</code> – current page title</p><p>( — <em class="parameter"><code>str1</code></em> )</p><p><em class="parameter"><code>str1</code></em>: page title</p><p><span class="emphasis"><em>Note:</em></span> available after running <code class="function"><a class="link" href="#f_0137">formattext</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0071"></a><code class="function">currenttransparency</code> – current transparency</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p></li><li><p><a name="f_0151"></a><code class="function">date</code> – get current date</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: date (bit 0-7: day, bit 8-15: month, bit 16-31: year)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0029"></a><code class="function">def</code> – define new word</p><p>( <em class="parameter"><code>dict1</code></em> <em class="parameter"><code>obj1</code></em> — )</p><p><em class="parameter"><code>dict1</code></em>: is defined as <em class="parameter"><code>obj1</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0001">{</a></code>, <code class="function"><a class="link" href="#f_0002">}</a></code></p><div class="example"><a name="id2724019"></a><p class="title"><b>Example<EFBFBD>15.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/x 100 def % define constant x as 100
|
||
|
||
/neg { -1 mul } def % define 'neg' function
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0017"></a><code class="function">div</code> – division</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> / <em class="parameter"><code>int2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2724197"></a><p class="title"><b>Example<EFBFBD>16.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
17 3 div % 5
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0041"></a><code class="function">dtrace</code> – single step with debug window</p><p>( — )</p><p>Turn on <code class="function"><a class="link" href="#f_0042">trace</a></code> mode and show debug info in upper left screen corner.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0042">trace</a></code></p></li><li><p><a name="f_0086"></a><code class="function">dumpmem</code> – dump memory usage to console</p><p>( — )</p><p><span class="emphasis"><em>Note:</em></span> useful only for debugging.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p></li><li><p><a name="f_0010"></a><code class="function">dup</code> – duplicate TOS</p><p>( <em class="parameter"><code>obj1</code></em> — <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>obj1</code></em> )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0038">exch</a></code>, <code class="function"><a class="link" href="#f_0012">index</a></code>, <code class="function"><a class="link" href="#f_0011">over</a></code>, <code class="function"><a class="link" href="#f_0009">pop</a></code>, <code class="function"><a class="link" href="#f_0040">roll</a></code>, <code class="function"><a class="link" href="#f_0039">rot</a></code></p><div class="example"><a name="id2724456"></a><p class="title"><b>Example<EFBFBD>17.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
key % key: some input value
|
||
dup 'a' eq { do_a } if % if key = 'a'
|
||
dup 'b' eq { do_b } if % if key = 'b'
|
||
dup 'c' eq { do_c } if % if key = 'c'
|
||
pop
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0091"></a><code class="function">edit.done</code> – restore input field background</p><p>( <em class="parameter"><code>array1</code></em> — )</p><p><em class="parameter"><code>array1</code></em>: see <code class="function"><a class="link" href="#f_0089">edit.init</a></code></p><p><span class="emphasis"><em>Note:</em></span> does not free any data associated with <em class="parameter"><code>array1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0093">edit.hidecursor</a></code>, <code class="function"><a class="link" href="#f_0089">edit.init</a></code>, <code class="function"><a class="link" href="#f_0094">edit.input</a></code>, <code class="function"><a class="link" href="#f_0090">edit.redraw</a></code>, <code class="function"><a class="link" href="#f_0092">edit.showcursor</a></code></p><div class="example"><a name="id2724561"></a><p class="title"><b>Example<EFBFBD>18.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
ed edit.done % delete input field
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0093"></a><code class="function">edit.hidecursor</code> – hide input field cursor</p><p>( <em class="parameter"><code>array1</code></em> — )</p><p><em class="parameter"><code>array1</code></em>: see <code class="function"><a class="link" href="#f_0089">edit.init</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0091">edit.done</a></code>, <code class="function"><a class="link" href="#f_0089">edit.init</a></code>, <code class="function"><a class="link" href="#f_0094">edit.input</a></code>, <code class="function"><a class="link" href="#f_0090">edit.redraw</a></code>, <code class="function"><a class="link" href="#f_0092">edit.showcursor</a></code></p></li><li><p><a name="f_0089"></a><code class="function">edit.init</code> – - setup and show an editable input field</p><p>( <em class="parameter"><code>array1</code></em> <em class="parameter"><code>str1</code></em> — )</p><p><em class="parameter"><code>str1</code></em>: initial input string value</p><p><em class="parameter"><code>array1</code></em>: (at least) 6-dimensional array: [ x y bg buf buf_size .undef ]. x, y: input field position; bg: background pixmap (created with <code class="function"><a class="link" href="#f_0081">savescreen</a></code>) - this determines the input field dimensions, too; buf: string buffer, large enough for a string of length buf_size. The last element is used internally.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0091">edit.done</a></code>, <code class="function"><a class="link" href="#f_0093">edit.hidecursor</a></code>, <code class="function"><a class="link" href="#f_0094">edit.input</a></code>, <code class="function"><a class="link" href="#f_0090">edit.redraw</a></code>, <code class="function"><a class="link" href="#f_0092">edit.showcursor</a></code></p><div class="example"><a name="id2724760"></a><p class="title"><b>Example<EFBFBD>19.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
50 100 moveto 200 20 savescreen /bg exch def
|
||
/buf 100 string def
|
||
/ed [ 50 100 bg buf 100 .undef ] def
|
||
ed "foo" edit.init
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0094"></a><code class="function">edit.input</code> – edit field input processing</p><p>( <em class="parameter"><code>array1</code></em> <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>array1</code></em>: see <code class="function"><a class="link" href="#f_0089">edit.init</a></code></p><p><em class="parameter"><code>int1</code></em>: key (bits 0-23 Unicode char, bits 24-31 scan code)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0091">edit.done</a></code>, <code class="function"><a class="link" href="#f_0093">edit.hidecursor</a></code>, <code class="function"><a class="link" href="#f_0089">edit.init</a></code>, <code class="function"><a class="link" href="#f_0090">edit.redraw</a></code>, <code class="function"><a class="link" href="#f_0092">edit.showcursor</a></code></p><div class="example"><a name="id2724881"></a><p class="title"><b>Example<EFBFBD>20.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/keyLeft 0x4b000000 def % move cursor left
|
||
ed 'a' edit.input
|
||
ed keyLeft edit.input
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0090"></a><code class="function">edit.redraw</code> – redraw input field</p><p>( <em class="parameter"><code>array1</code></em> — )</p><p><em class="parameter"><code>array1</code></em>: see <code class="function"><a class="link" href="#f_0089">edit.init</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0091">edit.done</a></code>, <code class="function"><a class="link" href="#f_0093">edit.hidecursor</a></code>, <code class="function"><a class="link" href="#f_0089">edit.init</a></code>, <code class="function"><a class="link" href="#f_0094">edit.input</a></code>, <code class="function"><a class="link" href="#f_0092">edit.showcursor</a></code></p><div class="example"><a name="id2724988"></a><p class="title"><b>Example<EFBFBD>21.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
ed edit.redraw % redraw input field
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0092"></a><code class="function">edit.showcursor</code> – show input field cursor</p><p>( <em class="parameter"><code>array1</code></em> — )</p><p><em class="parameter"><code>array1</code></em>: see <code class="function"><a class="link" href="#f_0089">edit.init</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0091">edit.done</a></code>, <code class="function"><a class="link" href="#f_0093">edit.hidecursor</a></code>, <code class="function"><a class="link" href="#f_0089">edit.init</a></code>, <code class="function"><a class="link" href="#f_0094">edit.input</a></code>, <code class="function"><a class="link" href="#f_0090">edit.redraw</a></code></p></li><li><p><a name="f_0116"></a><code class="function">eject</code> – eject CD-ROM</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int1</code></em>: BIOS drive id</p><p><em class="parameter"><code>int2</code></em>: BIOS error code</p><p><span class="emphasis"><em>Note:</em></span> does not work with all BIOSes. (With very few, actually.)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0032"></a><code class="function">eq</code> – equal</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>bool1</code></em> )</p><p>( <em class="parameter"><code>str1</code></em> <em class="parameter"><code>str2</code></em> — <em class="parameter"><code>bool2</code></em> )</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>obj2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>bool1</code></em>: true if <em class="parameter"><code>int1</code></em> == <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool2</code></em>: true if <em class="parameter"><code>str1</code></em> == <em class="parameter"><code>str2</code></em></p><p><em class="parameter"><code>bool3</code></em>: true if <em class="parameter"><code>obj1</code></em> and <em class="parameter"><code>obj2</code></em> are identical</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0035">ge</a></code>, <code class="function"><a class="link" href="#f_0034">gt</a></code>, <code class="function"><a class="link" href="#f_0037">le</a></code>, <code class="function"><a class="link" href="#f_0036">lt</a></code>, <code class="function"><a class="link" href="#f_0033">ne</a></code></p><div class="example"><a name="id2725553"></a><p class="title"><b>Example<EFBFBD>22.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
1 3 eq % false
|
||
"abc" "abc" eq % true
|
||
/a [ 1 2 ] def
|
||
/b a def
|
||
a [ 1 2 ] eq % false (not the same array)
|
||
a b eq % true
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0038"></a><code class="function">exch</code> – exchange TOS with TOS-1</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>obj2</code></em> — <em class="parameter"><code>obj2</code></em> <em class="parameter"><code>obj1</code></em> )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0010">dup</a></code>, <code class="function"><a class="link" href="#f_0012">index</a></code>, <code class="function"><a class="link" href="#f_0011">over</a></code>, <code class="function"><a class="link" href="#f_0009">pop</a></code>, <code class="function"><a class="link" href="#f_0040">roll</a></code>, <code class="function"><a class="link" href="#f_0039">rot</a></code></p><div class="example"><a name="id2725671"></a><p class="title"><b>Example<EFBFBD>23.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
8
|
||
/a exch def % a = 8
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0013"></a><code class="function">exec</code> – evaluate object</p><p>( <em class="parameter"><code>dict1</code></em> — )</p><p>( <em class="parameter"><code>obj1</code></em> — <em class="parameter"><code>obj1</code></em> )</p><p>If <em class="parameter"><code>obj1</code></em> is a dictionary entry, it is looked up and evaluated. If not, the stack is left unchanged.</p><p><span class="emphasis"><em>Note:</em></span> Unlike Postscript, no cvx is necessary. And it works only with dictionary references.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0044">exit</a></code>, <code class="function"><a class="link" href="#f_0047">for</a></code>, <code class="function"><a class="link" href="#f_0048">forall</a></code>, <code class="function"><a class="link" href="#f_0030">if</a></code>, <code class="function"><a class="link" href="#f_0031">ifelse</a></code>, <code class="function"><a class="link" href="#f_0045">loop</a></code>, <code class="function"><a class="link" href="#f_0046">repeat</a></code>, <code class="function"><a class="link" href="#f_0043">return</a></code></p><div class="example"><a name="id2725829"></a><p class="title"><b>Example<EFBFBD>24.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/foo [ /bar 100 "abc" ] def
|
||
foo 0 get % /bar
|
||
exec % run bar
|
||
foo 2 get % "abc"
|
||
exec % still "abc"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0044"></a><code class="function">exit</code> – leave loop/repeat/for/forall loop.</p><p>( — )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0013">exec</a></code>, <code class="function"><a class="link" href="#f_0047">for</a></code>, <code class="function"><a class="link" href="#f_0048">forall</a></code>, <code class="function"><a class="link" href="#f_0030">if</a></code>, <code class="function"><a class="link" href="#f_0031">ifelse</a></code>, <code class="function"><a class="link" href="#f_0045">loop</a></code>, <code class="function"><a class="link" href="#f_0046">repeat</a></code>, <code class="function"><a class="link" href="#f_0043">return</a></code></p><div class="example"><a name="id2725945"></a><p class="title"><b>Example<EFBFBD>25.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0 1 100 { 56 eq { exit } if } for % leave if counter == 56
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0106"></a><code class="function">filesize</code> – get file size</p><p>( <em class="parameter"><code>str1</code></em> — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>str1</code></em>: file name</p><p><em class="parameter"><code>int1</code></em>: file length (or .undef if not found)</p><p><span class="emphasis"><em>Note:</em></span> Unlike <code class="function"><a class="link" href="#f_0105">findfile</a></code>, it doesn't load the file.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2726142"></a><p class="title"><b>Example<EFBFBD>26.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"xxx.jpg" filesize % file size of "xxx.jpg"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0087"></a><code class="function">fillrect</code> – fill rectangular area</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: width, height</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2726330"></a><p class="title"><b>Example<EFBFBD>27.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0 0 moveto
|
||
blue setcolor
|
||
300 200 fillrect % 300x200 blue rectangle
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0105"></a><code class="function">findfile</code> – load file</p><p>( <em class="parameter"><code>str1</code></em> — <em class="parameter"><code>ptr1</code></em> )</p><p><em class="parameter"><code>str1</code></em>: file name</p><p><em class="parameter"><code>ptr1</code></em>: buffer with file data</p><p><span class="emphasis"><em>Note:</em></span> <em class="parameter"><code>ptr1</code></em> may or may not have to be free'd using <code class="function"><a class="link" href="#f_0084">free</a></code>, depending on whether it is actually loaded from file system or is part of the bootlogo archive. To be on the safe side, always free it.</p><p>To get the file length, use <code class="function"><a class="link" href="#f_0007">length</a></code> on <em class="parameter"><code>ptr1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2726556"></a><p class="title"><b>Example<EFBFBD>28.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"xxx.jpg" findfile length % file size of "xxx.jpg"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0067"></a><code class="function">fontheight</code> – font height</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: font height</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0066">currentfont</a></code>, <code class="function"><a class="link" href="#f_0146">lineheight</a></code>, <code class="function"><a class="link" href="#f_0065">setfont</a></code></p><div class="example"><a name="id2726633"></a><p class="title"><b>Example<EFBFBD>29.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
currentpoint
|
||
"Hello" show % print "Hello"
|
||
moveto 0 fontheight rmoveto
|
||
"world!" % print "world!" below "Hello"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0047"></a><code class="function">for</code> – - typical 'for' loop</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> <em class="parameter"><code>code1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: start value</p><p><em class="parameter"><code>int2</code></em>: step size</p><p><em class="parameter"><code>int3</code></em>: final value (inclusive)</p><p>Run <em class="parameter"><code>code1</code></em> and put the current counter value onto the stack for every iteration.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0013">exec</a></code>, <code class="function"><a class="link" href="#f_0044">exit</a></code>, <code class="function"><a class="link" href="#f_0048">forall</a></code>, <code class="function"><a class="link" href="#f_0030">if</a></code>, <code class="function"><a class="link" href="#f_0031">ifelse</a></code>, <code class="function"><a class="link" href="#f_0045">loop</a></code>, <code class="function"><a class="link" href="#f_0046">repeat</a></code>, <code class="function"><a class="link" href="#f_0043">return</a></code></p><div class="example"><a name="id2726805"></a><p class="title"><b>Example<EFBFBD>30.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0 1 4 { } for % leave 0 1 2 3 4 on the stack
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0048"></a><code class="function">forall</code> – loop over all array elements</p><p>( <em class="parameter"><code>array1</code></em> <em class="parameter"><code>code</code></em> <em class="parameter"><code>1</code></em> — )</p><p>( <em class="parameter"><code>str1</code></em> <em class="parameter"><code>code</code></em> <em class="parameter"><code>1</code></em> — )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>code</code></em> <em class="parameter"><code>1</code></em> — )</p><p>Run code1 for every element of <em class="parameter"><code>array1</code></em>, <em class="parameter"><code>str1</code></em> or <em class="parameter"><code>ptr1</code></em> putting each element on the stack in turn.</p><p><span class="emphasis"><em>Note:</em></span> <em class="parameter"><code>str1</code></em> is treated as a sequence of bytes, not utf8 chars.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0013">exec</a></code>, <code class="function"><a class="link" href="#f_0044">exit</a></code>, <code class="function"><a class="link" href="#f_0047">for</a></code>, <code class="function"><a class="link" href="#f_0030">if</a></code>, <code class="function"><a class="link" href="#f_0031">ifelse</a></code>, <code class="function"><a class="link" href="#f_0045">loop</a></code>, <code class="function"><a class="link" href="#f_0046">repeat</a></code>, <code class="function"><a class="link" href="#f_0043">return</a></code></p><div class="example"><a name="id2727009"></a><p class="title"><b>Example<EFBFBD>31.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
[ 1 2 3 ] { } forall % leave 1 2 3 on the stack
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0137"></a><code class="function">formattext</code> – - format text</p><p>( <em class="parameter"><code>str1</code></em> — )</p><p><em class="parameter"><code>str1</code></em>: text</p><p>Preprocess text to find (and remember) line breaks, links and stuff.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0084"></a><code class="function">free</code> – free memory</p><p>( <em class="parameter"><code>obj1</code></em> — )</p><p><em class="parameter"><code>obj1</code></em>: object to free, either array, string or pointer</p><p><span class="emphasis"><em>Note:</em></span> There is no garbage collector implemented. You have to keep track of memory usage yourself. If <em class="parameter"><code>obj1</code></em> does not refer to some dynamically allocated object, <code class="function">free</code> does nothing.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2727408"></a><p class="title"><b>Example<EFBFBD>32.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
2 array % create array with 2 elements...
|
||
free % and free it
|
||
|
||
100 malloc % allocate 100 bytes...
|
||
free % and free it
|
||
|
||
"Some Text" free % free nothing
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0035"></a><code class="function">ge</code> – greater or equal</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>bool1</code></em> )</p><p>( <em class="parameter"><code>str1</code></em> <em class="parameter"><code>str2</code></em> — <em class="parameter"><code>bool2</code></em> )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>ptr2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>bool1</code></em>: true if <em class="parameter"><code>int1</code></em> >= <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool2</code></em>: true if <em class="parameter"><code>str1</code></em> >= <em class="parameter"><code>str2</code></em></p><p><em class="parameter"><code>bool3</code></em>: true if <em class="parameter"><code>ptr1</code></em> >= <em class="parameter"><code>ptr2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0032">eq</a></code>, <code class="function"><a class="link" href="#f_0034">gt</a></code>, <code class="function"><a class="link" href="#f_0037">le</a></code>, <code class="function"><a class="link" href="#f_0036">lt</a></code>, <code class="function"><a class="link" href="#f_0033">ne</a></code></p><div class="example"><a name="id2727608"></a><p class="title"><b>Example<EFBFBD>33.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
7 4 ge % true
|
||
"abc" "abc" ge % true
|
||
/a 10 malloc def
|
||
/b a + 2 def
|
||
b a ge % true
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0005"></a><code class="function">get</code> – get array, string or memory element</p><p>( <em class="parameter"><code>array1</code></em> <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>obj1</code></em> )</p><p>( <em class="parameter"><code>string1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>int4</code></em> — <em class="parameter"><code>int5</code></em> )</p><p><em class="parameter"><code>obj1</code></em>: <em class="parameter"><code>int1</code></em>-th element of <em class="parameter"><code>array1</code></em></p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int2</code></em>-th byte of <em class="parameter"><code>string1</code></em></p><p><em class="parameter"><code>int5</code></em>: <em class="parameter"><code>int4</code></em>-th byte of <em class="parameter"><code>ptr1</code></em></p><p><span class="emphasis"><em>Note:</em></span> Returns the n-th byte of <em class="parameter"><code>string1</code></em>, not the n-th utf8 char. Sizes of <em class="parameter"><code>string1</code></em> or <em class="parameter"><code>ptr1</code></em> are not checked.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0006">put</a></code></p><div class="example"><a name="id2727793"></a><p class="title"><b>Example<EFBFBD>34.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"abc" 1 get % 'b'
|
||
|
||
[ 10 20 30 ] 2 get % 30
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0099"></a><code class="function">getbyte</code> – get byte from memory</p><p>( <em class="parameter"><code>ptr1</code></em> — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: byte at <em class="parameter"><code>ptr1</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0107"></a><code class="function">getcwd</code> – get current working directory</p><p>( — <em class="parameter"><code>str1</code></em> )</p><p><em class="parameter"><code>str1</code></em>: file name</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2728216"></a><p class="title"><b>Example<EFBFBD>35.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
getcwd show % print working directory
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0103"></a><code class="function">getdword</code> – get dword from memory</p><p>( <em class="parameter"><code>ptr1</code></em> — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: dword at <em class="parameter"><code>ptr1</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0155"></a><code class="function">getkey</code> – get keyboard input</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: key (bit 0-7: ASCII, bit 8-15: scan code, bit 16-31: kbd status bits)</p><p><span class="emphasis"><em>Note:</em></span> the function does not block. If there is no key pressed, bits 0-15 will be 0.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0145"></a><code class="function">getlink</code> – - get link information</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>str1</code></em> <em class="parameter"><code>str2</code></em> <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int1</code></em>: link number</p><p><em class="parameter"><code>str1</code></em>: link label</p><p><em class="parameter"><code>str2</code></em>: link text</p><p><em class="parameter"><code>int1</code></em>: link text x-offset</p><p><em class="parameter"><code>int2</code></em>: link text row</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0140"></a><code class="function">getlinks</code> – - number of links in text</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: number of links in text.</p><p><span class="emphasis"><em>Note:</em></span> available after running <code class="function"><a class="link" href="#f_0137">formattext</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0079"></a><code class="function">getpalette</code> – get palette entry</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int1</code></em>: palette index</p><p><em class="parameter"><code>int2</code></em>: RGB value</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2729405"></a><p class="title"><b>Example<EFBFBD>36.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
11 dup getpalette not setpalette % invert color 11
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0064"></a><code class="function">getpixel</code> – read pixel from graphics memory</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: color; either 8-bit palette index or 24-bit RGB-value, depending on graphics mode.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2729584"></a><p class="title"><b>Example<EFBFBD>37.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
getpixel not setcolor putpixel % invert pixel color
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0138"></a><code class="function">gettextrows</code> – number of text rows</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: total number of text rows.</p><p><span class="emphasis"><em>Note:</em></span> available after running <code class="function"><a class="link" href="#f_0137">formattext</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0049"></a><code class="function">gettype</code> – get object type</p><p>( <em class="parameter"><code>obj1</code></em> — <em class="parameter"><code>int1</code></em> )</p><p>Returns the object type.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0050">settype</a></code></p><div class="example"><a name="id2729866"></a><p class="title"><b>Example<EFBFBD>38.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"abc" gettype % 4 (= string)
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0101"></a><code class="function">getword</code> – get word from memory</p><p>( <em class="parameter"><code>ptr1</code></em> — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: word at <em class="parameter"><code>ptr1</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0034"></a><code class="function">gt</code> – greater than</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>bool1</code></em> )</p><p>( <em class="parameter"><code>str1</code></em> <em class="parameter"><code>str2</code></em> — <em class="parameter"><code>bool2</code></em> )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>ptr2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>bool1</code></em>: true if <em class="parameter"><code>int1</code></em> > <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool2</code></em>: true if <em class="parameter"><code>str1</code></em> > <em class="parameter"><code>str2</code></em></p><p><em class="parameter"><code>bool3</code></em>: true if <em class="parameter"><code>ptr1</code></em> > <em class="parameter"><code>ptr2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0032">eq</a></code>, <code class="function"><a class="link" href="#f_0035">ge</a></code>, <code class="function"><a class="link" href="#f_0037">le</a></code>, <code class="function"><a class="link" href="#f_0036">lt</a></code>, <code class="function"><a class="link" href="#f_0033">ne</a></code></p><div class="example"><a name="id2730318"></a><p class="title"><b>Example<EFBFBD>39.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
7 4 gt % true
|
||
"abc" "abd" gt % false
|
||
/a 10 malloc def
|
||
/b a + 2 def
|
||
b a gt % true
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0152"></a><code class="function">idle</code> – run stuff when idle</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: 'kroete' data</p><p><em class="parameter"><code>int1</code></em>: direction (0 or 1)</p><p>Run 'kroete' animation while we're waiting for keyboard input.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0030"></a><code class="function">if</code> – typical 'if'</p><p>( <em class="parameter"><code>bool1</code></em> <em class="parameter"><code>code1</code></em> — )</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>code1</code></em> — )</p><p>( <em class="parameter"><code>undef1</code></em> <em class="parameter"><code>code1</code></em> — )</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>code1</code></em> — )</p><p><em class="parameter"><code>bool1</code></em>: contition</p><p><em class="parameter"><code>code1</code></em>: code start marker (see <code class="function"><a class="link" href="#f_0001">{</a></code>)</p><p><em class="parameter"><code>int1</code></em>: integer are automatically converted to boolean</p><p><em class="parameter"><code>undef1</code></em>: the undefined value is treated as 'false'</p><p><em class="parameter"><code>obj1</code></em>: strings, arrays, pointer are considered 'true'</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0013">exec</a></code>, <code class="function"><a class="link" href="#f_0044">exit</a></code>, <code class="function"><a class="link" href="#f_0047">for</a></code>, <code class="function"><a class="link" href="#f_0048">forall</a></code>, <code class="function"><a class="link" href="#f_0031">ifelse</a></code>, <code class="function"><a class="link" href="#f_0045">loop</a></code>, <code class="function"><a class="link" href="#f_0046">repeat</a></code>, <code class="function"><a class="link" href="#f_0043">return</a></code></p><div class="example"><a name="id2730805"></a><p class="title"><b>Example<EFBFBD>40.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
10 4 gt { "10 > 4" show } if
|
||
|
||
"" { "is always true" show } if % strings are always 'true'
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0031"></a><code class="function">ifelse</code> – typical 'if' / 'else'</p><p>( <em class="parameter"><code>bool1</code></em> <em class="parameter"><code>code1</code></em> <em class="parameter"><code>code2</code></em> — )</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>code1</code></em> <em class="parameter"><code>code2</code></em> — )</p><p>( <em class="parameter"><code>undef1</code></em> <em class="parameter"><code>code1</code></em> <em class="parameter"><code>code2</code></em> — )</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>code1</code></em> <em class="parameter"><code>code2</code></em> — )</p><p><em class="parameter"><code>bool1</code></em>: contition</p><p><em class="parameter"><code>code1</code></em>: code start marker (see <code class="function"><a class="link" href="#f_0001">{</a></code>) for 'true' branch</p><p><em class="parameter"><code>code2</code></em>: code start marker (see <code class="function"><a class="link" href="#f_0001">{</a></code>) for 'false' branch</p><p><em class="parameter"><code>int1</code></em>: integer are automatically converted to boolean</p><p><em class="parameter"><code>undef1</code></em>: the undefined value is treated as 'false'</p><p><em class="parameter"><code>obj1</code></em>: strings, arrays, pointer are considered 'true'</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0013">exec</a></code>, <code class="function"><a class="link" href="#f_0044">exit</a></code>, <code class="function"><a class="link" href="#f_0047">for</a></code>, <code class="function"><a class="link" href="#f_0048">forall</a></code>, <code class="function"><a class="link" href="#f_0030">if</a></code>, <code class="function"><a class="link" href="#f_0045">loop</a></code>, <code class="function"><a class="link" href="#f_0046">repeat</a></code>, <code class="function"><a class="link" href="#f_0043">return</a></code></p><div class="example"><a name="id2731069"></a><p class="title"><b>Example<EFBFBD>41.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
x1 x2 gt { "x1 > x2" } { "x1 <= x2" } ifelse show
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0075"></a><code class="function">image</code> – show image region</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> <em class="parameter"><code>int4</code></em> — )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: x, y position in image</p><p><em class="parameter"><code>int3</code></em>, <em class="parameter"><code>int4</code></em>: width, height of image region</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p><div class="example"><a name="id2731254"></a><p class="title"><b>Example<EFBFBD>42.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"xxx.jpg" findfile setimage % load and activate "xxx.jpg"
|
||
0 0 image.size image % draw whole image
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0055"></a><code class="function">image.colors</code> – image palette entries</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: number of colors in 8-bit PCX image.</p><p>8-bit modes use a color palette. An image uses the first <code class="function">image.colors</code> entries. If you want to define your own colors, use <code class="function">image.colors</code> to get the first free palette entry. For 16/32-bit modes, 0 is returned.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p></li><li><p><a name="f_0054"></a><code class="function">image.size</code> – graphics image size</p><p>( — <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: image width and height. The image is specified with <code class="function"><a class="link" href="#f_0068">setimage</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p><div class="example"><a name="id2731579"></a><p class="title"><b>Example<EFBFBD>43.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
image.size screen.size
|
||
exch 4 -1 roll sub 2 div 3 1 roll exch sub 2 div % center image
|
||
moveto 0 0 image.size image % draw it
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0097"></a><code class="function">inbyte</code> – get byte from i/o port</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int2</code></em>: byte from port <em class="parameter"><code>int1</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0012"></a><code class="function">index</code> – copy stack element</p><p>( <em class="parameter"><code>objN</code></em> ... <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>objN</code></em> ... <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>objM</code></em> )</p><p><em class="parameter"><code>objM</code></em>: M = <em class="parameter"><code>int1</code></em> + 1</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0010">dup</a></code>, <code class="function"><a class="link" href="#f_0038">exch</a></code>, <code class="function"><a class="link" href="#f_0011">over</a></code>, <code class="function"><a class="link" href="#f_0009">pop</a></code>, <code class="function"><a class="link" href="#f_0040">roll</a></code>, <code class="function"><a class="link" href="#f_0039">rot</a></code></p><div class="example"><a name="id2731979"></a><p class="title"><b>Example<EFBFBD>44.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/dup { 0 index } def
|
||
/over { 1 index } def
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0153"></a><code class="function">keepmode</code> – keep video mode</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em> = 1: keep video mode when starting kernel.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0037"></a><code class="function">le</code> – less or equal</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>bool1</code></em> )</p><p>( <em class="parameter"><code>str1</code></em> <em class="parameter"><code>str2</code></em> — <em class="parameter"><code>bool2</code></em> )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>ptr2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>bool1</code></em>: true if <em class="parameter"><code>int1</code></em> <= <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool2</code></em>: true if <em class="parameter"><code>str1</code></em> <= <em class="parameter"><code>str2</code></em></p><p><em class="parameter"><code>bool3</code></em>: true if <em class="parameter"><code>ptr1</code></em> <= <em class="parameter"><code>ptr2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0032">eq</a></code>, <code class="function"><a class="link" href="#f_0035">ge</a></code>, <code class="function"><a class="link" href="#f_0034">gt</a></code>, <code class="function"><a class="link" href="#f_0036">lt</a></code>, <code class="function"><a class="link" href="#f_0033">ne</a></code></p><div class="example"><a name="id2732422"></a><p class="title"><b>Example<EFBFBD>45.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
7 7 le % true
|
||
"abc" "abd" le % true
|
||
/a 10 malloc def
|
||
/b a + 2 def
|
||
b a le % false
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0007"></a><code class="function">length</code> – array, string or memory size</p><p>( <em class="parameter"><code>array1</code></em> — <em class="parameter"><code>int1</code></em> )</p><p>( <em class="parameter"><code>string1</code></em> — <em class="parameter"><code>int1</code></em> )</p><p>( <em class="parameter"><code>ptr1</code></em> — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: size of <em class="parameter"><code>array1</code></em> or <em class="parameter"><code>string1</code></em> or <em class="parameter"><code>ptr1</code></em></p><p>Returns the length of <em class="parameter"><code>string1</code></em> in bytes, not the number of Unicode chars. If <em class="parameter"><code>ptr1</code></em> doesn't point at the start of a memory area, <code class="function">length</code> returns the number of remaining bytes.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2732665"></a><p class="title"><b>Example<EFBFBD>46.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"abc" length % 3
|
||
|
||
[ 0 1 ] length % 2
|
||
|
||
/foo 10 malloc def
|
||
foo length % 10
|
||
foo 3 add length % 7
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0146"></a><code class="function">lineheight</code> – current line height</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: line height</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0066">currentfont</a></code>, <code class="function"><a class="link" href="#f_0067">fontheight</a></code>, <code class="function"><a class="link" href="#f_0065">setfont</a></code></p></li><li><p><a name="f_0062"></a><code class="function">lineto</code> – draw line</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: line end</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2732922"></a><p class="title"><b>Example<EFBFBD>47.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0 0 moveto screen.size lineto % draw diagonal
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0076"></a><code class="function">loadpalette</code> – load current palette</p><p>( — )</p><p>Activates current palette in 8-bit modes.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p></li><li><p><a name="f_0045"></a><code class="function">loop</code> – endless loop</p><p>( <em class="parameter"><code>code1</code></em> — )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0013">exec</a></code>, <code class="function"><a class="link" href="#f_0044">exit</a></code>, <code class="function"><a class="link" href="#f_0047">for</a></code>, <code class="function"><a class="link" href="#f_0048">forall</a></code>, <code class="function"><a class="link" href="#f_0030">if</a></code>, <code class="function"><a class="link" href="#f_0031">ifelse</a></code>, <code class="function"><a class="link" href="#f_0046">repeat</a></code>, <code class="function"><a class="link" href="#f_0043">return</a></code></p><div class="example"><a name="id2733167"></a><p class="title"><b>Example<EFBFBD>48.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/x 0 def { /x x 1 add def x 56 eq { exit } if } loop % loop until x == 56
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0036"></a><code class="function">lt</code> – less than</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>bool1</code></em> )</p><p>( <em class="parameter"><code>str1</code></em> <em class="parameter"><code>str2</code></em> — <em class="parameter"><code>bool2</code></em> )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>ptr2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>bool1</code></em>: true if <em class="parameter"><code>int1</code></em> < <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool2</code></em>: true if <em class="parameter"><code>str1</code></em> < <em class="parameter"><code>str2</code></em></p><p><em class="parameter"><code>bool3</code></em>: true if <em class="parameter"><code>ptr1</code></em> < <em class="parameter"><code>ptr2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0032">eq</a></code>, <code class="function"><a class="link" href="#f_0035">ge</a></code>, <code class="function"><a class="link" href="#f_0034">gt</a></code>, <code class="function"><a class="link" href="#f_0037">le</a></code>, <code class="function"><a class="link" href="#f_0033">ne</a></code></p><div class="example"><a name="id2733363"></a><p class="title"><b>Example<EFBFBD>49.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
7 4 lt % false
|
||
"abc" "abd" lt % true
|
||
/a 10 malloc def
|
||
/b a + 2 def
|
||
b a lt % false
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0083"></a><code class="function">malloc</code> – allocate memory</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>ptr1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: memory size</p><p><em class="parameter"><code>ptr1</code></em>: pointer to memory area</p><p><span class="emphasis"><em>Note:</em></span> Use <code class="function"><a class="link" href="#f_0084">free</a></code> to free <em class="parameter"><code>ptr1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2733567"></a><p class="title"><b>Example<EFBFBD>50.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/foo 256 malloc def % allocate 256 bytes...
|
||
foo free % and free it
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0022"></a><code class="function">max</code> – maximum</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: max(<em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2733773"></a><p class="title"><b>Example<EFBFBD>51.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
4 11 max % 11
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0074"></a><code class="function">memcpy</code> – copy memory</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>ptr2</code></em> <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: destination</p><p><em class="parameter"><code>ptr2</code></em>: source</p><p><em class="parameter"><code>int1</code></em>: size</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2733967"></a><p class="title"><b>Example<EFBFBD>52.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/a 10 malloc def
|
||
/b 10 malloc def
|
||
a 1 100 put % a[1] = 100
|
||
b a 10 memcpy % copy a to b
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0085"></a><code class="function">memsize</code> – report available memory size</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int1</code></em>: memory region (0 ... 3)</p><p><em class="parameter"><code>int2</code></em>: total free memory</p><p><em class="parameter"><code>int3</code></em>: size of largest free block</p><p>Region 0 is memory in the low 640kB range. Region >= 1 are typically 1 MB extended memory per region.</p><p><span class="emphasis"><em>Note:</em></span> available memory depends on the boot loader.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0088">snprintf</a></code></p><div class="example"><a name="id2734174"></a><p class="title"><b>Example<EFBFBD>53.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0 memsize pop 1024 lt { "less than 1kB left" show } if
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0021"></a><code class="function">min</code> – minimum</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: min(<em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2734380"></a><p class="title"><b>Example<EFBFBD>54.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
4 11 min % 4
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0018"></a><code class="function">mod</code> – remainder</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> % <em class="parameter"><code>int2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2734583"></a><p class="title"><b>Example<EFBFBD>55.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
17 3 mod % 2
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0126"></a><code class="function">mod.load</code> – assign mod file to player</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>ptr1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: player</p><p><em class="parameter"><code>ptr1</code></em>: mod file</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0127"></a><code class="function">mod.play</code> – play mod file</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: player</p><p><em class="parameter"><code>int2</code></em>: song start</p><p><span class="emphasis"><em>Note:</em></span> sounds are played using the PC speaker.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0128"></a><code class="function">mod.playsample</code> – play mod sample</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> <em class="parameter"><code>int4</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: player</p><p><em class="parameter"><code>int2</code></em>: channel</p><p><em class="parameter"><code>int3</code></em>: sample number</p><p><em class="parameter"><code>int4</code></em>: pitch</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0053"></a><code class="function">monitorsize</code> – monitor size</p><p>( — <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: width and height</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0115">colorbits</a></code>, <code class="function"><a class="link" href="#f_0111">currentmode</a></code>, <code class="function"><a class="link" href="#f_0051">screen.size</a></code>, <code class="function"><a class="link" href="#f_0110">setmode</a></code>, <code class="function"><a class="link" href="#f_0114">sysinfo</a></code>, <code class="function"><a class="link" href="#f_0113">videomodeinfo</a></code>, <code class="function"><a class="link" href="#f_0112">videomodes</a></code>, <code class="function"><a class="link" href="#f_0052">vscreen.size</a></code></p></li><li><p><a name="f_0059"></a><code class="function">moveto</code> – set cursor position</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: x, y (upper left: 0, 0).</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2735399"></a><p class="title"><b>Example<EFBFBD>56.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
200 100 moveto "Hello" show % print "Hello" at (200, 100)
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0016"></a><code class="function">mul</code> – multiplication</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> * <em class="parameter"><code>int2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2735603"></a><p class="title"><b>Example<EFBFBD>57.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
2 3 mul % 6
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0033"></a><code class="function">ne</code> – not equal</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>bool1</code></em> )</p><p>( <em class="parameter"><code>str1</code></em> <em class="parameter"><code>str2</code></em> — <em class="parameter"><code>bool2</code></em> )</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>obj2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>bool1</code></em>: false if <em class="parameter"><code>int1</code></em> == <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool2</code></em>: false if <em class="parameter"><code>str1</code></em> == <em class="parameter"><code>str2</code></em></p><p><em class="parameter"><code>bool3</code></em>: false if <em class="parameter"><code>obj1</code></em> and <em class="parameter"><code>obj2</code></em> are identical</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0032">eq</a></code>, <code class="function"><a class="link" href="#f_0035">ge</a></code>, <code class="function"><a class="link" href="#f_0034">gt</a></code>, <code class="function"><a class="link" href="#f_0037">le</a></code>, <code class="function"><a class="link" href="#f_0036">lt</a></code></p><div class="example"><a name="id2735800"></a><p class="title"><b>Example<EFBFBD>58.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
1 3 ne % true
|
||
"abc" "abc" ne % false
|
||
/a [ 1 2 ] def
|
||
/b a def
|
||
a [ 1 2 ] ne % true (not the same array)
|
||
a b ne % false
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0019"></a><code class="function">neg</code> – negation</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int2</code></em>: -<em class="parameter"><code>int1</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2735995"></a><p class="title"><b>Example<EFBFBD>59.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
5 neg % -5
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0026"></a><code class="function">not</code> – logical or arithmetical 'not'</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>int2</code></em> )</p><p>( <em class="parameter"><code>bool1</code></em> — <em class="parameter"><code>bool2</code></em> )</p><p><em class="parameter"><code>int2</code></em>: -<em class="parameter"><code>int1</code></em> - 1</p><p><em class="parameter"><code>bool2</code></em>: !<em class="parameter"><code>bool1</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2736216"></a><p class="title"><b>Example<EFBFBD>60.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
true not % false
|
||
|
||
0 not % -1
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0149"></a><code class="function">notimeout</code> – turn off initial boot loader timeout</p><p>( — )</p><p>Turns off any automatic booting.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0024"></a><code class="function">or</code> – logical or arithmetical 'or'</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p>( <em class="parameter"><code>bool1</code></em> <em class="parameter"><code>bool2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> | <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool3</code></em>: bool || <em class="parameter"><code>bool2</code></em></p><p><span class="emphasis"><em>Note:</em></span> Mixing boolean and integer argument types is possible, in this case integers are converted to boolean first.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2736698"></a><p class="title"><b>Example<EFBFBD>61.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
true false or % true
|
||
|
||
3 6 or % 7
|
||
|
||
10 true or % gives true, but please avoid this
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0098"></a><code class="function">outbyte</code> – write byte to i/o port</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — )</p><p>Write byte <em class="parameter"><code>int2</code></em> to port <em class="parameter"><code>int1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0011"></a><code class="function">over</code> – copy TOS-1</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>obj2</code></em> — <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>obj2</code></em> <em class="parameter"><code>obj1</code></em> )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0010">dup</a></code>, <code class="function"><a class="link" href="#f_0038">exch</a></code>, <code class="function"><a class="link" href="#f_0012">index</a></code>, <code class="function"><a class="link" href="#f_0009">pop</a></code>, <code class="function"><a class="link" href="#f_0040">roll</a></code>, <code class="function"><a class="link" href="#f_0039">rot</a></code></p></li><li><p><a name="f_0009"></a><code class="function">pop</code> – remove TOS</p><p>( <em class="parameter"><code>obj1</code></em> — )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0010">dup</a></code>, <code class="function"><a class="link" href="#f_0038">exch</a></code>, <code class="function"><a class="link" href="#f_0012">index</a></code>, <code class="function"><a class="link" href="#f_0011">over</a></code>, <code class="function"><a class="link" href="#f_0040">roll</a></code>, <code class="function"><a class="link" href="#f_0039">rot</a></code></p><div class="example"><a name="id2737166"></a><p class="title"><b>Example<EFBFBD>62.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
% status: true or false
|
||
"bad" status { pop "ok" } if % "bad" or "ok"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0117"></a><code class="function">poweroff</code> – switch computer off</p><p>( — )</p><p><span class="emphasis"><em>Note:</em></span> uses APM, not ACPI.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0006"></a><code class="function">put</code> – set an array, string or memory element</p><p>( <em class="parameter"><code>array1</code></em> <em class="parameter"><code>int1</code></em> <em class="parameter"><code>obj1</code></em> — )</p><p>( <em class="parameter"><code>string1</code></em> <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> — )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>int4</code></em> <em class="parameter"><code>int5</code></em> — )</p><p><em class="parameter"><code>int1</code></em>-th element of <em class="parameter"><code>array1</code></em> = <em class="parameter"><code>obj1</code></em></p><p><em class="parameter"><code>int2</code></em>-th byte of <em class="parameter"><code>string1</code></em> = <em class="parameter"><code>int3</code></em></p><p><em class="parameter"><code>int4</code></em>-th byte of <em class="parameter"><code>ptr1</code></em> = <em class="parameter"><code>int5</code></em></p><p><span class="emphasis"><em>Note:</em></span> Sets the n-th byte of <em class="parameter"><code>string1</code></em>, not the n-th utf8 char. Sizes of <em class="parameter"><code>string1</code></em> or <em class="parameter"><code>ptr1</code></em> are not checked.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0005">get</a></code></p><div class="example"><a name="id2737589"></a><p class="title"><b>Example<EFBFBD>63.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/foo [ 10 20 30 ] def
|
||
foo 2 77 put % foo = [ 10 20 77 ]
|
||
|
||
/foo 10 string def
|
||
foo 0 'a' put
|
||
foo 1 'b' put % foo = "ab"
|
||
|
||
But don't do this:
|
||
"abc" 1 'X' put % modifies string constant "abc" to "aXc"!
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0100"></a><code class="function">putbyte</code> – write byte to memory</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>int1</code></em> — )</p><p>Write byte <em class="parameter"><code>int1</code></em> at <em class="parameter"><code>ptr1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0104"></a><code class="function">putdword</code> – write dword to memory</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>int1</code></em> — )</p><p>Write dword <em class="parameter"><code>int1</code></em> at <em class="parameter"><code>ptr1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0063"></a><code class="function">putpixel</code> – draw single pixel</p><p>( — )</p><p>Draw pixel in current color at current cursor position.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2738278"></a><p class="title"><b>Example<EFBFBD>64.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
blue setcolor
|
||
0 0 moveto putpixel % blue dot at upper left corner
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0102"></a><code class="function">putword</code> – write word to memory</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>int1</code></em> — )</p><p>Write word <em class="parameter"><code>int1</code></em> at <em class="parameter"><code>ptr1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0118"></a><code class="function">reboot</code> – reboot computer</p><p>( — )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0046"></a><code class="function">repeat</code> – repeat code</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>code1</code></em> — )</p><p>Repeat <em class="parameter"><code>code1</code></em> <em class="parameter"><code>int1</code></em> times.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0013">exec</a></code>, <code class="function"><a class="link" href="#f_0044">exit</a></code>, <code class="function"><a class="link" href="#f_0047">for</a></code>, <code class="function"><a class="link" href="#f_0048">forall</a></code>, <code class="function"><a class="link" href="#f_0030">if</a></code>, <code class="function"><a class="link" href="#f_0031">ifelse</a></code>, <code class="function"><a class="link" href="#f_0045">loop</a></code>, <code class="function"><a class="link" href="#f_0043">return</a></code></p><div class="example"><a name="id2738909"></a><p class="title"><b>Example<EFBFBD>65.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
3 { "X" show } repeat % print "XXX"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0082"></a><code class="function">restorescreen</code> – restore screen area</p><p>( <em class="parameter"><code>ptr1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: buffer with image data; use <code class="function"><a class="link" href="#f_0084">free</a></code> to free the buffer</p><p><span class="emphasis"><em>Note:</em></span> width and height are taken from buffer. Does not actually free <em class="parameter"><code>ptr1</code></em> - use <code class="function"><a class="link" href="#f_0084">free</a></code> explicitly.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p><div class="example"><a name="id2739090"></a><p class="title"><b>Example<EFBFBD>66.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0 0 moveto 100 100 savescreen % save upper left 100x100 section...
|
||
300 200 moveto dup restorescreen % and copy it to 300x200
|
||
free % free memory
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0043"></a><code class="function">return</code> – leave current function</p><p>( — )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0013">exec</a></code>, <code class="function"><a class="link" href="#f_0044">exit</a></code>, <code class="function"><a class="link" href="#f_0047">for</a></code>, <code class="function"><a class="link" href="#f_0048">forall</a></code>, <code class="function"><a class="link" href="#f_0030">if</a></code>, <code class="function"><a class="link" href="#f_0031">ifelse</a></code>, <code class="function"><a class="link" href="#f_0045">loop</a></code>, <code class="function"><a class="link" href="#f_0046">repeat</a></code></p><div class="example"><a name="id2739205"></a><p class="title"><b>Example<EFBFBD>67.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/x { % expects key on TOS
|
||
dup 'a' eq { pop do_a return } if
|
||
dup 'b' eq { pop do_b return } if
|
||
dup 'c' eq { pop do_c return } if
|
||
pop
|
||
} def
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0060"></a><code class="function">rmoveto</code> – set relative cursor position</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: x-ofs, y-ofs.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2739396"></a><p class="title"><b>Example<EFBFBD>68.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
200 100 moveto
|
||
"Hello" show
|
||
30 0 rmoveto "world!" % "Hello world!" (approx.)
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0040"></a><code class="function">roll</code> – rotate stack elements</p><p>( <em class="parameter"><code>obj1</code></em> ... <em class="parameter"><code>objN</code></em> <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>objX</code></em> ... <em class="parameter"><code>objY</code></em> )</p><p><em class="parameter"><code>int1</code></em>: number of elements to rotate</p><p><em class="parameter"><code>int2</code></em>: amount</p><p><em class="parameter"><code>objX</code></em>: X = (1 - <em class="parameter"><code>int2</code></em>) mod <em class="parameter"><code>int1</code></em></p><p><em class="parameter"><code>objY</code></em>: Y = (N - <em class="parameter"><code>int2</code></em>) mod <em class="parameter"><code>int1</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0010">dup</a></code>, <code class="function"><a class="link" href="#f_0038">exch</a></code>, <code class="function"><a class="link" href="#f_0012">index</a></code>, <code class="function"><a class="link" href="#f_0011">over</a></code>, <code class="function"><a class="link" href="#f_0009">pop</a></code>, <code class="function"><a class="link" href="#f_0039">rot</a></code></p><div class="example"><a name="id2739578"></a><p class="title"><b>Example<EFBFBD>69.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/rot { 3 -1 roll } def
|
||
1 2 3 4 5 5 2 roll % leaves: 4 5 1 2 3
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0039"></a><code class="function">rot</code> – rotate TOS, TOS-1, TOS-2</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>obj2</code></em> <em class="parameter"><code>obj3</code></em> — <em class="parameter"><code>obj2</code></em> <em class="parameter"><code>obj3</code></em> <em class="parameter"><code>obj1</code></em> )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0010">dup</a></code>, <code class="function"><a class="link" href="#f_0038">exch</a></code>, <code class="function"><a class="link" href="#f_0012">index</a></code>, <code class="function"><a class="link" href="#f_0011">over</a></code>, <code class="function"><a class="link" href="#f_0009">pop</a></code>, <code class="function"><a class="link" href="#f_0040">roll</a></code></p><div class="example"><a name="id2739705"></a><p class="title"><b>Example<EFBFBD>70.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/a 4 array def
|
||
8
|
||
a 1 rot put % a[1] = 8
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0081"></a><code class="function">savescreen</code> – save screen area</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>ptr1</code></em> )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: width, height of screen area</p><p><em class="parameter"><code>ptr1</code></em>: buffer with image data; use <code class="function"><a class="link" href="#f_0084">free</a></code> to free the buffer</p><p><span class="emphasis"><em>Note:</em></span> width and height are stored in buffer.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p><div class="example"><a name="id2739895"></a><p class="title"><b>Example<EFBFBD>71.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0 0 moveto screen.size savescreen % save entire screen
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0051"></a><code class="function">screen.size</code> – screen size in pixel</p><p>( — <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: width, height</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0115">colorbits</a></code>, <code class="function"><a class="link" href="#f_0111">currentmode</a></code>, <code class="function"><a class="link" href="#f_0053">monitorsize</a></code>, <code class="function"><a class="link" href="#f_0110">setmode</a></code>, <code class="function"><a class="link" href="#f_0114">sysinfo</a></code>, <code class="function"><a class="link" href="#f_0113">videomodeinfo</a></code>, <code class="function"><a class="link" href="#f_0112">videomodes</a></code>, <code class="function"><a class="link" href="#f_0052">vscreen.size</a></code></p><div class="example"><a name="id2740034"></a><p class="title"><b>Example<EFBFBD>72.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
blue setcolor
|
||
0 0 moveto screen.size fillrect % draw blue screen
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0056"></a><code class="function">setcolor</code> – set active drawing color</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: palette index (8-bit mode) or 24-bit RGB-value (16/32-bit modes).</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2740212"></a><p class="title"><b>Example<EFBFBD>73.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0xff0000 setcolor % continue in red...
|
||
0xff00 setcolor % or green...
|
||
0xff setcolor % or blue
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0133"></a><code class="function">seteotchar</code> – set alternative end-of-text char</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: eot char</p><p>Normally strings are 0 terminated. <code class="function">seteotchar</code> lets you define an additional char text functions recognize.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0065"></a><code class="function">setfont</code> – set font</p><p>( <em class="parameter"><code>ptr1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: font data (e.g. font file).</p><p><span class="emphasis"><em>Note:</em></span> If bit 31 in <em class="parameter"><code>ptr1</code></em> is set, font is in 'password-mode' - it prints only '*'s.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0066">currentfont</a></code>, <code class="function"><a class="link" href="#f_0067">fontheight</a></code>, <code class="function"><a class="link" href="#f_0146">lineheight</a></code></p><div class="example"><a name="id2740521"></a><p class="title"><b>Example<EFBFBD>74.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"16x16.fnt" findfile setfont % set 16x16 font
|
||
|
||
/pwmode { 1 settype 0x80000000 or 12 settype } def
|
||
currentfont pwmode setfont % now in password mode
|
||
"abc" show % print "***"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0068"></a><code class="function">setimage</code> – set active image</p><p>( <em class="parameter"><code>ptr1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: image data. Either JPG or PCX file.</p><p><span class="emphasis"><em>Note:</em></span> JPG is only supported in 16/32-bit modes.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p><div class="example"><a name="id2740679"></a><p class="title"><b>Example<EFBFBD>75.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"foo.jpg" findfile setimage % load and use "foo.jpg"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0143"></a><code class="function">setlink</code> – select link</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: link number</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0135"></a><code class="function">setmaxrows</code> – maximum number of text rows to display</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: maximum number of text rows to display in a single <code class="function"><a class="link" href="#f_0072">show</a></code> command.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0110"></a><code class="function">setmode</code> – set video mode</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>bool1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: VESA or VGA mode number</p><p><em class="parameter"><code>bool1</code></em>: true = mode is set, false = failed</p><p><span class="emphasis"><em>Note:</em></span> if video mode setting fails, the old mode is restored, but the screen contents is undefined.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0115">colorbits</a></code>, <code class="function"><a class="link" href="#f_0111">currentmode</a></code>, <code class="function"><a class="link" href="#f_0053">monitorsize</a></code>, <code class="function"><a class="link" href="#f_0051">screen.size</a></code>, <code class="function"><a class="link" href="#f_0114">sysinfo</a></code>, <code class="function"><a class="link" href="#f_0113">videomodeinfo</a></code>, <code class="function"><a class="link" href="#f_0112">videomodes</a></code>, <code class="function"><a class="link" href="#f_0052">vscreen.size</a></code></p></li><li><p><a name="f_0078"></a><code class="function">setpalette</code> – set palette entry</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: palette index</p><p><em class="parameter"><code>int2</code></em>: RGB value</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2741435"></a><p class="title"><b>Example<EFBFBD>76.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/red 11 0xff0000 def % color 11 = red
|
||
/yellow 12 0xffff00 def % color 12 = yellow
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0139"></a><code class="function">setstartrow</code> – set start row</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: start row for next <code class="function"><a class="link" href="#f_0072">show</a></code> command.</p><p><span class="emphasis"><em>Note:</em></span> if a start row > 0 is set, the argument to <code class="function"><a class="link" href="#f_0072">show</a></code> is irrelevant. Instead the internal data built during the last <code class="function"><a class="link" href="#f_0137">formattext</a></code> is used.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0141"></a><code class="function">settextcolors</code> – - set text markup colors</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> <em class="parameter"><code>int4</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: normal color</p><p><em class="parameter"><code>int2</code></em>: highlight color</p><p><em class="parameter"><code>int3</code></em>: link color</p><p><em class="parameter"><code>int4</code></em>: selected link color</p><p><span class="emphasis"><em>Note:</em></span> <em class="parameter"><code>int1</code></em> can be changed using <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, too.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0058"></a><code class="function">settextmodecolor</code> – set color to be used in text mode</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: text mode color</p><p><span class="emphasis"><em>Note:</em></span> You only need this in case you're running in text mode (practically never).</p></li><li><p><a name="f_0131"></a><code class="function">settextwrap</code> – set text wrap column</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: text wrap column; set to 0 to turn text wrapping off.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p></li><li><p><a name="f_0070"></a><code class="function">settransparency</code> – set transparency</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: transparency for <code class="function"><a class="link" href="#f_0087">fillrect</a></code> operations; valid values are 0 - 256.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p></li><li><p><a name="f_0080"></a><code class="function">settransparentcolor</code> – set color used for transparency</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p>When doing an <code class="function"><a class="link" href="#f_0075">image</a></code> operation, pixels with this color are not copied. Something like an alpha channel, actually. Works only with PCX images. Not at all related to <code class="function"><a class="link" href="#f_0070">settransparency</a></code></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0077">unpackimage</a></code></p></li><li><p><a name="f_0050"></a><code class="function">settype</code> – set object type</p><p>( <em class="parameter"><code>obj1</code></em> <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>obj2</code></em> )</p><p><em class="parameter"><code>obj2</code></em>: <em class="parameter"><code>obj1</code></em> with type changed to <em class="parameter"><code>int1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0049">gettype</a></code></p><div class="example"><a name="id2742616"></a><p class="title"><b>Example<EFBFBD>77.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
% PS-like 'string' function
|
||
/string { 1 add malloc 4 settype } def % 4 = string type
|
||
10 string % new empty string of length 10
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0027"></a><code class="function">shl</code> – shift left</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> << <em class="parameter"><code>int2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2742823"></a><p class="title"><b>Example<EFBFBD>78.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
5 2 shl % 20
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0072"></a><code class="function">show</code> – print text</p><p>( <em class="parameter"><code>str1</code></em> — )</p><p>Print <em class="parameter"><code>str1</code></em> in current color using current font.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0057">currentcolor</a></code>, <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0061">currentpoint</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0071">currenttransparency</a></code>, <code class="function"><a class="link" href="#f_0087">fillrect</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0079">getpalette</a></code>, <code class="function"><a class="link" href="#f_0064">getpixel</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0062">lineto</a></code>, <code class="function"><a class="link" href="#f_0059">moveto</a></code>, <code class="function"><a class="link" href="#f_0063">putpixel</a></code>, <code class="function"><a class="link" href="#f_0060">rmoveto</a></code>, <code class="function"><a class="link" href="#f_0056">setcolor</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0078">setpalette</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0070">settransparency</a></code>, <code class="function"><a class="link" href="#f_0073">strsize</a></code></p><div class="example"><a name="id2743172"></a><p class="title"><b>Example<EFBFBD>79.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"Hello world!" show % print "Hello world!"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0028"></a><code class="function">shr</code> – shift right</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> >> <em class="parameter"><code>int2</code></em></p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2743376"></a><p class="title"><b>Example<EFBFBD>80.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
15 2 shr % 3
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0088"></a><code class="function">snprintf</code> – C-style snprintf</p><p>( <em class="parameter"><code>obj1</code></em> ... <em class="parameter"><code>objN</code></em> <em class="parameter"><code>str1</code></em> <em class="parameter"><code>int1</code></em> <em class="parameter"><code>ptr1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: buffer</p><p><em class="parameter"><code>int1</code></em>: buffer size</p><p><em class="parameter"><code>str1</code></em>: format string</p><p><em class="parameter"><code>obj1</code></em> ... <em class="parameter"><code>objN</code></em>: printf arguments</p><p><span class="emphasis"><em>Note:</em></span> reversed argument order!</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0004">]</a></code>, <code class="function"><a class="link" href="#f_0008">array</a></code>, <code class="function"><a class="link" href="#f_0108">chdir</a></code>, <code class="function"><a class="link" href="#f_0086">dumpmem</a></code>, <code class="function"><a class="link" href="#f_0106">filesize</a></code>, <code class="function"><a class="link" href="#f_0105">findfile</a></code>, <code class="function"><a class="link" href="#f_0084">free</a></code>, <code class="function"><a class="link" href="#f_0107">getcwd</a></code>, <code class="function"><a class="link" href="#f_0007">length</a></code>, <code class="function"><a class="link" href="#f_0083">malloc</a></code>, <code class="function"><a class="link" href="#f_0074">memcpy</a></code>, <code class="function"><a class="link" href="#f_0085">memsize</a></code></p><div class="example"><a name="id2743602"></a><p class="title"><b>Example<EFBFBD>81.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
/sprintf {
|
||
dup 12 settype length exch snprintf % 12 = pointer type
|
||
} def
|
||
|
||
/buf 100 string def
|
||
"bar" "foo" 3 "%d %s %s" buf sprintf
|
||
buf show % print "3 foo bar"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0125"></a><code class="function">sound.done</code> – turn off sound subsystem</p><p>( — )</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0122"></a><code class="function">sound.getsamplerate</code> – current sample rate</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: sample rate</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0120"></a><code class="function">sound.getvolume</code> – current sound volume</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: volume (0 .. 100)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0124"></a><code class="function">sound.play</code> – play sound</p><p>( — )</p><p><span class="emphasis"><em>Note:</em></span> obsolete. Sounds are played using the PC speaker.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0123"></a><code class="function">sound.setsamplerate</code> – set sample rate</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: sample rate</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0121"></a><code class="function">sound.setvolume</code> – set sound volume</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: volume (0 .. 100)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0073"></a><code class="function">strsize</code> – text dimensions</p><p>( <em class="parameter"><code>str1</code></em> — <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: width, height of <em class="parameter"><code>str1</code></em>.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0134">currenteotchar</a></code>, <code class="function"><a class="link" href="#f_0144">currentlink</a></code>, <code class="function"><a class="link" href="#f_0136">currentmaxrows</a></code>, <code class="function"><a class="link" href="#f_0142">currenttextcolors</a></code>, <code class="function"><a class="link" href="#f_0132">currenttextwrap</a></code>, <code class="function"><a class="link" href="#f_0147">currenttitle</a></code>, <code class="function"><a class="link" href="#f_0137">formattext</a></code>, <code class="function"><a class="link" href="#f_0145">getlink</a></code>, <code class="function"><a class="link" href="#f_0140">getlinks</a></code>, <code class="function"><a class="link" href="#f_0138">gettextrows</a></code>, <code class="function"><a class="link" href="#f_0133">seteotchar</a></code>, <code class="function"><a class="link" href="#f_0143">setlink</a></code>, <code class="function"><a class="link" href="#f_0135">setmaxrows</a></code>, <code class="function"><a class="link" href="#f_0139">setstartrow</a></code>, <code class="function"><a class="link" href="#f_0141">settextcolors</a></code>, <code class="function"><a class="link" href="#f_0131">settextwrap</a></code>, <code class="function"><a class="link" href="#f_0072">show</a></code></p><div class="example"><a name="id2744650"></a><p class="title"><b>Example<EFBFBD>82.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"Hi there!"
|
||
dup strsize pop neg 0 rmoveto show % print "Hi there!" right aligned
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0119"></a><code class="function">strstr</code> – find string in string</p><p>( <em class="parameter"><code>str1</code></em> <em class="parameter"><code>str2</code></em> — <em class="parameter"><code>int1</code></em> )</p><p>Search for <em class="parameter"><code>str2</code></em> in <em class="parameter"><code>str1</code></em>.</p><p><em class="parameter"><code>int1</code></em>: offset of <em class="parameter"><code>str2</code></em> in <em class="parameter"><code>str1</code></em> + 1 if found; otherwise 0.</p><p><span class="emphasis"><em>Note:</em></span> a bit strange, I know.</p><div class="example"><a name="id2744738"></a><p class="title"><b>Example<EFBFBD>83.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"abcd" "c" strstr % 3 (not 2)
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0015"></a><code class="function">sub</code> – subtraction</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p>( <em class="parameter"><code>string1</code></em> <em class="parameter"><code>int4</code></em> — <em class="parameter"><code>string2</code></em> )</p><p>( <em class="parameter"><code>ptr1</code></em> <em class="parameter"><code>int5</code></em> — <em class="parameter"><code>ptr2</code></em> )</p><p>( <em class="parameter"><code>string3</code></em> <em class="parameter"><code>string4</code></em> — <em class="parameter"><code>int6</code></em> )</p><p>( <em class="parameter"><code>ptr2</code></em> <em class="parameter"><code>ptr3</code></em> — <em class="parameter"><code>int7</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> - <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>string2</code></em>: substring of <em class="parameter"><code>string1</code></em> at offset -<em class="parameter"><code>int4</code></em></p><p><em class="parameter"><code>int6</code></em>: <em class="parameter"><code>string3</code></em> - <em class="parameter"><code>string4</code></em></p><p><em class="parameter"><code>int7</code></em>: <em class="parameter"><code>ptr2</code></em> - <em class="parameter"><code>ptr3</code></em></p><p><span class="emphasis"><em>Note:</em></span> Strings are treated as byte sequences, not Unicode chars. Boundaries of <em class="parameter"><code>string1</code></em> and <em class="parameter"><code>ptr1</code></em> are not checked.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0025">xor</a></code></p><div class="example"><a name="id2745099"></a><p class="title"><b>Example<EFBFBD>84.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
3 1 sub % 2
|
||
|
||
"abcd" 3 add % "d"
|
||
2 sub % "bcd"
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0095"></a><code class="function">sysconfig</code> – get pointer to boot loader config data</p><p>( — <em class="parameter"><code>ptr1</code></em> )</p><p><em class="parameter"><code>ptr1</code></em>: boot loader config data (32 bytes)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0114"></a><code class="function">sysinfo</code> – return system info</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>obj1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: info type</p><p><em class="parameter"><code>obj1</code></em>: info (or .undef)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0115">colorbits</a></code>, <code class="function"><a class="link" href="#f_0111">currentmode</a></code>, <code class="function"><a class="link" href="#f_0053">monitorsize</a></code>, <code class="function"><a class="link" href="#f_0051">screen.size</a></code>, <code class="function"><a class="link" href="#f_0110">setmode</a></code>, <code class="function"><a class="link" href="#f_0113">videomodeinfo</a></code>, <code class="function"><a class="link" href="#f_0112">videomodes</a></code>, <code class="function"><a class="link" href="#f_0052">vscreen.size</a></code></p><div class="example"><a name="id2745487"></a><p class="title"><b>Example<EFBFBD>85.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0 sysinfo % video mem size in kb
|
||
1 sysinfo % gfx card oem string
|
||
2 sysinfo % gfx card vendor string
|
||
3 sysinfo % gfx card product string
|
||
4 sysinfo % gfx card revision string
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0156"></a><code class="function">test1</code> – for internal testing</p><p>( <em class="parameter"><code>ptr1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: some value with obscure meaning</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p><div class="example"><a name="id2745747"></a><p class="title"><b>Example<EFBFBD>86.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
0x123 test1
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0150"></a><code class="function">time</code> – get current time</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: time in seconds since midnight.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0148">usleep</a></code></p></li><li><p><a name="f_0042"></a><code class="function">trace</code> – single step</p><p>( — )</p><p>Enter single step mode. Waits for a keypress after every instruction. Tab sets a temporary breakpoint after the current instruction and continues until it reaches it. Leave this mode by pressing Esc.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0041">dtrace</a></code></p></li><li><p><a name="f_0077"></a><code class="function">unpackimage</code> – unpack image region into buffer</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> <em class="parameter"><code>int4</code></em> — <em class="parameter"><code>ptr1</code></em> )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: x, y position in image</p><p><em class="parameter"><code>int3</code></em>, <em class="parameter"><code>int4</code></em>: width, height of image region</p><p><em class="parameter"><code>ptr1</code></em>: buffer with image data; use <code class="function"><a class="link" href="#f_0084">free</a></code> to free the buffer</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0154">blend</a></code>, <code class="function"><a class="link" href="#f_0069">currentimage</a></code>, <code class="function"><a class="link" href="#f_0075">image</a></code>, <code class="function"><a class="link" href="#f_0055">image.colors</a></code>, <code class="function"><a class="link" href="#f_0054">image.size</a></code>, <code class="function"><a class="link" href="#f_0076">loadpalette</a></code>, <code class="function"><a class="link" href="#f_0082">restorescreen</a></code>, <code class="function"><a class="link" href="#f_0081">savescreen</a></code>, <code class="function"><a class="link" href="#f_0068">setimage</a></code>, <code class="function"><a class="link" href="#f_0080">settransparentcolor</a></code></p><div class="example"><a name="id2746242"></a><p class="title"><b>Example<EFBFBD>87.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
"xxx.jpg" findfile setimage % load and activate "xxx.jpg"
|
||
0 0 10 10 unpackimage % unpack upper left 10x10 region
|
||
/img exch def % img = buffer
|
||
|
||
0 10 100 {
|
||
0 exch moveto
|
||
img restorescreen
|
||
} for % repeat image section horizontally 10 times
|
||
|
||
img free % free it
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0148"></a><code class="function">usleep</code> – sleep micro seconds</p><p>( <em class="parameter"><code>int1</code></em> — )</p><p><em class="parameter"><code>int1</code></em>: micro seconds to sleep.</p><p><span class="emphasis"><em>Note:</em></span> the actual granularity is 18Hz, so don't make up too sophisticated timings.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0096">64bit</a></code>, <code class="function"><a class="link" href="#f_0109">_readsector</a></code>, <code class="function"><a class="link" href="#f_0151">date</a></code>, <code class="function"><a class="link" href="#f_0116">eject</a></code>, <code class="function"><a class="link" href="#f_0099">getbyte</a></code>, <code class="function"><a class="link" href="#f_0103">getdword</a></code>, <code class="function"><a class="link" href="#f_0155">getkey</a></code>, <code class="function"><a class="link" href="#f_0101">getword</a></code>, <code class="function"><a class="link" href="#f_0152">idle</a></code>, <code class="function"><a class="link" href="#f_0097">inbyte</a></code>, <code class="function"><a class="link" href="#f_0153">keepmode</a></code>, <code class="function"><a class="link" href="#f_0149">notimeout</a></code>, <code class="function"><a class="link" href="#f_0098">outbyte</a></code>, <code class="function"><a class="link" href="#f_0117">poweroff</a></code>, <code class="function"><a class="link" href="#f_0100">putbyte</a></code>, <code class="function"><a class="link" href="#f_0104">putdword</a></code>, <code class="function"><a class="link" href="#f_0102">putword</a></code>, <code class="function"><a class="link" href="#f_0118">reboot</a></code>, <code class="function"><a class="link" href="#f_0095">sysconfig</a></code>, <code class="function"><a class="link" href="#f_0156">test1</a></code>, <code class="function"><a class="link" href="#f_0150">time</a></code></p></li><li><p><a name="f_0113"></a><code class="function">videomodeinfo</code> – return video mode info</p><p>( <em class="parameter"><code>int1</code></em> — <em class="parameter"><code>int2</code></em> <em class="parameter"><code>int3</code></em> <em class="parameter"><code>int4</code></em> <em class="parameter"><code>int5</code></em> )</p><p><em class="parameter"><code>int1</code></em>: mode index <em class="parameter"><code>int2</code></em>, <em class="parameter"><code>int3</code></em>: width, height</p><p><em class="parameter"><code>int4</code></em>: color bits</p><p><em class="parameter"><code>int5</code></em>: mode number (bit 14: framebuffer mode) or .undef</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0115">colorbits</a></code>, <code class="function"><a class="link" href="#f_0111">currentmode</a></code>, <code class="function"><a class="link" href="#f_0053">monitorsize</a></code>, <code class="function"><a class="link" href="#f_0051">screen.size</a></code>, <code class="function"><a class="link" href="#f_0110">setmode</a></code>, <code class="function"><a class="link" href="#f_0114">sysinfo</a></code>, <code class="function"><a class="link" href="#f_0112">videomodes</a></code>, <code class="function"><a class="link" href="#f_0052">vscreen.size</a></code></p><div class="example"><a name="id2746680"></a><p class="title"><b>Example<EFBFBD>88.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
2 videomodeinfo
|
||
</pre></div></div><br class="example-break"></li><li><p><a name="f_0112"></a><code class="function">videomodes</code> – video mode list length</p><p>( — <em class="parameter"><code>int1</code></em> )</p><p><em class="parameter"><code>int1</code></em>: video mode list length (always >= 1)</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0115">colorbits</a></code>, <code class="function"><a class="link" href="#f_0111">currentmode</a></code>, <code class="function"><a class="link" href="#f_0053">monitorsize</a></code>, <code class="function"><a class="link" href="#f_0051">screen.size</a></code>, <code class="function"><a class="link" href="#f_0110">setmode</a></code>, <code class="function"><a class="link" href="#f_0114">sysinfo</a></code>, <code class="function"><a class="link" href="#f_0113">videomodeinfo</a></code>, <code class="function"><a class="link" href="#f_0052">vscreen.size</a></code></p></li><li><p><a name="f_0052"></a><code class="function">vscreen.size</code> – virtual screen size</p><p>( — <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> )</p><p><em class="parameter"><code>int1</code></em>, <em class="parameter"><code>int2</code></em>: virtual width and height</p><p>You normally can expect the virtual height to be larger than the visible height returned by <code class="function"><a class="link" href="#f_0051">screen.size</a></code> That area is available e.g. for hidden drawing. Some kind of scrolling is not implemented, however.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0115">colorbits</a></code>, <code class="function"><a class="link" href="#f_0111">currentmode</a></code>, <code class="function"><a class="link" href="#f_0053">monitorsize</a></code>, <code class="function"><a class="link" href="#f_0051">screen.size</a></code>, <code class="function"><a class="link" href="#f_0110">setmode</a></code>, <code class="function"><a class="link" href="#f_0114">sysinfo</a></code>, <code class="function"><a class="link" href="#f_0113">videomodeinfo</a></code>, <code class="function"><a class="link" href="#f_0112">videomodes</a></code></p></li><li><p><a name="f_0129"></a><code class="function">wav.play</code> – play wav file</p><p>( <em class="parameter"><code>ptr1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: wav file</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0130">wav.playlater</a></code></p></li><li><p><a name="f_0130"></a><code class="function">wav.playlater</code> – play wav file after current one</p><p>( <em class="parameter"><code>ptr1</code></em> — )</p><p><em class="parameter"><code>ptr1</code></em>: wav file</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0126">mod.load</a></code>, <code class="function"><a class="link" href="#f_0127">mod.play</a></code>, <code class="function"><a class="link" href="#f_0128">mod.playsample</a></code>, <code class="function"><a class="link" href="#f_0125">sound.done</a></code>, <code class="function"><a class="link" href="#f_0122">sound.getsamplerate</a></code>, <code class="function"><a class="link" href="#f_0120">sound.getvolume</a></code>, <code class="function"><a class="link" href="#f_0124">sound.play</a></code>, <code class="function"><a class="link" href="#f_0123">sound.setsamplerate</a></code>, <code class="function"><a class="link" href="#f_0121">sound.setvolume</a></code>, <code class="function"><a class="link" href="#f_0129">wav.play</a></code></p></li><li><p><a name="f_0025"></a><code class="function">xor</code> – logical or arithmetical exclusive 'or'</p><p>( <em class="parameter"><code>int1</code></em> <em class="parameter"><code>int2</code></em> — <em class="parameter"><code>int3</code></em> )</p><p>( <em class="parameter"><code>bool1</code></em> <em class="parameter"><code>bool2</code></em> — <em class="parameter"><code>bool3</code></em> )</p><p><em class="parameter"><code>int3</code></em>: <em class="parameter"><code>int1</code></em> ^ <em class="parameter"><code>int2</code></em></p><p><em class="parameter"><code>bool3</code></em>: bool ^^ <em class="parameter"><code>bool2</code></em></p><p><span class="emphasis"><em>Note:</em></span> Mixing boolean and integer argument types is possible, in this case integers are converted to boolean first.</p><p><span class="emphasis"><em>See also:</em></span> <code class="function"><a class="link" href="#f_0020">abs</a></code>, <code class="function"><a class="link" href="#f_0014">add</a></code>, <code class="function"><a class="link" href="#f_0023">and</a></code>, <code class="function"><a class="link" href="#f_0017">div</a></code>, <code class="function"><a class="link" href="#f_0022">max</a></code>, <code class="function"><a class="link" href="#f_0021">min</a></code>, <code class="function"><a class="link" href="#f_0018">mod</a></code>, <code class="function"><a class="link" href="#f_0016">mul</a></code>, <code class="function"><a class="link" href="#f_0019">neg</a></code>, <code class="function"><a class="link" href="#f_0026">not</a></code>, <code class="function"><a class="link" href="#f_0024">or</a></code>, <code class="function"><a class="link" href="#f_0027">shl</a></code>, <code class="function"><a class="link" href="#f_0028">shr</a></code>, <code class="function"><a class="link" href="#f_0015">sub</a></code></p><div class="example"><a name="id2747463"></a><p class="title"><b>Example<EFBFBD>89.<2E></b></p><div class="example-contents"><pre class="programlisting">
|
||
true false xor % true
|
||
|
||
3 6 xor % 5
|
||
|
||
10 true xor % gives false, but please avoid this
|
||
</pre></div></div><br class="example-break"></li></ul></div></div></div></div></body></html>
|