1 #+SETUPFILE: ~/.emacs.d/org-styles/html/darksun.theme
2 #+TITLE: BASIC applications collection
4 #+LATEX_HEADER: \usepackage[margin=1.0in]{geometry}
5 #+LATEX_HEADER: \usepackage{parskip}
6 #+LATEX_HEADER: \usepackage[none]{hyphenat}
13 This collection contains lots of applications:
16 - Graphics tests (2D/3D/4D).
20 I wrote those applications largely more than 20 years ago, mostly in
21 QBasic. Some are even written in x86 assembly for use under DOS
22 operating system. Because programs are old, coding style and
23 commenting is often times bad. I'm now using artificial intelligence
24 to revive and modernize them one by one.
26 - These programs are free software: released under Creative Commons Zero
31 - Homepage: https://svjatoslav.eu
32 - Email: mailto://svjatoslav@svjatoslav.eu
34 - [[https://www.svjatoslav.eu/projects/][Other software projects hosted at svjatoslav.eu]]
37 - [[https://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=snapshot;h=HEAD;sf=tgz][Download latest snapshot in TAR GZ format]]
39 - [[https://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=summary][Browse Git repository online]]
41 - Clone Git repository using command:
42 : git clone https://www3.svjatoslav.eu/git/qbasicapps.git
44 * Installation and Usage
46 There are various ways to run legacy QBasic applications under Debian
49 - Full system virtualization :: One way would be to use full system
50 virtualization with [[https://www.qemu.org/][QEMU]], [[https://www.virtualbox.org/][VirtualBox]] or [[https://www.vmware.com/products/desktop-hypervisor.html][VMware Workstation or
51 Player]]. After creating virtual machine, you need to obtain and
52 install some distribution of DOS like [[https://en.wikipedia.org/wiki/MS-DOS][MS-DOS]] or [[https://www.freedos.org/][FreeDOS]]. Within DOS
53 you can then use either Microsoft *QBasic* or Microsoft
54 *QuickBasic*. QBasic is already included in Microsoft DOS by
55 default. QuickBasic is more capable but must be obtained separately.
57 - QB64 :: [[https://qb64.com][QB64]] is mostly compatible with Microsoft BASIC variants and
60 - [[id:97ea6094-ade6-4c7d-aea9-9874acf9dc86][DOSBox + MS BASIC]] :: Easy to install and good compatibility.
64 :ID: 97ea6094-ade6-4c7d-aea9-9874acf9dc86
67 Following tutorial focuses on using DOSBox with original Microsoft
70 DOSBox is trivial to install and BASIC programs do not need to be
71 copied to virtual drive or operating system to run them. Using
72 original BASIC binaries ensures good compatibility.
75 Here is suggested installation and usage procedure:
77 1. Install DOSBox by running the following command in your terminal:
78 : sudo apt-get install dosbox
80 2. Obtain and place a copy of QuickBasic *QB.EXE* executable binary
81 into directory */QB45/* within project root directory.
83 Optionally obtain [[https://en.wikipedia.org/wiki/Volkov_Commander][Volkov Commander]] executable VC.COM and place it
84 under project root directory. Volkov Commander simplifies
85 filesystem navigation and running arbitrary BASIC program by
86 selecting it and pressing ENTER key. For this to work, BAS file
87 extension is mapped to BASIC executable within VC.EXT file (already
88 available in the project root directory). In case you are using
89 QBasic instead, feel free to fix VC.EXT to point to appropriate
92 3. Optionally check and apply [[id:13c7d873-f1aa-4061-88ac-dc9e43c6303d][DOSBox usage tips]].
94 4. Execute script that is located in the root directory of the
98 5. Now project root directory appears as root directory of virtual
99 *C:* drive. You can navigate around and start programs.
102 Here is suggested project directory layout with QuickBasic and Volkov
111 ├── (... other repository files and directories)
119 :ID: 13c7d873-f1aa-4061-88ac-dc9e43c6303d
121 *** How to change keyboard layout to Dvorak
123 In case you want to use Dvorak keyboard layout and DOSBox fails to
124 auto-apply it, here is how you can set it manually:
127 : ~/.dosbox/dosbox-<version>.conf
129 2. Modify *keyboardlayout* field as follows
130 : keyboardlayout=dv103
132 3. Save the changes and restart DOSBox for the configuration to take
135 *** Increase window size
137 If you have big high-resolution screen, by default DOSBox window could
138 appear small. To make it bigger:
141 : ~/.dosbox/dosbox-<version>.conf
143 2. Set windowresolution to either of those values:
144 : windowresolution=1366x768
145 : windowresolution=1600x900
147 3. Save the changes and restart DOSBox for the configuration to take
152 There are lot of applications. Few examples:
155 Play checkers against the computer with any board size and any amount
156 of caps. Does thinking by recursively testing many possible scenarios
159 Since it is slow QBasic implementation, it isn't practical to play
160 with many caps or big thinking depth, for reasonable responce time.
164 [[file:games/checkers/screenshot.png]]
167 Parses scene definition language and creates 3D world based on
168 it. Result will be in a [[https://en.wikipedia.org/wiki/Wavefront_.obj_file][wavefront obj file]], witch can be then
169 visualized using external renderer.
172 : graphics/3D/3D Synthezier
174 [[file:graphics/3D/3D Synthezier/doc/rectangular city, 1.jpeg]]
176 [[file:graphics/3D/3D Synthezier/doc/hexagonal city, 2.jpeg]]
178 [[file:graphics/3D/3D Synthezier/doc/index.html][Read more]]