Rephrased and expanded introduction in documentation for clarity and detail.
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 2 Feb 2026 23:16:04 +0000 (01:16 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 2 Feb 2026 23:16:04 +0000 (01:16 +0200)
doc/index.html
doc/index.org

index 174e5ec..56dea8e 100644 (file)
@@ -3,13 +3,13 @@
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 <head>
-<!-- 2023-09-19 Tue 18:07 -->
+<!-- 2026-02-03 Tue 01:12 -->
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1" />
 <title>Fifth - virtual machine, operating system, programming language</title>
 <meta name="author" content="Svjatoslav Agejenko" />
 <meta name="generator" content="Org Mode" />
-<style>
+<style type="text/css">
   #content { max-width: 60em; margin: auto; }
   .title  { text-align: center;
              margin-bottom: .2em; }
     { background-color: #ffff00; color: #000000; font-weight: bold; }
   .org-svg { }
 </style>
+<style type="text/css">
+               body {
+                 max-width: 35cm !important;
+               }
+               #content {
+                 max-width: 80em !important;
+                 width: 90%;
+               }
+               </style>
 <link rel="stylesheet" type="text/css" href="https://thomasf.github.io/solarized-css/solarized-dark.min.css" />
 </head>
 <body>
 <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul>
-<li><a href="#orgdd8d5a0">1. General</a>
+<li><a href="#org4486738">1. General</a>
 <ul>
-<li><a href="#org11b4b95">1.1. Source code</a></li>
+<li><a href="#org9d6f5ec">1.1. Source code</a></li>
 </ul>
 </li>
-<li><a href="#org0a3946b">2. !Project deprecated!</a></li>
-<li><a href="#org74c9861">3. Introduction</a>
+<li><a href="#orgdd79f1d">2. Introduction</a>
 <ul>
-<li><a href="#orge8b459e">3.1. Screenshots</a></li>
+<li><a href="#org4936051">2.1. Screenshots</a></li>
 </ul>
 </li>
-<li><a href="#orga9dfaee">4. Installation</a></li>
-<li><a href="#orgefa2f79">5. Fifth distribution directory tree description</a></li>
-<li><a href="#org751040b">6. Requirements</a>
+<li><a href="#org5f58cdf">3. Installation</a></li>
+<li><a href="#org8b9c975">4. Fifth distribution directory tree description</a></li>
+<li><a href="#org29ce6a9">5. Requirements</a>
 <ul>
-<li><a href="#org32f0917">6.1. Software</a></li>
-<li><a href="#orgd6ecfe1">6.2. Hardware</a></li>
+<li><a href="#org47eaa46">5.1. Software</a></li>
+<li><a href="#org20e4d36">5.2. Hardware</a></li>
 </ul>
 </li>
-<li><a href="#orgeb3cbc2">7. Numbers representation within Fifth</a></li>
-<li><a href="#orga8a8f37">8. Disk file map, and it's data structures</a>
+<li><a href="#org821d5fa">6. Numbers representation within Fifth</a></li>
+<li><a href="#org0d5f6fa">7. Disk file map, and it's data structures</a>
 <ul>
-<li><a href="#org4eb67fc">8.1. Disk allocation</a></li>
-<li><a href="#org5fcae51">8.2. FAT entry format:</a></li>
-<li><a href="#org811dc5b">8.3. File entry format</a></li>
+<li><a href="#orgff8ee3e">7.1. Disk allocation</a></li>
+<li><a href="#org224e86d">7.2. FAT entry format:</a></li>
+<li><a href="#org9c30d43">7.3. File entry format</a></li>
 </ul>
 </li>
-<li><a href="#orga49dca9">9. Core architecture</a>
+<li><a href="#org58ab957">8. Core architecture</a>
 <ul>
-<li><a href="#org75e80d5">9.1. Dictionary entry format</a></li>
-<li><a href="#org12381ef">9.2. Possible module types</a></li>
-<li><a href="#org33be039">9.3. Memory map</a></li>
+<li><a href="#org82b895c">8.1. Dictionary entry format</a></li>
+<li><a href="#org91e150c">8.2. Possible module types</a></li>
+<li><a href="#org5d75a57">8.3. Memory map</a></li>
 </ul>
 </li>
-<li><a href="#org81fd544">10. Dynamically loadable modules</a>
+<li><a href="#org5ba62b5">9. Dynamically loadable modules</a>
 <ul>
-<li><a href="#org79d1c84">10.1. Keyboard driver</a></li>
-<li><a href="#org99b4378">10.2. Mouse driver</a></li>
-<li><a href="#org0aa9e1f">10.3. 2D graphic library</a></li>
-<li><a href="#orgff6cdef">10.4. Trigonometry functions</a>
+<li><a href="#org9d420f3">9.1. Keyboard driver</a></li>
+<li><a href="#org4587bc8">9.2. Mouse driver</a></li>
+<li><a href="#orgdde086c">9.3. 2D graphic library</a></li>
+<li><a href="#org14b7791">9.4. Trigonometry functions</a>
 <ul>
-<li><a href="#org868f7c6">10.4.1. sin ( a &#x2013; result )</a></li>
-<li><a href="#orgc3f161e">10.4.2. cos ( a &#x2013; result )</a></li>
+<li><a href="#orgb989427">9.4.1. sin ( a &#x2013; result )</a></li>
+<li><a href="#orgb14ae13">9.4.2. cos ( a &#x2013; result )</a></li>
 </ul>
 </li>
 </ul>
 </ul>
 </div>
 </div>
-
-<div id="outline-container-orgdd8d5a0" class="outline-2">
-<h2 id="orgdd8d5a0"><span class="section-number-2">1.</span> General</h2>
+<div id="outline-container-org4486738" class="outline-2">
+<h2 id="org4486738"><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
 <li><a href="https://www.svjatoslav.eu/projects/">Other software projects hosted at svjatoslav.eu</a></li>
 </ul>
 </div>
-
-<div id="outline-container-org11b4b95" class="outline-3">
-<h3 id="org11b4b95"><span class="section-number-3">1.1.</span> Source code</h3>
+<div id="outline-container-org9d6f5ec" class="outline-3">
+<h3 id="org9d6f5ec"><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>
 Clone Git repository using command:
 </p>
 <pre class="example">
-git clone https://www2.svjatoslav.eu/git/fifth.git
+git clone https://www3.svjatoslav.eu/git/fifth.git
 </pre></li>
 </ul>
 </div>
 </div>
 </div>
-
-<div id="outline-container-org0a3946b" class="outline-2">
-<h2 id="org0a3946b"><span class="section-number-2">2.</span> !Project deprecated!</h2>
+<div id="outline-container-orgdd79f1d" class="outline-2">
+<h2 id="orgdd79f1d"><span class="section-number-2">2.</span> Introduction</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
-require reimplementation of everything.
+Fifth is self-hosting computing environment that integrates a <a href="virtual machine.html#ID-9b251eb9-aff6-4025-94bf-25e89e26d54a">custom
+virtual machine</a>, a <a href="language.html#ID-da7fff9b-0b67-4843-828a-52a404d7f401">Forth-inspired programming language</a>, and operating
+system.
 </p>
 
 <p>
-Currently I try to implement those new ideas in the project called
-<a href="https://www3.svjatoslav.eu/projects/sixth/">Sixth</a>.
+At its core lies a stack-based virtual CPU with two stacks (data and
+return), approximately 50 instructions, and a 4GB flat address
+space. This virtual machine executes the Fifth language — a concise,
+interactive, and extensible environment where every operation is a
+command that can be defined, redefined, or extended by the user. The
+language uses a custom character encoding (FSCII) with unique
+representations for control characters (e.g., space as FF instead of
+20 in ASCII) and features an innovative hexadecimal number system
+visualized as squares split into four triangles, each representing a
+single bit—similar to Bibi-binary.
 </p>
 
 <p>
-System is built many years ago when I was still using DOS as a primary
-operating system.
+It includes a disk-based filesystem, a built-in text editor, 2D
+graphics capabilities, mouse and keyboard drivers, and tools for file
+management and memory allocation.
 </p>
-</div>
-</div>
-<div id="outline-container-org74c9861" class="outline-2">
-<h2 id="org74c9861"><span class="section-number-2">3.</span> Introduction</h2>
-<div class="outline-text-2" id="text-3">
+
 <p>
-Fifth is a combination of:
+Released under the CC0 public domain license, Fifth is free for anyone
+to use, study, and modify. Whether you're a retro computing
+enthusiast, a systems programming student, or a curious developer.
 </p>
-<ul class="org-ul">
-<li><a href="language.html#ID-da7fff9b-0b67-4843-828a-52a404d7f401">Programming language</a> (inspired by Forth).</li>
-<li>Operating system.</li>
-<li><a href="virtual machine.html#ID-9b251eb9-aff6-4025-94bf-25e89e26d54a">Virtual machine</a> with custom instruction set.</li>
-</ul>
 </div>
+<div id="outline-container-org4936051" class="outline-3">
+<h3 id="org4936051"><span class="section-number-3">2.1.</span> Screenshots</h3>
+<div class="outline-text-3" id="text-2-1">
 
-<div id="outline-container-orge8b459e" class="outline-3">
-<h3 id="orge8b459e"><span class="section-number-3">3.1.</span> Screenshots</h3>
-<div class="outline-text-3" id="text-3-1">
-
-<div id="org76cf04c" class="figure">
+<div id="orga0fc3b9" class="figure">
 <p><img src="screenshots/start.png" alt="start.png" />
 </p>
 </div>
@@ -337,7 +343,7 @@ Startup screen diplaying Fifth logo and full file list.
 </p>
 
 
-<div id="org7579242" class="figure">
+<div id="org413f6ca" class="figure">
 <p><img src="screenshots/dictionary.png" alt="dictionary.png" />
 </p>
 </div>
@@ -350,7 +356,7 @@ executed, they can be selectively compiled or interpreted.
 
 
 
-<div id="org17f3e64" class="figure">
+<div id="org1834fc6" class="figure">
 <p><img src="screenshots/text editor.png" alt="text editor.png" />
 </p>
 </div>
@@ -361,10 +367,9 @@ Built in text editor.
 </div>
 </div>
 </div>
-
-<div id="outline-container-orga9dfaee" class="outline-2">
-<h2 id="orga9dfaee"><span class="section-number-2">4.</span> Installation</h2>
-<div class="outline-text-2" id="text-4">
+<div id="outline-container-org5f58cdf" class="outline-2">
+<h2 id="org5f58cdf"><span class="section-number-2">3.</span> Installation</h2>
+<div class="outline-text-2" id="text-3">
 <p>
 Just unpack all files, witout altering original directory structure,
 somewhere in your hard disk. For example:
@@ -384,15 +389,14 @@ To run fifth you need minimally just 2 files:
 </dl>
 
 <p>
-For more information, please refer to <a href="#orgefa2f79">Fifth distribution directory
+For more information, please refer to <a href="#org8b9c975">Fifth distribution directory
 tree description</a>.
 </p>
 </div>
 </div>
-
-<div id="outline-container-orgefa2f79" class="outline-2">
-<h2 id="orgefa2f79"><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-org8b9c975" class="outline-2">
+<h2 id="org8b9c975"><span class="section-number-2">4.</span> Fifth distribution directory tree description</h2>
+<div class="outline-text-2" id="text-4">
 <p>
 After downloading and unpacking the ZIP file you shoud get directory
 tree similar to this:
@@ -415,14 +419,13 @@ tree similar to this:
 </p>
 </div>
 </div>
-
-<div id="outline-container-org751040b" class="outline-2">
-<h2 id="org751040b"><span class="section-number-2">6.</span> Requirements</h2>
-<div class="outline-text-2" id="text-6">
+<div id="outline-container-org29ce6a9" class="outline-2">
+<h2 id="org29ce6a9"><span class="section-number-2">5.</span> Requirements</h2>
+<div class="outline-text-2" id="text-5">
 </div>
-<div id="outline-container-org32f0917" class="outline-3">
-<h3 id="org32f0917"><span class="section-number-3">6.1.</span> Software</h3>
-<div class="outline-text-3" id="text-6-1">
+<div id="outline-container-org47eaa46" class="outline-3">
+<h3 id="org47eaa46"><span class="section-number-3">5.1.</span> Software</h3>
+<div class="outline-text-3" id="text-5-1">
 <ul class="org-ul">
 <li>MS-DOS 6.22 with HIMEM.SYS loaded.</li>
 <li>Mouse driver (optional, if you have a mouse).</li>
@@ -433,10 +436,9 @@ tree similar to this:
 </ul>
 </div>
 </div>
-
-<div id="outline-container-orgd6ecfe1" class="outline-3">
-<h3 id="orgd6ecfe1"><span class="section-number-3">6.2.</span> Hardware</h3>
-<div class="outline-text-3" id="text-6-2">
+<div id="outline-container-org20e4d36" class="outline-3">
+<h3 id="org20e4d36"><span class="section-number-3">5.2.</span> Hardware</h3>
+<div class="outline-text-3" id="text-5-2">
 <ul class="org-ul">
 <li>A minimum of a i386 CPU.</li>
 <li>64 KB of free RAM below 640KB.</li>
@@ -446,10 +448,9 @@ tree similar to this:
 </div>
 </div>
 </div>
-
-<div id="outline-container-orgeb3cbc2" class="outline-2">
-<h2 id="orgeb3cbc2"><span class="section-number-2">7.</span> Numbers representation within Fifth</h2>
-<div class="outline-text-2" id="text-7">
+<div id="outline-container-org821d5fa" class="outline-2">
+<h2 id="org821d5fa"><span class="section-number-2">6.</span> Numbers representation within Fifth</h2>
+<div class="outline-text-2" id="text-6">
 <p>
 Because we are in full experimentation mode here (no regard for
 compatibility whatsoever), why not to try also alternative number
@@ -461,7 +462,7 @@ Here alternative hexadecimal number representation format is devised:
 </p>
 
 
-<div id="org67795e4" class="figure">
+<div id="org26a21b0" class="figure">
 <p><a href="numbers.png"><img src="numbers.png" alt="numbers.png" /></a>
 </p>
 </div>
@@ -481,19 +482,18 @@ See also: <a href="https://en.wikipedia.org/wiki/Bibi-binary">Bibi-binary</a>.
 </p>
 </div>
 </div>
-
-<div id="outline-container-orga8a8f37" class="outline-2">
-<h2 id="orga8a8f37"><span class="section-number-2">8.</span> Disk file map, and it's data structures</h2>
-<div class="outline-text-2" id="text-8">
+<div id="outline-container-org0d5f6fa" class="outline-2">
+<h2 id="org0d5f6fa"><span class="section-number-2">7.</span> Disk file map, and it's data structures</h2>
+<div class="outline-text-2" id="text-7">
 <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-org4eb67fc" class="outline-3">
-<h3 id="org4eb67fc"><span class="section-number-3">8.1.</span> Disk allocation</h3>
-<div class="outline-text-3" id="text-8-1">
+<div id="outline-container-orgff8ee3e" class="outline-3">
+<h3 id="orgff8ee3e"><span class="section-number-3">7.1.</span> Disk allocation</h3>
+<div class="outline-text-3" id="text-7-1">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
 
@@ -539,9 +539,9 @@ yet initialized.
 </table>
 </div>
 </div>
-<div id="outline-container-org5fcae51" class="outline-3">
-<h3 id="org5fcae51"><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-org224e86d" class="outline-3">
+<h3 id="org224e86d"><span class="section-number-3">7.2.</span> FAT entry format:</h3>
+<div class="outline-text-3" id="text-7-2">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
 
@@ -575,9 +575,9 @@ yet initialized.
 </table>
 </div>
 </div>
-<div id="outline-container-org811dc5b" class="outline-3">
-<h3 id="org811dc5b"><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-org9c30d43" class="outline-3">
+<h3 id="org9c30d43"><span class="section-number-3">7.3.</span> File entry format</h3>
+<div class="outline-text-3" id="text-7-3">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
 
@@ -630,9 +630,9 @@ yet initialized.
 </div>
 </div>
 </div>
-<div id="outline-container-orga49dca9" class="outline-2">
-<h2 id="orga49dca9"><span class="section-number-2">9.</span> Core architecture</h2>
-<div class="outline-text-2" id="text-9">
+<div id="outline-container-org58ab957" class="outline-2">
+<h2 id="org58ab957"><span class="section-number-2">8.</span> Core architecture</h2>
+<div class="outline-text-2" id="text-8">
 <p>
 Fifth core is simply some amount of already compiled into machine code
 and linked together modules (entries in other words). In compilation
@@ -644,9 +644,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-org75e80d5" class="outline-3">
-<h3 id="org75e80d5"><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-org82b895c" class="outline-3">
+<h3 id="org82b895c"><span class="section-number-3">8.1.</span> Dictionary entry format</h3>
+<div class="outline-text-3" id="text-8-1">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
 
@@ -713,9 +713,9 @@ run through headers backwards and find needed entry.
 </p>
 </div>
 </div>
-<div id="outline-container-org12381ef" class="outline-3">
-<h3 id="org12381ef"><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-org91e150c" class="outline-3">
+<h3 id="org91e150c"><span class="section-number-3">8.2.</span> Possible module types</h3>
+<div class="outline-text-3" id="text-8-2">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
 
@@ -769,9 +769,9 @@ run through headers backwards and find needed entry.
 </table>
 </div>
 </div>
-<div id="outline-container-org33be039" class="outline-3">
-<h3 id="org33be039"><span class="section-number-3">9.3.</span> Memory map</h3>
-<div class="outline-text-3" id="text-9-3">
+<div id="outline-container-org5d75a57" class="outline-3">
+<h3 id="org5d75a57"><span class="section-number-3">8.3.</span> Memory map</h3>
+<div class="outline-text-3" id="text-8-3">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
 
@@ -818,13 +818,13 @@ run through headers backwards and find needed entry.
 </div>
 </div>
 </div>
-<div id="outline-container-org81fd544" class="outline-2">
-<h2 id="org81fd544"><span class="section-number-2">10.</span> Dynamically loadable modules</h2>
-<div class="outline-text-2" id="text-10">
+<div id="outline-container-org5ba62b5" class="outline-2">
+<h2 id="org5ba62b5"><span class="section-number-2">9.</span> Dynamically loadable modules</h2>
+<div class="outline-text-2" id="text-9">
 </div>
-<div id="outline-container-org79d1c84" class="outline-3">
-<h3 id="org79d1c84"><span class="section-number-3">10.1.</span> Keyboard driver</h3>
-<div class="outline-text-3" id="text-10-1">
+<div id="outline-container-org9d420f3" class="outline-3">
+<h3 id="org9d420f3"><span class="section-number-3">9.1.</span> Keyboard driver</h3>
+<div class="outline-text-3" id="text-9-1">
 <p class="verse">
 <br />
 KBD_@           ( &#x2013; code ) get scancodes for pressed keys from keyboard.<br />
@@ -861,9 +861,9 @@ FF      space<br />
 </p>
 </div>
 </div>
-<div id="outline-container-org99b4378" class="outline-3">
-<h3 id="org99b4378"><span class="section-number-3">10.2.</span> Mouse driver</h3>
-<div class="outline-text-3" id="text-10-2">
+<div id="outline-container-org4587bc8" class="outline-3">
+<h3 id="org4587bc8"><span class="section-number-3">9.2.</span> Mouse driver</h3>
+<div class="outline-text-3" id="text-9-2">
 <p class="verse">
 mousex  var     Mouse x coordinate.<br />
 mousey  var     Mouse y coordinate.<br />
@@ -882,9 +882,9 @@ mousedo         ( &#x2013; ) Updates mouse coordinates and keys. Parse mouse<br
 </p>
 </div>
 </div>
-<div id="outline-container-org0aa9e1f" class="outline-3">
-<h3 id="org0aa9e1f"><span class="section-number-3">10.3.</span> 2D graphic library</h3>
-<div class="outline-text-3" id="text-10-3">
+<div id="outline-container-orgdde086c" class="outline-3">
+<h3 id="orgdde086c"><span class="section-number-3">9.3.</span> 2D graphic library</h3>
+<div class="outline-text-3" id="text-9-3">
 <dl class="org-dl">
 <dt>lineh ( color len x y imgbuf &#x2013; )</dt><dd>draws horisontal line from X,Y
 coordinates to right, with specified length.</dd>
@@ -897,7 +897,7 @@ draws rectangular box. x2
 bust be &gt;= x1, y2 must be &gt;= y1.
 </p>
 
-<pre class="example" id="orgfea073c">
+<pre class="example" id="org8b1fce2">
 x1,y1-----------+
   |             |
   |             |
@@ -914,25 +914,24 @@ location X &amp; Y with specified color.</dd>
 </dl>
 </div>
 </div>
-
-<div id="outline-container-orgff6cdef" class="outline-3">
-<h3 id="orgff6cdef"><span class="section-number-3">10.4.</span> Trigonometry functions</h3>
-<div class="outline-text-3" id="text-10-4">
+<div id="outline-container-org14b7791" class="outline-3">
+<h3 id="org14b7791"><span class="section-number-3">9.4.</span> Trigonometry functions</h3>
+<div class="outline-text-3" id="text-9-4">
 </div>
-<div id="outline-container-org868f7c6" class="outline-4">
-<h4 id="org868f7c6"><span class="section-number-4">10.4.1.</span> sin ( a &#x2013; result )</h4>
-<div class="outline-text-4" id="text-10-4-1">
+<div id="outline-container-orgb989427" class="outline-4">
+<h4 id="orgb989427"><span class="section-number-4">9.4.1.</span> sin ( a &#x2013; result )</h4>
+<div class="outline-text-4" id="text-9-4-1">
 <p>
 Return sinus from given angle "a", 360ø is 2000. So 1000 represents
 180ø angle.  Result will be in range -10'000 to 10'000, instead of ñ1.
 </p>
 </div>
 </div>
-<div id="outline-container-orgc3f161e" class="outline-4">
-<h4 id="orgc3f161e"><span class="section-number-4">10.4.2.</span> cos ( a &#x2013; result )</h4>
-<div class="outline-text-4" id="text-10-4-2">
+<div id="outline-container-orgb14ae13" class="outline-4">
+<h4 id="orgb14ae13"><span class="section-number-4">9.4.2.</span> cos ( a &#x2013; result )</h4>
+<div class="outline-text-4" id="text-9-4-2">
 <p>
-Return cosinus from given angle.  Parameters are like in <a href="#org868f7c6">sin</a> function.
+Return cosinus from given angle.  Parameters are like in <a href="#orgb989427">sin</a> function.
 </p>
 </div>
 </div>
@@ -941,7 +940,7 @@ Return cosinus from given angle.  Parameters are like in <a href="#org868f7c6">s
 </div>
 <div id="postamble" class="status">
 <p class="author">Author: Svjatoslav Agejenko</p>
-<p class="date">Created: 2023-09-19 Tue 18:07</p>
+<p class="date">Created: 2026-02-03 Tue 01:12</p>
 <p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
 </div>
 </body>
index c370a29..18c4996 100644 (file)
 - [[https://www2.svjatoslav.eu/gitweb/?p=fifth.git;a=summary][Browse Git repository online]]
 
 - Clone Git repository using command:
-  : git clone https://www2.svjatoslav.eu/git/fifth.git
+  : git clone https://www3.svjatoslav.eu/git/fifth.git
 
-* !Project deprecated!
-Current implementation does not support object oriented
-programming. While working on Fifth I got lots of cool new ideas that
-require reimplementation of everything.
-
-Currently I try to implement those new ideas in the project called
-[[https://www3.svjatoslav.eu/projects/sixth/][Sixth]].
+* Introduction
 
-System is built many years ago when I was still using DOS as a primary
+Fifth is self-hosting hobby computing environment that integrates a
+[[id:9b251eb9-aff6-4025-94bf-25e89e26d54a][custom virtual machine]], a [[id:da7fff9b-0b67-4843-828a-52a404d7f401][Forth-inspired programming language]], and
 operating system.
-* Introduction
-Fifth is a combination of:
-- [[id:da7fff9b-0b67-4843-828a-52a404d7f401][Programming language]] (inspired by Forth).
-- Operating system.
-- [[id:9b251eb9-aff6-4025-94bf-25e89e26d54a][Virtual machine]] with custom instruction set.
+
+At its core lies a stack-based virtual CPU with two stacks (data and
+return), approximately 50 instructions, and a 4GB flat address
+space. This virtual machine executes the Fifth language — a concise,
+interactive, and extensible environment where every operation is a
+command that can be defined, redefined, or extended by the user. The
+language uses a custom character encoding (FSCII) with unique
+representations for control characters (e.g., space as FF instead of
+20 in ASCII) and features an innovative hexadecimal number system
+visualized as squares split into four triangles, each representing a
+single bit—similar to Bibi-binary.
+
+It includes a disk-based filesystem, a built-in text editor, 2D
+graphics capabilities, mouse and keyboard drivers, and tools for file
+management and memory allocation.
+
+Released under the CC0 public domain license, Fifth is free for anyone
+to use, study, and modify. Whether you're a retro computing
+enthusiast, a systems programming student, or a curious developer.
 
 ** Screenshots