Wenn Sie häufig speicherresidente Programme testen, kann es nützlich sein, den aktuellen Zustand des PCs z. B. kurz nach dem Systemstart »einzufrieren«. VECT.DEB speichert den momentanen Stand der Interruptvektoren in einer Datei ab, um ihm bei Bedarf wieder restaurieren zu können. Das Programm schreibt den Speicherbereich 0:0 bis 0:400h für die Interrupt-Vektoren 0 bis FFh in die Datei \VECTORS, wenn Sie einen beliebigen Parameter angeben, vorzugsweise »S« für »Sichern«. Ein Aufruf ohne Parameter, lädt die Vektoren aus eben dieser Datei und legt sie wieder im erwähnten Speicherbereich ab. Die Routinen zum Laden und Speichern sind übrigens praktischerweise in einem einzigen Algorithmus zusammengefaßt.
Beabsichtigen Sie z.B., nur vorübergehend neue speicherresidente Programme zu installieren, sichern Sie den aktuellen Systemstatus mit der Eingabe »VECT S«. Die Interruptvektoren landen wie bereits erwähnt in der Datei »\VECTORS«. Wollen Sie die Installation wieder rückgängig machen, geben Sie »VECT« ein. Die residenten Programme bleiben physikalisch zwar im Speicher, zeigen aber keine Wirkung mehr, weil durch sie verbogene Interrupt-Vektoren wieder restauriert werden. Ohne VECT müßten Sie das System neu starten, falls Sie kein anderes Utility zum Löschen speicherresidenter Programme haben. Der Name der Datei, in welche die Interrupt-Vektoren gesichert werden, steht übrigens im hinteren Teil des Listings. Sie können ihn ohne weiteres verändern, da wir die Programmlänge standardmäßig auf 256 Bytes gesetzt haben. Auf der Platte belegt jede Datei sowieso mehr Platz, sodaß dies keine Nachteile mit sich bringt. Sie können die Tabelle also z.B. auch im Verzeichnis \TMP sichern.
Name: | VECT.DEB |
Funktion: | Speichert aktuellen Stand der Interrupt-Vektoren in einer Datei, um sie bei Bedarf wieder zu laden. |
Übersetzung: | DEBUG <VECT.DEB |
Prüfsumme: | 7C46 |
Anwendung: | VECT ## = S: Vektoren speichern
ohne Parameter: Vektoren laden |
Einschränkungen: | ./. |
A XOR SI,SI ;100 CMP By[80],0 ;102 JNZ 10C ;107 MOV SI,100 ;109 MOV DX,147 ;10C XOR CX,CX ;10F MOV AX,3C00 ;111 ADD AX,SI ;114 CALL 12F ;116 MOV BX,AX ;119 XOR DX,DX ;11B MOV DS,DX ;11D MOV CX,400 ;11F MOV AH,40 ;122 SUB AX,SI ;124 CALL 12F ;126 CMP AX,CX ;129 JNZ 134 ;12B MOV AH,3E ;12D INT 21 ;12F JB 134 ;131 RET ;133 MOV DX,13F ;134 PUSH CS ;137 POP DS ;138 MOV AH,9 ;139 INT 21 ;13B INT 20 ;13D DB "Fehler!$" DB "\VECTORS" F 14F 1FF 0 RCX 100 NVECT.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot