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

⟦7e11dbae1⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Xlbip_Image_Internal, seg_004f20

Derivation

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

E3 Source Code



with Xlbt_Arithmetic;  
use Xlbt_Arithmetic;  
with Xlbt_Image3;  
use Xlbt_Image3;  
with Xlbt_String;  
use Xlbt_String;

package Xlbip_Image_Internal is
------------------------------------------------------------------------------
-- X Library Internal Image operations
--
-- Xlbip_Image_Internal - Image operations that may or may not be optimized on
-- a per-machine basis.
------------------------------------------------------------------------------
-- Copyright 1989 - 1991 by Rational, Santa Clara, California.
-- Copyright 1985 - 1989 by the Massachusetts Institute of Technology
--
--                  All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the names of MIT or Rational not be
-- used in advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- MIT and Rational disclaim all warranties with regard to this software,
-- including all implied warranties of merchantability and fitness, in no
-- event shall MIT or Rational be liable for any special, indirect or
-- consequential damages or any damages whatsoever resulting from loss of use,
-- data or profits, whether in an action of contract, negligence or other
-- tortious action, arising out of or in connection with the use or performance
-- of this software.
------------------------------------------------------------------------------
--\x0c
    procedure Private_X_Init_Image_Func_Ptrs (Image : X_Image);
------------------------------------------------------------------------------
--  Image   - Specifies the image to initialize
--
-- Called to initialize the function pointers in a new image.
------------------------------------------------------------------------------

    procedure Private_X_Report_Bad_Image (Errtype : X_String;  
                                          Error   : String;  
                                          Routine : X_String);
------------------------------------------------------------------------------
--  Errtype - Specifies the type of error, e.g. depth
--  Error   - Specifies the bad value, e.g. depth of 97
--  Routine - Specifies which routine is complaining
--
-- Call to report on broken images.
------------------------------------------------------------------------------

------------------------------------------------------------------------------
-- Swap bits or bytes in a buffer.
------------------------------------------------------------------------------

    procedure Private_Swap_Bits (B : in out U_Char_Array);
------------------------------------------------------------------------------
-- For each byte in the buffer; swap the bits within each byte so that they
-- run in the opposite direction.  Bit 0 becomes bit 7; bit 7 becomes bit 0;
-- bit 1 becomes bit 6; etc.
------------------------------------------------------------------------------

    procedure Private_Swap_Short (P : in out U_Char_Array);
------------------------------------------------------------------------------
-- For each half-word in the buffer, swap the byte pairs.
------------------------------------------------------------------------------

    procedure Private_Swap_Long (P : in out U_Char_Array);
