%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 CY(1:7)=-0.6,-1.5,-2.4,-3.3,-4.2,-5.1,-6.0 %CONSTREALARRAY CX(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 Y=CY(COL)-PIN/10 X=CX(ROW) %FINISH %ELSE %START Y=CY(COL)-(NOP-PIN+1)/10 %IF NOP>=24 %THEN X=CX(ROW)-0.6 %ELSE X=CX(ROW)-0.3 %FINISH %RETURN %FINISH %IF NAM="A1" %THEN Y=0 %AND X=5.0-ROW/8 %AND %RETURN %IF NAM="B1" %THEN Y=0 %AND X=2.25-ROW/8 %AND %RETURN %IF NAM="A2" %THEN Y=-0.2 %AND X=5.0-ROW/8 %AND %RETURN %IF NAM="B2" %THEN Y=-0.2 %AND X=2.25-ROW/8 %AND %RETURN %END %ENDOFFILE