package Tar is

    subtype Name is String;

    Tape   : constant Name := "!Machine.Devices.Tape_0";
    Tblock : constant := 512;

    procedure Write (Files : Name := ""; 
                     Archive : Name := Tar.Tape; 
                     Record_Size : Positive := Tar.Tblock; 
                     Records_Per_Block : Positive := 8; 
                     Swap_Bytes : Boolean := False);

    -- Write the named Files into Target.

    procedure Read (Files : Name := "?"; 
                    Archive : Name := Tar.Tape; 
                    Record_Size : Positive := Tar.Tblock; 
                    Records_Per_Block : Positive := 8; 
                    Swap_Bytes : Boolean := False);

    -- Read the named Files from Source, and copy them to files
    -- in the current context.

    procedure List (Files : Name := "?"; 
                    Archive : Name := Tar.Tape; 
                    Record_Size : Positive := Tar.Tblock; 
                    Records_Per_Block : Positive := 8; 
                    Swap_Bytes : Boolean := False);

    -- Find the named Files in the Source, and write their names
    -- to the current output.

    procedure Dump (Files : Name := "?"; 
                    Archive : Name := Tar.Tape; 
                    Record_Size : Positive := Tar.Tblock; 
                    Records_Per_Block : Positive := 8; 
                    Swap_Bytes : Boolean := False);

    -- Read the named Files from Source, and write a hex dump of them
    -- to the current output.

end Tar;
