home *** CD-ROM | disk | FTP | other *** search
- (* ====================================================== *)
- (* 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 *)
-