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

⟦04181b816⟧ TextFile

    Length: 1019 (0x3fb)
    Types: TextFile
    Names: »B«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with System;
package body Ada_C is

    procedure Free_C (P : System.Address);
    pragma Interface (C, Free_C);
    pragma Interface_Information (Free_C, ".free");

    Separator : constant Character := ',';
    function String_C_To_Ada (S : System.Address) return String is
        Lg : String (1 .. 10);
        for Lg use at S;  
        Length : Integer := 0;
        I : Integer := 1;
    begin  
        while Lg (I) /= Separator loop
            I := I + 1;
        end loop;  
        declare
            S_Lg : constant String := Lg (1 .. I - 1);
        begin
            Length := Integer'Value (S_Lg);
        end;
        declare
            S_Lg : String (1 .. Length + I);
            for S_Lg use at S;
            Ns : constant String := S_Lg (I + 1 .. Length + I);
        begin
            Free_C (S);
            return Ns;
        end;
    end String_C_To_Ada;


    function String_Ada_To_C (S : String) return String is
    begin
        return S & Ascii.Nul;
    end String_Ada_To_C;
end Ada_C;