DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦9068bbc5c⟧ TextFile

    Length: 3234 (0xca2)
    Types: TextFile
    Names: »B«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with Octet;
with Z_Debug;
package body Memoire is
    Toto : Pt_Tache_Memoire;
    -- TYPES ----------------------------------------------------------------

    type Mem is array (0 .. Adresse.Val_Max_Adresse) of Octet.T_Octet;


    -- VARIABLES ------------------------------------------------------------

    La_Memoire : Mem;
    La_Fin : Boolean := False;
    Msb, Lsb : Octet.T_Octet;
    -- PROCEDURES ----------------------------------------------------------

    procedure Creer is
    begin
        Toto := new T_Memoire;
    end Creer;


    -- TACHE ----------------------------------------------------------------

    task body T_Memoire is

    begin

        La_Memoire := (others => 0);

        while (not La_Fin) loop
            select

                ---------------------------------

                accept Charger_Fichier (Nom : String) do
                    null;
                end Charger_Fichier;

                ---------------------------------
            or

                accept Aff_Entre_2_Adresses
                          (Ad_Debut, Ad_Fin : Adresse.T_Adresse) do

                    for I in Ad_Debut .. Ad_Fin loop
                        Octet.Afficher_Octet_Hexa (La_Memoire (I));
                    end loop;

                end Aff_Entre_2_Adresses;

                ---------------------------------
            or

                accept Aff_Depuis_Adresse
                          (Ad_Debut : Adresse.T_Adresse; Taille : Mot.T_Mot) do

                    for I in Ad_Debut .. Ad_Debut + Taille loop
                        Octet.Afficher_Octet_Hexa (La_Memoire (I));
                    end loop;

                end Aff_Depuis_Adresse;


                ---------------------------------
            or
                accept Acces_Octet (Operation : T_Operation;
                                    Ad : Adresse.T_Adresse;
                                    Donnee : in out Octet.T_Octet) do

                    case Operation is
                        when Lire =>
                            Donnee := La_Memoire (Ad);

                        when Ecrire =>
                            La_Memoire (Ad) := Donnee;
                    end case;

                end Acces_Octet;

                ---------------------------------
            or
                accept Acces_Mot (Operation : T_Operation;
                                  Ad : Adresse.T_Adresse;
                                  Donnee : in out Mot.T_Mot) do

                    case Operation is
                        when Lire =>  
                            Msb := La_Memoire (Ad);
                            Lsb := La_Memoire (Ad + 1);
                            Donnee := Mot.Construire (Msb, Lsb);

                        when Ecrire =>
                            La_Memoire (Ad) := Mot.Poids_Fort (Donnee);
                            La_Memoire (Ad + 1) := Mot.Poids_Faible (Donnee);
                    end case;

                end Acces_Mot;

                ---------------------------------
            or
                accept Fin do
                    La_Fin := True;
                end Fin;


            end select;



        end loop;
    end T_Memoire;


end Memoire;