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

⟦28737f685⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Unconstrained_Array, seg_03afc8, seg_03b92a, seg_03c0a2, seg_03c50d, seg_03c6b4, seg_03c9e9, seg_04a9c0, seg_04b42e

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 Output_Stream;
package Unconstrained_Array is

    type Types is (Integer, Boolean, Collection, Undefined);

    type Object  is limited private;
    type Objects is array (Natural range <>) of Object;


    Null_Object : constant Object;  
    False, True : constant Object;

    function Value (I : Standard.Integer)  return Object;
    function Value (B : Standard.Boolean)  return Object;
    function Value (The_Objects : Objects) return Object;

    function Get (The_Object : Object) return Standard.Integer;
    function Get (The_Object : Object) return Standard.Boolean;
    function Get (The_Object : Object; The_Position : Natural) return Object;

    procedure Set (The_Object : in out Object; To : Standard.Integer);
    procedure Set (The_Object : in out Object; To : Standard.Boolean);
    procedure Set (The_Object : in out Object; To : Objects);

    function  Undefined_Value                      return Object;
    function  Is_Undefined   (The_Object : Object) return Standard.Boolean;
    procedure Make_Undefined (The_Object : in out Object);

    function Have_Same_Type (Left, Right : Object) return Standard.Boolean;

    procedure Put (The_Object : Object; Where : Output_Stream.Object);

    package Operators is

        function "="  (Left, Right : Object) return Standard.Boolean;
        function "<"  (Left, Right : Object) return Standard.Boolean;
        function "<=" (Left, Right : Object) return Standard.Boolean;
        function ">"  (Left, Right : Object) return Standard.Boolean;
        function ">=" (Left, Right : Object) return Standard.Boolean;

        function "+" (Left, Right : Object) return Object;
        function "-" (Left, Right : Object) return Object;
        function "*" (Left, Right : Object) return Object;
        function "/" (Left, Right : Object) return Object;

        function "-"   (Right : Object) return Object;
        function "abs" (Right : Object) return Object;  
    end Operators;

    Illegal_Operation : exception;
    Typing_Error      : exception;

private

    type Object_Structure (Kind : Types := Integer; Size : Natural := 0);
    type Object is access Object_Structure;

    Null_Object  : constant Object           := null;
    Null_Objects : constant Objects (1 .. 0) := (others => Null_Object);
    False        : constant Object           := Value (Standard.False);
    True         : constant Object           := Value (Standard.True);
end Unconstrained_Array;

E3 Meta Data

    nblk1=5
    nid=3
    hdr6=6
        [0x00] rec0=1b rec1=00 rec2=01 rec3=03a
        [0x01] rec0=15 rec1=00 rec2=04 rec3=064
        [0x02] rec0=10 rec1=00 rec2=02 rec3=000
        [0x03] rec0=06 rec1=00 rec2=04 rec3=000
        [0x04] rec0=c0 rec1=00 rec2=00 rec3=100
    tail 0x217383a928512641e9079 0x42a00088462063c03
Free Block Chain:
  0x3: 0000  00 05 03 f9 00 3a 20 20 20 20 70 72 6f 63 65 64  ┆     :    proced┆
  0x5: 0000  00 00 00 07 80 04 65 61 6e 3b 04 00 00 00 00 00  ┆      ean;      ┆