%EXTERNALREALFN DISTANCE(%STRING(8) NAM1,%INTEGER ROW1,COL1,PIN1,NOP1,%C %REAL X1,Y1,%STRING(8) NAM2,%INTEGER ROW2,COL2,PIN2,NOP2,%REAL X2,Y2) %RESULT=SQRT((X1-X2)**2+(Y1-Y2)**2) %END %EXTERNALROUTINE POSITION(%STRING(8) NAM,%INTEGER ROW,COL,PIN,NOP, %C %REALNAME X,Y) %CONSTREALARRAY CX(1:7)=0.6,1.5,2.4,3.3,4.2,5.1,6.0 %CONSTREALARRAY CY(1:8)=4.8,4.2,3.6,3.0,2.5,1.6,1.0,0.4 %IF NAM="C" %THEN %START %IF PIN<=NOP//2 %THEN %START X=CX(COL)+PIN/10 Y=CY(ROW) %FINISH %ELSE %START X=CX(COL)+(NOP-PIN+1)/10 %IF NOP>=24 %THEN Y=CY(ROW)-0.6 %ELSE Y=CY(ROW)-0.3 %FINISH %RETURN %FINISH %IF NAM="A1" %THEN X=0 %AND Y=5.0-ROW/8 %AND %RETURN %IF NAM="B1" %THEN X=0 %AND Y=2.25-ROW/8 %AND %RETURN %IF NAM="A2" %THEN X=0.2 %AND Y=5.0-ROW/8 %AND %RETURN %IF NAM="B2" %THEN X=0.2 %AND Y=2.25-ROW/8 %AND %RETURN %END %ENDOFFILE