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

⟦ebaf425a7⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package System, pragma Module_Name 4 66, pragma Segmented_Heap Segment, pragma Subsystem Ada_Base, seg_02847e

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



package System is

    pragma Read_Only;  
    pragma Open_Private_Part;  
    pragma Subsystem (Ada_Base);  
    pragma Module_Name (4, 66);

    type Address is private;

    Null_Address : constant Address;

    type Name is (R1000);

    System_Name : constant Name := R1000;

    Bit          : constant := 1;  
    Storage_Unit : constant := 1 * Bit;

    Word_Size   : constant := 128 * Bit;  
    Byte_Size   : constant := 8 * Bit;  
    Megabyte    : constant := (2 ** 20) * Byte_Size;  
    Memory_Size : constant := 32 * Megabyte;


    -- System-Dependent Named Numbers

    Min_Int : constant := Long_Integer'Pos (Long_Integer'First);  
    Max_Int : constant := Long_Integer'Pos (Long_Integer'Last);

    Max_Digits   : constant := 15;  
    Max_Mantissa : constant := 63;  
    Fine_Delta   : constant := 1.0 / (2.0 ** 63);  
    Tick         : constant := 200.0E-9;

    subtype Priority is Integer range 0 .. 5;


    type Byte is new Natural range 0 .. 255;

    type Byte_String is array (Natural range <>) of Byte;
    -- Basic units of transmission/reception to/from IO devices.

    type    Virtual_Processor_Number is new Long_Integer range 0 .. 2 ** 10 - 1;  
    type    Module_Number            is new Long_Integer range 0 .. 2 ** 22 - 1;  
    type    Module_Name              is new Long_Integer range 0 .. 2 ** 32 - 1;  
    subtype Code_Segment_Name        is Module_Name range 0 .. 2 ** 24 - 1;  
    type    Bit_Offset               is new Long_Integer range 0 .. 2 ** 32 - 1;

    Null_Module : constant Module_Name := 0;

    function Convert (The_Address : Address) return Long_Integer;  
    pragma Suppress (Elaboration_Check, Convert);

    function Extract_Vp (From_Address : Address)  
                        return Virtual_Processor_Number;  
    pragma Suppress (Elaboration_Check, Extract_Vp);

    function Extract_Number (From_Address : Address) return Module_Number;  
    pragma Suppress (Elaboration_Check, Extract_Number);

    function Extract_Name (From_Address : Address) return Module_Name;  
    pragma Suppress (Elaboration_Check, Extract_Name);

    function Extract_Offset (From_Address : Address) return Bit_Offset;  
    pragma Suppress (Elaboration_Check, Extract_Offset);


    function Get_Vp (From_Name : Module_Name) return Virtual_Processor_Number;  
    pragma Suppress (Elaboration_Check, Get_Vp);

    function Get_Number (From_Name : Module_Name) return Module_Number;  
    pragma Suppress (Elaboration_Check, Get_Number);

    function Compose_Name (With_Vp     : Virtual_Processor_Number;  
                           With_Number : Module_Number) return Module_Name;  
    pragma Suppress (Elaboration_Check, Compose_Name);


    function Current_Name return Module_Name;  
    pragma Suppress (Elaboration_Check, Current_Name);

    function Current_Vp return Virtual_Processor_Number;  
    pragma Suppress (Elaboration_Check, Current_Vp);

    function Current_Number return Module_Number;  
    pragma Suppress (Elaboration_Check, Current_Number);


    type Segment is private;

    Null_Segment : constant Segment;

    type Package_Type is private;  
    pragma Enable_Runtime_Privacy (Package_Type);

    Null_Package : constant Package_Type;

    Invalid_Package_Value : exception;

    type Exception_Number is new Long_Integer range 0 .. 2 ** 48 - 1;

    Operand_Class_Error : exception;  
    pragma Exception_Name (Operand_Class_Error, 96);

    Type_Error : exception;  
    pragma Exception_Name (Type_Error, 97);

    Visibility_Error : exception;  
    pragma Exception_Name (Visibility_Error, 98);

    Capability_Error : exception;  
    pragma Exception_Name (Capability_Error, 99);

    Machine_Restriction : exception;  
    pragma Exception_Name (Machine_Restriction, 100);

    Illegal_Instruction : exception;  
    pragma Exception_Name (Illegal_Instruction, 101);

    Illegal_Reference : exception;  
    pragma Exception_Name (Illegal_Reference, 102);

    Illegal_Frame_Exit : exception;  
    pragma Exception_Name (Illegal_Frame_Exit, 103);

    Record_Field_Error : exception;  
    pragma Exception_Name (Record_Field_Error, 104);

    Utility_Error : exception;  
    pragma Exception_Name (Utility_Error, 105);

    Unsupported_Feature : exception;  
    pragma Exception_Name (Unsupported_Feature, 106);

    Illegal_Heap_Access : exception;  
    pragma Exception_Name (Illegal_Heap_Access, 107);

    Select_Use_Error : exception;  
    pragma Exception_Name (Select_Use_Error, 108);


    Frame_Establish_Error : exception;  
    pragma Exception_Name (Frame_Establish_Error, 129);

    Nonexistent_Space_Error : exception;  
    pragma Exception_Name (Nonexistent_Space_Error, 131);

    Nonexistent_Page_Error : exception;  
    pragma Exception_Name (Nonexistent_Page_Error, 132);

    Write_To_Read_Only_Page : exception;  
    pragma Exception_Name (Write_To_Read_Only_Page, 133);

    Heap_Pointer_Copy_Error : exception;  
    pragma Exception_Name (Heap_Pointer_Copy_Error, 134);

    Assertion_Error : exception;  
    pragma Exception_Name (Assertion_Error, 135);

    Microcode_Assist_Error : exception;  
    pragma Exception_Name (Microcode_Assist_Error, 136);

private

    type Address is new Long_Integer;

    Null_Address : constant Address := 0;

    type Segment is access Boolean;  
    pragma Segmented_Heap (Segment);

    Null_Segment : constant Segment := null;

    type Package_Type is new Long_Integer;

    Null_Package : constant Package_Type := 0;

end System;  

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=27 rec1=00 rec2=01 rec3=012
        [0x01] rec0=00 rec1=00 rec2=08 rec3=038
        [0x02] rec0=15 rec1=00 rec2=02 rec3=036
        [0x03] rec0=02 rec1=00 rec2=07 rec3=02c
        [0x04] rec0=18 rec1=00 rec2=03 rec3=062
        [0x05] rec0=24 rec1=00 rec2=04 rec3=00e
        [0x06] rec0=1f rec1=00 rec2=05 rec3=02e
        [0x07] rec0=1b rec1=00 rec2=06 rec3=000
    tail 0x21520f96083c173a68370 0x42a00088462065003