=========================================================================== BBS: Canada Remote Systems Date: 07-02-93 (14:00) Number: 29054 From: SEAN PALMER Refer#: NONE To: FRANCIS BURIANEK Recvd: NO Subj: DOS FONT Conf: (1221) F-PASCAL --------------------------------------------------------------------------- FB>Would You know, where the Video Bios Fonts are located at? (address), FB>or a way to access using an interrupt? I pulled this off the echo a while back... Type FontBlock = 0..7; CharSetType = (INT1F, INT43, ROM8x14, ROM8x8lo, ROM8x8hi, ROM9x14, ROM8x16, ROM9x16); { Get a pointer to one of the eight resident VGA fonts } Function GetFontPtr(charset : CharSetType) : Pointer; Assembler;ASM MOV BH, charset MOV AX,$1130 INT $10 MOV DX, ES XCHG AX, BP end; { Get font block index of current (resident) and alternate character set. Up to two fonts can be active at the same time } Procedure GetFontBlock(Var primary, secondary : FontBlock); Assembler;ASM { Get character map select register: (VGA sequencer port 3C4h/3C5h index 3) 7 6 5 4 3 2 1 0 | | | | | | | | | | +--+-- Primary font (lower 2 bits) | | +--+-------- Secondary font (lower 2 bits) | +-------------- Primary font (high bit) +----------------- Secondary font (high bit) } MOV AL, 3 MOV DX,$3C4 OUT DX, AL INC DX IN AL, DX MOV BL, AL PUSH AX { Get secondary font number: add up bits 5, 3 and 2 } SHR AL, 1 SHR AL, 1 AND AL, 3 TEST BL,$20 JZ @1 ADD AL, 4 @1: LES DI, secondary STOSB { Get primary font number: add up bits 4, 1 and 0 } POP AX AND AL, 3 TEST BL,$10 JZ @2 ADD AL, 4 @2: LES DI, primary STOSB end; { Store the font block index } Procedure SetFontBlock(primary, secondary : FontBlock); Assembler; Const MapPrimTable : Array[0..7] of Byte = ($00, $01, $02, $03,$10, $11, $12, $13); MapSecTable : Array[0..7] of Byte = ($00, $04, $08, $0C,$20, $24, $28, $2C); ASM MOV AL, primary LEA BX, MapPrimTable XLAT MOV AH, AL MOV AL, secondary LEA BX, MapSecTable XLAT ADD AL, AH MOV BL, AL { Set block specifier } MOV AX,$1103 INT $10 end; * OLX 2.2 * If at first you succeed, hide your astonishment... --- Maximus 2.01wb * Origin: >>> Sun Mountain BBS <<< (303)-665-6922 (1:104/123)