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

⟦bafff1d3d⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Bus_2, seg_00f4d7

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

E3 Meta Data

    nblk1=7
    nid=4
    hdr6=a
        [0x00] rec0=21 rec1=00 rec2=01 rec3=06c
        [0x01] rec0=1e rec1=00 rec2=02 rec3=008
        [0x02] rec0=25 rec1=00 rec2=05 rec3=020
        [0x03] rec0=2a rec1=00 rec2=07 rec3=004
        [0x04] rec0=0d rec1=00 rec2=06 rec3=001
        [0x05] rec0=03 rec1=13 rec2=11 rec3=300
        [0x06] rec0=00 rec1=5e rec2=41 rec3=0a1
    tail 0x2150b5636822b4fe69519 0x42a00088462062803
Free Block Chain:
  0x4: 0000  00 03 02 17 80 03 20 20 20 03 00 0c 20 20 20 20  ┆                ┆
  0x3: 0000  00 00 01 83 80 06 5f 45 74 61 74 3b 06 00 00 00  ┆      _Etat;    ┆