DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ D T

⟦e46dc8f3c⟧ TextFile

    Length: 2270 (0x8de)
    Types: TextFile
    Names: »DEBUG_TOOLS_ASM«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦24d1ddd49⟧ 
                └─⟦this⟧ 

TextFile

;    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 "DEBUG_TOOLS"
        
        .include        "^standard_assembler_include_file"
        .include        "^common.runtime_definitions"
        .include        "^common.os2000_definitions"
        comp_unit      runtime_compunit
        .sect           predefined_code,relocatable,code,readonly,alignment:=2

        .gbl.a  __get_fp        
        .gbl.a  __get_exc_addr
        .gbl.a  __Get_Current_Task_Id

        .ext.a  __Process_Descriptor_Pointer
;
;    function Get_Current_Task_Id return Task_Id;
;    -- Get the TCB pointer for the current task
;
        subprogram sp_rt,sp.internal,linkage.simple
__get_current_task_id:
        movea.l (__process_descriptor_pointer,a5),a0
        movea.l (a0),a0
        move.l  (art$tsk_id,a0),d0
        rts
;
;
;       function get_fp return address;
;
        subprogram sp_rt,sp.internal,linkage.simple
__get_fp:
        move.l  a6,d0
        rts
;
;       function get_exc_addr( task_id : address ) return address;
;                       
        subprogram sp_rt,sp.internal,linkage.simple
__get_exc_addr:                  
        .local

        $taskid'offset   equ    4
                                                                      
        movea.l ($taskid'offset,sp),a0          ; a0 := current task_id
        move.l  (tcb.exception_id,a0),d0        ; d0 := last exception
        rtd     #4

        end_subprograms

        .end