|
|
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: 18432 (0x4800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Cb_Lincoln, seg_05c1e7
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Bouton_Poussoir;
with Bouton_Radio;
with Carte_Es;
with Pedale;
with Potentiometre;
with Rotateur;
with Selecteur;
with Conversion_Cb;
package body Cb_Lincoln is
package Selecteur_Mode is new Selecteur
(Nb_Sorties => 3, Tposition => Modulation);
type Lincoln is
record
Mode : Selecteur_Mode.Objet;
Swr_Cal : Potentiometre.Objet (Potentiometre.Chip_X9312);
Rf_Power : Potentiometre.Objet (Potentiometre.Chip_X9312);
Rit : Potentiometre.Objet (Potentiometre.Chip_Ds1267);
Marche_Arret : Bouton_Radio.Objet;
Auto_Sq : Bouton_Radio.Objet;
Squelch : Potentiometre.Objet (Potentiometre.Chip_X9312);
Channel_Plus : Bouton_Poussoir.Objet;
Channel_Moins : Bouton_Poussoir.Objet;
Band : Bouton_Poussoir.Objet;
Span : Bouton_Poussoir.Objet;
Vfo : Rotateur.Objet;
Nb : Bouton_Radio.Objet;
Indic : Bouton_Poussoir.Objet;
F_Lock : Bouton_Radio.Objet;
Beep : Bouton_Radio.Objet;
Scan : Bouton_Poussoir.Objet;
Morse : Bouton_Radio.Objet;
Tx : Pedale.Objet;
Micro : Bouton_Radio.Objet;
Hp : Bouton_Radio.Objet;
Modem_In : Bouton_Radio.Objet;
Modem_Out : Bouton_Radio.Objet;
end record;
S1_Mode : constant Carte_Es.Numero_Sortie := 1;
S2_Mode : constant Carte_Es.Numero_Sortie := 2;
S3_Mode : constant Carte_Es.Numero_Sortie := 3;
S1_Swr : constant Carte_Es.Numero_Sortie := 4;
S2_Swr : constant Carte_Es.Numero_Sortie := 5;
S3_Swr : constant Carte_Es.Numero_Sortie := 6;
S1_Rf : constant Carte_Es.Numero_Sortie := 7;
S2_Rf : constant Carte_Es.Numero_Sortie := 8;
S3_Rf : constant Carte_Es.Numero_Sortie := 9;
S1_Rit : constant Carte_Es.Numero_Sortie := 10;
S2_Rit : constant Carte_Es.Numero_Sortie := 11;
S3_Rit : constant Carte_Es.Numero_Sortie := 12;
S_Ma_Ar : constant Carte_Es.Numero_Sortie := 13;
S_Sql : constant Carte_Es.Numero_Sortie := 14;
S1_Sql : constant Carte_Es.Numero_Sortie := 15;
S2_Sql : constant Carte_Es.Numero_Sortie := 16;
S3_Sql : constant Carte_Es.Numero_Sortie := 17;
S_Chan_P : constant Carte_Es.Numero_Sortie := 18;
S_Chan_M : constant Carte_Es.Numero_Sortie := 19;
S_Band : constant Carte_Es.Numero_Sortie := 20;
S_Span : constant Carte_Es.Numero_Sortie := 21;
S2_Vfo : constant Carte_Es.Numero_Sortie := 22;
S1_Vfo : constant Carte_Es.Numero_Sortie := 23;
S_Nb : constant Carte_Es.Numero_Sortie := 24;
S_Indic : constant Carte_Es.Numero_Sortie := 25;
S_Flock : constant Carte_Es.Numero_Sortie := 26;
S_Beep : constant Carte_Es.Numero_Sortie := 27;
S_Scan : constant Carte_Es.Numero_Sortie := 28;
S_Morse : constant Carte_Es.Numero_Sortie := 29;
S_Tx : constant Carte_Es.Numero_Sortie := 30;
S_Micro : constant Carte_Es.Numero_Sortie := 31;
S_Hp : constant Carte_Es.Numero_Sortie := 32;
S_Mod_In : constant Carte_Es.Numero_Sortie := 33;
S_Mod_Out : constant Carte_Es.Numero_Sortie := 34;
Canal_Init : Canal := 19;
Frequence_Init : Mhz := 27.185;
Span_Init : Integer := 1;
Ma_Cb : Lincoln :=
(Mode => Selecteur_Mode.Creer
(Sorties => (1 => S1_Mode, 2 => S2_Mode, 3 => S3_Mode)),
Swr_Cal => Potentiometre.Creer (S1 => S1_Swr,
S2 => S2_Swr,
S3 => S3_Swr,
Avec => Potentiometre.Chip_X9312),
Rf_Power => Potentiometre.Creer (S1 => S1_Rf,
S2 => S2_Rf,
S3 => S3_Rf,
Avec => Potentiometre.Chip_X9312),
Rit => Potentiometre.Creer (S1 => S1_Rit,
S2 => S2_Rit,
S3 => S3_Rit,
Avec => Potentiometre.Chip_Ds1267),
Marche_Arret => Bouton_Radio.Creer (Commande_Sortie => S_Ma_Ar),
Auto_Sq => Bouton_Radio.Creer (Commande_Sortie => S_Sql),
Squelch => Potentiometre.Creer (S1 => S1_Sql,
S2 => S2_Sql,
S3 => S3_Sql,
Avec => Potentiometre.Chip_X9312),
Channel_Plus => Bouton_Poussoir.Creer (Commande_Sortie => S_Chan_P),
Channel_Moins => Bouton_Poussoir.Creer (Commande_Sortie => S_Chan_M),
Band => Bouton_Poussoir.Creer (Commande_Sortie => S_Band),
Span => Bouton_Poussoir.Creer (Commande_Sortie => S_Span),
Vfo => Rotateur.Creer (Le_Sens => S1_Vfo, Le_Front => S2_Vfo),
Nb => Bouton_Radio.Creer (Commande_Sortie => S_Nb),
Indic => Bouton_Poussoir.Creer (Commande_Sortie => S_Indic),
F_Lock => Bouton_Radio.Creer (Commande_Sortie => S_Flock),
Beep => Bouton_Radio.Creer (Commande_Sortie => S_Beep),
Scan => Bouton_Poussoir.Creer (Commande_Sortie => S_Scan),
Morse => Bouton_Radio.Creer (Commande_Sortie => S_Morse),
Tx => Pedale.Creer (Commande_Sortie => S_Tx),
Micro => Bouton_Radio.Creer (Commande_Sortie => S_Micro),
Hp => Bouton_Radio.Creer (Commande_Sortie => S_Hp),
Modem_In => Bouton_Radio.Creer (Commande_Sortie => S_Mod_In),
Modem_Out => Bouton_Radio.Creer (Commande_Sortie => S_Mod_Out));
procedure Mettre_En_Marche is
begin
Carte_Es.Initialiser;
if not (Bouton_Radio.Actif (Ma_Cb.Marche_Arret)) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Marche_Arret);
end if;
-- Questions a l'utilisateur pour avoir l'etat initial
Canal_Init := Conversion_Cb.Frequence_Vers_Canal
(La_Frequence => Frequence_Init);
end Mettre_En_Marche;
procedure Regler_La_Frequence (La_Valeur : in Mhz) is
La_Difference : Natural;
Le_Canal : Canal := Conversion_Cb.Frequence_Vers_Canal (La_Valeur);
begin
if Bouton_Radio.Actif (Ma_Cb.F_Lock) then
raise Frequence_Verrouillee;
else
--positionner le span sur 1 (position par defaut)
Se_Positionner_Sur_Le_Canal (Le_Canal);
if La_Valeur > Frequence_Init then
La_Difference := Natural (1000.0 * Float (La_Valeur -
Frequence_Init));
Rotateur.Augmenter (Un_Objet => Ma_Cb.Vfo,
De => Natural (La_Difference));
else
La_Difference :=
Natural (1000.0 * Float (Frequence_Init - La_Valeur));
Rotateur.Diminuer (Un_Objet => Ma_Cb.Vfo, De => La_Difference);
end if;
Frequence_Init := La_Valeur;
Canal_Init := Conversion_Cb.Frequence_Vers_Canal
(La_Frequence => Frequence_Init);
end if;
end Regler_La_Frequence;
procedure Verrouiller_La_Frequence is
begin
if not (Bouton_Radio.Actif (Ma_Cb.F_Lock)) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.F_Lock);
end if;
end Verrouiller_La_Frequence;
procedure Deverrouiller_La_Frequence is
begin
if Bouton_Radio.Actif (Ma_Cb.F_Lock) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.F_Lock);
end if;
end Deverrouiller_La_Frequence;
procedure Se_Positionner_Sur_Le_Canal (La_Valeur : in Canal) is
Difference : Canal;
begin
if Bouton_Radio.Actif (Ma_Cb.F_Lock) then
raise Frequence_Verrouillee;
else
if Canal_Init > La_Valeur then
Difference := Canal_Init - La_Valeur;
Descendre_De_Canal (Difference);
elsif Canal_Init < La_Valeur then
Difference := La_Valeur - Canal_Init;
Monter_De_Canal (Difference);
end if;
end if;
end Se_Positionner_Sur_Le_Canal;
procedure Descendre_De_Canal (Nbre_De_Canal : in Canal := 1) is
begin
if Bouton_Radio.Actif (Ma_Cb.F_Lock) then
raise Frequence_Verrouillee;
else
for I in 1 .. Nbre_De_Canal loop
Bouton_Poussoir.Appuyer_Sur (Ma_Cb.Channel_Moins);
Canal_Init := Canal_Init - 1;
end loop;
Frequence_Init := Conversion_Cb.Canal_Vers_Frequence
(Le_Canal => Canal_Init);
end if;
end Descendre_De_Canal;
procedure Monter_De_Canal (Nbre_De_Canal : in Canal := 1) is
begin
if Bouton_Radio.Actif (Ma_Cb.F_Lock) then
raise Frequence_Verrouillee;
else
for N in 1 .. Nbre_De_Canal loop
Bouton_Poussoir.Appuyer_Sur (Ma_Cb.Channel_Plus);
Canal_Init := Canal_Init + 1;
end loop;
Frequence_Init := Conversion_Cb.Canal_Vers_Frequence
(Le_Canal => Canal_Init);
end if;
end Monter_De_Canal;
procedure Positionner_Le_Mode (Sur : in Modulation) is
begin
Selecteur_Mode.Positionner (Un_Objet => Ma_Cb.Mode, Sur => Sur);
end Positionner_Le_Mode;
procedure Emettre is
begin
Pedale.Appuyer_Sur (Ma_Cb.Tx);
end Emettre;
procedure Arreter_D_Emettre is
begin
Pedale.Relacher (Ma_Cb.Tx);
end Arreter_D_Emettre;
procedure Fixer_Le_Silencieux (La_Valeur : in Utils.Pourcent) is
begin
if not (Bouton_Radio.Actif (Ma_Cb.Auto_Sq)) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Auto_Sq);
end if;
Potentiometre.Fixer (Un_Objet => Ma_Cb.Squelch,
A_La_Valeur => La_Valeur);
end Fixer_Le_Silencieux;
procedure Augmenter_Le_Silencieux (La_Valeur : in Utils.Pourcent := 1) is
begin
if not (Bouton_Radio.Actif (Ma_Cb.Auto_Sq)) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Auto_Sq);
end if;
Potentiometre.Augmenter (Un_Objet => Ma_Cb.Squelch, De => La_Valeur);
end Augmenter_Le_Silencieux;
procedure Diminuer_Le_Silencieux (La_Valeur : in Utils.Pourcent := 1) is
begin
if not (Bouton_Radio.Actif (Ma_Cb.Auto_Sq)) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Auto_Sq);
end if;
Potentiometre.Diminuer (Un_Objet => Ma_Cb.Squelch, De => La_Valeur);
end Diminuer_Le_Silencieux;
procedure Silencieux_En_Auto is
begin
if Bouton_Radio.Actif (Ma_Cb.Auto_Sq) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Auto_Sq);
end if;
end Silencieux_En_Auto;
procedure Fixer_Le_Clarificateur (La_Valeur : in Utils.Pourcent) is
begin
Potentiometre.Fixer (Ma_Cb.Rit, A_La_Valeur => La_Valeur);
end Fixer_Le_Clarificateur;
procedure Augmenter_Le_Clarificateur (La_Valeur : in Utils.Pourcent := 1) is
begin
Potentiometre.Augmenter (Ma_Cb.Rit, De => La_Valeur);
end Augmenter_Le_Clarificateur;
procedure Diminuer_Le_Clarificateur (La_Valeur : in Utils.Pourcent := 1) is
begin
Potentiometre.Diminuer (Ma_Cb.Rit, De => La_Valeur);
end Diminuer_Le_Clarificateur;
procedure Activer_Le_Hp is
begin
if not (Bouton_Radio.Actif (Ma_Cb.Hp)) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Hp);
end if;
end Activer_Le_Hp;
procedure Desactiver_Le_Hp is
begin
if Bouton_Radio.Actif (Ma_Cb.Hp) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Hp);
end if;
end Desactiver_Le_Hp;
procedure Activer_Le_Micro is
begin
if not (Bouton_Radio.Actif (Ma_Cb.Micro)) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Micro);
end if;
end Activer_Le_Micro;
procedure Desactiver_Le_Micro is
begin
if Bouton_Radio.Actif (Ma_Cb.Micro) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Micro);
end if;
end Desactiver_Le_Micro;
procedure Fixer_La_Puissance (La_Valeur : in Utils.Pourcent) is
begin
Potentiometre.Fixer (Ma_Cb.Rf_Power, A_La_Valeur => La_Valeur);
end Fixer_La_Puissance;
procedure Augmenter_La_Puissance (La_Valeur : in Utils.Pourcent := 1) is
begin
Potentiometre.Augmenter (Ma_Cb.Rf_Power, De => La_Valeur);
end Augmenter_La_Puissance;
procedure Diminuer_La_Puissance (La_Valeur : in Utils.Pourcent := 1) is
begin
Potentiometre.Diminuer (Ma_Cb.Rf_Power, De => La_Valeur);
end Diminuer_La_Puissance;
procedure Fixer_Le_Tos_Metre (La_Valeur : in Utils.Pourcent) is
begin
Potentiometre.Fixer (Ma_Cb.Swr_Cal, A_La_Valeur => La_Valeur);
end Fixer_Le_Tos_Metre;
procedure Augmenter_Le_Tos_Metre (La_Valeur : in Utils.Pourcent := 1) is
begin
Potentiometre.Augmenter (Ma_Cb.Swr_Cal, De => La_Valeur);
end Augmenter_Le_Tos_Metre;
procedure Diminuer_Le_Tos_Metre (La_Valeur : in Utils.Pourcent := 1) is
begin
Potentiometre.Diminuer (Ma_Cb.Swr_Cal, De => La_Valeur);
end Diminuer_Le_Tos_Metre;
procedure Changer_L_Indication is
begin
Bouton_Poussoir.Appuyer_Sur (Ma_Cb.Indic);
end Changer_L_Indication;
procedure Activer_Le_Filtre_Nb is
begin
if not (Bouton_Radio.Actif (Ma_Cb.Nb)) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Nb);
end if;
end Activer_Le_Filtre_Nb;
procedure Desactiver_Le_Filtre_Nb is
begin
if Bouton_Radio.Actif (Ma_Cb.Nb) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Nb);
end if;
end Desactiver_Le_Filtre_Nb;
procedure Eteindre is
begin
if Bouton_Radio.Actif (Ma_Cb.Marche_Arret) then
Bouton_Radio.Appuyer_Sur (Ma_Cb.Marche_Arret);
end if;
Carte_Es.Terminer;
end Eteindre;
end Cb_Lincoln;
nblk1=11
nid=f
hdr6=20
[0x00] rec0=1d rec1=00 rec2=01 rec3=008
[0x01] rec0=17 rec1=00 rec2=07 rec3=00c
[0x02] rec0=12 rec1=00 rec2=04 rec3=05e
[0x03] rec0=15 rec1=00 rec2=0e rec3=094
[0x04] rec0=11 rec1=00 rec2=06 rec3=02c
[0x05] rec0=14 rec1=00 rec2=05 rec3=00e
[0x06] rec0=15 rec1=00 rec2=10 rec3=092
[0x07] rec0=20 rec1=00 rec2=11 rec3=012
[0x08] rec0=0c rec1=00 rec2=0b rec3=00c
[0x09] rec0=1a rec1=00 rec2=03 rec3=012
[0x0a] rec0=23 rec1=00 rec2=0c rec3=00a
[0x0b] rec0=1e rec1=00 rec2=0a rec3=046
[0x0c] rec0=25 rec1=00 rec2=09 rec3=042
[0x0d] rec0=1f rec1=00 rec2=02 rec3=082
[0x0e] rec0=26 rec1=00 rec2=0d rec3=00c
[0x0f] rec0=02 rec1=00 rec2=08 rec3=000
[0x10] rec0=00 rec1=00 rec2=00 rec3=000
tail 0x2176b8c32895a7e15b296 0x42a00088462060003
Free Block Chain:
0xf: 0000 00 00 03 fc 80 16 61 72 74 65 5f 45 73 2e 4e 75 ┆ arte_Es.Nu┆