[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]
{
How does Norton defeat the one vertical scan line dividing its
characters in order to write their alphanumeric menu screens? I have a
"user-font" which loads successfully into vga display memory using tp7:
}
type
bytearray = array[0..maxbytes] of byte;
var
fontarray : bytearray; { character byte array }
procedure wrfont(input : bytearray; blknum, numline : byte); assembler;
{ "input" is an array containing character bit patterns (8x16 character)
"blknum" is the block number
"numline" is the number of scanlines per character }
asm
push bp { save the base point register }
mov bl, blknum { get block number }
and bl, 07 { limit to 0-7 block number }
les ax, input { point to "C" buffer es:ax }
mov bh, numline { number of bytes per characters }
mov bp, ax { load offset to "C" buffer es:bp }
mov cx, 100h { do for 256 characters }
xor dx, dx { begin at 0 }
mov ax, 1110h { load font }
int 10h { call interrupt }
pop bp { restore the base point register }
end;
{
This procedure loads my user-font correctly into display memory;
however, I still have one verical scanline between my horizontal line
characters making them basically worthless for my purposes (it "draws"
a dashed line like above). I thought when alphanumeric characters are
mapped, you need to leave a bit pattern open along the right and bottom
edges in order to separate the characters. Closing up the right and
bottom edges should "connect" the characters, yet I've found it does
not. I have tried replacing the original ASCII horizontal line
characters and this also fails.
What information do I need? How can I connect my font characters
to display Norton-like menus in alphanumeric 8x16 vga font format (or
for that matter, any two primitive graphic fonts)? Does it make any
difference with which ASCII characters I replace in my table?
By the way, I noticed that Norton's alternate font does have a
small (anal retentively) defect. Their upper right box characters
do not have a "crisp" corner. Each one has a pixel "nub" to the right.
I have a feeling this is a clue to answer my problem but I still
haven't gotten it right. Anyone know?
}
[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]