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

⟦0879a140e⟧ TextFile

    Length: 7198 (0x1c1e)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

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

TextFile


-- Copyright 1986, 1987, 1988 Verdix Corporation

------------------------------------------------------------------------------
-- User interface to the exception subcodes, predefined exception strings
-- and the routine for raising an exception.
------------------------------------------------------------------------------
with system;
package v_i_raise is

    pragma suppress(ALL_CHECKS);
    pragma suppress(EXCEPTION_TABLES);
    pragma not_elaborated;


    last_xcpt: constant := 98;

    -- Exception subcodes user by debugger.
    type xcpt_t is range 0 .. last_xcpt;

    undefined_xcpt:         constant xcpt_t := 0;
    value_lbound_xcpt:      constant xcpt_t := 1;
    value_ubound_xcpt:      constant xcpt_t := 2;
    index_lbound_xcpt:      constant xcpt_t := 3;
    index_ubound_xcpt:      constant xcpt_t := 4;
    slice_lbound_xcpt:      constant xcpt_t := 5;
    slice_ubound_xcpt:      constant xcpt_t := 6;
    str_len_xcpt:           constant xcpt_t := 7;
    agg_lbound_xcpt:        constant xcpt_t := 8;
    agg_ubound_xcpt:        constant xcpt_t := 9;
    cat_len_xcpt:           constant xcpt_t := 10;
    array_size_xcpt:        constant xcpt_t := 11;
    index_match_xcpt:       constant xcpt_t := 12;
    no_pred_xcpt:           constant xcpt_t := 13;
    no_succ_xcpt:           constant xcpt_t := 14;
    val_attr_lbound_xcpt:   constant xcpt_t := 15;
    val_attr_ubound_xcpt:   constant xcpt_t := 16;
    delta_xcpt:             constant xcpt_t := 17;
    digits_xcpt:            constant xcpt_t := 18;
    neg_exp_xcpt:           constant xcpt_t := 19;
    accuracy_xcpt:          constant xcpt_t := 20;
    decl_elab_xcpt:         constant xcpt_t := 21;
    task_elab_xcpt:         constant xcpt_t := 22;
    div_by_0_xcpt:          constant xcpt_t := 23;
    dscrmt_xcpt:            constant xcpt_t := 24;
    variant_xcpt:           constant xcpt_t := 25;
    tag_xcpt:               constant xcpt_t := 26;
    match_lbound_xcpt:      constant xcpt_t := 27;
    match_ubound_xcpt:      constant xcpt_t := 28;
    null_deref_xcpt:        constant xcpt_t := 29;
    select_else_xcpt:       constant xcpt_t := 30;
    no_return_xcpt:         constant xcpt_t := 31;
    agg_other_xcpt:         constant xcpt_t := 32;
    propagation_xcpt:       constant xcpt_t := 33;
    raise_xcpt:             constant xcpt_t := 34;
    reraise_xcpt:           constant xcpt_t := 35;
    real_accuracy_xcpt:     constant xcpt_t := 36;
    subp_elab_xcpt:         constant xcpt_t := 37;
    accept_xcpt:            constant xcpt_t := 38;
    index_range_lbound_xcpt:constant xcpt_t := 39;
    index_range_ubound_xcpt:constant xcpt_t := 40;
    range_lbound_xcpt:      constant xcpt_t := 41;
    range_ubound_xcpt:      constant xcpt_t := 42;
    enum_value_xcpt:        constant xcpt_t := 43;
    enum_syntax_xcpt:       constant xcpt_t := 44;
    out_of_memory_xcpt:     constant xcpt_t := 45;
    out_of_lheap_xcpt:      constant xcpt_t := 46;
    int_syntax_xcpt:        constant xcpt_t := 47;
    int_base_xcpt:          constant xcpt_t := 48;
    neg_int_exponent_xcpt:  constant xcpt_t := 49;
    int_too_big_xcpt:       constant xcpt_t := 50;
    int_digit_base_xcpt:    constant xcpt_t := 51;
    int_magnitude_xcpt:     constant xcpt_t := 52;
    pos_val_xcpt:           constant xcpt_t := 53;
    call_complete_xcpt:     constant xcpt_t := 54;
    call_abnormal_xcpt:     constant xcpt_t := 55;
    propogated_xcpt:        constant xcpt_t := 56;
    aborted_xcpt:           constant xcpt_t := 57;
    completed_xcpt:         constant xcpt_t := 58;
    all_closed_xcpt:        constant xcpt_t := 59;
    not_value_xcpt:         constant xcpt_t := 60;
    terminated_xcpt:        constant xcpt_t := 61;
    convert_xcpt:           constant xcpt_t := 62;
    flt_div_by_0_xcpt:      constant xcpt_t := 63;
    flt_underflow_xcpt:     constant xcpt_t := 64;
    flt_overflow_xcpt:      constant xcpt_t := 65;
    flt_subrange_xcpt:      constant xcpt_t := 66;
    deallocated_pool_xcpt:  constant xcpt_t := 67;
    bad_claim_xcpt:         constant xcpt_t := 68;
    noextend_pool_xcpt:     constant xcpt_t := 69;
    index_xcpt:             constant xcpt_t := 70;
    value_xcpt:             constant xcpt_t := 71;
    stack_limit_xcpt:       constant xcpt_t := 72;
	generic_elab_xcpt:		constant xcpt_t := 73;
	match_accuracy_xcpt:	constant xcpt_t := 74;
	constraint_compat_xcpt:	constant xcpt_t := 75;
	no_image_xcpt: 			constant xcpt_t := 76;
	passive_tasking_xcpt:	constant xcpt_t := 77;
	inline_only_xcpt:		constant xcpt_t := 78;
	cifo_make_access_xcpt:	constant xcpt_t := 79;
	addr_aln_xcpt:			constant xcpt_t := 80;
	passive_not_elab_xcpt:	constant xcpt_t := 81;
	passive_call_xcpt:		constant xcpt_t := 82;
	passive_isr_xcpt:		constant xcpt_t := 83;
	intr_vector_xcpt:		constant xcpt_t := 84;
	intr_entry_xcpt:		constant xcpt_t := 85;
	bound_intr_entry_xcpt:	constant xcpt_t := 86;
	rec_type_xcpt:			constant xcpt_t := 87;
	isr_wait_xcpt:			constant xcpt_t := 88;
	isr_service_xcpt:		constant xcpt_t := 89;
	isr_cond_wait_xcpt:		constant xcpt_t := 90;
	isr_mutex_lock_xcpt:	constant xcpt_t := 91;
	no_prio_ceiling_xcpt:	constant xcpt_t := 92;
	msg_err_xcpt:			constant xcpt_t := 93;
	down_station_xcpt:		constant xcpt_t := 94;
	ceiling_select_xcpt:	constant xcpt_t := 95;
	interrupt_entry_xcpt:	constant xcpt_t := 96;
	bad_cifo_isr_xcpt:		constant xcpt_t := 97;
	entry_criteria_xcpt:		constant xcpt_t := 98;

    -- remember to change the value of last_xcpt

	-- also need to update ../fe/exceptions.i and ../fe/exceptions.h

    --
    -- Predefined ADA exception strings
    --
    constraint_error_image: string(1..1);
        pragma interface_name(constraint_error_image,
            "_A_constraint_error.EXCEPTION");
    numeric_error_image: string(1..1);
        pragma interface_name(numeric_error_image,
            "_A_numeric_error.EXCEPTION");
    program_error_image: string(1..1);
        pragma interface_name(program_error_image,
            "_A_program_error.EXCEPTION");
    storage_error_image: string(1..1);
        pragma interface_name(storage_error_image,
            "_A_storage_error.EXCEPTION");
    tasking_error_image: string(1..1);
        pragma interface_name(tasking_error_image,
            "_A_tasking_error.EXCEPTION");
    communication_error_image: string(1..1);
        pragma interface_name(communication_error_image,
            "_A_communication_error.EXCEPTION");

    rts_msg: xcpt_t;
        pragma interface_name(rts_msg, "__RTS_MSG");

    --------------------------------------------------------------------------
    -- Raise routine called by the Ada run-time routines.
    -- Msg is an index into a table of diagnostics that the debugger has.
    --------------------------------------------------------------------------
    procedure rts_raise(image:in system.address; msg: in xcpt_t);

	-- Interface to the raise routine as called directly by the compiler
	procedure raise_exception(identifier : system.address);

private
	pragma interface(ADA, rts_raise);
	pragma interface_name(rts_raise, "__RTS_RAISE");
	pragma interface(Ada, raise_exception);
	pragma interface_name(raise_exception, "RAISE");
end v_i_raise