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