home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1990
/
06
/
grdlagen
/
cdemo1.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1990-03-10
|
2KB
|
74 lines
(* ====================================================== *)
(* CDEMO1.PAS *)
(* EGA/VGA-BIOS-Serie Teil 3 *)
(* Exponenten, Fettschrift und Dünnschrift im Textmodus *)
(* (C) 1990 Matthias Uphoff & TOOLBOX *)
(* ====================================================== *)
USES Dos, Crt, Bios3;
CONST CSize = 16; (* Zeichenhöhe, für EGA: 14 *)
TYPE CharMatrix = ARRAY [0..CSize-1] OF BYTE;
FontType = ARRAY [0..255] OF CharMatrix;
VAR i,j: WORD;
p: Pointer; (* Zeiger auf ROM-Font *)
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 (* Main *)
SetVideoMode(3); (* Textmodus initialisieren*)
p := FontAddr(ROM8x16); (* Für EGA: ROM8x14 *)
Move(p^,Font2,CSize*256); (* Fonts ins RAM kopieren *)
Move(p^,Font3,CSize*256);
(* --- Fett- und Dünnschrift erzeugen --- *)
FOR i := 0 TO 255 DO
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;
(* --- Neue Fonts in Block 1,2,3 installieren --- *)
ROMTextFont(ROM8x8,1,FALSE);
UserTextFont(2,CSize,256,0,TRUE,Font2);
UserTextFont(3,CSize,256,0,TRUE,Font3);
(* --- Bildschirm mit Text füllen --- *)
FOR i := 1 TO 25 DO BEGIN
GotoXY(i+4,i);
IF ODD(i) THEN BEGIN
TextColor(7);
Write('Normaler Font (Farbe 7 bzw. Block 0)');
END
ELSE BEGIN
TextColor(15);
Write(
'Alternativer Font (Farbe 15 bzw. Block 1/2/3)');
END;
END;
(* --- Umschaltung des Zeichensatzblocks --- *)
REPEAT
Delay(2000);
SelectBlock(0,1); (* Font 0/1 anzeigen: hochgestellt *)
Delay(2000);
SelectBlock(0,2); (* Font 0/2 anzeigen: Fettschrift *)
Delay(2000);
SelectBlock(0,3); (* Font 0/3 anzeigen: Dünnschrift *)
Delay(2000);
SelectBlock(0,0); (* Nur Font 0 anzeigen: hell/dunkel*)
UNTIL KeyPressed;
SetVideoMode(3);
END.
(* ====================================================== *)
(* Ende CDEMO1.PAS *)