docs: recapture gallery media and sync all index pages
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sat, 22 Aug 2026 15:28:51 +0000 (18:28 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sat, 22 Aug 2026 15:28:51 +0000 (18:28 +0300)
- Replace legacy .webm/.png captures with '<name> - Screencast N.mp4'
  and '<name> - Screenshot N.png' files across 2D GFX, 3D GFX, Games,
  Math, Miscellaneous, Networking and Tutorial
- Point every index.org video/image reference at the new captures;
  sections whose screenshots were recaptured as screencasts now embed
  video blocks
- Fix broken source links: Bouncing cubes wrong directory prefix,
  copy-pasted '!.bas' links in Galaxy/Universe explorer, Alarm comma
  filenames, Pomppu Paavo moved into its own subdirectory
- Add 'Back to BASIC applications collection' parent link to all 13
  topic pages
- worm.bas: guard tail/head ring-buffer pointers against out-of-range
  access for dead or overgrown worms
- Stars.bas: drop spurious totalStars increment in galaxy creation
- Anaglyph.bas, Tiled room.bas: emit SOUND 0, .5 at main loop start

101 files changed:
2D GFX/Animations/index.org
2D GFX/Fractals/index.org
2D GFX/Hello friend - Screenshot 0.png [new file with mode: 0644]
2D GFX/Hello friend.png [deleted file]
2D GFX/People - Screencast 0.mp4 [new file with mode: 0644]
2D GFX/People.webm [deleted file]
2D GFX/Spirals/index.org
2D GFX/Stroboscope - Screenshot 0.png [new file with mode: 0644]
2D GFX/Stroboscope - Screenshot 1.png [new file with mode: 0644]
2D GFX/Stroboscope.png [deleted file]
2D GFX/Textures/index.org
2D GFX/Textures/logo.png [new file with mode: 0644]
2D GFX/Truncated cone - Screenshot 0.png [new file with mode: 0644]
2D GFX/Truncated cone.png [deleted file]
3D GFX/3D Synthezier/doc/index.org
3D GFX/3D land - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/3D land.webm [deleted file]
3D GFX/Anaglyph - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Anaglyph.bas
3D GFX/Anaglyph.png [deleted file]
3D GFX/Helicopter/Helicopter - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Helicopter/screenshot, 1.png [deleted file]
3D GFX/Helicopter/screenshot, 2.png [deleted file]
3D GFX/Miscellaneous/! - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Miscellaneous/!.webm [deleted file]
3D GFX/Miscellaneous/3D ball - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Miscellaneous/3D ball.webm [deleted file]
3D GFX/Miscellaneous/3D text - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Miscellaneous/Bouncing cubes - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Miscellaneous/Bouncing cubes.webm [deleted file]
3D GFX/Miscellaneous/Tank - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Miscellaneous/Tank.webm [deleted file]
3D GFX/Miscellaneous/Tiled room - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Miscellaneous/Tiled room.bas
3D GFX/Miscellaneous/Tiled room.webm [deleted file]
3D GFX/Miscellaneous/index.org
3D GFX/Ray casting engine - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Ray casting engine - Screenshot 0.png [new file with mode: 0644]
3D GFX/Ray casting engine.png [deleted file]
3D GFX/Space/Rocket simulator - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Space/Rocket simulator.webm [deleted file]
3D GFX/Space/Stars - Screencast 0.mp4 [new file with mode: 0644]
3D GFX/Space/Stars.bas
3D GFX/Space/Stars.webm [deleted file]
3D GFX/Space/index.org
Games/Pomppu Paavo 2/Pomppu Paavo - Screencast 0.mp4 [new file with mode: 0644]
Games/Pomppu Paavo 2/Pomppu Paavo - Screenshot 0.png [new file with mode: 0644]
Games/Pomppu Paavo 2/screenshot.png [deleted file]
Games/Pomppu Paavo/Pomppu Paavo - Screencast 0.mp4 [new file with mode: 0644]
Games/Pomppu Paavo/Pomppu Paavo.png [deleted file]
Games/Worm/screencast.webm [deleted file]
Games/Worm/worm - Screencast 0.mp4 [new file with mode: 0644]
Games/Worm/worm.bas
Games/checkers - Screenshot 0.png [new file with mode: 0644]
Games/checkers.png [deleted file]
Games/checkers2 - Screenshot 0.png [new file with mode: 0644]
Games/checkers2.png [deleted file]
Math/Plotting/2D graph plot - Screenshot 0.png [new file with mode: 0644]
Math/Plotting/2D graph plot.png [deleted file]
Math/Plotting/Deriviative calculator - Screenshot 0.png [new file with mode: 0644]
Math/Plotting/Deriviative calculator.png [deleted file]
Math/Plotting/Sine and cosine table - Screenshot 0.png [new file with mode: 0644]
Math/Plotting/Sine and cosine table.png [deleted file]
Math/Plotting/index.org
Math/Simulation/Explosion simulator - Screencast 0.mp4 [new file with mode: 0644]
Math/Simulation/Explosion simulator.png [deleted file]
Math/Simulation/Gravity in 2D - Screencast 0.mp4 [new file with mode: 0644]
Math/Simulation/Gravity in 2D.png [deleted file]
Math/Simulation/Gravity in 3D - Screencast 0.mp4 [new file with mode: 0644]
Math/Simulation/Gravity in 3D.webm [deleted file]
Math/Simulation/Interference - Screencast 0.mp4 [new file with mode: 0644]
Math/Simulation/Interference.webm [deleted file]
Math/Simulation/Surface tension - Screencast 0.mp4 [new file with mode: 0644]
Math/Simulation/Surface tension.png [deleted file]
Math/Simulation/Wave 1 - Screencast 0.mp4 [new file with mode: 0644]
Math/Simulation/Wave 1.png [deleted file]
Math/Simulation/Wave 2 - Screencast 0.mp4 [new file with mode: 0644]
Math/Simulation/Wave 2.png [deleted file]
Math/Simulation/index.org
Math/Truth table/index.org
Miscellaneous/4D engine - Screenshot 0.png [new file with mode: 0644]
Miscellaneous/4D engine - Screenshot 1.png [new file with mode: 0644]
Miscellaneous/4D engine.png [deleted file]
Miscellaneous/Alien font - Screenshot 0.png [new file with mode: 0644]
Miscellaneous/Alien font.png [deleted file]
Miscellaneous/Custom palette - Screenshot 0.png [new file with mode: 0644]
Miscellaneous/Custom palette - Screenshot 1.png [new file with mode: 0644]
Miscellaneous/Custom palette - Screenshot 2.png [new file with mode: 0644]
Miscellaneous/Custom palette, 2.png [deleted file]
Miscellaneous/Custom palette, 3.png [deleted file]
Miscellaneous/Custom palette.png [deleted file]
Miscellaneous/Mouse driver/index.org
Miscellaneous/Password lock/passw - Screencast 0.mp4 [new file with mode: 0644]
Miscellaneous/Password lock/screenshot, 1.png [deleted file]
Miscellaneous/Pressed key test - Screenshot 0.png [new file with mode: 0644]
Networking/Digital data over analog audio/index.org
Networking/LPT communication driver/index.org
Networking/Morse - Screenshot 0.png [new file with mode: 0644]
Networking/Morse.png [deleted file]
Tutorial/qsort3 - Screencast 0.mp4 [new file with mode: 0644]
index.org

index 0abf179..3daaac8 100644 (file)
@@ -26,6 +26,7 @@
 </style>
 #+end_export
 
+[[file:../index.org][Back to BASIC applications collection]]
 
 * Bump mapping
 
index 81f770f..0569bd8 100644 (file)
@@ -26,6 +26,7 @@
 </style>
 #+end_export
 
+[[file:../index.org][Back to BASIC applications collection]]
 
 * Fractal circles
 
diff --git a/2D GFX/Hello friend - Screenshot 0.png b/2D GFX/Hello friend - Screenshot 0.png
new file mode 100644 (file)
index 0000000..7ffa0b8
Binary files /dev/null and b/2D GFX/Hello friend - Screenshot 0.png differ
diff --git a/2D GFX/Hello friend.png b/2D GFX/Hello friend.png
deleted file mode 100644 (file)
index c75768f..0000000
Binary files a/2D GFX/Hello friend.png and /dev/null differ
diff --git a/2D GFX/People - Screencast 0.mp4 b/2D GFX/People - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..fa07360
Binary files /dev/null and b/2D GFX/People - Screencast 0.mp4 differ
diff --git a/2D GFX/People.webm b/2D GFX/People.webm
deleted file mode 100644 (file)
index a86b52f..0000000
Binary files a/2D GFX/People.webm and /dev/null differ
index 2d68e65..ae0ab3d 100644 (file)
@@ -26,6 +26,8 @@
 </style>
 #+end_export
 
+[[file:../index.org][Back to BASIC applications collection]]
+
 * Spiral with increasing density
 
 #+attr_html: :class responsive-img
diff --git a/2D GFX/Stroboscope - Screenshot 0.png b/2D GFX/Stroboscope - Screenshot 0.png
new file mode 100644 (file)
index 0000000..32fe2c7
Binary files /dev/null and b/2D GFX/Stroboscope - Screenshot 0.png differ
diff --git a/2D GFX/Stroboscope - Screenshot 1.png b/2D GFX/Stroboscope - Screenshot 1.png
new file mode 100644 (file)
index 0000000..d2c431b
Binary files /dev/null and b/2D GFX/Stroboscope - Screenshot 1.png differ
diff --git a/2D GFX/Stroboscope.png b/2D GFX/Stroboscope.png
deleted file mode 100644 (file)
index 0baee1c..0000000
Binary files a/2D GFX/Stroboscope.png and /dev/null differ
index b21031e..745d9a9 100644 (file)
@@ -23,6 +23,8 @@
 </style>
 #+end_export
 
+[[file:../index.org][Back to BASIC applications collection]]
+
 * Circular waves
 
 This QBasic program creates visually captivating circular wave
diff --git a/2D GFX/Textures/logo.png b/2D GFX/Textures/logo.png
new file mode 100644 (file)
index 0000000..0d41afb
Binary files /dev/null and b/2D GFX/Textures/logo.png differ
diff --git a/2D GFX/Truncated cone - Screenshot 0.png b/2D GFX/Truncated cone - Screenshot 0.png
new file mode 100644 (file)
index 0000000..dd21d27
Binary files /dev/null and b/2D GFX/Truncated cone - Screenshot 0.png differ
diff --git a/2D GFX/Truncated cone.png b/2D GFX/Truncated cone.png
deleted file mode 100644 (file)
index d2df067..0000000
Binary files a/2D GFX/Truncated cone.png and /dev/null differ
index 1ecf34f..5872d07 100644 (file)
@@ -27,6 +27,7 @@
 </style>
 #+end_export
 
+[[file:../../index.org][Back to BASIC applications collection]]
 
 * Operating principle
 
diff --git a/3D GFX/3D land - Screencast 0.mp4 b/3D GFX/3D land - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..1e1f697
Binary files /dev/null and b/3D GFX/3D land - Screencast 0.mp4 differ
diff --git a/3D GFX/3D land.webm b/3D GFX/3D land.webm
deleted file mode 100644 (file)
index 1e60d2d..0000000
Binary files a/3D GFX/3D land.webm and /dev/null differ
diff --git a/3D GFX/Anaglyph - Screencast 0.mp4 b/3D GFX/Anaglyph - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..7f459b9
Binary files /dev/null and b/3D GFX/Anaglyph - Screencast 0.mp4 differ
index 10d6a4b..2bd2df5 100755 (executable)
@@ -66,6 +66,8 @@ InitializeEnvironment
 PlaceCubes\r
 horizontalViewDistance = -.1\r
 1\r
+SOUND 0, .5\r
+\r
 PCOPY 0, 1\r
 CLS\r
 \r
diff --git a/3D GFX/Anaglyph.png b/3D GFX/Anaglyph.png
deleted file mode 100644 (file)
index 8f81825..0000000
Binary files a/3D GFX/Anaglyph.png and /dev/null differ
diff --git a/3D GFX/Helicopter/Helicopter - Screencast 0.mp4 b/3D GFX/Helicopter/Helicopter - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..705a74c
Binary files /dev/null and b/3D GFX/Helicopter/Helicopter - Screencast 0.mp4 differ
diff --git a/3D GFX/Helicopter/screenshot, 1.png b/3D GFX/Helicopter/screenshot, 1.png
deleted file mode 100644 (file)
index f6989bc..0000000
Binary files a/3D GFX/Helicopter/screenshot, 1.png and /dev/null differ
diff --git a/3D GFX/Helicopter/screenshot, 2.png b/3D GFX/Helicopter/screenshot, 2.png
deleted file mode 100644 (file)
index 2aa35b3..0000000
Binary files a/3D GFX/Helicopter/screenshot, 2.png and /dev/null differ
diff --git a/3D GFX/Miscellaneous/! - Screencast 0.mp4 b/3D GFX/Miscellaneous/! - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..0f9a3df
Binary files /dev/null and b/3D GFX/Miscellaneous/! - Screencast 0.mp4 differ
diff --git a/3D GFX/Miscellaneous/!.webm b/3D GFX/Miscellaneous/!.webm
deleted file mode 100644 (file)
index 1786991..0000000
Binary files a/3D GFX/Miscellaneous/!.webm and /dev/null differ
diff --git a/3D GFX/Miscellaneous/3D ball - Screencast 0.mp4 b/3D GFX/Miscellaneous/3D ball - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..1364ba1
Binary files /dev/null and b/3D GFX/Miscellaneous/3D ball - Screencast 0.mp4 differ
diff --git a/3D GFX/Miscellaneous/3D ball.webm b/3D GFX/Miscellaneous/3D ball.webm
deleted file mode 100644 (file)
index cd04bfc..0000000
Binary files a/3D GFX/Miscellaneous/3D ball.webm and /dev/null differ
diff --git a/3D GFX/Miscellaneous/3D text - Screencast 0.mp4 b/3D GFX/Miscellaneous/3D text - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..3b6c42b
Binary files /dev/null and b/3D GFX/Miscellaneous/3D text - Screencast 0.mp4 differ
diff --git a/3D GFX/Miscellaneous/Bouncing cubes - Screencast 0.mp4 b/3D GFX/Miscellaneous/Bouncing cubes - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..ee1901f
Binary files /dev/null and b/3D GFX/Miscellaneous/Bouncing cubes - Screencast 0.mp4 differ
diff --git a/3D GFX/Miscellaneous/Bouncing cubes.webm b/3D GFX/Miscellaneous/Bouncing cubes.webm
deleted file mode 100644 (file)
index 2328295..0000000
Binary files a/3D GFX/Miscellaneous/Bouncing cubes.webm and /dev/null differ
diff --git a/3D GFX/Miscellaneous/Tank - Screencast 0.mp4 b/3D GFX/Miscellaneous/Tank - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..7d2cd25
Binary files /dev/null and b/3D GFX/Miscellaneous/Tank - Screencast 0.mp4 differ
diff --git a/3D GFX/Miscellaneous/Tank.webm b/3D GFX/Miscellaneous/Tank.webm
deleted file mode 100644 (file)
index 4d5e603..0000000
Binary files a/3D GFX/Miscellaneous/Tank.webm and /dev/null differ
diff --git a/3D GFX/Miscellaneous/Tiled room - Screencast 0.mp4 b/3D GFX/Miscellaneous/Tiled room - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..fe77cbe
Binary files /dev/null and b/3D GFX/Miscellaneous/Tiled room - Screencast 0.mp4 differ
index 24e3224..09864c4 100755 (executable)
@@ -265,6 +265,7 @@ SUB nait3d
 \r
     ' Main loop to render the 3D scene\r
 1\r
+    SOUND 0, .5\r
 \r
     ' Update the position based on rotation\r
     myx = myx + SIN(deg1) * mye\r
diff --git a/3D GFX/Miscellaneous/Tiled room.webm b/3D GFX/Miscellaneous/Tiled room.webm
deleted file mode 100644 (file)
index 0c4263a..0000000
Binary files a/3D GFX/Miscellaneous/Tiled room.webm and /dev/null differ
index f8d5367..e313e37 100644 (file)
@@ -26,6 +26,8 @@
 </style>
 #+end_export
 
+[[file:../index.org][Back to BASIC applications collection]]
+
 * Rotating exclamation mark
 
 Wireframe 3D model of a rotating exclamation mark.
@@ -33,7 +35,7 @@ Wireframe 3D model of a rotating exclamation mark.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="!.webm" type="video/webm">
+    <source src="! - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -50,7 +52,7 @@ of early computer graphics techniques.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="3D%20ball.webm" type="video/webm">
+    <source src="3D ball - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -66,7 +68,7 @@ fly around in all directions.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="3D text.webm" type="video/webm">
+    <source src="3D text - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -82,13 +84,13 @@ dynamic visual effect.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="Bouncing cubes.webm" type="video/webm">
+    <source src="Bouncing cubes - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
 #+end_export
 
-[[file:3D%20GFX/Bouncing%20cubes.bas][Source code]]
+[[file:Bouncing%20cubes.bas][Source code]]
 
 * Matrix math for rotation in 3D space
 
@@ -128,7 +130,7 @@ look and fly around in all directions.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="Tank.webm" type="video/webm">
+    <source src="Tank - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -144,7 +146,7 @@ around.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="Tiled room.webm" type="video/webm">
+    <source src="Tiled room - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
diff --git a/3D GFX/Ray casting engine - Screencast 0.mp4 b/3D GFX/Ray casting engine - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..cb4c344
Binary files /dev/null and b/3D GFX/Ray casting engine - Screencast 0.mp4 differ
diff --git a/3D GFX/Ray casting engine - Screenshot 0.png b/3D GFX/Ray casting engine - Screenshot 0.png
new file mode 100644 (file)
index 0000000..ea7c6c6
Binary files /dev/null and b/3D GFX/Ray casting engine - Screenshot 0.png differ
diff --git a/3D GFX/Ray casting engine.png b/3D GFX/Ray casting engine.png
deleted file mode 100644 (file)
index bc1851d..0000000
Binary files a/3D GFX/Ray casting engine.png and /dev/null differ
diff --git a/3D GFX/Space/Rocket simulator - Screencast 0.mp4 b/3D GFX/Space/Rocket simulator - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..6303264
Binary files /dev/null and b/3D GFX/Space/Rocket simulator - Screencast 0.mp4 differ
diff --git a/3D GFX/Space/Rocket simulator.webm b/3D GFX/Space/Rocket simulator.webm
deleted file mode 100644 (file)
index 7e10602..0000000
Binary files a/3D GFX/Space/Rocket simulator.webm and /dev/null differ
diff --git a/3D GFX/Space/Stars - Screencast 0.mp4 b/3D GFX/Space/Stars - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..7a8eb1f
Binary files /dev/null and b/3D GFX/Space/Stars - Screencast 0.mp4 differ
index b9f9bf1..423f386 100755 (executable)
@@ -84,7 +84,7 @@ Do
     Next starIndex\r
 \r
     ' Add new stars to the galaxy if needed\r
-    If maxStars - totalStars > Rnd * 800 + 100 Then CreateGalaxy: totalStars = totalStars + 1\r
+    If maxStars - totalStars > Rnd * 800 + 100 Then CreateGalaxy\r
 \r
     ' Remove the two farthest stars and replace them with new ones\r
     For a = 1 To 2\r
diff --git a/3D GFX/Space/Stars.webm b/3D GFX/Space/Stars.webm
deleted file mode 100644 (file)
index 39cd97e..0000000
Binary files a/3D GFX/Space/Stars.webm and /dev/null differ
index 722a55d..b6c9d5a 100644 (file)
@@ -26,6 +26,8 @@
 </style>
 #+end_export
 
+[[file:../index.org][Back to BASIC applications collection]]
+
 * Galaxy explorer
 
 This QBasic program renders a navigable 3D point cloud galaxy,
@@ -37,7 +39,7 @@ galaxy with stars distributed in a spiral pattern.
 #+attr_latex: :width 1000px
 [[file:Galaxy%20explorer.bas][file:Galaxy%20explorer.png]]
 
-[[file:!.bas][Source code]]
+[[file:Galaxy%20explorer.bas][Source code]]
 
 * Rocket simulator
 
@@ -49,7 +51,7 @@ observe the rocket's trajectory from various angles.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="Rocket simulator.webm" type="video/webm">
+    <source src="Rocket simulator - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -81,7 +83,7 @@ How the Program Works:
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="Stars.webm" type="video/webm">
+    <source src="Stars - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -131,4 +133,4 @@ What's in it for the Reader?
 #+attr_latex: :width 1000px
 [[file:Universe%20explorer/Universe%20explorer.bas][file:Universe%20explorer/3.png]]
 
-[[file:!.bas][Source code]]
+[[file:Universe%20explorer/Universe%20explorer.bas][Source code]]
diff --git a/Games/Pomppu Paavo 2/Pomppu Paavo - Screencast 0.mp4 b/Games/Pomppu Paavo 2/Pomppu Paavo - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..29a4758
Binary files /dev/null and b/Games/Pomppu Paavo 2/Pomppu Paavo - Screencast 0.mp4 differ
diff --git a/Games/Pomppu Paavo 2/Pomppu Paavo - Screenshot 0.png b/Games/Pomppu Paavo 2/Pomppu Paavo - Screenshot 0.png
new file mode 100644 (file)
index 0000000..8fdcd56
Binary files /dev/null and b/Games/Pomppu Paavo 2/Pomppu Paavo - Screenshot 0.png differ
diff --git a/Games/Pomppu Paavo 2/screenshot.png b/Games/Pomppu Paavo 2/screenshot.png
deleted file mode 100644 (file)
index d069abb..0000000
Binary files a/Games/Pomppu Paavo 2/screenshot.png and /dev/null differ
diff --git a/Games/Pomppu Paavo/Pomppu Paavo - Screencast 0.mp4 b/Games/Pomppu Paavo/Pomppu Paavo - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..c521bf9
Binary files /dev/null and b/Games/Pomppu Paavo/Pomppu Paavo - Screencast 0.mp4 differ
diff --git a/Games/Pomppu Paavo/Pomppu Paavo.png b/Games/Pomppu Paavo/Pomppu Paavo.png
deleted file mode 100644 (file)
index a37d478..0000000
Binary files a/Games/Pomppu Paavo/Pomppu Paavo.png and /dev/null differ
diff --git a/Games/Worm/screencast.webm b/Games/Worm/screencast.webm
deleted file mode 100644 (file)
index 9fa029c..0000000
Binary files a/Games/Worm/screencast.webm and /dev/null differ
diff --git a/Games/Worm/worm - Screencast 0.mp4 b/Games/Worm/worm - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..26f5e1a
Binary files /dev/null and b/Games/Worm/worm - Screencast 0.mp4 differ
index b040633..83a56cc 100755 (executable)
@@ -302,6 +302,14 @@ SUB clearTail (playerNumber)
         a = a + 2000\r
     END IF\r
 \r
+    ' The tail position can fall outside the ring buffer: below 1 when\r
+    ' the worm has grown longer than the buffer capacity, above 2000\r
+    ' when a dead worm's head pointer keeps advancing without wrapping.\r
+    ' Nothing to erase in those cases.\r
+    IF a < 1 OR a > 2000 THEN\r
+        GOTO 13\r
+    END IF\r
+\r
     IF ussx(a, playerNumber) > 0 THEN\r
         buf(ussx(a, playerNumber), ussy(a, playerNumber)) = 0\r
 \r
@@ -309,6 +317,7 @@ SUB clearTail (playerNumber)
 \r
         ussx(a, playerNumber) = 0\r
     END IF\r
+13\r
 END SUB\r
 \r
 FUNCTION cnum$ (a%)\r
@@ -527,6 +536,13 @@ SUB prc (playerNumber)
 \r
     ussp(playerNumber) = ussp(playerNumber) + 1\r
 \r
+    ' Wrap the head pointer unconditionally: dead worms skip the rest of\r
+    ' this procedure, so without wrapping here their pointer would grow\r
+    ' past the ring buffer (and eventually overflow the integer).\r
+    IF ussp(playerNumber) > 2000 THEN\r
+        ussp(playerNumber) = ussp(playerNumber) - 2000\r
+    END IF\r
+\r
     ' If the current player has no lives left, no further processing is needed\r
     IF lives(playerNumber) = 0 THEN\r
         GOTO 4\r
diff --git a/Games/checkers - Screenshot 0.png b/Games/checkers - Screenshot 0.png
new file mode 100644 (file)
index 0000000..ba9da63
Binary files /dev/null and b/Games/checkers - Screenshot 0.png differ
diff --git a/Games/checkers.png b/Games/checkers.png
deleted file mode 100644 (file)
index 2933880..0000000
Binary files a/Games/checkers.png and /dev/null differ
diff --git a/Games/checkers2 - Screenshot 0.png b/Games/checkers2 - Screenshot 0.png
new file mode 100644 (file)
index 0000000..70d22a2
Binary files /dev/null and b/Games/checkers2 - Screenshot 0.png differ
diff --git a/Games/checkers2.png b/Games/checkers2.png
deleted file mode 100644 (file)
index 9b4dbf4..0000000
Binary files a/Games/checkers2.png and /dev/null differ
diff --git a/Math/Plotting/2D graph plot - Screenshot 0.png b/Math/Plotting/2D graph plot - Screenshot 0.png
new file mode 100644 (file)
index 0000000..21a4d71
Binary files /dev/null and b/Math/Plotting/2D graph plot - Screenshot 0.png differ
diff --git a/Math/Plotting/2D graph plot.png b/Math/Plotting/2D graph plot.png
deleted file mode 100644 (file)
index ad022d9..0000000
Binary files a/Math/Plotting/2D graph plot.png and /dev/null differ
diff --git a/Math/Plotting/Deriviative calculator - Screenshot 0.png b/Math/Plotting/Deriviative calculator - Screenshot 0.png
new file mode 100644 (file)
index 0000000..befcb23
Binary files /dev/null and b/Math/Plotting/Deriviative calculator - Screenshot 0.png differ
diff --git a/Math/Plotting/Deriviative calculator.png b/Math/Plotting/Deriviative calculator.png
deleted file mode 100644 (file)
index 5c49948..0000000
Binary files a/Math/Plotting/Deriviative calculator.png and /dev/null differ
diff --git a/Math/Plotting/Sine and cosine table - Screenshot 0.png b/Math/Plotting/Sine and cosine table - Screenshot 0.png
new file mode 100644 (file)
index 0000000..d29621b
Binary files /dev/null and b/Math/Plotting/Sine and cosine table - Screenshot 0.png differ
diff --git a/Math/Plotting/Sine and cosine table.png b/Math/Plotting/Sine and cosine table.png
deleted file mode 100644 (file)
index e717cfa..0000000
Binary files a/Math/Plotting/Sine and cosine table.png and /dev/null differ
index 4607c8b..ab87dc5 100644 (file)
@@ -26,6 +26,8 @@
 </style>
 #+end_export
 
+[[file:../index.org][Back to BASIC applications collection]]
+
 * 2D graph
 
 The 2D Graph Plotter is a simple yet effective program written in
diff --git a/Math/Simulation/Explosion simulator - Screencast 0.mp4 b/Math/Simulation/Explosion simulator - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..bdb2053
Binary files /dev/null and b/Math/Simulation/Explosion simulator - Screencast 0.mp4 differ
diff --git a/Math/Simulation/Explosion simulator.png b/Math/Simulation/Explosion simulator.png
deleted file mode 100644 (file)
index 80089b6..0000000
Binary files a/Math/Simulation/Explosion simulator.png and /dev/null differ
diff --git a/Math/Simulation/Gravity in 2D - Screencast 0.mp4 b/Math/Simulation/Gravity in 2D - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..5f1ee51
Binary files /dev/null and b/Math/Simulation/Gravity in 2D - Screencast 0.mp4 differ
diff --git a/Math/Simulation/Gravity in 2D.png b/Math/Simulation/Gravity in 2D.png
deleted file mode 100644 (file)
index 51de6bf..0000000
Binary files a/Math/Simulation/Gravity in 2D.png and /dev/null differ
diff --git a/Math/Simulation/Gravity in 3D - Screencast 0.mp4 b/Math/Simulation/Gravity in 3D - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..fe8d234
Binary files /dev/null and b/Math/Simulation/Gravity in 3D - Screencast 0.mp4 differ
diff --git a/Math/Simulation/Gravity in 3D.webm b/Math/Simulation/Gravity in 3D.webm
deleted file mode 100644 (file)
index c941ab8..0000000
Binary files a/Math/Simulation/Gravity in 3D.webm and /dev/null differ
diff --git a/Math/Simulation/Interference - Screencast 0.mp4 b/Math/Simulation/Interference - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..4afcb4e
Binary files /dev/null and b/Math/Simulation/Interference - Screencast 0.mp4 differ
diff --git a/Math/Simulation/Interference.webm b/Math/Simulation/Interference.webm
deleted file mode 100644 (file)
index 2b2b15d..0000000
Binary files a/Math/Simulation/Interference.webm and /dev/null differ
diff --git a/Math/Simulation/Surface tension - Screencast 0.mp4 b/Math/Simulation/Surface tension - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..4d601e8
Binary files /dev/null and b/Math/Simulation/Surface tension - Screencast 0.mp4 differ
diff --git a/Math/Simulation/Surface tension.png b/Math/Simulation/Surface tension.png
deleted file mode 100644 (file)
index 181c764..0000000
Binary files a/Math/Simulation/Surface tension.png and /dev/null differ
diff --git a/Math/Simulation/Wave 1 - Screencast 0.mp4 b/Math/Simulation/Wave 1 - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..0f323d9
Binary files /dev/null and b/Math/Simulation/Wave 1 - Screencast 0.mp4 differ
diff --git a/Math/Simulation/Wave 1.png b/Math/Simulation/Wave 1.png
deleted file mode 100644 (file)
index 44294d2..0000000
Binary files a/Math/Simulation/Wave 1.png and /dev/null differ
diff --git a/Math/Simulation/Wave 2 - Screencast 0.mp4 b/Math/Simulation/Wave 2 - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..7799efe
Binary files /dev/null and b/Math/Simulation/Wave 2 - Screencast 0.mp4 differ
diff --git a/Math/Simulation/Wave 2.png b/Math/Simulation/Wave 2.png
deleted file mode 100644 (file)
index abd173f..0000000
Binary files a/Math/Simulation/Wave 2.png and /dev/null differ
index 49824b6..bfff35d 100644 (file)
@@ -26,6 +26,8 @@
 </style>
 #+end_export
 
+[[file:../index.org][Back to BASIC applications collection]]
+
 * Explosion simulator
 
 This QBasic program simulates the propagation of shock waves in a gas
index cd58c50..be3b9c4 100644 (file)
@@ -8,6 +8,8 @@
 #+OPTIONS: H:20 num:20
 #+OPTIONS: author:nil
 
+[[file:../index.org][Back to BASIC applications collection]]
+
 - See also: https://en.wikipedia.org/wiki/Truth_table
 
 A truth table is a mathematical table used to determine the output of a logic function
diff --git a/Miscellaneous/4D engine - Screenshot 0.png b/Miscellaneous/4D engine - Screenshot 0.png
new file mode 100644 (file)
index 0000000..9dd2e7b
Binary files /dev/null and b/Miscellaneous/4D engine - Screenshot 0.png differ
diff --git a/Miscellaneous/4D engine - Screenshot 1.png b/Miscellaneous/4D engine - Screenshot 1.png
new file mode 100644 (file)
index 0000000..52ec54d
Binary files /dev/null and b/Miscellaneous/4D engine - Screenshot 1.png differ
diff --git a/Miscellaneous/4D engine.png b/Miscellaneous/4D engine.png
deleted file mode 100644 (file)
index 03e6e3e..0000000
Binary files a/Miscellaneous/4D engine.png and /dev/null differ
diff --git a/Miscellaneous/Alien font - Screenshot 0.png b/Miscellaneous/Alien font - Screenshot 0.png
new file mode 100644 (file)
index 0000000..ac2c236
Binary files /dev/null and b/Miscellaneous/Alien font - Screenshot 0.png differ
diff --git a/Miscellaneous/Alien font.png b/Miscellaneous/Alien font.png
deleted file mode 100644 (file)
index ec7e817..0000000
Binary files a/Miscellaneous/Alien font.png and /dev/null differ
diff --git a/Miscellaneous/Custom palette - Screenshot 0.png b/Miscellaneous/Custom palette - Screenshot 0.png
new file mode 100644 (file)
index 0000000..32fd0fd
Binary files /dev/null and b/Miscellaneous/Custom palette - Screenshot 0.png differ
diff --git a/Miscellaneous/Custom palette - Screenshot 1.png b/Miscellaneous/Custom palette - Screenshot 1.png
new file mode 100644 (file)
index 0000000..36461f9
Binary files /dev/null and b/Miscellaneous/Custom palette - Screenshot 1.png differ
diff --git a/Miscellaneous/Custom palette - Screenshot 2.png b/Miscellaneous/Custom palette - Screenshot 2.png
new file mode 100644 (file)
index 0000000..5573c10
Binary files /dev/null and b/Miscellaneous/Custom palette - Screenshot 2.png differ
diff --git a/Miscellaneous/Custom palette, 2.png b/Miscellaneous/Custom palette, 2.png
deleted file mode 100644 (file)
index 9fe22b5..0000000
Binary files a/Miscellaneous/Custom palette, 2.png and /dev/null differ
diff --git a/Miscellaneous/Custom palette, 3.png b/Miscellaneous/Custom palette, 3.png
deleted file mode 100644 (file)
index 83065f1..0000000
Binary files a/Miscellaneous/Custom palette, 3.png and /dev/null differ
diff --git a/Miscellaneous/Custom palette.png b/Miscellaneous/Custom palette.png
deleted file mode 100644 (file)
index 8b62b42..0000000
Binary files a/Miscellaneous/Custom palette.png and /dev/null differ
index e87e35a..27a3288 100644 (file)
@@ -7,6 +7,8 @@
 #+OPTIONS: H:20 num:20\r
 #+OPTIONS: author:nil\r
 \r
+[[file:../index.org][Back to BASIC applications collection]]\r
+\r
 * Overview\r
 \r
 QBasic, a popular programming language in the DOS era, lacks native\r
diff --git a/Miscellaneous/Password lock/passw - Screencast 0.mp4 b/Miscellaneous/Password lock/passw - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..ee86cf5
Binary files /dev/null and b/Miscellaneous/Password lock/passw - Screencast 0.mp4 differ
diff --git a/Miscellaneous/Password lock/screenshot, 1.png b/Miscellaneous/Password lock/screenshot, 1.png
deleted file mode 100644 (file)
index bada664..0000000
Binary files a/Miscellaneous/Password lock/screenshot, 1.png and /dev/null differ
diff --git a/Miscellaneous/Pressed key test - Screenshot 0.png b/Miscellaneous/Pressed key test - Screenshot 0.png
new file mode 100644 (file)
index 0000000..4b8955d
Binary files /dev/null and b/Miscellaneous/Pressed key test - Screenshot 0.png differ
index 17d1b39..664f2c2 100755 (executable)
@@ -7,6 +7,8 @@
 #+OPTIONS: H:20 num:20\r
 #+OPTIONS: author:nil\r
 \r
+[[file:../index.org][Back to BASIC applications collection]]\r
+\r
 * msg2xi: Text to Sound Encoder\r
 \r
 *msg2xi* is a utility designed to encode arbitrary text messages into an\r
index cb82b14..e5cb843 100755 (executable)
@@ -7,6 +7,8 @@
 #+OPTIONS: H:20 num:20\r
 #+OPTIONS: author:nil\r
 \r
+[[file:../index.org][Back to BASIC applications collection]]\r
+\r
 * Overview\r
 \r
 This is weird networking solution. It allows to send data using\r
diff --git a/Networking/Morse - Screenshot 0.png b/Networking/Morse - Screenshot 0.png
new file mode 100644 (file)
index 0000000..b76eead
Binary files /dev/null and b/Networking/Morse - Screenshot 0.png differ
diff --git a/Networking/Morse.png b/Networking/Morse.png
deleted file mode 100644 (file)
index ce2b441..0000000
Binary files a/Networking/Morse.png and /dev/null differ
diff --git a/Tutorial/qsort3 - Screencast 0.mp4 b/Tutorial/qsort3 - Screencast 0.mp4
new file mode 100644 (file)
index 0000000..fa67beb
Binary files /dev/null and b/Tutorial/qsort3 - Screencast 0.mp4 differ
index 5dacf52..8cd9cdb 100644 (file)
--- a/index.org
+++ b/index.org
@@ -76,7 +76,7 @@ algorithms and getting fun looking results quite easily.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:2D%20GFX/Fractals/index.html][file:2D%20GFX/Fractals/fractal%20squares,%202.png]]
+[[file:2D%20GFX/Fractals/index.html][file:2D%20GFX/Fractals/fractal%20squares%20-%20Screenshot%200.png]]
 
 [[file:2D GFX/Fractals/index.html][See entire fractals collection]]
 
