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 - downloadIndex: ┃ M T ┃
Length: 37896 (0x9408) Types: TextFile Names: »MODULE_HEADER_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 "OS2000_MODULE" .include "^^standard_assembler_include_file" 00000000 .push_list 00000000 .pop_list 00000000 .list macro_expansion = none .include "^^common.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 comp_unit runtime_compunit .gbl.l __module_begin .gbl.l __runtime_machine_id .gbl.l __runtime_object_id .gbl.l __runtime_entry_table .sect os2000_module_header,relocatable,code,readonly,alignment:=4 .local $module_revision equ 6 $module_edition equ 0 $sync_bytes equ 16#4AFC# $system_rev equ 1 $group_id equ 5 $user_id equ 0 $access_rights equ 2#0000_0101_0101_0101# ; public/group/owner = er $program_type equ 1 $object_code equ 1 $shared_module equ 2#1000_0000# $not_shared equ 2#0000_0000# ; ; 00000000 __Module_Begin: 00000000 4AFC $m_id: .dc.w $sync_bytes 00000002 0001 $m_sysrev: .dc.w $system_rev 00000004 00000000 $m_size: .dc.l $end - $m_id + 1 00000008 $m_owner: 00000008 0005 $m_owner.grp: .dc.w $group_id 0000000A 0000 $m_owner.usr: .dc.w $user_id 0000000C 00000000 $m_name: .dc.l $usage_comments - $m_id 00000010 0555 $m_accs: .dc.w $access_rights 00000012 01 $m_type: .dc.b $program_type 00000013 01 $m_lang: .dc.b $object_code 00000014 80 $m_attr: .dc.b $shared_module 00000015 06 $m_revs: .dc.b $module_revision 00000016 0000 $m_edit: .dc.w $module_edition 00000018 00000000 $m_usage: .dc.l $usage_comments 0000001C 00000000 $m_symbol: .dc.l 0 00000020 0000000000000000000000000000 $m_reserved: .dc.w 0,0,0,0,0,0,0 0000002E 0000 $m_parity: .dc.w 0 00000030 00000000 $m_exec: .dc.l 0 ; modified during conversion process 00000034 00000000 $m_excpt: .dc.l $m_id 00000038 00000000 $m_mem: .dc.l 0 0000003C 00000080 $m_stack: .dc.l 128 00000040 00000000 $m_idata: .dc.l $init_data 00000044 00000000 $m_irefs: .dc.l $init_refs ; ; thats the end of the real header ; ; ; The following MUST resolve to locations $48 through $4F as the object ; converter manipulates these blindly. Locations $48 and $4C will be ; overwritten with the 32 bit machine id and object id respectively of ; the <EXE> file. NOTE: LOCATION $50 IS NOT RESERVED TO CONTAIN THE ; SIZE OF HEAP IN THE SHARED R/T AND IF YOU USE THE OBJECT CONVERTER TO ; OVERWRITE THIS VALUE, IT WILL DESTROY THE SHARED R/T! ; 00000048 05050505 __runtime_machine_id: .dc.l 16#0505_0505# ; Altered during conversion 0000004C A0A0A0A0 __runtime_object_id: .dc.l 16#A0A0_A0A0# ; Altered during conversion ; ; This module defines the table of entry points ; to the shared runtime. It MUST follow the three entries above which ; occur at offset $48, $4c, and $50. ; ; Each ADA program will have a pointer to this table ; in __Runtime_Entry_Pointer. The values in the table ; are word offsets relative to the base of the table. ; Calls to the services are generally performed by ; ; movea.l (__runtime_entry_pointer,a5),a1 ; move.w #rt.operation,d0 ; move.w (a0,d0.w),d0 ; jmp (a0,d0.w) ; ; ; Word before beginning to the entry point table ; is offset to the beginning of the module. Used ; by the debugger. ; 00000050 00000000 .dc.l __module_begin - $base 00000054 __runtime_entry_table: 00000054 $base: .macro build .ext.a %1 .dc.w (%1-$base)/2 .endmacro .include "^^common.entry_table_definitions" ; ; Start/Middle/Finsh support ; build _.start_sequential build _.start_tasking build __middle_sequential build __middle_tasking build _.finish_sequential build _.finish_tasking ; ; Attribute support ; build __enum_image build __enum_pos build __enum_pred build __enum_succ build __enum_value build __enum_width build __int_image build __int_value build __int_width ; ; Storage management support ; build __allocate_collection build __create_collection build __allocate_fixed_cell build __deallocate_collection build __deallocate_fixed_cell build __collection_size ; ; Shared code generic support ; build __scg_copy build __scg_convert build __scg_satisfies build __scg_equal build __scg_allocate build __scg_return build __scg_unchecked ; build __scg_deallocate build __spare_1 ; ; Tasking support ; build __initialize_master build __create_task build __activate_offspring build __notify_parent build __task_end build __await_dependents build __task_completion build __terminate_allocated_offspring build __terminate_dependent_offspring build __entry_call build __conditional_entry_call build __timed_entry_call build __begin_accept build __end_accept build __quick_accept build __select_rendezvous build __abort_multiple_tasks build __check_return_task build __entry_count build __task_callable build __task_stack_size build __task_terminated ; ; Miscellaneous support ; build __mantissa build __large build __compare_8_bit_unsigned build __compare_8_bit_signed build __compare_16_bit_unsigned build __compare_16_bit_signed build __compare_32_bit_unsigned build __compare_32_bit_signed ; ; OS2000 specific support ; build __trace_exception build __art_attach_queue build __art_detach_queue ; .align 4 000000D0 0000000000000000 $init_data: .dc.l 0,0 000000D8 0000000000000000 $init_refs: .dc.l 0,0 .align 4 000000E0 4144415F52554E54494D4500 $usage_comments:.asciz "ADA_RUNTIME" ; ; Define the bytes which will be filled with ; the module crc during the conversion process ; .sect os2000_module_crc,code,relocatable,alignment:=2 00000000 00 .dc.b 0 ; to ensure odd alignment for the CRC 00000001 00 .dc.b 0 ; must always be 0 00000002 00 .dc.b 0 ; updated during conversion process to valid CRC value 00000003 00 .dc.b 0 ; updated during conversion process to valid CRC value 00000004 00 $end: .dc.b 0 ; updated during conversion process to valid CRC value .end Program Section Name Kind Length Patches Fixups -------------------------------- ---- ---------- ------- ------- OS2000_MODULE_CRC Rel 5 0 0 OS2000_MODULE_HEADER Rel 236 2 67 DEBUG_BODY Rel 0 0 0 DEBUG_HDR_CU Rel 13 2 0 Standard include file: <none> Object module version: 11 Assembled 1051 lines in 12.270 elapsed, 9.077 CPU. 5139 lines per elapsed minute. 6947 lines per CPU minute. 29 disk waits for this job. 467022 bytes of heap used by this job.