GW-BASIC und QuickBASIC unter den aktuellen 32-Bit-Windows-Versionen eingesetzt

Grundsätzliches

GWBASIC.EXE als auch QBASIC.EXE laufen nach meinen eigenen Erfahrungen absolut fehlerfrei :-), bei Windows 95 und 98 sowohl im MS-DOS-Modus (F8 beim Hochfahren gedrückt oder Start/Beenden..., Im MS-DOS-Modus neu starten) als auch in einem MS-DOS-Eingabeaufforderungsfenster. Auch mit der DOS-Emulation von Windows NT 4 kommen die DOS-BASIC-Veteranen bestens zurecht. Lediglich bei Grafik (SCREEN-Nummer >= 1) muss man mit Alt+Eingabe in den Vollbildmodus wechseln, aber dies ist ein allgemeines DOS-Modus-Problem, welches schon in Windows 3.1x bestand.

Im folgenden wird auf einige spezielle Punkte eingegangen.

UNC-Dateinamen

Zum einen unterliegt QuickBASIC der bestens bekannten 8+3-Zeichenlimite, so dass Sie für einen Zugriff auf C:\Eigene Dateien\Privattexte\Musikverein\Vereinswappen.bmp in Ihren Programmen

OPEN "C:\EIGENE~1\PRIVAT~2\MUSIKV~1\VEREIN~3.BMP" FOR BINARY AS 1
' Verarbeitung
CLOSE 1

verwenden müssen. Gleichzeitig hat Microsoft im Netzwerkbereich (von meinem privaten LAN kenne ich dies alles!) das Konzept der sog. UNC-Dateinamen (Universal Naming Convention) eingeführt, welches einen Zugriff auf Netzlaufwerke ohne Laufwerksbuchstaben in Anwendungsprogrammen (nur 32-Bit!) ermöglicht, also beispielsweise \\PRIVSRV1\LW_SOHN\Korrespondenz\Fussball\Gesuch1.doc. DOS-Programme (GWBASIC.EXE und QBASIC.EXE gehören auch dazu) sowie Windows 3.1x-16-Bit-Programme können mit diesem Dateinamenmodell nichts anfangen; also

100 ' Dies funktioniert nicht!
110 OPEN "\\MYSERVER\MYDRIVE\BASICDAT\CDVERWA.DAT" FOR INPUT AS 1
120 WHILE NOT EOF(1)
130 LINE INPUT#1, Z$
140 ' Z$ verarbeiten
150 WEND
160 CLOSE 1

wird nicht laufen; Sie müssen unter Netzwerk-Umgebung, MYSERVER mit der rechten Maustaste auf MYDRIVE klicken und mit Netzlaufwerk verbinden... einen Laufwerksbuchstaben zuordnen, z.B. N:\, erst dann kann zugegriffen werden:

100 ' Dies funktioniert :-) prima
110 OPEN "N:\BASICDAT\CDVERWA.DAT" FOR INPUT AS 1
120 WHILE NOT EOF(1)
130 LINE INPUT#1, Z$
140 ' Z$ verarbeiten
150 WEND
160 CLOSE 1

Ein schlauer Kopf kann natürlich auch eine Zeile

105 SHELL "net use N: \\MYSERVER\MYDRIVE"

einfügen. Analog gilt dies auch für Drucker:

100 ' Dies klappt leider :-( nicht
110 WIDTH "\\MYSERVER\HPDESKJT:", 132

Dort ebenfalls einen virtuellen Druckerport (z.B. LPT2: dem \\MYSERVER\HPDESKJT) zuweisen:

100 ' Dies klappt :-)
110 WIDTH "LPT2:", 132

Generell möchte ich Sie bezüglich den heutigen, auf dem Markt befindlichen Drucker auf den Artikel Bildschirm-Hardcopy ausdrucken verweisen, wo die Druckerprogrammierung ausführlich diskutiert wird. Als kurzen Test ist ein LLIST eines kurzen Programms empfehlenswert im Falle eines an LPT1: angeschlossenen Druckers, sonst verwenden Sie

OPEN "LPT2:" FOR OUTPUT AS 1  ' evtl. auch LPT3: einsetzen!
FOR i%=1 TO 10
  PRINT#1, "Äußere Ölbüchsen töten den Übeltäter."
NEXT i%
PRINT#1, CHR$(12);
CLOSE 1

als kleines Testprogramm.

Eingeschränkte Nutzung der vorhandenen Hardware

Arbeitsspeicher

Auch wenn Ihr PC mit üppigen 256 MB RAM ausgestattet ist, kann QuickBASIC nach wie vor nur mit dem konventionellen Speicher (die bekannten 640 KB) etwas anfangen, weil QBASIC.EXE als reine DOS-Anwendung im sog. Real Mode (Realmodus) der CPU läuft, wie früher bei einem IBM PC/XT mit Intel 8088/8086-Prozessor vor 20 Jahren üblich. Insbesondere GWBASIC.EXE bietet Ihnen nach wie vor die bekannte Segmentierungsgrösse von nur 64 KB für Ihr Programm und Variablen an. Falls Sie also mehr Speicher benötigen, sollten Sie über die LIM-Schnittstelle von EMM386.EXE via DOS-Interrupts arbeiten.

Grafikkarte

Auch wenn Ihre Grafikkarte in Windows 1280×1024 Bildpunkten Auflösung mit 16,7 Millionen Farben (TrueColor) problemlos schafft, müssen Sie sich bei GWBASIC.EXE weiterhin auf die bekannten 640×350 Bildpunkt bei 16 aus 64 Farben (SCREEN 9) beschränken, analog bei QBASIC.EXE 320×200/256 Farben (SCREEN 13) und 640×480/16 Farben (SCREEN 12) aus jeweils 2^18 Farben, von der Nutzung eines 3D-Hardwarebeschleunigers ganz zu schweigen. Falls Sie aber doch bessere Auflösungen anstelle von Standard-VGA nutzen möchten, verweise ich Sie auf die Ansteuerung der Grafikkarte über die VESA-Schnittstelle.

Soundkarte

Auch der SOUND-Befehl sowie BEEP lassen die tollste Soundkarte links liegen und verwenden weiterhin den internen PC-Lautsprecher.

Joysticks

Moderne Digital-Joysticks, womöglich für die USB-Schnittstelle können Sie ebenfalls vergessen. Dagegen können herkömmliche Analog-Joysticks, welche an der 15-poligen Sub-D-Buchse bei der Soundkarte oder Gameport-I/O-Karte verbunden sind, mittels der STICK()- und STRIG()-Funktion verwendet werden, wie dies beim Labyrinthspiel der Fall ist.

Modems

Beachten Sie hierfür beim Artikel TCP/IP mit QuickBASIC die Hinweise betreffend Konfiguration von DOSISODE, ausserdem befindet sich dort ein kleines Modemtestprogramm.

Start anderer Anwendungen mit SHELL

Das bekannte SHELL-Kommando kann grundsätzlich auch in Windows verwendet werden, allerdings liegt das unter Windows emulierte DOS den bekannten Einschränkungen des konventionellen Speichers. Eine ausführliche Behandlung dieser Thematik befindet sich unter Starten anderer Programme von BASIC aus.


Wieder zurück zur Übersicht


© 2000 by Andreas Meile