|
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: 12288 (0x3000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Fruit_Display_Working_Memory_4, seg_04bfa0
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Slot; with Output_Stream; with Fruit_Display_Environment_4; use Slot; package body Fruit_Display_Working_Memory_4 is use Kbs; use Fruit_Frames_4; procedure Default_Put is use Output_Stream; use Fact_Base; begin Working_Memory.Default_Put (Standard_Output); end Default_Put; procedure Load_Initial is use Slot.Operators; Max_Blocks : constant Integer := 20; type Blocks is record Label : Character; Pos_X, Pos_Y : Integer; end record; Environment : array (1 .. Max_Blocks) of Blocks; procedure Load_And_Display_Blocks is begin Environment (1) := (Label => 'Z', Pos_X => 2, Pos_Y => 1); Environment (2) := (Label => 'R', Pos_X => 2, Pos_Y => 2); Environment (3) := (Label => 'P', Pos_X => 2, Pos_Y => 3); Environment (4) := (Label => 'G', Pos_X => 3, Pos_Y => 1); Environment (5) := (Label => 'U', Pos_X => 3, Pos_Y => 2); Environment (6) := (Label => 'L', Pos_X => 3, Pos_Y => 3); Environment (7) := (Label => 'M', Pos_X => 7, Pos_Y => 1); Environment (8) := (Label => 'L', Pos_X => 8, Pos_Y => 1); Environment (9) := (Label => 'T', Pos_X => 5, Pos_Y => 1); Environment (10) := (Label => 'V', Pos_X => 5, Pos_Y => 2); Environment (11) := (Label => 'U', Pos_X => 6, Pos_Y => 1); Environment (12) := (Label => 'L', Pos_X => 4, Pos_Y => 1); Environment (13) := (Label => 'R', Pos_X => 9, Pos_Y => 1); Environment (14) := (Label => 'L', Pos_X => 10, Pos_Y => 1); Environment (15) := (Label => 'N', Pos_X => 11, Pos_Y => 1); Environment (19) := (Label => 'S', Pos_X => 6, Pos_Y => 2); Environment (20) := (Label => 'W', Pos_X => 6, Pos_Y => 3); -- the model Environment (16) := (Label => 'T', Pos_X => 12, Pos_Y => 1); Environment (17) := (Label => 'U', Pos_X => 12, Pos_Y => 2); Environment (18) := (Label => 'Z', Pos_X => 12, Pos_Y => 3); for I in 1 .. Max_Blocks loop Visual_Blocks.Add ((Label => Value (Environment (I).Label), Position_X => Min_X + Value (Environment (I).Pos_X - 1), Position_Y => Min_Y + Value (Environment (I).Pos_Y - 1))); Fruit_Display_Environment_4.Print_One_Block (Get (Min_X) + Environment (I).Pos_X - 1, Get (Min_Y) + Environment (I).Pos_Y - 1, (Environment (I).Label)); end loop; end Load_And_Display_Blocks; procedure Load_Visual_Markers is begin Visual_Markers.Add ((Marker_Name => Model_Marker_Name, Position_X => Min_X, Position_Y => Max_Y)); Visual_Markers.Add ((Marker_Name => New_Top_Copied_Model_Marker_Name, Position_X => Min_X, Position_Y => Max_Y)); Visual_Markers.Add ((Marker_Name => On_Table_Marker_Name, Position_X => Min_X, Position_Y => Max_Y)); Visual_Markers.Add ((Marker_Name => Selected_Block_Marker_Name, Position_X => Min_X, Position_Y => Max_Y)); Visual_Markers.Add ((Marker_Name => Top_Block_Marker_Name, Position_X => Min_X, Position_Y => Max_Y)); Visual_Markers.Add ((Marker_Name => Top_Copied_Model_Marker_Name, Position_X => Min_X, Position_Y => Max_Y)); Visual_Markers.Add ((Marker_Name => Search_Top_Block_Marker_Name, Position_X => Min_X, Position_Y => Max_Y)); end Load_Visual_Markers; procedure Load_Columns is use Slot; begin for I in Integer'(Get (Min_X)) .. Integer'(Get (Max_X)) loop Visual_Columns.Add ((Position_X => Value (I))); end loop; end Load_Columns; procedure Put_Model_Marker_On_Bottom_Right is begin Requests.Add ((Request_Name => Move_Request_Name, Marker_Name => Model_Marker_Name, Argument1 => Down_Direction, Argument2 => Max_Y)); Requests.Add ((Request_Name => Move_Request_Name, Marker_Name => Model_Marker_Name, Argument1 => Right_Direction, Argument2 => Max_X)); Markers.Add ((Marker_Name => Model_Marker_Name)); end Put_Model_Marker_On_Bottom_Right; procedure Put_New_Copied_Model_Marker_On_Bottom_Right is begin Requests.Add ((Request_Name => Move_Request_Name, Marker_Name => New_Top_Copied_Model_Marker_Name, Argument1 => Down_Direction, Argument2 => Max_Y)); Requests.Add ((Request_Name => Move_Request_Name, Marker_Name => New_Top_Copied_Model_Marker_Name, Argument1 => Left_Direction, Argument2 => Max_X)); Markers.Add ((Marker_Name => New_Top_Copied_Model_Marker_Name)); end Put_New_Copied_Model_Marker_On_Bottom_Right; begin Load_Columns; Load_And_Display_Blocks; Load_Visual_Markers; Put_Model_Marker_On_Bottom_Right; Put_New_Copied_Model_Marker_On_Bottom_Right; end Load_Initial; end Fruit_Display_Working_Memory_4;
nblk1=b nid=6 hdr6=10 [0x00] rec0=27 rec1=00 rec2=01 rec3=018 [0x01] rec0=0d rec1=00 rec2=09 rec3=07e [0x02] rec0=17 rec1=00 rec2=08 rec3=00a [0x03] rec0=03 rec1=00 rec2=0b rec3=06e [0x04] rec0=10 rec1=00 rec2=03 rec3=04a [0x05] rec0=18 rec1=00 rec2=05 rec3=06e [0x06] rec0=17 rec1=00 rec2=07 rec3=012 [0x07] rec0=04 rec1=00 rec2=04 rec3=000 [0x08] rec0=17 rec1=00 rec2=07 rec3=012 [0x09] rec0=04 rec1=00 rec2=04 rec3=000 [0x0a] rec0=13 rec1=00 rec2=04 rec3=000 tail 0x21751bd30869263c8b5cd 0x42a00088462063c03 Free Block Chain: 0x6: 0000 00 02 00 3a 00 37 20 20 20 20 20 20 20 20 20 20 ┆ : 7 ┆ 0x2: 0000 00 0a 00 09 80 06 6c 20 3d 3e 20 27 06 20 20 20 ┆ l => ' ┆ 0xa: 0000 00 00 00 06 80 03 6e 74 20 03 20 20 20 50 08 20 ┆ nt P ┆