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

⟦052ae0bda⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Mac_Path, seg_0244ad

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 Mac_Types;
with Mac_Text;
use Mac_Types;
package body Mac_Path is

    procedure Get_Mac_Root_Directory
                 (T : Mac_Text.Text; S : out Str255; Exists : out Boolean) is
        First, Second : Mac_Text.Index;  
        Str : Str255;
    begin
        Exists := False;
        S (0) := Nul;
        for Index_Char in 1 .. Mac_Text.Length (T) loop  
            Str (Index_Char) := Mac_Text.Value (Index_Char, T);
            if Str (Index_Char) = ':' then
                if Index_Char > 1 then
                    Str (0) := Mac_Types.Char'Val (Index_Char);
                    S := Str;
                    Exists := True;
                end if;
                return;
            end if;
        end loop;
    end Get_Mac_Root_Directory;

    procedure Get_Mac_Sub_Directory (T : Mac_Text.Text;
                                     Which : Index;
                                     S : out Str255;
                                     Exists : out Boolean) is
        First, Second : Mac_Text.Index := 0;
        Remaining : Natural := Natural (Which);  
        Str : constant Str255 := Mac_Text.Value (T);
    begin
        Exists := False;
        S (0) := Nul;
        for Index_Char in 1 .. Mac_Text.Length (T) loop
            if Mac_Text.Value (Index_Char, T) = ':' then
                Second := First;
                First := Index_Char;
                if Remaining = 0 then
                    S (0) := Mac_Types.Char'Val (First - Second + 1);
                    S (1 .. First - Second + 1) := Str (Second .. First);
                    Exists := True;
                    return;
                else
                    Remaining := Remaining - 1;
                end if;
            end if;
        end loop;
    end Get_Mac_Sub_Directory;

    procedure Get_Mac_Name
                 (T : Mac_Text.Text; S : out Str255; Exists : out Boolean) is
        First : Mac_Text.Index := 0;  
        Str : constant Str255 := Mac_Text.Value (T);
    begin
        Exists := False;
        S (0) := Nul;
        for Index_Char in 1 .. Mac_Text.Length (T) loop
            if Mac_Text.Value (Index_Char, T) = ':' then
                First := Index_Char;
            end if;
        end loop;  
        if First /= Mac_Text.Length (T) then
            S (0) := Mac_Types.Char'Val (Mac_Text.Length (T) - First);
            S (1 .. Mac_Text.Length (T) - First) :=
               Str (First + 1 .. Mac_Text.Length (T));
            Exists := True;
        end if;
    end Get_Mac_Name;

end Mac_Path;

E3 Meta Data

    nblk1=7
    nid=6
    hdr6=6
        [0x00] rec0=1e rec1=00 rec2=01 rec3=048
        [0x01] rec0=19 rec1=00 rec2=04 rec3=04c
        [0x02] rec0=13 rec1=00 rec2=05 rec3=000
        [0x03] rec0=1a rec1=00 rec2=07 rec3=01a
        [0x04] rec0=01 rec1=00 rec2=06 rec3=000
        [0x05] rec0=19 rec1=00 rec2=06 rec3=056
        [0x06] rec0=19 rec1=00 rec2=07 rec3=000
    tail 0x2171f8176839c6adc88da 0x42a00088462060003
Free Block Chain:
  0x6: 0000  00 07 00 03 00 00 00 20 20 20 20 20 20 20 20 20  ┆                ┆
  0x7: 0000  00 03 03 fb 80 2f 20 20 20 20 20 20 20 20 41 5f  ┆     /        A_┆
  0x3: 0000  00 02 00 23 80 20 6e 64 65 78 5f 43 68 61 72 20  ┆   #  ndex_Char ┆
  0x2: 0000  00 00 00 2e 80 1f 3a 3d 20 47 75 6e 69 78 70 61  ┆   .  := Gunixpa┆