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: ┃ F T ┃
Length: 24861 (0x611d) Types: TextFile Names: »FIXED_ATTRIBUTES_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 "FIXED ATTRIBUTES" .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 .sect ada_runtime_code,code,relocatable,alignment:=2 .gbl.a __mantissa .gbl.a __large ; ; function mantissa (l : integer; ; h : integer) return integer; ; subprogram sp_rt,sp.mantissa,linkage.simple 00000000 __mantissa: .local $l'offset equ 4 $h'offset equ 8 00000000 7000 moveq.l #0,d0 ; assume null range 00000002 222F0004 move.l ($l'offset,sp),d1 ; d1 := l 00000006 226F0008 movea.l ($h'offset,sp),a1 ; a1 := h 0000000A B289 cmp.l a1,d1 ; compare l to h 0000000C 6E00 bgt.s $done ; if l > h range is null 0000000E 4A81 tst.l d1 00000010 6E00 bgt.s $l_ok 00000012 4481 neg.l d1 00000014 C389 $l_ok: exg.l d1,a1 00000016 4A81 tst.l d1 00000018 6E00 bgt.s $h_ok 0000001A 4481 neg.l d1 0000001C B289 $h_ok: cmp.l a1,d1 0000001E 6200 bhi.s $d1_is_max 00000020 2209 move.l a1,d1 00000022 $d1_is_max: 00000022 5381 subq.l #1,d1 00000024 6F00 ble.s $done ; range was 0..0 or 0..1 00000026 EDC11000 bfffo d1{0:32},d1 ; d1 := bit # of 1st set bit 0000002A 7020 moveq.l #32,d0 0000002C 9081 sub.l d1,d0 ; compute 'manitssa 0000002E 4E740008 $done: rtd #8 ; ; function large (L : integer; ; H : integer; ; S : integer) return integer; ; subprogram sp_rt,sp.large,linkage.simple 00000032 __large: .local $l'offset equ 4 $h'offset equ 8 $s'offset equ 12 00000032 2F2F0008 move.l ($h'offset,sp),-(sp) ; push h statement 0,0,1 00000036 2F2F0008 move.l ($l'offset+4,sp),-(sp) ; push l statement 0,0,2 0000003A 6100 bsr.s __mantissa ; find 'mantissa (l, h) statement 0,0,0 0000003C 72FF moveq.l #-1,d1 ; d1 := -1 (all ones) 0000003E E9C10020 bfextu d1{0:d0},d0 ; d0 lsbs of d0 = 1 others = 0 00000042 D2AF000C add.l ($s'offset,sp),d1 ; d1 := 'small - 1 00000046 B380 eor.l d1,d0 ; d0 := d0 xor 'small - 1 00000048 4E74000C rtd #12 ; result is in d0 end_subprograms .end Program Section Name Kind Length Patches Fixups -------------------------------- ---- ---------- ------- ------- ADA_RUNTIME_CODE Rel 76 5 3 DEBUG_BODY Rel 61 7 2 DEBUG_HDR_CU Rel 19 2 0 Standard include file: <none> Object module version: 11 Assembled 1366 lines in 12.315 elapsed, 8.874 CPU. 6656 lines per elapsed minute. 9236 lines per CPU minute. 6 disk waits for this job. 366868 bytes of heap used by this job.