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

⟦2f2c01b22⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body View, seg_049b5a, seg_049c2a

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 
└─⟦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 Screen, Text_Io, Complement_Array, The_Hero,
     The_Place, Field_Identifier_Array, Enumerate_Array;
package body View is

    procedure Create_Number (Item : out Object; A_Number : in Integer) is

    begin
        Item := (Kind => Number, Number_Value => A_Number);
    end Create_Number;

    procedure Create_Sentence (Item : out Object;
                               A_Sentence : in Identifier.Object) is

    begin
        Item := (Kind => Sentence, Sentence_Value => A_Sentence);
    end Create_Sentence;

    procedure Create_Attribute (Item : out Object;
                                An_Attribute : in Attribute.Object) is

    begin
        Item := (Kind => Single_Attribute, The_Attribute => An_Attribute);
    end Create_Attribute;

    procedure Create_Name (Item : out Object; A_Name : in Objet.Object) is

    begin
        Item := (Kind => Name, The_Name => A_Name);
    end Create_Name;

    procedure Create_Exit (Item : out Object; An_Exit : in Detail.Object) is

    begin
        Item := (Kind => Single_Exit, Direction => An_Exit);
    end Create_Exit;

    procedure Create_Exits (Item : out Object) is

    begin
        Item := (Kind => Exits);
    end Create_Exits;

    procedure Create_Contents (Item : out Object; Place : in Objet.Object) is

    begin
        Item := (Kind => Contents, The_Place => Place);
    end Create_Contents;

    procedure Display (Item : in Object) is

    begin
        case Item.Kind is
            when Number =>
                Screen.Write_World_Window (Integer'Image (Item.Number_Value));
            when Sentence =>
                Screen.Write_World_Window
                   (Identifier.Image (Item.Sentence_Value));
            when Single_Attribute =>
                Screen.Write_World_Window
                   (Attribute.Image (Item.The_Attribute));
            when Name =>
                Screen.Write_World_Window (Objet.Image (Item.The_Name));
            when Single_Exit =>
                if Detail.Exist (Item.Direction) then
                    Screen.Write_World_Window
                       (Complement_Array.Exit_Name
                           (The_Place.Index, Detail.Index (Item.Direction)));
                end if;

            when Exits =>
                Complement_Array.List_Exits_Init (The_Place.Index);
                while not Complement_Array.List_Exits_Done
                             (The_Place.Index) loop
                    if Complement_Array.Field_Enumeration
                          (The_Place.Index,
                           Field_Identifier_Array.Index
                              (Complement_Array.List_Exits_Direction
                                  (The_Place.Index))) =
                       Enumerate_Array.Enumeration_Index ("normal") then
                        Screen.Write_World_Window
                           (Complement_Array.Exit_Name
                               (The_Place.Index,
                                Complement_Array.Index
                                   (Complement_Array.List_Exits_Direction
                                       (The_Place.Index))) &
                            " : " & Complement_Array.List_Exits_Direction
                                       (The_Place.Index));
                        Screen.New_Line_World_Window;
                    end if;
                    Complement_Array.List_Exits_Next (The_Place.Index);
                end loop;
                Screen.New_Line_World_Window (5);
            when Contents =>
                Complement_Array.List_Complement_Init;
                while not Complement_Array.List_Complement_Done loop
                    if Complement_Array.List_Complement_Place =
                       Objet.Complement (Item.The_Place) and
                       The_Hero.Image /= Complement_Array.
                                            List_Complement_Name then
                        Screen.Write_World_Window
                           (Complement_Array.List_Complement_Name & " ");
                    end if;
                    Complement_Array.List_Complement_Next;
                end loop;
            when Unknown =>
                null;
        end case;
    end Display;

    procedure Show (Item : in Object) is

    begin
        Text_Io.Put ("View : Kind : " &
                     View_Kind'Image (Item.Kind) & " Image : ");
        Display (Item);
        Text_Io.New_Line;
    end Show;

end View;

E3 Meta Data

    nblk1=8
    nid=5
    hdr6=a
        [0x00] rec0=20 rec1=00 rec2=01 rec3=04e
        [0x01] rec0=1f rec1=00 rec2=07 rec3=06a
        [0x02] rec0=14 rec1=00 rec2=08 rec3=00a
        [0x03] rec0=11 rec1=00 rec2=04 rec3=062
        [0x04] rec0=15 rec1=00 rec2=06 rec3=000
        [0x05] rec0=11 rec1=00 rec2=04 rec3=000
        [0x06] rec0=05 rec1=00 rec2=06 rec3=001
        [0x07] rec0=68 rec1=63 rec2=e3 rec3=403
    tail 0x2154730a8866188a0ccdf 0x42a00088462060003
Free Block Chain:
  0x5: 0000  00 03 03 fc 80 24 6a 65 63 74 3b 20 41 6e 5f 45  ┆     $ject; An_E┆
  0x3: 0000  00 02 02 32 80 01 3b 01 00 1b 20 20 20 20 20 20  ┆   2  ;         ┆
  0x2: 0000  00 00 00 69 80 2d 20 20 20 20 20 20 20 20 4f 62  ┆   i -        Ob┆