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

⟦aeeddba3a⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body C_Simple_Io, seg_057e9c

Derivation

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

E3 Source Code



with C_Driver_Serie;
with General_Defs;
package body C_Simple_Io is

    procedure Put (C : in Character) is
        Trame : General_Defs.Byte_String (1 .. 1);
    begin  
        Trame (1) := Character'Pos (C);
        C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
           (Trame, General_Defs.Port_A);
    end Put;


    procedure Put (S : in String) is
        Trame : General_Defs.Byte_String (1 .. S'Length);
    begin
        for I in S'Range loop
            Trame (I) := Character'Pos (S (I));
        end loop;
        C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
           (Trame, General_Defs.Port_A);
    end Put;


    -- procedure Taille_Int (Int : Integer; Taille : Natural; Signe : Boolean) is
    --     Tempo : Integer;
    -- begin
    --     Tempo := Int;
    --     Taille := 0;
    --     if Int < 0 then
    --         Signe := False;
    --         Tempo := Tempo * (-1);
    --     else
    --         Signe := True;
    --     end if;
    --     while (Tempo >= 1) loop
    --         Tempo := Tempo / 10;
    --         Taille := Taille + 1;
    --     end loop;
    -- end Taille_Int;

    procedure Put (I : in Integer) is
        Tempo : constant String := Integer'Image (I);
    begin  
        declare
            Trame : General_Defs.Byte_String (1 .. Tempo'Length);
        begin
            for I in Trame'Range loop
                Trame (I) := Character'Pos (Tempo (I));
            end loop;
            C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
               (Trame, General_Defs.Port_A);
        end;
    end Put;


    procedure Put_Line (S : in String) is
        Trame : General_Defs.Byte_String (1 .. S'Length + 2);
    begin
        for I in S'Range loop
            Trame (I) := Character'Pos (S (I));
        end loop;  
        Trame (Trame'Length - 1) := Character'Pos (Ascii.Lf);
        Trame (Trame'Length) := Character'Pos (Ascii.Cr);
        C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
           (Trame, General_Defs.Port_A);
    end Put_Line;


    procedure New_Line is
        Trame : General_Defs.Byte_String (1 .. 2);
    begin
        Trame (1) := Character'Pos (Ascii.Cr);
        Trame (2) := Character'Pos (Ascii.Lf);
        C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
           (Trame, General_Defs.Port_A);
    end New_Line;

    procedure Clear_Screan is
        Trame : General_Defs.Byte_String (1 .. 2);
    begin
        Trame (1) := 27;
        Trame (2) := Character'Pos ('*');
        C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
           (Trame, General_Defs.Port_A);
    end Clear_Screan;

    procedure Gotoxy (X : Natural; Y : Natural) is
        Trame : General_Defs.Byte_String (1 .. 4);
    begin
        Trame (1) := 27;
        Trame (2) := Character'Pos ('=');
        Trame (3) := Natural'Pos (Y + 31);
        Trame (4) := Natural'Pos (X + 31);
        C_Driver_Serie.Tache_Driver_Serie.Ecriture_Trame
           (Trame, General_Defs.Port_A);
    end Gotoxy;

    procedure New_Page is
    begin
        Clear_Screan;
        Gotoxy (1, 1);
    end New_Page;



    procedure Get (C : out Character) is
        Trame : General_Defs.Byte_String (1 .. 1);
        Taille : Integer;
        Port : General_Defs.Port;
    begin
        C_Driver_Serie.Tache_Driver_Serie.Lecture_Trame (Trame, Taille, Port);
        C := Character'Val (Trame (1));
    end Get;


    procedure Get (Item : out String) is
        Trame : General_Defs.Byte_String (1 .. Item'Length);
        Taille : Integer;
        Port : General_Defs.Port;
    begin
        C_Driver_Serie.Tache_Driver_Serie.Lecture_Trame (Trame, Taille, Port);
        for I in Item'Range loop
            Item (I) := Character'Val (Trame (I));
        end loop;
    end Get;

    procedure Get (I : out Integer) is
        Trame : General_Defs.Byte_String (1 .. 1024);
        Taille : Natural;
        Port : General_Defs.Port;
    begin
        C_Driver_Serie.Tache_Driver_Serie.Lecture_Trame (Trame, Taille, Port);
        declare
            Tempo : String (1 .. (Taille - 1));
        begin
            for I in Tempo'Range loop
                Tempo (I) := Character'Val (Trame (I));
            end loop;
            I := Integer'Value (Tempo);
        end;
    end Get;


    procedure Get_Line (Item : out String) is
    begin
        null;
    end Get_Line;
end C_Simple_Io;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=23 rec1=00 rec2=01 rec3=032
        [0x01] rec0=1d rec1=00 rec2=04 rec3=01c
        [0x02] rec0=1d rec1=00 rec2=03 rec3=02a
        [0x03] rec0=20 rec1=00 rec2=05 rec3=062
        [0x04] rec0=1a rec1=00 rec2=02 rec3=000
    tail 0x2176534e687d57d27ccfd 0x42a00088462060003