12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- {
- $Id$
- This file is part of the Free Pascal run time library.
- Copyright (c) 1993,97 by the Free Pascal development team.
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- var
- defaultfontdata : array[0..2047] of byte;
- function getfontpointer(b : byte):longint;
- begin
- dregs.RealSS:=0;
- dregs.RealSP:=0;
- dregs.RealEAX:=$1130;
- dregs.RealEBX:=longint(b shl 8);
- RealIntr($10,dregs);
- getfontpointer:=(longint(dregs.RealES) shl 4) + dregs.RealEBP and $FFFF;
- end;
- procedure getdefaultfont;
- var Sel : Word;
- linaddr : longint;
- begin
- { 8x8-Defaultfont aus BIOS laden }
- if isDPMI then begin
- SEL:=allocate_ldt_descriptors(1);
- linaddr:=getfontpointer(3);
- { I got problems because the fonts were at real mode segment $ffff
- so the address is above 1Mo and thus not locked !! }
- if linaddr+1024>$100000 then
- linaddr:=get_linear_addr(linaddr,1024);
- Set_segment_base_address(SEL,linaddr);
- Set_segment_limit(SEL,1024);
- movelong(sel,@defaultfontdata[0],$3FF);
- linaddr:=getfontpointer(4);
- if linaddr+1024>$100000 then
- linaddr:=get_linear_addr(linaddr,1024);
- Set_segment_base_address(SEL,linaddr);
- Set_segment_limit(SEL,1024);
- movelong(sel,@defaultfontdata[1024],$3FF);
- free_ldt_descriptor(SEL);
- end else begin
- move(pointer(getfontpointer(3)+core)^,defaultfontdata[0],1024);
- move(pointer(getfontpointer(4)+core)^,defaultfontdata[1024],1024);
- end;
- end;
-
- {
- $Log$
- Revision 1.1 1998-03-25 11:18:42 root
- Initial revision
- Revision 1.3 1998/01/26 11:58:02 michael
- + Added log at the end
-
- Working file: rtl/dos/ppi/font.ppi
- description:
- ----------------------------
- revision 1.2
- date: 1997/12/01 12:21:29; author: michael; state: Exp; lines: +14 -0
- + added copyright reference in header.
- ----------------------------
- revision 1.1
- date: 1997/11/27 08:33:51; author: michael; state: Exp;
- Initial revision
- ----------------------------
- revision 1.1.1.1
- date: 1997/11/27 08:33:51; author: michael; state: Exp; lines: +0 -0
- FPC RTL CVS start
- =============================================================================
- }
|