Notbremsen für DOS

Systemprogrammierer oder Programmtester haben unter anderem mindestens ein speicherresidentes Programm installiert, das ihnen einen Notausstieg aus abgestürzten, »verirrten« oder in Endlosschleifen »durchdrehenden« Programmen bietet. Wir haben drei speicherresidente Routinen, die alle den selben Zweck, jedoch unterschiedlich komfortabel erfüllen.

SOS1.DEB ist die einfachste und kürzeste Version. Das Programm funktioniert die Hardcopy-Taste »Druck« zur Notausstiegstaste um und ermöglicht in den meisten kritischen Situationen eine Rückkehr auf die DOS-Ebene. Da nach dem Ausstieg häufig Interruptvektoren noch auf das abgebrochene Programm zeigen, sollten Sie den PC bei nächster Gelegenheit neu booten, da sonst mit stark erhöhter Absturzgefahr zu rechnen ist.

SOS2.DEB hingegen hilft dem ab. Das Programm sichert zusätzlich die Interruptvektoren 0 bis 7Fh, um sie im »Notfall« wiederherzustellen. Das System befindet sich nach dem Notausstieg in einem relativ stabilen Zustand, weshalb Sie im Unterschied zu SOS1.DEB nicht unbedingt mit erhöhter Absturzgefahr rechnen müssen. Dadurch können Sie sich problemlos verlorene Daten aus dem Speicher angeln oder in den meisten Fällen sogar ohne Schwierigkeiten weiterarbeiten.

SOS3.DEB ist die komfortabelste Version. Das Programm sichert nicht nur die Interrupt-Vektoren, sondern erlaubt Ihnen zusätzlich die Auswahl von drei verschiedenen Tastenkombinationen, die als Notbremse wirken sollen. Geben Sie bei der Installation von SOS3 keinen Parameter an, oder verwenden Sie »I« oder »Insert«, reagiert das Programm auf die Tastenkombination [Strg] + [Alt] + [Einfg]. Vorsicht! Verwechseln Sie die Tastenfolge nicht mit [Strg] + [Alt] + [Entf]. Der Parameter »P« wie »PrtScr« legt die Notbremse auf die [Druck]-Taste. Verwenden Sie »S« oder »SysReq«, reagiert SOS3 auf die auf Multifunktionstastaturen übliche [S-Abf]- bzw. [Sys Req]-Taste.

Installieren Sie das gewünschte Programm – vorzugsweise SOS3 – am besten in der AUTOEXEC.BAT, und aktivieren Sie es bei Bedarf mit der entsprechenden Tastenkombination.

Name: SOS1.DEB
Funktion: Funktioniert die Hardcopy-Taste zur Notausstiegs- taste um.
Übersetzung: DEBUG <SOS1.DEB
Prüfsumme: 4BE1
Anwendung: SOS1(in kritischen Situationen mit der [Druck]-

Taste Rückkehr auf die DOS-Ebene erzwingen)

Einschränkungen: Da keine Interrrupt-Vektoren gesichert werden, ist mit erhöhter Absturzgefahr zu rechnen.
A
MOV DX,10D          ;100
MOV AX,2505         ;103
INT 21              ;106
MOV DX,112          ;108
INT 27              ;10B
MOV AX,4CFF         ;10D
INT 21              ;110

RCX
12
NSOS1.COM
W
Q
Name: SOS2.DEB
Funktion: Funktioniert die Hardcopy-Taste zur Notbremse um und rettet zusätzlich die Interrupt-Vektoren 0 – 7Fh.
Übersetzung: DEBUG <SOS2.DEB
Prüfsumme: 4454
Anwendung: SOS2(in kritischen Situationen mit der [Druck]-

Taste Rückkehr auf die DOS-Ebene erzwingen)

Einschränkungen: ./.
A
MOV DX,11E          ;100
MOV AX,2505         ;103
INT 21              ;106
CALL 112            ;108
REPZ MOVSW          ;10B
MOV DX,32E          ;10D
INT 27              ;110
XOR SI,SI           ;112
MOV DS,SI           ;114
MOV DI,12E          ;116
MOV CX,100          ;119
CLD                 ;11C
RET                 ;11D
CALL 112            ;11E
CS:MOV AX,[DI]      ;121
MOV [SI],AX         ;124
CMPSW               ;126
LOOP 121            ;127
MOV AX,4CFF         ;129
INT 21              ;12C

RCX
2E
NSOS2.COM
W
Q
Name: SOS3.DEB
Funktion: Funktioniert eine von drei möglichen Tastenfolgen zurNotbremse um und sichert zusätzlich die Interrupt-

Vektoren 0 – 7Fh.

Übersetzung: DEBUG <SOS3.DEB
Prüfsumme: 5ECB
Anwendung: SOS3 [Taste]Taste = I: Tastenkombination [Strg] + [Alt] + [Einfg] Taste = P: [Druck]-Taste Taste = S: [S-Abf]-Taste

ohne Parameter: wie I

Einschränkungen: ./.
A
MOV DX,168          ;100
MOV AX,3505         ;103
CMP By[5D],50       ;106
JZ 128              ;10B
MOV DX,141          ;10D
MOV AL,15           ;110
CMP By[5D],53       ;112
JZ 11E              ;117
MOV DX,14B          ;119
MOV AL,9            ;11C
INT 21              ;11E
MOV [15D],BX        ;120
MOV [15F],ES        ;124
MOV AH,25           ;128
INT 21              ;12A
LES DI,[17E]        ;12C
ES:MOV AX,[DI]      ;130
MOV [DI+182],AX     ;133
SUB DI,2            ;137
JNB 130             ;13A
MOV DX,382          ;13C
INT 27              ;13F
CMP AX,8500         ;141
JZ 168              ;144
CS:JMP FAR [15D]    ;146
PUSH AX             ;14B
PUSH DS             ;14C
XOR AX,AX           ;14D
MOV DS,AX           ;14F
MOV AH,[417]        ;151
POP DS              ;155
AND AH,F            ;156
IN AL,60            ;159
PUSHF               ;15B
CALL 0:0            ;15C
CMP AX,C52          ;161
JZ 168              ;164
POP AX              ;166
IRET                ;167
CS:LDS DI,[17E]     ;168
CS:MOV AX,[DI+182]  ;16D
MOV [DI],AX         ;172
SUB DI,2            ;174
JNB 16D             ;177
MOV AX,4CFF         ;179
INT 21              ;17C
DW 1FE,0

RCX
82
NSOS3.COM
W
Q

Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot