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

⟦1917410fa⟧ TextFile

    Length: 3962 (0xf7a)
    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 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;