Eine ausgeklügelte Fenstertechnik haben wir zwar noch nicht parat – Eindruck können Sie jedoch mit dem folgenden Programm genauso schinden: WINDOW.DEB konstruiert in Sekundenbruchteilen ein Rechteck mit beliebiger Rahmenform. Das Programm beginnt den gewählten Rahmen links über der aktuellen Cursorposition, die Sie zuvor bei Bedarf mit LOCATE.DEB auf die gewünschten Koordinaten setzen können. Die Position bleibt erhalten, sodaß der folgende Ausgabebefehl, z. B. ECHO oder SAY, genau im Fenster zu schreiben beginnt. Das folgende Beispielprogramm, zeichnet in der Mitte des Bildschirms eine Box mit doppeltem Rahmen. Die Hintergrundfarbe wird blau, die Rahmenfarbe hellgrün. Danach landet ein mischfarbiger Beispieltext in der linken oberen Ecke des Rechtecks:
@ECHO OFF LOCATE 10,20 WINDOW B:5,40,ig,b COLOR BG,B ECHO Das ist eine Beispielbox...
Name: | WINDOW.DEB |
Funktion: | Konstruiert ein Rechteck mit beliebiger Rahmenform und -farbe. |
Übersetzung: | DEBUG <WINDOW.DEB |
Prüfsumme: | 5667 |
Anwendung: | WINDOW T:H,BR[VG,HG]T = Typ: A = ASCII (Rahmen ohne erweiterte Grafikzeichen), C = leer (für einfache Farbbox ohne Rahmen) D = doppelt, E = einfach B oder F = gemischt H = Höhe, BR = Breite (Innenmaße) VG = Vordergrundfarbe (r, g, b, i, s) HG = Hintergrundfarbe (r, g, b, ?, s) r = rot, g = grün, b = blau, i = intensiv, ? = blinken s = schwarz (Dummy); Mischfarben sind möglich. |
Einschränkungen: | ./. |
A CLD ;100 MOV AH,F ;101 INT 10 ;103 MOV AH,3 ;105 INT 10 ;107 PUSH DX ;109 SUB DX,100 ;10A DEC DL ;10E JNS 114 ;110 MOV DL,0 ;112 MOV SI,84 ;114 CALL 187 ;117 MOV [80],AH ;11A CALL 187 ;11E MOV [169],AH ;121 CMP By[SI-1],D ;125 JZ 13D ;129 CALL 193 ;12B MOV BL,AH ;12E CALL 193 ;130 MOV AL,10 ;133 MUL AH ;135 OR BL,AL ;137 DEC By[181] ;139 MOV AL,9 ;13D MUL By[5C] ;13F MOV SI,1AE ;143 ADD SI,AX ;146 CALL 162 ;148 CALL 162 ;14B DEC By[80] ;14E JZ 159 ;152 SUB SI,3 ;154 JMP 14B ;157 CALL 162 ;159 POP DX ;15C MOV AH,2 ;15D INT 10 ;15F RET ;161 PUSH DX ;162 LODSB ;163 CALL 176 ;164 LODSB ;167 MOV CX,0 ;168 CALL 179 ;16B LODSB ;16E CALL 176 ;16F POP DX ;172 INC DH ;173 RET ;175 MOV CX,1 ;176 MOV [180],AL ;179 CALL 15D ;17C MOV AX,A00 ;17F INT 10 ;182 ADD DL,CL ;184 RET ;186 XOR AX,AX ;187 AAD ;189 MOV AH,AL ;18B LODSB ;18D SUB AL,30 ;18E JNB 189 ;190 RET ;192 MOV AH,0 ;193 LODSB ;195 MOV DI,1A5 ;196 MOV CX,9 ;199 REPNZ SCASB ;19C JNZ 192 ;19E OR AH,[DI+8] ;1A0 JMP 195 ;1A3 DB "RGBI?rgbi" DB 4,2,1,8,8,4,2,1,8 DB "+-+| |+-+",D5,CD,B8 DB B3,20,B3,D4,CD,BE DB " " DB C9,CD,BB,BA,20,BA DB C8,CD,BC,DA,C4,BF DB B3,20,B3,C0,C4,D9 DB D6,C4,B7,BA,20,BA DB D3,C4,BD RCX ED NWINDOW.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot