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