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

⟦fdd4c7b45⟧ TextFile

    Length: 2250 (0x8ca)
    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 Text_Io;

package body Number_Manager is


    Number_Table : array (From .. To) of Element;


    procedure Init_Number is
    begin
        Text_Io.Put_Line ("number_manager.init : from : " &
                          Number_Range'Image (From) &
                          " to : " & Number_Range'Image (To));
        for I in From .. To loop
            Number_Table (I) := Free_Element;
        end loop;
    end Init_Number;


    procedure Allocate (Value : in Element;
                        Number : out Number_Range;
                        Success : out Boolean) is
        Found : Boolean := False;
        I : Number_Range := From;  
    begin  
        Show_Number_Status;

        for I in From .. To loop
            if Number_Table (I) = Free_Element then
                Number_Table (I) := Value;
                Found := True;
                Number := I;
            end if;
            exit when Found;
        end loop;
        Success := Found;

    exception
        when Numeric_Error =>
            Text_Io.Put_Line ("Exception : Numeric_Error");
            Success := False;
        when others =>
            Text_Io.Put_Line ("Exception OTHERS: in Number_Manager.Allocate");
            Success := False;

    end Allocate;


    procedure Deallocate (Number : in Number_Range) is
    begin
        Number_Table (Number) := Free_Element;
    end Deallocate;


    procedure Show_Number_Status is
    begin
        Text_Io.Put_Line ("------------- Number allocator ---------------");
        Text_Io.Put ("From : " & Number_Range'Image (From) &
                     "  to : " & Number_Range'Image (To));
        for I in From .. To loop
            Text_Io.Put_Line ("Number " & Number_Range'Image (I) &
                              Ascii.Ht & Element_Image (Number_Table (I)));
        end loop;
    end Show_Number_Status;


    procedure Show_Value (Number : in Number_Range;
                          Value : out Element;
                          Success : out Boolean) is

    begin  
        if Number_Table (Number) /= Free_Element then
            Success := True;
        else
            Success := False;
        end if;

        Value := Number_Table (Number);
    end Show_Value;


end Number_Manager;