Ein bestimmtes Zeichen eingeben

ASK.DEB wartet auf die Eingabe eines bestimmten Zeichens. Der Befehl »ASK JjNn« aktzeptiert z. B. lediglich die angegebenen Buchstaben zur Beantwortung der Frage »Ja oder Nein?« und gibt die Position des eingegebenen Zeichens im Parameter als Errorlevel zurück. Andere Zeichen werden ignoriert. Das eingegebene Zeichen gelangt zur Kontrolle auf den Bildschirm und läßt sich, falls es stören sollte, mit » >NUL« unterdrücken. ASK ignoriert außerdem die Funktionstasten komplett. Sind Sie auf sie angewiesen, hilft Ihnen GET weiter. Anstelle der Buchstaben im erwähnten Beispiel können Sie natürlich alle darstellbaren ASCII-Zeichen, einschließlich der Ziffern 0 bis 9 und Grafikzeichen verwenden. Der folgende Stapeljob demonstriert, wie Sie ASK einsetzen können:

@ECHO OFF
ECHO Fortfahren (J/N)?
ASK JjNn
IF ERRORLEVEL 3 GOTO ENDE
ECHO Ein beliebiger Befehl...
:ENDE
Name: ASK.DEB
Funktion: Wartet auf die Eingabe eines bestimmten Zeichens.
Übersetzung: DEBUG <ASK.DEB
Prüfsumme: 8DE6
Anwendung: ASK …IF ERRORLEVEL # … = Liste von Zeichen, die akzeptiert werden sollen

# = Position des Zeichens in der Liste

Einschränkungen: ./.
A
MOV AH,8            ;100
INT 21              ;102
CMP AL,0            ;104
JNZ 10E             ;106
MOV AH,8            ;108
INT 21              ;10A
JMP 100             ;10C
MOV BX,[80]         ;10E
DEC BL              ;112
JZ 100              ;114
CMP AL,[BX+E081]    ;116
JNZ 112             ;11A
MOV DL,AL           ;11C
MOV AH,2            ;11E
INT 21              ;120
LEA AX,[BX+2C00]    ;122
INT 21              ;126

RCX
28
NASK.COM
W
Q

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