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 - downloadIndex: ┃ B T ┃
Length: 3775 (0xebf) 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 Registres; with Sequenceur; with Text_Io; package body Z80 is -- TYPES ----------------------------------------------------------------- type T_Etat is (Inexistant, Pret, Actif, Endormi); -- VARIABLES ------------------------------------------------------------- Etat : T_Etat := Inexistant; La_Fin : Boolean := False; -- TACHES ---------------------------------------------------------------- task body T_Z80 is begin while (not La_Fin) loop select --------------------------------- when (Etat = Inexistant) => accept Reset do Registres.Reset; Halt := False; Son_Mode := 0; Iff_1 := False; Iff_2 := False; Etat := Pret; end Reset; --------------------------------- or when (Etat = Endormi or Etat = Pret) => accept Afficher do Text_Io.Put_Line ("== Z80 =============================="); Text_Io.Put_Line (""); Text_Io.Put ("Halt : "); Text_Io.Put_Line (Boolean'Image (Halt)); Text_Io.Put ("Mode : "); Text_Io.Put_Line (Z80_Defs.Mode'Image (Son_Mode)); Text_Io.Put ("IFF_1 : "); Text_Io.Put_Line (Boolean'Image (Iff_1)); Text_Io.Put ("IFF_2 : "); Text_Io.Put_Line (Boolean'Image (Iff_2)); Text_Io.Put_Line (""); Registres.Afficher; end Afficher; --------------------------------- or accept Signaler (Le_Signal : Z80_Defs.Signaux_Periph) do null; end Signaler; --------------------------------- or when (Etat = Pret) => accept Lancer do Etat := Actif; end Lancer; --------------------------------- or when (Etat = Endormi or Etat = Pret) => accept Pas_A_Pas do Sequenceur.Lancer; Registres.Afficher; end Pas_A_Pas; --------------------------------- or accept Stopper do Etat := Inexistant; end Stopper; --------------------------------- or when (Etat = Actif) => accept Endormir do Etat := Endormi; end Endormir; --------------------------------- or when (Etat = Endormi) => accept Reveiller do Etat := Actif; end Reveiller; --------------------------------- or accept Fin do La_Fin := True; end Fin; --------------------------------- else if Etat = Actif then if (Registres.Lire_Double (Z80_Defs.Pc) = 16#38#) then Etat := Pret; else Sequenceur.Lancer; Registres.Afficher; end if; end if; end select; end loop; end T_Z80; end Z80;