<html lang="en">
<head>
<title>Fifth - virtual machine, operating system, programming language</title>
-<!-- 2018-01-01 Mon 23:29 -->
+<!-- 2018-07-01 Sun 23:59 -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="generator" content="Org-mode">
<meta name="author" content="Svjatoslav Agejenko">
-<link href="https://bootswatch.com/4/darkly/bootstrap.min.css" rel="stylesheet">
-<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
+<link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
<style type="text/css">
footer {background-color: #111 !important;}
pre {background-color: #111; color: #ccc;}
<body>
<div id="content" class="container">
<div class="row"><div class="col-md-9"><h1 class="title">Fifth - virtual machine, operating system, programming language</h1>
-<hr >
+<div id="outline-container-sec-1" class="outline-2">
+<h2 id="sec-1"><span class="section-number-2">1</span> General</h2>
+<div class="outline-text-2" id="text-1">
<ul class="org-ul">
-<li><a href="http://www2.svjatoslav.eu/gitweb/?p=fifth.git;a=snapshot;h=HEAD;sf=tgz">download latest snapshot</a>
-</li>
-
-<li>This program is free software; you can redistribute it and/or modify it under
-the terms of version 3 of the <a href="https://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a> or later as
-published by the Free Software Foundation.
+<li>This program is free software: you can redistribute it and/or modify
+it under the terms of the <a href="https://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a> as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
</li>
<li>Program author:
</ul>
</li>
-<li><a href="http://www.svjatoslav.eu/programs.jsp">other applications hosted at svjatoslav.eu</a>
+<li><a href="http://www.svjatoslav.eu/projects/">Other software projects hosted at svjatoslav.eu</a>
</li>
</ul>
+</div>
-<div id="outline-container-sec-1" class="outline-2">
-<h2 id="sec-1"><span class="section-number-2">1</span> !Project deprecated!</h2>
-<div class="outline-text-2" id="text-1">
+<div id="outline-container-sec-1-1" class="outline-3">
+<h3 id="sec-1-1"><span class="section-number-3">1.1</span> Source code</h3>
+<div class="outline-text-3" id="text-1-1">
+<ul class="org-ul">
+<li><a href="http://www2.svjatoslav.eu/gitweb/?p=fifth.git;a=snapshot;h=HEAD;sf=tgz">Download latest snapshot in TAR GZ format</a>
+</li>
+
+<li><a href="http://www2.svjatoslav.eu/gitweb/?p=fifth.git;a=summary">Browse Git repository online</a>
+</li>
+
+<li>Clone Git repository using command:
+<pre class="example">
+git clone http://www2.svjatoslav.eu/git/fifth.git
+</pre>
+</li>
+</ul>
+</div>
+</div>
+</div>
+
+<div id="outline-container-sec-2" class="outline-2">
+<h2 id="sec-2"><span class="section-number-2">2</span> Warning</h2>
+<div class="outline-text-2" id="text-2">
<p>
Current implementation does not support object oriented
programming. While working on Fifth I got lots of cool new ideas that
<p>
Currently I try to implement those new ideas in the project called
-<a href="http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html">Sixth</a>
+<a href="http://www3.svjatoslav.eu/projects/sixth/">Sixth</a>
</p>
<p>
System is built many years ago when I was still using DOS as a primary
-operating system.
+operating system and not updated since.
</p>
</div>
</div>
-<div id="outline-container-sec-2" class="outline-2">
-<h2 id="sec-2"><span class="section-number-2">2</span> Introduction</h2>
-<div class="outline-text-2" id="text-2">
+<div id="outline-container-sec-3" class="outline-2">
+<h2 id="sec-3"><span class="section-number-2">3</span> Introduction</h2>
+<div class="outline-text-2" id="text-3">
<p>
Fifth is programming lanquage & operating system, running on <i>virtual
CPU</i>, with custom instruction set. It is much like Charles Chunk
</li>
</ul>
</div>
-<div id="outline-container-sec-2-1" class="outline-3">
-<h3 id="sec-2-1"><span class="section-number-3">2.1</span> screenshots</h3>
-<div class="outline-text-3" id="text-2-1">
+<div id="outline-container-sec-3-1" class="outline-3">
+<h3 id="sec-3-1"><span class="section-number-3">3.1</span> screenshots</h3>
+<div class="outline-text-3" id="text-3-1">
<ul class="org-ul">
<li><img src="screenshots/start.png" class="img-responsive" alt="start.png">
<ul class="org-ul">
</div>
</div>
-<div id="outline-container-sec-3" class="outline-2">
-<h2 id="sec-3"><span class="section-number-2">3</span> Installation</h2>
-<div class="outline-text-2" id="text-3">
+<div id="outline-container-sec-4" class="outline-2">
+<h2 id="sec-4"><span class="section-number-2">4</span> Installation</h2>
+<div class="outline-text-2" id="text-4">
<p>
Just unpack all files, witout altering original directory structure,
-somewhere in your hard disk. For example: C:\MISC\FIFTH\…. To run
-fifth you need minimally just 2 files. emulator itself ( EMULATOR.EXE
-or EMULATOR.COM ), and virtual disk file ( DISK.RAW ).
+somewhere in your hard disk. For example:
+</p>
+<pre class="example">
+C:\MISC\FIFTH\....
+</pre>
+<p>
+To run fifth you need minimally just 2 files. emulator itself (
+EMULATOR.EXE or EMULATOR.COM ), and virtual disk file ( DISK.RAW ).
</p>
<p>
</p>
</div>
</div>
-<div id="outline-container-sec-4" class="outline-2">
-<h2 id="sec-4"><span class="section-number-2">4</span> Fifth distribution directory tree description</h2>
-<div class="outline-text-2" id="text-4">
+<div id="outline-container-sec-5" class="outline-2">
+<h2 id="sec-5"><span class="section-number-2">5</span> Fifth distribution directory tree description</h2>
+<div class="outline-text-2" id="text-5">
<p>
After downloading and unpacking the ZIP file you shoud get directory
tree similar to this:
</div>
</div>
-<div id="outline-container-sec-5" class="outline-2">
-<h2 id="sec-5"><span class="section-number-2">5</span> Software/Hardware/Human requirements</h2>
-<div class="outline-text-2" id="text-5">
-</div><div id="outline-container-sec-5-1" class="outline-3">
-<h3 id="sec-5-1"><span class="section-number-3">5.1</span> Software</h3>
-<div class="outline-text-3" id="text-5-1">
+<div id="outline-container-sec-6" class="outline-2">
+<h2 id="sec-6"><span class="section-number-2">6</span> Software/Hardware/Human requirements</h2>
+<div class="outline-text-2" id="text-6">
+</div><div id="outline-container-sec-6-1" class="outline-3">
+<h3 id="sec-6-1"><span class="section-number-3">6.1</span> Software</h3>
+<div class="outline-text-3" id="text-6-1">
<ul class="org-ul">
<li>MS-DOS 6.22, with HIMEM.SYS loaded.
</li>
</ul>
</div>
</div>
-<div id="outline-container-sec-5-2" class="outline-3">
-<h3 id="sec-5-2"><span class="section-number-3">5.2</span> Hardware</h3>
-<div class="outline-text-3" id="text-5-2">
+<div id="outline-container-sec-6-2" class="outline-3">
+<h3 id="sec-6-2"><span class="section-number-3">6.2</span> Hardware</h3>
+<div class="outline-text-3" id="text-6-2">
<ul class="org-ul">
<li>Minimum CPU 386.
</li>
</ul>
</div>
</div>
-<div id="outline-container-sec-5-3" class="outline-3">
-<h3 id="sec-5-3"><span class="section-number-3">5.3</span> Human</h3>
-<div class="outline-text-3" id="text-5-3">
+<div id="outline-container-sec-6-3" class="outline-3">
+<h3 id="sec-6-3"><span class="section-number-3">6.3</span> Human</h3>
+<div class="outline-text-3" id="text-6-3">
<ul class="org-ul">
<li>Beginner level Forth knowledge is recommended.
</li>
</div>
</div>
</div>
-<div id="outline-container-sec-6" class="outline-2">
-<h2 id="sec-6"><span class="section-number-2">6</span> Numbers representation within Fifth</h2>
-<div class="outline-text-2" id="text-6">
+<div id="outline-container-sec-7" class="outline-2">
+<h2 id="sec-7"><span class="section-number-2">7</span> Numbers representation within Fifth</h2>
+<div class="outline-text-2" id="text-7">
<figure>
<p><a href="numbers.png"><img src="numbers.png" class="img-responsive" alt="numbers.png"></a>
</p>
</div>
</div>
-<div id="outline-container-sec-7" class="outline-2">
-<h2 id="sec-7"><span class="section-number-2">7</span> Disk file map, and it's data structures</h2>
-<div class="outline-text-2" id="text-7">
+<div id="outline-container-sec-8" class="outline-2">
+<h2 id="sec-8"><span class="section-number-2">8</span> Disk file map, and it's data structures</h2>
+<div class="outline-text-2" id="text-8">
<p>
Core and high-level boot code is stored outside of the filesystem to
allow easy access to it, at early booting time, when filesystem is not
yet initialized.
</p>
</div>
-<div id="outline-container-sec-7-1" class="outline-3">
-<h3 id="sec-7-1"><span class="section-number-3">7.1</span> disk allocation</h3>
-<div class="outline-text-3" id="text-7-1">
+<div id="outline-container-sec-8-1" class="outline-3">
+<h3 id="sec-8-1"><span class="section-number-3">8.1</span> disk allocation</h3>
+<div class="outline-text-3" id="text-8-1">
<table class="table table-striped table-bordered table-hover table-condensed">
</table>
</div>
</div>
-<div id="outline-container-sec-7-2" class="outline-3">
-<h3 id="sec-7-2"><span class="section-number-3">7.2</span> FAT entry format:</h3>
-<div class="outline-text-3" id="text-7-2">
+<div id="outline-container-sec-8-2" class="outline-3">
+<h3 id="sec-8-2"><span class="section-number-3">8.2</span> FAT entry format:</h3>
+<div class="outline-text-3" id="text-8-2">
<table class="table table-striped table-bordered table-hover table-condensed">
</table>
</div>
</div>
-<div id="outline-container-sec-7-3" class="outline-3">
-<h3 id="sec-7-3"><span class="section-number-3">7.3</span> file entry format</h3>
-<div class="outline-text-3" id="text-7-3">
+<div id="outline-container-sec-8-3" class="outline-3">
+<h3 id="sec-8-3"><span class="section-number-3">8.3</span> file entry format</h3>
+<div class="outline-text-3" id="text-8-3">
<table class="table table-striped table-bordered table-hover table-condensed">
</div>
</div>
</div>
-<div id="outline-container-sec-8" class="outline-2">
-<h2 id="sec-8"><span class="section-number-2">8</span> Core architecture</h2>
-<div class="outline-text-2" id="text-8">
+<div id="outline-container-sec-9" class="outline-2">
+<h2 id="sec-9"><span class="section-number-2">9</span> Core architecture</h2>
+<div class="outline-text-2" id="text-9">
<p>
Fifth core is simply some amount of already compiled into machine code
and linked together modules (entries in other words). In compilation
any time. Currently dictionary can contain at most 1000 entries.
</p>
</div>
-<div id="outline-container-sec-8-1" class="outline-3">
-<h3 id="sec-8-1"><span class="section-number-3">8.1</span> Dictionary entry format</h3>
-<div class="outline-text-3" id="text-8-1">
+<div id="outline-container-sec-9-1" class="outline-3">
+<h3 id="sec-9-1"><span class="section-number-3">9.1</span> Dictionary entry format</h3>
+<div class="outline-text-3" id="text-9-1">
<table class="table table-striped table-bordered table-hover table-condensed">
</p>
</div>
</div>
-<div id="outline-container-sec-8-2" class="outline-3">
-<h3 id="sec-8-2"><span class="section-number-3">8.2</span> Possible module types</h3>
-<div class="outline-text-3" id="text-8-2">
+<div id="outline-container-sec-9-2" class="outline-3">
+<h3 id="sec-9-2"><span class="section-number-3">9.2</span> Possible module types</h3>
+<div class="outline-text-3" id="text-9-2">
<table class="table table-striped table-bordered table-hover table-condensed">
</table>
</div>
</div>
-<div id="outline-container-sec-8-3" class="outline-3">
-<h3 id="sec-8-3"><span class="section-number-3">8.3</span> Memory map (average)</h3>
-<div class="outline-text-3" id="text-8-3">
+<div id="outline-container-sec-9-3" class="outline-3">
+<h3 id="sec-9-3"><span class="section-number-3">9.3</span> Memory map (average)</h3>
+<div class="outline-text-3" id="text-9-3">
<table class="table table-striped table-bordered table-hover table-condensed">
</div>
</div>
</div>
-<div id="outline-container-sec-9" class="outline-2">
-<h2 id="sec-9"><span class="section-number-2">9</span> Virtual machine</h2>
-<div class="outline-text-2" id="text-9">
+<div id="outline-container-sec-10" class="outline-2">
+<h2 id="sec-10"><span class="section-number-2">10</span> Virtual machine</h2>
+<div class="outline-text-2" id="text-10">
<p>
Using CPU emulator slows it down but I shouldn't now think too mutch
about, and waste my time on batteling with problems whitch results on
<p class="verse">
<br >
-code mnemonic description<br >
+code mnemonic description<br >
<br >
-0 nop does notheing<br >
-1 halt halt CPU ( return to DOS on emulator )<br >
+0 nop does notheing<br >
+1 halt halt CPU ( return to DOS on emulator )<br >
<br >
-2 kbd@ ( – c ) read scancode of pressed or released key.<br >
+2 kbd@ ( – c ) read scancode of pressed or released key.<br >
                                Returns 0, if no data avaiable.<br >
-3 num <dword> ( – n ) put immidiate number into datastack<br >
+3 num <dword> ( – n ) put immidiate number into datastack<br >
<br >
-4 jmp <dword> jump to specified code<br >
-5 call <dword>jump to specified code, save return address to<br >
+4 jmp <dword> jump to specified code<br >
+5 call <dword>jump to specified code, save return address to<br >
                                return stack.<br >
<br >
-6 1+ ( n – n+1 )<br >
-7 1- ( n – n-1 )<br >
+6 1+ ( n – n+1 )<br >
+7 1- ( n – n-1 )<br >
<br >
-8 dup ( n – n n ) duplicate top of data stack<br >
-9 drop ( n – ) drop last element in data stack<br >
+8 dup ( n – n n ) duplicate top of data stack<br >
+9 drop ( n – ) drop last element in data stack<br >
<br >
-10 if <dword> ( n – ) jump to addr if top element was 0<br >
-11 ret jump to code, specified in return stack.<br >
+10 if <dword> ( n – ) jump to addr if top element was 0<br >
+11 ret jump to code, specified in return stack.<br >
<br >
-12 c@ ( addr – n ) read byte from memory at specified address<br >
-13 c! ( n addr – ) store byte to specified memory<br >
+12 c@ ( addr – n ) read byte from memory at specified address<br >
+13 c! ( n addr – ) store byte to specified memory<br >
<br >
-14 push ( DSTK -> RSTK ) move top of datastack to returnstack<br >
-15 pop ( RSTK -> DSTK ) move top of returnstack to datastack<br >
+14 push ( DSTK -> RSTK ) move top of datastack to returnstack<br >
+15 pop ( RSTK -> DSTK ) move top of returnstack to datastack<br >
<br >
-16 <unused><br >
-17 rot ( n1 n2 n3 – n2 n3 n1) rotate stack elements<br >
+16 <unused><br >
+17 rot ( n1 n2 n3 – n2 n3 n1) rotate stack elements<br >
<br >
-18 disk@ ( FromDiskSect ToMem – ) read 1KB from disk into RAM<br >
-19 disk! ( FromMem ToDiskSect – ) write 1KB to disk<br >
+18 disk@ ( FromDiskSect ToMem – ) read 1KB from disk into RAM<br >
+19 disk! ( FromMem ToDiskSect – ) write 1KB to disk<br >
<br >
-20 @ ( addr – n ) read 32 bit number from memory<br >
-21 ! ( n addr – ) store 32 bit number to memory<br >
+20 @ ( addr – n ) read 32 bit number from memory<br >
+21 ! ( n addr – ) store 32 bit number to memory<br >
<br >
-22 over ( n1 n2 – n1 n2 n1 ) self explaining …<br >
-23 swap ( n1 n2 – n2 n1 ) -,,-<br >
+22 over ( n1 n2 – n1 n2 n1 ) self explaining …<br >
+23 swap ( n1 n2 – n2 n1 ) -,,-<br >
<br >
-24 + ( n1 n2 – n1+n2 ) -,,-<br >
-25 - ( n1 n2 – n1-n2 ) -,,-<br >
+24 + ( n1 n2 – n1+n2 ) -,,-<br >
+25 - ( n1 n2 – n1-n2 ) -,,-<br >
<br >
-26 * ( n1 n2 – n1*n2 ) -,,-<br >
-27 / ( n1 n2 – n1/n2 ) -,,-<br >
+26 * ( n1 n2 – n1*n2 ) -,,-<br >
+27 / ( n1 n2 – n1/n2 ) -,,-<br >
<br >
-28 > ( n1 n2 – result ) is true when n1 > n2<br >
-29 < ( n1 n2 – result ) is true when n1 < n2<br >
+28 > ( n1 n2 – result ) is true when n1 > n2<br >
+29 < ( n1 n2 – result ) is true when n1 < n2<br >
<br >
-30 not ( n1 – not_n1 ) logical not<br >
-31 i ( – n ) copies top of return stack into datastack<br >
+30 not ( n1 – not_n1 ) logical not<br >
+31 i ( – n ) copies top of return stack into datastack<br >
<br >
-32 cprt@ ( addr – n ) read one byte from hardware port<br >
-33 cprt! ( n addr – ) store one byte to hardware port<br >
+32 cprt@ ( addr – n ) read one byte from hardware port<br >
+33 cprt! ( n addr – ) store one byte to hardware port<br >
<br >
-34 i2 ( – n ) like "i" but takes socond top stack element.<br >
-35 i3 ( – n ) like "i" but takes third top stack element.<br >
+34 i2 ( – n ) like "i" but takes socond top stack element.<br >
+35 i3 ( – n ) like "i" but takes third top stack element.<br >
<br >
-36 shl ( n amount – n ) left bit shift<br >
-37 shr ( n amount – n ) right bit shift<br >
+36 shl ( n amount – n ) left bit shift<br >
+37 shr ( n amount – n ) right bit shift<br >
<br >
-38 or ( n1 n2 – n ) logical or<br >
-39 xor ( n1 n2 – n ) exclusive logical or<br >
+38 or ( n1 n2 – n ) logical or<br >
+39 xor ( n1 n2 – n ) exclusive logical or<br >
<br >
-40 vidmap ( addr – ) copy memory from "addr" to video memory.<br >
+40 vidmap ( addr – ) copy memory from "addr" to video memory.<br >
<br >
-41 mouse@ ( – x y button ) read mouse coordinates & buttons<br >
+41 mouse@ ( – x y button ) read mouse coordinates & buttons<br >
<br >
-42 vidput ( addr1 addr2 x y – ) put image1 into image2, at<br >
+42 vidput ( addr1 addr2 x y – ) put image1 into image2, at<br >
                                location x, y. Does clipping, so part of a big image<br >
                                can be mapped into smaller one.<br >
<br >
-43 cmove ( addr1 addr2 amount ) move memory from addr1 to addr2<br >
+43 cmove ( addr1 addr2 amount ) move memory from addr1 to addr2<br >
                                if addr1 is greater than addr2 then count address<br >
                                foward while moving, elseway starts from end and<br >
                                counts backwards, so no data loss will occure on<br >
                                overlapping.<br >
<br >
-44 cfill ( c addr amount – ) fill memory starting at "addr"<br >
+44 cfill ( c addr amount – ) fill memory starting at "addr"<br >
                                with "c" bytes.<br >
<br >
-45 tvidput ( addr1 addr2 x y – ) same as "vidput" but treats<br >
+45 tvidput ( addr1 addr2 x y – ) same as "vidput" but treats<br >
                                color 255 in source image as transparent.<br >
<br >
-46 depth ( – depth ) returns current depth of data stack.<br >
+46 depth ( – depth ) returns current depth of data stack.<br >
<br >
-47 charput ( colorfg colorbg addrsrc addrdest x y )<br >
+47 charput ( colorfg colorbg addrsrc addrdest x y )<br >
                                draw character to image buffer located at "addrdest"<br >
                                to specified x & y location. Decodes 8 bytes from<br >
                                source to bits, used to draw character.<br >
</div>
</div>
-<div id="outline-container-sec-10" class="outline-2">
-<h2 id="sec-10"><span class="section-number-2">10</span> Fifth source format</h2>
-<div class="outline-text-2" id="text-10">
+<div id="outline-container-sec-11" class="outline-2">
+<h2 id="sec-11"><span class="section-number-2">11</span> Fifth source format</h2>
+<div class="outline-text-2" id="text-11">
<p>
Fifth uses a different character table and codes than ASCII (still
almost similar). I call it FSCII (Fifth Standard Code for Information
like ordinary letters.
</p>
</div>
-<div id="outline-container-sec-10-1" class="outline-3">
-<h3 id="sec-10-1"><span class="section-number-3">10.1</span> FSCII</h3>
-<div class="outline-text-3" id="text-10-1">
+<div id="outline-container-sec-11-1" class="outline-3">
+<h3 id="sec-11-1"><span class="section-number-3">11.1</span> FSCII</h3>
+<div class="outline-text-3" id="text-11-1">
<table class="table table-striped table-bordered table-hover table-condensed">
</div>
</div>
</div>
-<div id="outline-container-sec-11" class="outline-2">
-<h2 id="sec-11"><span class="section-number-2">11</span> Fifth commands</h2>
-<div class="outline-text-2" id="text-11">
-</div><div id="outline-container-sec-11-1" class="outline-3">
-<h3 id="sec-11-1"><span class="section-number-3">11.1</span> Compilation & miscellaneous</h3>
-<div class="outline-text-3" id="text-11-1">
+<div id="outline-container-sec-12" class="outline-2">
+<h2 id="sec-12"><span class="section-number-2">12</span> Fifth commands</h2>
+<div class="outline-text-2" id="text-12">
+</div><div id="outline-container-sec-12-1" class="outline-3">
+<h3 id="sec-12-1"><span class="section-number-3">12.1</span> Compilation & miscellaneous</h3>
+<div class="outline-text-3" id="text-12-1">
<p class="verse">
init module ( – )<br >
                First module, control is passed to on startup. Contains<br >
</p>
</div>
</div>
-<div id="outline-container-sec-11-2" class="outline-3">
-<h3 id="sec-11-2"><span class="section-number-3">11.2</span> Conditionals & control flow</h3>
-<div class="outline-text-3" id="text-11-2">
+<div id="outline-container-sec-12-2" class="outline-3">
+<h3 id="sec-12-2"><span class="section-number-3">12.2</span> Conditionals & control flow</h3>
+<div class="outline-text-3" id="text-12-2">
<p class="verse">
if ( flag – ) (immideate)<br >
                "if 1.. else 2.. then" or<br >
</p>
</div>
</div>
-<div id="outline-container-sec-11-3" class="outline-3">
-<h3 id="sec-11-3"><span class="section-number-3">11.3</span> Disk & file access</h3>
-<div class="outline-text-3" id="text-11-3">
+<div id="outline-container-sec-12-3" class="outline-3">
+<h3 id="sec-12-3"><span class="section-number-3">12.3</span> Disk & file access</h3>
+<div class="outline-text-3" id="text-12-3">
<p class="verse">
diskload ( FromDisk ToMem amount – )<br >
                Load specified abount of bytes from disk into memory.<br >
</p>
</div>
</div>
-<div id="outline-container-sec-11-4" class="outline-3">
-<h3 id="sec-11-4"><span class="section-number-3">11.4</span> Dynamic memory</h3>
-<div class="outline-text-3" id="text-11-4">
+<div id="outline-container-sec-12-4" class="outline-3">
+<h3 id="sec-12-4"><span class="section-number-3">12.4</span> Dynamic memory</h3>
+<div class="outline-text-3" id="text-12-4">
<p class="verse">
dynal ( size – handle )<br >
                Allocate dynamic memory block and return it's handle.<br >
</p>
</div>
</div>
-<div id="outline-container-sec-11-5" class="outline-3">
-<h3 id="sec-11-5"><span class="section-number-3">11.5</span> Graphics and text</h3>
-<div class="outline-text-3" id="text-11-5">
+<div id="outline-container-sec-12-5" class="outline-3">
+<h3 id="sec-12-5"><span class="section-number-3">12.5</span> Graphics and text</h3>
+<div class="outline-text-3" id="text-12-5">
<p class="verse">
. ( n – ) print number on screen<br >
<br >
</p>
</div>
</div>
-<div id="outline-container-sec-11-6" class="outline-3">
-<h3 id="sec-11-6"><span class="section-number-3">11.6</span> Math, memory & stack manipulation</h3>
-<div class="outline-text-3" id="text-11-6">
+<div id="outline-container-sec-12-6" class="outline-3">
+<h3 id="sec-12-6"><span class="section-number-3">12.6</span> Math, memory & stack manipulation</h3>
+<div class="outline-text-3" id="text-12-6">
<p class="verse">
off ( n – ) writes 0 to given address, good for zeroing variable.<br >
                ex: MyVariable off<br >
</p>
</div>
</div>
-<div id="outline-container-sec-11-7" class="outline-3">
-<h3 id="sec-11-7"><span class="section-number-3">11.7</span> Dynamic & static strings</h3>
-<div class="outline-text-3" id="text-11-7">
+<div id="outline-container-sec-12-7" class="outline-3">
+<h3 id="sec-12-7"><span class="section-number-3">12.7</span> Dynamic & static strings</h3>
+<div class="outline-text-3" id="text-12-7">
<p>
Fifth supports both static and dynamic strings. Static strings must
have predefined space reserved, and string mustn't exceed this
</div>
</div>
</div>
-<div id="outline-container-sec-12" class="outline-2">
-<h2 id="sec-12"><span class="section-number-2">12</span> Dynamically loadable modules</h2>
-<div class="outline-text-2" id="text-12">
-</div><div id="outline-container-sec-12-1" class="outline-3">
-<h3 id="sec-12-1"><span class="section-number-3">12.1</span> Keyboard driver</h3>
-<div class="outline-text-3" id="text-12-1">
+<div id="outline-container-sec-13" class="outline-2">
+<h2 id="sec-13"><span class="section-number-2">13</span> Dynamically loadable modules</h2>
+<div class="outline-text-2" id="text-13">
+</div><div id="outline-container-sec-13-1" class="outline-3">
+<h3 id="sec-13-1"><span class="section-number-3">13.1</span> Keyboard driver</h3>
+<div class="outline-text-3" id="text-13-1">
<p class="verse">
<br >
KBD_@ ( – code ) get scancodes for pressed keys from keyboard.<br >
</p>
</div>
</div>
-<div id="outline-container-sec-12-2" class="outline-3">
-<h3 id="sec-12-2"><span class="section-number-3">12.2</span> Mouse driver</h3>
-<div class="outline-text-3" id="text-12-2">
+<div id="outline-container-sec-13-2" class="outline-3">
+<h3 id="sec-13-2"><span class="section-number-3">13.2</span> Mouse driver</h3>
+<div class="outline-text-3" id="text-13-2">
<p class="verse">
mousex var Mouse x coordinate.<br >
mousey var Mouse y coordinate.<br >
</p>
</div>
</div>
-<div id="outline-container-sec-12-3" class="outline-3">
-<h3 id="sec-12-3"><span class="section-number-3">12.3</span> 2D graphic library</h3>
-<div class="outline-text-3" id="text-12-3">
+<div id="outline-container-sec-13-3" class="outline-3">
+<h3 id="sec-13-3"><span class="section-number-3">13.3</span> 2D graphic library</h3>
+<div class="outline-text-3" id="text-13-3">
<p class="verse">
lineh ( color len x y imgbuf – ) draws horisontal line<br >
                from X,Y coordinates to right, with specified length.<br >
</p>
</div>
</div>
-<div id="outline-container-sec-12-4" class="outline-3">
-<h3 id="sec-12-4"><span class="section-number-3">12.4</span> Trigonometry functions</h3>
-<div class="outline-text-3" id="text-12-4">
+<div id="outline-container-sec-13-4" class="outline-3">
+<h3 id="sec-13-4"><span class="section-number-3">13.4</span> Trigonometry functions</h3>
+<div class="outline-text-3" id="text-13-4">
<p class="verse">
sin ( a – result ) return sinus from given angle "a",<br >
                360ø is 2000. So 1000 represents 180ø angle.<br >
</div><div class="col-md-3"><nav id="table-of-contents">
<div id="text-table-of-contents" class="bs-docs-sidebar">
<ul class="nav">
-<li><a href="#sec-1">1. !Project deprecated!</a></li>
-<li><a href="#sec-2">2. Introduction</a>
+<li><a href="#sec-1">1. General</a>
+<ul class="nav">
+<li><a href="#sec-1-1">1.1. Source code</a></li>
+</ul>
+</li>
+<li><a href="#sec-2">2. Warning</a></li>
+<li><a href="#sec-3">3. Introduction</a>
<ul class="nav">
-<li><a href="#sec-2-1">2.1. screenshots</a></li>
+<li><a href="#sec-3-1">3.1. screenshots</a></li>
</ul>
</li>
-<li><a href="#sec-3">3. Installation</a></li>
-<li><a href="#sec-4">4. Fifth distribution directory tree description</a></li>
-<li><a href="#sec-5">5. Software/Hardware/Human requirements</a>
+<li><a href="#sec-4">4. Installation</a></li>
+<li><a href="#sec-5">5. Fifth distribution directory tree description</a></li>
+<li><a href="#sec-6">6. Software/Hardware/Human requirements</a>
<ul class="nav">
-<li><a href="#sec-5-1">5.1. Software</a></li>
-<li><a href="#sec-5-2">5.2. Hardware</a></li>
-<li><a href="#sec-5-3">5.3. Human</a></li>
+<li><a href="#sec-6-1">6.1. Software</a></li>
+<li><a href="#sec-6-2">6.2. Hardware</a></li>
+<li><a href="#sec-6-3">6.3. Human</a></li>
</ul>
</li>
-<li><a href="#sec-6">6. Numbers representation within Fifth</a></li>
-<li><a href="#sec-7">7. Disk file map, and it's data structures</a>
+<li><a href="#sec-7">7. Numbers representation within Fifth</a></li>
+<li><a href="#sec-8">8. Disk file map, and it's data structures</a>
<ul class="nav">
-<li><a href="#sec-7-1">7.1. disk allocation</a></li>
-<li><a href="#sec-7-2">7.2. FAT entry format:</a></li>
-<li><a href="#sec-7-3">7.3. file entry format</a></li>
+<li><a href="#sec-8-1">8.1. disk allocation</a></li>
+<li><a href="#sec-8-2">8.2. FAT entry format:</a></li>
+<li><a href="#sec-8-3">8.3. file entry format</a></li>
</ul>
</li>
-<li><a href="#sec-8">8. Core architecture</a>
+<li><a href="#sec-9">9. Core architecture</a>
<ul class="nav">
-<li><a href="#sec-8-1">8.1. Dictionary entry format</a></li>
-<li><a href="#sec-8-2">8.2. Possible module types</a></li>
-<li><a href="#sec-8-3">8.3. Memory map (average)</a></li>
+<li><a href="#sec-9-1">9.1. Dictionary entry format</a></li>
+<li><a href="#sec-9-2">9.2. Possible module types</a></li>
+<li><a href="#sec-9-3">9.3. Memory map (average)</a></li>
</ul>
</li>
-<li><a href="#sec-9">9. Virtual machine</a></li>
-<li><a href="#sec-10">10. Fifth source format</a>
+<li><a href="#sec-10">10. Virtual machine</a></li>
+<li><a href="#sec-11">11. Fifth source format</a>
<ul class="nav">
-<li><a href="#sec-10-1">10.1. FSCII</a></li>
+<li><a href="#sec-11-1">11.1. FSCII</a></li>
</ul>
</li>
-<li><a href="#sec-11">11. Fifth commands</a>
+<li><a href="#sec-12">12. Fifth commands</a>
<ul class="nav">
-<li><a href="#sec-11-1">11.1. Compilation & miscellaneous</a></li>
-<li><a href="#sec-11-2">11.2. Conditionals & control flow</a></li>
-<li><a href="#sec-11-3">11.3. Disk & file access</a></li>
-<li><a href="#sec-11-4">11.4. Dynamic memory</a></li>
-<li><a href="#sec-11-5">11.5. Graphics and text</a></li>
-<li><a href="#sec-11-6">11.6. Math, memory & stack manipulation</a></li>
-<li><a href="#sec-11-7">11.7. Dynamic & static strings</a></li>
+<li><a href="#sec-12-1">12.1. Compilation & miscellaneous</a></li>
+<li><a href="#sec-12-2">12.2. Conditionals & control flow</a></li>
+<li><a href="#sec-12-3">12.3. Disk & file access</a></li>
+<li><a href="#sec-12-4">12.4. Dynamic memory</a></li>
+<li><a href="#sec-12-5">12.5. Graphics and text</a></li>
+<li><a href="#sec-12-6">12.6. Math, memory & stack manipulation</a></li>
+<li><a href="#sec-12-7">12.7. Dynamic & static strings</a></li>
</ul>
</li>
-<li><a href="#sec-12">12. Dynamically loadable modules</a>
+<li><a href="#sec-13">13. Dynamically loadable modules</a>
<ul class="nav">
-<li><a href="#sec-12-1">12.1. Keyboard driver</a></li>
-<li><a href="#sec-12-2">12.2. Mouse driver</a></li>
-<li><a href="#sec-12-3">12.3. 2D graphic library</a></li>
-<li><a href="#sec-12-4">12.4. Trigonometry functions</a></li>
+<li><a href="#sec-13-1">13.1. Keyboard driver</a></li>
+<li><a href="#sec-13-2">13.2. Mouse driver</a></li>
+<li><a href="#sec-13-3">13.3. 2D graphic library</a></li>
+<li><a href="#sec-13-4">13.4. Trigonometry functions</a></li>
</ul>
</li>
</ul>
</div></div></div>
<footer id="postamble" class="">
<div><p class="author">Author: Svjatoslav Agejenko</p>
-<p class="date">Created: 2018-01-01 Mon 23:29</p>
+<p class="date">Created: 2018-07-01 Sun 23:59</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.1.1 (<a href="http://orgmode.org">Org-mode</a> 8.2.10)</p>
</div>
</footer>