DOS-PC als Wecker nutzen

Die meisten PCs sind mit einer Echtzeituhr ausgerüstet, die zwar nicht so genau wie eine Atomuhr geht, ansonsten aber ein recht nützliches Ding ist. Obwohl Sie sich ohne größeren Aufwand z. B. mit CLOCK.DEB die aktuelle Uhrzeit ständig auf dem Bildschirm anzeigen lassen können, fehlt außerhalb riesiger residenter Utilities wie »Sidekick« eine Funktion bisher vollständig: Zu einem gewünschten Zeitpunkt einen Alarm auslösen. ALARM.DEB klinkt sich in den Interrupt 8 ein und gibt zum festgelegten Zeitpunkt ein allmählich immer aufdringlicher werdendes akustisches Signal von sich, damit Sie auch bei kurzer Abwesenheit an einen wichtigen Termin erinnert werden. Der Ton wird immer intensiver, bis er nach rund 1,5 Minuten verstummt.

Wenn das Alarmsignal einmal ertönt, können Sie per Tastenkombination [Strg] + [Untbr] ALARM Ihre Zurkenntnisnahme mitteilen, worauf die »Ruhestörung« beendet ist. Vorsicht, der Tastendruck kann auch gleichzeitig auf die übliche Weise das laufende Programm abbrechen – gehen Sie zur Not per »Shell« ins DOS, bevor Sie eine wichtige Anwendung unterbrechen. Sie können mehrere Alarmzeiten in beliebiger Reihenfolge setzen, indem Sie ALARM einfach mehrmals in den Speicher laden. Vorzeitiges Abschalten – also bevor die Alarmzeit überhaupt erreicht wurde – ist mit NOALARM.DEB möglich. Das Programm diskaktiviert den jeweils zuletzt eingegebenen Alarm. Genau wie bei CLOCK müssen Sie leichte Rechenungenauigkeiten, die bis zu 20 Sekunden Unterschied ausmachen, in Kauf nehmen. Kaum eine Echtzeituhr läuft jedoch genauer.

Name: ALARM.DEB
Funktion: Schlägt zu einem bestimmten Zeitpunkt akustisch Alarm.
Übersetzung: DEBUG <ALARM.DEB
Prüfsumme: 0A32
Anwendung: ALARM S:MS = Stunde M = Minute Ertönenden Alarm ausschalten mit [Strg] + [Untbr]

Alarm vorzeitig ausschalten mit NOALARM

Einschränkungen: Ein Zeitunterschied bis zu 20 Sekunden ist aufgrund leichter Rechenungenauigkeiten möglich.
A
MOV SI,81           ;100
CALL 19E            ;103
MOV [145],AH        ;106
CALL 19E            ;10A
MOV AL,AH           ;10D
CBW                 ;10F
MUL Wo[13B]         ;110
MOV [13B],AX        ;114
MOV AX,3508         ;117
INT 21              ;11A
MOV [19A],BX        ;11C
MOV [19C],ES        ;120
MOV AX,2508         ;124
MOV DX,131          ;127
INT 21              ;12A
MOV DX,19E          ;12C
INT 27              ;12F
PUSH DS             ;131
PUSH AX             ;132
XOR AX,AX           ;133
MOV DS,AX           ;135
MOV AX,[46C]        ;137
SUB AX,444          ;13A
MOV AH,AL           ;13D
JNZ 159             ;13F
CMP By[46E],0       ;141
JNZ 159             ;146
CS:MOV By[159],F9   ;148
AND By[471],7F      ;14E
CS:MOV By[180],40   ;153
CLC                 ;159
JNB 197             ;15A
IN AL,61            ;15C
AND AL,FC           ;15E
OUT 61,AL           ;160
TEST By[471],80     ;162
JNZ 177             ;167
CMP AH,0            ;169
JNZ 17E             ;16C
CS:SHR By[180],1    ;16E
JNZ 17E             ;173
JB 17E              ;175
CS:DEC By[159]      ;177
JMP 197             ;17C
TEST AH,40          ;17E
JNZ 197             ;181
OR AL,3             ;183
OUT 61,AL           ;185
CS:XOR By[194],8    ;187
MOV AL,B6           ;18D
OUT 43,AL           ;18F
OUT 42,AL           ;191
MOV AL,C            ;193
OUT 42,AL           ;195
POP AX              ;197
POP DS              ;198
JMP 0:0             ;199
XOR AX,AX           ;19E
INC SI              ;1A0
AAD                 ;1A1
MOV AH,AL           ;1A3
MOV AL,[SI]         ;1A5
SUB AL,30           ;1A7
JB 1AF              ;1A9
CMP AL,9            ;1AB
JBE 1A0             ;1AD
RET                 ;1AF

RCX
B0
NALARM.COM
W
Q
Name: NOALARM.DEB
Funktion: Disaktiviert den zuletzt installierten Alarm.
Übersetzung: DEBUG <NOALARM.DEB
Prüfsumme: D038
Anwendung: NOALARM
Einschränkungen: Ergibt nur mit ALARM.DEB einen Sinn.
A
MOV AX,3508         ;100
INT 21              ;103
CMP BX,131          ;105
JNZ 121             ;109
ES:LDS DX,[19A]     ;10B
MOV AX,2508         ;110
INT 21              ;113
CALL 11D            ;115
ES:MOV ES,[2C]      ;118
MOV AH,49           ;11D
INT 21              ;11F
RET                 ;121

RCX
22
NNOALARM.COM
W 
Q

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