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