@@ -115,7 +115,7 @@ as pixel manipulation, geometric shapes, and simple animations.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:2D%20GFX/Hello%20friend.bas][file:2D%20GFX/Hello%20friend.png]]
+[[file:2D%20GFX/Hello%20friend.bas][file:2D%20GFX/Hello%20friend%20-%20Screenshot%200.png]]
 
 Download source code: [[file:2D%20GFX/Hello%20friend.bas][Hello friend.bas]]
 
@@ -129,7 +129,7 @@ animated transitions and effects.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="2D GFX/People.webm" type="video/webm">
+    <source src="2D GFX/People - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -147,7 +147,11 @@ diagrams.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:2D%20GFX/Stroboscope.bas][file:2D%20GFX/Stroboscope.png]]
+[[file:2D%20GFX/Stroboscope.bas][file:2D%20GFX/Stroboscope%20-%20Screenshot%200.png]]
+
+#+attr_html: :class responsive-img
+#+attr_latex: :width 1000px
+[[file:2D%20GFX/Stroboscope%20-%20Screenshot%201.png]]
 
 Download source code: [[file:2D%20GFX/Stroboscope.bas][Stroboscope.bas]]
 
@@ -161,7 +165,7 @@ the viability of generating images of 3D shapes using code.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:2D%20GFX/Truncated%20cone.bas][file:2D%20GFX/Truncated%20cone.png]]
+[[file:2D%20GFX/Truncated%20cone.bas][file:2D%20GFX/Truncated%20cone%20-%20Screenshot%200.png]]
 
 Download source code: [[file:2D%20GFX/Truncated%20cone.bas][Truncated cone.bas]]
 
