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

⟦fbe25146d⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, seg_03bdb6

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 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;

   TYPE Image_Rec IS
      RECORD
         Width  : Integer;
         Count  : Integer;
         Images : String (1 .. 1);
      END RECORD;
   TYPE Image_Ptr IS ACCESS Image_Rec;
   TYPE Pv_Arr    IS ARRAY (Target_Integer RANGE 0 .. 0) OF Target_Integer;
   TYPE Pv_Ptr    IS ACCESS Pv_Arr;
   TYPE Char_Ptr  IS ACCESS Character;
   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;

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");
END V_I_Libop;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=24 rec1=00 rec2=01 rec3=036
        [0x01] rec0=00 rec1=00 rec2=08 rec3=038
        [0x02] rec0=15 rec1=00 rec2=02 rec3=042
        [0x03] rec0=13 rec1=00 rec2=03 rec3=070
        [0x04] rec0=00 rec1=00 rec2=07 rec3=01c
        [0x05] rec0=15 rec1=00 rec2=04 rec3=05c
        [0x06] rec0=19 rec1=00 rec2=05 rec3=02a
        [0x07] rec0=13 rec1=00 rec2=06 rec3=001
    tail 0x21739b8da856574541872 0x489e0066482863c01