home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 06 / grdlagen / cdemo2.pas < prev    next >
Pascal/Delphi Source File  |  1990-04-12  |  2KB  |  66 lines

  1. (* ====================================================== *)
  2. (*                      CDEMO2.PAS                        *)
  3. (*               EGA/VGA-BIOS-Serie Teil 3                *)
  4. (*  Unterstreichen, Fett- und Dünnschrift im Grafikmodus  *)
  5. (*           (C) 1990 Matthias Uphoff & TOOLBOX           *)
  6. (* ====================================================== *)
  7.  
  8. USES Dos, Crt, Bios3;
  9.  
  10. CONST VMode = $10;   (* EGA-Grafik 640x350, 16 Farben *)
  11.       CSize = 14;    (* Zeichenhöhe *)
  12.       Rows  = 25;    (* darstellbare Textzeilen *)
  13.  
  14. TYPE CharMatrix = ARRAY [0..CSize-1] OF BYTE;
  15.      FontType = ARRAY [0..255] OF CharMatrix;
  16.  
  17. VAR i,j:  WORD;
  18.     p:    Pointer;      (* Zeiger auf ROM-Font *)
  19.     Font1,
  20.     Font2,
  21.     Font3: FontType;    (* Arrays für alternative Fonts *)
  22.  
  23. PROCEDURE SetVideoMode(Mode: BYTE);
  24.    (* Initialisiert Videomodus mit der Nr. Mode *)
  25.    VAR R: Registers;
  26. BEGIN
  27.   R.AH := 0;            (* Funktionsnummer *)
  28.   R.AL := Mode;
  29.   Intr($10,R);
  30. END;
  31.  
  32. BEGIN
  33.   DirectVideo := FALSE;     (* Crt-Textausgabe über BIOS !*)
  34.   WindMax := $FFFF;         (* Crt-Scrolling unterbinden  *)
  35.   TextColor(White);
  36.   SetVideoMode(VMode);      (* Grafikmodus initialisieren *)
  37.   p := FontAddr(ROM8x14);   (* 8x14-Font ins RAM kopieren *)
  38.   Move(p^,Font1,CSize*256);
  39.   Move(p^,Font2,CSize*256);
  40.   Move(p^,Font3,CSize*256);
  41.   (* --- Fett-, Dünnschrift u. Unterstreichen erzeugen ---*)
  42.   FOR i := 0 TO 255 DO BEGIN
  43.     Font1[i][CSize-1] := $FF;
  44.     FOR j := 0 TO CharSize-1 DO BEGIN
  45.       Font2[i][j] := Font2[i][j] OR (Font2[i][j] SHR 1);
  46.       Font3[i][j] := Font3[i][j] AND (Font3[i][j] SHR 1);
  47.     END;
  48.   END;
  49.   (* -- Verschieden Schriftarten durch Fontumschaltung -- *)
  50.   FOR i := 1 TO 25 DO BEGIN
  51.     CASE i MOD 4 OF
  52.       0: UserGraFont(CSize,Rows,p^);     (* normal *)
  53.       1:;(* UserGrafont(CSize,Rows,Font1);*)  (* unterstrichen *)
  54.       2:; (* UserGrafont(CSize,Rows,Font2);*)  (* fett *)
  55.       3: UserGrafont(CSize,Rows,Font3);  (* dünn *)
  56.     END;
  57.     GotoXY(i+5,i);
  58.     Write('Variable BIOS-Textausgabe im Textmodus');
  59.   END;
  60.   REPEAT UNTIL KeyPressed;
  61.   SetVideoMode(3);
  62. END.
  63.  
  64. (* ====================================================== *)
  65. (*                    Ende CDEMO2.PAS                     *)
  66.