------------------------------------------------------------------------------
-- For each full-word in the buffer; reverse the order of the 4 bytes.
-- We expect the buffer'Length to be a multiple of 4; if it isn't then the
-- last 1, 2, or 3 bytes ('Length rem 4) are not touched.
------------------------------------------------------------------------------

    procedure Private_Swap_Three (P : in out U_Char_Array);
------------------------------------------------------------------------------
-- We have groups of 24-bits (presumably we have a group of 3-byte colormap
-- values) and we need to swap them from big to little (or little to big)
-- endian.
------------------------------------------------------------------------------

-- --Private_Reverse_Byte - an array where each Foo[I] contains a value which
--  is I but with the 8 bits in reverse order.

    Private_Reverse_Byte : constant U_Char_Array (0 .. 255) :=  
       (16#00#, 16#80#, 16#40#, 16#C0#, 16#20#, 16#A0#, 16#60#, 16#E0#, 16#10#,  
        16#90#, 16#50#, 16#D0#, 16#30#, 16#B0#, 16#70#, 16#F0#, 16#08#, 16#88#,  
        16#48#, 16#C8#, 16#28#, 16#A8#, 16#68#, 16#E8#, 16#18#, 16#98#, 16#58#,  
        16#D8#, 16#38#, 16#B8#, 16#78#, 16#F8#, 16#04#, 16#84#, 16#44#, 16#C4#,  
        16#24#, 16#A4#, 16#64#, 16#E4#, 16#14#, 16#94#, 16#54#, 16#D4#, 16#34#,  
        16#B4#, 16#74#, 16#F4#, 16#0C#, 16#8C#, 16#4C#, 16#CC#, 16#2C#, 16#AC#,  
        16#6C#, 16#EC#, 16#1C#, 16#9C#, 16#5C#, 16#DC#, 16#3C#, 16#BC#, 16#7C#,  
        16#FC#, 16#02#, 16#82#, 16#42#, 16#C2#, 16#22#, 16#A2#, 16#62#, 16#E2#,  
        16#12#, 16#92#, 16#52#, 16#D2#, 16#32#, 16#B2#, 16#72#, 16#F2#, 16#0A#,  
        16#8A#, 16#4A#, 16#CA#, 16#2A#, 16#AA#, 16#6A#, 16#EA#, 16#1A#, 16#9A#,  
        16#5A#, 16#DA#, 16#3A#, 16#BA#, 16#7A#, 16#FA#, 16#06#, 16#86#, 16#46#,  
        16#C6#, 16#26#, 16#A6#, 16#66#, 16#E6#, 16#16#, 16#96#, 16#56#, 16#D6#,  
        16#36#, 16#B6#, 16#76#, 16#F6#, 16#0E#, 16#8E#, 16#4E#, 16#CE#, 16#2E#,  
        16#AE#, 16#6E#, 16#EE#, 16#1E#, 16#9E#, 16#5E#, 16#DE#, 16#3E#, 16#BE#,  
        16#7E#, 16#FE#, 16#01#, 16#81#, 16#41#, 16#C1#, 16#21#, 16#A1#, 16#61#,  
        16#E1#, 16#11#, 16#91#, 16#51#, 16#D1#, 16#31#, 16#B1#, 16#71#, 16#F1#,  
        16#09#, 16#89#, 16#49#, 16#C9#, 16#29#, 16#A9#, 16#69#, 16#E9#, 16#19#,  
        16#99#, 16#59#, 16#D9#, 16#39#, 16#B9#, 16#79#, 16#F9#, 16#05#, 16#85#,  
        16#45#, 16#C5#, 16#25#, 16#A5#, 16#65#, 16#E5#, 16#15#, 16#95#, 16#55#,  
        16#D5#, 16#35#, 16#B5#, 16#75#, 16#F5#, 16#0D#, 16#8D#, 16#4D#, 16#CD#,  
        16#2D#, 16#AD#, 16#6D#, 16#ED#, 16#1D#, 16#9D#, 16#5D#, 16#DD#, 16#3D#,  
        16#BD#, 16#7D#, 16#FD#, 16#03#, 16#83#, 16#43#, 16#C3#, 16#23#, 16#A3#,  
        16#63#, 16#E3#, 16#13#, 16#93#, 16#53#, 16#D3#, 16#33#, 16#B3#, 16#73#,  
        16#F3#, 16#0B#, 16#8B#, 16#4B#, 16#CB#, 16#2B#, 16#AB#, 16#6B#, 16#EB#,  
        16#1B#, 16#9B#, 16#5B#, 16#DB#, 16#3B#, 16#BB#, 16#7B#, 16#FB#,  
        16#07#, 16#87#, 16#47#, 16#C7#, 16#27#, 16#A7#, 16#67#, 16#E7#,  
        16#17#, 16#97#, 16#57#, 16#D7#, 16#37#, 16#B7#, 16#77#, 16#F7#,  
        16#0F#, 16#8F#, 16#4F#, 16#CF#, 16#2F#, 16#AF#, 16#6F#, 16#EF#,  
        16#1F#, 16#9F#, 16#5F#, 16#DF#, 16#3F#, 16#BF#, 16#7F#, 16#FF#);

end Xlbip_Image_Internal;  

E3 Meta Data

    nblk1=7
    nid=0
    hdr6=e
        [0x00] rec0=19 rec1=00 rec2=01 rec3=052
        [0x01] rec0=12 rec1=00 rec2=02 rec3=010
        [0x02] rec0=13 rec1=00 rec2=03 rec3=032
        [0x03] rec0=11 rec1=00 rec2=04 rec3=05e
        [0x04] rec0=10 rec1=00 rec2=05 rec3=066
        [0x05] rec0=0c rec1=00 rec2=06 rec3=078
        [0x06] rec0=0e rec1=00 rec2=07 rec3=000
    tail 0x21500957c819780a5ec40 0x42a00088462063203