|
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 - download
Length: 14336 (0x3800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Tuple, seg_01185e
└─⟦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 0x2150d03ce823d49d5ffb7 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 ┆