From b1018f11b8962bf5959a50c1b82202d39e489938 Mon Sep 17 00:00:00 2001 From: Svjatoslav Agejenko Date: Sun, 19 May 2024 16:08:19 +0300 Subject: [PATCH] Update installation documentation --- .gitignore | 3 +- index.html | 389 ------------------------------------------ index.org | 181 ++++++++++++-------- tools/update web site | 25 ++- 4 files changed, 132 insertions(+), 466 deletions(-) delete mode 100644 index.html diff --git a/.gitignore b/.gitignore index 34bc2b4..810beee 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ /.idea/ /VC.COM /VC.INI -/QB45 \ No newline at end of file +/QB45 +/index.html \ No newline at end of file diff --git a/index.html b/index.html deleted file mode 100644 index 48d2074..0000000 --- a/index.html +++ /dev/null @@ -1,389 +0,0 @@ - - - -QBasicApps - collection of applications mostly written in MS QBasic for DOS environment - - - - - - - - - - - - - -
-

QBasicApps - collection of applications mostly written in MS QBasic for DOS environment

- -
-

1 General

-
- -
- -
-

1.1 Source code

-
- -
-
-
- -
-

2 Content

-
-

-This collection contains lots of applications: -

-
    -
  • Games. -
  • -
  • Graphics tests (2D/3D/4D). -
  • -
  • Algorithms tests. -
  • -
  • Utilities. -
  • -
- -

-I wrote them long time ago mostly in QBasic, some in x86 assembly for -use under DOS operating system. -

- - -

-Few sample applications from the package: -

-
-
-

2.1 Checkers

-
-

-Play checkers against the computer with any board size and any amount -of caps. Does thinking by recursively testing many possible scenarios -with any depth. -

- -

-Since it is slow QBasic implementation, it isn't practical to play -with many caps or big thinking depth, for reasonable responce time. -

- -

-See directory: -

-
-games/checkers
-
-
- - -
-

screenshot.png -

-
-
-
- -
-

2.2 Platform game

-
-

-Jump around, collect coins and dont touch snails! Inspired by Super -Mario Bros. -

- -

-See directory: -

-
-games/platform
-
-
- - -
-

screenshot.png -

-
-
-
- -
-

2.3 3D Synthezier

-
-

-Parses scene definition language and creates 3D world based on -it. Result will be in a wavefront obj file, witch can be then -visualized using external renderer. -

- -

-See directory: -

-
-graphics/3D/3D Synthezier
-
-
- - -
-

rectangular city, 1.jpeg -

-
- - -
-

hexagonal city, 2.jpeg -

-
- -

-Read more -

