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

⟦5d8fa6260⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Display_Log_Move_Space, seg_005398, separate Puz_Main

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



separate (Puz_Main)  
procedure Display_Log_Move_Space (First_X, First_Y, Last_X, Last_Y : S_Long;  
                                  Dir : Direction) is  
    Min_X   : S_Long;  
    Min_Y   : S_Long;  
    Max_X   : S_Long;  
    Max_Y   : S_Long;  
    X       : S_Long;  
    Y       : S_Long;  
    W       : S_Long;  
    H       : S_Long;  
    Dx      : S_Long;  
    Dy      : S_Long;  
    X2      : S_Long;  
    Y2      : S_Long;  
    Clear_X : S_Long;  
    Clear_Y : S_Long;  
begin

    Max_X := Max (First_X, Last_X);  
    Min_X := Min (First_X, Last_X);  
    Max_Y := Max (First_Y, Last_Y);  
    Min_Y := Min (First_Y, Last_Y);

    X := Ulx (Min_X, 0);  
    Y := Uly (0, Min_Y);  
    W := (Max_X - Min_X + 1) * Tile_Width;  
    H := (Max_Y - Min_Y + 1) * Tile_Height;

    Dx := X;  
    Dy := Y;

    X2 := X;  
    Y2 := Y;

    case Dir is  
        when Up =>  
            Clear_X := Llx (Max_X, 0);  
            Clear_Y := Lly (0, Max_Y) + 1;

            for I in 0 .. Move_Steps - 1 loop  
                Dy      := S_Long (Vert_Step_Size (I));  
                Y2      := Y - Dy;  
                Clear_Y := Clear_Y - Dy;

                Move_Area (Tile_Window, X, Y, X2, Y2, W, H);  
                Rect_Set (Tile_Window, Clear_X, Clear_Y,  
                          Tile_Width, Dy, Fg_Pixel);  
                Y := Y - Dy;  
            end loop;

        when Down =>  
            Clear_X := Llx (Max_X, 0);  
            Clear_Y := Uly (0, Min_Y);

            for I in 0 .. Move_Steps - 1 loop  
                Dy := S_Long (Vert_Step_Size (I));  
                Y2 := Y + Dy;

                Move_Area (Tile_Window, X, Y, X2, Y2, W, H);  
                Rect_Set (Tile_Window, Clear_X, Clear_Y,  
                          Tile_Width, Dy, Fg_Pixel);  
                Y       := Y + Dy;  
                Clear_Y := Clear_Y + Dy;  
            end loop;

        when Left =>  
            Clear_X := Urx (Max_X, 0) + 1;  
            Clear_Y := Ury (0, Max_Y);

            for I in 0 .. Move_Steps - 1 loop  
                Dx      := S_Long (Hori_Step_Size (I));  
                X2      := X - Dx;  
                Clear_X := Clear_X - Dx;

                Move_Area (Tile_Window, X, Y, X2, Y2, W, H);  
                Rect_Set (Tile_Window, Clear_X, Clear_Y,  
                          Dx, Tile_Height, Fg_Pixel);  
                X := X - Dx;  
            end loop;

        when Right =>  
            Clear_X := Ulx (Min_X, 0);  
            Clear_Y := Uly (0, Max_Y);

            for I in 0 .. Move_Steps - 1 loop  
                Dx := S_Long (Hori_Step_Size (I));  
                X2 := X + Dx;

                Move_Area (Tile_Window, X, Y, X2, Y2, W, H);  
                Rect_Set (Tile_Window, Clear_X, Clear_Y,  
                          Dx, Tile_Height, Fg_Pixel);  
                X       := X + Dx;  
                Clear_X := Clear_X + Dx;  
            end loop;

        when others =>  
            raise Program_Error;  
    end case;

    X_Flush (Dpy);  
end Display_Log_Move_Space;  

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=28 rec1=00 rec2=01 rec3=00a
        [0x01] rec0=02 rec1=00 rec2=06 rec3=012
        [0x02] rec0=1b rec1=00 rec2=02 rec3=022
        [0x03] rec0=00 rec1=00 rec2=05 rec3=020
        [0x04] rec0=1a rec1=00 rec2=03 rec3=054
        [0x05] rec0=09 rec1=00 rec2=04 rec3=000
    tail 0x21700894081978950e099 0x42a00088462063203