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

⟦400dbe994⟧ TextFile

    Length: 2286 (0x8ee)
    Types: TextFile
    Names: »B«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦24d1ddd49⟧ 
                └─⟦this⟧ 

TextFile

separate (Shared_Code_Generic_Support)
package body Short_Pointer_Ops is
    pragma Suppress_All;

    type Dont_Care is (Void);
    type Short     is access Dont_Care;
    --pragma Segmented_Heap (Short);
    --pragma Short_Pointer (Short);
    for Short'Storage_Size use 0;

    type Record_With_Short is
        record
            Fld : Short;
        end record;

    function Cnvt is new Unchecked_Conversion (Source => Expression,  
                                               Target => Short);

    function Cnvt is new Unchecked_Conversion (Source => Short,  
                                               Target => Expression);


    function Short_To_Long (Dat : Data) return Expression is
        pragma Routine_Number (N => Runtime_Ids.Internal);

        Rec : Record_With_Short;
        for Rec use at Dat'Address;
    begin
        pragma Assert (Dat'Length = Target.Bytes_Per_Address);
        return Cnvt (Rec.Fld);
    end Short_To_Long;


    procedure Copy_Value_To_Data (Source_Exp   : Expression;  
                                  Dest_Address : System.Address) is
        pragma Routine_Number (N => Runtime_Ids.Internal);

        Dest_Rec : Record_With_Short;
        for Dest_Rec use at Dest_Address;
    begin
        Dest_Rec.Fld := Cnvt (Source_Exp);
    end Copy_Value_To_Data;


    procedure Copy_Data_To_Value (Source_Data  : Data;  
                                  Dest_Address : System.Address) is
        pragma Routine_Number (N => Runtime_Ids.Internal);

        Source_Rec : Record_With_Short;
        for Source_Rec use at Source_Data'Address;
    begin
        Cnvt (Dest_Address).all := Cnvt (Source_Rec.Fld);
    end Copy_Data_To_Value;


    procedure Copy_Data_To_Data (Source_Data  : Data;  
                                 Dest_Address : System.Address) is
        pragma Routine_Number (N => Runtime_Ids.Internal);

        Source_Rec : Record_With_Short;
        for Source_Rec use at Source_Data'Address;

        Dest_Rec : Record_With_Short;
        for Dest_Rec use at Dest_Address;
    begin
        Dest_Rec.Fld := Source_Rec.Fld;
    end Copy_Data_To_Data;

end Short_Pointer_Ops;
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);