Changed license to CC0
[fifth.git] / doc / index.html
index 6d320c6..a46af2c 100644 (file)
@@ -2,14 +2,14 @@
 <html lang="en">
 <head>
 <title>Fifth - virtual machine, operating system, programming language</title>
-<!-- 2018-01-01 Mon 23:29 -->
+<!-- 2020-05-02 Sat 00:04 -->
 <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;}
@@ -222,34 +222,54 @@ MathJax.Hub.Config({
 <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 >
-<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.
+<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
 </li>
 
 <li>Program author:
 <ul class="org-ul">
 <li>Svjatoslav Agejenko
 </li>
-<li>Homepage: <a href="http://svjatoslav.eu">http://svjatoslav.eu</a>
+<li>Homepage: <a href="https://svjatoslav.eu">https://svjatoslav.eu</a>
 </li>
 <li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">mailto://svjatoslav@svjatoslav.eu</a>
 </li>
 </ul>
 </li>
 
-<li><a href="http://www.svjatoslav.eu/programs.jsp">other applications hosted at svjatoslav.eu</a>
+<li><a href="https://www.svjatoslav.eu/projects/">Other software projects hosted at svjatoslav.eu</a>
 </li>
 </ul>
+</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
@@ -258,7 +278,7 @@ require reimplementation of everything.
 
 <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="https://www3.svjatoslav.eu/projects/sixth/">Sixth</a>.
 </p>
 
 <p>
@@ -267,12 +287,12 @@ operating system.
 </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 &amp; operating system, running on <i>virtual
-CPU</i>, with custom instruction set. It is much like Charles Chunk
+Fifth is programming lanquage &amp; 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.
@@ -283,9 +303,9 @@ inspired created my own system.
 </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">
@@ -314,9 +334,9 @@ executed they can be selectively compiled or interpreted.
 </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\&#x2026;.  To run
@@ -325,13 +345,14 @@ or EMULATOR.COM ), and virtual disk file ( DISK.RAW ).
 </p>
 
 <p>
-Read more about <i>distribution directory layout</i>
+Read more about <a href="#sec-5">Fifth distribution directory tree description</a>.
 </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"><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">
 <p>
 After downloading and unpacking the ZIP file you shoud get directory
 tree similar to this:
@@ -355,12 +376,12 @@ emulator.com            - main executable.<br >
 </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>
@@ -377,9 +398,9 @@ emulator.com            - main executable.<br >
 </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>
@@ -392,9 +413,9 @@ emulator.com            - main executable.<br >
 </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>
@@ -404,14 +425,12 @@ emulator.com            - main executable.<br >
 </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">
-
-<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>
 </p>
-</figure>
 
 <p>
 Because I can define everything, starting from CPU, why not try also
@@ -425,18 +444,18 @@ their color (black or white).
 </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">
 
 
@@ -482,9 +501,9 @@ yet initialized.
 </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">
 
 
@@ -518,9 +537,9 @@ yet initialized.
 </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">
 
 
@@ -573,9 +592,9 @@ yet initialized.
 </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
@@ -587,9 +606,9 @@ dictionary space only. Random word can be removed from dictionary at
 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">
 
 
@@ -656,9 +675,9 @@ run through headers backwards and find needed entry.
 </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">
 
 
@@ -712,9 +731,9 @@ run through headers backwards and find needed entry.
 </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">
 
 
@@ -761,9 +780,9 @@ run through headers backwards and find needed entry.
 </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"><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
@@ -823,93 +842,93 @@ in programming lanquage):
 
 <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@                ( &#x2013; c ) read scancode of pressed or released key.<br >
+2       kbd@            ( &#x2013; c ) read scancode of pressed or released key.<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;Returns 0, if no data avaiable.<br >
-3        num &lt;dword&gt;        ( &#x2013; n ) put immidiate number into datastack<br >
+3       num &lt;dword&gt;     ( &#x2013; n ) put immidiate number into datastack<br >
 <br >
-4        jmp &lt;dword&gt;        jump to specified code<br >
-5        call &lt;dword&gt;jump to specified code, save return address to<br >
+4       jmp &lt;dword&gt;     jump to specified code<br >
+5       call &lt;dword&gt;jump to specified code, save return address to<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;return stack.<br >
 <br >
-6        1+                        ( n &#x2013; n+1 )<br >
-7        1-                        ( n &#x2013; n-1 )<br >
+6       1+                      ( n &#x2013; n+1 )<br >
+7       1-                      ( n &#x2013; n-1 )<br >
 <br >
-8        dup                        ( n &#x2013; n n ) duplicate top of data stack<br >
-9        drop                ( n &#x2013; ) drop last element in data stack<br >
+8       dup                     ( n &#x2013; n n ) duplicate top of data stack<br >
+9       drop            ( n &#x2013; ) drop last element in data stack<br >
 <br >
-10        if &lt;dword&gt;        ( n &#x2013; ) jump to addr if top element was 0<br >
-11        ret                        jump to code, specified in return stack.<br >
+10      if &lt;dword&gt;      ( n &#x2013; ) jump to addr if top element was 0<br >
+11      ret                     jump to code, specified in return stack.<br >
 <br >
-12        c@                        ( addr &#x2013; n ) read byte from memory at specified address<br >
-13        c!                        ( n addr &#x2013; ) store byte to specified memory<br >
+12      c@                      ( addr &#x2013; n ) read byte from memory at specified address<br >
+13      c!                      ( n addr &#x2013; ) store byte to specified memory<br >
 <br >
-14        push                ( DSTK -&gt; RSTK ) move top of datastack to returnstack<br >
-15        pop                        ( RSTK -&gt; DSTK ) move top of returnstack to datastack<br >
+14      push            ( DSTK -&gt; RSTK ) move top of datastack to returnstack<br >
+15      pop                     ( RSTK -&gt; DSTK ) move top of returnstack to datastack<br >
 <br >
-16        &lt;unused&gt;<br >
-17        rot                        ( n1 n2 n3 &#x2013; n2 n3 n1) rotate stack elements<br >
+16      &lt;unused&gt;<br >
+17      rot                     ( n1 n2 n3 &#x2013; n2 n3 n1) rotate stack elements<br >
 <br >
-18        disk@                ( FromDiskSect ToMem &#x2013; ) read 1KB from disk into RAM<br >
-19        disk!                ( FromMem ToDiskSect &#x2013; ) write 1KB to disk<br >
+18      disk@           ( FromDiskSect ToMem &#x2013; ) read 1KB from disk into RAM<br >
+19      disk!           ( FromMem ToDiskSect &#x2013; ) write 1KB to disk<br >
 <br >
-20        @                        ( addr &#x2013; n ) read 32 bit number from memory<br >
-21        !                        ( n addr &#x2013; ) store 32 bit number to memory<br >
+20      @                       ( addr &#x2013; n ) read 32 bit number from memory<br >
+21      !                       ( n addr &#x2013; ) store 32 bit number to memory<br >
 <br >
-22        over                ( n1 n2 &#x2013; n1 n2 n1 ) self explaining &#x2026;<br >
-23        swap                ( n1 n2 &#x2013; n2 n1 ) -,,-<br >
+22      over            ( n1 n2 &#x2013; n1 n2 n1 ) self explaining &#x2026;<br >
+23      swap            ( n1 n2 &#x2013; n2 n1 ) -,,-<br >
 <br >
-24        +                        ( n1 n2 &#x2013; n1+n2 ) -,,-<br >
-25        -                        ( n1 n2 &#x2013; n1-n2 ) -,,-<br >
+24      +                       ( n1 n2 &#x2013; n1+n2 ) -,,-<br >
+25      -                       ( n1 n2 &#x2013; n1-n2 ) -,,-<br >
 <br >
-26        *                        ( n1 n2 &#x2013; n1*n2 ) -,,-<br >
-27        /                        ( n1 n2 &#x2013; n1/n2 ) -,,-<br >
+26      *                       ( n1 n2 &#x2013; n1*n2 ) -,,-<br >
+27      /                       ( n1 n2 &#x2013; n1/n2 ) -,,-<br >
 <br >
-28        &gt;                        ( n1 n2 &#x2013; result ) is true when n1 &gt; n2<br >
-29        &lt;                        ( n1 n2 &#x2013; result ) is true when n1 &lt; n2<br >
+28      &gt;                       ( n1 n2 &#x2013; result ) is true when n1 &gt; n2<br >
+29      &lt;                       ( n1 n2 &#x2013; result ) is true when n1 &lt; n2<br >
 <br >
-30        not                        ( n1 &#x2013; not_n1 ) logical not<br >
-31        i                        ( &#x2013; n ) copies top of return stack into datastack<br >
+30      not                     ( n1 &#x2013; not_n1 ) logical not<br >
+31      i                       ( &#x2013; n ) copies top of return stack into datastack<br >
 <br >
-32        cprt@                ( addr &#x2013; n ) read one byte from hardware port<br >
-33        cprt!                ( n addr &#x2013; ) store one byte to hardware port<br >
+32      cprt@           ( addr &#x2013; n ) read one byte from hardware port<br >
+33      cprt!           ( n addr &#x2013; ) store one byte to hardware port<br >
 <br >
-34        i2                        ( &#x2013; n ) like "i" but takes socond top stack element.<br >
-35        i3                        ( &#x2013; n ) like "i" but takes third top stack element.<br >
+34      i2                      ( &#x2013; n ) like "i" but takes socond top stack element.<br >
+35      i3                      ( &#x2013; n ) like "i" but takes third top stack element.<br >
 <br >
-36        shl                        ( n amount &#x2013; n ) left bit shift<br >
-37        shr                        ( n amount &#x2013; n ) right bit shift<br >
+36      shl                     ( n amount &#x2013; n ) left bit shift<br >
+37      shr                     ( n amount &#x2013; n ) right bit shift<br >
 <br >
-38        or                        ( n1 n2 &#x2013; n ) logical or<br >
-39        xor                        ( n1 n2 &#x2013; n ) exclusive logical or<br >
+38      or                      ( n1 n2 &#x2013; n ) logical or<br >
+39      xor                     ( n1 n2 &#x2013; n ) exclusive logical or<br >
 <br >
-40        vidmap                ( addr &#x2013; ) copy memory from "addr" to video memory.<br >
+40      vidmap          ( addr &#x2013; ) copy memory from "addr" to video memory.<br >
 <br >
-41        mouse@                ( &#x2013; x y button ) read mouse coordinates &amp; buttons<br >
+41      mouse@          ( &#x2013; x y button ) read mouse coordinates &amp; buttons<br >
 <br >
-42        vidput                ( addr1 addr2 x y &#x2013; ) put image1 into image2, at<br >
+42      vidput          ( addr1 addr2 x y &#x2013; ) put image1 into image2, at<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;location x, y. Does clipping, so part of a big image<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;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 >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;if addr1 is greater than addr2 then count address<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;foward while moving, elseway starts from end and<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;counts backwards, so no data loss will occure on<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;overlapping.<br >
 <br >
-44        cfill                ( c addr amount &#x2013; ) fill memory starting at "addr"<br >
+44      cfill           ( c addr amount &#x2013; ) fill memory starting at "addr"<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;with "c" bytes.<br >
 <br >
-45        tvidput         ( addr1 addr2 x y &#x2013; ) same as "vidput" but treats<br >
+45      tvidput         ( addr1 addr2 x y &#x2013; ) same as "vidput" but treats<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;color 255 in source image as transparent.<br >
 <br >
-46        depth                ( &#x2013; depth ) returns current depth of data stack.<br >
+46      depth           ( &#x2013; 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 >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;draw character to image buffer located at "addrdest"<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;to specified x &amp; y location. Decodes 8 bytes from<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;source to bits, used to draw character.<br >
@@ -917,9 +936,9 @@ code        mnemonic        description<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
@@ -929,9 +948,9 @@ numeric values. So typical nemric characters "0123&#x2026;"  is treated
 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">
 
 
@@ -990,12 +1009,12 @@ like ordinary letters.
 </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 &amp; 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 &amp; miscellaneous</h3>
+<div class="outline-text-3" id="text-12-1">
 <p class="verse">
 init    module  ( &#x2013; )<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;First module, control is passed to on startup. Contains<br >
@@ -1162,9 +1181,9 @@ ne              ( entrydata entrytype &#x2013; ) Compile new dictionary entry.<b
 </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 &amp; 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 &amp; control flow</h3>
+<div class="outline-text-3" id="text-12-2">
 <p class="verse">
 if              ( flag &#x2013; )   (immideate)<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;"if 1.. else 2.. then" or<br >
@@ -1205,9 +1224,9 @@ done            ( &#x2013; ) exit from "until .. loop"<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 &amp; 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 &amp; file access</h3>
+<div class="outline-text-3" id="text-12-3">
 <p class="verse">
 diskload ( FromDisk ToMem amount &#x2013; )<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;Load specified abount of bytes from disk into memory.<br >
@@ -1265,9 +1284,9 @@ fsDloadnew ( DynStr&lt;SrcFileName&gt; &#x2013; DynHand&lt;DataDest&gt; )<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 &#x2013; handle )<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;Allocate dynamic memory block and return it's handle.<br >
@@ -1309,9 +1328,9 @@ dyn. ( handle &#x2013; )<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 &#x2013; ) print number on screen<br >
 <br >
@@ -1381,9 +1400,9 @@ copyscreen      ( SrcImgHandle DestImgHandle &#x2013; ) copy contenc of source<b
 </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 &amp; 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 &amp; stack manipulation</h3>
+<div class="outline-text-3" id="text-12-6">
 <p class="verse">
 off             ( n &#x2013; ) writes 0 to given address, good for zeroing variable.<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;ex: MyVariable off<br >
@@ -1445,9 +1464,9 @@ abs             ( n &#x2013; |n| )<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 &amp; 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 &amp; 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
@@ -1581,12 +1600,12 @@ ex:     var mystring1<br >
 </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_@           ( &#x2013; code ) get scancodes for pressed keys from keyboard.<br >
@@ -1623,9 +1642,9 @@ FF      space<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 >
@@ -1644,9 +1663,9 @@ mousedo         ( &#x2013; ) Updates mouse coordinates and keys. Parse mouse<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 &#x2013; ) draws horisontal line<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;from X,Y coordinates to right, with specified length.<br >
@@ -1667,9 +1686,9 @@ imgfill         ( color x y imgbuf &#x2013; ) Fill image region starting at loca
 </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 &#x2013; result ) return sinus from given angle "a",<br >
 &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;360ø is 2000. So 1000 represents 180ø angle.<br >
@@ -1684,59 +1703,64 @@ cos             ( a &#x2013; result ) return cosinus from given 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. !Project deprecated!</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 &amp; miscellaneous</a></li>
-<li><a href="#sec-11-2">11.2. Conditionals &amp; control flow</a></li>
-<li><a href="#sec-11-3">11.3. Disk &amp; 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 &amp; stack manipulation</a></li>
-<li><a href="#sec-11-7">11.7. Dynamic &amp; static strings</a></li>
+<li><a href="#sec-12-1">12.1. Compilation &amp; miscellaneous</a></li>
+<li><a href="#sec-12-2">12.2. Conditionals &amp; control flow</a></li>
+<li><a href="#sec-12-3">12.3. Disk &amp; 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 &amp; stack manipulation</a></li>
+<li><a href="#sec-12-7">12.7. Dynamic &amp; 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>
@@ -1745,8 +1769,8 @@ cos             ( a &#x2013; result ) return cosinus from given angle.<br >
 </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="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>
 </div>
 </footer>
 </body>