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

⟦4062c3172⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Duart_2661, seg_05be1e, seg_05c29a

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 V_Bits;
package body Duart_2661 is
    Cste_Stop_Bit : constant array (Stop_Bit) of Integer :=
       (Stop_Bit_0 => 2#0000_0000#,
        Stop_Bit_1 => 2#0100_0000#,
        Stop_Bit_1_5 => 2#1000_0000#,
        Stop_Bit_2 => 2#1100_0000#);

    Cste_Parity : constant array (Parity) of Integer :=
       (Parity_None => 2#0000_0000#,
        Parity_Odd => 2#0001_0000#,
        Parity_Even => 2#0011_0000#);

    Cste_Car_Length : constant array (Car_Length) of Integer :=
       (Car_Length_5_Bit => 2#0000_0000#,
        Car_Length_6_Bit => 2#0000_0100#,
        Car_Length_7_Bit => 2#0000_1000#,
        Car_Length_8_Bit => 2#0000_1100#);

    Cste_Mode : constant array (Mode) of Integer :=
       (Mode_Synch => 2#0000_0000#,
        Mode_Asynch_1 => 2#0000_0001#,
        Mode_Asynch_16 => 2#0000_0010#,  
        Mode_Asynch_64 => 2#0000_0011#);

    Cste_Clock_Source : constant array (Clock_Source) of Integer :=
       (Clock_Source_None => 2#0011_0000#);

    Cste_Baud_Rate : constant array (Baud_Rate) of Integer :=
       (Baud_Rate_75 => 2#0000_0001#,
        Baud_Rate_1200 => 2#0000_1001#,
        Baud_Rate_9600 => 2#0000_1110#,
        Baud_Rate_19200 => 2#0000_1111#);

    Cste_Operating : constant array (Operating) of Integer :=
       (Normal => 2#0000_0000#,
        Asynch_Auto => 2#0100_0000#,
        Local_Loopback => 2#1000_0000#,
        Remote_Loopback => 2#1100_0000#);

    Cste_Req_To_Send : constant array (Req_To_Send) of Integer :=
       (Active => 2#0000_0000#, Low => 2#0010_0000#);

    Cste_Error_Reset : constant array (Error_Reset) of Integer :=
       (Normal => 2#0000_0000#, Active => 2#0001_0000#);

    Cste_Synch_Asynch : constant array (Synch_Asynch) of Integer :=
       (Mode_1 => 2#0000_0000#, Mode_2 => 2#0000_1000#);

    Cste_Rxen : constant array (Rxen) of Integer :=
       (Disable => 2#0000_0000#, Enable => 2#0000_0100#);

    Cste_Dtr : constant array (Dtr) of Integer :=
       (Dtr_High => 2#0000_0000#, Dtr_Low => 2#0000_0010#);

    Cste_Txen : constant array (Txen) of Integer :=
       (Disable => 2#0000_0000#, Enable => 2#0000_0001#);

    function Get_Mr1 (S : in Stop_Bit := Stop_Bit_1;
                      P : in Parity := Parity_None;
                      C : in Car_Length := Car_Length_8_Bit;
                      M : in Mode := Mode_Asynch_1) return Byte is
        B : Integer := 0;
    begin
        B := V_Bits.Bit_Or (Cste_Stop_Bit (S), Cste_Parity (P));
        B := V_Bits.Bit_Or (B, Cste_Car_Length (C));
        B := V_Bits.Bit_Or (B, Cste_Mode (M));
        return Byte (B);
    end Get_Mr1;

    function Get_Mr2 (C : in Clock_Source := Clock_Source_None;
                      B : in Baud_Rate := Baud_Rate_9600) return Byte is
        By : Integer := 0;
    begin
        By := V_Bits.Bit_Or (Cste_Clock_Source (C), Cste_Baud_Rate (B));
        return Byte (By);
    end Get_Mr2;

    function Get_Cr (O : in Operating := Normal;
                     Rs : in Req_To_Send := Low;
                     E : in Error_Reset := Normal;
                     S : in Synch_Asynch := Mode_1;
                     R : in Rxen := Enable;
                     D : in Dtr := Dtr_Low;
                     T : in Txen := Disable) return Byte is
        B : Integer := 0;
    begin  
        B := V_Bits.Bit_Or (Cste_Operating (O), Cste_Req_To_Send (Rs));
        B := V_Bits.Bit_Or (B, Cste_Error_Reset (E));
        B := V_Bits.Bit_Or (B, Cste_Synch_Asynch (S));
        B := V_Bits.Bit_Or (B, Cste_Rxen (R));
        B := V_Bits.Bit_Or (B, Cste_Dtr (D));
        B := V_Bits.Bit_Or (B, Cste_Txen (T));
        return Byte (B);
    end Get_Cr;

    function Activer_It_Rx_Tx return Byte is
    begin
        return Get_Cr (T => Enable);
    end Activer_It_Rx_Tx;

    function Activer_It_Rx return Byte is
    begin
        return Get_Cr;
    end Activer_It_Rx;

    function Activer_It_Tx return Byte is
    begin
        return Get_Cr (R => Disable, T => Enable);
    end Activer_It_Tx;

    function Desactiver_It return Byte is
    begin
        return Get_Cr (R => Disable);
    end Desactiver_It;
end Duart_2661;

E3 Meta Data

    nblk1=6
    nid=4
    hdr6=a
        [0x00] rec0=1c rec1=00 rec2=01 rec3=042
        [0x01] rec0=1a rec1=00 rec2=02 rec3=044
        [0x02] rec0=1a rec1=00 rec2=06 rec3=012
        [0x03] rec0=1c rec1=00 rec2=03 rec3=004
        [0x04] rec0=0a rec1=00 rec2=05 rec3=000
        [0x05] rec0=0a rec1=00 rec2=04 rec3=000
    tail 0x2176b507289556d04850b 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 00 01 16 80 28 20 20 20 66 75 6e 63 74 69 6f  ┆     (   functio┆