|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 3962 (0xf7a)
Types: TextFile
Names: »B«
└─⟦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⟧
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;