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