GET.DEB wartet genau wie ASK auf die Eingabe eines bestimmten Zeichens, erlaubt jedoch auch die Verwendung von Funktionstasten. Die Syntax entspricht genau der von KEYIN.DEB – die Wirkung ist mit der von ASK identisch. So lassen sich mit GET z. B. die Funktions- oder Cursortasten und auch beliebige Kombinationen mit <Strg> sowie andere erweiterte Tasten abfragen. Erweiterte Tasten leiten Sie mit » \0« ein, Buchstaben, Zeichen oder Ziffern können Sie direkt angeben. »GET \13\27« wartet zum Beispiel auf die Eingabe der Return- oder Escape-Taste, »GET ABC\075« auf A, B, C oder Cursor-Links. Kennen Sie die vom Tastaturtreiber verwendeten Codes nicht, so hilft Ihnen unser Tip »BIOS-Tastaturcodes ermitteln« weiter. Die hexadezimalen Codes, die Sie dort erhalten, können Sie mit HEX2DEZ.DEB oder CONVERT.DEB ins Dezimalformat umwandeln.
GET beinhaltet genau wie KEYIN.DEB einen kleinen »Interpreter«, der es Ihnen ermöglicht, jede beliebige Tastenkombination auszuwerten. Der Interpreter berücksichtigt Escape-Sequenzen, die durch das Zeichen » \ « eingeleitet werden und setzt die nachfolgende Dezimalzahl in den zu erwartenden Tastendruck um. Damit GET bei der Aufeinanderfolge von Escape-Folgen und Zahlen nicht durcheinandergerät, bietet es die Freiheit, jede Escape-Sequenz durch ein Leerzeichen abzuschließen. Folgt ein anderes Zeichen auf die Sequenz, berücksichtigt GET auch dieses. Kommt nach dem umgekehrten Schrägstrich keine Ziffer, behandelt der Interpreter die entsprechende Taste direkt. Das Warten auf den Schrägstrich » \ « selbst, können Sie somit über »GET \\« einleiten. Natürlich funktioniert dies auch mit »GET \92«, da 92 der ASCII-Wert des Zeichens » \ « ist. Um das Eingeben der Umleitungszeichen » < «, » > « und » | « zu ermöglichen, ignoriert GET alle doppelten Anführungszeichen in der Kommandozeile. Wollen Sie zum Beispiel das Warten auf das Zeichen » | « veranlassen, geben Sie einfach »GET „|“« ein. Ohne die Anführungszeichen würde DOS versuchen, das »Piping« bereits beim Aufruf von GET auszuführen. Benötigen Sie das Anführungszeichen selbst, bieten sich analog zu » \ « die beiden Möglichkeiten » GET \“« oder »GET \34« an. Analog zu ASK.DEB zeigt GET die eingegebene Taste auf dem Bildschirm an, allerdings nur, solange der ASCII-Code größer oder gleich 32 ist. Unerwünschte Steuerzeichen werden unterdrückt. Bei Bedarf können Sie die Ausgabe auch ins »Nichts« umleiten (>NUL.
Name: | GET.DEB |
Funktion: | Wartet auf die Bestätigung einer bestimmten Taste. |
Übersetzung: | DEBUG <GET.DEB |
Prüfsumme: | BE81 |
Anwendung: | GET …IF ERRORLEVEL # … = Liste von Tasten, die akzeptiert werden sollen Besondere Zeichenfolgen: \n: n = ASCII-Wert einer Taste (dezimal) \0n: n = erweiterter Code einer Taste (dezimal) \\: rückwärtiger Schrägstrich \“: Anführungszeichen „: wird ignoriert
# = Position der spezifizierten Taste in der Liste |
Einschränkungen: | ./. |
A MOV AH,0 ;100 INT 16 ;102 AND AX,AX ;104 JZ 16B ;106 MOV DX,AX ;108 MOV SI,81 ;10A XOR DI,DI ;10D CALL 164 ;10F JZ 16B ;112 CALL 164 ;114 JZ 100 ;117 CMP AL,22 ;119 JZ 114 ;11B CMP AL,5C ;11D JNZ 14E ;11F CALL 164 ;121 XOR CX,CX ;124 MOV AH,0 ;126 MOV BL,AL ;128 SUB AL,30 ;12A JB 13D ;12C CMP AL,9 ;12E JA 13D ;130 AAD ;132 MOV AH,AL ;134 CALL 164 ;136 LOOPNZ 12A ;139 JMP 144 ;13B JCXZ 14C ;13D CMP AL,F0 ;13F JZ 144 ;141 DEC SI ;143 XCHG BL,AL ;144 SUB AL,30 ;146 JZ 150 ;148 MOV BL,AH ;14A MOV AL,BL ;14C MOV AH,DH ;14E INC DI ;150 CMP AX,DX ;151 JNZ 114 ;153 CMP DL,20 ;155 JB 15E ;158 MOV AH,2 ;15A INT 21 ;15C LEA AX,[DI+4C00] ;15E INT 21 ;162 MOV AL,[SI] ;164 CMP AL,D ;166 JZ 16B ;168 INC SI ;16A RET ;16B RCX 6C NGET.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot