|
|
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: 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