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: ┃ S T

⟦7fab3b23b⟧ TextFile

    Length: 3070 (0xbfe)
    Types: TextFile
    Names: »SYSTEM_IMPLEMENTATION_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  "SYSTEM_IMPLEMENTATION"


        .include "^standard_assembler_include_file"
        .include "runtime_definitions"

        comp_unit runtime_compunit

        .sect   predefined_code,relocatable,code,readonly,alignment:=2

        .gbl.a  __system.unsigned_add
        .gbl.a  __system.unsigned_subtract
        .gbl.a  __system.unsigned_lt
        .gbl.a  __system.unsigned_le
        .gbl.a  __system.unsigned_gt
        .gbl.a  __system.unsigned_ge

        $left'offset    equ 4
        $right'offset   equ 8
;
;       function "+" (Left, Right : Address) return Address;
;
        subprogram sp_rt,sp.internal,linkage.simple
__system.unsigned_add:
        move.l  ($left'offset,sp),d0
        add.l   ($right'offset,sp),d0
        rtd     #8
;
;       function "-" (Left, Right : Address) return Address;
;
        subprogram sp_rt,sp.internal,linkage.simple
__system.unsigned_subtract:
        move.l  ($left'offset,sp),d0
        sub.l   ($right'offset,sp),d0
        rtd     #8
;
;       function "<" (Left, Right : Address) return Boolean;
;
        subprogram sp_rt,sp.internal,linkage.simple
__system.unsigned_lt:
        moveq.l #0,d0
        move.l  ($left'offset,sp),d1
        cmp.l   ($right'offset,sp),d1
        slo.b   d0
        neg.b   d0
        rtd     #8
;
;       function "<=" (Left, Right : Address) return Boolean;
;
        subprogram sp_rt,sp.internal,linkage.simple
__system.unsigned_le:
        moveq.l #0,d0
        move.l  ($left'offset,sp),d1
        cmp.l   ($right'offset,sp),d1
        sls.b   d0
        neg.b   d0
        rtd     #8
;
;       function ">" (Left, Right : Address) return Boolean;
;
        subprogram sp_rt,sp.internal,linkage.simple
__system.unsigned_gt:
        moveq.l #0,d0
        move.l  ($left'offset,sp),d1
        cmp.l   ($right'offset,sp),d1
        shi.b   d0
        neg.b   d0
        rtd     #8
;
;       function ">=" (Left, Right : Address) return Boolean;
;
        subprogram sp_rt,sp.internal,linkage.simple
__system.unsigned_ge:
        moveq.l #0,d0
        move.l  ($left'offset,sp),d1
        cmp.l   ($right'offset,sp),d1
        shs.b   d0
        neg.b   d0
        rtd     #8

        end_subprograms

        .end