Files
ecmc_master_slave/example/mirror/G_DRV_table.template
2024-09-16 10:32:31 +02:00

610 lines
16 KiB
Plaintext

# Optics table record
# SRI Geometry:
# +---------------------+
# | M1| - <------- origin
# | | |
# | M2 | LX
# | | |
# | M0| -
# +---------------------+
# |------LZ----------|
# Macros:
# P : Prefix, e.g. X04SA-OP-
# T : Name of table record, e.g. MI1:T
# Q : Prefix to all other records, e.g. MI1
# M0X : Point 0 X direction motor
# M0Y : Point 0 Y direction motor
# M1Y : Point 1 Y direction motor
# M2X : Point 2 X direction motor
# M2Y : Point 2 Y direction motor
# M2Z : Point 2 Z direction motor
# LX : Table length perpendicular to beam direction
# LZ : Table length along the beam direction
# SX : X of rotation point
# SY : Y of rotation point
# SZ : Z of rotation point
record(ao, "$(P)$(Q):ax_tweakVal") {
field(DTYP, "Soft Channel")
field(PREC, "3")
field(DRVH, "1000")
field(HOPR, "1000")
field(STAT, "NO_ALARM")
field(SEVR, "NO_ALARM")
field(UDF, "0")
}
record(ao, "$(P)$(Q):ay_tweakVal") {
field(DTYP, "Soft Channel")
field(PREC, "3")
field(DRVH, "1000")
field(HOPR, "1000")
field(STAT, "NO_ALARM")
field(SEVR, "NO_ALARM")
field(UDF, "0")
}
record(ao, "$(P)$(Q):az_tweakVal") {
field(DTYP, "Soft Channel")
field(PREC, "3")
field(DRVH, "1000")
field(HOPR, "1000")
field(STAT, "NO_ALARM")
field(SEVR, "NO_ALARM")
field(UDF, "0")
}
record(ao, "$(P)$(Q):x_tweakVal") {
field(DTYP, "Soft Channel")
field(PREC, "3")
field(DRVH, "1000")
field(HOPR, "1000")
field(STAT, "NO_ALARM")
field(SEVR, "NO_ALARM")
field(UDF, "0")
}
record(ao, "$(P)$(Q):y_tweakVal") {
field(DTYP, "Soft Channel")
field(PREC, "3")
field(DRVH, "1000")
field(HOPR, "1000")
field(STAT, "NO_ALARM")
field(SEVR, "NO_ALARM")
field(UDF, "0")
}
record(ao, "$(P)$(Q):z_tweakVal") {
field(DTYP, "Soft Channel")
field(PREC, "3")
field(DRVH, "1000")
field(HOPR, "1000")
field(SEVR, "NO_ALARM")
field(STAT, "NO_ALARM")
field(UDF, "0")
}
record(bo, "$(P)$(Q):doSync") {
field(PINI, "YES")
field(DTYP, "Soft Channel")
field(DOL, "1")
field(OUT, "$(P)$(T).SYNC PP MS")
}
record(bo, "$(P)$(Q):stop") {
field(DTYP, "Soft Channel")
field(OUT, "$(P)$(Q):stop1.A PP MS")
}
record(bo, "$(P)$(Q):update") {
field(SCAN, ".2 second")
field(DTYP, "Soft Channel")
field(SDIS, "$(P)$(Q):done.VAL NPP MS")
field(OMSL, "closed_loop")
field(DOL, "1")
field(OUT, "$(P)$(T).READ PP MS")
field(ONAM, "Sync")
}
record(calc, "$(P)$(Q):geomIsGEOCARS") {
field(CALC, "a=1")
field(INPA, "$(P)$(T).GEOM CP MS")
}
record(calc, "$(P)$(Q):geomIsNEWPORT") {
field(CALC, "a=2")
field(INPA, "$(P)$(T).GEOM CP MS")
}
record(calc, "$(P)$(Q):geomIsSRI") {
field(CALC, "a=0")
field(INPA, "$(P)$(T).GEOM CP MS")
}
record(calcout, "$(P)$(Q):dmov") {
field(DESC, "Get DMOV and check links")
# field(INPA, "$(P)$(M0X).DMOV CP MS")
field(INPB, "$(P)$(M0Y).DMOV CP MS")
field(INPC, "$(P)$(M1Y).DMOV CP MS")
# field(INPD, "$(P)$(M2X).DMOV CP MS")
field(INPE, "$(P)$(M2Y).DMOV CP MS")
# field(INPF, "$(P)$(M2Z).DMOV CP MS")
field(CALC, "0")
}
record(calcout, "$(P)$(Q):done") {
field(CALC, "A&(I||!J)&(K||!L)")
field(INPA, "$(P)$(Q):done1.VAL CP MS")
field(INPI, "$(P)$(Q):dmov.E CP MS")
field(INPJ, "$(P)$(Q):dmov.INEV CP MS")
field(INPK, "$(P)$(Q):dmov.F CP MS")
field(INPL, "$(P)$(Q):dmov.INFV CP MS")
field(OUT, "$(P)$(T).READ PP MS")
field(OOPT, "Transition To Non-zero")
}
record(calcout, "$(P)$(Q):done1") {
field(CALC, "(A||!B)&(C||!D)&(E||!F)&(G||!H)")
field(INPA, "$(P)$(Q):dmov.A CP MS")
field(INPB, "$(P)$(Q):dmov.INAV CP MS")
field(INPC, "$(P)$(Q):dmov.B CP MS")
field(INPD, "$(P)$(Q):dmov.INBV CP MS")
field(INPE, "$(P)$(Q):dmov.C CP MS")
field(INPF, "$(P)$(Q):dmov.INCV CP MS")
field(INPG, "$(P)$(Q):dmov.D CP MS")
field(INPH, "$(P)$(Q):dmov.INDV CP MS")
}
record(table, "$(P)$(T)") {
field(DESC, "Optical Table")
field(LX, "$(LX)")
field(LZ, "$(LZ)")
field(SX, "$(SX)")
field(SY, "$(SY)")
field(SZ, "$(SZ)")
# field(M0XL, "$(P)$(M0X).VAL PP MS")
field(M0YL, "$(P)$(M0Y).VAL PP MS")
field(M1YL, "$(P)$(M1Y).VAL PP MS")
# field(M2XL, "$(P)$(M2X).VAL PP MS")
field(M2YL, "$(P)$(M2Y).VAL PP MS")
# field(M2ZL, "$(P)$(M2Z).VAL PP MS")
# field(R0XI, "$(P)$(M0X).VAL NPP NMS")
field(R0YI, "$(P)$(M0Y).VAL NPP NMS")
field(R1YI, "$(P)$(M1Y).VAL NPP NMS")
# field(R2XI, "$(P)$(M2X).VAL NPP NMS")
field(R2YI, "$(P)$(M2Y).VAL NPP NMS")
# field(R2ZI, "$(P)$(M2Z).VAL NPP NMS")
# field(E0XI, "$(P)$(M0X).RBV NPP NMS")
field(E0YI, "$(P)$(M0Y).RBV NPP NMS")
field(E1YI, "$(P)$(M1Y).RBV NPP NMS")
# field(E2XI, "$(P)$(M2X).RBV NPP NMS")
field(E2YI, "$(P)$(M2Y).RBV NPP NMS")
# field(E2ZI, "$(P)$(M2Z).RBV NPP NMS")
# field(V0XL, "$(P)$(M0X).VELO NPP NMS")
field(V0YL, "$(P)$(M0Y).VELO NPP NMS")
field(V1YL, "$(P)$(M1Y).VELO NPP NMS")
# field(V2XL, "$(P)$(M2X).VELO NPP NMS")
field(V2YL, "$(P)$(M2Y).VELO NPP NMS")
# field(V2ZL, "$(P)$(M2Z).VELO NPP NMS")
# field(V0XI, "$(P)$(M0X).VELO NPP NMS")
field(V0YI, "$(P)$(M0Y).VELO NPP NMS")
field(V1YI, "$(P)$(M1Y).VELO NPP NMS")
# field(V2XI, "$(P)$(M2X).VELO NPP NMS")
field(V2YI, "$(P)$(M2Y).VELO NPP NMS")
# field(V2ZI, "$(P)$(M2Z).VELO NPP NMS")
# field(H0XL, "$(P)$(M0X).HLM NPP NMS")
field(H0YL, "$(P)$(M0Y).HLM NPP NMS")
field(H1YL, "$(P)$(M1Y).HLM NPP NMS")
# field(H2XL, "$(P)$(M2X).HLM NPP NMS")
field(H2YL, "$(P)$(M2Y).HLM NPP NMS")
# field(H2ZL, "$(P)$(M2Z).HLM NPP NMS")
# field(L0XL, "$(P)$(M0X).LLM NPP NMS")
field(L0YL, "$(P)$(M0Y).LLM NPP NMS")
field(L1YL, "$(P)$(M1Y).LLM NPP NMS")
# field(L2XL, "$(P)$(M2X).LLM NPP NMS")
field(L2YL, "$(P)$(M2Y).LLM NPP NMS")
# field(L2ZL, "$(P)$(M2Z).LLM NPP NMS")
field(LEGU, "mm")
field(AEGU, "degrees")
field(PREC, "4")
field(GEOM, "$(GEOM)")
}
record(transform, "$(P)$(Q):ax_tweak") {
field(CLCE, "a?d+c:b?d-c:d")
field(CLCF, "0")
field(CLCG, "0")
field(INPC, "$(P)$(Q):ax_tweakVal.VAL NPP MS")
field(INPD, "$(P)$(T).AX NPP MS")
field(OUTE, "$(P)$(T).AX PP MS")
field(OUTF, "$(P)$(Q):ax_tweak.B NPP MS")
field(OUTG, "$(P)$(Q):ax_tweak.A NPP MS")
field(PREC, "3")
field(CMTA, "tweak forward (if = 1)")
field(CMTB, "tweak reverse (if = 1)")
field(CMTC, "tweak step size")
field(CMTD, "get old value")
field(CMTE, "put new value")
field(CMTF, "zero tweak button")
field(CMTG, "zero tweak button")
}
record(transform, "$(P)$(Q):ay_tweak") {
field(CLCE, "a?d+c:b?d-c:d")
field(CLCF, "0")
field(CLCG, "0")
field(INPC, "$(P)$(Q):ay_tweakVal.VAL NPP MS")
field(INPD, "$(P)$(T).AY NPP MS")
field(OUTE, "$(P)$(T).AY PP MS")
field(OUTF, "$(P)$(Q):ay_tweak.B NPP MS")
field(OUTG, "$(P)$(Q):ay_tweak.A NPP MS")
field(PREC, "3")
field(CMTA, "tweak forward (if = 1)")
field(CMTB, "tweak reverse (if = 1)")
field(CMTC, "tweak step size")
field(CMTD, "get old value")
field(CMTE, "put new value")
field(CMTF, "zero tweak button")
field(CMTG, "zero tweak button")
field(SEVR, "NO_ALARM")
field(STAT, "NO_ALARM")
field(UDF, "0")
}
record(transform, "$(P)$(Q):az_tweak") {
field(CLCE, "a?d+c:b?d-c:d")
field(CLCF, "0")
field(CLCG, "0")
field(INPC, "$(P)$(Q):az_tweakVal.VAL NPP MS")
field(INPD, "$(P)$(T).AZ NPP MS")
field(OUTE, "$(P)$(T).AZ PP MS")
field(OUTF, "$(P)$(Q):az_tweak.B NPP MS")
field(OUTG, "$(P)$(Q):az_tweak.A NPP MS")
field(PREC, "3")
field(CMTA, "tweak forward (if = 1)")
field(CMTB, "tweak reverse (if = 1)")
field(CMTC, "tweak step size")
field(CMTD, "get old value")
field(CMTE, "put new value")
field(CMTF, "zero tweak button")
field(CMTG, "zero tweak button")
}
record(transform, "$(P)$(Q):stop1") {
field(DESC, "Table-stop distribution")
field(CLCB, "a")
field(CLCC, "a")
field(CLCD, "a")
field(CLCE, "a")
field(CLCF, "a")
# field(OUTA, "$(P)$(M0X).STOP PP MS")
field(OUTB, "$(P)$(M0Y).STOP PP MS")
field(OUTC, "$(P)$(M1Y).STOP PP MS")
# field(OUTD, "$(P)$(M2X).STOP PP MS")
field(OUTE, "$(P)$(M2Y).STOP PP MS")
# field(OUTF, "$(P)$(M2Z).STOP PP MS")
}
record(transform, "$(P)$(Q):x_tweak") {
field(CLCE, "a?d+c:b?d-c:d")
field(CLCF, "0")
field(CLCG, "0")
field(INPC, "$(P)$(Q):x_tweakVal.VAL NPP MS")
field(INPD, "$(P)$(T).X NPP MS")
field(OUTE, "$(P)$(T).X PP MS")
field(OUTF, "$(P)$(Q):x_tweak.A NPP MS")
field(OUTG, "$(P)$(Q):x_tweak.B NPP MS")
field(PREC, "3")
field(CMTA, "tweak forward (if = 1)")
field(CMTB, "tweak reverse (if = 1)")
field(CMTC, "tweak step size")
field(CMTD, "get old value")
field(CMTE, "put new value")
field(CMTF, "zero tweak button")
field(CMTG, "zero tweak button")
}
record(transform, "$(P)$(Q):y_tweak") {
field(CLCE, "a?d+c:b?d-c:d")
field(CLCF, "0")
field(CLCG, "0")
field(INPC, "$(P)$(Q):y_tweakVal.VAL NPP MS")
field(INPD, "$(P)$(T).Y NPP MS")
field(OUTE, "$(P)$(T).Y PP MS")
field(OUTF, "$(P)$(Q):y_tweak.A NPP MS")
field(OUTG, "$(P)$(Q):y_tweak.B NPP MS")
field(PREC, "3")
field(CMTA, "tweak forward (if = 1)")
field(CMTB, "tweak reverse (if = 1)")
field(CMTC, "tweak step size")
field(CMTD, "get old value")
field(CMTE, "put new value")
field(CMTF, "zero tweak button")
field(CMTG, "zero tweak button")
}
record(transform, "$(P)$(Q):z_tweak") {
field(CLCE, "a?d+c:b?d-c:d")
field(CLCF, "0")
field(CLCG, "0")
field(INPC, "$(P)$(Q):z_tweakVal.VAL NPP MS")
field(INPD, "$(P)$(T).Z NPP MS")
field(OUTE, "$(P)$(T).Z PP MS")
field(OUTF, "$(P)$(Q):z_tweak.B NPP MS")
field(OUTG, "$(P)$(Q):z_tweak.A NPP MS")
field(PREC, "3")
field(CMTA, "tweak forward (if = 1)")
field(CMTB, "tweak reverse (if = 1)")
field(CMTC, "tweak step size")
field(CMTD, "get old value")
field(CMTE, "put new value")
field(CMTF, "zero tweak button")
field(CMTG, "zero tweak button")
}
record(calc, "$(P)$(Q):geomIsPNC") {
field(CALC, "a=2")
field(INPA, "$(P)$(T).GEOM CP MS")
}
record(sseq, "$(P)$(Q)fp") {
field(LNK2, "$(P)$(T).SX")
field(LNK3, "$(P)$(T).SY")
field(LNK4, "$(P)$(T).SZ PP")
field(STR1, "_default_")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(SELM, "All")
field(DO4, "$(SZ)")
}
record(sseq, "$(P)$(Q)fp0") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "Default")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp1") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 1")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fpSeq") {
field(SELM, "Specified")
field(DOL1, "$(P)$(Q)fpSelect.ZRST")
field(LNK1, "$(P)$(Q)fp0.STR1 PP")
field(DOL2, "$(P)$(Q)fpSelect.ONST")
field(LNK2, "$(P)$(Q)fp1.STR1 PP")
field(DOL3, "$(P)$(Q)fpSelect.TWST")
field(LNK3, "$(P)$(Q)fp2.STR1 PP")
field(DOL4, "$(P)$(Q)fpSelect.THST")
field(LNK4, "$(P)$(Q)fp3.STR1 PP")
field(DOL5, "$(P)$(Q)fpSelect.FRST")
field(LNK5, "$(P)$(Q)fp4.STR1 PP")
field(DOL6, "$(P)$(Q)fpSelect.FVST")
field(LNK6, "$(P)$(Q)fp5.STR1 PP")
field(DOL7, "$(P)$(Q)fpSelect.SXST")
field(LNK7, "$(P)$(Q)fp6.STR1 PP")
field(DOL8, "$(P)$(Q)fpSelect.SVST")
field(LNK8, "$(P)$(Q)fp7.STR1 PP")
field(DOL9, "$(P)$(Q)fpSelect.EIST")
field(LNK9, "$(P)$(Q)fp8.STR1 PP")
field(DOLA, "$(P)$(Q)fpSelect.NIST")
field(LNKA, "$(P)$(Q)fp9.STR1 PP")
}
record(sseq, "$(P)$(Q)fp2") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 2")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp3") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 3")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp4") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 4")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp5") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 5")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp6") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 6")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp7") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 7")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp8") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 8")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(sseq, "$(P)$(Q)fp9") {
field(LNK1, "$(P)$(Q)fp.STR1")
field(LNK2, "$(P)$(Q)fp.DO2")
field(STR1, "User 9")
field(DO2, "$(SX)")
field(DO3, "$(SY)")
field(LNK3, "$(P)$(Q)fp.DO3")
field(DO4, "$(SZ)")
field(SELM, "All")
field(LNK4, "$(P)$(Q)fp.DO4 PP")
field(PREC, "3")
}
record(mbbo, "$(P)$(Q)fpSelect") {
field(DTYP, "Raw Soft Channel")
field(OUT, "$(P)$(Q)fpSeq.SELN PP")
field(ZRVL, "1")
field(ONVL, "2")
field(TWVL, "3")
field(THVL, "4")
field(FRVL, "5")
field(FVVL, "6")
field(SXVL, "7")
field(SVVL, "8")
field(EIVL, "9")
field(NIVL, "10")
field(ZRST, "Default")
field(ONST, "User 1")
field(TWST, "User 2")
field(THST, "User 3")
field(FRST, "User 4")
field(FVST, "User 5")
field(SXST, "User 6")
field(SVST, "User 7")
field(EIST, "User 8")
field(NIST, "User 9")
}
record(stringout, "$(P)$(Q)fp0Name") {
field(OUT, "$(P)$(Q)fpSelect.ZRST")
field(VAL, "Default")
}
record(stringout, "$(P)$(Q)fp1Name") {
field(OUT, "$(P)$(Q)fpSelect.ONST")
field(VAL, "User 1")
}
record(stringout, "$(P)$(Q)fp2Name") {
field(OUT, "$(P)$(Q)fpSelect.TWST")
field(VAL, "User 2")
}
record(stringout, "$(P)$(Q)fp3Name") {
field(OUT, "$(P)$(Q)fpSelect.THST")
field(VAL, "User 3")
}
record(stringout, "$(P)$(Q)fp4Name") {
field(OUT, "$(P)$(Q)fpSelect.FRST")
field(VAL, "User 4")
}
record(stringout, "$(P)$(Q)fp5Name") {
field(OUT, "$(P)$(Q)fpSelect.FVST")
field(VAL, "User 5")
}
record(stringout, "$(P)$(Q)fp6Name") {
field(OUT, "$(P)$(Q)fpSelect.SXST")
field(VAL, "User 6")
}
record(stringout, "$(P)$(Q)fp7Name") {
field(OUT, "$(P)$(Q)fpSelect.SVST")
field(VAL, "User 7")
}
record(stringout, "$(P)$(Q)fp8Name") {
field(OUT, "$(P)$(Q)fpSelect.EIST")
field(VAL, "User 8")
}
record(stringout, "$(P)$(Q)fp9Name") {
field(OUT, "$(P)$(Q)fpSelect.NIST")
field(VAL, "User 9")
}
record(fanout, "$(P)$(Q)fpInit") {
field(FLNK, "$(P)$(Q)fpInit1.PROC PP")
field(LNK1, "$(P)$(Q)fp0Name.PROC PP")
field(LNK2, "$(P)$(Q)fp1Name.PROC PP")
field(LNK3, "$(P)$(Q)fp2Name.PROC PP")
field(LNK4, "$(P)$(Q)fp3Name.PROC PP")
field(LNK5, "$(P)$(Q)fp4Name.PROC PP")
field(LNK6, "$(P)$(Q)fp5Name.PROC PP")
field(PINI, "YES")
}
record(fanout, "$(P)$(Q)fpInit1") {
field(LNK1, "$(P)$(Q)fp6Name.PROC PP")
field(LNK2, "$(P)$(Q)fp7Name.PROC PP")
field(LNK3, "$(P)$(Q)fp8Name.PROC PP")
field(LNK4, "$(P)$(Q)fp9Name.PROC PP")
field(LNK5, "$(P)$(Q)fpSelect.PROC PP")
}