DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦461db921d⟧ TextFile

    Length: 9514 (0x252a)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦90c9aa7d0⟧ 
            └─⟦this⟧ 

TextFile

procedure Catenate_Files (Source    : String;
                          Target    : String;
                          Separator : String := String'(1 .. 1 => Ascii.Ff));with Directory_Tools;
with Text_Io;  
procedure Catenate_Files (Source    : String;
                          Target    : String;
                          Separator : String := String'(1 .. 1 => Ascii.Ff)) is
    package Dtn renames Directory_Tools.Naming;
    package Dto renames Directory_Tools.Object;  
    Iter                      : Dto.Iterator;
    The_In_File, The_Out_File : Text_Io.File_Type;
    The_Char                  : Character;  
    One_File_Passed           : Boolean := False;
begin
    Text_Io.Create (The_Out_File, Text_Io.Out_File, Target);
    Iter := Dtn.Resolution (Name         => Source,
                            Context      => Dtn.Default_Context,
                            Objects_Only => True);
    while not Dto.Done (Iter) loop
        if One_File_Passed then
            Text_Io.Put_Line (The_Out_File, Separator);
        end if;
        Text_Io.Open (The_In_File, Text_Io.In_File,
                      Name => Dtn.Unique_Full_Name (Dto.Value (Iter)));
        while not Text_Io.End_Of_File (The_In_File) loop
            while not Text_Io.End_Of_Line (The_In_File) loop
                Text_Io.Get (The_In_File, The_Char);
                Text_Io.Put (The_Out_File, The_Char);
            end loop;  
            Text_Io.Skip_Line (The_In_File);
            Text_Io.New_Line (The_Out_File);
        end loop;  
        Text_Io.Close (The_In_File);
        Dto.Next (Iter);
        One_File_Passed := True;
    end loop;
    Text_Io.Close (The_Out_File);  
end Catenate_Files;

procedure Count_Lines (Name : String := "<IMAGE>"; Detail : Boolean := True);with Directory_Tools;
with Text_Io;  
procedure Count_Lines (Name : String := "<IMAGE>"; Detail : Boolean := True) is
    package Dtn renames Directory_Tools.Naming;
    package Dto renames Directory_Tools.Object;  
    Iter       : Dto.Iterator;
    The_File   : Text_Io.File_Type;
    The_Length : Natural;
    The_Count  : Natural := 0;
    The_Total  : Natural := 0;
begin  
    Iter := Dtn.Resolution (Name         => Name,
                            Context      => Dtn.Default_Context,
                            Objects_Only => True);
    while not Dto.Done (Iter) loop
        Text_Io.Open (The_File, Text_Io.In_File,
                      Name => Dtn.Unique_Full_Name (Dto.Value (Iter)));
        The_Count := 0;
        while not Text_Io.End_Of_File (The_File) loop
            Text_Io.Skip_Line (The_File);
            The_Count := The_Count + 1;
        end loop;
        Text_Io.Close (The_File);
        if Detail then
            Text_Io.Put_Line (Integer'Image (The_Count) & Ascii.Ht &
                              Dtn.Unique_Full_Name (Dto.Value (Iter)));
        end if;
        The_Total := The_Total + The_Count;
        Dto.Next (Iter);
    end loop;
    Text_Io.Put_Line ("total => " & Integer'Image (The_Total) & " lines");
end Count_Lines;

procedure Print (File : String := "<IMAGE>");with Catenate_Files;
with Library;
with Rs6000_Remote_Exec;
with System_Utilities;
with Time_Utilities;  
procedure Print (File : String := "<IMAGE>") is
    Temp_Name : constant String :=
       "!local.tmp." & System_Utilities.User_Name &
          Time_Utilities.Image (Date => Time_Utilities.Get_Time,
                                Date_Style => Time_Utilities.Expanded,
                                Time_Style => Time_Utilities.Ada,
                                Contents => Time_Utilities.Time_Only);
begin
    Catenate_Files (File, Temp_Name);
    Rs6000_Remote_Exec.Spool (File => Temp_Name);
    Library.Delete (Temp_Name);
end Print;procedure Demo (Display : String := "aconit:0");
\f


with Xlbt_Arithmetic;
use Xlbt_Arithmetic;
package Easy_X is
    type Events is (Update, Button_Up, Button_Down);
    type Fonts is (Small_Font, Medium_Font, Large_Font);
    subtype Coordinate is S_Short;
    subtype Dimension is U_Short_Positive;
    procedure Open (Display : String;
                    Title : String := "Easy_X";
                    Left, Right : Coordinate := 100;
                    Width, Height : Dimension := 800);
    procedure Move_To (X, Y : Coordinate);
    procedure Line_To (X, Y : Coordinate);
    procedure Set_Pen (Size : Dimension);
    procedure Set_Font (To : Fonts);
    procedure Draw_String (The_String : String);
    function Next_Event return Events;
    procedure Close;
    package Arithmetic is
        function "+" (C : Coordinate; D : Dimension) return Coordinate;
        function "-" (C : Coordinate; D : Dimension) return Coordinate;
        function "/" (D : Dimension; Scale : Positive) return Dimension;
        function "*" (D : Dimension; Scale : Positive) return Dimension;
        function "+" (D1, D2 : Dimension) return Dimension
            renames Xlbt_Arithmetic."+";
        function "-" (D1, D2 : Dimension) return Dimension
            renames Xlbt_Arithmetic."-";
    end Arithmetic;
    Fatal_Error, Value_Error : exception;
end Easy_X;


\f


with Easy_X;
use Easy_X;

package Graphic_Objects is  
    procedure Draw_Line (X1, Y1, X2, Y2 : Coordinate);
    procedure Draw_Rectangle (X, Y : Coordinate; W, H : Dimension);
    procedure Draw_Wind_Mill (X, Y : Coordinate; Size : Dimension);
    procedure Draw_The_Netherlands
                 (Left, Bottom : Coordinate; Width : Dimension);
end Graphic_Objects;package Rs6000_Remote_Exec is

    procedure Initialize;

    procedure Execute (Command : String := "");

    procedure Put (File : String := "");

    procedure Spool (File : String := "");

    procedure Finalize;

end Rs6000_Remote_Exec;with Ftp;
with Ftp_Defs;
with Ftp_Profile;
with Io;
with Profile;
with Remote_Operations;
with System_Utilities;
with Time_Utilities;
package body Rs6000_Remote_Exec is

    package Ro renames Remote_Operations;
    package Su renames System_Utilities;
    package Tu renames Time_Utilities;

    Printer_User : constant String := "r1000";
    Printer_User_Password : constant String := "Rational";
    Rs6000 : constant String := "aconit";

    The_Context : Ro.Context;  
    The_Status : Ro.Error_Status;

    procedure Initialize is
    begin
        Ro.Acquire (A_Context => The_Context,
                    Status => The_Status,
                    Machine => Rs6000,
                    User => Printer_User,
                    Password => Printer_User_Password,
                    Session => "",
                    Instance => "");
    end Initialize;


    procedure Execute (Command : String := "") is
    begin
        Ro.Execute (Command => Command,
                    In_Context => The_Context,
                    Status => The_Status,
                    Timeout => Remote_Operations.Wait_Forever);
    end Execute;


    procedure Put (File : String := "") is
    begin
        [statement]
    end Put;

    procedure Finalize is
    begin
        Ro.Release (A_Context => The_Context,
                    Status => The_Status,
                    Idle_Timeout => Remote_Operations.Default);
    end Finalize;

    procedure Spool (File : String := "") is
        The_Context : Ro.Context;
        The_Status : Ro.Error_Status;

        Temp_Name : constant String :=
           "/tmp/" & Su.User_Name &
              Tu.Image (Date => Tu.Get_Time,
                        Date_Style => Time_Utilities.Expanded,
                        Time_Style => Time_Utilities.Ada,
                        Contents => Time_Utilities.Time_Only);
    begin
        Io.Echo_Line (File & " spooled to Aconit");
        Ro.Acquire (A_Context => The_Context,
                    Status => The_Status,
                    Machine => Rs6000,
                    User => Printer_User,
                    Password => Printer_User_Password,
                    Session => "",  
                    Instance => "");
        -- Ro.Put (From_File => File,
        --         To_File => Temp_Name,
        --         In_Context => The_Context,
        --         Status => The_Status,
        --         Append => False,
        --         Options => "");

        Profile.Set (Profile => "<QUIET>", Status => The_Status);

        Ftp.Put (From_Local_File => File,
                 To_Remote_File => Temp_Name,
                 Remote_Machine => Rs6000,
                 Username => Printer_User,
                 Password => Printer_User_Password,
                 Account => Ftp_Profile.Account,
                 Remote_Directory => Ftp_Profile.Remote_Directory,
                 Remote_Type => "unix",
                 Append_To_File => False,
                 Transfer_Type => Ftp_Defs.Image,
                 Transfer_Mode => Ftp_Profile.Transfer_Mode,
                 Transfer_Structure => Ftp_Profile.Transfer_Structure,
                 Send_Port => Ftp_Profile.Send_Port_Enabled,
                 Response => Profile.Get);
        Ro.Execute (Command => "lpr -Plp " & Temp_Name,
                    In_Context => The_Context,
                    Status => The_Status,
                    Timeout => Remote_Operations.Wait_Forever);
        Ro.Delete_File (In_Context => The_Context,
                        With_Name => Temp_Name,
                        Status => The_Status,
                        Options => "");
        Ro.Release (A_Context => The_Context,
                    Status => The_Status,
                    Idle_Timeout => Remote_Operations.Default);
    end Spool;

end Rs6000_Remote_Exec