4 ENTRY NCOND / FORTRAN INTEGER FUNCTION
5 ENTRY COND / FORTRAN REAL FUNCTION
7 / ODD NUMBER OF PARAMETERS: I=NCOND(LA,A,LB,B,...,LY,Y,Z)
8 / NCOND:=.IF LA .THEN A .ELIF LB .THEN B .ELIF ... .ELSE Z .FI
9 / EVEN NUMBER OF PARAMETERS: I=NCOND(LA,A,LB,B,...,LZ,Z)
10 / NCOND:=.IF LA .THEN A .ELIF .... .ELIF LZ .THEN Z .ELSE 0 .FI
20 T1, ORG .+3 / POINTER INTO PARAMETER LIST
21 T2, ORG .+3 / HOLD ADR. OF PARAMETERS
22 RETURN, JA .;0 / RETURN ADR
24 / ORG 10*3+BAS / COMPLETE BASE PAGE IS NOT USED HERE
33 FLDA 3*10 / GET RETURN ADR
35 FLDA 0 / POINTER TO PARAMETER LIST --> T1
39 FLDA% T1 / RETURN ADR --> FAC
40 FSUB T1 / AND COMPUTE LENGTH OF PARAMETER LIST
43 LDX 1,X2 / SHIFT ONE BIT TO THE RIGHT
44 ALN X2 / DIVIDE BY TWO AND BUMP NO. OF PARAMETERS
47 LDX 0,X1 / SET UP POINTER
49 JEQ RETURN / NO PARAMETERS AT ALL, RETURN WITH FAC=0
53 STARTD / LOAD AND TEST THE ODD NUMBERED PARAMETERS
55 FSTA T2 / STORE THE ADR. OF THE PARAMETER
57 FLDA% T2 / AND LOAD IT'S VALUE
58 JNE TRUE / WE FOUND A NONZERO SWITCH
60 JXN C1,X2+ / IF THERE ARE NO PARAMETERS LEFT THEN
61 JA RETURN / RETURN WITH FAC=0 ELSE
63 C1, ADDX 1,X1 / SKIP THE EVEN NUMBERED PARAMETER
64 JXN LOOP,X2+ / IF THIS WAS THE LAST PARAMETER THEN
65 JA RETURN / RETURN WITH FAC =0 ELSE GET NEXT PAIR OF PARAMETERS
68 TRUE, JXN C2,X2+ / IF THERE IS A ODD NUMBER OF PARAMETERS
69 JA RETURN / THEN RETURN WITH FAC=LAST PARAMETER ELSE
72 FLDA% T1,X1+ / RETURN THE EVEN NUMBERED PARAMETER