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: ┃ O T ┃
Length: 5644 (0x160c) Types: TextFile Names: »OS2000_MODULE_ASM«
└─⟦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" .gbl.a __header_start .gbl.l __data_area_size .gbl.a __Ada_Init_Data_Begin .gbl.a __Ada_Init_Values_Begin .gbl.a __Ada_Init_Values_End .gbl.l __Defined_Heap_Size .ext.l _os2000_module$name ; defined in the elaboration module .ext.l __undefined_trap .ext.l __main_stack_size ; From the main prog elab code. .ext.l __HEAP_SIZE ; From the main prog elab code. .sect os2000_module_header,relocatable,code,readonly,alignment:=4 .local $module_rev equ 0 $compiler_rev equ 6 $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# __header_start: $m_id: .dc.w $sync_bytes $m_sysrev: .dc.w $system_rev $m_size: .dc.l $end - $m_id + 1 $m_owner: $m_owner.grp: .dc.w $group_id $m_owner.usr: .dc.w $user_id $m_name: .dc.l _os2000_module$name - $m_id $m_accs: .dc.w $access_rights $m_type: .dc.b $program_type $m_lang: .dc.b $object_code $m_attr: .dc.b $shared_module $m_revs: .dc.b $module_rev $m_edit: .dc.w $compiler_rev $m_usage: .dc.l $usage_comments $m_symbol: .dc.l 0 $m_reserved: .dc.w 0,0,0,0,0,0,0 $m_parity: .dc.w 0 $m_exec: .dc.l 0 ; modified during conversion process $m_excpt: .dc.l __undefined_trap $m_mem: .dc.l __data_area_size $m_stack: .dc.l __main_stack_size $m_idata: .dc.l init_data $m_irefs: .dc.l $init_refs ; ; thats the end of the real header ; .align 4 ; ; The following MUST resolve to locations $48 through $53 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. Location $50 contains the 32 bit value of the size ; to be allocated for the initial heap (in bytes). It is overwritten ; by the object converter only on request. ; $loc_48: .dc.l 0 ; Machine-id $loc_4c: .dc.l 0 ; Object-id __defined_heap_size: .dc.l __HEAP_SIZE ; Heap size ; $init_refs: .dc.l 0,0 ; there are no reference tables .align 4 $usage_comments: .ascii "<Rev0 Comment>" ; Must be exactly these 14 characters. .dcb.b 129-14,0 ; Must fill out exactly 128 chars with .dc.b 0 ; To fill out for alignment. ; ; Define the bytes which will be filled with ; the module crc during the conversion process ; .sect os2000_module_crc,code,relocatable,alignment:=2 .dc.b 0 ; to ensure odd alignment for the CRC .dc.b 0 ; must always be 0 .dc.b 0 ; updated during conversion process to valid CRC value .dc.b 0 ; updated during conversion process to valid CRC value $end: .dc.b 0 ; updated during conversion process to valid CRC value ; ; The following are markers which, in conjunction with special ; placement in the linker command file, denote the beginning ; and end of the initial value area. This area is block copied ; to the initialized data area by the operating system when the ; module is loaded. Os2000 copies hunks of values where each ; hunk starts with a 32-bit offset and a 32-bit size followed ; by the values for that hunk. Additional hunks are simply ; placed one after the other. The list of hunks is terminated ; by a pair of 32-bit zeros (null offset, null size). ; .sect module$iv_begin,data,alignment:=4 .local init_data: $offset:.dc.l $destination $size: .dc.l $end - $begin $begin: .sect module$iv_end,data,relocatable,alignment:=4 $end: .dc.l 0,0 ; Terminator .sect module$id_begin,data,relocatable,alignment:=4 $destination: .local .sect module$wd_begin,data,relocatable,alignment:=4 $begin: .sect module$wd_end,data,relocatable,alignment:=4 $end: __data_area_size equ $end - $begin .sect ADA_INIT_VALUES_BEGIN,RELOCATABLE,DATA,READWRITE,ALIGNMENT:=4 __Ada_Init_Values_Begin: .sect ADA_INIT_VALUES_END,RELOCATABLE,DATA,READWRITE,ALIGNMENT:=4 __Ada_Init_Values_End: .sect ADA_INIT_DATA_BEGIN,RELOCATABLE,DATA,READWRITE,ALIGNMENT:=4 __Ada_Init_Data_Begin: .end