you can load the video buffer segment into the ES register (or DS, if you are careful)
depends on the video mode, but the segment is usually either 0B000h or 0B800h
try 0B800h first :P
i think 0B000h is for TTL modes, which is 7, i guess
from there, you can write bytes directly to the video buffer
each character cell has 2 bytes, one is the character, the next one is the attribute
the attribute is divided into lower and upper nybbles, which controls colors for background and foreground
http://webpages.charter.net/danrollins/techhelp/0087.HTMthere is an extra bit for foreground color - that is intensity
and another bit that controls blink or underline
whether it is blink or underline is selectable by writing a register - or, there may be some INT to do it :P
i might add.....
INT 10h wasn't the fastest way - back in the day
you could improve speed by writing directly to the buffer
but, it was best if you syncronized the writes with the retrace signal - a little tricky
thing is - that was great on a 4.77 MHz 8088 machine
nowdays, the computers are much faster, and you will find that INT 10h is pretty good :t