A few days ago I stumble upon this blog entry.
Like the author I spent several months trying to find out the right environment to teach kids basic knowledge of programming.
-
Python
-
ZX81 Basic
-
Lua
-
…
In my opinion, all these options are nice but either the language is already too advanced (Python) or it is a visual programming IDE (Scratch), and I’m not fond of visual programming… I was looking for the direct and simple experience of coding. No clutter, no mouse, no a-thousand-icons-all-over-the-screen. I wanted the explanation to simply be about programming concepts.
So I ended up thinking that, indeed, QBasic and its environment had the right balance (and still I didn’t learn with QBasic, it was ZX81 Basic for me…).
So, how do you install QBasic on a Pi ?
At first I thought it was a good idea to use QB64. I recompiled it to test it on the Pi, and it turns out that the result was way too slow…barely usable… (maybe I did not use the right compilation flags ? I don’t know…). If you want to try this out, you must add the directive #define QB64_NOT_X86
at the beginning of source file source/internal/c/os.sh
, else it won’t compile for the Pi.
So, instead, I decided to go with something more lightweight : the orginal QBasic with DOSBox.
Install DOSBox and QBasic
First, if it is not already installed, install DOSBox
sudo apt-get install dosbox
Then download QBasic from the Microsoft FTP server. The server does not support active FTP, and not all browsers can do passive FTP. So it easier to use wget. Plus we are going to create a directory and use DOSBox to extract the archive in this directory.
mkdir -p ~/opt/olddos
cd !$
wget --no-passive-ftp ftp://ftp.microsoft.com/softlib/mslfiles/olddos.exe
dosbox olddos.exe
Now you can create an alias qbasic
to launch QBasic (add this line to your ~/.bash_aliases
file if you want to keep it after reboot)
alias qbasic='dosbox ~/opt/olddos/QBASIC.EXE -fullscreen'
You should now be able to launch QBasic with this alias
Adjust fullscreen mode
You may have to adjust your DOSBox settings if you want to use a real fullscreen mode. First, you need the resolution of your screen, for instance mine is 1280x1024
. You can find your resolution with the command xdpyinfo | grep 'dimensions:'
Then, modify the DOSBox configuration file at ~/.dosbox
:
-
In section
sdl
-
change the value of
fullresolution
to your resolution -
change the value of
output
tooverlay
-
-
In section
render
-
change the value of
aspect
totrue
-
The qbasic
alias will activate the fullscreen mode, but you can leave it with ALT+Enter
Problem with CTRL+Break
If you want to quit a program that doesn’t stop, it turns out that CTRL+Break
doesn’t work for QBasic in DOSBox. CTRL+ScrollLock
is a known workaround for this problem, but for some reason it doesn’t always work for me. Worst case you can still use CTRL+F9
to quit DOSBox.