separate (Tracker)
procedure Get_Data is
    ----------------------------------------------------------------------
    --|  NAME:  GET_DATA
    --|
    --|  OVERVIEW:
    --|    The user is asked whether or not he has an existing TRACKER file.
    --|    This procedure either calls INITIALIZE_TRACKER_DATA if the user
    --|    does not have an existing TRACKER file, or calls SET_UP_TRACKER_DATA
    --|    if the user does have a file.
    --|
    --|  EXCEPTIONS HANDLED:
    --|    name_error   raised to the calling procedure
    --|    ERROR_IN_INPUT_FILE   raised to the calling procedure
    --|    others   indicates invalid user response so user reprompted
    --|
    --|  HISTORY:
    --|    written by   May Lee   March 1985
    --|
    ----------------------------------------------------------------------
    Valid_Response : Boolean := False;
    Char_Input : Character := ' ';

begin
    while not Valid_Response loop
        Put_Line ("Do you have an existing TRACKER file that you ");
        New_Line;
        Put_Line ("would like to use for this run?  ");
        Put (" [Y  or  N, <cr>=N] : ");

        begin
            if End_Of_Line then
                -- pressed return, default is no
                Skip_Line;
                New_Line;
                Valid_Response := True;
                Initialize_Tracker_Data;
            else
                Get (Char_Input);

                if Char_Input = 'Y' or Char_Input = 'y' then
                    Skip_Line;
                    New_Line;
                    Valid_Response := True;
                    Set_Up_Tracker_Data;
                elsif Char_Input = 'N' or Char_Input = 'n' then
                    Skip_Line;
                    New_Line;
                    Valid_Response := True;
                    Initialize_Tracker_Data;
                else
                    Skip_Line;
                    New_Line;
                    Put_Line ("Please enter 'Y' or 'N' ");
                    delay 0.7;
                    Clear_Screen;
                end if;
            end if;
        exception
            when Name_Error =>
                raise;
            when Error_In_Input_File =>
                raise;
            when others =>
                Skip_Line;
                New_Line;
                -- invalid entry
                Put_Line ("Please enter 'Y' or 'N' ");
                delay 0.7;
                Clear_Screen;
        end;
    end loop;

end Get_Data;