|
|
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: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Gr_003, seg_005523
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Gr_Random;
use Gr_Random;
with Gr_State_Test;
with Test_Io;
use Test_Io;
with Xlbt_Arithmetic;
use Xlbt_Arithmetic;
with Xlbt_Basic;
use Xlbt_Basic;
with Xlbt_Font;
use Xlbt_Font;
with Xlbt_Graphics;
use Xlbt_Graphics;
with Xlbp_Event;
use Xlbp_Event;
with Xlbp_Graphics;
use Xlbp_Graphics;
procedure Gr_003 is
List : X_Segment_List;
procedure Generate_List (Dpy : X_Display;
Width : S_Short;
Height : S_Short) is
Count : S_Long := Dpy.Poly_Segment_Limit;
begin
List := new X_Segment_Array (1 .. Count);
for I in 1 .. Count loop
List (I).X1 := Random_X (Width);
List (I).Y1 := Random_Y (Height - 15) + 15;
List (I).X2 := Random_X (Width);
List (I).Y2 := Random_Y (Height - 15) + 15;
end loop;
end Generate_List;
procedure Draw (Dpy : X_Display;
Window : X_Window;
Gc : X_Gc;
Font : X_Font_Struct;
Width : S_Short;
Height : S_Short;
Per_Message : S_Natural) is
Flush : S_Natural := 0;
I : S_Natural;
J : S_Natural;
begin
I := List'First;
while I < List'Last loop
if List'Last - I + 1 >= Per_Message then
J := I + Per_Message - 1;
else
J := List'Last;
end if;
X_Draw_Segments (Dpy, Window.Drawable, Gc, List (I .. J));
Flush := Flush + 1;
if Flush >= Per_Message then
X_Flush (Dpy);
Flush := 0;
end if;
I := J + 1;
end loop;
end Draw;
procedure Do_Graphics (Dpy : X_Display;
State : in out Natural;
Window : X_Window;
Gc : X_Gc;
Font : X_Font_Struct;
Width : S_Short;
Height : S_Short) is
begin
if List = None_X_Segment_List then
Generate_List (Dpy, Width, Height);
end if;
case State is
when 1 =>
X_Draw_Segments (Dpy, Window.Drawable, Gc,
List (List'First .. List'First +
List'Length / 2 - 1));
when 2 =>
X_Draw_Segments (Dpy, Window.Drawable, Gc, List.all);
when 3 =>
Draw (Dpy, Window, Gc, Font, Width, Height, 1);
when 4 =>
Draw (Dpy, Window, Gc, Font, Width, Height, 5);
when 5 =>
Draw (Dpy, Window, Gc, Font, Width, Height, S_Natural'Last);
when others =>
Free_X_Segment_List (List);
State := 0;
end case;
end Do_Graphics;
procedure Test is new Gr_State_Test (Do_Graphics);
begin
Test;
end Gr_003;
nblk1=5
nid=0
hdr6=a
[0x00] rec0=2a rec1=00 rec2=01 rec3=05c
[0x01] rec0=1f rec1=00 rec2=02 rec3=034
[0x02] rec0=00 rec1=00 rec2=05 rec3=010
[0x03] rec0=16 rec1=00 rec2=03 rec3=036
[0x04] rec0=0e rec1=00 rec2=04 rec3=000
tail 0x21500a20681978b6e88b7 0x42a00088462063203