REQ: Writing text in mode 12h

I'm a beginner programming in mode 12h (640x480x16).  I've already made a
unit with all the 'graphic' routines (PutPixel, ReadPixel, Line, Circle,
etc.) and those needed to manage the palette.  I don't wanna use BGI, so
my problem now is: how can I construct functions and procedures similar
to text mode Read/ReadLn and Write/WriteLn ???

My first thought have been create an array [0..255] of TFont8x8, where
TFont8x8 = array [0..7] of Byte (or reading the font stored in ROM). Then, to
write a character to screen, I read his 8 bytes and check his bits.  Well, it
sounds to be very slow, so if anybody there knows a better way, please help
me !!


    ********  Hau ez da Espainia ... Euskal Herria Askatu !!!  *******
    ***  This is not Spain ... Freedom for the Basque Country !!!  ***
    *****************  ********************