"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:21 -->
+<!-- 2025-07-29 ti 17:31 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Fractals</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orgc800e55">1. Fractal circles</a></li>
-<li><a href="#org5d9e884">2. Fractal circles animated</a></li>
-<li><a href="#org4137871">3. Fractal of squares</a></li>
-<li><a href="#org87f621b">4. Fractal of squares animated</a></li>
-<li><a href="#orgea96041">5. Fractal of trees</a></li>
+<li><a href="#org9a22df5">1. Fractal circles</a></li>
+<li><a href="#org5bb3cc4">2. Fractal circles animated</a></li>
+<li><a href="#org9dd12bc">3. Fractal of squares</a></li>
+<li><a href="#org14bf47b">4. Fractal of squares animated</a></li>
+<li><a href="#org1af537c">5. Fractal of trees</a></li>
</ul>
</div>
</div>
</style>
-<div id="outline-container-orgc800e55" class="outline-2">
-<h2 id="orgc800e55"><span class="section-number-2">1.</span> Fractal circles</h2>
+<div id="outline-container-org9a22df5" class="outline-2">
+<h2 id="org9a22df5"><span class="section-number-2">1.</span> Fractal circles</h2>
<div class="outline-text-2" id="text-1">
<p>
This QBasic program generates a visually captivating spiral fractal
</p>
-<div id="org3692708" class="figure">
+<div id="org82a86b5" class="figure">
<p><a href="fractal circles.bas" class="responsive-img"><img src="fractal%20circles.png" alt="fractal%20circles.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org5d9e884" class="outline-2">
-<h2 id="org5d9e884"><span class="section-number-2">2.</span> Fractal circles animated</h2>
+<div id="outline-container-org5bb3cc4" class="outline-2">
+<h2 id="org5bb3cc4"><span class="section-number-2">2.</span> Fractal circles animated</h2>
<div class="outline-text-2" id="text-2">
<p>
This QBasic program creates an animated fractal composed of circles,
</div>
</div>
-<div id="outline-container-org4137871" class="outline-2">
-<h2 id="org4137871"><span class="section-number-2">3.</span> Fractal of squares</h2>
+<div id="outline-container-org9dd12bc" class="outline-2">
+<h2 id="org9dd12bc"><span class="section-number-2">3.</span> Fractal of squares</h2>
<div class="outline-text-2" id="text-3">
<p>
This QBasic program generates and displays a fractal pattern composed of squares.
</p>
-<div id="org857d1ae" class="figure">
+<div id="org937611e" class="figure">
<p><a href="fractal squares.bas" class="responsive-img"><img src="fractal%20squares,%201.png" alt="fractal%20squares,%201.png" class="responsive-img" /></a>
</p>
</div>
-<div id="orgb91428b" class="figure">
+<div id="org81311df" class="figure">
<p><a href="fractal squares.bas" class="responsive-img"><img src="fractal%20squares,%202.png" alt="fractal%20squares,%202.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org87f621b" class="outline-2">
-<h2 id="org87f621b"><span class="section-number-2">4.</span> Fractal of squares animated</h2>
+<div id="outline-container-org14bf47b" class="outline-2">
+<h2 id="org14bf47b"><span class="section-number-2">4.</span> Fractal of squares animated</h2>
<div class="outline-text-2" id="text-4">
<p>
This QBasic program generates an animated fractal pattern composed of
</div>
</div>
-<div id="outline-container-orgea96041" class="outline-2">
-<h2 id="orgea96041"><span class="section-number-2">5.</span> Fractal of trees</h2>
+<div id="outline-container-org1af537c" class="outline-2">
+<h2 id="org1af537c"><span class="section-number-2">5.</span> Fractal of trees</h2>
<div class="outline-text-2" id="text-5">
<p>
QBasic program that generates a visually appealing fractal tree
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:21</p>
+<p class="date">Created: 2025-07-29 ti 17:31</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:21 -->
+<!-- 2025-07-29 ti 17:31 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Spiral series</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org82e321b">1. Spiral with increasing density</a></li>
-<li><a href="#orgb8555e3">2. Spiral with varying height</a></li>
-<li><a href="#orgda12033">3. Shaded spiral</a></li>
-<li><a href="#org0d6a5f7">4. Sphere forming spiral</a></li>
-<li><a href="#org0d8f94b">5. Textured spherical spiral</a></li>
-<li><a href="#org9d789f8">6. Textured and shaded spherical spiral</a></li>
+<li><a href="#orge363268">1. Spiral with increasing density</a></li>
+<li><a href="#org459a79e">2. Spiral with varying height</a></li>
+<li><a href="#orgbf688a5">3. Shaded spiral</a></li>
+<li><a href="#orga385a99">4. Sphere forming spiral</a></li>
+<li><a href="#orgce56a9d">5. Textured spherical spiral</a></li>
+<li><a href="#orgf704e61">6. Textured and shaded spherical spiral</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-org82e321b" class="outline-2">
-<h2 id="org82e321b"><span class="section-number-2">1.</span> Spiral with increasing density</h2>
+<div id="outline-container-orge363268" class="outline-2">
+<h2 id="orge363268"><span class="section-number-2">1.</span> Spiral with increasing density</h2>
<div class="outline-text-2" id="text-1">
-<div id="orgd1cfdf0" class="figure">
+<div id="orgbe97d40" class="figure">
<p><img src="spiral.png" alt="spiral.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-orgb8555e3" class="outline-2">
-<h2 id="orgb8555e3"><span class="section-number-2">2.</span> Spiral with varying height</h2>
+<div id="outline-container-org459a79e" class="outline-2">
+<h2 id="org459a79e"><span class="section-number-2">2.</span> Spiral with varying height</h2>
<div class="outline-text-2" id="text-2">
-<div id="org7517797" class="figure">
+<div id="org4709cc8" class="figure">
<p><img src="spiral, 2.png" alt="spiral, 2.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-orgda12033" class="outline-2">
-<h2 id="orgda12033"><span class="section-number-2">3.</span> Shaded spiral</h2>
+<div id="outline-container-orgbf688a5" class="outline-2">
+<h2 id="orgbf688a5"><span class="section-number-2">3.</span> Shaded spiral</h2>
<div class="outline-text-2" id="text-3">
-<div id="org1af97d6" class="figure">
+<div id="orgb08edde" class="figure">
<p><img src="spiral, 3.png" alt="spiral, 3.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org0d6a5f7" class="outline-2">
-<h2 id="org0d6a5f7"><span class="section-number-2">4.</span> Sphere forming spiral</h2>
+<div id="outline-container-orga385a99" class="outline-2">
+<h2 id="orga385a99"><span class="section-number-2">4.</span> Sphere forming spiral</h2>
<div class="outline-text-2" id="text-4">
<p>
Similar to previous spiral, Line segments are connected between the
</p>
-<div id="org29acd8c" class="figure">
+<div id="orgf5ce006" class="figure">
<p><img src="spiral, 4, 1.png" alt="spiral, 4, 1.png" class="responsive-img" />
</p>
</div>
</p>
-<div id="orgab04825" class="figure">
+<div id="org916d20d" class="figure">
<p><img src="spiral, 4, 2.png" alt="spiral, 4, 2.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org0d8f94b" class="outline-2">
-<h2 id="org0d8f94b"><span class="section-number-2">5.</span> Textured spherical spiral</h2>
+<div id="outline-container-orgce56a9d" class="outline-2">
+<h2 id="orgce56a9d"><span class="section-number-2">5.</span> Textured spherical spiral</h2>
<div class="outline-text-2" id="text-5">
-<div id="org5547450" class="figure">
+<div id="org5f8f0f7" class="figure">
<p><img src="spiral, 5.png" alt="spiral, 5.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org9d789f8" class="outline-2">
-<h2 id="org9d789f8"><span class="section-number-2">6.</span> Textured and shaded spherical spiral</h2>
+<div id="outline-container-orgf704e61" class="outline-2">
+<h2 id="orgf704e61"><span class="section-number-2">6.</span> Textured and shaded spherical spiral</h2>
<div class="outline-text-2" id="text-6">
-<div id="org35c5eb0" class="figure">
+<div id="orga301ca3" class="figure">
<p><img src="spiral, 6.png" alt="spiral, 6.png" class="responsive-img" />
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:21</p>
+<p class="date">Created: 2025-07-29 ti 17:31</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:21 -->
+<!-- 2025-07-29 ti 17:31 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Algorithmic textures</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orgc2c2c24">1. Circular waves</a></li>
-<li><a href="#orgd97ba73">2. Diamond square clouds</a></li>
-<li><a href="#orgc5c08b4">3. Old paper</a></li>
-<li><a href="#orgef8a62d">4. Wood</a></li>
-<li><a href="#org759155e">5. Yellow flame</a></li>
+<li><a href="#org9e917f7">1. Circular waves</a></li>
+<li><a href="#org193d767">2. Diamond square clouds</a></li>
+<li><a href="#org2b12774">3. Old paper</a></li>
+<li><a href="#org9c0e3c1">4. Wood</a></li>
+<li><a href="#orgb66b8b0">5. Yellow flame</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-orgc2c2c24" class="outline-2">
-<h2 id="orgc2c2c24"><span class="section-number-2">1.</span> Circular waves</h2>
+<div id="outline-container-org9e917f7" class="outline-2">
+<h2 id="org9e917f7"><span class="section-number-2">1.</span> Circular waves</h2>
<div class="outline-text-2" id="text-1">
<p>
This QBasic program creates visually captivating circular wave
</div>
</div>
-<div id="outline-container-orgd97ba73" class="outline-2">
-<h2 id="orgd97ba73"><span class="section-number-2">2.</span> Diamond square clouds</h2>
+<div id="outline-container-org193d767" class="outline-2">
+<h2 id="org193d767"><span class="section-number-2">2.</span> Diamond square clouds</h2>
<div class="outline-text-2" id="text-2">
<p>
This QBasic program demonstrates the Diamond-Square algorithm, a
</div>
</div>
-<div id="outline-container-orgc5c08b4" class="outline-2">
-<h2 id="orgc5c08b4"><span class="section-number-2">3.</span> Old paper</h2>
+<div id="outline-container-org2b12774" class="outline-2">
+<h2 id="org2b12774"><span class="section-number-2">3.</span> Old paper</h2>
<div class="outline-text-2" id="text-3">
<p>
This QBasic program generates a procedural texture that simulates the
</div>
</div>
-<div id="outline-container-orgef8a62d" class="outline-2">
-<h2 id="orgef8a62d"><span class="section-number-2">4.</span> Wood</h2>
+<div id="outline-container-org9c0e3c1" class="outline-2">
+<h2 id="org9c0e3c1"><span class="section-number-2">4.</span> Wood</h2>
<div class="outline-text-2" id="text-4">
<p>
This QBasic program creates a visually appealing simulation of a wood
</div>
</div>
-<div id="outline-container-org759155e" class="outline-2">
-<h2 id="org759155e"><span class="section-number-2">5.</span> Yellow flame</h2>
+<div id="outline-container-orgb66b8b0" class="outline-2">
+<h2 id="orgb66b8b0"><span class="section-number-2">5.</span> Yellow flame</h2>
<div class="outline-text-2" id="text-5">
<p>
"Yellow Flame" is a visually captivating program written in QBasic
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:21</p>
+<p class="date">Created: 2025-07-29 ti 17:31</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:23 -->
+<!-- 2025-07-29 ti 17:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>3D Synthezier</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org9b96c40">1. Operating principle</a>
+<li><a href="#orgf1b7289">1. Operating principle</a>
<ul>
-<li><a href="#org1ec11a9">1.1. Rectangular city</a></li>
-<li><a href="#org8d8669b">1.2. Hexagonal city</a></li>
+<li><a href="#org95f664d">1.1. Rectangular city</a></li>
+<li><a href="#orgd49910d">1.2. Hexagonal city</a></li>
</ul>
</li>
-<li><a href="#org10001c3">2. Scene description language</a>
+<li><a href="#org3d452d2">2. Scene description language</a>
<ul>
-<li><a href="#org8d84131">2.1. here</a></li>
-<li><a href="#org7419e67">2.2. p</a></li>
-<li><a href="#orgb69e4b2">2.3. f</a></li>
-<li><a href="#org203da35">2.4. warn</a></li>
-<li><a href="#orgbc87a55">2.5. end</a></li>
-<li><a href="#org7bef1bc">2.6. mtl</a></li>
-<li><a href="#orge2d7101">2.7. mtlrnd</a></li>
-<li><a href="#org8dadb41">2.8. obj</a></li>
-<li><a href="#org94b2fbc">2.9. rnd</a></li>
-<li><a href="#org90d6fb5">2.10. #</a></li>
-<li><a href="#org8044d79">2.11. out</a></li>
-<li><a href="#org2b4a17e">2.12. set</a></li>
-<li><a href="#orgdc849dc">2.13. variables usage</a></li>
-<li><a href="#org9ac5f17">2.14. cmp</a></li>
-<li><a href="#org827caa4">2.15. ?</a></li>
-<li><a href="#org915b0c2">2.16. dum</a></li>
+<li><a href="#org8c35439">2.1. here</a></li>
+<li><a href="#orgd4a951e">2.2. p</a></li>
+<li><a href="#org9ff2be1">2.3. f</a></li>
+<li><a href="#org60a4157">2.4. warn</a></li>
+<li><a href="#org7f6109e">2.5. end</a></li>
+<li><a href="#org715d682">2.6. mtl</a></li>
+<li><a href="#orga7c6609">2.7. mtlrnd</a></li>
+<li><a href="#org790cfca">2.8. obj</a></li>
+<li><a href="#org870a26b">2.9. rnd</a></li>
+<li><a href="#org55b9fbe">2.10. #</a></li>
+<li><a href="#orgead875d">2.11. out</a></li>
+<li><a href="#org9634c81">2.12. set</a></li>
+<li><a href="#orge74d322">2.13. variables usage</a></li>
+<li><a href="#orgba12fc1">2.14. cmp</a></li>
+<li><a href="#org648d4ad">2.15. ?</a></li>
+<li><a href="#orgdcb9efa">2.16. dum</a></li>
</ul>
</li>
-<li><a href="#org63bd64b">3. Installation</a>
+<li><a href="#org85d203b">3. Installation</a>
<ul>
-<li><a href="#org378d4d8">3.1. System requirements</a></li>
-<li><a href="#orgf1639b6">3.2. Directory layout</a></li>
+<li><a href="#org2801213">3.1. System requirements</a></li>
+<li><a href="#org9d2c537">3.2. Directory layout</a></li>
</ul>
</li>
-<li><a href="#org6a7c5f8">4. Usage</a></li>
+<li><a href="#org944e52f">4. Usage</a></li>
</ul>
</div>
</div>
</style>
-<div id="outline-container-org9b96c40" class="outline-2">
-<h2 id="org9b96c40"><span class="section-number-2">1.</span> Operating principle</h2>
+<div id="outline-container-orgf1b7289" class="outline-2">
+<h2 id="orgf1b7289"><span class="section-number-2">1.</span> Operating principle</h2>
<div class="outline-text-2" id="text-1">
<p>
Parses scene definition language and creates 3D world based on
</p>
</div>
-<div id="outline-container-org1ec11a9" class="outline-3">
-<h3 id="org1ec11a9"><span class="section-number-3">1.1.</span> Rectangular city</h3>
+<div id="outline-container-org95f664d" class="outline-3">
+<h3 id="org95f664d"><span class="section-number-3">1.1.</span> Rectangular city</h3>
<div class="outline-text-3" id="text-1-1">
-<div id="org22fa1b0" class="figure">
+<div id="orgc4c8173" class="figure">
<p><img src="rectangular city, 1.jpeg" alt="rectangular city, 1.jpeg" class="responsive-img" />
</p>
</div>
-<div id="org93381fc" class="figure">
+<div id="orgefc3ad3" class="figure">
<p><img src="rectangular city, 2.jpeg" alt="rectangular city, 2.jpeg" class="responsive-img" />
</p>
</div>
-<div id="org55e240e" class="figure">
+<div id="orgadd710d" class="figure">
<p><img src="rectangular city, 3.jpeg" alt="rectangular city, 3.jpeg" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org8d8669b" class="outline-3">
-<h3 id="org8d8669b"><span class="section-number-3">1.2.</span> Hexagonal city</h3>
+<div id="outline-container-orgd49910d" class="outline-3">
+<h3 id="orgd49910d"><span class="section-number-3">1.2.</span> Hexagonal city</h3>
<div class="outline-text-3" id="text-1-2">
-<div id="orge371518" class="figure">
+<div id="orgf0f333c" class="figure">
<p><img src="hexagonal city, 1.jpeg" alt="hexagonal city, 1.jpeg" class="responsive-img" />
</p>
</div>
-<div id="orged38ba4" class="figure">
+<div id="org1247089" class="figure">
<p><img src="hexagonal city, 2.jpeg" alt="hexagonal city, 2.jpeg" class="responsive-img" />
</p>
</div>
-<div id="orgf5ba996" class="figure">
+<div id="orge7092db" class="figure">
<p><img src="hexagonal city, 3.jpeg" alt="hexagonal city, 3.jpeg" class="responsive-img" />
</p>
</div>
</div>
</div>
</div>
-<div id="outline-container-org10001c3" class="outline-2">
-<h2 id="org10001c3"><span class="section-number-2">2.</span> Scene description language</h2>
+<div id="outline-container-org3d452d2" class="outline-2">
+<h2 id="org3d452d2"><span class="section-number-2">2.</span> Scene description language</h2>
<div class="outline-text-2" id="text-2">
<p>
See also examples.
</p>
</div>
-<div id="outline-container-org8d84131" class="outline-3">
-<h3 id="org8d84131"><span class="section-number-3">2.1.</span> here</h3>
+<div id="outline-container-org8c35439" class="outline-3">
+<h3 id="org8c35439"><span class="section-number-3">2.1.</span> here</h3>
<div class="outline-text-3" id="text-2-1">
<pre class="example">
here
</p>
</div>
</div>
-<div id="outline-container-org7419e67" class="outline-3">
-<h3 id="org7419e67"><span class="section-number-3">2.2.</span> p</h3>
+<div id="outline-container-orgd4a951e" class="outline-3">
+<h3 id="orgd4a951e"><span class="section-number-3">2.2.</span> p</h3>
<div class="outline-text-3" id="text-2-2">
<pre class="example">
p x y z
</p>
</div>
</div>
-<div id="outline-container-orgb69e4b2" class="outline-3">
-<h3 id="orgb69e4b2"><span class="section-number-3">2.3.</span> f</h3>
+<div id="outline-container-org9ff2be1" class="outline-3">
+<h3 id="org9ff2be1"><span class="section-number-3">2.3.</span> f</h3>
<div class="outline-text-3" id="text-2-3">
<pre class="example">
f p1 p2 p3 p4
</p>
</div>
</div>
-<div id="outline-container-org203da35" class="outline-3">
-<h3 id="org203da35"><span class="section-number-3">2.4.</span> warn</h3>
+<div id="outline-container-org60a4157" class="outline-3">
+<h3 id="org60a4157"><span class="section-number-3">2.4.</span> warn</h3>
<div class="outline-text-3" id="text-2-4">
<pre class="example">
warn <message>
</p>
</div>
</div>
-<div id="outline-container-orgbc87a55" class="outline-3">
-<h3 id="orgbc87a55"><span class="section-number-3">2.5.</span> end</h3>
+<div id="outline-container-org7f6109e" class="outline-3">
+<h3 id="org7f6109e"><span class="section-number-3">2.5.</span> end</h3>
<div class="outline-text-3" id="text-2-5">
<pre class="example">
end
</p>
</div>
</div>
-<div id="outline-container-org7bef1bc" class="outline-3">
-<h3 id="org7bef1bc"><span class="section-number-3">2.6.</span> mtl</h3>
+<div id="outline-container-org715d682" class="outline-3">
+<h3 id="org715d682"><span class="section-number-3">2.6.</span> mtl</h3>
<div class="outline-text-3" id="text-2-6">
<pre class="example">
mtl material
</p>
</div>
</div>
-<div id="outline-container-orge2d7101" class="outline-3">
-<h3 id="orge2d7101"><span class="section-number-3">2.7.</span> mtlrnd</h3>
+<div id="outline-container-orga7c6609" class="outline-3">
+<h3 id="orga7c6609"><span class="section-number-3">2.7.</span> mtlrnd</h3>
<div class="outline-text-3" id="text-2-7">
<pre class="example">
mtlrnd material ...
</p>
</div>
</div>
-<div id="outline-container-org8dadb41" class="outline-3">
-<h3 id="org8dadb41"><span class="section-number-3">2.8.</span> obj</h3>
+<div id="outline-container-org790cfca" class="outline-3">
+<h3 id="org790cfca"><span class="section-number-3">2.8.</span> obj</h3>
<div class="outline-text-3" id="text-2-8">
<pre class="example">
obj object xz45 xy20 x+3 y*2
</p>
-<div id="org913d2fa" class="figure">
+<div id="org5a9f4f4" class="figure">
<p><img src="rotation.png" alt="rotation.png" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org94b2fbc" class="outline-3">
-<h3 id="org94b2fbc"><span class="section-number-3">2.9.</span> rnd</h3>
+<div id="outline-container-org870a26b" class="outline-3">
+<h3 id="org870a26b"><span class="section-number-3">2.9.</span> rnd</h3>
<div class="outline-text-3" id="text-2-9">
<pre class="example">
rnd p^1^2^3 p^7^2^1
</p>
</div>
</div>
-<div id="outline-container-org90d6fb5" class="outline-3">
-<h3 id="org90d6fb5"><span class="section-number-3">2.10.</span> #</h3>
+<div id="outline-container-org55b9fbe" class="outline-3">
+<h3 id="org55b9fbe"><span class="section-number-3">2.10.</span> #</h3>
<div class="outline-text-3" id="text-2-10">
<pre class="example">
# whatever text
</p>
</div>
</div>
-<div id="outline-container-org8044d79" class="outline-3">
-<h3 id="org8044d79"><span class="section-number-3">2.11.</span> out</h3>
+<div id="outline-container-orgead875d" class="outline-3">
+<h3 id="orgead875d"><span class="section-number-3">2.11.</span> out</h3>
<div class="outline-text-3" id="text-2-11">
<pre class="example">
out file
</p>
</div>
</div>
-<div id="outline-container-org2b4a17e" class="outline-3">
-<h3 id="org2b4a17e"><span class="section-number-3">2.12.</span> set</h3>
+<div id="outline-container-org9634c81" class="outline-3">
+<h3 id="org9634c81"><span class="section-number-3">2.12.</span> set</h3>
<div class="outline-text-3" id="text-2-12">
<pre class="example">
set variable contents
</p>
</div>
</div>
-<div id="outline-container-orgdc849dc" class="outline-3">
-<h3 id="orgdc849dc"><span class="section-number-3">2.13.</span> variables usage</h3>
+<div id="outline-container-orge74d322" class="outline-3">
+<h3 id="orge74d322"><span class="section-number-3">2.13.</span> variables usage</h3>
<div class="outline-text-3" id="text-2-13">
<pre class="example">
anycommand %1 anything
</p>
</div>
</div>
-<div id="outline-container-org9ac5f17" class="outline-3">
-<h3 id="org9ac5f17"><span class="section-number-3">2.14.</span> cmp</h3>
+<div id="outline-container-orgba12fc1" class="outline-3">
+<h3 id="orgba12fc1"><span class="section-number-3">2.14.</span> cmp</h3>
<div class="outline-text-3" id="text-2-14">
<pre class="example">
cmp flag string1 string2
</p>
</div>
</div>
-<div id="outline-container-org827caa4" class="outline-3">
-<h3 id="org827caa4"><span class="section-number-3">2.15.</span> ?</h3>
+<div id="outline-container-org648d4ad" class="outline-3">
+<h3 id="org648d4ad"><span class="section-number-3">2.15.</span> ?</h3>
<div class="outline-text-3" id="text-2-15">
<pre class="example">
?flag anycommand
</p>
</div>
</div>
-<div id="outline-container-org915b0c2" class="outline-3">
-<h3 id="org915b0c2"><span class="section-number-3">2.16.</span> dum</h3>
+<div id="outline-container-orgdcb9efa" class="outline-3">
+<h3 id="orgdcb9efa"><span class="section-number-3">2.16.</span> dum</h3>
<div class="outline-text-3" id="text-2-16">
<pre class="example">
dum
</div>
</div>
-<div id="outline-container-org63bd64b" class="outline-2">
-<h2 id="org63bd64b"><span class="section-number-2">3.</span> Installation</h2>
+<div id="outline-container-org85d203b" class="outline-2">
+<h2 id="org85d203b"><span class="section-number-2">3.</span> Installation</h2>
<div class="outline-text-2" id="text-3">
<p>
Edit <b>bin/3dparse.bas</b> file and update include path in there.
</p>
</div>
-<div id="outline-container-org378d4d8" class="outline-3">
-<h3 id="org378d4d8"><span class="section-number-3">3.1.</span> System requirements</h3>
+<div id="outline-container-org2801213" class="outline-3">
+<h3 id="org2801213"><span class="section-number-3">3.1.</span> System requirements</h3>
<div class="outline-text-3" id="text-3-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
</div>
</div>
-<div id="outline-container-orgf1639b6" class="outline-3">
-<h3 id="orgf1639b6"><span class="section-number-3">3.2.</span> Directory layout</h3>
+<div id="outline-container-org9d2c537" class="outline-3">
+<h3 id="org9d2c537"><span class="section-number-3">3.2.</span> Directory layout</h3>
<div class="outline-text-3" id="text-3-2">
<dl class="org-dl">
<dt>bin</dt><dd><dl class="org-dl">
</div>
</div>
-<div id="outline-container-org6a7c5f8" class="outline-2">
-<h2 id="org6a7c5f8"><span class="section-number-2">4.</span> Usage</h2>
+<div id="outline-container-org944e52f" class="outline-2">
+<h2 id="org944e52f"><span class="section-number-2">4.</span> Usage</h2>
<div class="outline-text-2" id="text-4">
<p>
Make sure you have QB binaries in your PATH. Execute
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:23</p>
+<p class="date">Created: 2025-07-29 ti 17:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
' by Svjatoslav Agejenko.\r
' Email: svjatoslav@svjatoslav.eu\r
' Homepage: http://www.svjatoslav.eu\r
-\r
+'\r
+' Note: This program requires special Terminate and Stay Resident (TSR) mouse driver\r
+' to be loaded *before* starting the current QBasic program itself.\r
+' Here you can read about TSR mouse driver and download needed qbext.com binary:\r
+' https://www3.svjatoslav.eu/projects/qbasicapps/Miscellaneous/Mouse%20driver/index.html\r
+'\r
+'\r
' Changelog:\r
' 2003.12, Initial version\r
' 2024 - 2025, Improved program readability\r
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:23 -->
+<!-- 2025-07-29 ti 17:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Miscellaneous 3D graphics demos</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orge5bb87a">1. Rotating exclamation mark</a></li>
-<li><a href="#orgfd0b515">2. 3D bouncing ball</a></li>
-<li><a href="#orgdc50e14">3. 3D text in a room</a></li>
-<li><a href="#org8304227">4. 3D bouncing cubes on grid floor</a></li>
-<li><a href="#org706df6c">5. Matrix math for rotation in 3D space</a></li>
-<li><a href="#org5746e13">6. Maze explorer</a></li>
-<li><a href="#orgc537390">7. Tank animation</a></li>
-<li><a href="#org57754a8">8. Tiled room</a></li>
+<li><a href="#orgaae5eaa">1. Rotating exclamation mark</a></li>
+<li><a href="#org7d41cb1">2. 3D bouncing ball</a></li>
+<li><a href="#orgad832ff">3. 3D text in a room</a></li>
+<li><a href="#orgf426f46">4. 3D bouncing cubes on grid floor</a></li>
+<li><a href="#org6ad1548">5. Matrix math for rotation in 3D space</a></li>
+<li><a href="#org5023bdf">6. Maze explorer</a></li>
+<li><a href="#org36e3fff">7. Tank animation</a></li>
+<li><a href="#orgd392132">8. Tiled room</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-orge5bb87a" class="outline-2">
-<h2 id="orge5bb87a"><span class="section-number-2">1.</span> Rotating exclamation mark</h2>
+<div id="outline-container-orgaae5eaa" class="outline-2">
+<h2 id="orgaae5eaa"><span class="section-number-2">1.</span> Rotating exclamation mark</h2>
<div class="outline-text-2" id="text-1">
<p>
Wireframe 3D model of a rotating exclamation mark.
</div>
</div>
-<div id="outline-container-orgfd0b515" class="outline-2">
-<h2 id="orgfd0b515"><span class="section-number-2">2.</span> 3D bouncing ball</h2>
+<div id="outline-container-org7d41cb1" class="outline-2">
+<h2 id="org7d41cb1"><span class="section-number-2">2.</span> 3D bouncing ball</h2>
<div class="outline-text-2" id="text-2">
<p>
This QBasic program creates a visually engaging 3D animation of a
</div>
</div>
-<div id="outline-container-orgdc50e14" class="outline-2">
-<h2 id="orgdc50e14"><span class="section-number-2">3.</span> 3D text in a room</h2>
+<div id="outline-container-orgad832ff" class="outline-2">
+<h2 id="orgad832ff"><span class="section-number-2">3.</span> 3D text in a room</h2>
<div class="outline-text-2" id="text-3">
<p>
Wireframe 3D text hanging in a wireframe 3D room. User can look and
</div>
</div>
-<div id="outline-container-org8304227" class="outline-2">
-<h2 id="org8304227"><span class="section-number-2">4.</span> 3D bouncing cubes on grid floor</h2>
+<div id="outline-container-orgf426f46" class="outline-2">
+<h2 id="orgf426f46"><span class="section-number-2">4.</span> 3D bouncing cubes on grid floor</h2>
<div class="outline-text-2" id="text-4">
<p>
3D wireframe cubes bouncing on a grid floor, creating an immersive and
</div>
</div>
-<div id="outline-container-org706df6c" class="outline-2">
-<h2 id="org706df6c"><span class="section-number-2">5.</span> Matrix math for rotation in 3D space</h2>
+<div id="outline-container-org6ad1548" class="outline-2">
+<h2 id="org6ad1548"><span class="section-number-2">5.</span> Matrix math for rotation in 3D space</h2>
<div class="outline-text-2" id="text-5">
<p>
Instead of combining simple 2D rotors, pixels in this 3D space are
</div>
</div>
-<div id="outline-container-org5746e13" class="outline-2">
-<h2 id="org5746e13"><span class="section-number-2">6.</span> Maze explorer</h2>
+<div id="outline-container-org5023bdf" class="outline-2">
+<h2 id="org5023bdf"><span class="section-number-2">6.</span> Maze explorer</h2>
<div class="outline-text-2" id="text-6">
<p>
The Evolving 3D Maze Explorer is a QBasic program that generates and
</p>
-<div id="org32f82c8" class="figure">
+<div id="org5f19c62" class="figure">
<p><a href="Maze%20explorer.bas" class="responsive-img"><img src="Maze%20explorer.png" alt="Maze%20explorer.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orgc537390" class="outline-2">
-<h2 id="orgc537390"><span class="section-number-2">7.</span> Tank animation</h2>
+<div id="outline-container-org36e3fff" class="outline-2">
+<h2 id="org36e3fff"><span class="section-number-2">7.</span> Tank animation</h2>
<div class="outline-text-2" id="text-7">
<p>
Animated tank driving through the bridge back and forward. User can
</div>
</div>
-<div id="outline-container-org57754a8" class="outline-2">
-<h2 id="org57754a8"><span class="section-number-2">8.</span> Tiled room</h2>
+<div id="outline-container-orgd392132" class="outline-2">
+<h2 id="orgd392132"><span class="section-number-2">8.</span> Tiled room</h2>
<div class="outline-text-2" id="text-8">
<p>
Room with some tiles on the wall and on the floor. User can freely fly
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:23</p>
+<p class="date">Created: 2025-07-29 ti 17:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
' Changelog:
' 2003, Initial version.
' 2024, Improved program readability.
-
+'
' User can navigate through the galaxy using mouse or keyboard controls.
-' To use mouse controls, program requires a special TSR (terminate and stay resident)
-' program to be loaded. The TSR makes mouse input available to the QBasic program.
-
+'
+' Note: This program requires special Terminate and Stay Resident (TSR) mouse driver
+' to be loaded *before* starting the current QBasic program itself.
+' Here you can read about TSR mouse driver and download needed qbext.com binary:
+' https://www3.svjatoslav.eu/projects/qbasicapps/Miscellaneous/Mouse%20driver/index.html
+'
' Navigation controls:
' - Press left and right mouse buttons simultaneously to move in X and Z axis.
' - Press right mouse button to move in Y axis.
' and decrease level of detail of the universe regions depending\r
' on where user is in the universe and maintaining reasonable\r
' quantity of stars to render at any given time.\r
-\r
+'\r
+' Note: This program requires special Terminate and Stay Resident (TSR) mouse driver\r
+' to be loaded *before* starting the current QBasic program itself.\r
+' Here you can read about TSR mouse driver and download needed qbext.com binary:\r
+' https://www3.svjatoslav.eu/projects/qbasicapps/Miscellaneous/Mouse%20driver/index.html\r
+'\r
' This program is free software: released under Creative Commons Zero (CC0) license\r
' by Svjatoslav Agejenko.\r
' Email: svjatoslav@svjatoslav.eu\r
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:23 -->
+<!-- 2025-07-29 ti 17:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Space themed 3D graphics</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org4a09785">1. Galaxy explorer</a></li>
-<li><a href="#orga571239">2. Rocket simulator</a></li>
-<li><a href="#org2e0f8b1">3. Stars</a></li>
-<li><a href="#org700d9c6">4. Universe explorer</a></li>
+<li><a href="#org579e8fc">1. Galaxy explorer</a></li>
+<li><a href="#orgaa94078">2. Rocket simulator</a></li>
+<li><a href="#orgba65f6b">3. Stars</a></li>
+<li><a href="#org406c8b3">4. Universe explorer</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-org4a09785" class="outline-2">
-<h2 id="org4a09785"><span class="section-number-2">1.</span> Galaxy explorer</h2>
+<div id="outline-container-org579e8fc" class="outline-2">
+<h2 id="org579e8fc"><span class="section-number-2">1.</span> Galaxy explorer</h2>
<div class="outline-text-2" id="text-1">
<p>
This QBasic program renders a navigable 3D point cloud galaxy,
</p>
-<div id="org2f818b1" class="figure">
+<div id="org63f0352" class="figure">
<p><a href="Galaxy%20explorer.bas" class="responsive-img"><img src="Galaxy%20explorer.png" alt="Galaxy%20explorer.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orga571239" class="outline-2">
-<h2 id="orga571239"><span class="section-number-2">2.</span> Rocket simulator</h2>
+<div id="outline-container-orgaa94078" class="outline-2">
+<h2 id="orgaa94078"><span class="section-number-2">2.</span> Rocket simulator</h2>
<div class="outline-text-2" id="text-2">
<p>
QBasic program that simulates the takeoff and flight of a rocket from
</div>
</div>
-<div id="outline-container-org2e0f8b1" class="outline-2">
-<h2 id="org2e0f8b1"><span class="section-number-2">3.</span> Stars</h2>
+<div id="outline-container-orgba65f6b" class="outline-2">
+<h2 id="orgba65f6b"><span class="section-number-2">3.</span> Stars</h2>
<div class="outline-text-2" id="text-3">
<p>
The 3D Starfield Simulation is a QBasic program that creates a
</div>
</div>
-<div id="outline-container-org700d9c6" class="outline-2">
-<h2 id="org700d9c6"><span class="section-number-2">4.</span> Universe explorer</h2>
+<div id="outline-container-org406c8b3" class="outline-2">
+<h2 id="org406c8b3"><span class="section-number-2">4.</span> Universe explorer</h2>
<div class="outline-text-2" id="text-4">
<p>
This QBasic program that simulates a navigable 3D universe. Users can
</dl>
-<div id="org0167a78" class="figure">
+<div id="org4d67ee0" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/1.png" alt="1.png" class="responsive-img" /></a>
</p>
</div>
-<div id="org602d0e3" class="figure">
+<div id="org5ca4cf4" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/2.png" alt="2.png" class="responsive-img" /></a>
</p>
</div>
-<div id="org1dad823" class="figure">
+<div id="orga48a349" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/3.png" alt="3.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:23</p>
+<p class="date">Created: 2025-07-29 ti 17:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
' Email: svjatoslav@svjatoslav.eu\r
' Homepage: http://www.svjatoslav.eu\r
'\r
+' Note: This program requires special Terminate and Stay Resident (TSR) mouse driver\r
+' to be loaded *before* starting the current QBasic program itself.\r
+' Here you can read about TSR mouse driver and download needed qbext.com binary:\r
+' https://www3.svjatoslav.eu/projects/qbasicapps/Miscellaneous/Mouse%20driver/index.html\r
+'\r
' Changelog:\r
' 2004.1 - Initial version\r
-'\r
+' 2025 - Improved program readability\r
\r
DECLARE SUB fill3 ()\r
DECLARE SUB fill1 ()\r
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:23 -->
+<!-- 2025-07-29 ti 17:33 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Plotting</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orge0e4649">1. 2D graph</a></li>
-<li><a href="#org34f8a15">2. 3D graph</a></li>
-<li><a href="#org3d15e8c">3. Deriviative calculator</a></li>
-<li><a href="#orgb4ad73f">4. Sine and cosine table</a></li>
+<li><a href="#org2502cf9">1. 2D graph</a></li>
+<li><a href="#org6a05e6a">2. 3D graph</a></li>
+<li><a href="#org1c92b68">3. Deriviative calculator</a></li>
+<li><a href="#orgdfab383">4. Sine and cosine table</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-orge0e4649" class="outline-2">
-<h2 id="orge0e4649"><span class="section-number-2">1.</span> 2D graph</h2>
+<div id="outline-container-org2502cf9" class="outline-2">
+<h2 id="org2502cf9"><span class="section-number-2">1.</span> 2D graph</h2>
<div class="outline-text-2" id="text-1">
<p>
The 2D Graph Plotter is a simple yet effective program written in
</p>
-<div id="org06acf88" class="figure">
+<div id="org176949c" class="figure">
<p><a href="2D%20graph%20plot.bas" class="responsive-img"><img src="2D%20graph%20plot.png" alt="2D%20graph%20plot.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org34f8a15" class="outline-2">
-<h2 id="org34f8a15"><span class="section-number-2">2.</span> 3D graph</h2>
+<div id="outline-container-org6a05e6a" class="outline-2">
+<h2 id="org6a05e6a"><span class="section-number-2">2.</span> 3D graph</h2>
<div class="outline-text-2" id="text-2">
<p>
The 3D Heightmap Explorer is a QBasic program designed to visualize
</p>
-<div id="orgc06af10" class="figure">
+<div id="org02ba301" class="figure">
<p><a href="3D%20graph.bas" class="responsive-img"><img src="3D%20graph.png" alt="3D%20graph.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org3d15e8c" class="outline-2">
-<h2 id="org3d15e8c"><span class="section-number-2">3.</span> Deriviative calculator</h2>
+<div id="outline-container-org1c92b68" class="outline-2">
+<h2 id="org1c92b68"><span class="section-number-2">3.</span> Deriviative calculator</h2>
<div class="outline-text-2" id="text-3">
<p>
This QBasic program is designed to compute and plot an arbitrary
</p>
-<div id="orgfa93f7c" class="figure">
+<div id="org306f9da" class="figure">
<p><a href="Deriviative%20calculator.bas" class="responsive-img"><img src="Deriviative%20calculator.png" alt="Deriviative%20calculator.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orgb4ad73f" class="outline-2">
-<h2 id="orgb4ad73f"><span class="section-number-2">4.</span> Sine and cosine table</h2>
+<div id="outline-container-orgdfab383" class="outline-2">
+<h2 id="orgdfab383"><span class="section-number-2">4.</span> Sine and cosine table</h2>
<div class="outline-text-2" id="text-4">
<p>
The SIN & COS Table Generator is a QBasic program designed to visually
</p>
-<div id="org50cbfdd" class="figure">
+<div id="orgbd22404" class="figure">
<p><a href="Sine%20and%20cosine%20table.bas" class="responsive-img"><img src="Sine%20and%20cosine%20table.png" alt="Sine%20and%20cosine%20table.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:23</p>
+<p class="date">Created: 2025-07-29 ti 17:33</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:23 -->
+<!-- 2025-07-29 ti 17:33 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Simulation</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org404746f">1. Explosion simulator</a></li>
-<li><a href="#org03af3fa">2. Gravity in 2D</a></li>
-<li><a href="#orgc0162bf">3. Gravity in 3D</a></li>
-<li><a href="#org509432f">4. Interference</a></li>
-<li><a href="#orgd5fb0bf">5. Interferogram</a></li>
-<li><a href="#org89ce187">6. Surface tension</a></li>
-<li><a href="#org984994e">7. Wave 1</a></li>
-<li><a href="#org991d287">8. Wave 2</a></li>
+<li><a href="#org9670ce6">1. Explosion simulator</a></li>
+<li><a href="#orgf0fb10c">2. Gravity in 2D</a></li>
+<li><a href="#org5e4286b">3. Gravity in 3D</a></li>
+<li><a href="#org6c79c4d">4. Interference</a></li>
+<li><a href="#org1eb260d">5. Interferogram</a></li>
+<li><a href="#org4f22fbb">6. Surface tension</a></li>
+<li><a href="#orgce7433b">7. Wave 1</a></li>
+<li><a href="#org31a7a22">8. Wave 2</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-org404746f" class="outline-2">
-<h2 id="org404746f"><span class="section-number-2">1.</span> Explosion simulator</h2>
+<div id="outline-container-org9670ce6" class="outline-2">
+<h2 id="org9670ce6"><span class="section-number-2">1.</span> Explosion simulator</h2>
<div class="outline-text-2" id="text-1">
<p>
This QBasic program simulates the propagation of shock waves in a gas
</p>
-<div id="org0f1ed22" class="figure">
+<div id="orgef649ac" class="figure">
<p><a href="Explosion%20simulator.bas" class="responsive-img"><img src="Explosion%20simulator.png" alt="Explosion%20simulator.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org03af3fa" class="outline-2">
-<h2 id="org03af3fa"><span class="section-number-2">2.</span> Gravity in 2D</h2>
+<div id="outline-container-orgf0fb10c" class="outline-2">
+<h2 id="orgf0fb10c"><span class="section-number-2">2.</span> Gravity in 2D</h2>
<div class="outline-text-2" id="text-2">
<p>
The Gravitation Simulation program is a simple yet insightful QBasic
</p>
-<div id="org76706d3" class="figure">
+<div id="org5cadf6d" class="figure">
<p><a href="Gravity%20in%202D.bas" class="responsive-img"><img src="Gravity%20in%202D.png" alt="Gravity%20in%202D.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orgc0162bf" class="outline-2">
-<h2 id="orgc0162bf"><span class="section-number-2">3.</span> Gravity in 3D</h2>
+<div id="outline-container-org5e4286b" class="outline-2">
+<h2 id="org5e4286b"><span class="section-number-2">3.</span> Gravity in 3D</h2>
<div class="outline-text-2" id="text-3">
<p>
This QBasic program simulates the gravitational interactions between
</div>
</div>
-<div id="outline-container-org509432f" class="outline-2">
-<h2 id="org509432f"><span class="section-number-2">4.</span> Interference</h2>
+<div id="outline-container-org6c79c4d" class="outline-2">
+<h2 id="org6c79c4d"><span class="section-number-2">4.</span> Interference</h2>
<div class="outline-text-2" id="text-4">
<p>
This QBasic program simulates the interference pattern created by two
</div>
</div>
-<div id="outline-container-orgd5fb0bf" class="outline-2">
-<h2 id="orgd5fb0bf"><span class="section-number-2">5.</span> Interferogram</h2>
+<div id="outline-container-org1eb260d" class="outline-2">
+<h2 id="org1eb260d"><span class="section-number-2">5.</span> Interferogram</h2>
<div class="outline-text-2" id="text-5">
<p>
This QBasic program simulates the interference pattern created by
</p>
-<div id="org62898d1" class="figure">
+<div id="org0536985" class="figure">
<p><a href="Interferogram.bas" class="responsive-img"><img src="Interferogram.png" alt="Interferogram.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org89ce187" class="outline-2">
-<h2 id="org89ce187"><span class="section-number-2">6.</span> Surface tension</h2>
+<div id="outline-container-org4f22fbb" class="outline-2">
+<h2 id="org4f22fbb"><span class="section-number-2">6.</span> Surface tension</h2>
<div class="outline-text-2" id="text-6">
<p>
This QBasic program simulates the behavior of water spills and the
</p>
-<div id="org822b85e" class="figure">
+<div id="org5ac0a7f" class="figure">
<p><a href="Surface%20tension.bas" class="responsive-img"><img src="Surface%20tension.png" alt="Surface%20tension.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org984994e" class="outline-2">
-<h2 id="org984994e"><span class="section-number-2">7.</span> Wave 1</h2>
+<div id="outline-container-orgce7433b" class="outline-2">
+<h2 id="orgce7433b"><span class="section-number-2">7.</span> Wave 1</h2>
<div class="outline-text-2" id="text-7">
<p>
This QBasic program simulates the propagation of waves across a
</p>
-<div id="org5271736" class="figure">
+<div id="orgd4f19c2" class="figure">
<p><a href="Wave%201.bas" class="responsive-img"><img src="Wave%201.png" alt="Wave%201.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org991d287" class="outline-2">
-<h2 id="org991d287"><span class="section-number-2">8.</span> Wave 2</h2>
+<div id="outline-container-org31a7a22" class="outline-2">
+<h2 id="org31a7a22"><span class="section-number-2">8.</span> Wave 2</h2>
<div class="outline-text-2" id="text-8">
<p>
This QBasic program simulates and visualizes the behavior of water
</p>
-<div id="orgbecde86" class="figure">
+<div id="org9545585" class="figure">
<p><a href="Wave%202.bas" class="responsive-img"><img src="Wave%202.png" alt="Wave%202.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:23</p>
+<p class="date">Created: 2025-07-29 ti 17:33</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:25 -->
+<!-- 2025-07-29 ti 17:34 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Truth table calculator</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org3c5e114">1. Implemented logical operations</a>
+<li><a href="#org105c311">1. Implemented logical operations</a>
<ul>
-<li><a href="#orgcfb677a">1.1. Equivalent ( ⇔ , 1 )</a></li>
-<li><a href="#org0b6ccd8">1.2. Implies ( ⇒ , 2 )</a></li>
-<li><a href="#org3d3a134">1.3. OR ( ∨ , 3 )</a></li>
-<li><a href="#orgcd492e3">1.4. AND ( ∧ , 4 )</a></li>
-<li><a href="#org0cfe447">1.5. NOT ( ¬ , 5 )</a></li>
+<li><a href="#org8aab038">1.1. Equivalent ( ⇔ , 1 )</a></li>
+<li><a href="#orgcb7a1e2">1.2. Implies ( ⇒ , 2 )</a></li>
+<li><a href="#org8b3b1fd">1.3. OR ( ∨ , 3 )</a></li>
+<li><a href="#org7b058a1">1.4. AND ( ∧ , 4 )</a></li>
+<li><a href="#orgf76a804">1.5. NOT ( ¬ , 5 )</a></li>
</ul>
</li>
-<li><a href="#orgddfdd35">2. Examples</a>
+<li><a href="#org8345257">2. Examples</a>
<ul>
-<li><a href="#org7fb6f28">2.1. Example: (A ∧ B) ∨ ¬C</a></li>
-<li><a href="#org39103a4">2.2. Example: A ⇒ (B ∨ ¬C)</a></li>
-<li><a href="#orge4ebdc0">2.3. Example: (A ⇔ B) ∧ C</a></li>
+<li><a href="#orgb303480">2.1. Example: (A ∧ B) ∨ ¬C</a></li>
+<li><a href="#orgeb7b5e6">2.2. Example: A ⇒ (B ∨ ¬C)</a></li>
+<li><a href="#org1506d34">2.3. Example: (A ⇔ B) ∧ C</a></li>
</ul>
</li>
</ul>
designing and understanding digital circuits, Boolean algebra, and logical expressions.
</p>
-<div id="outline-container-org3c5e114" class="outline-2">
-<h2 id="org3c5e114"><span class="section-number-2">1.</span> Implemented logical operations</h2>
+<div id="outline-container-org105c311" class="outline-2">
+<h2 id="org105c311"><span class="section-number-2">1.</span> Implemented logical operations</h2>
<div class="outline-text-2" id="text-1">
</div>
-<div id="outline-container-orgcfb677a" class="outline-3">
-<h3 id="orgcfb677a"><span class="section-number-3">1.1.</span> Equivalent ( ⇔ , 1 )</h3>
+<div id="outline-container-org8aab038" class="outline-3">
+<h3 id="org8aab038"><span class="section-number-3">1.1.</span> Equivalent ( ⇔ , 1 )</h3>
<div class="outline-text-3" id="text-1-1">
<p>
The equivalent operation, also known as logical biconditional, is true if and only if
</div>
</div>
-<div id="outline-container-org0b6ccd8" class="outline-3">
-<h3 id="org0b6ccd8"><span class="section-number-3">1.2.</span> Implies ( ⇒ , 2 )</h3>
+<div id="outline-container-orgcb7a1e2" class="outline-3">
+<h3 id="orgcb7a1e2"><span class="section-number-3">1.2.</span> Implies ( ⇒ , 2 )</h3>
<div class="outline-text-3" id="text-1-2">
<p>
An implication asserts that if the first proposition is true, the
</div>
</div>
-<div id="outline-container-org3d3a134" class="outline-3">
-<h3 id="org3d3a134"><span class="section-number-3">1.3.</span> OR ( ∨ , 3 )</h3>
+<div id="outline-container-org8b3b1fd" class="outline-3">
+<h3 id="org8b3b1fd"><span class="section-number-3">1.3.</span> OR ( ∨ , 3 )</h3>
<div class="outline-text-3" id="text-1-3">
<p>
The OR operation, also known as logical disjunction, is true if at
</div>
</div>
-<div id="outline-container-orgcd492e3" class="outline-3">
-<h3 id="orgcd492e3"><span class="section-number-3">1.4.</span> AND ( ∧ , 4 )</h3>
+<div id="outline-container-org7b058a1" class="outline-3">
+<h3 id="org7b058a1"><span class="section-number-3">1.4.</span> AND ( ∧ , 4 )</h3>
<div class="outline-text-3" id="text-1-4">
<p>
The AND operation, also known as logical conjunction, is true if and
</div>
</div>
-<div id="outline-container-org0cfe447" class="outline-3">
-<h3 id="org0cfe447"><span class="section-number-3">1.5.</span> NOT ( ¬ , 5 )</h3>
+<div id="outline-container-orgf76a804" class="outline-3">
+<h3 id="orgf76a804"><span class="section-number-3">1.5.</span> NOT ( ¬ , 5 )</h3>
<div class="outline-text-3" id="text-1-5">
<p>
The NOT operation, also known as logical negation, inverts the value
</div>
</div>
</div>
-<div id="outline-container-orgddfdd35" class="outline-2">
-<h2 id="orgddfdd35"><span class="section-number-2">2.</span> Examples</h2>
+<div id="outline-container-org8345257" class="outline-2">
+<h2 id="org8345257"><span class="section-number-2">2.</span> Examples</h2>
<div class="outline-text-2" id="text-2">
</div>
-<div id="outline-container-org7fb6f28" class="outline-3">
-<h3 id="org7fb6f28"><span class="section-number-3">2.1.</span> Example: (A ∧ B) ∨ ¬C</h3>
+<div id="outline-container-orgb303480" class="outline-3">
+<h3 id="orgb303480"><span class="section-number-3">2.1.</span> Example: (A ∧ B) ∨ ¬C</h3>
<div class="outline-text-3" id="text-2-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
</div>
</div>
-<div id="outline-container-org39103a4" class="outline-3">
-<h3 id="org39103a4"><span class="section-number-3">2.2.</span> Example: A ⇒ (B ∨ ¬C)</h3>
+<div id="outline-container-orgeb7b5e6" class="outline-3">
+<h3 id="orgeb7b5e6"><span class="section-number-3">2.2.</span> Example: A ⇒ (B ∨ ¬C)</h3>
<div class="outline-text-3" id="text-2-2">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
</div>
</div>
-<div id="outline-container-orge4ebdc0" class="outline-3">
-<h3 id="orge4ebdc0"><span class="section-number-3">2.3.</span> Example: (A ⇔ B) ∧ C</h3>
+<div id="outline-container-org1506d34" class="outline-3">
+<h3 id="org1506d34"><span class="section-number-3">2.3.</span> Example: (A ⇔ B) ∧ C</h3>
<div class="outline-text-3" id="text-2-3">
<p>
Truth Table:
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:25</p>
+<p class="date">Created: 2025-07-29 ti 17:34</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 17:25 -->
+<!-- 2025-07-29 ti 17:34 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Mouse driver for QBasic programs</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org588c2a7">1. Overview</a>
+<li><a href="#org8632d57">1. Overview</a>
<ul>
-<li><a href="#org7871304">1.1. Terminate and Stay Resident module</a></li>
-<li><a href="#org1e940fb">1.2. QBasic demonstration program</a></li>
+<li><a href="#org5459e43">1.1. Terminate and Stay Resident module</a></li>
+<li><a href="#org3af7c6b">1.2. QBasic demonstration program</a></li>
</ul>
</li>
</ul>
</div>
</div>
-<div id="outline-container-org588c2a7" class="outline-2">
-<h2 id="org588c2a7"><span class="section-number-2">1.</span> Overview</h2>
+<div id="outline-container-org8632d57" class="outline-2">
+<h2 id="org8632d57"><span class="section-number-2">1.</span> Overview</h2>
<div class="outline-text-2" id="text-1">
<p>
QBasic, a popular programming language in the DOS era, lacks native
</div>
-<div id="outline-container-org7871304" class="outline-3">
-<h3 id="org7871304"><span class="section-number-3">1.1.</span> Terminate and Stay Resident module</h3>
+<div id="outline-container-org5459e43" class="outline-3">
+<h3 id="org5459e43"><span class="section-number-3">1.1.</span> Terminate and Stay Resident module</h3>
<div class="outline-text-3" id="text-1-1">
<p>
A DOS TSR program that hooks into the system's interrupt mechanism to
</div>
-<div id="outline-container-org1e940fb" class="outline-3">
-<h3 id="org1e940fb"><span class="section-number-3">1.2.</span> QBasic demonstration program</h3>
+<div id="outline-container-org3af7c6b" class="outline-3">
+<h3 id="org3af7c6b"><span class="section-number-3">1.2.</span> QBasic demonstration program</h3>
<div class="outline-text-3" id="text-1-2">
<p>
A QBasic program that reads mouse data from the memory location
-<div id="orgf4786b0" class="figure">
+<div id="org01b4c43" class="figure">
<p><a href="mousedrv.bas" class="responsive-img"><img src="screenshot.png" alt="screenshot.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 17:25</p>
+<p class="date">Created: 2025-07-29 ti 17:34</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
QBasic, a popular programming language in the DOS era, lacks native\r
mouse support. This limitation can be a hurdle for developers looking\r
to create interactive applications. To bridge this gap, I developed a\r
-solution that involves a Terminate and Stay Resident (TSR) program\r
-written in x86 assembly and a QBasic demonstration program.\r
+workaround that allows QBasic to use mouse input.\r
\r
+* High-level idea\r
\r
-The solution comprises two main components:\r
+Workaround to access mouse involves a Terminate and Stay Resident\r
+(TSR) program written in x86 assembly. This TSR program must be\r
+started before running QBasic program that depends on mouse. This TSR\r
+program hooks into the system's interrupt mechanism, specifically the\r
+timer interrupt (IRQ 0), allowing it to regularly check for mouse\r
+activity several times per second.\r
\r
+When this timer interrupt triggers, the TSR reads the latest mouse's\r
+horizontal and vertical movements and button states using mouse\r
+interrupts. This data is then stored in a dedicated memory location —\r
+a data table within the TSR's memory space. The TSR uses interrupt 79h\r
+as a pointer to this data table, making it accessible to other\r
+programs, including the QBasic application.\r
\r
-** Terminate and Stay Resident module\r
+While QBasic originally is not able to read mouse, it is able to read\r
+(and write) arbitrary location in system RAM. The QBasic demonstration\r
+program begins by retrieving the address of the TSR mouse data table\r
+from the interrupt vector table using interrupt 79h. By checking a\r
+predefined magic number (1983) in the data table, the program confirms\r
+that the mouse driver is loaded. Once verified, the QBasic program\r
+continuously reads mouse data from this shared memory location, while\r
+TSR keeps updating it with latest mouse state simultaneously.\r
+\r
+* Terminate and Stay Resident module\r
\r
A DOS TSR program that hooks into the system's interrupt mechanism to\r
regularly read mouse input and store it in a dedicated memory\r
- [[file:qbext.com][qbext.com - binary COM executable for DOS]]\r
\r
\r
-** QBasic demonstration program\r
+* QBasic demonstration program\r
\r
A QBasic program that reads mouse data from the memory location\r
populated by the TSR and demonstrates mouse movement and button\r