|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 14336 (0x3800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Tuple, seg_0113a5, seg_0115af
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Instance;
package body Tuple is
procedure Null_Action (The_Tuple : Tuple.Object) is
begin
null;
end Null_Action;
function Cardinality (Of_Tuple : Tuple.Object) return Natural is
begin
return Of_Tuple.Count;
end Cardinality;
function Is_Null (The_Tuple : Tuple.Object) return Boolean is
begin
return The_Tuple.Count = 0;
end Is_Null;
procedure For_All (The_Tuple : Tuple.Object) is
begin
for I in 1 .. The_Tuple.Count loop
Action (The_Tuple.Cells (I));
end loop;
end For_All;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1 : out Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2 : out Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2, In_Ref3 : out Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
In_Ref3 := The_Tuple.Cells (3);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2, In_Ref3, In_Ref4 : out
Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
In_Ref3 := The_Tuple.Cells (3);
In_Ref4 := The_Tuple.Cells (4);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2, In_Ref3, In_Ref4, In_Ref5 : out
Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
In_Ref3 := The_Tuple.Cells (3);
In_Ref4 := The_Tuple.Cells (4);
In_Ref5 := The_Tuple.Cells (5);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2, In_Ref3, In_Ref4, In_Ref5, In_Ref6 : out
Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
In_Ref3 := The_Tuple.Cells (3);
In_Ref4 := The_Tuple.Cells (4);
In_Ref5 := The_Tuple.Cells (5);
In_Ref6 := The_Tuple.Cells (6);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2, In_Ref3, In_Ref4,
In_Ref5, In_Ref6, In_Ref7 : out Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
In_Ref3 := The_Tuple.Cells (3);
In_Ref4 := The_Tuple.Cells (4);
In_Ref5 := The_Tuple.Cells (5);
In_Ref6 := The_Tuple.Cells (6);
In_Ref7 := The_Tuple.Cells (7);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2, In_Ref3, In_Ref4,
In_Ref5, In_Ref6, In_Ref7, In_Ref8 : out
Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
In_Ref3 := The_Tuple.Cells (3);
In_Ref4 := The_Tuple.Cells (4);
In_Ref5 := The_Tuple.Cells (5);
In_Ref6 := The_Tuple.Cells (6);
In_Ref7 := The_Tuple.Cells (7);
In_Ref8 := The_Tuple.Cells (8);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2, In_Ref3, In_Ref4, In_Ref5,
In_Ref6, In_Ref7, In_Ref8, In_Ref9 : out
Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
In_Ref3 := The_Tuple.Cells (3);
In_Ref4 := The_Tuple.Cells (4);
In_Ref5 := The_Tuple.Cells (5);
In_Ref6 := The_Tuple.Cells (6);
In_Ref7 := The_Tuple.Cells (7);
In_Ref8 := The_Tuple.Cells (8);
In_Ref9 := The_Tuple.Cells (9);
end Split;
procedure Split (The_Tuple : Tuple.Object;
In_Ref1, In_Ref2, In_Ref3, In_Ref4, In_Ref5,
In_Ref6, In_Ref7, In_Ref8, In_Ref9, In_Ref10 : out
Instance.Reference) is
begin
In_Ref1 := The_Tuple.Cells (1);
In_Ref2 := The_Tuple.Cells (2);
In_Ref3 := The_Tuple.Cells (3);
In_Ref4 := The_Tuple.Cells (4);
In_Ref5 := The_Tuple.Cells (5);
In_Ref6 := The_Tuple.Cells (6);
In_Ref7 := The_Tuple.Cells (7);
In_Ref8 := The_Tuple.Cells (8);
In_Ref9 := The_Tuple.Cells (9);
In_Ref10 := The_Tuple.Cells (10);
end Split;
function Get (In_Tuple : Tuple.Object; The_Item : Positive := 1)
return Instance.Reference is
A_Reference : Instance.Reference := Instance.Null_Reference;
begin
if The_Item <= In_Tuple.Count then
A_Reference := In_Tuple.Cells (The_Item);
end if;
return A_Reference;
end Get;
procedure Add (In_Tuple : in out Tuple.Object;
The_Reference : Instance.Reference) is
begin
In_Tuple.Count := In_Tuple.Count + 1;
if In_Tuple.Count > In_Tuple.Unity then
raise Overflow;
else
In_Tuple.Cells (In_Tuple.Count) := The_Reference;
end if;
exception
when Constraint_Error =>
raise Overflow;
end Add;
procedure Merge (In_Tuple : in out Tuple.Object;
With_Size : Natural;
The_Ref_1 : Instance.Reference := Instance.Null_Reference;
The_Ref_2 : Instance.Reference := Instance.Null_Reference;
The_Ref_3 : Instance.Reference := Instance.Null_Reference;
The_Ref_4 : Instance.Reference := Instance.Null_Reference;
The_Ref_5 : Instance.Reference := Instance.Null_Reference;
The_Ref_6 : Instance.Reference := Instance.Null_Reference;
The_Ref_7 : Instance.Reference := Instance.Null_Reference;
The_Ref_8 : Instance.Reference := Instance.Null_Reference;
The_Ref_9 : Instance.Reference := Instance.Null_Reference;
The_Ref_10 : Instance.Reference :=
Instance.Null_Reference) is
begin
declare
use Instance;
begin
if With_Size >= 1 and With_Size <= 10 then
In_Tuple.Unity := With_Size;
else
In_Tuple.Unity := 1;
end if;
if The_Ref_1 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_1);
end if;
if The_Ref_2 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_2);
end if;
if The_Ref_3 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_3);
end if;
if The_Ref_4 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_4);
end if;
if The_Ref_5 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_5);
end if;
if The_Ref_6 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_6);
end if;
if The_Ref_7 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_7);
end if;
if The_Ref_8 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_8);
end if;
if The_Ref_9 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_9);
end if;
if The_Ref_10 /= Instance.Null_Reference then
Add (In_Tuple => In_Tuple, The_Reference => The_Ref_10);
end if;
end;
end Merge;
function Object_To_Tuple
(The_Reference : Instance.Reference) return Tuple.Object is
Result_Tuple : Tuple.Object;
begin
Add (In_Tuple => Result_Tuple, The_Reference => The_Reference);
return Result_Tuple;
end Object_To_Tuple;
procedure Sort (The_Tuple : in out Tuple.Object) is
Index : Integer range The_Tuple.Cells'First - 1 .. The_Tuple.Cells'Last;
A_Reference : Instance.Reference;
begin
for I in The_Tuple.Cells'First + 1 .. The_Tuple.Count - 1 loop
A_Reference := The_Tuple.Cells (I);
Index := I - 1;
while (Index /= The_Tuple.Cells'First - 1) and then
(A_Reference < The_Tuple.Cells (Index)) loop
The_Tuple.Cells (Index + 1) := The_Tuple.Cells (Index);
Index := Index - 1;
end loop;
The_Tuple.Cells (Index + 1) := A_Reference;
end loop;
end Sort;
end Tuple;
nblk1=d
nid=c
hdr6=18
[0x00] rec0=2b rec1=00 rec2=01 rec3=038
[0x01] rec0=04 rec1=00 rec2=03 rec3=054
[0x02] rec0=1a rec1=00 rec2=02 rec3=020
[0x03] rec0=19 rec1=00 rec2=08 rec3=04a
[0x04] rec0=19 rec1=00 rec2=09 rec3=036
[0x05] rec0=1c rec1=00 rec2=05 rec3=02a
[0x06] rec0=1d rec1=00 rec2=06 rec3=01e
[0x07] rec0=12 rec1=00 rec2=0d rec3=020
[0x08] rec0=05 rec1=00 rec2=0a rec3=08e
[0x09] rec0=15 rec1=00 rec2=04 rec3=00c
[0x0a] rec0=1b rec1=00 rec2=07 rec3=012
[0x0b] rec0=09 rec1=00 rec2=0b rec3=000
[0x0c] rec0=0a rec1=40 rec2=00 rec3=000
tail 0x2150b5434822b4e96c8c9 0x42a00088462063c03
Free Block Chain:
0xc: 0000 00 00 00 52 80 05 20 74 68 65 6e 05 00 47 20 20 ┆ R then G ┆