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

⟦89e9fc1de⟧ Ada Source

    Length: 11264 (0x2c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Com_Ihm, seg_051e0c

Derivation

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

E3 Source Code



with Connexion_Serie;
with General_Defs;
with Conversion;
with Trame_Serie;  
with Driver_Serie;

package body Com_Ihm is

    package Port_B is new Connexion_Serie (No_Port => General_Defs.Port_B);

    package Ts is new Trame_Serie (Taille_Trame => 1024,
                                   Numero_Port => General_Defs.Port_B);

    function Lecture return String is
        Trame : General_Defs.Byte_String (1 .. 1024);
        I : Natural := 0;
        B, B1, B2 : General_Defs.Byte;
    begin

        B := Port_B.Lire;

        while (General_Defs.Byte'Pos (B) /= Character'Pos ('<')) loop
            B := Port_B.Lire;  
            if General_Defs.Byte'Pos (B) = Character'Pos ('>') then
                B := Port_B.Lire;
                if General_Defs.Byte'Pos (B) = Character'Pos ('>') then
                    return "?????";
                end if;
            end if;
        end loop;

        for J in 1 .. 3 loop
            B := Port_B.Lire;
        end loop;

        B1 := Port_B.Lire;
        B2 := Port_B.Lire;

        while (General_Defs.Byte'Pos (B1) /= Character'Pos ('>') or
               General_Defs.Byte'Pos (B2) /= Character'Pos ('>')) loop
            I := I + 1;
            Trame (I) := B1;
            B1 := B2;
            B2 := Port_B.Lire;
        end loop;

        return Conversion.Bs_To_String (Trame (1 .. I));

    end Lecture;


    procedure Ecriture_Trame (Bs : General_Defs.Byte_String) is
        Trame : Ts.Chaine_Trame;
        Taille : Integer;
        J, K : Integer;
    begin  
        Ts.Construire_Trame_Emission (Bs, Trame, Taille);
        for I in 1 .. Taille loop
            Port_B.Ecrire (Trame (I));
        end loop;
    end Ecriture_Trame;


    procedure Ecriture (S : String) is
    begin
        Ecriture_Trame (Conversion.String_To_Bs (S));
    end Ecriture;

    procedure Initialisation is
    begin  
        Driver_Serie.Interface_Serie.Validation_It
           (Sorte => Driver_Serie.Interface_Serie.Pas_It);
    end Initialisation;

end Com_Ihm;

E3 Meta Data

    nblk1=a
    nid=6
    hdr6=6
        [0x00] rec0=22 rec1=00 rec2=01 rec3=02a
        [0x01] rec0=26 rec1=00 rec2=02 rec3=022
        [0x02] rec0=05 rec1=00 rec2=04 rec3=000
        [0x03] rec0=20 rec1=00 rec2=04 rec3=04e
        [0x04] rec0=05 rec1=00 rec2=06 rec3=000
        [0x05] rec0=03 rec1=00 rec2=0a rec3=034
        [0x06] rec0=10 rec1=00 rec2=06 rec3=074
        [0x07] rec0=10 rec1=00 rec2=04 rec3=068
        [0x08] rec0=0c rec1=00 rec2=07 rec3=000
        [0x09] rec0=fd rec1=0e rec2=ec rec3=43d
    tail 0x2154b786c879c7410ef3c 0x42a00088462060003
Free Block Chain:
  0x6: 0000  00 0a 00 92 80 13 66 61 63 65 5f 53 65 72 69 65  ┆      face_Serie┆
  0xa: 0000  00 07 00 4a 80 3e 20 20 20 20 20 2d 2d 53 69 6d  ┆   J >     --Sim┆
  0x7: 0000  00 05 00 11 80 05 72 65 22 29 3b 05 00 06 20 20  ┆      re");     ┆
  0x5: 0000  00 09 03 fc 80 07 6d 65 74 72 65 29 3b 07 00 19  ┆      metre);   ┆
  0x9: 0000  00 08 00 ad 80 03 6c 65 2c 03 00 3f 20 20 20 20  ┆      le,  ?    ┆
  0x8: 0000  00 03 03 fc 80 20 20 20 4a 6a 5f 48 68 5f 4d 6d  ┆        Jj_Hh_Mm┆
  0x3: 0000  00 00 00 82 80 1a 74 20 3d 3e 20 50 61 72 61 6d  ┆      t => Param┆