|
|
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: 22528 (0x5800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Segment, seg_051e71
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Defined_Type;
with System;
with Simple_Io;
with Vme;
with Vsip;
with V_Bits;
procedure Segment is
package Vsip1 is new Vsip (Base_Address => 16#8000#,
Vme_Position => Vme.Slot0,
Scim_0 => Defined_Type.Mod101,
Scim_1 => Defined_Type.No_Module,
Scim_2 => Defined_Type.No_Module,
Scim_3 => Defined_Type.No_Module);
package Module is new Vsip1.Mod101 (Base_Address_Module => 16#600#);
N : Integer;
procedure Await is
I : Integer;
begin
for I in 1 .. 100000 loop
null;
end loop;
end Await;
procedure Coder is
Entier : Integer;
Octet : Defined_Type.Octet;
use Module;
begin
Octet := Read_Group (Gp => Group1);
Entier := V_Bits.Bit_And (Defined_Type.Octet'Pos (Octet), 2#00000111#);
case Entier is
when 0 =>
Write_Group (Gp => Group0, Value => 16#FE#);
when 1 =>
Write_Group (Gp => Group0, Value => 16#FD#);
when 2 =>
Write_Group (Gp => Group0, Value => 16#FB#);
when 3 =>
Write_Group (Gp => Group0, Value => 16#F7#);
when 4 =>
Write_Group (Gp => Group0, Value => 16#EF#);
when 5 =>
Write_Group (Gp => Group0, Value => 16#DF#);
when 6 =>
Write_Group (Gp => Group0, Value => 16#BF#);
when 7 =>
Write_Group (Gp => Group0, Value => 16#7F#);
when others =>
Write_Group (Gp => Group0, Value => 16#FF#);
end case;
end Coder;
procedure Wait_Chgt is
D0, D1, D2, Old_D0, Old_D1, Old_D2 : Boolean;
use Module;
begin
D0 := Read_Pin (13);
D1 := Read_Pin (14);
D2 := Read_Pin (15);
Simple_Io.Put (" D0 -> ");
Simple_Io.Put (Boolean'Image (D0));
Simple_Io.Put (" : D1 -> ");
Simple_Io.Put (Boolean'Image (D1));
Simple_Io.Put (" : D2 -> ");
Simple_Io.Put (Boolean'Image (D2));
Simple_Io.Put_Line ("");
Old_D0 := D0;
Old_D1 := D1;
Old_D2 := D2;
while D0 = Old_D0 and D1 = Old_D1 and D2 = Old_D2 loop
D0 := Read_Pin (13);
D1 := Read_Pin (14);
D2 := Read_Pin (15);
end loop;
end Wait_Chgt;
use Module;
begin
Vsip1.Setup;
Setup;
Protection_Off;
Led_On;
Write_Group (Gp => Group0, Value => 16#FF#);
for N in 1 .. 10 loop
Coder;
Wait_Chgt;
end loop;
Write_Group (Gp => Group0, Value => 16#FF#);
for N in 1 .. 20 loop
Write_Pin (3, False);
Await;
Write_Pin (3, True);
Write_Pin (4, False);
Await;
Write_Pin (4, True);
Write_Pin (5, False);
Await;
Write_Pin (5, True);
Write_Pin (6, False);
Await;
Write_Pin (6, True);
Write_Pin (7, False);
Await;
Write_Pin (7, True);
Write_Pin (8, False);
Await;
Write_Pin (8, True);
Write_Pin (9, False);
Await;
Write_Pin (9, True);
Write_Pin (6, True);
Await;
Write_Pin (6, False);
end loop;
Write_Group (Gp => Group0, Value => 16#00#);
exception
when Module.Pin_Error =>
Simple_Io.Put_Line ("Pin unauthorized operation !!!");
end Segment;
pragma Main;
nblk1=15
nid=14
hdr6=8
[0x00] rec0=22 rec1=00 rec2=01 rec3=09e
[0x01] rec0=1c rec1=00 rec2=04 rec3=01c
[0x02] rec0=27 rec1=00 rec2=15 rec3=02e
[0x03] rec0=20 rec1=00 rec2=13 rec3=000
[0x04] rec0=1f rec1=00 rec2=14 rec3=000
[0x05] rec0=09 rec1=00 rec2=05 rec3=000
[0x06] rec0=28 rec1=0c rec2=00 rec3=038
[0x07] rec0=48 rec1=76 rec2=f7 rec3=202
[0x08] rec0=91 rec1=ec rec2=00 rec3=007
[0x09] rec0=09 rec1=0e rec2=de rec3=740
[0x0a] rec0=50 rec1=43 rec2=70 rec3=000
[0x0b] rec0=e1 rec1=00 rec2=00 rec3=000
[0x0c] rec0=24 rec1=00 rec2=15 rec3=767
[0x0d] rec0=00 rec1=00 rec2=00 rec3=002
[0x0e] rec0=00 rec1=00 rec2=00 rec3=029
[0x0f] rec0=00 rec1=00 rec2=00 rec3=000
[0x10] rec0=00 rec1=00 rec2=00 rec3=000
[0x11] rec0=00 rec1=00 rec2=00 rec3=000
[0x12] rec0=00 rec1=00 rec2=00 rec3=000
[0x13] rec0=00 rec1=00 rec2=00 rec3=000
[0x14] rec0=00 rec1=00 rec2=00 rec3=000
tail 0x21759590c879c822b8007 0x42a00088462060003
Free Block Chain:
0x14: 0000 00 03 03 3c 80 0d 20 20 20 20 20 20 20 41 77 61 ┆ < Awa┆
0x3: 0000 00 12 00 26 80 07 6e 20 28 31 34 29 3b 07 00 19 ┆ & n (14); ┆
0x12: 0000 00 11 03 fc 80 38 20 20 20 20 20 20 20 20 20 20 ┆ 8 ┆
0x11: 0000 00 10 03 fc 80 1f 20 20 20 20 20 20 20 20 20 20 ┆ ┆
0x10: 0000 00 0f 03 fc 80 15 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ **********┆
0xf: 0000 00 0e 03 fc 80 1a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ **********┆
0xe: 0000 00 0d 03 fc 80 0c 65 6e 64 20 4c 65 64 5f 4f 66 ┆ end Led_Of┆
0xd: 0000 00 0c 03 fc 80 29 20 20 43 6f 6e 6e 65 63 74 6f ┆ ) Connecto┆
0xc: 0000 00 0b 03 fc 80 1c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ **********┆
0xb: 0000 00 0a 03 fc 80 10 6e 20 3a 3d 20 44 61 74 61 27 ┆ n := Data'┆
0xa: 0000 00 09 03 fc 80 15 65 72 5f 47 72 6f 75 70 5f 33 ┆ er_Group_3┆
0x9: 0000 00 08 03 fc 80 28 6f 74 20 48 61 76 65 20 61 20 ┆ (ot Have a ┆
0x8: 0000 00 07 03 fc 80 26 65 72 5f 47 72 6f 75 70 5f 34 ┆ &er_Group_4┆
0x7: 0000 00 05 03 fc 00 22 20 20 20 20 20 20 20 20 20 20 ┆ " ┆
0x5: 0000 00 06 03 fa 80 17 20 66 69 6e 69 73 68 20 56 73 ┆ finish Vs┆
0x6: 0000 00 02 03 fc 80 15 20 20 20 52 65 67 69 73 74 65 ┆ Registe┆
0x2: 0000 00 00 03 fc 80 03 6d 65 3b 03 00 0c 77 69 74 68 ┆ me; with┆