DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ R T

⟦a28477949⟧ TextFile

    Length: 8421 (0x20e5)
    Types: TextFile
    Names: »RUNTIME_DEFINITIONS«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦24d1ddd49⟧ 
                └─⟦this⟧ 

TextFile

;
;   This number is used to check the compatibility
;   of the program and the loaded shared runtime.
;   The value must be incremented whenever an execution
;   incompatible change is made in the runtime.
;
;       Version         Incompatible changes in this version
;       -------         ------------------------------------
;           0           Initial release of shared runtime
;
;           1           Changed Os2000_Process_Defs to use
;                       special Ada work area rather than
;                       user accounting area.
;
;           2           Added 12 long words of spare storage
;                       in Runtime_Data; this will permit
;                       some addition of data in the shared
;                       runtime to be compatible. 
;
;           3           1.) Rev 6 compiler
;                       2.) Runtime entry point table now 16-bit
;                           offset from table to entry in words.
;                       3.) Deleted some unnecessary shared data items.
;                       4.) General cleanup
        compatibility_version   equ 3
;
;   Amount of stack space reserved for the runtime in bytes
;
        runtime$stack$cushion  equ 1024  
;
;   Values for certain runtime error messages and warnings.
;
        error$code                      equ     16#8000#    
        warning$code                    equ     16#8100#

        elaboration$ferror              equ     1
        finalization$ferror             equ     2
        unhandled$main$trap$ferror      equ     3
        lib$exception$ferror            equ     5
        main$exception$ferror           equ     6
        init$trap$handler$ferror        equ     37
        insufficient$stack$ferror       equ     44
        no$runtime$ferror               equ     45
        rt$incompatible$ferror          equ     46

        task$exception$warning          equ     1
        heap$create$warning             equ     2       
        stack$request$warning           equ     4

;
;   Values used in exit system call
;

        No$Error                        equ     0
        Some$Error                      equ     1
;
;   Comp Unit id for all runtime units except predefined exceptions 
;
        runtime_compunit                equ     17      
;
;   Comp Unit id for predefined exception
;
        exception_compunit              equ     1
;
;   Subprogram kind for runtime suprograms
;
        sp_rt                           equ     1
;
;   Special statement numbers
;
        stmt.end_prolog                 equ     1
        stmt.begin_epilog               equ     16#7FFF#
;
;   Subprogram ids for debug directives within runtime
;   entry points.
;
        sp.internal                             equ     16#0_00#

        sp.enum_image                           equ     16#1_00#
        sp.enum_pos                             equ     16#1_01#
        sp.enum_pred                            equ     16#1_02#
        sp.enum_succ                            equ     16#1_03#
        sp.enum_value                           equ     16#1_04#
        sp.enum_width                           equ     16#1_05#
        sp.int_image                            equ     16#1_06#
        sp.int_value                            equ     16#1_07#
        sp.int_width                            equ     16#1_08#

        sp.allocate_collection                  equ     16#2_00#
        sp.allocate_fixed_cell                  equ     16#2_01#
        sp.deallocate_collection                equ     16#2_02#
        sp.deallocate_fixed_cell                equ     16#2_03#
        sp.collection_size                      equ     16#2_04#
   
        sp.initialize_master                    equ     16#3_00#
        sp.create_task                          equ     16#3_01#
        sp.activate_offspring                   equ     16#3_02#
        sp.notify_parent                        equ     16#3_03#
        sp.task_end                             equ     16#3_04#
        sp.await_dependents                     equ     16#3_05#
        sp.task_completion                      equ     16#3_06#
        sp.terminate_allocated_offspring        equ     16#3_07#
        sp.terminate_dependent_offspring        equ     16#3_08#
        sp.entry_call                           equ     16#3_09#
        sp.conditional_entry_call               equ     16#3_0A#
        sp.timed_entry_call                     equ     16#3_0B#
        sp.begin_accept                         equ     16#3_0C#
        sp.end_accept                           equ     16#3_0D#
        sp.quick_accept                         equ     16#3_0E#
        sp.close_alternatives                   equ     16#3_0F#
        sp.open_delay                           equ     16#3_10#
        sp.open_entry                           equ     16#3_11#
        sp.open_terminate                       equ     16#3_12#
        sp.select_rendezvous                    equ     16#3_13#
        sp.abort_multiple_tasks                 equ     16#3_14#
        sp.check_return_task                    equ     16#3_15#
        sp.delay_statement                      equ     16#3_16#
        sp.entry_count                          equ     16#3_17#
        sp.task_callable                        equ     16#3_18#
        sp.task_stack_size                      equ     16#3_19#
        sp.task_terminated                      equ     16#3_1A#

        sp.raise_exception                      equ     16#4_00#
        sp.raise_constraint_error               equ     16#4_01#
        sp.propagate_exception                  equ     16#4_02#
        sp.stack_check                          equ     16#4_03#

        sp.mantissa                             equ     16#5_00#
        sp.large                                equ     16#5_01#
        sp.fixed_multiply                       equ     16#5_02#
        sp.compare_8_bit_unsigned               equ     16#5_03#
        sp.compare_8_bit_signed                 equ     16#5_04#
        sp.compare_16_bit_unsigned              equ     16#5_05#
        sp.compare_16_bit_signed                equ     16#5_06#
        sp.compare_32_bit_unsigned              equ     16#5_07#
        sp.compare_32_bit_signed                equ     16#5_08#
;
;   Linkage mechanisms used in assembly routines.
;
;       Identification of the mechanism in a .subprogram directive
;       and information provided in .statement directives enable
;       the debugger to find the return pc.
;
        linkage.frame   equ 16#00_00_00_00#     ; return pc may be found at
                                                ; offset from frame pointer

        linkage.simple  equ 16#10_00_00_00#     ; return pc may be found at
                                                ; offset from stack pointer

        linkage.none    equ 16#50_00_00_00#     ; no return pc exists,
                                                ; in bottom routine

        linkage.trap    equ 16#60_00_00_00#     ; in trap handling code
;
;       Definitions for locking primitives
;

                .offset 0       ;  type Q_Element is
                                ;      record
element.next:   .ds.l   1       ;          Next : Q_Link;
element.key:    .ds.l   1       ;          Key  : Task_Id;
element'size:                   ;      end record;
;
;       Ada task control block (TCB) definitions
;
                                .offset 0

tcb.checksum:                   .ds.l   1
tcb.exception_id:               .ds.l   1
tcb.stack_bounds.first:         .ds.l   1
tcb.stack_bounds.size:          .ds.l   1
tcb.code_start:                 .ds.l   1
tcb.process_id:                 .ds.l   1
                                
tcb.action_state:               .ds.b   1
tcb.current_priority:           .ds.b   1
tcb.partner_priority:           .ds.b   1
tcb.suspension_state:           .ds.b   1

tcb.current_layer:              .ds.l   1
tcb.queues:                     .ds.l   3
tcb.master_block:               .ds.l   1
tcb.layer_link:                 .ds.l   1
tcb.callers_head:               .ds.l   1
tcb.callers_link:               .ds.l   1
tcb.activations_in_progress:    .ds.l   1
tcb.spare_word1:                .ds.l   1
tcb.ipc_buffer_list:            .ds.l   1
tcb.parent_tcb:                 .ds.l   1
tcb.parent_frame_link:          .ds.l   1
tcb'size:

b.action_state.exception_pending        equ     3