Ein Retro-Computing Abenteuer
BASIC ist ja die Sprache, mit der die Meisten meines Jahrgangs ihre ersten Schritt als Programmierer gemacht haben. Bei mir waren das Commodore BASIC 2.0 auf dem legendären C64, Commodore BASIC 3.5 auf dem C16/Plus4, AmigaBasic, GFA-Basic und MaxonBASIC auf dem Amiga – und natürlich GW-BASIC und Microsoft QuickBasic auf der ersten MS-DOS-Kiste in meiner Raupensammlung. Nach wie vor ist BASIC eine Programmiersprache, die viele Vorteile bietet: Sie ist leicht zu erlernen, je nach BASIC-Dialekt auch für mächtige Programmimplementierungen gut zu gebrauchen – und BASIC macht Spaß.
Auch heute noch verwende ich gerne mal BASIC für schnelle Entwürfe und Machbarkeitsstudien (PureBASIC), aber auch für komplexere Programme, wenn ich nicht auf C++ und Qt6 zurückgreifen möchte. Oft liefern mir dabei alte BASIC-Listings die Ideen für die Umsetzung von Programmen – und hier kommt QB64 ins Spiel…
Was ist QB64?
QB64 (ursprünglich QB32) ist ein BASIC-Compiler für Windows, Linux und Mac OS X, der für die Kompatibilität mit Microsoft QBasic und QuickBASIC entwickelt wurde. QB64 emittiert C-Quellcode und integriert selbst einen C++-Compiler, um die letztendliche Kompilierung des generierten Zwischencodes mit gcc-Optimierung zu ermöglichen. Mit der derzeit technisch genauesten Nachbildung des originalen Microsoft-Produkts zählt QB64 zu den Anwendungen im Bereich Retrocomputing.
QB64 implementiert die meisten QBasic-Funktionen und kann viele QBasic-Programme ausführen, einschließlich der Beispielprogramme Gorillas und Nibbles, die von Microsoft geschrieben und dem Originalprodukt beigelegt waren. Darüber hinaus enthält QB64 eine Entwicklungsumgebung, die der QBasic-Entwicklungsumgebung ähnelt. QB64 erweitert auch die QBASIC-Programmiersprache um 64-Bit-Datentypen, bessere Sound- und Grafikunterstützung und bessere Anbindung an Betriebssystemfunktionen. Es kann auch einige DOS/x86-spezifische Funktionen wie Mauszugriff über den Interrupt 33h und mehrere Timer emulieren.
QB64 unter Linux
Meistens arbeite ich an einem Linux-Rechner und was liegt da näher, als QB64 auch hier zu verwenden? Das Programm ist kostenlos, OpenSource – und es lässt sich klaglos sowohl auf den 64-Bit-, als auch auf den 32-Bit-Versionen der gängigen Linux-Distributionen kompilieren. In diesem Tutorial zeige ich dir, wie man QB64 unter Debian 12 Linux (aka „Bookworm“) installiert.
Quellcode besorgen und QB64 compilieren
QB64 existiert derzeit in zwei Versionen. Während die ursprüngliche Originalversion nur noch sporadisch aktualisiert wird (Version 2.02), gibt es auch noch einen wesentlich aktuelleren Branch, die „Phoenix Edition“ mit einem erweiterten Befehlssatz, die (Stand 03/2025) noch aktiv weiterentwickelt wird. Beide haben ihre Vor- und Nachteile. Die ursprüngliche Version zeichnet sich durch schnellere Compilerzeiten mit vergleichsweise langsamem Programmcode aus, während die Phoenix Edition den Quellcode deutlich langsamer übersetzt, dafür aber hochoptimierte, schnelle Programme erzeugt. Es bleibt dir selbst überlassen, welcher Version du den Vorzug gibst.
Der Quellcode zu QB64 ist frei zugänglich für jedermann auf GitHub verfügbar.
Alte Original-Version: https://github.com/QB64Team/qb64
Phoenix Edition: https://github.com/QB64-Phoenix-Edition/QB64pe
Um darauf zugreifen zu können, musst du auf deiner Linux-Maschine zunächst ein paar Vorbereitungen treffen:
# 1. git installieren: sudo apt install git # 2. Verzeichnis für Quellcodes einrichten: mkdir ~/git # 3. Verzeichnis betreten: cd ~/git # 4. QB64 Quellcode abrufen: # Original-Version: git clone https://github.com/QB64Team/qb64.git # oder Phoenix Edition: git clone https://github.com/QB64-Phoenix-Edition/QB64pe.git # Hinweis: Wenn du dich für die Phoenix Edition entscheidest, dann solltest # du zusätzlich das Paket kdialog installieren - andernfalls musst du beim # Laden und Speichern von Quellcode Pfad und Programmname umständlich in # einer Shell eingeben! sudo apt install kdialog
Das Herunterladen kann ein Weilchen dauern. Sobald der Download beendet ist, kannst du QB 64 compilieren. Eventuell fehlende Pakete und Abhängigkeiten werden dabei automatisch nachinstalliert. Die weitere Vorgehensweise bleibt für beide Versionen die Gleiche:
# 5. Wechsle in das qb64-Verzeichnis: # Original-Version: cd qb64 # oder Phoenix Edition: cd QB64pe # 6. Starte die Übersetzung: ./setup_lnx.sh # 7. Warteschleife... Programm wird übersetzt. # Koch dir ein Käffchen oder wende dich deinem Haustier zu...
Sobald der Compiler fertig ist, öffnet sich die Entwicklungsumgebung von QB64. Das Installations-Script hat übrigens automatisch eine Verknüpfung in deiner Startleiste angelegt! Du findest QB64 künftig unter Entwicklung->QB64 Programming IDE und kannst somit jederzeit mit dem Programmieren in BASIC loslegen. 😉
Ein Testprogramm zur Geschwindigkeitsmessung
' ---------------------------------- ' -- loop.bas -- ' -- Laufzeitmessung Do-Loop -- ' -- -- ' -- Windows 10 64-Bit -- ' -- QB64 Benchmark: -- ' -- 689647 loops, 4.23 sec. -- ' -- -- ' -- Phoenix Edition Benchmark: -- ' -- 689647 loops, 2.14 sec. -- ' -- -- ' -- Windows 10 WSL2 Debian Linux -- ' -- QB64 Benchmark: -- ' -- 689647 loops, 5.33 sec. -- ' -- -- ' -- Phoenix Edition Benchmark: -- ' -- 689647 loops, 4.45 sec. -- ' -- -- ' -- Testrechner: -- ' -- Intel Core I7 @3.60 GHz -- '----------------------------------- Cls Randomize Timer zahl1 = 100 count = 0 an = Timer ' Zeitmessung starten Do zahl1 = zahl1 + 1.6 count = count + 1 Print Using "######"; count; Print ": "; Print Using "#######.##"; zahl1 Loop Until zahl1 > 1111110 aus = Timer ' Zeitmessung beenden secs = (aus - an) ' Laufzeit (Sekunden) berechnen mins = secs / 60.0 hours = mins / 60.0 ' -- Laufzeit ausgeben -- Print Print "Runtime: ": Print Print Using "#######.##"; secs; Print " Sekunden" Print Using "#######.##"; mins; Print " Minuten" Print Using "#######.##"; hours; Print " Stunden" End
Programmieren mit QB64/QBasic – Links zu Tutorials und Foren
Vielleicht hast du ja Lust auf Retro-Programming mit BASIC und QB64 bekommen? Hier habe ich einige hilfreiche Links zusammengetragen, die dir beim Einstieg und der täglichen Arbeit nützlich sein können:
SelfQB – ein online-Tutorial für Einsteiger
Lerne QuickBasic kennen und arbeite dich in die Programmierung ein!
QBasic-Tutorial von Claus-Dieter Volko
mit 43 Beispielprogrammen und 8 Hausaufgaben mit Lösungen.
Programmieren in QBasic
ein weiterer guter Einsteiger-Kurs, der sich vor allem an Schüler wendet.
QBasic-Kurs für Gymnasien
Kleiner Qbasic-Einsteigerkurs auf 13 Seiten. Hierbei handelt es sich um eine Zusammenfassung eines 8-stündigen QBasic-Programmierkurses am Gymnasium Wolbeck.
„Basic lernen“ – 8-teiliges Online-Tutorial
Exzellentes QBasic-Tutorial, das systematisch in die wichtigsten Funktionen und Befehle von QBasic einführt. Liebevoll aufbereitet, mit vielen Programmbeispielen. Auch für absolute Neueinsteiger ideal geeignet.
Modernes QuickBasic
ein Tutorial für Fortgeschrittene und Profis in der QB- Programmierung
Dieser Kurs füllt eine Lücke – ein Tutorial, das viele Fragen von fortgeschrittenen Programmierern beantwortet und diesen wertvolle Tipps gibt. Der bunte Themenreigen spannt sich von der Interrupt- Programmierung über das modulare Programmieren mit MAKE-Modulen und INCLUDE-Dateien bis hin zur Programmierung einer eigenen Scriptsprachen- Interpreters mit QB.
Die QB Monster FAQ
In dieser FAQ (Frequently Asked Questions) sind all die Fragen gesammelt und beantwortet, die seit Jahren hundertfach in allen QBasic-Foren weltweit gestellt werden. Die FAQ umfasst 1028 Fragen mit über 2000 Antworten.
QB64.com
englischsprachiges Forum rund um QB64
QB64 Wiki
englischsprachige Befehlsübersicht zu QBasic/QB64
Phoenix Edition QB64 Tutorial
ein englischsprachiges Tutorial zur Spieleprogrammierung mit QB64 „Phoenix Edition“
Das war’s dann auch erst mal zu Retro-Programming mit QBasic und QB64 unter Linux. Schau gern auch mal bei meinen anderen Tutorials rein!
War dir dieses Tutorial hilfreich? Dann freue ich mich über einen kleinen Obolus für meine IT-Kasse! 🙂