File: IANDOR.RA of Tape: Sources/Multi8/m8-mprog-f
(Source file text) 

/LOGICAL .AND., .OR. AND .EOR. FUNCTIONS
/
/
/ VERSION 40A 23-SEP-80 WVDM
/
/
/THE FOLLOWING IS A SET OF 8 MODE (RALF TYPE)
/ROUTINES THAT ALLOW .AND., .OR. AND .EOR. LOGICS
/THESE ROUTINES ARE CALLABLE AT THE FORTRAN LEVEL
/
/	IVAL=IAND(ARG1,ARG2)
/
/	IVAL=IOR(ARG1,ARG2)
/
/	IVAL=IEOR(ARG1,ARG2)
	SECT8 IAND
	ENTRY IOR
	ENTRY IEOR
	BSW=7002
	MQL=7421
	MQA=7501
/
	BASE	0
	INDEX 	0
	JSA	SETUP
	TRAP4	AND8
	JA	CONT

IOR,	JSA	SETUP
	TRAP4	OR8
	JA	CONT

IEOR,	JSA	SETUP
	TRAP4	EOR8
CONT,	STARTD
	FLDA	30	/GET RETURN
	FSTA#	GOBAK
	STARTF
	XTA	5	/GET RESULT IN FAC FOR FUNCTION
	JXN	GOBAK,3	/BIGGER 2047 ?
	FADD#	P4096	/YES, KILL NEGATIVE
GOBAK,	JA	.	/RTN TO CALLER


SETUP,	JA	.
	STARTD
	SETX	XR0
	LDX	0,3	/INIT 2047 SWITCH
	FLDA%	0,1	/GET PTR TO ARG1
	FSTA	3
	STARTF
	FLDA%	3	/USER ARG TO FAC
	JAL	ERROR	/FIXABLE ?
	ATX	0	/INTEGER AND PASS TO 8 CODE
	STARTD
	FLDA%	0,2	/GET PTR TO ARG2
	FSTA	3
	STARTF
	FLDA%	3	/SECOND ARG TO XR4
	JAL	ERROR	/FIXABLE ?
	ATX	4
	JA	SETUP

	EXTERN	#ARGER
ERROR,	TRAP4	#ARGER

AND8,	0
	TAD	XR0
	AND	XR4
	SMA
	ISZ	XR3
	DCA	XR5	/XR5=XR0.AND.XR4
	CIF CDF 0
	JMP%	AND8

OR8,	0
	TAD	XR0
	MQL
	TAD	XR4
	MQA
	SMA
	ISZ	XR3
	DCA	XR5	/XR5=XR0.OR.XR4
	CIF CDF 0
	JMP%	OR8

EOR8,	0
	TAD	XR0
	MQL
	TAD	XR4
	MQA
	DCA	XR6	/XR6=XR0.OR.XR4
	TAD	XR0
	AND	XR4
	CMA
	AND	XR6
	SMA
	ISZ	XR3
	DCA	XR5	/XR5=(XR0.OR.XR4).AND..NOT.(XR0.AND.XR4)
	CIF CDF 0
	JMP%	EOR8
/
P4096,	F 4096.
/
XR0,	0		/GETS ARG1
XR1,	1		/FOR ARG1
XR2,	2		/FOR ARG2
XR3,	0		/.GT. 2047 SWITCH
XR4,	0		/GETS ARG2
XR5,	0		/GETS RESULT
XR6,	0		/TEMP
XR7,	0		/
	END