|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Bus_2, seg_021006
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦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;
nblk1=5
nid=0
hdr6=a
[0x00] rec0=24 rec1=00 rec2=01 rec3=014
[0x01] rec0=1d rec1=00 rec2=02 rec3=024
[0x02] rec0=27 rec1=00 rec2=03 rec3=020
[0x03] rec0=29 rec1=00 rec2=04 rec3=048
[0x04] rec0=0b rec1=00 rec2=05 rec3=000
tail 0x2171d38ce838d4a5f6e26 0x42a00088462060003