<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">
<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>
<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>
<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>
-<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.
+<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>This program is free software: released under Creative Commons Zero
+(CC0) license
+</div>
+<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="https://www2.svjatoslav.eu/gitweb/?p=fifth.git;a=snapshot;h=HEAD;sf=tgz">Download latest snapshot in TAR GZ format</a>
+</li>
-<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">
+<li><a href="https://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 https://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> !Project deprecated!</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>
Current implementation does not support object oriented
programming. While working on Fifth I got lots of cool new ideas that
-<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">
-Fifth is programming lanquage & operating system, running on <i>virtual
-CPU</i>, with custom instruction set. It is much like Charles Chunk
+Fifth is programming lanquage & operating system, running on <a href="#sec-10">virtual
+machine</a>, with custom instruction set. It is much like Charles Chunk
Moore's Forth, it also uses stack architecture, and many commands are
similar. Basically I got familiar with concepts of Forth, and being
inspired created my own system.
Moore's Forth, it also uses stack architecture, and many commands are
similar. Basically I got familiar with concepts of Forth, and being
inspired created my own system.
-<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">
-<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
<p>
Just unpack all files, witout altering original directory structure,
somewhere in your hard disk. For example: C:\MISC\FIFTH\…. To run
-<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"><a id="ID-0759f3e0-28bb-4901-9e4f-09ef41732173" name="ID-0759f3e0-28bb-4901-9e4f-09ef41732173"></a><span class="section-number-2">5</span> Fifth distribution directory tree description</h2>
+<div class="outline-text-2" id="text-5">
-<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">
-<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">
-<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">
-<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">
-
-<figure>
-<p><a href="numbers.png"><img src="numbers.png" class="img-responsive" alt="numbers.png"></a>
+<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">
+<p>
+<a href="numbers.png">file:numbers.png</a>
-<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>
<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">
-<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">
-<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">
-<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
<p>
Fifth core is simply some amount of already compiled into machine code
and linked together modules (entries in other words). In compilation
-<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">
-<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">
-<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">
-<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"><a id="ID-9b251eb9-aff6-4025-94bf-25e89e26d54a" name="ID-9b251eb9-aff6-4025-94bf-25e89e26d54a"></a><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>
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
                                Returns 0, if no data avaiable.<br >
                                Returns 0, if no data avaiable.<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 >
-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 >
-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 >
-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 >
-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 >
-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 >
-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 >
-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 >
-24 + ( n1 n2 – n1+n2 ) -,,-<br >
-25 - ( n1 n2 – n1-n2 ) -,,-<br >
+24 + ( n1 n2 – n1+n2 ) -,,-<br >
+25 - ( n1 n2 – n1-n2 ) -,,-<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 >
-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 >
-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 >
-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 >
-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 >
-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 >
                                location x, y. Does clipping, so part of a big image<br >
                                can be mapped into smaller one.<br >
<br >
                                location x, y. Does clipping, so part of a big image<br >
                                can be mapped into smaller one.<br >
<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 >
                                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 >
                                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 >
                                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 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
<p>
Fifth uses a different character table and codes than ASCII (still
almost similar). I call it FSCII (Fifth Standard Code for Information
-<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">
-<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 class="verse">
init module ( – )<br >
                First module, control is passed to on startup. Contains<br >
-<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 class="verse">
if ( flag – ) (immideate)<br >
                "if 1.. else 2.. then" or<br >
-<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 class="verse">
diskload ( FromDisk ToMem amount – )<br >
                Load specified abount of bytes from disk into memory.<br >
-<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 class="verse">
dynal ( size – handle )<br >
                Allocate dynamic memory block and return it's handle.<br >
-<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">
-<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 class="verse">
off ( n – ) writes 0 to given address, good for zeroing variable.<br >
                ex: MyVariable off<br >
-<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
<p>
Fifth supports both static and dynamic strings. Static strings must
have predefined space reserved, and string mustn't exceed this
-<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">
-<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">
-<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 class="verse">
lineh ( color len x y imgbuf – ) draws horisontal line<br >
                from X,Y coordinates to right, with specified length.<br >
-<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 >
<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">
</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. !Project deprecated!</a></li>
+<li><a href="#sec-3">3. Introduction</a>
-<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>
-<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>
-<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>
-<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>
-<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>
-<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>
-<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>
-<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>
-<p class="date">Created: 2018-01-01 Mon 23:29</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>
+<p class="date">Created: 2020-05-02 Sat 00:04</p>
+<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 26.1 (<a href="http://orgmode.org">Org-mode</a> 9.1.9)</p>