.TITLE DSIGN  TRANSFER OF SIGN FOR DOUBLE ARGUMENT
/ 
/ 
/                   FIRST PRINTING, FEBRUARY 1974
/ 
/ THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO 
/ CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED
/ AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
/ DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPON-
/ SIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS
/ DOCUMENT.
/ 
/ THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FUR-
/ NISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON
/ A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH
/ INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR 
/ USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PRO-
/ VIDED IN WRITING BY DIGITAL.
/ 
/ DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/ FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIP-
/ MENT THAT IS NOT SUPPLIED BY DIGITAL.
/ 
/ COPYRIGHT (C) 1974, BY DIGITAL EQUIPMENT CORPORATION
/ 
/ 
        .EJECT
/COPYRIGHT 1970,1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
/FOR HARDWARE FLOATING POINT PROCESSOR (FPP), DEFINE 90 FPP,
/EDIT #004  6-15-71
       .GLOBL DSIGN,.DA,
	.IFUND %FPP
	.GLOBL .AO,.AB
	.ENDC
	.IFUND %FPP
	.DEFIN DLD%,A
	JMS* A			/DOUBLE LOAD (.AO)
	.ENDM
	.ENDC
	.IFDEF %FPP
DLD=713150
	.DEFIN DLD%
	DLD
	.ENDM
	.ENDC
/             CALLING SEQUENCE
/      JMS*   (DSIGN)         SUBR CALL
/      JMP    .+3             SUBR RETURN
/      CAL/XCTADDR            ADDR OF ARG1
/      CAL/XCTADDR            ADDR OF ARG2 (XCT IF INDIRECT)
/FPP INSTR. NSS.
	.IFDEF %FPP
BPA=716604			/BR ON POS. FPP AC
FNG=713272			/MAKE FPP AC NEG.
	.ENDC
/
DSIGN  CAL    0              /ENTRY-EXIT
       JMS*   .DA            /GET ARGUMENT (.DA)
       JMP    DSIG03
DSIG01 CAL    0              /ARG1
DSIG02 CAL    0              /ARG2
DSIG03 DLD%   .AO            /LOAD DOUBLE (.AO)
       .DSA   DSIG02+400000  / (ARG2)
	.IFDEF %FPP
	CLC			/-1 TO AC
	BPA			/BR IS POS.
	DSIG04
	CLA			/NEG
DSIG04	TAD (FNG)		/POS
	DAC DSIG05
	DLD			/DOUBLE LOAD
	DSIG01+400000		/ARG 1
DSIG05	0			/FAB OR FNG
	0			/UNUSED
	.ENDC
	.IFUND %FPP
       LAC*   .AB            /GET SIGN WORD (.AB)
       AND    DSIG07         /KEEP SIGN ONLY
       DAC    DSIG06         /HOLD SIGN
       JMS*   .AO            /LOAD DOUBLE (.AO)
       .DSA   DSIG01+400000  / (ARG1)
       LAC*   .AB            /GET SIGN WORD (.AB)
       AND    DSIG08         /STRIP SIGN
       XOR    DSIG06         /ADD SIGN OF ARG2
	SAD DSIG07	/CHECK FOR -0.0 CASE
	CLA	/YES.  MAKE -0.0 A 0.0
       DAC*   .AB            /RESTORE IN SIGN WORD (.AB)
	.ENDC
       JMP*   DSIGN          /EXIT
	.IFUND %FPP
DSIG06	0
DSIG07        400000
DSIG08        377777
	.ENDC
       .END