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

⟦b21b2764e⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Old_Class_Printer, seg_037205

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 Class_Integer;
with Class_Boolean;
with Class_String;
with Class_Block;
with Class_Pen;
with Class_Turtle;
with Class_Window;
with Text_Io;

package body Old_Class_Printer is

    type Flag is (Off, On);

    Tab_Flag : Flag := On;

    procedure Create is
    begin
        Position := 0;
        Tab_Flag := On;
    end Create;

    procedure Forward (Number : in Integer) is
    begin
        if Number > 0 then
            Position := Position + Number;
        end if;
    end Forward;

    procedure Backward (Number : in Integer) is
    begin
        if Number > 0 then
            Position := Position - Number;
        end if;
        if Position < 0 then
            Position := 0;
        end if;
    end Backward;

    procedure New_Line (Number : Integer := 1) is
    begin
        for I in 1 .. Number loop
            Text_Io.New_Line;
        end loop;
        Tab_Flag := On;
    end New_Line;

    procedure Put (The_String : String) is
    begin
        if Tab_Flag = On then
            Put_Tab (The_String);
        else
            Text_Io.Put (The_String);
        end if;
        Tab_Flag := Off;
    end Put;

    procedure Put_Tab (The_String : String) is
        Tabulation : String (1 .. Position) := (1 .. Position => ' ');
    begin
        Text_Io.Put (Tabulation & The_String);
        Tab_Flag := Off;
    end Put_Tab;

    procedure Put (This_Object : Object.Reference) is
    begin
        case Object.Get (Class_From => This_Object) is
            when Object.Integer_Class =>
                Class_Integer.Put (This_Object);
            when Object.Boolean_Class =>
                Class_Boolean.Put (This_Object);
            when Object.String_Class =>
                Class_String.Put (This_Object);
            when Object.Turtle_Class =>
                Class_Turtle.Put (This_Object);
            when Object.Pen_Class =>
                Class_Pen.Put (This_Object);
            when Object.Block_Class =>
                Class_Block.Put (This_Object);
            when Object.Window_Class =>
                Class_Window.Put (This_Object);
            when Object.Void_Class =>
                null;
        end case;  
    end Put;

end Old_Class_Printer;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=30 rec1=00 rec2=01 rec3=00a
        [0x01] rec0=00 rec1=00 rec2=03 rec3=008
        [0x02] rec0=1d rec1=00 rec2=04 rec3=01e
        [0x03] rec0=0c rec1=00 rec2=02 rec3=000
    tail 0x2173479f284e26a3fcfe0 0x42a00088462060003