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

⟦29013a183⟧ Ada Source

    Length: 11264 (0x2c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Frame, seg_02b864

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



package Frame is

    -- Definition of a Request element

    type Command is (Reset, Autotest, Single_Shot, Flash, Free_Running,
                     Int_Value, Int_Positive, Int_Negative);
    for Command use (Reset => 2#000#,
                     Autotest => 2#001#,
                     Single_Shot => 2#010#,
                     Flash => 2#011#,
                     Free_Running => 2#100#,
                     Int_Value => 2#101#,
                     Int_Positive => 2#110#,
                     Int_Negative => 2#111#);

    type Sensor_Adr_Mode is
       (Port_A_Numeric, Port_A_Analogic, Port_B_Numeric, Slice);
    for Sensor_Adr_Mode use (Port_A_Numeric => 2#00#,
                             Port_A_Analogic => 2#01#,
                             Port_B_Numeric => 2#10#,
                             Slice => 2#11#);

    type Sensor_Adr_Selection is range 2#000# .. 2#111#;
    subtype Sensor_Bit_Selection is Sensor_Adr_Selection;
    subtype Sensor_Slice_Selection is Sensor_Adr_Selection;

    Bit1_Bit0_B_Slice : constant Sensor_Slice_Selection := 2#000#;
    Bit3_Bit2_B_Slice : constant Sensor_Slice_Selection := 2#001#;
    Bit5_Bit4_B_Slice : constant Sensor_Slice_Selection := 2#010#;
    Bit7_Bit6_B_Slice : constant Sensor_Slice_Selection := 2#011#;
    Bit3_Bit0_B_Slice : constant Sensor_Slice_Selection := 2#100#;
    Bit7_Bit4_B_Slice : constant Sensor_Slice_Selection := 2#101#;
    Bit7_Bit0_B_Slice : constant Sensor_Slice_Selection := 2#110#;
    Bit7_Bit0_A_Slice : constant Sensor_Slice_Selection := 2#111#;

    type Request is private;

    function Create_Request
                (The_Command : Command;
                 Adressing_Mode : Sensor_Adr_Mode;
                 Bit_Selection : Sensor_Bit_Selection) return Request;
    function Create_Request
                (The_Command : Command;
                 Slice_Selection : Sensor_Slice_Selection) return Request;


    -- Definition of Mode element

    type Sample_Count is (N_1, N_2, N_4, N_8, N_16, N_32, N_64, N_128);
    for Sample_Count use (N_1 => 2#000#,
                          N_2 => 2#001#,
                          N_4 => 2#010#,
                          N_8 => 2#011#,
                          N_16 => 2#100#,
                          N_32 => 2#101#,
                          N_64 => 2#110#,
                          N_128 => 2#111#);

    type Format is (Eight_Bits, Sixteen_Bits);
    for Format use (Eight_Bits => 0, Sixteen_Bits => 1);

    type Mean is (Arithmetic, Slippery);
    for Mean use (Arithmetic => 0, Slippery => 1);

    type Measure is (Analogic, Numeric, Frequence, Period, Period_Up,
                     Period_Down, Detection_Up, Detection_Down);
    for Measure use (Analogic => 2#000#,
                     Numeric => 2#001#,
                     Frequence => 2#010#,
                     Period => 2#011#,
                     Period_Up => 2#100#,
                     Period_Down => 2#101#,
                     Detection_Up => 2#110#,
                     Detection_Down => 2#111#);

    type Mode is private;

    function Create_Mode (Mean_Value : Mean;
                          Number_Of_Samples : Sample_Count;
                          Data_Format : Format;
                          Measure_Type : Measure) return Mode;


    -- Definition of Number and Periodicity of Transmissions element

    type Transmission_Count is (Infinity, N_1, N_2, N_5, N_10, N_20, N_50,
                                N_100, N_200, N_500, N_1000, N_2000,
                                N_5000, N_10000, N_20000, N_50000);
    for Transmission_Count use (Infinity => 2#0000#,
                                N_1 => 2#0001#,
                                N_2 => 2#0010#,
                                N_5 => 2#0011#,
                                N_10 => 2#0100#,
                                N_20 => 2#0101#,
                                N_50 => 2#0110#,
                                N_100 => 2#0111#,
                                N_200 => 2#1000#,
                                N_500 => 2#1001#,
                                N_1000 => 2#1010#,
                                N_2000 => 2#1011#,
                                N_5000 => 2#1100#,
                                N_10000 => 2#1101#,
                                N_20000 => 2#1110#,
                                N_50000 => 2#1111#);

    type Transmission_Period is (Maximal_Speed, P_1ms, P_2ms, P_5ms, P_10ms,
                                 P_20ms, P_50ms, P_100ms, P_200ms, P_500ms,
                                 P_1s, P_2s, P_5s, P_10s, P_20s, P_60s);
    for Transmission_Period use (Maximal_Speed => 2#0000#,
                                 P_1ms => 2#0001#,
                                 P_2ms => 2#0010#,
                                 P_5ms => 2#0011#,
                                 P_10ms => 2#0100#,
                                 P_20ms => 2#0101#,
                                 P_50ms => 2#0110#,
                                 P_100ms => 2#0111#,
                                 P_200ms => 2#1000#,
                                 P_500ms => 2#1001#,
                                 P_1s => 2#1010#,
                                 P_2s => 2#1011#,
                                 P_5s => 2#1100#,
                                 P_10s => 2#1101#,
                                 P_20s => 2#1110#,
                                 P_60s => 2#1111#);

    type N_Delta_T is private;

    function Create_N_Delta_T (Number_Of_Transmissions : Transmission_Count;
                               Period_Of_Transmissions : Transmission_Period)
                              return N_Delta_T;


    -- Definition of threshold element

    type Threshold is range 0 .. 255;


    -- Definition of task element

    type Task_Selection is private;  
    type Task_Identification is range 0 .. 7;

    function Create_Task_Selection return Task_Selection;
    procedure Action_On_Task (T : in out Task_Selection;
                              Which_One : Task_Identification);
    procedure No_Action_On_Task (T : in out Task_Selection;
                                 Which_One : Task_Identification);


    -- Definition of adress element

    type Station_Identification is range 0 .. 30;

    type Adress is private;

    function Create_Adress (Station : Station_Identification;
                            Station_Task : Task_Identification) return Adress;


    -- Definition of message element

    type Message is private;

    function Is_Acknowledge (M : Message) return Boolean;
    function As_Adress (M : Message) return Adress;
    function As_Natural (M : Message) return Natural;

private

    type Request is
        record
            Master_Command : Command;
            Adressing_Mode : Sensor_Adr_Mode;
            Adressing_Selection : Sensor_Adr_Selection;
        end record;

    for Request use
        record
            Master_Command at 0 range 0 .. 2;
            Adressing_Mode at 0 range 3 .. 4;
            Adressing_Selection at 0 range 5 .. 7;
        end record;

    for Request'Size use 8;

    type Mode is
        record
            Mean_Value : Mean;
            Number_Of_Samples : Sample_Count;
            Data_Format : Format;
            Measure_Type : Measure;
        end record;

    for Mode use
        record
            Mean_Value at 0 range 0 .. 0;
            Number_Of_Samples at 0 range 1 .. 3;
            Data_Format at 0 range 4 .. 4;
            Measure_Type at 0 range 5 .. 7;
        end record;

    for Mode'Size use 8;

    type N_Delta_T is
        record
            Number_Of_Transmissions : Transmission_Count;
            Period_Of_Transmissions : Transmission_Period;
        end record;

    for N_Delta_T use
        record
            Number_Of_Transmissions at 0 range 0 .. 3;
            Period_Of_Transmissions at 0 range 4 .. 7;
        end record;

    for Threshold'Size use 8;

    type Task_Selection is
        record
            Task7_Active : Boolean;
            Task6_Active : Boolean;
            Task5_Active : Boolean;
            Task4_Active : Boolean;
            Task3_Active : Boolean;
            Task2_Active : Boolean;
            Task1_Active : Boolean;
            Task0_Active : Boolean;
        end record;

    for Task_Selection use
        record
            Task7_Active at 0 range 0 .. 0;
            Task6_Active at 0 range 1 .. 1;
            Task5_Active at 0 range 2 .. 2;
            Task4_Active at 0 range 3 .. 3;
            Task3_Active at 0 range 4 .. 4;
            Task2_Active at 0 range 5 .. 5;
            Task1_Active at 0 range 6 .. 6;
            Task0_Active at 0 range 7 .. 7;
        end record;

    for Task_Selection'Size use 8;

    type Adress is
        record
            Station : Station_Identification;
            Task_Number : Task_Identification;
        end record;

    for Adress use
        record
            Station at 0 range 0 .. 4;
            Task_Number at 0 range 5 .. 7;
        end record;  
    for Adress'Size use 8;

    type Message is range 0 .. 255;
    for Message'Size use 8;

end Frame;


E3 Meta Data

    nblk1=a
    nid=0
    hdr6=14
        [0x00] rec0=1a rec1=00 rec2=01 rec3=022
        [0x01] rec0=16 rec1=00 rec2=05 rec3=036
        [0x02] rec0=16 rec1=00 rec2=02 rec3=052
        [0x03] rec0=18 rec1=00 rec2=09 rec3=038
        [0x04] rec0=13 rec1=00 rec2=08 rec3=018
        [0x05] rec0=17 rec1=00 rec2=07 rec3=046
        [0x06] rec0=23 rec1=00 rec2=04 rec3=018
        [0x07] rec0=24 rec1=00 rec2=03 rec3=04e
        [0x08] rec0=1f rec1=00 rec2=06 rec3=056
        [0x09] rec0=19 rec1=00 rec2=0a rec3=000
    tail 0x21523d8dc83ef6c2938aa 0x42a00088462060003