CHARACTER TABLE LAYOUT
======================
COMPATIBILITY NOTE:	This information is applicable to Bold BIOS 2.0 and
			later Bold BIOS versions.

FONT TABLE.

Each symbol is 6x10 pixels.
Here's number of pixels used in 512x256 video mode when
80x25 symbol text mode is applied:

 6 x 80 = 480 pixels (512 - 480 = 32 pixels unused) horizontally
10 x 25 = 250 pixels (256 - 250 =  6 pixels unused) vertically

Only 5x8 pixels from upper-left corner are actually used
to depict symbol. Other pixels are blank.

 543210
9XXXXX_
8XXXXX_
7XXXXX_
6XXXXX_
5XXXXX_
4XXXXX_
3XXXXX_
2XXXXX_
1______
0______

Here X - bit can be used to represent symbol. _ bit is always 0.
A byte is used to store 6 bits of a symbol. 2 rightmost bits in a byte
are always unused.

76543210
UUXXXXXX here U - unused, X - used bits
11111100

Because of 512x256 mode design where panels are horizontally displaced
by 1 bit, (which forms 512 bits from 2 panels each containing 256 bits)
symbol is stored in format which alredy takes care of grouping odd and
even bits to a particular locations in byte.

Bits 765 are bits for the 1st plane, when bits 432 contain 2nd plane bits.

Here's a translation property:

[5][4][3][2][1][0] 		symbol line bitmask

 7  6  5  4  3  2  1  0		byte
[5][3][1][4][2][0] U  U     	U - unused symbols


Here's an example from fonted.c program

#define MXE             6
#define MYE             10
#define MAXEDSYM        224
extern  char    fontab[MAXEDSYM][MYE];
extern  char    symbol[MXE][MYE];
extern char    fmask;

for (i=0 ; i < MYE ; i++)
{
	fmask=0;
	for (j=0 ; j < MXE ; j=j+2) form3bits(j,i); /*Process [5][3][1]*/
	for (j=1 ; j < MXE ; j=j+2) form3bits(j,i); /*Process [4][2][0]*/
	fontab[ed_sym][i]=fmask << 2;		    /*From byte leftmost bits*/
}

form3bits(x,y)
int x,y;
{
        if (symbol[x][y] == BLANK)
        {
#asm
                PUSH PSW
                XRA A	; clear carry flag and move it to the rightmost bit
                LDA fmask
                RAL
                STA fmask
                POP PSW
#endasm
        }
        else
        {
#asm
                PUSH PSW
                STC	; set carry flag and move it to the rightmost bit
                LDA fmask
                RAL
                STA fmask
                POP PSW
#endasm
        }
}



FONT TABLE PLACEMENT
====================
COMPATIBILITY NOTE:	This information is applicable to Bold BIOS 2.0 and
			later Bold BIOS versions.

MEMORY PLACEMENT
----------------
Symbols with codes 0x00 - 0x1F (first 32 symbols) are NOT stored in
a character table cause OS is unable to display them anyway.
Therefore character table contains only 256 - 32 = 224 (0xE0) symbols.
Since it takes 10 bytes to store each symbol, symbol table size becomes equal
to 224 * 10 = 2240 (8C0) bytes.

When BIOS is loaded to a machine memory, character table is placed to address
#define FSA     0xef40  /* Font System Area address for Bold Bios 2.0. TM. */

Character table is loaded contiguosly, so that it lays in the next
address space: 0xEF40 - 0xF7FF.


OPERATING SYSTEM FILE PLACEMENT
-------------------------------
In MDOS20.ROM file:

96 first symbols with codes 32-127 (0x20 - 0x7F) are located @ zerobased
file start offset 0x4640 and take exactly 0x3C0 (960) bytes in
0x4640 - 0x49FF file space.

128 last symbols with codes 128-255 (0x80 - 0xFF) are located @ zerobased
file start offset 0x2600 and take exactly 0x500 (1280) bytes in
0x2600 - 0x2AFF file space.

In MDOS30.ROM file:

All 224 symbols with codes 32-255 (0x20-0xFF) are located contiguosly
@ zerobased file start offset 0x2240 and take 0x8C0 (2240) bytes in
0x2240-0x2AFF file space.