-
-
-
-
- - - diff --git a/index.org b/index.org index f765497..e72c8dc 100644 --- a/index.org +++ b/index.org @@ -1,23 +1,32 @@ -#+TITLE: QBasicApps - collection of applications mostly written in MS QBasic for DOS environment - -* (document settings) :noexport: -** use dark style for TWBS-HTML exporter -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: +#+SETUPFILE: ~/.emacs.d/org-styles/html/darksun.theme +#+TITLE: BASIC applications collection +#+LANGUAGE: en +#+LATEX_HEADER: \usepackage[margin=1.0in]{geometry} +#+LATEX_HEADER: \usepackage{parskip} +#+LATEX_HEADER: \usepackage[none]{hyphenat} + +#+OPTIONS: H:20 num:20 +#+OPTIONS: author:nil * General -- This program is free software: you can redistribute it and/or modify - it under the terms of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public License]] as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. +This collection contains lots of applications: + +- Games. +- Graphics tests (2D/3D/4D). +- Algorithms tests. +- Utilities. -- Program author: +I wrote those applications largely more than 20 years ago, mostly in +QBasic. Some are even written in x86 assembly for use under DOS +operating system. Because programs are old, coding style and +commenting is often times bad. I'm now using artificial intelligence +to revive and modernize them one by one. + +- These programs are free software: released under Creative Commons Zero + (CC0) license. + +- Programs author: - Svjatoslav Agejenko - Homepage: https://svjatoslav.eu - Email: mailto://svjatoslav@svjatoslav.eu @@ -30,29 +39,86 @@ - [[https://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=summary][Browse Git repository online]] - Clone Git repository using command: - : git clone https://www2.svjatoslav.eu/git/qbasicapps.git + : git clone https://www3.svjatoslav.eu/git/qbasicapps.git + +* Installation and Usage + +There are various ways to run legacy QBasic applications under Debian +GNU/Linux: + +- Full system virtualization :: One way would be to use full system + virtualization with [[https://www.qemu.org/][QEMU]], [[https://www.virtualbox.org/][VirtualBox]] or [[https://www.vmware.com/products/desktop-hypervisor.html][VMware Workstation or + Player]]. After creating virtual machine, you need to obtain and + install some distribution of DOS like [[https://en.wikipedia.org/wiki/MS-DOS][MS-DOS]] or [[https://www.freedos.org/][FreeDOS]]. Within DOS + you can then use either Microsoft *QBasic* or Microsoft + *QuickBasic*. QBasic is already included in Microsoft DOS by + default. QuickBasic is more capable but must be obtained separately. + +- QB64 :: [[https://qb64.com][QB64]] is mostly compatible with Microsoft BASIC variants and + can be used too. + +- [[id:97ea6094-ade6-4c7d-aea9-9874acf9dc86][DOSBox + MS BASIC]] :: Easy to install and good compatibility. + +** DOSBox + MS BASIC +:PROPERTIES: +:ID: 97ea6094-ade6-4c7d-aea9-9874acf9dc86 +:END: + +Following tutorial focuses on using DOSBox with original Microsoft +QBasic or QuickBasic. -* Running QBasic applications on Debian GNU/Linux +DOSBox is trivial to install and BASIC programs do not need to be +copied to virtual drive or operating system to run them. Using +original BASIC binaries ensures good compatibility. -To run these applications on a modern GNU Debian Linux system, follow -these steps: + +Here is suggested installation and usage procedure: 1. Install DOSBox by running the following command in your terminal: : sudo apt-get install dosbox -2. Place a copy of QBASIC.EXE and/or QuickBasic compiler in repository root directory. - -3. Execute script that is located in the repository root directory: - : ./run_dosbox.sh +2. Obtain and place a copy of QuickBasic *QB.EXE* executable binary + into directory */QB45/* within project root directory. -4. Run the script to launch DOSBox: - : ./run_dosbox.sh + Optionally obtain [[https://en.wikipedia.org/wiki/Volkov_Commander][Volkov Commander]] executable VC.COM and place it + under project root directory. Volkov Commander simplifies + filesystem navigation and running arbitrary BASIC program by + selecting it and pressing ENTER key. For this to work, BAS file + extension is mapped to BASIC executable within VC.EXT file (already + available in the project root directory). In case you are using + QBasic instead, feel free to fix VC.EXT to point to appropriate + BASIC executable. -5. Inside DOSBox, navigate to the directory containing your QBasic program and run it using the interpreter or compiler. +3. Optionally check and apply [[id:13c7d873-f1aa-4061-88ac-dc9e43c6303d][DOSBox usage tips]]. +4. Execute script that is located in the root directory of the + repository: + : ./run_dosbox.sh -* DOSBox usage tips -** How to change keyboard layout to Dvorak +5. Now project root directory appears as root directory of virtual + *C:* drive. You can navigate around and start programs. + + +Here is suggested project directory layout with QuickBasic and Volkov +Commander installed: +#+begin_example + ├── COPYING + ├── index.org + ├── QB45 + │   ├── QB.EXE + │   └── QB.INI + ├── run_dosbox.sh + ├── (... other repository files and directories) + ├── VC.COM + ├── VC.EXT + └── VC.INI +#+end_example + +** DOSBox usage tips +:PROPERTIES: +:ID: 13c7d873-f1aa-4061-88ac-dc9e43c6303d +:END: +*** How to change keyboard layout to Dvorak In case you want to use Dvorak keyboard layout and DOSBox fails to auto-apply it, here is how you can set it manually: @@ -66,7 +132,7 @@ auto-apply it, here is how you can set it manually: 3. Save the changes and restart DOSBox for the configuration to take effect. -** Increase window size +*** Increase window size If you have big high-resolution screen, by default DOSBox window could appear small. To make it bigger: @@ -81,51 +147,32 @@ appear small. To make it bigger: 3. Save the changes and restart DOSBox for the configuration to take effect. +* Applications -* Content -This collection contains lots of applications: -+ Games. -+ Graphics tests (2D/3D/4D). -+ Algorithms tests. -+ Utilities. - -I wrote them long time ago mostly in QBasic, some in x86 assembly for -use under DOS operating system. - +There are lot of applications. Few examples: -Few sample applications from the package: ** Checkers - Play checkers against the computer with any board size and any amount - of caps. Does thinking by recursively testing many possible scenarios - with any depth. - - Since it is slow QBasic implementation, it isn't practical to play - with many caps or big thinking depth, for reasonable responce time. - - See directory: - : games/checkers - - [[file:games/checkers/screenshot.png]] - -** Platform game - Jump around, collect coins and dont touch snails! Inspired by Super - Mario Bros. +Play checkers against the computer with any board size and any amount +of caps. Does thinking by recursively testing many possible scenarios +with any depth. - See directory: - : games/platform +Since it is slow QBasic implementation, it isn't practical to play +with many caps or big thinking depth, for reasonable responce time. +See directory: +: games/checkers - [[file:games/platform/screenshot.png]] +[[file:games/checkers/screenshot.png]] ** 3D Synthezier - Parses scene definition language and creates 3D world based on - it. Result will be in a [[https://en.wikipedia.org/wiki/Wavefront_.obj_file][wavefront obj file]], witch can be then - visualized using external renderer. +Parses scene definition language and creates 3D world based on +it. Result will be in a [[https://en.wikipedia.org/wiki/Wavefront_.obj_file][wavefront obj file]], witch can be then +visualized using external renderer. - See directory: - : graphics/3D/3D Synthezier +See directory: +: graphics/3D/3D Synthezier - [[file:graphics/3D/3D Synthezier/doc/rectangular city, 1.jpeg]] +[[file:graphics/3D/3D Synthezier/doc/rectangular city, 1.jpeg]] - [[file:graphics/3D/3D Synthezier/doc/hexagonal city, 2.jpeg]] +[[file:graphics/3D/3D Synthezier/doc/hexagonal city, 2.jpeg]] - [[file:graphics/3D/3D Synthezier/doc/index.html][Read more]] +[[file:graphics/3D/3D Synthezier/doc/index.html][Read more]] diff --git a/tools/update web site b/tools/update web site index 9354db1..6e325e7 100755 --- a/tools/update web site +++ b/tools/update web site @@ -1,17 +1,24 @@ #!/bin/bash cd "${0%/*}"; if [ "$1" != "T" ]; then gnome-terminal -e "'$0' T"; exit; fi; -cd .. +( + cd .. -rsync -avz --delete -e 'ssh -p 10006' ./ \ - --include="*/" \ - --include="*.html" \ - --include="*.png" \ - --include="*.jpeg" \ - --include="*.blend" \ - --exclude="*" \ - n0@www3.svjatoslav.eu:/mnt/big/projects/qbasicapps/ + # Export org to html using emacs in batch mode + rm -f index.html + emacs --batch -l ~/.emacs --visit=index.org --funcall=org-html-export-to-html --kill + # Upload project homepage to the server. + rsync -avz --delete -e 'ssh -p 10006' ./ \ + --include="*/" \ + --include="*.html" \ + --include="*.png" \ + --include="*.jpeg" \ + --include="*.blend" \ + --exclude="*" \ + n0@www3.svjatoslav.eu:/mnt/big/projects/qbasicapps/ + +) echo "" echo "Press ENTER to close this window." read -- 2.20.1