DOS Fn 0aH: Buffered String Input

                                                         Compatibility: 1.0+ 
 Expects: AH    0aH
          DS:DX address of a length-prefixed input buffer (see below)
          ──────────────────────────────────────────────────────────────────
 Returns: DS:DX the buffer contains input terminated with CR (ASCII 13H) and
                identifies the length of the actual input
          ──────────────────────────────────────────────────────────────────
    Info: Reads a line of text (up to 254 bytes) from the Standard Input
          into a caller-supplied buffer.  You must specify the maximum
          input length.

          On entry, the buffer at DS:DX must be set up as:
           ┌───┬───┬───┬───┬───┬───┬─ -
           │max│ ? │ ?   ?   ?   ?   ?    max is maximum acceptable input
           └───┴───┴───┴───┴───┴───┴ -    (range: 1 to 254)
          On exit, the buffer is filled:
           ┌───┬───┬───┬───┬───┬───┬─ -
           │maxlen│ H   I  0dH           len is actual length of input,
           └───┴───┴───┴───┴───┴───┴ -    less the terminating CR (e.g.,
          02H)

          Characters are read from the Standard Input up to a CR
          (ASCII 0dH) or up to the value of max-1.  If max-1 is reached,
          the console bell rings (beeps) for each character until Enter
          (CR) is read.

          The second byte of the buffer is filled with the actual length of
          the input, less the terminating CR.  The final character in the
          buffer is always CR (which is not counted in the length byte).

   Notes: The DOS "template" editing keystrokes are in effect:
          ■ The initial contents of the buffer (up to len) are used as the
            "current template string".  Special keys are handled as they
            are at a standard DOS prompt, for instance:
             [Esc] displays "\" and restarts the edit;
             [F3] displays to the end of the template;
             [F5] displays "@" and stores the line as the template; etc.
             [Ins] toggles insert mode, [←] backs up and deletes, etc.

          ■ If len is set to 0 when called, then no template exists.

          ■ If Ctrl-Break is detected, INT 23H is executed and the buffer
            is left unchanged.  The default Ctrl+Break handler displays ^C.

          ■ You may also obtain a "cooked" string of standard input using
            DOS Fn 3fH (with BX set to 00H).

See Also: Character I/O Functions
          DOS Functions
                                    -♦-