Rahmen in DOS zeichnen

Für viele Anwender ist es schon lange ein großes Ärgernis, daß die oftmals so praktischen Linienzeichen nicht direkt über die Tastatur erreichbar sind. Das Zeichnen eines einfachen Rahmens um einen Text wird so leicht zu einem uferlosen Unterfangen, denn die einzige Möglichkeit, ein Rahmenzeichen einzugeben, besteht bislang nur über die »Alt-Nummernblock«-Methode. Neben einiger Fingerfertigkeit, Konzentration und Zeit benötigen Sie außerdem eine ASCII-Tabelle, um den dreistelligen Code jedes einzelnen Zeichens nachschlagen zu können. Mit RAHMEN.DEB werden selbst komplexeste Liniengrafiken zum Kinderspiel. Das residente Programm ersetzt auf Kommando die Ziffern des Nummernblocks durch die gewünschten Linienzeichen. Die Cursor-Steuerungsfunktionen bleiben unverändert. Mit der Tastenkombination [Strg] + [Num] beeinflussen Sie den Linientyp. Vier davon stehen in einem »Ring« zur Auswahl – jedes Drücken von [Strg] + [Num] wählt den nächsten Linientyp. Nach der 5. Umschaltung ist RAHMEN wieder inaktiv und der Nummernblock liefert Ihnen wie gewohnt die üblichen Ziffern. Die genaue Belegung der Tasten können Sie unserer Grafik entnehmen. Achten Sie bei der Aktivierung von RAHMEN darauf, daß der Tastaturtreiber vorher installiert wurde. RAHMEN schleift sich in den Keyboard-Interrupt 9 ein und fahndet nach jedem Tastendruck im Tastaturpuffer nach den Codes der Zifferntasten des Nummernblocks, um diese entsprechend auszutauschen.

((Bild in Arbeit))

Name: RAHMEN.DEB
Funktion: Ersetzt die Ziffern des Nummernblocks durch Rahmenzeichen.
Übersetzung: DEBUG <RAHMEN.DEB
Prüfsumme: 4969
Anwendung: RAHMENTastenkombination [Strg] + [Num] = Umschaltung zwischen vier verschiedenen Linientypen und den

Ziffern

Einschränkungen: Der Tastaturtreiber muß vor der Aktivierung von RAHMEN installiert sein.
A
MOV AX,3509         ;100
INT 21              ;103
MOV [144],BX        ;105
MOV [146],ES        ;109
MOV DX,11A          ;10D
MOV AX,2509         ;110
INT 21              ;113
MOV DX,1E2          ;115
INT 27              ;118
PUSH DS             ;11A
PUSH BX             ;11B
PUSH AX             ;11C
MOV AX,40           ;11D
MOV DS,AX           ;120
IN AL,60            ;122
CMP AL,45           ;124
JNZ 13E             ;126
TEST By[17],4       ;128
JZ 13E              ;12D
CS:SUB Wo[15C],18   ;12F
JNB 13E             ;135
CS:MOV Wo[15C],60   ;137
MOV BX,[1C]         ;13E
PUSHF               ;142
CALL 0:0            ;143
MOV AX,[BX]         ;148
PUSH BX             ;14A
MOV BX,18           ;14B
SUB BX,2            ;14E
JB 163              ;151
CS:CMP AX,[BX+16A]  ;153
JNZ 14E             ;158
DW C381,0
CS:MOV AX,[BX+16A]  ;15E
POP BX              ;163
MOV [BX],AX         ;164
POP AX              ;166
POP BX              ;167
POP DS              ;168
IRET                ;169
DW 4737,4838,4939
DW 4B34,4C35,4D36
DW 4F31,5032,5133
DW 532C,532E,5230
DW D6,D2,B7,C7,D7,B6
DW D3,D0,BD,BA,BA,C4
DW D5,D1,B8,C6,D8,B5
DW D4,CF,BE,B3,B3,CD
DW C9,CB,BB,CC,CE,B9
DW C8,CA,BC,BA,BA,CD
DW DA,C2,BF,C3,C5,B4
DW C0,C1,D9,B3,B3,C4

RCX
E2
NRAHMEN.COM
W
Q

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