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.
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.
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.
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.
Auch der SOUND
-Befehl sowie BEEP
lassen die
tollste Soundkarte links liegen und verwenden weiterhin den internen
PC-Lautsprecher.
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.
Beachten Sie hierfür beim Artikel TCP/IP mit QuickBASIC die Hinweise betreffend Konfiguration von DOSISODE, ausserdem befindet sich dort ein kleines Modemtestprogramm.
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.