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

⟦ccf844f3d⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Bus_2, seg_021006

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 Memoire_2;
with Mot;

package body Bus_2 is


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

    Etat_Interne : Etat;  
    Vecteur_It : Octet.T_Octet;

    -- PROCEDURES INTERNES ----------------------------------

    procedure Modifie_Etat (Ad : Adresse.T_Adresse := 0;
                            Donnee : Octet.T_Octet := 0;
                            Control : Cycle) is
    begin
        Etat_Interne.Bus_Adresse := Ad;
        Etat_Interne.Bus_Donnee := Donnee;
        Etat_Interne.Bus_Control := Cycle;  
    end Modifie_Etat;



    ---------------------------------------------------------
    -- INTERFACE
    ---------------------------------------------------------

    -- Entrees Z80 ------------------------------------------

    procedure Lecture_Memoire (Ad : Adresse.T_Adresse;
                               Donnee : out Octet.T_Octet) is
    begin  
        Memoire_2.Lecture (Ad, Donnee);
        Modifie_Etat (Ad, Donnee, Lect_Memoire);
    end Lecture_Memoire;

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

    procedure Lecture_Code (Ad : Adresse.T_Adresse; Code : out Octet.T_Octet) is
    begin  
        Memoire_2.Lecture (Ad, Donnee);
        Modifie_Etat (Ad, Donnee, Lect_Code);
    end Lecture_Code;

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

    procedure Ecriture_Memoire
                 (Ad : Adresse.T_Adresse; Donnee : Octet.T_Octet) is
    begin
        Modifie_Etat (Ad, Donnee, Ecrit_Memoire);
        Memoire_2.Ecriture (Ad, Donnee);
    end Ecriture_Memoire;

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

    procedure Lecture_E_S (Ad : Adresse.T_Adresse;
                           Donnee : out Octet.T_Octet) is
        Ad_Periph : Octet.T_Octet;
    begin  
        Ad_Periph := Mot.Poids_Faible (Ad);
        Peripheriques.Lecture (Ad_Periph, Donnee);
        Modifie_Etat (Ad, Donnee, Lect_E_S);
    end Lecture_E_S;

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

    procedure Ecriture_E_S (Ad : Adresse.T_Adresse; Donnee : Octet.T_Octet) is
        Ad_Periph : Octet.T_Octet;
    begin
        Modifie_Etat (Ad, Donnee, Ecrit_E_S);
        Ad_Periph := Mot.Poids_Faible (Ad);
        Peripheriques.Ecriture (Ad_Periph, Donnee);  
    end Ecriture_E_S;

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

    procedure Lit_Vecteur_It (Vecteur : out Octet.T_Octet) is
    begin
        Modifie_Etat (Control => Dem_Irq);
        Vecteur := Vecteur_It;
    end Lit_Vecteur_It;

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

    procedure Bus_Ack is
    begin
        Modifie_Etat (Control => Recep_Bus);
    end Bus_Ack;

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

    procedure Halt is
    begin
        Modifie_Etat (Control => Halt);
    end Halt;



    -- Entrees Peripheriques --------------------------------------


    procedure Irq (Periph_Id : Peripheriques.Num_Periph) is
    begin
        Analyse_Etat (Control => Dem_Irq);
    end Irq;


    procedure Nmi (Periph_Id : Peripheriques.Num_Periph) is
    begin
        Analyse_Etat (Control => Dem_Nmi);
    end Nmi;


    procedure Ecrit_Vecteur_It (Vecteur : Octet.T_Octet) is
    begin
        Vecteur_It := Vecteur;
    end Ecrit_Vecteur_It;

    -- Autres ----------------------------------------------------

    procedure Reset is
    begin
        [statement]
    end Reset;


    procedure Bus_Request is
    begin
        Analyse_Etat (Control => Dem_Bus);
    end Bus_Request;


    -- Entrees Debugger ------------------------------------------

    procedure Lire_Etat (Etat_Bus : out Etat) is
    begin
        Etat_Bus := Etat_Interne;
    end Lire_Etat;


    procedure Marquer_Etat (Etat_Bus : Etat;
                            Signal : Message.Num_Message;
                            Etat_Id : out Num_Etat) is
    begin
        [statement]
    end Marquer_Etat;


    procedure Liberer_Etat (Etat_Id : Num_Etat) is
    begin
        [statement]
    end Liberer_Etat;
end Bus_2;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=24 rec1=00 rec2=01 rec3=014
        [0x01] rec0=1d rec1=00 rec2=02 rec3=024
        [0x02] rec0=27 rec1=00 rec2=03 rec3=020
        [0x03] rec0=29 rec1=00 rec2=04 rec3=048
        [0x04] rec0=0b rec1=00 rec2=05 rec3=000
    tail 0x2171d38ce838d4a5f6e26 0x42a00088462060003