|
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: 9216 (0x2400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Test_Registre, seg_021010
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with Octet; with Registres; with Text_Io; with Z80_Defs; package body Test_Registre is -- VARIABLES ---------------------------------------------------------- Octet_1, Octet_2, Choix : Octet.T_Octet := 0; Le_Registre : Z80_Defs.Operande; Le_Mot : Z80_Defs.Mot; -- PROCEDURES --------------------------------------------------------- function Lire_Choix return Octet.T_Octet; procedure Lire_1_Octet; procedure Lire_2_Octets; function Lire_Registre return Z80_Defs.Operande; ----------------------------------------------------------------------- procedure Je_Teste_Les_Registres is begin while True loop Choix := Lire_Choix; case Choix is when 0 => Registres.Reset; when 1 => Text_Io.Put ("Numero du registre : "); Le_Registre := Lire_Registre; Octet_1 := Registres.Lire_Simple (Le_Registre); Text_Io.Put ("Valeur du registre simple : "); Octet.Afficher_Octet_Hexa (Octet_1); Text_Io.Put_Line (""); when 2 => Text_Io.Put ("Numero du registre : "); Le_Registre := Lire_Registre; Le_Mot := Registres.Lire_Double (Le_Registre); Text_Io.Put ("Valeur du registre double : "); Octet.Afficher_Octet_Hexa (Octet.T_Octet (Integer (Le_Mot) / 256)); Octet.Afficher_Octet_Hexa (Octet.T_Octet (Integer (Le_Mot) mod 256)); Text_Io.Put_Line (""); when 3 => Text_Io.Put ("Numero du registre : "); Le_Registre := Lire_Registre; Lire_1_Octet; Registres.Ecrire_Simple (Le_Registre, Octet_1); Text_Io.Put_Line (""); when 4 => Text_Io.Put ("Numero du registre : "); Le_Registre := Lire_Registre; Lire_2_Octets; Le_Mot := Z80_Defs.Mot ((Integer (Octet_1) * 256) + Integer (Octet_2)); Registres.Ecrire_Double (Le_Registre, Le_Mot); Text_Io.Put_Line (""); when 5 => Registres.Echange_Af_Reg_Prime; when 6 => Registres.Echange_De_Hl; when 7 => Registres.Echange_Bc_De_Hl_Reg_Prime; when 8 => Registres.Afficher; when others => Text_Io.Put_Line ("erreur, mauvais choix"); end case; end loop; end Je_Teste_Les_Registres; ---------------------------------------------------------------------- function Lire_Choix return Octet.T_Octet is begin Text_Io.Put_Line (""); Text_Io.Put_Line ("------------------------------------------"); Text_Io.Put_Line (""); Text_Io.Put ("choix > "); return Octet.Lire_Octet_Hexa; end Lire_Choix; ---------------------------------------------------------------------- procedure Lire_1_Octet is begin Text_Io.Put ("octet_1> "); Octet_1 := Octet.Lire_Octet_Hexa; end Lire_1_Octet; ---------------------------------------------------------------------- procedure Lire_2_Octets is begin Text_Io.Put ("octet_1> "); Octet_1 := Octet.Lire_Octet_Hexa; Text_Io.Put ("octet_2> "); Octet_2 := Octet.Lire_Octet_Hexa; end Lire_2_Octets; ---------------------------------------------------------------------- function Lire_Registre return Z80_Defs.Operande is Num_Reg : Octet.T_Octet := 0; use Z80_Defs; begin Num_Reg := Octet.Lire_Octet_Hexa; case Num_Reg is when 1 => return (A); when 2 => return (B); when 3 => return (C); when 4 => return (D); when 5 => return (E); when 6 => return (H); when 7 => return (L); when 8 => return (F); when 9 => return (I); when 10 => return (R); when 11 => return (Af_Prime); when 12 => return (Bc_Prime); when 13 => return (De_Prime); when 14 => return (Hl_Prime); when 15 => return (Af); when 16 => return (Bc); when 17 => return (De); when 18 => return (Hl); when 19 => return (Ix); when 20 => return (Iy); when 21 => return (Sp); when 22 => return (Pc); when others => Text_Io.Put_Line ("Registre inconnu"); end case; end Lire_Registre; end Test_Registre;
nblk1=8 nid=7 hdr6=e [0x00] rec0=27 rec1=00 rec2=01 rec3=008 [0x01] rec0=13 rec1=00 rec2=05 rec3=026 [0x02] rec0=1d rec1=00 rec2=08 rec3=01a [0x03] rec0=0f rec1=00 rec2=06 rec3=00c [0x04] rec0=24 rec1=00 rec2=02 rec3=00c [0x05] rec0=24 rec1=00 rec2=03 rec3=00c [0x06] rec0=0c rec1=00 rec2=04 rec3=001 [0x07] rec0=a3 rec1=f9 rec2=f3 rec3=120 tail 0x2151c8622838d4cc7c478 0x42a00088462060003 Free Block Chain: 0x7: 0000 00 00 00 2e 00 22 20 20 20 20 20 20 20 20 54 65 ┆ . " Te┆