anchor.diff:              _  -> Backlight = ?BACKLIGHT_OFF
     end,
   
  -  display_control(I2cRef, Backlight, ((Display bor Cursor) bor BlinkCursor)),
  +  set_display_control(I2cRef, Backlight, (Display bor Cursor bor BlinkCursor)),
  +
  +  % While the clear input is True, clear the display
  +  case input_utils:get_boolean(Inputs, clear) of
  +    {ok, true} -> clear_display(I2cRef, Backlight);
  +            _  -> ok 
  +  end,
     Backlight.
   
   
  -
  -clear(I2cRef, Backlight) ->
  +%%
  +%% Read input string(s) and update LCD
  +%%
  +
  +update_lcd_data(I2cRef, Backlight, Config, Inputs, InputNum) ->
  +  case config_utils:get_integer_range(Config, {start_rows, InputNum}, 1, 4) of
  +    {ok, StartRow} ->
  +
  +      case config_utils:get_integer_range(Config, {start_cols, InputNum}, 1, 20) of
  +        {ok, StartCol} ->
  +
  +          case input_utils:get_string(Inputs, {inputs, InputNum}) of
  +            {ok, InputStr} ->
  +              case StartRow of
  +                1 -> RowAddr = ?LINE_1;
  +                2 -> RowAddr = ?LINE_2;
  +                3 -> RowAddr = ?LINE_3;
  +                4 -> RowAddr = ?LINE_4
  +              end,
  +
  +              RowColAddr = RowAddr + (StartCol - 1),
  +              set_data_addr(I2cRef, Backlight, RowColAddr),
  +              lists:map(fun(Char) -> write_data(I2cRef, Backlight, Char) end, InputStr),
  +              
  +              Status = normal,
  +              {InputStr, Status};
  +
  +            {error, Reason} ->
  +              input_utils:log_error(Config, inputs, Reason)
  +          end;
  +        {error, Reason} ->
  +          input_utils:log_error(Config, start_cols, Reason)
  +      end;
  +    {error, Reason} ->
  +      input_utils:log_error(Config, start_rows, Reason)
  +  end.
  +
  +
  +clear_display(I2cRef, Backlight) ->
     write_command(I2cRef, Backlight, ?CLEAR_DISPLAY, ?NO_PARAMS).
   
   
  
positive.code:       write_command_high(I2cRef, ?BACKLIGHT_OFF, ?FUNCTION_SET),
        block_utils:sleep(1),
  
        % The LCD display should be reset and in 4 bit mode now
        % From this point use normal command and write data functions
  
        % Set Num of lines, Font, and keep Data Length 4 bits
        function_set(I2cRef, ?BACKLIGHT_OFF, (?NUM_LINES_2)),
  
        % Turn the display off
        display_control(I2cRef, ?BACKLIGHT_OFF, ?NO_PARAMS),
  
         % Clear the screen
        clear(I2cRef, ?BACKLIGHT_OFF),
  
        entry_mode_set(I2cRef, ?BACKLIGHT_OFF, (?INCREMENT)),
  
        {ok, I2cRef};
        
  
negative.code: %
  % Entry Mode Set command params
  %
  -define(INCREMENT, 16#01).
  -define(DECREMENT, 16#00).
  
  -define(SHIFT, 16#02). 
  -define(NO_SHIFT, 16#00). 
  
  %
  % Display Control Command params
  %
  -define(BLINK_CURSOR_ON, 16#01).
  -define(BLINK_CURSOR_OFF, 16#00).
  
  -define(CURSOR_ON, 16#02). 
  -define(CURSOR_OFF, 16#00).
  
  -define(DISPLAY_ON, 16#04).
  -define(DISPLAY_OFF, 16#00).
  
  %
  % Function Set Command params
  %
  -define(DATA_LEN_8BITS, 16#10).
  -define(DATA_LEN_4BITS, 16#00).
  
  -define(NUM_LINES_2, 16#08).
  -define(NUM_LINES_1, 16#00).
  
  -define(FONT_5X10, 16#04).
  -define(FONT_5X8, 16#00).
  
  %
  % Set data address (i.e. cursor location) params
  %
  -define(LINE_1, 16#00).
  -define(LINE_2, 16#40).
  -define(LINE_3, 16#14).
  -define(LINE_4, 16#54).
  
  
  %
  