|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: R T
Length: 33289 (0x8209)
Types: TextFile
Names: »RUNTIME_DATA_LIST«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
└─⟦77aa8350c⟧ »DATA«
└─⟦f794ecd1d⟧
└─⟦24d1ddd49⟧
└─⟦this⟧
; The use of this system is subject to the software license terms and
; conditions agreed upon between Rational and the Customer.
;
; Copyright 1988 by Rational.
;
; RESTRICTED RIGHTS LEGEND
;
; Use, duplication, or disclosure by the Government is subject to
; restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
; Technical Data and Computer Software clause at 52.227-7013.
;
;
; Rational
; 3320 Scott Boulevard
; Santa Clara, California 95054-3197
;
; PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL;
; USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION
; IS STRICTLY PROHIBITED. THIS MATERIAL IS PROTECTED AS
; AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF
; 1976. CREATED 1988. ALL RIGHTS RESERVED.
;
;
.module "RUNTIME_DATA"
;
; This module contains definitions of data objects
; used by the runtime.
;
.include "runtime_definitions"
;
; 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
00000008 element'size: ; end record;
;
; Ada task control block (TCB) definitions
;
.offset 0
00000050 tcb'size:
b.action_state.exception_pending equ 3
.sect ada_runtime_data,data,readwrite,relocatable,alignment:=4
;
; Objects which hold code addresses or other values
; which are determined in the user program.
;
.gbl.l __root_create_return
.gbl.l __task_create_return
.gbl.l __root_finish_return
.gbl.l __task_finish_return
.gbl.l __propagate_exception_branch
.gbl.l __heap_size_var
.gbl.l __main_priority_var
.gbl.l __data_size_var
.gbl.l __finish_entry_offset
00000000 __Root_Create_Return: .ds.l 1 ; return from Start call
00000004 __Task_Create_Return: .ds.l 1 ; return from task create
00000008 __Root_Finish_Return: .ds.l 1 ; return from Finish call
0000000C __Task_Finish_Return: .ds.l 1 ; return from task end
00000010 __Propagate_Exception_Branch: .ds.l 1 ; branch for propagate exception
00000014 __Heap_Size_Var: .ds.l 1 ; heap size to be allocated
00000018 __Main_Priority_Var: .ds.l 1 ; ADA priority of main program
0000001C __Data_Size_Var: .ds.l 1 ; size of program data area
00000020 __Finish_Entry_Offset: .ds.w 1 ; offset to rt entry for finish
;
; Objects common to sequential and tasking programs.
;
.gbl.a __runtime_entry_pointer
.gbl.a __msgq_entry_pointer
.gbl.a __peab_msq_table
.gbl.a __process_descriptor_pointer
.gbl.l __os_param_ptr
.gbl.l __os_param_size
.gbl.l __main_code_start_var
.gbl.l __main_code_start_copy
.gbl.l __module_base_address
.gbl.l __global_base
.gbl.l __root_task_id
.gbl.b __debug_safety_check
.gbl.b __debug_exceptions
.gbl.b __debug_task_mgmt
.gbl.b __debug_storage_mgmt
.gbl.l __heap_ptr
.gbl.l __heap_next_available
.gbl.l __heap_first_unavailable
.gbl.l __storage_mgmt_freelist
.gbl.l __storage_mgmt_semaphore
.gbl.l __tasking_error_var
.gbl.l __set_exception_indirect
.gbl.l __get_exception_indirect
.gbl.l __tdlystm_indirect
.gbl.l __signal_intercept_indirect
.gbl.l __abort_main_indirect
.gbl.l __rt_elaborate_indirect
.gbl.l __rt_finalize_indirect
.gbl.w __main_handler_ferror
.gbl.w __error_path
.gbl.b __abort_main_flag
.gbl.b __runtime_compatibility_value
;
.align 4
00000024 __Runtime_Entry_Pointer: .ds.l 1 ; pointer to table of Ada Runtime
; entry points
00000028 __MsgQ_Entry_Pointer: .ds.l 1 ; pointer to table of Message Queue
; entry points
0000002C __peab_msq_table: .ds.l 1 ; pointer to table of Message Queue
; entry points; used by PEAB IPC
00000030 __Process_Descriptor_Pointer: .ds.l 1 ; pointer to OS-9 process descriptor
; of currently running process
00000034 __OS_Param_Ptr: .ds.l 1 ; address of command line params
00000038 __OS_Param_Size: .ds.l 1 ; byte count of command line params
0000003C __Main_Code_Start_Var: .ds.l 1 ; main code start address; must be
00000040 __Main_Code_Start_Copy: .ds.l 1 ; adjacent for debugger.
00000044 __Module_Base_Address: .ds.l 1 ; module code base address
00000048 __Global_Base: .ds.l 1 ; global data base address
0000004C __Root_Task_Id: .ds.l 1 ; address of tcb for main program
00000050 __Debug_Safety_Check: .ds.b 1 ; safety check flag
00000051 __Debug_Exceptions: .ds.b 1 ; exception tracing flag
00000052 __Debug_Task_Mgmt: .ds.b 1 ; task management debug flag
00000053 __Debug_Storage_Mgmt: .ds.b 1 ; storage management debug flag
00000054 __Heap_Ptr: .ds.l 1 ; address of base of heap
00000058 __Heap_Next_Available: .ds.l 1 ; next available heap location
0000005C __Heap_First_Unavailable: .ds.l 1 ; top of heap
00000060 __Storage_Mgmt_Freelist: .ds.l 1 ; freelist pointer for chunks
00000064 __Storage_Mgmt_Semaphore: .ds.l 2 ; storage management lock
0000006C __Tasking_Error_Var: .ds.l 1 ; object with Tasking_Error address
00000070 __Set_Exception_Indirect: .ds.l 1 ; indirect for set exception
00000074 __Get_Exception_Indirect: .ds.l 1 ; indirect for get exception
00000078 __TDlyStm_Indirect: .ds.l 1 ; indirect for delay statement
0000007C __Signal_Intercept_Indirect: .ds.l 1 ; indirect for signal intercept
00000080 __Abort_Main_Indirect: .ds.l 1 ; indirect for abort main
00000084 __Rt_Elaborate_Indirect: .ds.l 1 ; indirect for shared runtime elab
00000088 __Rt_Finalize_Indirect: .ds.l 1 ; indirect for shared runtime final
0000008C __Main_Handler_FError: .ds.w 1 ; error msg in unhandled excptn
0000008E __Error_Path: .ds.w 1 ; i/o path for error/warn msgs
00000090 __Abort_Main_Flag: .ds.b 1 ; flag to abort main program
00000091 __Runtime_Compatibility_Value: .ds.b 1 ; runtime version value
;
; Objects required only by sequential programs.
;
.gbl.l __Seq_Initialized
.gbl.l __Seq_Wait_Item
;
.align 4
00000094 __Seq_Wait_Item: .ds.l 2
0000009C __Seq_Initialized: .ds.b 1
;
; Objects required only by tasking programs.
;
.gbl.a __Tasking_Lock
.gbl.l __Task_Code_Start_Var
.gbl.l __Os_Base_Priority
.gbl.l __Ipc_Buffer_Freelist
.gbl.l __TT_Tcb_Clctn
.gbl.l __TT_Wait_List_Clctn
.gbl.l __TT_Branch_Table_Clctn
.gbl.l __TT_Buffer_Item_Clctn
.gbl.l __Root_Tcb
.gbl.l __Dummy_Tcb
.gbl.l __Top_Layer
.gbl.l __Root_Layer
Layer_Size equ 24; bytes
;
.align 4
000000A0 __Tasking_Lock: .ds.b Element'Size;
000000A8 __Task_Code_Start_Var: .ds.l 1
000000AC __Os_Base_Priority: .ds.l 1
000000B0 __Ipc_Buffer_Freelist: .ds.l 1
000000B4 __TT_Tcb_Clctn: .ds.l 1
000000B8 __TT_Wait_List_Clctn: .ds.l 1
000000BC __TT_Branch_Table_Clctn: .ds.l 1
000000C0 __TT_Buffer_Item_Clctn: .ds.l 1
;
.align 4
000000C4 __Root_Tcb: .ds.b Tcb'Size;
00000114 __Dummy_Tcb: .ds.b 28 ; dummy tcb is incomplete
00000130 __Top_Layer: .ds.b Layer_Size;
00000148 __Root_Layer: .ds.b Layer_Size;
;
; Spares
;
.align 4
00000160 $Reserved: .ds.l 12;
.end
Program Section Name Kind Length Patches Fixups
-------------------------------- ---- ---------- ------- -------
ADA_RUNTIME_DATA Rel 400 0 0
Standard include file: <none>
Object module version: 11
Assembled 390 lines in 4.613 elapsed, 4.271 CPU.
5072 lines per elapsed minute.
5479 lines per CPU minute.
10 disk waits for this job.
21434 bytes of heap used by this job.