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

⟦c86d639cc⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Byte_Tools, seg_05b487

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 System;
package body Byte_Tools is
    -- Utilisee pour les processeurs Motorola qui ont la representation
    -- memoire inversee.
    procedure Invert (The_Array : in out Byte_As_Array) is
        Temp : Byte_As_Array := The_Array;
    begin
        for N in Bit_Number loop
            The_Array (N) := Temp (Bit_Number'Last - N);
        end loop;
    end Invert;


    function Test_Bit (Number : in Bit_Number; Of_Byte : in Byte_As_Number)
                      return Boolean is
        Temp : Byte_As_Array := To_Array (The_Number => Of_Byte);
    begin
        return Temp (Number);
    end Test_Bit;


    procedure Set_Bit_To_1 (Of_Byte : in out Byte_As_Number;
                            The_Bit : in Bit_Number) is
        Temp : Byte_As_Array := To_Array (The_Number => Of_Byte);
    begin
        Temp (The_Bit) := True;
        Of_Byte := To_Number (The_Array => Temp);
    end Set_Bit_To_1;


    procedure Set_Bit_To_0 (Of_Byte : in out Byte_As_Number;
                            The_Bit : in Bit_Number) is
        Temp : Byte_As_Array := To_Array (The_Number => Of_Byte);
    begin
        Temp (The_Bit) := False;
        Of_Byte := To_Number (The_Array => Temp);
    end Set_Bit_To_0;


    function To_Array (The_Number : in Byte_As_Number) return Byte_As_Array is
        A : Byte_As_Array;
        for A use at The_Number'Address;
    begin
        Invert (The_Array => A);
        return A;
    end To_Array;


    function To_Number (The_Array : in Byte_As_Array) return Byte_As_Number is
        Temp : Byte_As_Array := The_Array;
        N : Byte_As_Number;
        for N use at Temp'Address;
    begin
        Invert (The_Array => Temp);
        return N;
    end To_Number;
end Byte_Tools;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=20 rec1=00 rec2=01 rec3=04c
        [0x01] rec0=1b rec1=00 rec2=02 rec3=001
    tail 0x2176acba889446304fc04 0x42a00088462060003