DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4abf3a5a6⟧ Ada Source

    Length: 18432 (0x4800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Motor, seg_038380, seg_03838a, seg_039008, seg_039073

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with Text_Io;  
with String_Utilities;  
with Sequential_Io;

with Serial_Io;
with Window_Io;
package body Motor is

    subtype Trame is String (1 .. 14);  
    subtype Numero_Ascii is String (1 .. 2);
    subtype Commande_Ascii is String (1 .. 4);
    subtype Dixieme_De_Seconde is Duration range 0.0 .. Duration'Last;

    type Evenement is
        record
            Date_Relative : Natural;  
            Numero_Station : Numero;
            Numero_Acteur : Numero;
            Valeur : Commande := 0;
            Transition : Commande := 0;
        end record;

    package Codes_Io is new Sequential_Io (Element_Type => Evenement);
    Nom_Du_Fichier_Logique : Codes_Io.File_Type;


    procedure Ouvrir_En_Lecture (Nom_Du_Fichier_Physique : String) is
    begin
        Codes_Io.Open (File => Nom_Du_Fichier_Logique,
                       Mode => Codes_Io.In_File,
                       Name => Nom_Du_Fichier_Physique);

        Text_Io.Put ("Ouverture du fichier : ");
        Text_Io.Put_Line (Nom_Du_Fichier_Physique);

    end Ouvrir_En_Lecture;


    procedure Ouvrir (Nom_Du_Fichier_Physique : String) is
    begin
        Codes_Io.Create (File => Nom_Du_Fichier_Logique,
                         Mode => Codes_Io.Out_File,
                         Name => Nom_Du_Fichier_Physique);  
        Text_Io.Put ("Creation du fichier : ");
        Text_Io.Put_Line (Nom_Du_Fichier_Physique);
    end Ouvrir;


    procedure Fermer is
    begin
        Codes_Io.Close (File => Nom_Du_Fichier_Logique);
        Text_Io.Put_Line ("Fermeture du fichier.");
    end Fermer;


    procedure Ecrire (Donnees : Evenement) is
    begin
        Text_Io.Put_Line ("Ecriture des donnees dans le fichier...");
        Codes_Io.Write (Nom_Du_Fichier_Logique, Donnees);
    end Ecrire;


    procedure Inserer_Un_Evenement (Un_Temps_Relatif : Natural;
                                    Une_Adresse_Station : Numero;
                                    Numero_Acteur : Numero;
                                    Valeur : Commande := 0;
                                    Transition : Commande := 0) is
        Un_Evenement : Evenement;
    begin
        Un_Evenement.Date_Relative := Un_Temps_Relatif;
        Un_Evenement.Numero_Station := Une_Adresse_Station;
        Un_Evenement.Numero_Acteur := Numero_Acteur;
        Un_Evenement.Valeur := Valeur;
        Un_Evenement.Transition := Transition;
        Ecrire (Un_Evenement);
    end Inserer_Un_Evenement;




    procedure Inserer_Une_Action (Un_Temps_Relatif : Natural;
                                  Une_Adresse_Station : Numero;
                                  Une_Action : Action;
                                  De : Commande := -1;
                                  Vers : Commande := -1;
                                  En : Commande := -1) is separate;

    procedure Attendre (Source : Evenement) is
        Temps_Relatif : Dixieme_De_Seconde;

    begin
        Temps_Relatif := Dixieme_De_Seconde (Source.Date_Relative) / 10;
        delay Temps_Relatif;  
    end Attendre;


    procedure Normaliser (Source : Standard_String.Object;
                          Destination : in out String) is separate;

    function Fabriquer_La_Trame
                (A_Partir : Evenement) return String is separate;

    procedure Envoyer_Trame (Source : Evenement) is separate;

    procedure Ouvrir_Menu (Menu_Window : in out
                              Window_Io.File_Type) is separate;

    procedure Fermer_Menu (Menu_Window : in out
                              Window_Io.File_Type) is separate;

    procedure Jouer (Nom_Du_Fichier_Physique : String) is separate;

end Motor;

E3 Meta Data

    nblk1=11
    nid=e
    hdr6=a
        [0x00] rec0=22 rec1=00 rec2=01 rec3=024
        [0x01] rec0=00 rec1=00 rec2=10 rec3=024
        [0x02] rec0=20 rec1=00 rec2=03 rec3=010
        [0x03] rec0=18 rec1=00 rec2=02 rec3=022
        [0x04] rec0=19 rec1=00 rec2=0d rec3=000
        [0x05] rec0=08 rec1=00 rec2=10 rec3=000
        [0x06] rec0=08 rec1=00 rec2=10 rec3=000
        [0x07] rec0=14 rec1=00 rec2=0e rec3=08e
        [0x08] rec0=08 rec1=00 rec2=10 rec3=000
        [0x09] rec0=08 rec1=00 rec2=10 rec3=000
        [0x0a] rec0=1c rec1=00 rec2=04 rec3=04e
        [0x0b] rec0=18 rec1=00 rec2=11 rec3=056
        [0x0c] rec0=1c rec1=00 rec2=0c rec3=030
        [0x0d] rec0=18 rec1=00 rec2=0b rec3=042
        [0x0e] rec0=08 rec1=00 rec2=0d rec3=000
        [0x0f] rec0=0a rec1=00 rec2=0d rec3=000
        [0x10] rec0=09 rec1=00 rec2=0d rec3=000
    tail 0x215316d3484e73b9ac9b2 0x42a00088462060003
Free Block Chain:
  0xe: 0000  00 0f 03 fc 80 15 69 6e 65 20 28 4d 65 6e 75 5f  ┆      ine (Menu_┆
  0xf: 0000  00 09 03 85 80 0c 6f 5f 53 74 61 74 69 6f 6e 29  ┆      o_Station)┆
  0x9: 0000  00 07 00 69 80 10 74 72 65 20 65 6e 76 6f 79 65  ┆   i  tre envoye┆
  0x7: 0000  00 06 03 fc 80 03 29 29 3b 03 00 32 20 20 20 20  ┆      ));  2    ┆
  0x6: 0000  00 05 03 fc 80 30 54 72 61 6d 65 5f 56 61 6c 65  ┆     0Trame_Vale┆
  0x5: 0000  00 0b 03 fc 80 16 6e 74 65 72 6d 65 64 69 61 69  ┆      ntermediai┆
  0xb: 0000  00 0c 03 f9 80 10 20 49 73 5f 4d 65 6e 75 5f 4f  ┆       Is_Menu_O┆
  0xc: 0000  00 11 03 fc 80 02 65 3b 02 00 2a 20 20 20 20 20  ┆      e;  *     ┆
  0x11: 0000  00 04 03 fc 80 05 5f 4c 69 6e 65 05 00 45 20 20  ┆      _Line  E  ┆
  0x4: 0000  00 08 03 fc 80 44 20 20 20 20 20 20 20 20 20 20  ┆     D          ┆
  0x8: 0000  00 0a 00 05 80 02 20 20 02 03 20 20 20 03 03 03  ┆                ┆
  0xa: 0000  00 00 00 15 80 0c 69 63 68 69 65 72 20 3a 20 22  ┆      ichier : "┆