INT 10H 1302H: Display Character/Attribute Cells

                                                   Compatibility: AT EGA VGA 
 Expects: AX    1302H
          BH    video page
          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
          ──────────────────────────────────────────────────────────────────
 Returns: (none)
          ──────────────────────────────────────────────────────────────────
    Info: This displays a specially-formatted string, letting you specify a
          video attribute for each character.

    ES:BP This must point to an array of character/attribute pairs.  For
          instance,

            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
            memory (see Video Memory Layouts).

See Also: INT 10H 1300H (write string)
          INT 10H 1301H (write string & update cursor)
          INT 10H 1303H (write char/attr cells and update cursor)
          INT 10H: Video Services
                                    -♦-