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

⟦99dc6a509⟧ Ada Source

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

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Text_Io;
package body Square is

    Xsquare : Tsquare;
    Cursor : Tcell;

    procedure Move (D : Tdirection) is
    begin
        case D is
            when North =>
                if Cursor.Line = Tsquaresize'First then
                    Cursor.Line := Tsquaresize'Last;
                else
                    Cursor.Line := Tsquaresize'Pred (Cursor.Line);
                end if;
            when East =>
                if Cursor.Column = Tsquaresize'Last then
                    Cursor.Column := Tsquaresize'First;
                else
                    Cursor.Column := Tsquaresize'Succ (Cursor.Column);
                end if;
            when West =>
                if Cursor.Column = Tsquaresize'First then  
                    Cursor.Column := Tsquaresize'Last;
                else
                    Cursor.Column := Tsquaresize'Pred (Cursor.Column);
                end if;  
        end case;
    end Move;


    procedure Gotocenter is
    begin
        Cursor.Line := (Cursor.Line / 2) + 1;
        Cursor.Line := (Cursor.Line / 2) + 1;
    end Gotocenter;


    procedure Readsize (S : in out Natural) is
    begin
        while (S = 0 or S mod 2 /= 1) loop
            Text_Io.Put ("Entrer la taille du tableau ");
            --Text_Io.Get (S);
            S := 5;
        end loop;
    end Readsize;


    procedure Deposit (T : Tnumbercells) is
    begin
        Xsquare (Cursor.Line, Cursor.Column) := T;
    end Deposit;


    function Cellbusy return Boolean is
    begin
        return Xsquare (Cursor.Line, Cursor.Column) > 0;
    end Cellbusy;

    procedure Displaysquare is
    begin
        for Index1 in 1 .. S loop
            for Index2 in 1 .. S loop
                Text_Io.Put (Tnumbercells'Image (Xsquare (Index1, Index2)));
            end loop;
        end loop;
    end Displaysquare;
end Square;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=21 rec1=00 rec2=01 rec3=014
        [0x01] rec0=25 rec1=00 rec2=02 rec3=001
    tail 0x21538ef4a86076d8b7318 0x42a00088462060003