|
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: 12288 (0x3000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Instructions, seg_0495d8
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with Variables, Our_List, Our_String, Text_Io; package body Instructions is List_Of_Instructions : Our_Inst.List; Iter1 : Our_Inst.Iter; Iter2 : Our_Inst.Iter; Iter3 : Our_Inst.Iter; Iter4 : Our_Inst.Iter; Iter5 : Our_Inst.Iter; Current_Iter : Our_Inst.Iter; Seen_Aff_Comp : Boolean := False; First_Cell : Boolean := True; Current_Object : Our_Inst.Object; Name_Left : Our_String.Variable_String; Ext1_Left : Our_String.Variable_String; Ext2_Left : Our_String.Variable_String; Comp_Or_Affect : Our_String.Variable_String; Value : Our_String.Variable_String; Name_Right : Our_String.Variable_String; Ext1_Right : Our_String.Variable_String; Ext2_Right : Our_String.Variable_String; Operation : Our_String.Variable_String; The_Integer : Our_String.Variable_String; Level : Natural := 0; procedure Set_Name (The_Name : String) is begin if not (Seen_Aff_Comp) then Our_String.Copy (Name_Left, The_Name); First_Cell := False; else Our_String.Copy (Name_Right, The_Name); end if; end Set_Name; procedure Set_Ext1 (The_Ext1 : String) is begin if not (Seen_Aff_Comp) then Our_String.Copy (Ext1_Left, The_Ext1); else Our_String.Copy (Ext1_Right, The_Ext1); end if; end Set_Ext1; procedure Set_Ext2 (The_Ext2 : String) is begin if not (Seen_Aff_Comp) then Our_String.Copy (Ext2_Left, The_Ext2); else Our_String.Copy (Ext2_Right, The_Ext2); end if; end Set_Ext2; procedure Set_Value (The_Value : String) is begin Our_String.Copy (Value, The_Value); end Set_Value; procedure Set_Comp_Or_Affect (The_Comp_Or_Affect : String) is begin Our_String.Copy (Comp_Or_Affect, The_Comp_Or_Affect); Seen_Aff_Comp := True; end Set_Comp_Or_Affect; procedure Set_Operation (The_Operation : String) is begin Our_String.Copy (Operation, The_Operation); end Set_Operation; procedure Set_Integer (The_The_Integer : String) is begin Our_String.Copy (The_Integer, The_The_Integer); end Set_Integer; function Get_Seen_Aff_Comp return Boolean is begin return Seen_Aff_Comp; end Get_Seen_Aff_Comp; procedure Seen_Aff_Comp_True is begin Seen_Aff_Comp := True; end Seen_Aff_Comp_True; procedure Affect_All is begin Current_Object := Our_Inst.Affect (Our_String.Image (Name_Left), Our_String.Image (Ext1_Left), Our_String.Image (Ext2_Left), Our_String.Image (Comp_Or_Affect), Our_String.Image (Value), Our_String.Image (Name_Right), Our_String.Image (Ext1_Right), Our_String.Image (Ext2_Right), Our_String.Image (Operation), Our_String.Image (The_Integer)); end Affect_All; procedure Attach_Current_List is Tmp_List : Our_Inst.List; begin if Level = 0 then --Text_Io.Put_Line ("j'attache dans la liste principale,avant"); Our_Inst.Attach (List_Of_Instructions, Current_Object); --Text_Io.Put_Line ("j'attache dans la liste principale,apres"); Tmp_List := Our_Inst.Go_To_End (List_Of_Instructions); Iter1 := Our_Inst.Makelistiter (Tmp_List); elsif Level = 1 then --Text_Io.Put_Line ("j'attache dans la liste 1,avant"); Our_Inst.Attach (Iter1.Info.Pointer, Current_Object); --Text_Io.Put_Line ("j'attache dans la liste 1,apres"); Tmp_List := Our_Inst.Go_To_End (Iter1.Info.Pointer); Iter2 := Our_Inst.Makelistiter (Tmp_List); elsif Level = 2 then --Text_Io.Put_Line ("j'attache dans la liste 2,avant"); Our_Inst.Attach (Iter2.Info.Pointer, Current_Object); --Text_Io.Put_Line ("j'attache dans la liste 2,apres"); Tmp_List := Our_Inst.Go_To_End (Iter2.Info.Pointer); Iter3 := Our_Inst.Makelistiter (Tmp_List); elsif Level = 3 then --Text_Io.Put_Line ("j'attache dans la liste 3,avant"); Our_Inst.Attach (Iter3.Info.Pointer, Current_Object); --Text_Io.Put_Line ("j'attache dans la liste 3,apres"); Tmp_List := Our_Inst.Go_To_End (Iter3.Info.Pointer); Iter4 := Our_Inst.Makelistiter (Tmp_List); elsif Level = 4 then --Text_Io.Put_Line ("j'attache dans la liste 4,avant"); Our_Inst.Attach (Iter4.Info.Pointer, Current_Object); --Text_Io.Put_Line ("j'attache dans la liste 4,apres"); Tmp_List := Our_Inst.Go_To_End (Iter4.Info.Pointer); Iter5 := Our_Inst.Makelistiter (Tmp_List); elsif Level = 5 then --Text_Io.Put_Line ("j'attache dans la liste 5,avant"); Our_Inst.Attach (Iter5.Info.Pointer, Current_Object); --Text_Io.Put_Line ("j'attache dans la liste 5,apres"); end if; end Attach_Current_List; procedure Add_Level is begin Level := Level + 1; end Add_Level; procedure Sub_Level is begin Level := Level - 1; end Sub_Level; function Get_Level return Natural is begin return Level; end Get_Level; procedure Iter_On_Left_Variable is begin Variables.Init_Current_Variable (Our_String.Image (Current_Iter.Info.Name_Left)); if Our_String.Image (Current_Iter.Info.Ext1_Left) /= "" then Variables.Set_Current_Variable1 (Our_String.Image (Current_Iter.Info.Ext1_Left)); if Our_String.Image (Current_Iter.Info.Ext2_Left) /= "" then Variables.Set_Current_Variable2 (Our_String.Image (Current_Iter.Info.Ext2_Left)); end if; end if; end Iter_On_Left_Variable; procedure Iter_On_Right_Variable is begin Variables.Init_Current_Variable (Our_String.Image (Current_Iter.Info.Name_Right)); if Our_String.Image (Current_Iter.Info.Ext1_Right) /= "" then Variables.Set_Current_Variable1 (Our_String.Image (Current_Iter.Info.Ext1_Right)); if Our_String.Image (Current_Iter.Info.Ext2_Right) /= "" then Variables.Set_Current_Variable2 (Our_String.Image (Current_Iter.Info.Ext2_Right)); end if; end if; end Iter_On_Right_Variable; procedure Reset_Global_Var is begin Seen_Aff_Comp := False; Our_String.Free (Name_Left); Our_String.Free (Ext1_Left); Our_String.Free (Ext2_Left); Our_String.Free (Comp_Or_Affect); Our_String.Free (Value); Our_String.Free (Name_Right); Our_String.Free (Ext1_Right); Our_String.Free (Ext2_Right); Our_String.Free (Operation); Our_String.Free (The_Integer); end Reset_Global_Var; procedure Set_First_Cell_True is begin First_Cell := True; end Set_First_Cell_True; function Get_First_Cell return Boolean is begin return First_Cell; end Get_First_Cell; procedure Printall is begin Our_Inst.Printall (Our_Inst.Makelistiter (List_Of_Instructions)); end Printall; function Get_List_Of_Instructions return Our_Inst.List is begin return List_Of_Instructions; end Get_List_Of_Instructions; end Instructions;
nblk1=b nid=a hdr6=14 [0x00] rec0=23 rec1=00 rec2=01 rec3=01e [0x01] rec0=01 rec1=00 rec2=09 rec3=032 [0x02] rec0=27 rec1=00 rec2=02 rec3=038 [0x03] rec0=22 rec1=00 rec2=08 rec3=088 [0x04] rec0=15 rec1=00 rec2=06 rec3=046 [0x05] rec0=15 rec1=00 rec2=05 rec3=02a [0x06] rec0=18 rec1=00 rec2=0b rec3=00e [0x07] rec0=1d rec1=00 rec2=07 rec3=012 [0x08] rec0=1e rec1=00 rec2=03 rec3=00a [0x09] rec0=14 rec1=00 rec2=04 rec3=000 [0x0a] rec0=e7 rec1=33 rec2=80 rec3=000 tail 0x21546b686865e58a4d42c 0x42a00088462060003 Free Block Chain: 0xa: 0000 00 00 01 94 80 1c 63 68 65 20 64 61 6e 73 20 6c ┆ che dans l┆