|
|
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: 14336 (0x3800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Main, seg_048091
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Text_Io, Lexical;
with Nom_Jeu, Les_Actions, Les_Definitions, Les_Presentations;
with Les_Liaisons, L_Introduction, Les_Anims_Globales,
Les_Anims_Generales, Les_Anims_Locales, Fin_Jeu, Erreur;
with Verbs_Dictionary, Comps_Dictionary;
with Models, Symbols;
with Set_Of_Links, Set_Of_Connections;
with Player_Entries, Interprete;
with Liste_D_Instructions;
with Displays, Bounded_String;
use Text_Io;
procedure Main is
Nomf : Bounded_String.Variable_String (80);
Dict : Verbs_Dictionary.Object;
Comp : Comps_Dictionary.Object;
Models_Table : Models.Object;
Symbols_Table : Symbols.Object;
Links : Set_Of_Links.Object;
Connect : Set_Of_Connections.Object;
Liste_Introduction : Liste_D_Instructions.Object;
Liste_Generale : Liste_D_Instructions.Object;
Liste_Globale : Liste_D_Instructions.Object;
Liste_Locale : Liste_D_Instructions.Object;
function Get_Game_Name return String is Handle : Text_Io.File_Type;
The_Name : String (1 .. 80);
The_Length : Natural;
Valid_Entry : Boolean;
Confirm : Character;
begin
loop
Valid_Entry := True;
Text_Io.Put ("Nom du Jeu : ");
Text_Io.Get_Line (The_Name, The_Length);
declare
begin
Text_Io.Open (File => Handle,
Mode => Text_Io.In_File,
Name => The_Name (1 .. The_Length));
exception
when others =>
Valid_Entry := False;
end;
if Valid_Entry then
Text_Io.Close (File => Handle);
return The_Name (1 .. The_Length);
end if;
Text_Io.Put
("Le fichier specifie est inexistant , continuer ? [o/n]");
Text_Io.Get (Confirm);
if (Confirm /= 'o' and Confirm /= 'O') then
Text_Io.Put_Line ("Tant pis , A bientot");
return "";
end if;
Text_Io.Skip_Line;
end loop;
end Get_Game_Name;
begin
Bounded_String.Copy (Nomf, Get_Game_Name);
if (Bounded_String.Length (Nomf) > 0) then
Lexical.Init (Bounded_String.Image (Nomf));
Lexical.Next;
Verbs_Dictionary.Create (Dict);
Comps_Dictionary.Create (Comp);
Models.Create (Models_Table);
Symbols.Create (Symbols_Table);
Set_Of_Links.Create (Links);
Set_Of_Connections.Create (Connect);
Liste_Introduction := Liste_D_Instructions.Creation;
Liste_Generale := Liste_D_Instructions.Creation;
Liste_Globale := Liste_D_Instructions.Creation;
Liste_Locale := Liste_D_Instructions.Creation;
Put ("Nom_Jeu ............... ");
Nom_Jeu.Parse;
Put_Line ("OK");
Put ("Les_Actions ........... ");
Les_Actions.Parse (Dict);
Put_Line ("OK");
Put ("Les_Definitions ....... ");
Les_Definitions.Parse (Models_Table, Symbols_Table);
Put_Line ("OK");
Put ("Les_Presentations ..... ");
Les_Presentations.Parse (Models_Table, Symbols_Table, Comp);
Put_Line ("OK");
Put ("Les_Liaisons .......... ");
Les_Liaisons.Parse (Comp, Connect, Links);
Put_Line ("OK");
Put ("L_Introduction ........ ");
L_Introduction.Parse (Liste_Introduction, Models_Table,
Symbols_Table, Comp, Dict);
Put_Line ("OK");
Put ("Les_Anims_Generales ... ");
Les_Anims_Generales.Parse (Liste_Generale, Models_Table,
Symbols_Table, Comp, Dict);
Put_Line ("OK");
Put ("Les_Anims_Globales .... ");
Les_Anims_Globales.Parse (Liste_Globale, Models_Table,
Symbols_Table, Comp, Dict);
Put_Line ("OK");
Put ("Les_Anims_Locales ..... ");
Les_Anims_Locales.Parse (Liste_Locale, Models_Table,
Symbols_Table, Comp, Dict);
Put_Line ("OK");
Put ("Fin_Jeu ............... ");
Fin_Jeu.Parse;
Put_Line ("OK");
if not Erreur.Probleme_De_Compilation then
Text_Io.Put_Line ("Source Ok.");
declare
End_Of_The_Game : Boolean := False;
Player_Command : Player_Entries.Token;
Jeu_Termine : Boolean := False;
Instruct_Executee : Boolean := False;
Mode_Trace : Boolean := False;
begin
Liste_D_Instructions.Executer
(Liste_Introduction, Models_Table, Symbols_Table, Connect,
Links, Comp, Jeu_Termine, False, Instruct_Executee);
while not End_Of_The_Game and not Jeu_Termine loop
Player_Command := Interprete.Get_Player (Comp, Dict);
case Player_Command is
when Player_Entries.Fin =>
End_Of_The_Game := True;
when Player_Entries.Verbe =>
Text_Io.Put_Line
("-- Liste des Verbes -------------------------------------------------");
Verbs_Dictionary.Dump (Dict);
when Player_Entries.Complement =>
Text_Io.Put_Line
("-- Liste des Complements --------------------------------------------");
Comps_Dictionary.Dump (Comp);
when Player_Entries.Modele =>
Text_Io.Put_Line
("-- Liste des Models :Definition des types ---------------------------");
Models.Dump_Models (Models_Table);
when Player_Entries.Symbole =>
Text_Io.Put_Line
("-- Table des Symboles -----------------------------------------------");
Symbols.Dump_Symbols (Symbols_Table);
when Player_Entries.Connexion =>
Text_Io.Put_Line
("-- Liste des Connexions --------------------------------------------");
Set_Of_Connections.Dump (Connect);
when Player_Entries.Lien =>
Text_Io.Put_Line
("-- Liste des Liens --------------------------------------------------");
Set_Of_Links.Dump (Links);
when Player_Entries.Introduction =>
Text_Io.Put_Line
("-- Instructions d' Introduction -------------------------------------");
Liste_D_Instructions.Afficher (Liste_Introduction);
when Player_Entries.General =>
Text_Io.Put_Line
("-- Instructions Generales -------------------------------------------");
Liste_D_Instructions.Afficher (Liste_Generale);
when Player_Entries.Global =>
Text_Io.Put_Line
("-- Instructions Globales --------------------------------------------");
Liste_D_Instructions.Afficher (Liste_Globale);
when Player_Entries.Local =>
Text_Io.Put_Line
("-- Instructions Locales ---------------------------------------------");
when Player_Entries.Trace =>
if Mode_Trace then
Text_Io.Put_Line ("-- Mode Trace: INACTIF");
else
Text_Io.Put_Line ("-- Mode Trace: ACTIF");
end if;
Mode_Trace := not Mode_Trace;
when Player_Entries.Id =>
Instruct_Executee := False;
Liste_D_Instructions.Executer
(Liste_Generale, Models_Table, Symbols_Table,
Connect, Links, Comp, Jeu_Termine,
Mode_Trace, Instruct_Executee);
if not Jeu_Termine then
Instruct_Executee := False;
Liste_D_Instructions.Executer
(Liste_Locale, Models_Table, Symbols_Table,
Connect, Links, Comp, Jeu_Termine,
Mode_Trace, Instruct_Executee);
if not Instruct_Executee and
not Jeu_Termine then
Liste_D_Instructions.Executer
(Liste_Globale, Models_Table,
Symbols_Table, Connect,
Links, Comp, Jeu_Termine,
Mode_Trace, Instruct_Executee);
end if;
end if;
when others =>
Text_Io.Put_Line
("-- Option non implementee --------------------------------------------------");
end case;
end loop;
end;
else
Put_Line ("Erreurs !!!");
end if;
Text_Io.Put_Line ("See you ...");
Liste_D_Instructions.Detruire (Liste_Introduction);
Liste_D_Instructions.Detruire (Liste_Generale);
Liste_D_Instructions.Detruire (Liste_Globale);
Liste_D_Instructions.Detruire (Liste_Locale);
Verbs_Dictionary.Destroy (Dict);
Comps_Dictionary.Destroy (Comp);
Models.Dispose_Object (Models_Table);
Symbols.Dispose_Object (Symbols_Table);
Set_Of_Links.Destroy (Links);
Set_Of_Connections.Destroy (Connect);
Lexical.Close;
end if;
exception
when Erreur.Erreur_Syntaxe =>
Text_Io.Put_Line (" -- Erreur Fatale");
Text_Io.Put_Line ("Bye, bye...");
Verbs_Dictionary.Destroy (Dict);
when Verbs_Dictionary.Duplicate_Value =>
Text_Io.Put ("Lg:");
Text_Io.Put (Natural'Image (Lexical.Get_Line));
Text_Io.Put (" Cl:");
Text_Io.Put (Natural'Image (Lexical.Get_Column));
-- when others => Text_Io.Put_Line ("Erreur inconnue");
end Main;
nblk1=d
nid=0
hdr6=1a
[0x00] rec0=23 rec1=00 rec2=01 rec3=002
[0x01] rec0=1a rec1=00 rec2=0d rec3=060
[0x02] rec0=21 rec1=00 rec2=0c rec3=030
[0x03] rec0=02 rec1=00 rec2=07 rec3=00a
[0x04] rec0=1b rec1=00 rec2=04 rec3=008
[0x05] rec0=1b rec1=00 rec2=0a rec3=000
[0x06] rec0=12 rec1=00 rec2=0b rec3=034
[0x07] rec0=0f rec1=00 rec2=08 rec3=054
[0x08] rec0=0e rec1=00 rec2=09 rec3=034
[0x09] rec0=12 rec1=00 rec2=03 rec3=06c
[0x0a] rec0=18 rec1=00 rec2=05 rec3=016
[0x0b] rec0=1e rec1=00 rec2=02 rec3=00c
[0x0c] rec0=04 rec1=00 rec2=06 rec3=001
tail 0x2174b739e8657493c7312 0x42a00088462060003