DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦8bc1a029c⟧ TextFile

    Length: 5450 (0x154a)
    Types: TextFile
    Names: »B«

Derivation

└─⟦407de186f⟧ Bits:30000749 8mm tape, Rational 1000, RCFSUN
    └─ ⟦e5cd75ab4⟧ »DATA« 
        └─⟦this⟧ 

TextFile

separate (Sparc_Unix_Alsys)
function Get_Predefined_Info return Predefined.Object is

    -- Appendix F Section 9 page 53

    --
    --[To be factorized]
    --
    Short_Short_Int : constant Predefined.Integer_Type_Descriptor :=
       Predefined.Build (Name => "SHORT_SHORT_INTEGER",
                         Size => 8,
                         Lo_Bound => Universal.Value (Integer'(-2 ** 7)),
                         Hi_Bound => Universal.Value (Integer'(2 ** 7 - 1)),
                         For_Target => Target_Name);

    Short_Int : constant Predefined.Integer_Type_Descriptor :=
       Predefined.Build (Name => "SHORT_INTEGER",
                         Size => 16,
                         Lo_Bound => Universal.Value (Integer'(-2 ** 15)),
                         Hi_Bound => Universal.Value (Integer'(2 ** 15 - 1)),
                         For_Target => Target_Name);

    -- Appendix F Section 9 page 53
    Int : constant Predefined.Integer_Type_Descriptor :=
       Predefined.Build
          (Name => "INTEGER",
           Size => 32,
           Lo_Bound => Universal.Value (Long_Integer'(-2 ** 31)),
           Hi_Bound => Universal.Value (Long_Integer'(2 ** 31 - 1)),
           For_Target => Target_Name);

    Integers : constant Predefined.Integer_Type_Array :=
       (Short_Short_Int, Short_Int, Int);

    --------------------------------------------------

    Flo : constant Predefined.Float_Type_Descriptor :=
       Predefined.Build
          (Name => "FLOAT",
           Digitz => 6,
           Size => 32,
           Lo_Bound =>
              Universal.Value (Float'(-(2.0 - 2.0 ** (-23)) * 2.0 ** 127)),
           Hi_Bound =>
              Universal.Value (Float'(+(2.0 - 2.0 ** (-23)) * 2.0 ** 127)),
           Safe_Emax => 127,
           Machine_Emax => 127,
           Machine_Emin => -128,
           Machine_Radix => 2,
           Machine_Mantissa => 23,
           Machine_Rounds => False,
           Machine_Overflows => False,
           For_Target => Target_Name);



    Long_Flo : constant Predefined.Float_Type_Descriptor :=
       Predefined.Build
          (Name => "LONG_FLOAT",
           Digitz => 15,
           Size => 64,
           Safe_Emax => 1023,
           Lo_Bound =>
              Universal.Value (Float'(-(2.0 - 2.0 ** (-52)) * 2.0 ** 1023)),
           Hi_Bound =>
              Universal.Value (Float'(+(2.0 - 2.0 ** (-52)) * 2.0 ** 1023)),
           Machine_Emin => -1024,
           Machine_Emax => 1023,
           Machine_Radix => 2,
           Machine_Mantissa => 52,
           Machine_Rounds => False,  
           Machine_Overflows => False,  
           For_Target => Target_Name);

    Floats : constant Predefined.Float_Type_Array := (Flo, Long_Flo);

    -- -- Appendix F Section 9 page 54
    -- Single_Last : constant Universal.Real := Universal.Value (3.40282E+38);
    -- Double_Last : constant Universal.Real := Universal.Value (1.79769E+308);
    --
    -- -- Appendix F Section 9 page 54
    -- Flo : constant Predefined.Float_Type_Descriptor :=
    --    Predefined.Build (Name => "FLOAT",
    --                      Digitz => 6,
    --                      Size => 32,
    --                      Lo_Bound => Universal."-" (Single_Last),
    --                      Hi_Bound => Single_Last,
    --                      Safe_Emax => 125,
    --                      Machine_Emin => -125,
    --                      Machine_Emax => 128,
    --                      Machine_Radix => 2,
    --                      Machine_Mantissa => 21,
    --                      Machine_Rounds => True,
    --                      Machine_Overflows => False,
    --                      For_Target => Target_Name);
    --
    -- -- Appendix F Section 9 page 54
    -- Long_Flo : constant Predefined.Float_Type_Descriptor :=
    --    Predefined.Build (Name => "LONG_FLOAT",
    --                      Digitz => 15,
    --                      Size => 64,
    --                      Lo_Bound => Universal."-" (Double_Last),
    --                      Hi_Bound => Double_Last,
    --                      Safe_Emax => 1021,
    --                      Machine_Emin => -1021,
    --                      Machine_Emax => 1024,
    --                      Machine_Radix => 2,
    --                      Machine_Mantissa => 51,
    --                      Machine_Rounds => True,
    --                      Machine_Overflows => False,
    --                      For_Target => Target_Name);
    --
    -- Floats : constant Predefined.Float_Type_Array := (Flo, Long_Flo);
    --
    -- --------------------------------------------------

    -- Appendix F Section 9 page 55
    Dur : constant Predefined.Fixed_Type_Descriptor :=
       Predefined.Build (Name => "DURATION",
                         Size => 32,
                         Scale => -14,
                         Lo_Bound => Universal.Value (-131_072.0),
                         Hi_Bound => Universal.Value (131_072.0),
                         For_Target => Target_Name);


    --------------------------------------------------

    Predefined_Characteristics : constant Predefined.Object :=
       Predefined.Build (Standard_Version => 2,
                         Integer_Types => Integers,
                         Float_Types => Floats,
                         Duration_Type => Dur,
                         For_Target => Target_Name);

begin
    return Predefined_Characteristics;
end Get_Predefined_Info;