@@ -220,13 +224,14 @@ iteratively subdividing and perturbing pixel values.
 The program includes an animated sequence featuring a helicopter that
 moves across the terrain and picks up objects.
 
-#+attr_html: :class responsive-img
-#+attr_latex: :width 1000px
-[[file:3D%20GFX/Helicopter/Helicopter.bas][file:3D%20GFX/Helicopter/screenshot,%201.png]]
-
-#+attr_html: :class responsive-img
-#+attr_latex: :width 1000px
-[[file:3D%20GFX/Helicopter/Helicopter.bas][file:3D%20GFX/Helicopter/screenshot,%202.png]]
+#+begin_export html
+<div class="flex-center">
+  <video controls loop autoplay>
+    <source src="3D GFX/Helicopter/Helicopter - Screencast 0.mp4" type="video/mp4">
+    Your browser does not support the video tag.
+  </video>
+</div>
+#+end_export
 
 [[https://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=tree;f=3D+GFX/Helicopter;hb=HEAD][Project files]]
 
@@ -269,7 +274,7 @@ filled with colors that alternate to create a checkerboard pattern.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="3D%20GFX/3D%20land.webm" type="video/webm">
+    <source src="3D GFX/3D land - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -293,9 +298,14 @@ work, which can be a fun and educational project for those interested
 in stereoscopy and 3D visualization.
 
 
-#+attr_html: :class responsive-img
-#+attr_latex: :width 1000px
-[[file:3D%20GFX/Anaglyph.bas][file:3D%20GFX/Anaglyph.png]]
+#+begin_export html
+<div class="flex-center">
+  <video controls loop autoplay>
+    <source src="3D GFX/Anaglyph - Screencast 0.mp4" type="video/mp4">
+    Your browser does not support the video tag.
+  </video>
+</div>
+#+end_export
 
 [[file:3D%20GFX/Anaglyph.bas][Anaglyph.bas]]
 
@@ -313,9 +323,18 @@ Pentium 200 MHz in DOS mode.
 Users can move around the landscape using arrow keys and other
 specified keys to turn, look up/down, and even jump.
 
+#+begin_export html
+<div class="flex-center">
+  <video controls loop autoplay>
+    <source src="3D GFX/Ray casting engine - Screencast 0.mp4" type="video/mp4">
+    Your browser does not support the video tag.
+  </video>
+</div>
+#+end_export
+
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:3D%20GFX/Ray%20casting%20engine.bas][file:3D%20GFX/Ray%20casting%20engine.png]]
+[[file:3D%20GFX/Ray%20casting%20engine%20-%20Screenshot%200.png]]
 
 Download source code: [[file:3D%20GFX/Ray%20casting%20engine.bas][Ray casting engine.bas]]
 
