|
|
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: T V
Length: 4121 (0x1019)
Types: TextFile
Names: »V«
└─⟦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 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;