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

⟦b6c8dc690⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Memoire, seg_010617

Derivation

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

E3 Source Code



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;


E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=29 rec1=00 rec2=01 rec3=008
        [0x01] rec0=00 rec1=00 rec2=06 rec3=016
        [0x02] rec0=1d rec1=00 rec2=03 rec3=028
        [0x03] rec0=02 rec1=00 rec2=04 rec3=044
        [0x04] rec0=19 rec1=00 rec2=02 rec3=030
        [0x05] rec0=15 rec1=00 rec2=05 rec3=000
    tail 0x2150bff068230616581d7 0x42a00088462060003