Frage deutsch
~~~~~~~~~~~~~
Was sind TSR-Programme und wie kann ich sie in QB
programmieren?
Question English
~~~~~~~~~~~~~~
What are TSR programs an how can I write a TSR program with QB?
Antwort 1
~~~~~~~~
[ von Tobias Doerffel ("todo"; mailtodo*web.de ), per Mail,
29.4.02 ]
.
Das ist in QB nicht möglich (möglich schon, aber wer will schon ->
TSR-Programme, die dutzende KB Speicher belegen???). Bei TSR-Programmierung sei
generell auf Assembler, C und PASCAL verwiesen, wobei man mit Assembler
wahrscheinlich die besten Ergebnisse hat (was die Größe im Speicher angeht).
Antwort 2
~~~~~~~~
[ von Thomas Antoni, 23.1.02 - 27.01.02 unter Verwendung von Passagen aus den
Büchern "PC intern 3.0" von Michael Tischer und "Interrupt-Programmierung mit
QuickBasic" von Kai Hamann ]
TSR heißt "Terminate and Stay Ready", damit werden solche Programme
bezeichnet, die nach dem Beenden nicht vom Betriebssystem aus dem Speicher
entfernt werden, sondern darin "resident" bleiben und typischerweise jederzeit
durch eine Sondertaste oder Tastenkombination wieder gestartet werden
können.
-> TSR-Programme sind die einzige in DOS eingebaute Möglichkeit, ein rudimentäres
Multitasking, das heißt die "Parallelverarbeitung" mehrerer Programme zu
realisieren.
Mit Hilfe von TSR-Programmen kann sich der Anwender auf Knopfdruck jederzeit
Zugang zu so nützlichen Hilfsmitteln wie Taschenrechner, Kalender, Notizbuch,
CD- oder MP3-Player verschaffen, ohne das gerade ausgeführte Programm beenden zu
müssen. Manche TSR-Programme sind sogar in der Lage, mit dem von Ihnen
unterbrochenen Programm Daten auszutauschen. Eine zu seligen DOS-Zeiten sehr
bekannte und nützliche Sammlung an TSR-Anwenderprogrammen war "SideKick".
Q(uick)Basic unterstützt das Erstellen von TSR-Programmen nicht direkt - im
Gegensatz zu dem professionelleren PowerBASIC für DOS.
Eines der vielen Probleme bei QuickBasic sind die im Gegensatz zu
Assemblerprogrammen doch relativ großen EXE-Dateien, die dadurch entstehen, dass
das Laufzeitmodul immer in voller Länge zum Objektcode hinzugebunden wird.
Gerade TSR-Programme sollten möglichst klein sein, um den anderen im
Hauptspeicher befindlichen Programmen nicht allzuviel kostbaren Platz im
konventionellen Speicherbereich 0...640 KB wegzunehmen.
Es gibt jedoch Zusatztools, die das Schreiben von TSR-Programmen unter
QuickBasic ermöglichen. Eines der besten ist P.D.Q von der Firma Crescent
Software. P.D.Q ersetzt das Laufzeit-Modul "BCOMxx.LIB", stellt in der
QuickBasic-Umgebung einen erweiterten Befehlssatz zur Verfügung und kann extrem
kleine EXE-Dateien erzeugen. Die zusätzlichen Befehle unterstützen das Schreiben
von TSR-Programmen. Das oben erwähnte Buch "Interrupt-Programmierung in QBasic"
zeigt an einem konkreten Programmbeispiel, wie man ein TSR-Programm mit Hilfe
von P.D.Q erstellen kann.
Autor von P.D.Q ist der QB-Gigant Ethan Winer. Auf Ethan's Webseite
www.ethanwiner.com steht eine Testversion von P.D.Q. zum Download bereit. Dort kannst
Du auch die Vollversion von P.D.Q. erwerben, allerdings zu dem sehr happigen
Preis von $ 149,-
Ein TSR-Programm zu schreiben, ist eine extrem komplexe Sache, die meist in
Assemblersprache oder unter Verwendung von Assemblerroutinen bewältigt wird.
Answer 3
~~~~~~~~~~~~~~~
[ from The Official FidoNet Quick Basic Echo's FAQ, Edited by Greg Easthom (
greg_easthom*bandmaster.bc.ca ), Dec
15, 1999 ]
CAN I CREATE A TSR IN QB?
The real question is, do you want to use external libraries, or do you want
to use a language other than QuickBasic? If your answer is "neither," then you
can't do it very easily. But as to the libraries, here's what Dave Shea has to
say:
Two [methods of forming TSRs] I have been informed of are TSRV21.ZIP and
PDQ.
TSRV21.ZIP can be picked up from:
www.cdrom.com/pub/simtelnet/msdos/qbasic
Apparently, this program works, but not very well. You can't deactivate the
TSR once loaded, it takes up a lot of memory, you can't call it from the command
line, and you can't run a compiled QB program when the TSR is loaded. And they
can't be unloaded.
A better option might be PDQ by Crescent Software. Unfortunately, the
Crescent Division has shifted strictly to Visual Basic. However, Ethan Winer has
started up a new Software company to continue support of his DOS based
libraries, etc. It's unclear exactly WHO holds the rights to PDQ, so here's
information on both companies.
FULL MOON SOFTWARE
34 Cedar Vale Drive
New Milford .................... Tel 860-350-8188
CT 06776 ....................... Fax 860-350-6130
CRESCENT, division of Progress Software Corporation
11 Bailey Avenue
Ridgefield....................... Tel 203-438-5300
CT 06877....................... Fax 203-431-4626
Compuserve 70662,2605
The latest version of PDQ is 3.12, and you should expect to pay somewhere in
the range of $150 for it.
Another option is a program called TSRBasic. Harry Hickey says that it's just
an interpreter, not a true compiler. In other words, your programs will just run
in the environment of TSRBasic. Matt Roberts adds, though, that it *will* create
executable programs, although "the whole blessed interpreter" will be included
with your source code. In other words, a very simple program will be a
relatively large executable program. Matt also says that TSRBasic is very slow
with graphics, and that, to his knowledge, the author is not available to be
contacted. If you're interested, Mike Meyer says that you can find it by
searching the Web at http://www.shareware.com for
TSRBasic.