|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3427 (0xd63) Types: TextFile Notes: R1k Text-file segment
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦cd86aa30c⟧ └─⟦this⟧
|---For use with TeleGen2 on 68K Unix | |------------------------------------------------------------------------------ |-- Copyright 1990 - 1991 by Rational, Santa Clara, California. |-- |-- All Rights Reserved. |-- |-- Permission to use, copy, modify, and distribute this software and its |-- documentation for any purpose and without fee is hereby granted, |-- provided that the above copyright notice(s) appear in all copies and that |-- both that copyright notice(s) and this permission notice appear in |-- supporting documentation, and that the name of Rational not be used in |-- advertising or publicity pertaining to distribution of the software |-- without specific, written prior permission. |-- |-- Rational disclaims all warranties with regard to this software, including |-- all implied warranties of merchantability and fitness, in no event shall |-- Rational be liable for any special, indirect or consequential damages or |-- any damages whatsoever resulting from loss of use, data or profits, whether |-- in an action of contract, negligence or other tortious action, arising out |-- of or in connection with the use or performance of this software. |------------------------------------------------------------------------------ | | Logical operations for unsigned 8-bit data. TeleGen2 passess unsigned 8-bit | data as signed 16-bit words. .data .text .proc |---Usage: | A := Xlbmt_And_8( A,B : U_Short ); | A := Xlbmt_Or_8 ( A,B : U_Short ); | A := Xlbmt_Xor_8( A,B : U_Short ); | A := Xlbmt_Not_8( A : U_Short ); | A := Xlbmt_Shift_8( A : U_Short; B : Natural ); .globl _Xlbmt_And_8 _Xlbmt_And_8: movw a6@(10),d0 | Get argument A andw a6@(8),d0 | AND argument B rts | Return result .globl _Xlbmt_Or_8 _Xlbmt_Or_8: movw a6@(10),d0 | Get argument A orw a6@(8),d0 | OR argument B rts | Return result .globl _Xlbmt_Xor_8 _Xlbmt_Xor_8: movw a6@(10),d0 | Get argument A movw a6@(8),d1 | Get argument B eorw d1,d0 | XOR arguments rts | Return result .globl _Xlbmt_Not_8 _Xlbmt_Not_8: movw a6@(8),d0 | Get argument A notb d0 | NOT argument A rts | Return result |---Note: Abs shift amount > 8 results in 0; this is the required behavior! .globl _Xlbmt_Shift_8 _Xlbmt_Shift_8: movw a6@(10),d0 | Get argument A movw a6@(8),d1 | Get argument B jlt L40 | Jump for negative shift amount cmpw #8,d1 | Shift amount more than 8? jge L41 | Yes, return 0 lslb d1,d0 | Shift to the left for positive rts | Return result L40: negw d1 | Make shift amount positive cmpw #8,d1 | Shift amount more than 8? jge L41 | Yes, return 0 lsrb d1,d0 | and now shift to the right rts | Return result L41: clrl d0 | Return 0 rts .data