DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦36612a5b1⟧ Ada Source

    Length: 18432 (0x4800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Cb_Lincoln, seg_05c1e7

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



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;

E3 Meta Data

    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┆