@@ -329,11 +348,16 @@ Download source code: [[file:3D%20GFX/Ray%20casting%20engine.bas][Ray casting en
 Player controls small character that has to collect coins and move
 between screens. Player has to avoid contact with evil hedgehogs.
 
-#+attr_html: :class responsive-img
-#+attr_latex: :width 1000px
-[[file:Games/Pomppu%20Paavo.bas][file:Games/Pomppu%20Paavo.png]]
+#+begin_export html
+<div class="flex-center">
+  <video controls loop autoplay>
+    <source src="Games/Pomppu Paavo/Pomppu Paavo - Screencast 0.mp4" type="video/mp4">
+    Your browser does not support the video tag.
+  </video>
+</div>
+#+end_export
 
-[[file:Games/Pomppu%20Paavo.bas][Source code]]
+[[file:Games/Pomppu%20Paavo/Pomppu%20Paavo.bas][Source code]]
 
 ** Pomppu Paavo 2
 
@@ -342,7 +366,18 @@ between screens. Player has to avoid contact with evil snails.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[https://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=tree;f=Games/Pomppu+Paavo][file:Games/Pomppu%20Paavo%202/screenshot.png]]
+#+begin_export html
+<div class="flex-center">
+  <video controls loop autoplay>
+    <source src="Games/Pomppu Paavo 2/Pomppu Paavo - Screencast 0.mp4" type="video/mp4">
+    Your browser does not support the video tag.
+  </video>
+</div>
+#+end_export
+
+#+attr_html: :class responsive-img
+#+attr_latex: :width 1000px
+[[file:Games/Pomppu%20Paavo%202/Pomppu%20Paavo%20-%20Screenshot%200.png]]
 
 [[https://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=tree;f=Games/Pomppu+Paavo+2][Source code]]
 
@@ -367,7 +402,7 @@ it loses one life.
 #+begin_export html
 <div class="flex-center">
   <video controls loop autoplay>
-    <source src="Games/Worm/screencast.webm" type="video/webm">
+    <source src="Games/Worm/worm - Screencast 0.mp4" type="video/mp4">
     Your browser does not support the video tag.
   </video>
 </div>
@@ -391,7 +426,7 @@ utilize when possible.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:Games/checkers.bas][file:Games/checkers.png]]
+[[file:Games/checkers.bas][file:Games/checkers%20-%20Screenshot%200.png]]
 
 ** Checkers 2
 
@@ -410,7 +445,7 @@ larder board size.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:Games/checkers2.bas][file:Games/checkers2.png]]
+[[file:Games/checkers2.bas][file:Games/checkers2%20-%20Screenshot%200.png]]
 
 * Math
 :PROPERTIES:
@@ -599,7 +634,7 @@ abstract art.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:Miscellaneous/Alien%20font.bas][file:Miscellaneous/Alien%20font.png]]
+[[file:Miscellaneous/Alien%20font.bas][file:Miscellaneous/Alien%20font%20-%20Screenshot%200.png]]
 
 ** Custom palette
 
