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

⟦c960b0cee⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package V_I_Libop, seg_04b9b1

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;
use System;
with V_I_Pass;
use V_I_Pass;
with Unchecked_Conversion;

package V_I_Libop is

    pragma Not_Elaborated;
    pragma Suppress (Exception_Tables);
    pragma Suppress (All_Checks);

---- for image and value attributes ---------------------
    type Target_Integer is new Integer;
    type Target_Dv_Integer is new Integer;
    type Dv_Rec is
        record
            Char_Size : Target_Dv_Integer;
            Low : Target_Dv_Integer;
            High : Target_Dv_Integer;
            Size : Target_Dv_Integer;
        end record;
    type Dv_Ptr is access Dv_Rec;
    pragma Local_Access (Dv_Ptr);

    type Image_Rec is
        record
            Width : Integer;
            Count : Integer;
            Images : String (1 .. 1);
        end record;
    type Image_Ptr is access Image_Rec;
    pragma Local_Access (Image_Ptr);
    type Pv_Arr is array (Target_Integer range 0 .. 0) of Target_Integer;
    type Pv_Ptr is access Pv_Arr;
    pragma Local_Access (Pv_Ptr);
    type Char_Ptr is access Character;
    pragma Local_Access (Char_Ptr);
    function Atoc is new Unchecked_Conversion (Address, Char_Ptr);

    function Enum_Image (Map : Image_Ptr; Val : Target_Integer; Dv : Dv_Ptr)
                        return Address;
    function Enum_Value (Str : Address; Dv : Dv_Ptr; Image : Image_Ptr)
                        return Target_Integer;
    function Enum_Width (Map : Image_Ptr; Low, High : Target_Integer)
                        return Target_Integer;

    function Int_Image (Val : Target_Integer; Image : Address; Dv : Dv_Ptr)
                       return Address;
    function Int_Value (Str : Address; Dv : Dv_Ptr; Lb, Ub : Target_Integer)
                       return Target_Integer;
    function Int_Width (Low : Target_Integer; High : Target_Integer)
                       return Target_Integer;

------ val/pos support --------------------------------------
    function Val_To_Pos (Val : Target_Integer; Pv_Map : Pv_Ptr)
                        return Target_Integer;

------ bit support ------------------------------------------
    procedure Bitcopy (Bits : Integer;
                       Src_Base : Address;
                       Src_Bit_Offset : Integer;
                       Dst_Base : Address;
                       Dst_Bit_Offset : Integer);
    function Biteq (Bits : Integer;
                    Lhs_Base : Address;
                    Lhs_Bit_Offset : Integer;
                    Rhs_Base : Address;
                    Rhs_Bit_Offset : Integer) return Boolean;

-- catenation support ---------------------------------------------
    procedure Lib_Catenate (Arg_List_P : Address; New_Dv : Dv_Ptr);

-- block memory support -------------------------------------------
    procedure Bcopy (Src_Addr, Dst_Addr : Address; Lgth : Integer);
    procedure Bzero (Addr : Address; Lgth : Integer);
    --  Compare 2 strings of characters given their address and the length.
    --  Condition codes are left for the calling procedure.
    procedure Cmpc3 (Addr1 : Address; Addr2 : Address; Lgth : Integer);
    --  Compare 2 strings of chars with possibly different lengths.
    --  Condition codes are left for the calling procedure.
    procedure Cmpc4 (Addr1 : Address;
                     Lgth1 : Integer;
                     Addr2 : Address;
                     Lgth2 : Integer);
    --  Compare 2 strings of longs with possibly different lengths.
    --  Condition codes are left for the calling procedure.
    procedure Cmpl4 (Addr1 : Address;
                     Lgth1 : Integer;
                     Addr2 : Address;
                     Lgth2 : Integer);
    --  Compare 2 strings of words with possibly different lengths.
    --  Condition codes are left for the calling procedure.
    procedure Cmpw4 (Addr1 : Address;
                     Lgth1 : Integer;
                     Addr2 : Address;
                     Lgth2 : Integer);
    --  Copy a block of memory from one address to another.
    --  Handles overlapping segments of memory.
    procedure Movc3 (Addr1 : Address; Addr2 : Address; Lgth : Integer);

-- fixed point support --------------------------------------------
    function Fixed_Mantissa (Low : Target_Integer; High : Target_Integer)
                            return Target_Integer;

-- string support --------------------------------------------
    procedure Strncpy
                 (Dest : System.Address; Src : System.Address; Len : Integer);

private
    pragma Interface (Ada, Fixed_Mantissa);
    pragma Interface_Name (Fixed_Mantissa, "FIXED_MANTISSA");
    pragma Interface (Ada, Movc3);
    pragma Interface_Name (Movc3, "MOVC3");
    pragma Interface (Ada, Cmpw4);
    pragma Interface_Name (Cmpw4, "CMPW4");
    pragma Interface (Ada, Cmpl4);
    pragma Interface_Name (Cmpl4, "CMPL4");
    pragma Interface (Ada, Cmpc4);
    pragma Interface_Name (Cmpc4, "CMPC4");
    pragma Interface (Ada, Cmpc3);
    pragma Interface_Name (Cmpc3, "CMPC3");
    pragma Interface (Ada, Bzero);
    pragma Interface_Name (Bzero, "BZERO");
    pragma Interface (Ada, Bcopy);
    pragma Interface_Name (Bcopy, "BCOPY");
    pragma Interface (Ada, Biteq);
    pragma Interface_Name (Biteq, "BITEQ");
    pragma Interface (Ada, Bitcopy);
    pragma Interface_Name (Bitcopy, "BITCOPY");
    pragma Interface (Ada, Val_To_Pos);
    pragma Interface_Name (Val_To_Pos, "VAL_TO_POS");
    pragma Interface (Ada, Int_Width);
    pragma Interface_Name (Int_Width, "INT_WIDTH");
    pragma Interface (Ada, Int_Value);
    pragma Interface_Name (Int_Value, "INT_VALUE");
    pragma Interface (Ada, Int_Image);
    pragma Interface_Name (Int_Image, "INT_IMAGE");
    pragma Interface (Ada, Enum_Width);
    pragma Interface_Name (Enum_Width, "ENUM_WIDTH");
    pragma Interface (Ada, Enum_Value);
    pragma Interface_Name (Enum_Value, "ENUM_VALUE");
    pragma Interface (Ada, Enum_Image);
    pragma Interface_Name (Enum_Image, "ENUM_IMAGE");
    pragma Interface (Ada, Lib_Catenate);
    pragma Interface_Name (Lib_Catenate, "__LIB_CATENATE");
    pragma Interface (Ada, Strncpy);
    pragma Interface_Name (Strncpy, "__STRNCPY");
end V_I_Libop;

E3 Meta Data

    nblk1=7
    nid=0
    hdr6=e
        [0x00] rec0=24 rec1=00 rec2=01 rec3=020
        [0x01] rec0=15 rec1=00 rec2=02 rec3=014
        [0x02] rec0=15 rec1=00 rec2=03 rec3=046
        [0x03] rec0=13 rec1=00 rec2=04 rec3=04a
        [0x04] rec0=18 rec1=00 rec2=05 rec3=00c
        [0x05] rec0=16 rec1=00 rec2=06 rec3=042
        [0x06] rec0=08 rec1=00 rec2=07 rec3=000
    tail 0x21548cd1c8684384510fd 0x42a00088462060003