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.

[ The QBasic-MonsterFAQ --- Start Page: www.antonis.de/faq ]