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

⟦767c0c99b⟧ Ada Source

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

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 Defined_Type;  
with Text_Io;
with Vme;
with Vsip;
procedure Pam is

    package Vsip1 is new Vsip (Base_Address => 16#8000#,
                               Vme_Position => Vme.Slot0,
                               Scim_0 => Defined_Type.Mod101,
                               Scim_1 => Defined_Type.No_Module,
                               Scim_2 => Defined_Type.No_Module,
                               Scim_3 => Defined_Type.No_Module);

    package Module is new Vsip1.Mod101 (Base_Address_Module => 16#600#);

    task Counter is
        entry Go;
    end Counter;

    task Resting is
        entry Go;
    end Resting;

    task Clock1 is
    end Clock1;

    task Clock10 is
    end Clock10;

    task Runner is
    end Runner;

    task body Resting is
    begin
        loop
            accept Go;
            Text_Io.Put_Line ("Resting a sec ...");  
            delay 1.0;
        end loop;
    end Resting;

    task body Runner is
        A, B : Integer := 0;
    begin
        loop  
            A := 0;

            Text_Io.Put_Line ("Running for integer'range...");


            -- for I in Integer'First .. Integer'Last loop
            --     A := B;
            -- end loop;
            --
            --
            --
            Resting.Go;
        end loop;
    end Runner;
    task body Clock1 is
    begin
        loop
            Text_Io.Put_Line ("Clock1  =>");  
            delay 1.0;
        end loop;
    end Clock1;

    task body Clock10 is
    begin
        loop
            Text_Io.Put_Line ("Clock10 =>");  
            delay 10.0;
        end loop;
    end Clock10;


    task body Counter is
        I : Integer := 0;
    begin
        loop
            Text_Io.Put_Line ("I => " & Integer'Image (I) & Ascii.Bel);
            I := I + 1;
            delay 3.0;
            accept Go;
        end loop;
    end Counter;

begin  
    Text_Io.Put_Line ("running vsip   setup ...");
    Vsip1.Setup;  
    Text_Io.Put_Line ("running mod101 setup ...");
    Module.Setup;
    while True loop
        -- Text_Io.Put_Line ("led on  delaying 1 s");
        Module.Led_On;
        delay 1.0;
        -- Text_Io.Put_Line ("led off delaying 1 s");
        Module.Led_Off;  
        delay 1.0;

        select
            Counter.Go;
        else
            null;
        end select;
    end loop;
end Pam;
pragma Main;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=2b rec1=00 rec2=01 rec3=008
        [0x01] rec0=15 rec1=00 rec2=04 rec3=03e
        [0x02] rec0=2a rec1=00 rec2=02 rec3=024
        [0x03] rec0=04 rec1=00 rec2=03 rec3=000
    tail 0x21765fdfa88bb8a81e1a7 0x42a00088462060003