Compatibility: AT EGA VGA
CX number of characters to display (see below)
DH,DL row,column to start writing
ES:BP address of start of char/attr string to write
Info: This displays a specially-formatted string, letting you specify a
ES:BP This must point to an array of character/attribute pairs. For
DB 'H',07H, 'e',07H, 'l',07H, 'l',07H, 'o',07H, '!',0fH
Would display Hello! (actually, the "Hello" would be in white
characters on a black background (video attribute 07H), and "!"
would be in bright white on a black background (attribute 0fH).
Warning! This function treats these characters specially:
CR (0dH) cursor to start of same line
LF (0aH) cursor to current clm on next lower line
BEL (07H) beep the speaker
When it encounters one of these characters, it takes the listed
control action, and then treats the next byte as a character-not
the attribute for the (undisplayed) control action.
CX specifies the number of characters in the string (it will
typically be half the length of the char/attr array).
Notes: This fn requires that you modify BP. When calling from high-
level languages such as C, be very to save and restore BP,
since it is used to keep track of the "stack frame".
Be careful about the odd handling of CR, LF, and BEL. After
"displaying" any of these characters, the char/attr pairs are
out of sync. Thus, this is not useful as a generic tool for
restoring screen data that has been copied directly from video