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

⟦7b4c25724⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Ss_Zone_68, seg_05126f

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 Util_String;

package body Ss_Zone_68 is

    package Us renames Util_String;

    procedure Create (O : in out Object;
                      Deb_1, Fin_1, Deb_2, Fin_2 : Horaire_68.Object;
                      Jour_Sem : Semaine_68.Object) is
    begin

        Set_Deb_Fin_1 (O => O, Deb_1 => Deb_1, Fin_1 => Fin_1);
        Set_Deb_Fin_2 (O => O, Deb_2 => Deb_2, Fin_2 => Fin_2);
        Set_Jour_Sem (O, Jour_Sem);

    end Create;

    procedure Create (O : in out Object;
                      Deb_1_Hh : Horaire_68.T_Heure;
                      Deb_1_Mm : Horaire_68.T_Minute;
                      Fin_1_Hh : Horaire_68.T_Heure;
                      Fin_1_Mm : Horaire_68.T_Minute;
                      Deb_2_Hh : Horaire_68.T_Heure;
                      Deb_2_Mm : Horaire_68.T_Minute;
                      Fin_2_Hh : Horaire_68.T_Heure;
                      Fin_2_Mm : Horaire_68.T_Minute;
                      Jour_Sem : Semaine_68.Object) is
    begin
        Horaire_68.Create (O => O.Deb_1, Heure => Deb_1_Hh, Minute => Deb_1_Mm);
        Horaire_68.Create (O => O.Fin_1, Heure => Fin_1_Hh, Minute => Fin_1_Mm);

        if Horaire_68.Superieur (O.Deb_1, O.Fin_1) then  
            raise Ss_Zone_Error;
        end if;

        Horaire_68.Create (O => O.Deb_2, Heure => Deb_2_Hh, Minute => Deb_2_Mm);
        Horaire_68.Create (O => O.Fin_2, Heure => Fin_2_Hh, Minute => Fin_2_Mm);

        if Horaire_68.Superieur (O.Deb_2, O.Fin_2) then
            raise Ss_Zone_Error;
        end if;

        Set_Jour_Sem (O, Jour_Sem);
    end Create;

    procedure Initialise (O : in out Object) is
    begin
        Horaire_68.Create (O.Deb_1, 0, 0);
        Horaire_68.Create (O.Fin_1, 0, 0);
        Horaire_68.Create (O.Deb_2, 0, 0);
        Horaire_68.Create (O.Fin_2, 0, 0);

        Semaine_68.Create_Semaine_Vide (O.Jour_Sem);
    end Initialise;


    procedure Set_Deb_Fin_1 (O : in out Object;
                             Deb_1, Fin_1 : Horaire_68.Object) is
    begin  
        if Horaire_68.Superieur (Deb_1, Fin_1) then
            raise Ss_Zone_Error;
        else
            O.Deb_1 := Deb_1;  
            O.Fin_1 := Fin_1;
        end if;
    end Set_Deb_Fin_1;

    procedure Set_Deb_Fin_2 (O : in out Object;
                             Deb_2, Fin_2 : Horaire_68.Object) is
    begin  
        if Horaire_68.Superieur (Deb_2, Fin_2) then
            raise Ss_Zone_Error;
        else
            O.Deb_2 := Deb_2;
            O.Fin_2 := Fin_2;
        end if;
    end Set_Deb_Fin_2;


    procedure Set_Jour_Sem (O : in out Object; Jour_Sem : Semaine_68.Object) is
    begin
        O.Jour_Sem := Jour_Sem;
    end Set_Jour_Sem;


    function Get_Deb_1 (O : Object) return Horaire_68.Object is
    begin
        return O.Deb_1;
    end Get_Deb_1;


    function Get_Fin_1 (O : Object) return Horaire_68.Object is
    begin
        return O.Fin_1;
    end Get_Fin_1;


    function Get_Deb_2 (O : Object) return Horaire_68.Object is
    begin
        return O.Deb_2;
    end Get_Deb_2;


    function Get_Fin_2 (O : Object) return Horaire_68.Object is
    begin
        return O.Fin_2;
    end Get_Fin_2;


    function Get_Jour_Sem (O : Object) return Semaine_68.Object is
    begin
        return O.Jour_Sem;
    end Get_Jour_Sem;


    function Image (O : Object) return String is
    begin
        return (Debut_Ss_Zone & Horaire_68.Image (O.Deb_1) &
                Sep_Ss_Zone & Horaire_68.Image (O.Fin_1) & Sep_Ss_Zone &
                Horaire_68.Image (O.Deb_2) & Sep_Ss_Zone &
                Horaire_68.Image (O.Fin_2) & Sep_Ss_Zone &
                Semaine_68.Image (O.Jour_Sem) & Sep_Ss_Zone & Fin_Ss_Zone);
    end Image;


    function Value (S : String) return Object is
        O : Object;
        Der_Car : Natural;
    begin
        Value (S, O, Der_Car);
        return O;
    end Value;


    procedure Value (S : String; O : in out Object; Der_Car : in out Natural) is
        P1, P2, P3, P4, P5, P6, P7 : Natural;
    begin
        Us.String_Contient (S, Debut_Ss_Zone, P1);
        Horaire_68.Value (S (P1 + 1 .. S'Last), O.Deb_1, P2);
        Horaire_68.Value (S (P2 + 2 .. S'Last), O.Fin_1, P3);
        Horaire_68.Value (S (P3 + 2 .. S'Last), O.Deb_2, P4);
        Horaire_68.Value (S (P4 + 2 .. S'Last), O.Fin_2, P5);
        Semaine_68.Value (S (P5 + 2 .. S'Last), O.Jour_Sem, P6);
        Us.String_Contient (S (P6 + 2 .. S'Last), Fin_Ss_Zone, P7);

        Der_Car := P7;
    end Value;
end Ss_Zone_68;

E3 Meta Data

    nblk1=6
    nid=5
    hdr6=a
        [0x00] rec0=1c rec1=00 rec2=01 rec3=064
        [0x01] rec0=1e rec1=00 rec2=03 rec3=056
        [0x02] rec0=19 rec1=00 rec2=06 rec3=032
        [0x03] rec0=27 rec1=00 rec2=02 rec3=068
        [0x04] rec0=1c rec1=00 rec2=04 rec3=000
        [0x05] rec0=1c rec1=00 rec2=04 rec3=001
    tail 0x2154b2bce87995b52fd49 0x42a00088462060003
Free Block Chain:
  0x5: 0000  00 00 02 9d 80 30 4f 20 3a 20 69 6e 20 6f 75 74  ┆     0O : in out┆