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

⟦6e5139261⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Set_Horloge, seg_050170

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 System;
with Simple_Io;

procedure Set_Horloge is

    type Byte is new Natural range 0 .. 16#FF#;
    for Byte'Size use 8;

    Poub : Natural := 0;

    subtype Bit is Natural range 0 .. 1;

    Data_Reg, A : Byte;
    for Data_Reg use at System.Address'Ref (16#0302_0000#);

    procedure Ecriture (G : Byte) is
        B : Byte := G;
    begin
        --Simple_Io.New_Line;
        --Simple_Io.Put ("E : ");
        for I in 1 .. 8 loop
            Data_Reg := B mod 2;
            --Simple_Io.Put (Natural'Image (B mod 2));
            B := B / 2;
        end loop;
    end Ecriture;

    function Lecture return Natural is
        N : Natural := 0;
    begin  
        for I in 0 .. 7 loop
            N := N + Natural (Data_Reg) * 2 ** I;
            Simple_Io.Put (Natural'Image (N));
        end loop;
        return N;
    end Lecture;

begin
    A := Byte (9);  
    Poub := Integer (A);
    Simple_Io.Put ("valeur de a avant lecture");
    Simple_Io.Put (Natural'Image (Poub));
    A := Data_Reg;
    Poub := Integer (A);
    Simple_Io.New_Line;
    Simple_Io.Put ("valeur de a apres lecture");

    Simple_Io.Put (Natural'Image (Poub));

    Ecriture (16#C5#);
    Ecriture (16#3A#);
    Ecriture (16#A3#);
    Ecriture (16#5C#);
    Ecriture (16#C5#);
    Ecriture (16#3A#);
    Ecriture (16#A3#);
    Ecriture (16#5C#);

    Ecriture (2#0000_0000#); -- 100 ieme de sec
    Ecriture (2#0000_0000#); -- secondes
    Ecriture (2#0000_0000#); -- minutes
    Ecriture (2#0000_0001#); -- heures
    Ecriture (2#0001_0010#); -- jour
    Ecriture (2#0001_1000#); -- date
    Ecriture (2#0001_0010#); -- mois
    Ecriture (2#1001_0101#); -- annee

    Data_Reg := 2#0000_0000#;

    loop
        A := 1;
        A := Data_Reg;

        Simple_Io.New_Line;

        Ecriture (16#C5#);
        Ecriture (16#3A#);
        Ecriture (16#A3#);
        Ecriture (16#5C#);
        Ecriture (16#C5#);
        Ecriture (16#3A#);
        Ecriture (16#A3#);
        Ecriture (16#5C#);

        Simple_Io.New_Line;

        Simple_Io.Put ("lec : ");

        for I in 1 .. 8 loop
            -- Simple_Io.Put (Natural'Image (Lecture));
            Poub := Lecture;

        end loop;

    end loop;
end Set_Horloge;
pragma Main;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=2a rec1=00 rec2=01 rec3=03c
        [0x01] rec0=0b rec1=00 rec2=04 rec3=006
        [0x02] rec0=27 rec1=00 rec2=03 rec3=014
        [0x03] rec0=08 rec1=00 rec2=02 rec3=000
    tail 0x2154ac656877d5d5cce69 0x42a00088462060003