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

⟦a1a2698f6⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Vers_Caractere, seg_05a5ab

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 Int_Io;
with Text_Io;
with Mc68k;
package body Vers_Caractere is

    function Nb_Digit (I : in Integer) return Natural is
        Nb : Natural;
    begin
        if I > 1000 then
            Nb := 4;
            Text_Io.Put_Line
               ("conversion vers caractere: nombre superieur a 3 digits non attendu!");
        elsif I >= 100 then
            Nb := 3;
        elsif I >= 10 then
            Nb := 2;
        elsif I >= 0 then
            Nb := 1;
        else
            Nb := 0;
            Text_Io.Put_Line
               ("conversion vers caractere: nombre negatif non attendu!");
        end if;  
        return Nb;
    end Nb_Digit;


    function Vers_String (I : in Integer) return String is
        S : constant String := Integer'Image (I);
    begin
        if I < 10 then
            return S (2 .. 2);
        elsif I < 100 then
            return S (2 .. 3);
        else
            return S (2 .. 4);
        end if;
    end Vers_String;


    procedure Mon_Ecrire (No_Port : in Integer; Donnee : in Integer) is
        Dim : Natural;
    begin
        Dim := Nb_Digit (Donnee);
        declare
            Str : String (1 .. Dim);
        begin  
            Text_Io.Put_Line ("vers_caractere - la donnee en entree est : " &
                              Integer'Image (Donnee));
            Text_Io.Put_Line
               ("vers_caractere - longueur donnee en entree est : " &
                Integer'Image (Dim));
            Text_Io.Put_Line ("vers_caractere - les donnees en sortie sont: ");
            Str := Vers_String (Donnee);
            for I in 1 .. Dim loop
                Text_Io.Put (Str (I));
                Text_Io.Put_Line ("");
                Mc68k.Ecrire (No_Port, Str (I));
            end loop;
        end;
    end Mon_Ecrire;

end Vers_Caractere;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=26 rec1=00 rec2=01 rec3=00a
        [0x01] rec0=1b rec1=00 rec2=02 rec3=001
    tail 0x21769d57e892977a6ea41 0x42a00088462060003