home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1990
/
06
/
grdlagen
/
cdemo2.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1990-04-12
|
2KB
|
66 lines
(* ====================================================== *)
(* CDEMO2.PAS *)
(* EGA/VGA-BIOS-Serie Teil 3 *)
(* Unterstreichen, Fett- und Dünnschrift im Grafikmodus *)
(* (C) 1990 Matthias Uphoff & TOOLBOX *)
(* ====================================================== *)
USES Dos, Crt, Bios3;
CONST VMode = $10; (* EGA-Grafik 640x350, 16 Farben *)
CSize = 14; (* Zeichenhöhe *)
Rows = 25; (* darstellbare Textzeilen *)
TYPE CharMatrix = ARRAY [0..CSize-1] OF BYTE;
FontType = ARRAY [0..255] OF CharMatrix;
VAR i,j: WORD;
p: Pointer; (* Zeiger auf ROM-Font *)
Font1,
Font2,
Font3: FontType; (* Arrays für alternative Fonts *)
PROCEDURE SetVideoMode(Mode: BYTE);
(* Initialisiert Videomodus mit der Nr. Mode *)
VAR R: Registers;
BEGIN
R.AH := 0; (* Funktionsnummer *)
R.AL := Mode;
Intr($10,R);
END;
BEGIN
DirectVideo := FALSE; (* Crt-Textausgabe über BIOS !*)
WindMax := $FFFF; (* Crt-Scrolling unterbinden *)
TextColor(White);
SetVideoMode(VMode); (* Grafikmodus initialisieren *)
p := FontAddr(ROM8x14); (* 8x14-Font ins RAM kopieren *)
Move(p^,Font1,CSize*256);
Move(p^,Font2,CSize*256);
Move(p^,Font3,CSize*256);
(* --- Fett-, Dünnschrift u. Unterstreichen erzeugen ---*)
FOR i := 0 TO 255 DO BEGIN
Font1[i][CSize-1] := $FF;
FOR j := 0 TO CharSize-1 DO BEGIN
Font2[i][j] := Font2[i][j] OR (Font2[i][j] SHR 1);
Font3[i][j] := Font3[i][j] AND (Font3[i][j] SHR 1);
END;
END;
(* -- Verschieden Schriftarten durch Fontumschaltung -- *)
FOR i := 1 TO 25 DO BEGIN
CASE i MOD 4 OF
0: UserGraFont(CSize,Rows,p^); (* normal *)
1:;(* UserGrafont(CSize,Rows,Font1);*) (* unterstrichen *)
2:; (* UserGrafont(CSize,Rows,Font2);*) (* fett *)
3: UserGrafont(CSize,Rows,Font3); (* dünn *)
END;
GotoXY(i+5,i);
Write('Variable BIOS-Textausgabe im Textmodus');
END;
REPEAT UNTIL KeyPressed;
SetVideoMode(3);
END.
(* ====================================================== *)
(* Ende CDEMO2.PAS *)