File: IANDOR.RA of Disk: Disks/MyPDP/m8-1-rka1-rkb1
(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