Your english is very good! And, hey, I'm not from an english speaking country as well (Brazil).
Your OS is one of those where you jump to graphics mode? Is so it can be "easy" to implement UNICODE. In theory, you could have 2M characters in a "font". But I suggest you don't try to implement surrogates and composition just yet. This can give you almost 64K chars (a little bit less due to surrogates codepoints range -- you'll see).
If you want to implement your own single byte charset, you could create an array mapping a byte to a group of them, like this:
unsigned char font[256][16] = {
...
{ /* ASCII: 54 */
0x00, /* ········ */
0x00, /* ········ */
0x38, /* ··***··· */
0x60, /* ·**····· */
0xc0, /* **······ */
0xc0, /* **······ */
0xfc, /* ******·· */
0xc6, /* **···**· */
0xc6, /* **···**· */
0xc6, /* **···**· */
0xc6, /* **···**· */
0x7c, /* ·*****·· */
0x00, /* ········ */
0x00, /* ········ */
0x00, /* ········ */
0x00 /* ········ */
},
...
}
The all you need to do is draw this small "box" on screen in the appropriate video memory location.
In VGA hardware you can reconstruct the default "font" setup by the ROM-BIOS. To do this I recommend
this article from OSdev. Just know that this is limited to 256 chars and their width and height depends on the text mode you are using. See Ralf Brown's Interrupt List abour service 0, interrupt 0x10, there's a list of modes and char "sizes" there.
But I would stick with graphics mode (emulating a text mode) because you can create a bigger array with bigger and better well drawn glyphs. I think the important thing is to obey some charset like UNICODE. And, of course, you'll have to make some code to decode a "fonts" file, if you want flexibility. This is another venue of research: There are (I believe) 3 types of fonts: bitmaped, vectorial and those which uses Bèzier curves (truetype, opentype etc...). The last one is a little bit complicated (but you can find the specification for those as well). For now, bitmaped fonts should be enough.
[]s
Fred