@@ -619,18 +654,18 @@ palette, providing a visual representation of all available colors:
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:Miscellaneous/Custom%20palette.bas][file:Miscellaneous/Custom%20palette.png]]
+[[file:Miscellaneous/Custom%20palette.bas][file:Miscellaneous/Custom%20palette%20-%20Screenshot%200.png]]
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:Miscellaneous/Custom%20palette.bas][file:Miscellaneous/Custom%20palette,%202.png]]
+[[file:Miscellaneous/Custom%20palette.bas][file:Miscellaneous/Custom%20palette%20-%20Screenshot%201.png]]
 
 The dithering process helps to mitigate the limitations of the
 256-color palette, making the gradients appear smoother to the eye:
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:Miscellaneous/Custom%20palette.bas][file:Miscellaneous/Custom%20palette,%203.png]]
+[[file:Miscellaneous/Custom%20palette.bas][file:Miscellaneous/Custom%20palette%20-%20Screenshot%202.png]]
 
 ** Alarm 1
 
@@ -655,7 +690,7 @@ thresholds, controlled by conditional checks and loops.
 
 #+INCLUDE: "Miscellaneous/Alarm 1.bas" src basic-qb45
 
-Download source code: [[file:Miscellaneous/Alarm,%201.bas][Alarm 1.bas]]
+Download source code: [[file:Miscellaneous/Alarm%201.bas][Alarm 1.bas]]
 
 ** Alarm 2
 
