ANSI.SYS in DOS ein- und aussschalten

Wenn Sie selbstgeschriebene Programme testen wollen, die ihre Bildschirmausgaben auch ohne ANSI.SYS korrekt meistern müssen, brauchen Sie eine Möglichkeit, ANSI.SYS vorübergehend abzuschalten. Sie könnten natürlich die betreffende Zeile aus der CONFIG.SYS entfernen – NOANSI ist jedoch eleganter. Das Programm sichert den Interruptvektor 29h, über den sämtliche Ausgaben auf den Bildschirm laufen. Wenn ANSI.SYS installiert ist, befindet sich dort eine Routine, die die Interpretation der Escape-Sequenzen vornimmt. Statt dieser installiert NOANSI eine eigene Routine, die nun jedes Zeichen direkt über das BIOS, also ohne weitere Interpretation auf den Bildschirm ausgibt.

Das Program reagiert nur auf Bildschirmausgaben, nicht aber auf Eingaben. Deshalb bleiben z. B. alle bereits vorhandenen Tastenumbelegungen weiterhin wirksam. Da überhaupt keine Bildschirm-Steueranweisungen mehr interpretiert werden, funktioniert übrigens auch der interne DOS-Befehl CLS nicht mehr. Statt des üblichen Bildschirmlöschens, gelangt lediglich die entsprechende Steuersequenz auf den Monitor. Sind Sie auf CLS angewiesen, verwenden Sie einfach unseren Tip SETVIDEO.DEB oder den externen DOS-Befehl MODE. Wenn Sie ANSI.SYS wieder aktivieren wollen, verwenden Sie ANSI.DEB. Das Programm setzt den gesicherten Interruptvektor wieder auf den alten Wert und »kickt« NOANSI aus dem Speicher.

Name: NOANSI.DEB
Funktion: Disaktiviert den Konsolentreiber ANSI.SYS.
Übersetzung: DEBUG <NOANSI.DEB
Prüfsumme: D17E
Anwendung: NOANSI
Einschränkungen: ISANSI erkennt nicht, ob ANSI.SYS mit NOANSI disaktiviert wurde.
A
MOV AX,3529         ;100
INT 21              ;103
MOV [80],BX         ;105
MOV [82],ES         ;109
MOV AX,2529         ;10D
MOV DX,11A          ;110
INT 21              ;113
MOV DX,121          ;115
INT 27              ;118
PUSH AX             ;11A
MOV AH,E            ;11B
INT 10              ;11D
POP AX              ;11F
IRET                ;120

RCX
21
NNOANSI.COM
W
Q
Name: ANSI.DEB
Funktion: Reaktiviert den per NOANSI abgeschalteten Konsolen- treiber ANSI.SYS.
Übersetzung: DEBUG <ANSI.DEB
Prüfsumme: DE7E
Anwendung: ANSI
Einschränkungen: ./.
A
MOV AX,3529         ;100
INT 21              ;103
ES:CMP Wo[BX],B450  ;105
JNZ 122             ;10A
ES:LDS DX,[80]      ;10C
MOV AX,2529         ;111
INT 21              ;114
CALL 11E            ;116
ES:MOV ES,[2C]      ;119
MOV AH,49           ;11E
INT 21              ;120
RET                 ;122

RCX
23
NANSI_ON.COM
W
Q

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