|
|
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_04becf
└─⟦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=0b rec3=00a
[0x03] rec0=03 rec1=00 rec2=08 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 0x217518cfc86916ffa49d3 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 ┆