DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 5698 (0x1642) Types: TextFile Names: »V«
└─⟦516dceb10⟧ Bits:30000751 8mm tape, Rational 1000, RCI_VADS └─ ⟦9a14c9417⟧ »DATA« └─⟦this⟧
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;