Trailing-Edge
-
PDP-10 Archives
-
ap-c800d-sb
-
magneg.mac
There are 7 other files named magneg.mac in the archive.  Click here to see a list.
TITLE	MAGNEG FOR LIBOL V12
SUBTTL	GET MAGNITUDE AND NEGATIVE OF TWO-WORD COMP	/CAM
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1974, 1979 BY DIGITAL EQUIPMENT CORPORATION
	SEARCH	LBLPRM
	%%LBLP==:%%LBLP
	BIS==:BIS
;V10*********
;	5/15/75		/DBT	BIS
;************
	HISEG
ENTRY MAG.	;GET MAGNITUDE
ENTRY NEG.	;GET NEGATIVE
ENTRY NEG.A	;FOR USE BY OTHER ROUTINES
;CALLING SEQUENCE:
;	MOVE  PA,[Z AC,ADDRESS]
;	PUSHJ PP,MAG./NEG.
;RESULT WILL BE LEFT IN ACCUMULATOR SPECIFIED BY "AC"
TA=13
TB=14
TC=15
PA=16
PP=17
IFE	BIS,<
MAG.:	MOVE	TB,1(PA)	;GET LOW-PART
	SKIPL	TA,0(PA)	;GET HI-PART -- IS IT NEGATIVE?
	JRST	NEG.B		;NO--NO NEED FOR NEGATION
	TLO	TB,1B18		;YES--BE SURE LOW-PART IS NEGATIVE
	JRST	NEG.A
NEG.:	MOVE	TA,0(PA)	;GET HI-PART
	MOVE	TB,1(PA)	;GET LOW-PART
NEG.A:	SETCA	TA,		;COMPLEMENT HI-PART
	MOVNS	TB		;NEGATE LOW-PART
	TLZ	TB,1B18		;CLEAR SIGN OF LOW-PART
	SKIPN	TB		;IF LOW-PART IS ZERO,
	ADDI	TA,1		;	BUMP HI-PART
	SKIPGE	TA		;BE SURE SIGN OF
	TLOA	TB,1B18		; LOW PART AGREES
NEG.B:	TLZ	TB,1B18		; WITH HI-PART
	LDB	TC,[POINT 4,PA,12]	;GET RESULT LOCATION
	MOVEM	TA,0(TC)	;STORE
	MOVEM	TB,1(TC)	; RESULT
	POPJ	PP,
>	;END OF NON-BIS
IFN	BIS,<
MAG.:	;MAGNITUDE
	SKIPL	TA,(PA)		;GET HIGH ORDER DIGITS - NEGATIVE?
	SKIPA	TB,1(PA)	;POSITIVE - GET LOW ORDER
	DMOVN	TA,(PA)		;GET IT AGAIN AND NEGATE
	LDB	TC,PACFL.##	;GET RESULT AC
	DMOVEM	TA,(TC)		;STORE RESULT
	POPJ	PP,
NEG.:	;NEGATE
	DMOVE	TA,(PA)		;GET SOURCE
NEG.A:	LDB	TC,PACFL.##	;RESULT AC
	DMOVNM	TA,(TC)		;STORE NEGATIVE
	POPJ	PP,
>	;END OF BIS
	END