Rephrased documentation for better readability master
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Tue, 19 Sep 2023 15:10:01 +0000 (18:10 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Tue, 19 Sep 2023 15:10:01 +0000 (18:10 +0300)
doc/index.html
doc/index.org
doc/language.html
doc/language.org

index cadd753..174e5ec 100644 (file)
@@ -3,7 +3,7 @@
 "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-18 Mon 01:47 -->
+<!-- 2023-09-19 Tue 18:07 -->
 <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>
   .org-svg { }
 </style>
 <link rel="stylesheet" type="text/css" href="https://thomasf.github.io/solarized-css/solarized-dark.min.css" />
-<script type="text/x-mathjax-config">
-    MathJax.Hub.Config({
-        displayAlign: "center",
-        displayIndent: "0em",
-
-        "HTML-CSS": { scale: 100,
-                        linebreaks: { automatic: "false" },
-                        webFont: "TeX"
-                       },
-        SVG: {scale: 100,
-              linebreaks: { automatic: "false" },
-              font: "TeX"},
-        NativeMML: {scale: 100},
-        TeX: { equationNumbers: {autoNumber: "AMS"},
-               MultLineWidth: "85%",
-               TagSide: "right",
-               TagIndent: ".8em"
-             }
-});
-</script>
-<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
 </head>
 <body>
 <div id="content" class="content">
 <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul>
-<li><a href="#org48b7220">1. General</a>
+<li><a href="#orgdd8d5a0">1. General</a>
 <ul>
-<li><a href="#org22b59dd">1.1. Source code</a></li>
+<li><a href="#org11b4b95">1.1. Source code</a></li>
 </ul>
 </li>
-<li><a href="#org20b6805">2. !Project deprecated!</a></li>
-<li><a href="#orgc67a478">3. Introduction</a>
+<li><a href="#org0a3946b">2. !Project deprecated!</a></li>
+<li><a href="#org74c9861">3. Introduction</a>
 <ul>
-<li><a href="#org8504a11">3.1. screenshots</a></li>
+<li><a href="#orge8b459e">3.1. Screenshots</a></li>
 </ul>
 </li>
-<li><a href="#org0e56472">4. Installation</a></li>
-<li><a href="#orgf9fdcb5">5. Fifth distribution directory tree description</a></li>
-<li><a href="#org415759c">6. Requirements</a>
+<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>
 <ul>
-<li><a href="#org44f8cdd">6.1. Software</a></li>
-<li><a href="#orgf4e46f6">6.2. Hardware</a></li>
-<li><a href="#org00ed0b8">6.3. Human</a></li>
+<li><a href="#org32f0917">6.1. Software</a></li>
+<li><a href="#orgd6ecfe1">6.2. Hardware</a></li>
 </ul>
 </li>
-<li><a href="#orgc60d938">7. Numbers representation within Fifth</a></li>
-<li><a href="#orgd7d6a8e">8. Disk file map, and it's data structures</a>
+<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>
 <ul>
-<li><a href="#org2db1035">8.1. Disk allocation</a></li>
-<li><a href="#org776d15e">8.2. FAT entry format:</a></li>
-<li><a href="#org03a8280">8.3. File entry format</a></li>
+<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>
 </ul>
 </li>
-<li><a href="#orgbfdae7b">9. Core architecture</a>
+<li><a href="#orga49dca9">9. Core architecture</a>
 <ul>
-<li><a href="#org77ca4ba">9.1. Dictionary entry format</a></li>
-<li><a href="#orga2a22a5">9.2. Possible module types</a></li>
-<li><a href="#org6b34748">9.3. Memory map</a></li>
+<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>
 </ul>
 </li>
-<li><a href="#org835c31e">10. Dynamically loadable modules</a>
+<li><a href="#org81fd544">10. Dynamically loadable modules</a>
 <ul>
-<li><a href="#orgd31a968">10.1. Keyboard driver</a></li>
-<li><a href="#orgc5f8a76">10.2. Mouse driver</a></li>
-<li><a href="#org64da03a">10.3. 2D graphic library</a></li>
-<li><a href="#org203890d">10.4. Trigonometry functions</a>
+<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>
 <ul>
-<li><a href="#org618a2c2">10.4.1. sin ( a &#x2013; result )</a></li>
-<li><a href="#org0f995cf">10.4.2. cos ( a &#x2013; result )</a></li>
+<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>
 </ul>
 </li>
 </ul>
 </div>
 </div>
 
-<div id="outline-container-org48b7220" class="outline-2">
-<h2 id="org48b7220"><span class="section-number-2">1.</span> General</h2>
+<div id="outline-container-orgdd8d5a0" class="outline-2">
+<h2 id="orgdd8d5a0"><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
 </ul>
 </div>
 
-<div id="outline-container-org22b59dd" class="outline-3">
-<h3 id="org22b59dd"><span class="section-number-3">1.1.</span> Source code</h3>
+<div id="outline-container-org11b4b95" class="outline-3">
+<h3 id="org11b4b95"><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>
@@ -312,8 +290,8 @@ git clone https://www2.svjatoslav.eu/git/fifth.git
 </div>
 </div>
 
-<div id="outline-container-org20b6805" class="outline-2">
-<h2 id="org20b6805"><span class="section-number-2">2.</span> !Project deprecated!</h2>
+<div id="outline-container-org0a3946b" class="outline-2">
+<h2 id="org0a3946b"><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
@@ -332,8 +310,8 @@ operating system.
 </p>
 </div>
 </div>
-<div id="outline-container-orgc67a478" class="outline-2">
-<h2 id="orgc67a478"><span class="section-number-2">3.</span> Introduction</h2>
+<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:
@@ -342,14 +320,14 @@ Fifth is a combination of:
 <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>
-<li><a href="5TH_ET.txt">Example Fifth source file - text editor</a></li>
 </ul>
 </div>
-<div id="outline-container-org8504a11" class="outline-3">
-<h3 id="org8504a11"><span class="section-number-3">3.1.</span> screenshots</h3>
+
+<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="org9178e56" class="figure">
+<div id="org76cf04c" class="figure">
 <p><img src="screenshots/start.png" alt="start.png" />
 </p>
 </div>
@@ -359,20 +337,20 @@ Startup screen diplaying Fifth logo and full file list.
 </p>
 
 
-<div id="orgf022552" class="figure">
+<div id="org7579242" class="figure">
 <p><img src="screenshots/dictionary.png" alt="dictionary.png" />
 </p>
 </div>
 
 <p>
 Sample words defined. Most of the words are commands that can be
-executed interactively from command line or from file. When executed
-they can be selectively compiled or interpreted.
+executed interactively from the command line or from a file. When
+executed, they can be selectively compiled or interpreted.
 </p>
 
 
 
-<div id="org415fab1" class="figure">
+<div id="org17f3e64" class="figure">
 <p><img src="screenshots/text editor.png" alt="text editor.png" />
 </p>
 </div>
@@ -384,24 +362,36 @@ Built in text editor.
 </div>
 </div>
 
-<div id="outline-container-org0e56472" class="outline-2">
-<h2 id="org0e56472"><span class="section-number-2">4.</span> Installation</h2>
+<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">
 <p>
 Just unpack all files, witout altering original directory structure,
-somewhere in your hard disk. For example: C:\MISC\FIFTH\&#x2026;.  To run
-fifth you need minimally just 2 files.  emulator itself ( EMULATOR.EXE
-or EMULATOR.COM ), and virtual disk file ( DISK.RAW ).
+somewhere in your hard disk. For example:
 </p>
 
+<pre class="example">
+C:\MISC\FIFTH\
+</pre>
+
+
 <p>
-Read more about <a href="#orgf9fdcb5">Fifth distribution directory tree description</a>.
+To run fifth you need minimally just 2 files:
+</p>
+<dl class="org-dl">
+<dt>EMULATOR.COM</dt><dd>Virtual CPU emulator</dd>
+<dt>DISK.RAW</dt><dd>Virtual disk file</dd>
+</dl>
+
+<p>
+For more information, please refer to <a href="#orgefa2f79">Fifth distribution directory
+tree description</a>.
 </p>
 </div>
 </div>
 
-<div id="outline-container-orgf9fdcb5" class="outline-2">
-<h2 id="orgf9fdcb5"><span class="section-number-2">5.</span> Fifth distribution directory tree description</h2>
+<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">
 <p>
 After downloading and unpacking the ZIP file you shoud get directory
@@ -426,46 +416,39 @@ tree similar to this:
 </div>
 </div>
 
-<div id="outline-container-org415759c" class="outline-2">
-<h2 id="org415759c"><span class="section-number-2">6.</span> Requirements</h2>
+<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>
-<div id="outline-container-org44f8cdd" class="outline-3">
-<h3 id="org44f8cdd"><span class="section-number-3">6.1.</span> Software</h3>
+<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">
 <ul class="org-ul">
-<li>MS-DOS 6.22, with HIMEM.SYS loaded.</li>
-<li>Mouse driver if you have a mouse.</li>
-<li>Does work only when CPU is in real mode.</li>
-<li>To recompile ASM sources I used FASM (Flat Assembler).</li>
-<li>I ran QBasic utilities on QB 4.5 .</li>
-<li>VESA support by BIOS, or external driver (UNIVBE).</li>
+<li>MS-DOS 6.22 with HIMEM.SYS loaded.</li>
+<li>Mouse driver (optional, if you have a mouse).</li>
+<li>CPU is initialized into <a href="https://en.wikipedia.org/wiki/Unreal_mode">Unreal Mode</a> during operation.</li>
+<li>To recompile ASM sources, you can use FASM (Flat Assembler).</li>
+<li>To run Quick Basic utilities, use Microsoft Quick Basic 4.5.</li>
+<li>VESA support through BIOS or external driver (UNIVBE).</li>
 </ul>
 </div>
 </div>
-<div id="outline-container-orgf4e46f6" class="outline-3">
-<h3 id="orgf4e46f6"><span class="section-number-3">6.2.</span> Hardware</h3>
+
+<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">
 <ul class="org-ul">
-<li>Minimum CPU 386.</li>
-<li>64 KB free RAM below 640KB,</li>
-<li>2 MB of free XMS.</li>
-<li>VESA compatible video card.</li>
+<li>A minimum of a i386 CPU.</li>
+<li>64 KB of free RAM below 640KB.</li>
+<li>2 MB of free <a href="https://en.wikipedia.org/wiki/Extended_memory">extended memory</a>.</li>
+<li>A VESA-compatible video card.</li>
 </ul>
 </div>
 </div>
-<div id="outline-container-org00ed0b8" class="outline-3">
-<h3 id="org00ed0b8"><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>
-<li>Lots of enthusiasm.</li>
-</ul>
 </div>
-</div>
-</div>
-<div id="outline-container-orgc60d938" class="outline-2">
-<h2 id="orgc60d938"><span class="section-number-2">7.</span> Numbers representation within Fifth</h2>
+
+<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">
 <p>
 Because we are in full experimentation mode here (no regard for
@@ -478,7 +461,7 @@ Here alternative hexadecimal number representation format is devised:
 </p>
 
 
-<div id="org806c6d6" class="figure">
+<div id="org67795e4" class="figure">
 <p><a href="numbers.png"><img src="numbers.png" alt="numbers.png" /></a>
 </p>
 </div>
@@ -499,8 +482,8 @@ See also: <a href="https://en.wikipedia.org/wiki/Bibi-binary">Bibi-binary</a>.
 </div>
 </div>
 
-<div id="outline-container-orgd7d6a8e" class="outline-2">
-<h2 id="orgd7d6a8e"><span class="section-number-2">8.</span> Disk file map, and it's data structures</h2>
+<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">
 <p>
 Core and high-level boot code is stored outside of the filesystem to
@@ -508,8 +491,8 @@ allow easy access to it, at early booting time, when filesystem is not
 yet initialized.
 </p>
 </div>
-<div id="outline-container-org2db1035" class="outline-3">
-<h3 id="org2db1035"><span class="section-number-3">8.1.</span> Disk allocation</h3>
+<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">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
@@ -556,8 +539,8 @@ yet initialized.
 </table>
 </div>
 </div>
-<div id="outline-container-org776d15e" class="outline-3">
-<h3 id="org776d15e"><span class="section-number-3">8.2.</span> FAT entry format:</h3>
+<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">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
@@ -592,8 +575,8 @@ yet initialized.
 </table>
 </div>
 </div>
-<div id="outline-container-org03a8280" class="outline-3">
-<h3 id="org03a8280"><span class="section-number-3">8.3.</span> File entry format</h3>
+<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">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
@@ -647,8 +630,8 @@ yet initialized.
 </div>
 </div>
 </div>
-<div id="outline-container-orgbfdae7b" class="outline-2">
-<h2 id="orgbfdae7b"><span class="section-number-2">9.</span> Core architecture</h2>
+<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">
 <p>
 Fifth core is simply some amount of already compiled into machine code
@@ -661,8 +644,8 @@ 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-org77ca4ba" class="outline-3">
-<h3 id="org77ca4ba"><span class="section-number-3">9.1.</span> Dictionary entry format</h3>
+<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">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
@@ -730,8 +713,8 @@ run through headers backwards and find needed entry.
 </p>
 </div>
 </div>
-<div id="outline-container-orga2a22a5" class="outline-3">
-<h3 id="orga2a22a5"><span class="section-number-3">9.2.</span> Possible module types</h3>
+<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">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
@@ -786,8 +769,8 @@ run through headers backwards and find needed entry.
 </table>
 </div>
 </div>
-<div id="outline-container-org6b34748" class="outline-3">
-<h3 id="org6b34748"><span class="section-number-3">9.3.</span> Memory map</h3>
+<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">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
@@ -835,12 +818,12 @@ run through headers backwards and find needed entry.
 </div>
 </div>
 </div>
-<div id="outline-container-org835c31e" class="outline-2">
-<h2 id="org835c31e"><span class="section-number-2">10.</span> Dynamically loadable modules</h2>
+<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>
-<div id="outline-container-orgd31a968" class="outline-3">
-<h3 id="orgd31a968"><span class="section-number-3">10.1.</span> Keyboard driver</h3>
+<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">
 <p class="verse">
 <br />
@@ -878,8 +861,8 @@ FF      space<br />
 </p>
 </div>
 </div>
-<div id="outline-container-orgc5f8a76" class="outline-3">
-<h3 id="orgc5f8a76"><span class="section-number-3">10.2.</span> Mouse driver</h3>
+<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">
 <p class="verse">
 mousex  var     Mouse x coordinate.<br />
@@ -899,8 +882,8 @@ mousedo         ( &#x2013; ) Updates mouse coordinates and keys. Parse mouse<br
 </p>
 </div>
 </div>
-<div id="outline-container-org64da03a" class="outline-3">
-<h3 id="org64da03a"><span class="section-number-3">10.3.</span> 2D graphic library</h3>
+<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">
 <dl class="org-dl">
 <dt>lineh ( color len x y imgbuf &#x2013; )</dt><dd>draws horisontal line from X,Y
@@ -914,7 +897,7 @@ draws rectangular box. x2
 bust be &gt;= x1, y2 must be &gt;= y1.
 </p>
 
-<pre class="example" id="org0225660">
+<pre class="example" id="orgfea073c">
 x1,y1-----------+
   |             |
   |             |
@@ -932,12 +915,12 @@ location X &amp; Y with specified color.</dd>
 </div>
 </div>
 
-<div id="outline-container-org203890d" class="outline-3">
-<h3 id="org203890d"><span class="section-number-3">10.4.</span> Trigonometry functions</h3>
+<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>
-<div id="outline-container-org618a2c2" class="outline-4">
-<h4 id="org618a2c2"><span class="section-number-4">10.4.1.</span> sin ( a &#x2013; result )</h4>
+<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">
 <p>
 Return sinus from given angle "a", 360ø is 2000. So 1000 represents
@@ -945,11 +928,11 @@ Return sinus from given angle "a", 360ø is 2000. So 1000 represents
 </p>
 </div>
 </div>
-<div id="outline-container-org0f995cf" class="outline-4">
-<h4 id="org0f995cf"><span class="section-number-4">10.4.2.</span> cos ( a &#x2013; result )</h4>
+<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">
 <p>
-Return cosinus from given angle.  Parameters are like in <a href="#org618a2c2">sin</a> function.
+Return cosinus from given angle.  Parameters are like in <a href="#org868f7c6">sin</a> function.
 </p>
 </div>
 </div>
@@ -958,7 +941,7 @@ Return cosinus from given angle.  Parameters are like in <a href="#org618a2c2">s
 </div>
 <div id="postamble" class="status">
 <p class="author">Author: Svjatoslav Agejenko</p>
-<p class="date">Created: 2023-09-18 Mon 01:47</p>
+<p class="date">Created: 2023-09-19 Tue 18:07</p>
 <p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
 </div>
 </body>
index 4d9c4a0..c370a29 100644 (file)
@@ -34,8 +34,9 @@ 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.
-- [[file:5TH_ET.txt][Example Fifth source file - text editor]]
-** screenshots
+
+** Screenshots
+
 [[file:screenshots/start.png]]
 
 Startup screen diplaying Fifth logo and full file list.
@@ -43,8 +44,8 @@ Startup screen diplaying Fifth logo and full file list.
 [[file:screenshots/dictionary.png]]
 
 Sample words defined. Most of the words are commands that can be
-executed interactively from command line or from file. When executed
-they can be selectively compiled or interpreted.
+executed interactively from the command line or from a file. When
+executed, they can be selectively compiled or interpreted.
 
 
 [[file:screenshots/text editor.png]]
@@ -53,11 +54,16 @@ Built in text editor.
 
 * Installation
 Just unpack all files, witout altering original directory structure,
-somewhere in your hard disk. For example: C:\MISC\FIFTH\....  To run
-fifth you need minimally just 2 files.  emulator itself ( EMULATOR.EXE
-or EMULATOR.COM ), and virtual disk file ( DISK.RAW ).
+somewhere in your hard disk. For example:
+
+: C:\MISC\FIFTH\
 
-Read more about [[id:0759f3e0-28bb-4901-9e4f-09ef41732173][Fifth distribution directory tree description]].
+To run fifth you need minimally just 2 files:
+- EMULATOR.COM :: Virtual CPU emulator
+- DISK.RAW :: Virtual disk file
+
+For more information, please refer to [[id:0759f3e0-28bb-4901-9e4f-09ef41732173][Fifth distribution directory
+tree description]].
 
 * Fifth distribution directory tree description
 :PROPERTIES:
@@ -84,20 +90,19 @@ tree similar to this:
 
 * Requirements
 ** Software
-- MS-DOS 6.22, with HIMEM.SYS loaded.
-- Mouse driver if you have a mouse.
-- Does work only when CPU is in real mode.
-- To recompile ASM sources I used FASM (Flat Assembler).
-- I ran QBasic utilities on QB 4.5 .
-- VESA support by BIOS, or external driver (UNIVBE).
+- MS-DOS 6.22 with HIMEM.SYS loaded.
+- Mouse driver (optional, if you have a mouse).
+- CPU is initialized into [[https://en.wikipedia.org/wiki/Unreal_mode][Unreal Mode]] during operation.
+- To recompile ASM sources, you can use FASM (Flat Assembler).
+- To run Quick Basic utilities, use Microsoft Quick Basic 4.5.
+- VESA support through BIOS or external driver (UNIVBE).
+
 ** Hardware
-- Minimum CPU 386.
-- 64 KB free RAM below 640KB,
-- 2 MB of free XMS.
-- VESA compatible video card.
-** Human
-- Beginner level Forth knowledge is recommended.
-- Lots of enthusiasm.
+- A minimum of a i386 CPU.
+- 64 KB of free RAM below 640KB.
+- 2 MB of free [[https://en.wikipedia.org/wiki/Extended_memory][extended memory]].
+- A VESA-compatible video card.
+
 * Numbers representation within Fifth
 
 Because we are in full experimentation mode here (no regard for
index b6c120c..ef8f0eb 100644 (file)
@@ -3,7 +3,7 @@
 "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-18 Mon 01:47 -->
+<!-- 2023-09-19 Tue 18:07 -->
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1" />
 <title>Fifth - language</title>
 <h2>Table of Contents</h2>
 <div id="text-table-of-contents" role="doc-toc">
 <ul>
-<li><a href="#orgb91833d">1. Fifth source format</a>
+<li><a href="#orgfe5302c">1. Fifth source format</a>
 <ul>
-<li><a href="#orgceb2541">1.1. FSCII</a></li>
+<li><a href="#orge4e9f7d">1.1. FSCII</a></li>
 </ul>
 </li>
-<li><a href="#org8270664">2. Fifth commands</a>
+<li><a href="#orge63cf49">2. Fifth commands</a>
 <ul>
-<li><a href="#org6885ec7">2.1. Compilation &amp; miscellaneous</a></li>
-<li><a href="#orge400336">2.2. Conditionals &amp; control flow</a></li>
-<li><a href="#org69bc847">2.3. Disk &amp; file access</a></li>
-<li><a href="#orgee300f5">2.4. Dynamic memory</a></li>
-<li><a href="#org1784744">2.5. Graphics and text</a></li>
-<li><a href="#org4c1d973">2.6. Math, memory &amp; stack manipulation</a></li>
-<li><a href="#org0c4a738">2.7. Dynamic &amp; static strings</a></li>
+<li><a href="#org25bc695">2.1. Compilation &amp; miscellaneous</a></li>
+<li><a href="#orgc47a7bb">2.2. Conditionals &amp; control flow</a></li>
+<li><a href="#org572f33f">2.3. Disk &amp; file access</a></li>
+<li><a href="#org89deb72">2.4. Dynamic memory</a></li>
+<li><a href="#orgea457a7">2.5. Graphics and text</a></li>
+<li><a href="#orge721086">2.6. Math, memory &amp; stack manipulation</a></li>
+<li><a href="#orgf17027f">2.7. Dynamic &amp; static strings</a></li>
 </ul>
 </li>
 </ul>
 </div>
 </div>
+<ul class="org-ul">
+<li><a href="5TH_ET.txt">Example Fifth source file - text editor</a></li>
+</ul>
 
-
-<div id="outline-container-orgb91833d" class="outline-2">
-<h2 id="orgb91833d"><span class="section-number-2">1.</span> Fifth source format</h2>
+<div id="outline-container-orgfe5302c" class="outline-2">
+<h2 id="orgfe5302c"><span class="section-number-2">1.</span> Fifth source format</h2>
 <div class="outline-text-2" id="text-1">
 <p>
 Fifth uses a different character table and codes than ASCII (still
@@ -256,8 +258,8 @@ numeric values. So typical nemric characters "0123&#x2026;"  is treated
 like ordinary letters.
 </p>
 </div>
-<div id="outline-container-orgceb2541" class="outline-3">
-<h3 id="orgceb2541"><span class="section-number-3">1.1.</span> FSCII</h3>
+<div id="outline-container-orge4e9f7d" class="outline-3">
+<h3 id="orge4e9f7d"><span class="section-number-3">1.1.</span> FSCII</h3>
 <div class="outline-text-3" id="text-1-1">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 
@@ -317,12 +319,12 @@ like ordinary letters.
 </div>
 </div>
 </div>
-<div id="outline-container-org8270664" class="outline-2">
-<h2 id="org8270664"><span class="section-number-2">2.</span> Fifth commands</h2>
+<div id="outline-container-orge63cf49" class="outline-2">
+<h2 id="orge63cf49"><span class="section-number-2">2.</span> Fifth commands</h2>
 <div class="outline-text-2" id="text-2">
 </div>
-<div id="outline-container-org6885ec7" class="outline-3">
-<h3 id="org6885ec7"><span class="section-number-3">2.1.</span> Compilation &amp; miscellaneous</h3>
+<div id="outline-container-org25bc695" class="outline-3">
+<h3 id="org25bc695"><span class="section-number-3">2.1.</span> Compilation &amp; miscellaneous</h3>
 <div class="outline-text-3" id="text-2-1">
 <p class="verse">
 init    module  ( &#x2013; )<br />
@@ -490,8 +492,8 @@ ne              ( entrydata entrytype &#x2013; ) Compile new dictionary entry.<b
 </p>
 </div>
 </div>
-<div id="outline-container-orge400336" class="outline-3">
-<h3 id="orge400336"><span class="section-number-3">2.2.</span> Conditionals &amp; control flow</h3>
+<div id="outline-container-orgc47a7bb" class="outline-3">
+<h3 id="orgc47a7bb"><span class="section-number-3">2.2.</span> Conditionals &amp; control flow</h3>
 <div class="outline-text-3" id="text-2-2">
 <p class="verse">
 if              ( flag &#x2013; )   (immideate)<br />
@@ -533,8 +535,8 @@ done            ( &#x2013; ) exit from "until .. loop"<br />
 </p>
 </div>
 </div>
-<div id="outline-container-org69bc847" class="outline-3">
-<h3 id="org69bc847"><span class="section-number-3">2.3.</span> Disk &amp; file access</h3>
+<div id="outline-container-org572f33f" class="outline-3">
+<h3 id="org572f33f"><span class="section-number-3">2.3.</span> Disk &amp; file access</h3>
 <div class="outline-text-3" id="text-2-3">
 <p class="verse">
 diskload ( FromDisk ToMem amount &#x2013; )<br />
@@ -593,8 +595,8 @@ fsDloadnew ( DynStr&lt;SrcFileName&gt; &#x2013; DynHand&lt;DataDest&gt; )<br />
 </p>
 </div>
 </div>
-<div id="outline-container-orgee300f5" class="outline-3">
-<h3 id="orgee300f5"><span class="section-number-3">2.4.</span> Dynamic memory</h3>
+<div id="outline-container-org89deb72" class="outline-3">
+<h3 id="org89deb72"><span class="section-number-3">2.4.</span> Dynamic memory</h3>
 <div class="outline-text-3" id="text-2-4">
 <p class="verse">
 dynal ( size &#x2013; handle )<br />
@@ -637,8 +639,8 @@ dyn. ( handle &#x2013; )<br />
 </p>
 </div>
 </div>
-<div id="outline-container-org1784744" class="outline-3">
-<h3 id="org1784744"><span class="section-number-3">2.5.</span> Graphics and text</h3>
+<div id="outline-container-orgea457a7" class="outline-3">
+<h3 id="orgea457a7"><span class="section-number-3">2.5.</span> Graphics and text</h3>
 <div class="outline-text-3" id="text-2-5">
 <p class="verse">
 .               ( n &#x2013; ) print number on screen<br />
@@ -709,8 +711,8 @@ copyscreen      ( SrcImgHandle DestImgHandle &#x2013; ) copy contenc of source<b
 </p>
 </div>
 </div>
-<div id="outline-container-org4c1d973" class="outline-3">
-<h3 id="org4c1d973"><span class="section-number-3">2.6.</span> Math, memory &amp; stack manipulation</h3>
+<div id="outline-container-orge721086" class="outline-3">
+<h3 id="orge721086"><span class="section-number-3">2.6.</span> Math, memory &amp; stack manipulation</h3>
 <div class="outline-text-3" id="text-2-6">
 <p class="verse">
 off             ( n &#x2013; ) writes 0 to given address, good for zeroing variable.<br />
@@ -773,8 +775,8 @@ abs             ( n &#x2013; |n| )<br />
 </p>
 </div>
 </div>
-<div id="outline-container-org0c4a738" class="outline-3">
-<h3 id="org0c4a738"><span class="section-number-3">2.7.</span> Dynamic &amp; static strings</h3>
+<div id="outline-container-orgf17027f" class="outline-3">
+<h3 id="orgf17027f"><span class="section-number-3">2.7.</span> Dynamic &amp; static strings</h3>
 <div class="outline-text-3" id="text-2-7">
 <p>
 Fifth supports both static and dynamic strings. Static strings must
@@ -912,7 +914,7 @@ ex:     var mystring1<br />
 </div>
 <div id="postamble" class="status">
 <p class="author">Author: Svjatoslav Agejenko</p>
-<p class="date">Created: 2023-09-18 Mon 01:47</p>
+<p class="date">Created: 2023-09-19 Tue 18:07</p>
 <p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
 </div>
 </body>
index 4d7a07a..d64d0f6 100644 (file)
@@ -6,6 +6,7 @@
 #+AUTHOR: Svjatoslav Agejenko
 #+LANGUAGE: en
 
+- [[file:5TH_ET.txt][Example Fifth source file - text editor]]
 
 * Fifth source format
 Fifth uses a different character table and codes than ASCII (still