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

⟦ba2bc14fd⟧ Ada Source

    Length: 22528 (0x5800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Segment, seg_051e71

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 System;
with Simple_Io;
with Vme;
with Vsip;
with V_Bits;
procedure Segment 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#);

    N : Integer;

    procedure Await is
        I : Integer;
    begin
        for I in 1 .. 100000 loop
            null;
        end loop;
    end Await;

    procedure Coder is
        Entier : Integer;
        Octet : Defined_Type.Octet;
        use Module;
    begin
        Octet := Read_Group (Gp => Group1);
        Entier := V_Bits.Bit_And (Defined_Type.Octet'Pos (Octet), 2#00000111#);
        case Entier is
            when 0 =>
                Write_Group (Gp => Group0, Value => 16#FE#);
            when 1 =>
                Write_Group (Gp => Group0, Value => 16#FD#);
            when 2 =>
                Write_Group (Gp => Group0, Value => 16#FB#);
            when 3 =>
                Write_Group (Gp => Group0, Value => 16#F7#);
            when 4 =>
                Write_Group (Gp => Group0, Value => 16#EF#);
            when 5 =>
                Write_Group (Gp => Group0, Value => 16#DF#);
            when 6 =>
                Write_Group (Gp => Group0, Value => 16#BF#);
            when 7 =>
                Write_Group (Gp => Group0, Value => 16#7F#);
            when others =>
                Write_Group (Gp => Group0, Value => 16#FF#);
        end case;
    end Coder;

    procedure Wait_Chgt is
        D0, D1, D2, Old_D0, Old_D1, Old_D2 : Boolean;
        use Module;
    begin
        D0 := Read_Pin (13);
        D1 := Read_Pin (14);
        D2 := Read_Pin (15);
        Simple_Io.Put (" D0 -> ");
        Simple_Io.Put (Boolean'Image (D0));
        Simple_Io.Put (" : D1 -> ");
        Simple_Io.Put (Boolean'Image (D1));
        Simple_Io.Put (" : D2 -> ");
        Simple_Io.Put (Boolean'Image (D2));
        Simple_Io.Put_Line ("");
        Old_D0 := D0;
        Old_D1 := D1;
        Old_D2 := D2;
        while D0 = Old_D0 and D1 = Old_D1 and D2 = Old_D2 loop
            D0 := Read_Pin (13);
            D1 := Read_Pin (14);
            D2 := Read_Pin (15);  
        end loop;
    end Wait_Chgt;

    use Module;
begin
    Vsip1.Setup;
    Setup;
    Protection_Off;

    Led_On;

    Write_Group (Gp => Group0, Value => 16#FF#);

    for N in 1 .. 10 loop
        Coder;
        Wait_Chgt;
    end loop;

    Write_Group (Gp => Group0, Value => 16#FF#);

    for N in 1 .. 20 loop
        Write_Pin (3, False);
        Await;
        Write_Pin (3, True);
        Write_Pin (4, False);
        Await;
        Write_Pin (4, True);
        Write_Pin (5, False);
        Await;
        Write_Pin (5, True);
        Write_Pin (6, False);
        Await;
        Write_Pin (6, True);
        Write_Pin (7, False);
        Await;
        Write_Pin (7, True);
        Write_Pin (8, False);
        Await;
        Write_Pin (8, True);
        Write_Pin (9, False);
        Await;
        Write_Pin (9, True);
        Write_Pin (6, True);
        Await;
        Write_Pin (6, False);
    end loop;

    Write_Group (Gp => Group0, Value => 16#00#);

exception
    when Module.Pin_Error =>
        Simple_Io.Put_Line ("Pin unauthorized operation !!!");
end Segment;

pragma Main;

E3 Meta Data

    nblk1=15
    nid=14
    hdr6=8
        [0x00] rec0=22 rec1=00 rec2=01 rec3=09e
        [0x01] rec0=1c rec1=00 rec2=04 rec3=01c
        [0x02] rec0=27 rec1=00 rec2=15 rec3=02e
        [0x03] rec0=20 rec1=00 rec2=13 rec3=000
        [0x04] rec0=1f rec1=00 rec2=14 rec3=000
        [0x05] rec0=09 rec1=00 rec2=05 rec3=000
        [0x06] rec0=28 rec1=0c rec2=00 rec3=038
        [0x07] rec0=48 rec1=76 rec2=f7 rec3=202
        [0x08] rec0=91 rec1=ec rec2=00 rec3=007
        [0x09] rec0=09 rec1=0e rec2=de rec3=740
        [0x0a] rec0=50 rec1=43 rec2=70 rec3=000
        [0x0b] rec0=e1 rec1=00 rec2=00 rec3=000
        [0x0c] rec0=24 rec1=00 rec2=15 rec3=767
        [0x0d] rec0=00 rec1=00 rec2=00 rec3=002
        [0x0e] rec0=00 rec1=00 rec2=00 rec3=029
        [0x0f] rec0=00 rec1=00 rec2=00 rec3=000
        [0x10] rec0=00 rec1=00 rec2=00 rec3=000
        [0x11] rec0=00 rec1=00 rec2=00 rec3=000
        [0x12] rec0=00 rec1=00 rec2=00 rec3=000
        [0x13] rec0=00 rec1=00 rec2=00 rec3=000
        [0x14] rec0=00 rec1=00 rec2=00 rec3=000
    tail 0x21759590c879c822b8007 0x42a00088462060003
Free Block Chain:
  0x14: 0000  00 03 03 3c 80 0d 20 20 20 20 20 20 20 41 77 61  ┆   <         Awa┆
  0x3: 0000  00 12 00 26 80 07 6e 20 28 31 34 29 3b 07 00 19  ┆   &  n (14);   ┆
  0x12: 0000  00 11 03 fc 80 38 20 20 20 20 20 20 20 20 20 20  ┆     8          ┆
  0x11: 0000  00 10 03 fc 80 1f 20 20 20 20 20 20 20 20 20 20  ┆                ┆
  0x10: 0000  00 0f 03 fc 80 15 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ┆      **********┆
  0xf: 0000  00 0e 03 fc 80 1a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ┆      **********┆
  0xe: 0000  00 0d 03 fc 80 0c 65 6e 64 20 4c 65 64 5f 4f 66  ┆      end Led_Of┆
  0xd: 0000  00 0c 03 fc 80 29 20 20 43 6f 6e 6e 65 63 74 6f  ┆     )  Connecto┆
  0xc: 0000  00 0b 03 fc 80 1c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ┆      **********┆
  0xb: 0000  00 0a 03 fc 80 10 6e 20 3a 3d 20 44 61 74 61 27  ┆      n := Data'┆
  0xa: 0000  00 09 03 fc 80 15 65 72 5f 47 72 6f 75 70 5f 33  ┆      er_Group_3┆
  0x9: 0000  00 08 03 fc 80 28 6f 74 20 48 61 76 65 20 61 20  ┆     (ot Have a ┆
  0x8: 0000  00 07 03 fc 80 26 65 72 5f 47 72 6f 75 70 5f 34  ┆     &er_Group_4┆
  0x7: 0000  00 05 03 fc 00 22 20 20 20 20 20 20 20 20 20 20  ┆     "          ┆
  0x5: 0000  00 06 03 fa 80 17 20 66 69 6e 69 73 68 20 56 73  ┆       finish Vs┆
  0x6: 0000  00 02 03 fc 80 15 20 20 20 52 65 67 69 73 74 65  ┆         Registe┆
  0x2: 0000  00 00 03 fc 80 03 6d 65 3b 03 00 0c 77 69 74 68  ┆      me;   with┆