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: ┃ T V

⟦52a01bb82⟧ TextFile

    Length: 4121 (0x1019)
    Types: TextFile
    Names: »V«

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 Mots;                

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;    
      
  
    
    ---------------------------------------------------------
    -- 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);
    begin
       Vecteur_It := vecteur;
    end ;
    
    -- 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;