|
|
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: 9216 (0x2400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Bloc, seg_039090
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
generic
type Symbole is private;
with function Equal (Left, Right : Symbole) return Boolean is <>;
package Bloc is -- beau paquetage generique fabrique artisanalement !
type Liste (Type_Cont : Boolean) is private;
type Pliste is private;
function Nouveau_Pere return Boolean;
function Nouveau_Bloc_Frere_Cadet return Boolean;
function Nouveau_Bloc_Frere_Aine return Boolean;
function Nouveau_Bloc_Fils return Boolean;
function Va_Bloc_Fils return Boolean;
function Va_Bloc_Pere return Boolean;
function Va_Bloc_Frere_Aine return Boolean;
function Va_Bloc_Frere_Cadet return Boolean;
function Dernier_Bloc return Boolean;
procedure Insere_Offset (Un_Temps : Integer);
function Donne_Offset return Integer;
function Donne_Profondeur return Integer;
function Scene_Existe (Un_Nom : Symbole) return Boolean;
function Insere_Scene (Un_Nom : Symbole) return Boolean;
function Va_Scene (Un_Nom : Symbole) return Boolean;
procedure Insere_Type_Bloc (Un_Nom : Symbole);
function Donne_Type_Bloc return Symbole;
function Donne_Nouvelle_Liste (Type_Liste : Boolean) return Pliste;
function Liste_Vide return Pliste;
procedure Memorise_Bloc_Courant (I : Integer);
procedure Retourne_Bloc_Memorise (I : Integer);
procedure Insere_Liste_Symbole (Un_Element : Symbole; Une_Valeur : Integer);
procedure Insere_Liste_Symbole (Un_Element : Symbole; Une_Liste : Liste);
procedure Insere_Liste_Action (Une_Action : Symbole;
Un_Acteur : Symbole;
De : Integer;
Vers : Integer;
En : Integer);
function Qui_Es_Tu (Un_Element : Symbole) return Liste;
procedure Liste_Action_Donne (Une_Action : out Symbole;
Un_Acteur : out Symbole;
De : out Integer;
Vers : out Integer;
En : out Integer);
function Liste_Action_Suivante return Boolean;
function Liste_Action_Init return Boolean;
procedure Prend_Liste (Une_Liste : in Liste);
function Donne_Type_Liste return Boolean;
function Donne_Taille_Liste return Integer;
function Suivant return Boolean;
function Donne_Element return Symbole;
function Donne_Element return Integer;
procedure Concate (Un_Element : Symbole; Une_Liste : in out Pliste);
procedure Concate (Une_Valeur : Integer; Une_Liste : in out Pliste);
procedure Construit_Liste_Offset;
function Suivant_Liste_Offset_Est_Bloc_Courant return Boolean;
function Init_Liste_Offset (Un_Nom : Symbole) return Boolean;
private
type Pliste is access Liste;
type Liste (Type_Cont : Boolean) is
record
Suivant : Pliste := null;
Precedent : Pliste := null;
case Type_Cont is
when True =>
Contenu : Symbole;
when False =>
Valeur : Integer;
end case;
end record;
type Grande_Liste (Action : Boolean);
type Pgrande_Liste is access Grande_Liste;
type Grande_Liste (Action : Boolean) is
record
Suivant : Pgrande_Liste := null;
Precedent : Pgrande_Liste := null;
case Action is
when False =>
Index : Pliste := null;
Contenu : Symbole;
when True =>
Une_Action : Symbole;
Un_Acteur : Symbole;
De, Vers, En : Integer := -10;
end case;
end record;
type Le_Bloc;
type Pbloc is access Le_Bloc;
--les types suivant sont dans cette partie car on les instancie, de maniere indirecte, par symbole.
type Le_Bloc is
record
Liste_Symbole : Pgrande_Liste := null;
Liste_Action : Pgrande_Liste := null;
Offset : Integer := 0;
Rep : Integer := -1;
Type_Bloc : Symbole;
Dernier_Bloc : Boolean;
Le_Pere : Pbloc := null;
Le_Fils : Pbloc := null;
Le_Frere_Aine : Pbloc := null;
Le_Frere_Cadet : Pbloc := null;
Un_Compteur : Integer range 1 .. 32 := 1;
Profondeur : Integer := 0;
end record;
end Bloc;
nblk1=8
nid=2
hdr6=e
[0x00] rec0=1b rec1=00 rec2=01 rec3=01c
[0x01] rec0=02 rec1=00 rec2=08 rec3=04a
[0x02] rec0=15 rec1=00 rec2=07 rec3=054
[0x03] rec0=1a rec1=00 rec2=06 rec3=042
[0x04] rec0=03 rec1=00 rec2=03 rec3=004
[0x05] rec0=1e rec1=00 rec2=05 rec3=042
[0x06] rec0=0c rec1=00 rec2=04 rec3=001
[0x07] rec0=28 rec1=4d rec2=d4 rec3=5ee
tail 0x2153211c084e97c8213c3 0x42a00088462060003
Free Block Chain:
0x2: 0000 00 00 00 55 80 13 63 63 65 73 73 20 47 72 61 6e ┆ U ccess Gran┆