separate (Tracker.Subsystem_Pkg)

--*****************************************************************************
procedure Ss_Add is
    ------------------------------------------------------------------------------
    --|
    --|  NAME:  SS_ADD
    --|
    --|  OVERVIEW:
    --|    This procedure sets up the record to be added to the list by
    --|    user prompt/response.  The function calls to Prompt_Pkg return
    --|    only valid existing data.  The complete record is
    --|    then added to the linked list by calling the generic list procedure
    --|    ADD.
    --|
    --|  EXCEPTIONS HANDLED:
    --|    none
    --|
    --|  HISTORY:
    --|    written by   May Lee   March 1985
    --|
    --|  NOTES:
    --|    The number of subsystems is incremented in this procedure.
    --|
    ------------------------------------------------------------------------------
    Ss_Record : Subsystem_Pointer;

begin
    -- create a null subsystem record
    Ss_Record := new Subsystem_Type;

    New_Line;
    Put_Line (" If you would like more information on the type of data ");
    Put_Line (" to enter for any of the following questions, enter a '?' ");
    Put_Line (" Otherwise, enter the data requested.      ");
    New_Line (2);

    -- get the record fields
    Ss_Record.Name := Prompt_Pkg.New_Subsys_Name;
    New_Line;

    Put_Line
       (" What percentage of the total subsystem is available at start? ");
    Ss_Record.Percent_At_Start := Prompt_Pkg.Percent;

    Ss_Record.Task_Numbers := Prompt_Pkg.Task_Numbers (Ss_Record);

    -- add the record to the linked list
    Add (Ss_List, Ss_Record.Name, Ss_Record);

    -- increment subsystem counter
    Num_Of_Subsystems := Num_Of_Subsystems + 1;

    New_Line;
    Put (" The number of subsystems = ");
    Put (Num_Of_Subsystems, 1);
    New_Line (2);
    delay 1.0;
end Ss_Add;