@@ -678,7 +713,7 @@ texture.
 
 #+INCLUDE: "Miscellaneous/Alarm 2.bas" src basic-qb45
 
-Download source code: [[file:Miscellaneous/Alarm,%202.bas][Alarm 2.bas]]
+Download source code: [[file:Miscellaneous/Alarm%202.bas][Alarm 2.bas]]
 
 ** 4D engine
 
@@ -768,7 +803,11 @@ see multiple overlayed 3D shapes at the same time.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:Miscellaneous/4D%20engine.bas][file:Miscellaneous/4D%20engine.png]]
+[[file:Miscellaneous/4D%20engine.bas][file:Miscellaneous/4D%20engine%20-%20Screenshot%200.png]]
+
+#+attr_html: :class responsive-img
+#+attr_latex: :width 1000px
+[[file:Miscellaneous/4D%20engine%20-%20Screenshot%201.png]]
 
 It is interesting how 3D slices of 4D pentatope stay as familiar
 tetrahedrons while you rotate the shape along familiar X,Y,Z axis. But
@@ -823,9 +862,14 @@ The user has three attempts to enter the correct password. After three
 failed attempts, the program halts and displays a "SYSTEM HALTED"
 message.
 
-#+attr_html: :class responsive-img
-#+attr_latex: :width 1000px
-[[file:Miscellaneous/Password%20lock/passw.bas][file:Miscellaneous/Password%20lock/screenshot,%201.png]]
+#+begin_export html
+<div class="flex-center">
+  <video controls loop autoplay>
+    <source src="Miscellaneous/Password lock/passw - Screencast 0.mp4" type="video/mp4">
+    Your browser does not support the video tag.
+  </video>
+</div>
+#+end_export
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
@@ -955,7 +999,7 @@ represented by short beeps, and dashes by longer beeps.
 
 #+attr_html: :class responsive-img
 #+attr_latex: :width 1000px
-[[file:Networking/Morse.bas][file:Networking/Morse.png]]
+[[file:Networking/Morse.bas][file:Networking/Morse%20-%20Screenshot%200.png]]
 
 Download source code: [[file:Networking/Morse.bas][Morse.bas]]