kstmApp/src/O.Common/kstm.dbd
changeset 4 f7598b2df637
parent 3 ec018606c207
--- a/kstmApp/src/O.Common/kstm.dbd	Mon Jun 27 18:08:05 2016 +0200
+++ b/kstmApp/src/O.Common/kstm.dbd	Mon Jul 09 13:36:24 2018 +0200
@@ -1,34 +1,32 @@
-menu(serialPRTY) {
-    choice(serialPRTY_unknown, "Unknown")
-    choice(serialPRTY_None, "None")
-    choice(serialPRTY_Even, "Even")
-    choice(serialPRTY_Odd, "Odd")
-}
 menu(waveformPOST) {
     choice(waveformPOST_Always, "Always")
     choice(waveformPOST_OnChange, "On Change")
 }
-menu(aaoPOST) {
-    choice(aaoPOST_Always, "Always")
-    choice(aaoPOST_OnChange, "On Change")
-}
-menu(menuPriority) {
-    choice(menuPriorityLOW, "LOW")
-    choice(menuPriorityMEDIUM, "MEDIUM")
-    choice(menuPriorityHIGH, "HIGH")
-}
-menu(serialSBIT) {
-    choice(serialSBIT_unknown, "Unknown")
-    choice(serialSBIT_1, "1")
-    choice(serialSBIT_2, "2")
+menu(sseqWAIT) {
+    choice(sseqWAIT_NoWait, "NoWait")
+    choice(sseqWAIT_Wait, "Wait")
+    choice(sseqWAIT_Wait1, "After1")
+    choice(sseqWAIT_Wait2, "After2")
+    choice(sseqWAIT_Wait3, "After3")
+    choice(sseqWAIT_Wait4, "After4")
+    choice(sseqWAIT_Wait5, "After5")
+    choice(sseqWAIT_Wait6, "After6")
+    choice(sseqWAIT_Wait7, "After7")
+    choice(sseqWAIT_Wait8, "After8")
+    choice(sseqWAIT_Wait9, "After9")
+    choice(sseqWAIT_Wait10, "AfterA")
 }
 menu(calcoutDOPT) {
     choice(calcoutDOPT_Use_VAL, "Use CALC")
     choice(calcoutDOPT_Use_OVAL, "Use OCAL")
 }
-menu(menuOmsl) {
-    choice(menuOmslsupervisory, "supervisory")
-    choice(menuOmslclosed_loop, "closed_loop")
+menu(transformCOPT) {
+    choice(transformCOPT_CONDITIONAL, "Conditional")
+    choice(transformCOPT_ALWAYS, "Always")
+}
+menu(acalcoutSIZE) {
+    choice(acalcoutSIZE_NELM, "NELM")
+    choice(acalcoutSIZE_NUSE, "NUSE")
 }
 menu(menuFtype) {
     choice(menuFtypeSTRING, "STRING")
@@ -42,10 +40,6 @@
     choice(menuFtypeDOUBLE, "DOUBLE")
     choice(menuFtypeENUM, "ENUM")
 }
-menu(stringinPOST) {
-    choice(stringinPOST_OnChange, "On Change")
-    choice(stringinPOST_Always, "Always")
-}
 menu(menuPini) {
     choice(menuPiniNO, "NO")
     choice(menuPiniYES, "YES")
@@ -54,11 +48,6 @@
     choice(menuPiniPAUSE, "PAUSE")
     choice(menuPiniPAUSED, "PAUSED")
 }
-menu(dfanoutSELM) {
-    choice(dfanoutSELM_All, "All")
-    choice(dfanoutSELM_Specified, "Specified")
-    choice(dfanoutSELM_Mask, "Mask")
-}
 menu(menuScan) {
     choice(menuScanPassive, "Passive")
     choice(menuScanEvent, "Event")
@@ -71,35 +60,29 @@
     choice(menuScan_2_second, ".2 second")
     choice(menuScan_1_second, ".1 second")
 }
-menu(gpibACMD) {
-    choice(gpibACMD_None, "None")
-    choice(gpibACMD_Group_Execute_Trig___GET_, "Group Execute Trig. (GET)")
-    choice(gpibACMD_Go_To_Local__GTL_, "Go To Local (GTL)")
-    choice(gpibACMD_Selected_Dev__Clear__SDC_, "Selected Dev. Clear (SDC)")
-    choice(gpibACMD_Take_Control__TCT_, "Take Control (TCT)")
-    choice(gpibACMD_Serial_Poll, "Serial Poll")
-}
 menu(aSubLFLG) {
     choice(aSubLFLG_IGNORE, "IGNORE")
     choice(aSubLFLG_READ, "READ")
 }
-menu(asynTMOD) {
-    choice(asynTMOD_Write_Read, "Write/Read")
-    choice(asynTMOD_Write, "Write")
-    choice(asynTMOD_Read, "Read")
-    choice(asynTMOD_Flush, "Flush")
-    choice(asynTMOD_NoIO, "NoI/O")
+menu(swaitINAV) {
+    choice(swaitINAV_PV_OK, "PV OK")
+    choice(swaitINAV_PV_BAD, "PV BAD")
+    choice(swaitINAV_No_PV, "No PV")
+}
+menu(swaitINAP) {
+    choice(swaitINAP_No, "No")
+    choice(swaitINAP_Yes, "Yes")
+}
+menu(scalcoutINAV) {
+    choice(scalcoutINAV_EXT_NC, "Ext PV NC")
+    choice(scalcoutINAV_EXT, "Ext PV OK")
+    choice(scalcoutINAV_LOC, "Local PV")
+    choice(scalcoutINAV_CON, "Constant")
 }
 menu(menuPost) {
     choice(menuPost_OnChange, "On Change")
     choice(menuPost_Always, "Always")
 }
-menu(asynINTERFACE) {
-    choice(asynINTERFACE_OCTET, "asynOctet")
-    choice(asynINTERFACE_INT32, "asynInt32")
-    choice(asynINTERFACE_UINT32, "asynUInt32Digital")
-    choice(asynINTERFACE_FLOAT64, "asynFloat64")
-}
 menu(menuAlarmStat) {
     choice(menuAlarmStatNO_ALARM, "NO_ALARM")
     choice(menuAlarmStatREAD, "READ")
@@ -124,14 +107,22 @@
     choice(menuAlarmStatREAD_ACCESS, "READ_ACCESS")
     choice(menuAlarmStatWRITE_ACCESS, "WRITE_ACCESS")
 }
+menu(acalcoutINAP) {
+    choice(acalcoutINAP_No, "No PROC on Change")
+    choice(acalcoutINAP_Yes, "PROC on Change")
+}
+menu(scalcoutWAIT) {
+    choice(scalcoutWAIT_NoWait, "NoWait")
+    choice(scalcoutWAIT_Wait, "Wait")
+}
+menu(acalcoutWAIT) {
+    choice(acalcoutWAIT_NoWait, "NoWait")
+    choice(acalcoutWAIT_Wait, "Wait")
+}
 menu(aoOIF) {
     choice(aoOIF_Full, "Full")
     choice(aoOIF_Incremental, "Incremental")
 }
-menu(aaiPOST) {
-    choice(aaiPOST_Always, "Always")
-    choice(aaiPOST_OnChange, "On Change")
-}
 menu(calcoutINAV) {
     choice(calcoutINAV_EXT_NC, "Ext PV NC")
     choice(calcoutINAV_EXT, "Ext PV OK")
@@ -156,14 +147,11 @@
     choice(asynCONNECT_Disconnect, "Disconnect")
     choice(asynCONNECT_Connect, "Connect")
 }
-menu(gpibUCMD) {
-    choice(gpibUCMD_None, "None")
-    choice(gpibUCMD_Device_Clear__DCL_, "Device Clear (DCL)")
-    choice(gpibUCMD_Local_Lockout__LL0_, "Local Lockout (LL0)")
-    choice(gpibUCMD_Serial_Poll_Disable__SPD_, "Serial Poll Disable (SPD)")
-    choice(gpibUCMD_Serial_Poll_Enable__SPE_, "Serial Poll Enable (SPE)")
-    choice(gpibUCMD_Unlisten__UNL_, "Unlisten (UNL)")
-    choice(gpibUCMD_Untalk__UNT_, "Untalk (UNT)")
+menu(transformIAV) {
+    choice(transformIAV_EXT_NC, "Ext PV NC")
+    choice(transformIAV_EXT, "Ext PV OK")
+    choice(transformIAV_LOC, "Local PV")
+    choice(transformIAV_CON, "Constant")
 }
 menu(serialBAUD) {
     choice(serialBAUD_unknown, "Unknown")
@@ -208,6 +196,10 @@
     choice(menuIvoaDon_t_drive_outputs, "Don't drive outputs")
     choice(menuIvoaSet_output_to_IVOV, "Set output to IVOV")
 }
+menu(acalcoutDOPT) {
+    choice(acalcoutDOPT_Use_VAL, "Use CALC")
+    choice(acalcoutDOPT_Use_OVAL, "Use OCAL")
+}
 menu(stringoutPOST) {
     choice(stringoutPOST_OnChange, "On Change")
     choice(stringoutPOST_Always, "Always")
@@ -218,50 +210,20 @@
     choice(menuAlarmSevrMAJOR, "MAJOR")
     choice(menuAlarmSevrINVALID, "INVALID")
 }
-menu(serialMCTL) {
-    choice(serialMCTL_unknown, "Unknown")
-    choice(serialMCTL_CLOCAL, "CLOCAL")
-    choice(serialMCTL_Yes, "YES")
-}
-menu(serialFCTL) {
-    choice(serialFCTL_unknown, "Unknown")
-    choice(serialFCTL_None, "None")
-    choice(serialFCTL_Hardware, "Hardware")
+menu(acalcoutINAV) {
+    choice(acalcoutINAV_EXT_NC, "Ext PV NC")
+    choice(acalcoutINAV_EXT, "Ext PV OK")
+    choice(acalcoutINAV_LOC, "Local PV")
+    choice(acalcoutINAV_CON, "Constant")
 }
 menu(menuSimm) {
     choice(menuSimmNO, "NO")
     choice(menuSimmYES, "YES")
     choice(menuSimmRAW, "RAW")
 }
-menu(compressALG) {
-    choice(compressALG_N_to_1_Low_Value, "N to 1 Low Value")
-    choice(compressALG_N_to_1_High_Value, "N to 1 High Value")
-    choice(compressALG_N_to_1_Average, "N to 1 Average")
-    choice(compressALG_Average, "Average")
-    choice(compressALG_Circular_Buffer, "Circular Buffer")
-    choice(compressALG_N_to_1_Median, "N to 1 Median")
-}
-menu(aSubEFLG) {
-    choice(aSubEFLG_NEVER, "NEVER")
-    choice(aSubEFLG_ON_CHANGE, "ON CHANGE")
-    choice(aSubEFLG_ALWAYS, "ALWAYS")
-}
-menu(fanoutSELM) {
-    choice(fanoutSELM_All, "All")
-    choice(fanoutSELM_Specified, "Specified")
-    choice(fanoutSELM_Mask, "Mask")
-}
-menu(calcoutOOPT) {
-    choice(calcoutOOPT_Every_Time, "Every Time")
-    choice(calcoutOOPT_On_Change, "On Change")
-    choice(calcoutOOPT_When_Zero, "When Zero")
-    choice(calcoutOOPT_When_Non_zero, "When Non-zero")
-    choice(calcoutOOPT_Transition_To_Zero, "Transition To Zero")
-    choice(calcoutOOPT_Transition_To_Non_zero, "Transition To Non-zero")
-}
-menu(asynENABLE) {
-    choice(asynENABLE_Disable, "Disable")
-    choice(asynENABLE_Enable, "Enable")
+menu(swaitDOPT) {
+    choice(swaitDOPT_Use_VAL, "Use VAL")
+    choice(swaitDOPT_Use_DOL, "Use DOL")
 }
 menu(menuConvert) {
     choice(menuConvertNO_CONVERSION, "NO CONVERSION")
@@ -280,14 +242,14 @@
     choice(menuConverttypeSdegF, "typeSdegF")
     choice(menuConverttypeSdegC, "typeSdegC")
 }
-menu(serialIX) {
-    choice(serialIX_unknown, "Unknown")
-    choice(serialIX_No, "No")
-    choice(serialIX_Yes, "Yes")
-}
-menu(menuYesNo) {
-    choice(menuYesNoNO, "NO")
-    choice(menuYesNoYES, "YES")
+menu(scalcoutOOPT) {
+    choice(scalcoutOOPT_Every_Time, "Every Time")
+    choice(scalcoutOOPT_On_Change, "On Change")
+    choice(scalcoutOOPT_When_Zero, "When Zero")
+    choice(scalcoutOOPT_When_Non_zero, "When Non-zero")
+    choice(scalcoutOOPT_Transition_To_Zero, "Transition To Zero")
+    choice(scalcoutOOPT_Transition_To_Non_zero, "Transition To Non-zero")
+    choice(scalcoutOOPT_Never, "Never")
 }
 menu(serialDBIT) {
     choice(serialDBIT_unknown, "Unknown")
@@ -302,6 +264,1207 @@
     choice(selSELM_Low_Signal, "Low Signal")
     choice(selSELM_Median_Signal, "Median Signal")
 }
+menu(aaoPOST) {
+    choice(aaoPOST_Always, "Always")
+    choice(aaoPOST_OnChange, "On Change")
+}
+menu(serialPRTY) {
+    choice(serialPRTY_unknown, "Unknown")
+    choice(serialPRTY_None, "None")
+    choice(serialPRTY_Even, "Even")
+    choice(serialPRTY_Odd, "Odd")
+}
+menu(menuPriority) {
+    choice(menuPriorityLOW, "LOW")
+    choice(menuPriorityMEDIUM, "MEDIUM")
+    choice(menuPriorityHIGH, "HIGH")
+}
+menu(serialSBIT) {
+    choice(serialSBIT_unknown, "Unknown")
+    choice(serialSBIT_1, "1")
+    choice(serialSBIT_2, "2")
+}
+menu(menuOmsl) {
+    choice(menuOmslsupervisory, "supervisory")
+    choice(menuOmslclosed_loop, "closed_loop")
+}
+menu(stringinPOST) {
+    choice(stringinPOST_OnChange, "On Change")
+    choice(stringinPOST_Always, "Always")
+}
+menu(dfanoutSELM) {
+    choice(dfanoutSELM_All, "All")
+    choice(dfanoutSELM_Specified, "Specified")
+    choice(dfanoutSELM_Mask, "Mask")
+}
+menu(gpibACMD) {
+    choice(gpibACMD_None, "None")
+    choice(gpibACMD_Group_Execute_Trig___GET_, "Group Execute Trig. (GET)")
+    choice(gpibACMD_Go_To_Local__GTL_, "Go To Local (GTL)")
+    choice(gpibACMD_Selected_Dev__Clear__SDC_, "Selected Dev. Clear (SDC)")
+    choice(gpibACMD_Take_Control__TCT_, "Take Control (TCT)")
+    choice(gpibACMD_Serial_Poll, "Serial Poll")
+}
+menu(asynTMOD) {
+    choice(asynTMOD_Write_Read, "Write/Read")
+    choice(asynTMOD_Write, "Write")
+    choice(asynTMOD_Read, "Read")
+    choice(asynTMOD_Flush, "Flush")
+    choice(asynTMOD_NoIO, "NoI/O")
+}
+menu(transformIVLA) {
+    choice(transformIVLA_IGNORE, "Ignore error")
+    choice(transformIVLA_DO_NOTHING, "Do Nothing")
+}
+menu(acalcoutOOPT) {
+    choice(acalcoutOOPT_Every_Time, "Every Time")
+    choice(acalcoutOOPT_On_Change, "On Change")
+    choice(acalcoutOOPT_When_Zero, "When Zero")
+    choice(acalcoutOOPT_When_Non_zero, "When Non-zero")
+    choice(acalcoutOOPT_Transition_To_Zero, "Transition To Zero")
+    choice(acalcoutOOPT_Transition_To_Non_zero, "Transition To Non-zero")
+    choice(acalcoutOOPT_Never, "Never")
+}
+menu(asynINTERFACE) {
+    choice(asynINTERFACE_OCTET, "asynOctet")
+    choice(asynINTERFACE_INT32, "asynInt32")
+    choice(asynINTERFACE_UINT32, "asynUInt32Digital")
+    choice(asynINTERFACE_FLOAT64, "asynFloat64")
+}
+menu(aaiPOST) {
+    choice(aaiPOST_Always, "Always")
+    choice(aaiPOST_OnChange, "On Change")
+}
+menu(scalcoutDOPT) {
+    choice(scalcoutDOPT_Use_VAL, "Use CALC")
+    choice(scalcoutDOPT_Use_OVAL, "Use OCAL")
+}
+menu(gpibUCMD) {
+    choice(gpibUCMD_None, "None")
+    choice(gpibUCMD_Device_Clear__DCL_, "Device Clear (DCL)")
+    choice(gpibUCMD_Local_Lockout__LL0_, "Local Lockout (LL0)")
+    choice(gpibUCMD_Serial_Poll_Disable__SPD_, "Serial Poll Disable (SPD)")
+    choice(gpibUCMD_Serial_Poll_Enable__SPE_, "Serial Poll Enable (SPE)")
+    choice(gpibUCMD_Unlisten__UNL_, "Unlisten (UNL)")
+    choice(gpibUCMD_Untalk__UNT_, "Untalk (UNT)")
+}
+menu(swaitOOPT) {
+    choice(swaitOOPT_Every_Time, "Every Time")
+    choice(swaitOOPT_On_Change, "On Change")
+    choice(swaitOOPT_When_Zero, "When Zero")
+    choice(swaitOOPT_When_Non_zero, "When Non-zero")
+    choice(swaitOOPT_Transition_To_Zero, "Transition To Zero")
+    choice(swaitOOPT_Transition_To_Non_zero, "Transition To Non-zero")
+    choice(swaitOOPT_Never, "Never")
+}
+menu(sseqSELM) {
+    choice(sseqSELM_All, "All")
+    choice(sseqSELM_Specified, "Specified")
+    choice(sseqSELM_Mask, "Mask")
+}
+menu(serialMCTL) {
+    choice(serialMCTL_unknown, "Unknown")
+    choice(serialMCTL_CLOCAL, "CLOCAL")
+    choice(serialMCTL_Yes, "YES")
+}
+menu(scalcoutINAP) {
+    choice(scalcoutINAP_No, "No PROC on Change")
+    choice(scalcoutINAP_Yes, "PROC on Change")
+}
+menu(compressALG) {
+    choice(compressALG_N_to_1_Low_Value, "N to 1 Low Value")
+    choice(compressALG_N_to_1_High_Value, "N to 1 High Value")
+    choice(compressALG_N_to_1_Average, "N to 1 Average")
+    choice(compressALG_Average, "Average")
+    choice(compressALG_Circular_Buffer, "Circular Buffer")
+    choice(compressALG_N_to_1_Median, "N to 1 Median")
+}
+menu(serialFCTL) {
+    choice(serialFCTL_unknown, "Unknown")
+    choice(serialFCTL_None, "None")
+    choice(serialFCTL_Hardware, "Hardware")
+}
+menu(sseqLNKV) {
+    choice(sseqLNKV_EXT_NC, "Ext PV NC")
+    choice(sseqLNKV_EXT, "Ext PV OK")
+    choice(sseqLNKV_LOC, "Local PV")
+    choice(sseqLNKV_CON, "Constant")
+}
+menu(fanoutSELM) {
+    choice(fanoutSELM_All, "All")
+    choice(fanoutSELM_Specified, "Specified")
+    choice(fanoutSELM_Mask, "Mask")
+}
+menu(aSubEFLG) {
+    choice(aSubEFLG_NEVER, "NEVER")
+    choice(aSubEFLG_ON_CHANGE, "ON CHANGE")
+    choice(aSubEFLG_ALWAYS, "ALWAYS")
+}
+menu(calcoutOOPT) {
+    choice(calcoutOOPT_Every_Time, "Every Time")
+    choice(calcoutOOPT_On_Change, "On Change")
+    choice(calcoutOOPT_When_Zero, "When Zero")
+    choice(calcoutOOPT_When_Non_zero, "When Non-zero")
+    choice(calcoutOOPT_Transition_To_Zero, "Transition To Zero")
+    choice(calcoutOOPT_Transition_To_Non_zero, "Transition To Non-zero")
+}
+menu(asynENABLE) {
+    choice(asynENABLE_Disable, "Disable")
+    choice(asynENABLE_Enable, "Enable")
+}
+menu(serialIX) {
+    choice(serialIX_unknown, "Unknown")
+    choice(serialIX_No, "No")
+    choice(serialIX_Yes, "Yes")
+}
+menu(menuYesNo) {
+    choice(menuYesNoNO, "NO")
+    choice(menuYesNoYES, "YES")
+}
+recordtype(sseq) {
+    %#include "epicsTypes.h"
+    %#include "link.h"
+    %#include "epicsMutex.h"
+    %#include "ellLib.h"
+    %#include "epicsTime.h"
+    field(NAME, DBF_STRING) {
+        special(SPC_NOMOD)
+        size(61)
+        prompt("Record Name")
+    }
+    field(DESC, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(41)
+        prompt("Descriptor")
+    }
+    field(ASG, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_AS)
+        size(29)
+        prompt("Access Security Group")
+    }
+    field(SCAN, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuScan)
+        interest(1)
+        prompt("Scan Mechanism")
+    }
+    field(PINI, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuPini)
+        interest(1)
+        prompt("Process at iocInit")
+    }
+    field(PHAS, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        prompt("Scan Phase")
+    }
+    field(EVNT, DBF_STRING) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        size(40)
+        prompt("Event Name")
+    }
+    field(TSE, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Event")
+    }
+    field(TSEL, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Link")
+    }
+    field(DTYP, DBF_DEVICE) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Device Type")
+    }
+    field(DISV, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        initial("1")
+        prompt("Disable Value")
+    }
+    field(DISA, DBF_SHORT) {
+        prompt("Disable")
+    }
+    field(SDIS, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Scanning Disable")
+    }
+    field(MLOK, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsMutexId        mlok")
+        interest(4)
+        prompt("Monitor lock")
+    }
+    field(MLIS, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("ELLLIST             mlis")
+        interest(4)
+        prompt("Monitor List")
+    }
+    field(DISP, DBF_UCHAR) {
+        prompt("Disable putField")
+    }
+    field(PROC, DBF_UCHAR) {
+        interest(3)
+        pp(TRUE)
+        prompt("Force Processing")
+    }
+    field(STAT, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        initial("UDF")
+        prompt("Alarm Status")
+    }
+    field(SEVR, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        prompt("Alarm Severity")
+    }
+    field(NSTA, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        interest(2)
+        prompt("New Alarm Status")
+    }
+    field(NSEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("New Alarm Severity")
+    }
+    field(ACKS, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("Alarm Ack Severity")
+    }
+    field(ACKT, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        special(SPC_NOMOD)
+        menu(menuYesNo)
+        initial("YES")
+        interest(2)
+        prompt("Alarm Ack Transient")
+    }
+    field(DISS, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuAlarmSevr)
+        interest(1)
+        prompt("Disable Alarm Sevrty")
+    }
+    field(LCNT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(2)
+        prompt("Lock Count")
+    }
+    field(PACT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Record active")
+    }
+    field(PUTF, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("dbPutField process")
+    }
+    field(RPRO, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Reprocess ")
+    }
+    field(ASP, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct asgMember    *asp")
+        interest(4)
+        prompt("Access Security Pvt")
+    }
+    field(PPN, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotify *ppn")
+        interest(4)
+        prompt("pprocessNotify")
+    }
+    field(PPNR, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotifyRecord *ppnr")
+        interest(4)
+        prompt("pprocessNotifyRecord")
+    }
+    field(SPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct scan_element *spvt")
+        interest(4)
+        prompt("Scan Private")
+    }
+    field(RSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct rset         *rset")
+        interest(4)
+        prompt("Address of RSET")
+    }
+    field(DSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dset         *dset")
+        interest(4)
+        prompt("DSET address")
+    }
+    field(DPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void                *dpvt")
+        interest(4)
+        prompt("Device Private")
+    }
+    field(RDES, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dbRecordType *rdes")
+        interest(4)
+        prompt("Address of dbRecordType")
+    }
+    field(LSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct lockRecord   *lset")
+        interest(4)
+        prompt("Lock Set")
+    }
+    field(PRIO, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuPriority)
+        interest(1)
+        prompt("Scheduling Priority")
+    }
+    field(TPRO, DBF_UCHAR) {
+        prompt("Trace Processing")
+    }
+    field(BKPT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("char                bkpt")
+        interest(1)
+        prompt("Break Point")
+    }
+    field(UDF, DBF_UCHAR) {
+        promptgroup(GUI_COMMON)
+        initial("1")
+        interest(1)
+        pp(TRUE)
+        prompt("Undefined")
+    }
+    field(UDFS, DBF_MENU) {
+        promptgroup(GUI_COMMON)
+        menu(menuAlarmSevr)
+        initial("INVALID")
+        interest(1)
+        prompt("Undefined Alarm Sevrty")
+    }
+    field(TIME, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsTimeStamp      time")
+        interest(2)
+        prompt("Time")
+    }
+    field(FLNK, DBF_FWDLINK) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Forward Process Link")
+    }
+    field(VAL, DBF_LONG) {
+        asl(ASL0)
+        pp(TRUE)
+        prompt("Used to trigger")
+    }
+    field(SELM, DBF_MENU) {
+        promptgroup(GUI_INPUTS)
+        menu(sseqSELM)
+        interest(1)
+        prompt("Select Mechanism")
+    }
+    field(SELN, DBF_USHORT) {
+        initial("1")
+        interest(1)
+        prompt("Link Selection")
+    }
+    field(SELL, DBF_INLINK) {
+        promptgroup(GUI_INPUTS)
+        interest(1)
+        prompt("Link Selection Loc")
+    }
+    field(PREC, DBF_SHORT) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Display Precision")
+    }
+    field(DLY1, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 1")
+    }
+    field(DOL1, DBF_INLINK) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link1")
+    }
+    field(DO1, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 1")
+    }
+    field(LNK1, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 1")
+    }
+    field(STR1, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 1")
+    }
+    field(DT1, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT1, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT1, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR1, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG1, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX1, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("0")
+        interest(2)
+    }
+    field(DOL1V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK1V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLY2, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 2")
+    }
+    field(DOL2, DBF_INLINK) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 2")
+    }
+    field(DO2, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 2")
+    }
+    field(LNK2, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 2")
+    }
+    field(STR2, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 2")
+    }
+    field(DT2, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT2, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT2, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR2, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG2, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX2, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("1")
+        interest(2)
+    }
+    field(DOL2V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK2V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLY3, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 3")
+    }
+    field(DOL3, DBF_INLINK) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 3")
+    }
+    field(DO3, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 3")
+    }
+    field(LNK3, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 3")
+    }
+    field(STR3, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 3")
+    }
+    field(DT3, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT3, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT3, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR3, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG3, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX3, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("2")
+        interest(2)
+    }
+    field(DOL3V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK3V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLY4, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 4")
+    }
+    field(DOL4, DBF_INLINK) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 4")
+    }
+    field(DO4, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 4")
+    }
+    field(LNK4, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 4")
+    }
+    field(STR4, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 4")
+    }
+    field(DT4, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT4, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT4, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR4, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG4, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX4, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("3")
+        interest(2)
+    }
+    field(DOL4V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK4V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLY5, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 5")
+    }
+    field(DOL5, DBF_INLINK) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 5")
+    }
+    field(DO5, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 5")
+    }
+    field(LNK5, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 5")
+    }
+    field(STR5, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 5")
+    }
+    field(DT5, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT5, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT5, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR5, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG5, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX5, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("4")
+        interest(2)
+    }
+    field(DOL5V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK5V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLY6, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 6")
+    }
+    field(DOL6, DBF_INLINK) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 6")
+    }
+    field(DO6, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 6")
+    }
+    field(LNK6, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ2)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 6")
+    }
+    field(STR6, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 6")
+    }
+    field(DT6, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT6, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT6, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR6, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG6, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX6, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("5")
+        interest(2)
+    }
+    field(DOL6V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK6V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLY7, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 7")
+    }
+    field(DOL7, DBF_INLINK) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 7")
+    }
+    field(DO7, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 7")
+    }
+    field(LNK7, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 7")
+    }
+    field(STR7, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 7")
+    }
+    field(DT7, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT7, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT7, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR7, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG7, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX7, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("6")
+        interest(2)
+    }
+    field(DOL7V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK7V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLY8, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 8")
+    }
+    field(DOL8, DBF_INLINK) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 8")
+    }
+    field(DO8, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 8")
+    }
+    field(LNK8, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 8")
+    }
+    field(STR8, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 8")
+    }
+    field(DT8, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT8, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT8, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR8, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG8, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX8, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("7")
+        interest(2)
+    }
+    field(DOL8V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK8V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLY9, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 9")
+    }
+    field(DOL9, DBF_INLINK) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 9")
+    }
+    field(DO9, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 9")
+    }
+    field(LNK9, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 9")
+    }
+    field(STR9, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value 9")
+    }
+    field(DT9, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LT9, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAIT9, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERR9, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTG9, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(IX9, DBF_SHORT) {
+        special(SPC_NOMOD)
+        initial("8")
+        interest(2)
+    }
+    field(DOL9V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNK9V, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(DLYA, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Delay 10")
+    }
+    field(DOLA, DBF_INLINK) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input link 10")
+    }
+    field(DOA, DBF_DOUBLE) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Constant input 10")
+    }
+    field(LNKA, DBF_OUTLINK) {
+        promptgroup(GUI_SEQ3)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link 10")
+    }
+    field(STRA, DBF_STRING) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        interest(4)
+        size(40)
+        prompt("String value A")
+    }
+    field(DTA, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("DOL link type")
+    }
+    field(LTA, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(4)
+        prompt("LNK link type")
+    }
+    field(WAITA, DBF_MENU) {
+        promptgroup(GUI_SEQ1)
+        special(SPC_MOD)
+        menu(sseqWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(WERRA, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+    }
+    field(WTGA, DBF_SHORT) {
+        interest(1)
+    }
+    field(IXA, DBF_SHORT) {
+        initial("9")
+        interest(2)
+    }
+    field(DOLAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("DOL LINK Status")
+    }
+    field(LNKAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(sseqLNKV)
+        initial("1")
+        interest(1)
+        prompt("LNK LINK Status")
+    }
+    field(ABORT, DBF_SHORT) {
+        special(SPC_MOD)
+        interest(1)
+        prompt("Abort sequence")
+    }
+    field(ABORTING, DBF_SHORT) {
+        special(SPC_MOD)
+        interest(1)
+        prompt("Aborting")
+    }
+    field(BUSY, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Sequence active")
+    }
+}
 recordtype(calcout) {
     %#include "epicsTypes.h"
     %#include "link.h"
@@ -10722,6 +11885,758 @@
         prompt("Last Index Monitored")
     }
 }
+recordtype(swait) {
+    %#include "epicsTypes.h"
+    %#include "link.h"
+    %#include "epicsMutex.h"
+    %#include "ellLib.h"
+    %#include "epicsTime.h"
+    field(NAME, DBF_STRING) {
+        special(SPC_NOMOD)
+        size(61)
+        prompt("Record Name")
+    }
+    field(DESC, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(41)
+        prompt("Descriptor")
+    }
+    field(ASG, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_AS)
+        size(29)
+        prompt("Access Security Group")
+    }
+    field(SCAN, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuScan)
+        interest(1)
+        prompt("Scan Mechanism")
+    }
+    field(PINI, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuPini)
+        interest(1)
+        prompt("Process at iocInit")
+    }
+    field(PHAS, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        prompt("Scan Phase")
+    }
+    field(EVNT, DBF_STRING) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        size(40)
+        prompt("Event Name")
+    }
+    field(TSE, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Event")
+    }
+    field(TSEL, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Link")
+    }
+    field(DTYP, DBF_DEVICE) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Device Type")
+    }
+    field(DISV, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        initial("1")
+        prompt("Disable Value")
+    }
+    field(DISA, DBF_SHORT) {
+        prompt("Disable")
+    }
+    field(SDIS, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Scanning Disable")
+    }
+    field(MLOK, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsMutexId        mlok")
+        interest(4)
+        prompt("Monitor lock")
+    }
+    field(MLIS, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("ELLLIST             mlis")
+        interest(4)
+        prompt("Monitor List")
+    }
+    field(DISP, DBF_UCHAR) {
+        prompt("Disable putField")
+    }
+    field(PROC, DBF_UCHAR) {
+        interest(3)
+        pp(TRUE)
+        prompt("Force Processing")
+    }
+    field(STAT, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        initial("UDF")
+        prompt("Alarm Status")
+    }
+    field(SEVR, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        prompt("Alarm Severity")
+    }
+    field(NSTA, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        interest(2)
+        prompt("New Alarm Status")
+    }
+    field(NSEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("New Alarm Severity")
+    }
+    field(ACKS, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("Alarm Ack Severity")
+    }
+    field(ACKT, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        special(SPC_NOMOD)
+        menu(menuYesNo)
+        initial("YES")
+        interest(2)
+        prompt("Alarm Ack Transient")
+    }
+    field(DISS, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuAlarmSevr)
+        interest(1)
+        prompt("Disable Alarm Sevrty")
+    }
+    field(LCNT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(2)
+        prompt("Lock Count")
+    }
+    field(PACT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Record active")
+    }
+    field(PUTF, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("dbPutField process")
+    }
+    field(RPRO, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Reprocess ")
+    }
+    field(ASP, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct asgMember    *asp")
+        interest(4)
+        prompt("Access Security Pvt")
+    }
+    field(PPN, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotify *ppn")
+        interest(4)
+        prompt("pprocessNotify")
+    }
+    field(PPNR, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotifyRecord *ppnr")
+        interest(4)
+        prompt("pprocessNotifyRecord")
+    }
+    field(SPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct scan_element *spvt")
+        interest(4)
+        prompt("Scan Private")
+    }
+    field(RSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct rset         *rset")
+        interest(4)
+        prompt("Address of RSET")
+    }
+    field(DSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dset         *dset")
+        interest(4)
+        prompt("DSET address")
+    }
+    field(DPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void                *dpvt")
+        interest(4)
+        prompt("Device Private")
+    }
+    field(RDES, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dbRecordType *rdes")
+        interest(4)
+        prompt("Address of dbRecordType")
+    }
+    field(LSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct lockRecord   *lset")
+        interest(4)
+        prompt("Lock Set")
+    }
+    field(PRIO, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuPriority)
+        interest(1)
+        prompt("Scheduling Priority")
+    }
+    field(TPRO, DBF_UCHAR) {
+        prompt("Trace Processing")
+    }
+    field(BKPT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("char                bkpt")
+        interest(1)
+        prompt("Break Point")
+    }
+    field(UDF, DBF_UCHAR) {
+        promptgroup(GUI_COMMON)
+        initial("1")
+        interest(1)
+        pp(TRUE)
+        prompt("Undefined")
+    }
+    field(UDFS, DBF_MENU) {
+        promptgroup(GUI_COMMON)
+        menu(menuAlarmSevr)
+        initial("INVALID")
+        interest(1)
+        prompt("Undefined Alarm Sevrty")
+    }
+    field(TIME, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsTimeStamp      time")
+        interest(2)
+        prompt("Time")
+    }
+    field(FLNK, DBF_FWDLINK) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Forward Process Link")
+    }
+    field(VERS, DBF_FLOAT) {
+        special(SPC_NOMOD)
+        initial("1")
+        prompt("Code Version")
+    }
+    field(HOPR, DBF_FLOAT) {
+        promptgroup(GUI_ALARMS)
+        asl(ASL0)
+        interest(1)
+        prompt("High Operating Range")
+    }
+    field(LOPR, DBF_FLOAT) {
+        promptgroup(GUI_BITS1)
+        asl(ASL0)
+        interest(1)
+        prompt("Low Operating Range")
+    }
+    field(INIT, DBF_SHORT) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Initialized?")
+    }
+    field(CBST, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void *         cbst")
+        interest(4)
+        size(4)
+        prompt("Pointer to cbStruct")
+    }
+    field(INAN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPA PV Name")
+    }
+    field(INBN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPB PV Name")
+    }
+    field(INCN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPC PV Name")
+    }
+    field(INDN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPD PV Name")
+    }
+    field(INEN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPE PV Name")
+    }
+    field(INFN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPF PV Name")
+    }
+    field(INGN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPG PV Name")
+    }
+    field(INHN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPH PV Name")
+    }
+    field(ININ, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPI PV Name")
+    }
+    field(INJN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPJ PV Name")
+    }
+    field(INKN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPK PV Name")
+    }
+    field(INLN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("INPL PV Name")
+    }
+    field(DOLN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("DOL  PV Name")
+    }
+    field(OUTN, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        asl(ASL0)
+        interest(1)
+        size(40)
+        prompt("OUT  PV Name")
+    }
+    field(INAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPA PV Status")
+    }
+    field(INBV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPB PV Status")
+    }
+    field(INCV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPC PV Status")
+    }
+    field(INDV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPD PV Status")
+    }
+    field(INEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPE PV Status")
+    }
+    field(INFV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPF PV Status")
+    }
+    field(INGV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPG PV Status")
+    }
+    field(INHV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPH PV Status")
+    }
+    field(INIV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPI PV Status")
+    }
+    field(INJV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPJ PV Status")
+    }
+    field(INKV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPK PV Status")
+    }
+    field(INLV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("INPL PV Status")
+    }
+    field(DOLV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("DOL  PV Status")
+    }
+    field(OUTV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(swaitINAV)
+        interest(1)
+        prompt("OUT  PV Status")
+    }
+    field(A, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input A")
+    }
+    field(B, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input B")
+    }
+    field(C, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input C")
+    }
+    field(D, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input D")
+    }
+    field(E, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input E")
+    }
+    field(F, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input F")
+    }
+    field(G, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input G")
+    }
+    field(H, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input H")
+    }
+    field(I, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input I")
+    }
+    field(J, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input J")
+    }
+    field(K, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input K")
+    }
+    field(L, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input L")
+    }
+    field(LA, DBF_DOUBLE) {
+        prompt("Last Val of Input A")
+    }
+    field(LB, DBF_DOUBLE) {
+        prompt("Last Val of Input B")
+    }
+    field(LC, DBF_DOUBLE) {
+        prompt("Last Val of Input C")
+    }
+    field(LD, DBF_DOUBLE) {
+        prompt("Last Val of Input D")
+    }
+    field(LE, DBF_DOUBLE) {
+        prompt("Last Val of Input E")
+    }
+    field(LF, DBF_DOUBLE) {
+        prompt("Last Val of Input F")
+    }
+    field(LG, DBF_DOUBLE) {
+        prompt("Last Val of Input G")
+    }
+    field(LH, DBF_DOUBLE) {
+        prompt("Last Val of Input H")
+    }
+    field(LI, DBF_DOUBLE) {
+        prompt("Last Val of Input I")
+    }
+    field(LJ, DBF_DOUBLE) {
+        prompt("Last Val of Input J")
+    }
+    field(LK, DBF_DOUBLE) {
+        prompt("Last Val of Input K")
+    }
+    field(LL, DBF_DOUBLE) {
+        prompt("Last Val of Input L")
+    }
+    field(INAP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPA causes I/O INTR")
+    }
+    field(INBP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPB causes I/O INTR")
+    }
+    field(INCP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPC causes I/O INTR")
+    }
+    field(INDP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPD causes I/O INTR")
+    }
+    field(INEP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPE causes I/O INTR")
+    }
+    field(INFP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPF causes I/O INTR")
+    }
+    field(INGP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPG causes I/O INTR")
+    }
+    field(INHP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPH causes I/O INTR")
+    }
+    field(INIP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPI causes I/O INTR")
+    }
+    field(INJP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPJ causes I/O INTR")
+    }
+    field(INKP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPK causes I/O INTR")
+    }
+    field(INLP, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitINAP)
+        initial("Yes")
+        interest(1)
+        prompt("INPL causes I/O INTR")
+    }
+    field(CALC, DBF_STRING) {
+        promptgroup(GUI_CLOCK)
+        special(SPC_CALC)
+        asl(ASL0)
+        initial("0")
+        size(36)
+        prompt("Calculation")
+    }
+    field(RPCL, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("char    rpcl[184]")
+        interest(4)
+        size(184)
+        prompt("Reverse Polish Calc")
+    }
+    field(CLCV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Valid")
+    }
+    field(VAL, DBF_DOUBLE) {
+        prompt("Value Field")
+    }
+    field(OVAL, DBF_DOUBLE) {
+        prompt("Old Value")
+    }
+    field(PREC, DBF_SHORT) {
+        promptgroup(GUI_COMMON)
+        interest(1)
+        prompt("Display Precision")
+    }
+    field(OOPT, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitOOPT)
+        interest(1)
+        prompt("Output Execute Opt")
+    }
+    field(ODLY, DBF_FLOAT) {
+        promptgroup(GUI_ALARMS)
+        asl(ASL0)
+        interest(1)
+        prompt("Output Execute Delay")
+    }
+    field(DOPT, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(swaitDOPT)
+        interest(1)
+        prompt("Output Data Option")
+    }
+    field(DOLD, DBF_DOUBLE) {
+        promptgroup(GUI_CLOCK)
+        asl(ASL0)
+        interest(1)
+        prompt("Desired Output Data")
+    }
+    field(OEVT, DBF_USHORT) {
+        promptgroup(GUI_CLOCK)
+        asl(ASL0)
+        prompt("Event To Issue")
+    }
+    field(ADEL, DBF_DOUBLE) {
+        promptgroup(GUI_CLOCK)
+        interest(1)
+        prompt("Archive Deadband")
+    }
+    field(MDEL, DBF_DOUBLE) {
+        promptgroup(GUI_CLOCK)
+        interest(1)
+        prompt("Monitor Deadband")
+    }
+    field(ALST, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Last Value Archived")
+    }
+    field(MLST, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Last Val Monitored")
+    }
+    field(SIOL, DBF_INLINK) {
+        promptgroup(GUI_PULSE)
+        interest(1)
+        prompt("Sim Input Specifctn")
+    }
+    field(SVAL, DBF_DOUBLE) {
+        prompt("Simulation Value")
+    }
+    field(SIML, DBF_INLINK) {
+        promptgroup(GUI_PULSE)
+        interest(1)
+        prompt("Sim Mode Location")
+    }
+    field(SIMM, DBF_MENU) {
+        menu(menuYesNo)
+        interest(1)
+        prompt("Simulation Mode")
+    }
+    field(SIMS, DBF_MENU) {
+        promptgroup(GUI_SELECT)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("Sim mode Alarm Svrty")
+    }
+}
+device(swait, CONSTANT, devSWaitIoEvent, "Soft Channel")
 recordtype(bi) {
     %#include "epicsTypes.h"
     %#include "link.h"
@@ -11772,6 +13687,1234 @@
     }
 }
 device(subArray, CONSTANT, devSASoft, "Soft Channel")
+recordtype(transform) {
+    %#include "epicsTypes.h"
+    %#include "link.h"
+    %#include "epicsMutex.h"
+    %#include "ellLib.h"
+    %#include "epicsTime.h"
+    field(NAME, DBF_STRING) {
+        special(SPC_NOMOD)
+        size(61)
+        prompt("Record Name")
+    }
+    field(DESC, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(41)
+        prompt("Descriptor")
+    }
+    field(ASG, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_AS)
+        size(29)
+        prompt("Access Security Group")
+    }
+    field(SCAN, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuScan)
+        interest(1)
+        prompt("Scan Mechanism")
+    }
+    field(PINI, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuPini)
+        interest(1)
+        prompt("Process at iocInit")
+    }
+    field(PHAS, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        prompt("Scan Phase")
+    }
+    field(EVNT, DBF_STRING) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        size(40)
+        prompt("Event Name")
+    }
+    field(TSE, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Event")
+    }
+    field(TSEL, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Link")
+    }
+    field(DTYP, DBF_DEVICE) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Device Type")
+    }
+    field(DISV, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        initial("1")
+        prompt("Disable Value")
+    }
+    field(DISA, DBF_SHORT) {
+        prompt("Disable")
+    }
+    field(SDIS, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Scanning Disable")
+    }
+    field(MLOK, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsMutexId        mlok")
+        interest(4)
+        prompt("Monitor lock")
+    }
+    field(MLIS, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("ELLLIST             mlis")
+        interest(4)
+        prompt("Monitor List")
+    }
+    field(DISP, DBF_UCHAR) {
+        prompt("Disable putField")
+    }
+    field(PROC, DBF_UCHAR) {
+        interest(3)
+        pp(TRUE)
+        prompt("Force Processing")
+    }
+    field(STAT, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        initial("UDF")
+        prompt("Alarm Status")
+    }
+    field(SEVR, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        prompt("Alarm Severity")
+    }
+    field(NSTA, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        interest(2)
+        prompt("New Alarm Status")
+    }
+    field(NSEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("New Alarm Severity")
+    }
+    field(ACKS, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("Alarm Ack Severity")
+    }
+    field(ACKT, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        special(SPC_NOMOD)
+        menu(menuYesNo)
+        initial("YES")
+        interest(2)
+        prompt("Alarm Ack Transient")
+    }
+    field(DISS, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuAlarmSevr)
+        interest(1)
+        prompt("Disable Alarm Sevrty")
+    }
+    field(LCNT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(2)
+        prompt("Lock Count")
+    }
+    field(PACT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Record active")
+    }
+    field(PUTF, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("dbPutField process")
+    }
+    field(RPRO, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Reprocess ")
+    }
+    field(ASP, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct asgMember    *asp")
+        interest(4)
+        prompt("Access Security Pvt")
+    }
+    field(PPN, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotify *ppn")
+        interest(4)
+        prompt("pprocessNotify")
+    }
+    field(PPNR, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotifyRecord *ppnr")
+        interest(4)
+        prompt("pprocessNotifyRecord")
+    }
+    field(SPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct scan_element *spvt")
+        interest(4)
+        prompt("Scan Private")
+    }
+    field(RSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct rset         *rset")
+        interest(4)
+        prompt("Address of RSET")
+    }
+    field(DSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dset         *dset")
+        interest(4)
+        prompt("DSET address")
+    }
+    field(DPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void                *dpvt")
+        interest(4)
+        prompt("Device Private")
+    }
+    field(RDES, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dbRecordType *rdes")
+        interest(4)
+        prompt("Address of dbRecordType")
+    }
+    field(LSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct lockRecord   *lset")
+        interest(4)
+        prompt("Lock Set")
+    }
+    field(PRIO, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuPriority)
+        interest(1)
+        prompt("Scheduling Priority")
+    }
+    field(TPRO, DBF_UCHAR) {
+        prompt("Trace Processing")
+    }
+    field(BKPT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("char                bkpt")
+        interest(1)
+        prompt("Break Point")
+    }
+    field(UDF, DBF_UCHAR) {
+        promptgroup(GUI_COMMON)
+        initial("1")
+        interest(1)
+        pp(TRUE)
+        prompt("Undefined")
+    }
+    field(UDFS, DBF_MENU) {
+        promptgroup(GUI_COMMON)
+        menu(menuAlarmSevr)
+        initial("INVALID")
+        interest(1)
+        prompt("Undefined Alarm Sevrty")
+    }
+    field(TIME, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsTimeStamp      time")
+        interest(2)
+        prompt("Time")
+    }
+    field(FLNK, DBF_FWDLINK) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Forward Process Link")
+    }
+    field(VERS, DBF_FLOAT) {
+        special(SPC_NOMOD)
+        initial("1")
+        prompt("Code Version")
+    }
+    field(RPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void *         rpvt")
+        interest(4)
+        size(4)
+        prompt("Record Private")
+    }
+    field(IVLA, DBF_MENU) {
+        promptgroup(GUI_COMMON)
+        menu(transformIVLA)
+        initial("0")
+        interest(1)
+        prompt("Invalid link action")
+    }
+    field(COPT, DBF_MENU) {
+        promptgroup(GUI_COMMON)
+        menu(transformCOPT)
+        initial("Conditional")
+        interest(1)
+        prompt("Calc option")
+    }
+    field(VAL, DBF_DOUBLE) {
+        prompt("Result")
+    }
+    field(CLCA, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation A")
+    }
+    field(CLCB, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation B")
+    }
+    field(CLCC, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation C")
+    }
+    field(CLCD, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation D")
+    }
+    field(CLCE, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation E")
+    }
+    field(CLCF, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation F")
+    }
+    field(CLCG, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation G")
+    }
+    field(CLCH, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation H")
+    }
+    field(CLCI, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation I")
+    }
+    field(CLCJ, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation J")
+    }
+    field(CLCK, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation K")
+    }
+    field(CLCL, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation L")
+    }
+    field(CLCM, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation M")
+    }
+    field(CLCN, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation N")
+    }
+    field(CLCO, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation O")
+    }
+    field(CLCP, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        size(120)
+        prompt("Calculation P")
+    }
+    field(CAV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CBV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CCV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CDV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CEV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CFV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CGV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CHV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CIV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CJV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CKV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CLV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CMV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CNV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(COV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(CPV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Invalid")
+    }
+    field(INPA, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input A")
+    }
+    field(INPB, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input B")
+    }
+    field(INPC, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input C")
+    }
+    field(INPD, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input D")
+    }
+    field(INPE, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input E")
+    }
+    field(INPF, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input F")
+    }
+    field(INPG, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input G")
+    }
+    field(INPH, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input H")
+    }
+    field(INPI, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input I")
+    }
+    field(INPJ, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input J")
+    }
+    field(INPK, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input K")
+    }
+    field(INPL, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input L")
+    }
+    field(INPM, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input M")
+    }
+    field(INPN, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input N")
+    }
+    field(INPO, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input O")
+    }
+    field(INPP, DBF_INLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input P")
+    }
+    field(OUTA, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output A")
+    }
+    field(OUTB, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output B")
+    }
+    field(OUTC, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output C")
+    }
+    field(OUTD, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output D")
+    }
+    field(OUTE, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output E")
+    }
+    field(OUTF, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output F")
+    }
+    field(OUTG, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output G")
+    }
+    field(OUTH, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output H")
+    }
+    field(OUTI, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output I")
+    }
+    field(OUTJ, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output J")
+    }
+    field(OUTK, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output K")
+    }
+    field(OUTL, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output L")
+    }
+    field(OUTM, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output M")
+    }
+    field(OUTN, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output N")
+    }
+    field(OUTO, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output O")
+    }
+    field(OUTP, DBF_OUTLINK) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output P")
+    }
+    field(EGU, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(1)
+        size(16)
+        prompt("Units Name")
+    }
+    field(PREC, DBF_SHORT) {
+        promptgroup(GUI_COMMON)
+        interest(1)
+        prompt("Display Precision")
+    }
+    field(A, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of A")
+    }
+    field(B, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of B")
+    }
+    field(C, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of C")
+    }
+    field(D, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of D")
+    }
+    field(E, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of E")
+    }
+    field(F, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of F")
+    }
+    field(G, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of G")
+    }
+    field(H, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of H")
+    }
+    field(I, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of I")
+    }
+    field(J, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of J")
+    }
+    field(K, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of K")
+    }
+    field(L, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of L")
+    }
+    field(M, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of M")
+    }
+    field(N, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of N")
+    }
+    field(O, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of O")
+    }
+    field(P, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        special(SPC_MOD)
+        pp(TRUE)
+        prompt("Value of P")
+    }
+    field(LA, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of A")
+    }
+    field(LB, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of B")
+    }
+    field(LC, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of C")
+    }
+    field(LD, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of D")
+    }
+    field(LE, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of E")
+    }
+    field(LF, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of F")
+    }
+    field(LG, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of G")
+    }
+    field(LH, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of H")
+    }
+    field(LI, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of I")
+    }
+    field(LJ, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of J")
+    }
+    field(LK, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of K")
+    }
+    field(LL, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of L")
+    }
+    field(LM, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of M")
+    }
+    field(LN, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of N")
+    }
+    field(LO, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of O")
+    }
+    field(LP, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of P")
+    }
+    field(RPCA, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpca[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc A")
+    }
+    field(RPCB, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcb[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc B")
+    }
+    field(RPCC, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcc[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc C")
+    }
+    field(RPCD, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcd[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc D")
+    }
+    field(RPCE, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpce[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc E")
+    }
+    field(RPCF, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcf[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc F")
+    }
+    field(RPCG, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcg[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc G")
+    }
+    field(RPCH, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpch[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc H")
+    }
+    field(RPCI, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpci[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc I")
+    }
+    field(RPCJ, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcj[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc J")
+    }
+    field(RPCK, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpck[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc K")
+    }
+    field(RPCL, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcl[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc L")
+    }
+    field(RPCM, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcm[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc M")
+    }
+    field(RPCN, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcn[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc N")
+    }
+    field(RPCO, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpco[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc O")
+    }
+    field(RPCP, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcp[SCALC_INFIX_TO_POSTFIX_SIZE(120)]")
+        interest(4)
+        prompt("Postfix Calc P")
+    }
+    field(CMTA, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment A")
+    }
+    field(CMTB, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment B")
+    }
+    field(CMTC, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment C")
+    }
+    field(CMTD, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment D")
+    }
+    field(CMTE, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment E")
+    }
+    field(CMTF, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment F")
+    }
+    field(CMTG, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment G")
+    }
+    field(CMTH, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment H")
+    }
+    field(CMTI, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment I")
+    }
+    field(CMTJ, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment J")
+    }
+    field(CMTK, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment K")
+    }
+    field(CMTL, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment L")
+    }
+    field(CMTM, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment M")
+    }
+    field(CMTN, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment N")
+    }
+    field(CMTO, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment O")
+    }
+    field(CMTP, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(39)
+        prompt("Comment P")
+    }
+    field(MAP, DBF_SHORT) {
+        promptgroup(GUI_COMMON)
+        interest(3)
+        prompt("Input bitmap")
+    }
+    field(IAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IBV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(ICV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IDV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IFV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IGV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IHV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IIV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IJV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IKV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(ILV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IMV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(INV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IOV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(IPV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Input link valid")
+    }
+    field(OAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OBV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OCV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(ODV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OFV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OGV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OHV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OIV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OJV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OKV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OLV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OMV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(ONV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OOV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+    field(OPV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(transformIAV)
+        initial("1")
+        interest(1)
+        prompt("Output link valid")
+    }
+}
 recordtype(calc) {
     %#include "epicsTypes.h"
     %#include "link.h"
@@ -12807,6 +15950,1057 @@
 device(mbboDirect, CONSTANT, devMbboDirectSoftCallback, "Async Soft Channel")
 device(mbboDirect, INST_IO, asynMbboDirectUInt32Digital, "asynUInt32Digital")
 device(mbboDirect, INST_IO, devmbboDirectStream, "stream")
+recordtype(acalcout) {
+    %#include "epicsTypes.h"
+    %#include "link.h"
+    %#include "epicsMutex.h"
+    %#include "ellLib.h"
+    %#include "epicsTime.h"
+    field(NAME, DBF_STRING) {
+        special(SPC_NOMOD)
+        size(61)
+        prompt("Record Name")
+    }
+    field(DESC, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(41)
+        prompt("Descriptor")
+    }
+    field(ASG, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_AS)
+        size(29)
+        prompt("Access Security Group")
+    }
+    field(SCAN, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuScan)
+        interest(1)
+        prompt("Scan Mechanism")
+    }
+    field(PINI, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuPini)
+        interest(1)
+        prompt("Process at iocInit")
+    }
+    field(PHAS, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        prompt("Scan Phase")
+    }
+    field(EVNT, DBF_STRING) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        size(40)
+        prompt("Event Name")
+    }
+    field(TSE, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Event")
+    }
+    field(TSEL, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Link")
+    }
+    field(DTYP, DBF_DEVICE) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Device Type")
+    }
+    field(DISV, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        initial("1")
+        prompt("Disable Value")
+    }
+    field(DISA, DBF_SHORT) {
+        prompt("Disable")
+    }
+    field(SDIS, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Scanning Disable")
+    }
+    field(MLOK, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsMutexId        mlok")
+        interest(4)
+        prompt("Monitor lock")
+    }
+    field(MLIS, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("ELLLIST             mlis")
+        interest(4)
+        prompt("Monitor List")
+    }
+    field(DISP, DBF_UCHAR) {
+        prompt("Disable putField")
+    }
+    field(PROC, DBF_UCHAR) {
+        interest(3)
+        pp(TRUE)
+        prompt("Force Processing")
+    }
+    field(STAT, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        initial("UDF")
+        prompt("Alarm Status")
+    }
+    field(SEVR, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        prompt("Alarm Severity")
+    }
+    field(NSTA, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        interest(2)
+        prompt("New Alarm Status")
+    }
+    field(NSEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("New Alarm Severity")
+    }
+    field(ACKS, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("Alarm Ack Severity")
+    }
+    field(ACKT, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        special(SPC_NOMOD)
+        menu(menuYesNo)
+        initial("YES")
+        interest(2)
+        prompt("Alarm Ack Transient")
+    }
+    field(DISS, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuAlarmSevr)
+        interest(1)
+        prompt("Disable Alarm Sevrty")
+    }
+    field(LCNT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(2)
+        prompt("Lock Count")
+    }
+    field(PACT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Record active")
+    }
+    field(PUTF, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("dbPutField process")
+    }
+    field(RPRO, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Reprocess ")
+    }
+    field(ASP, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct asgMember    *asp")
+        interest(4)
+        prompt("Access Security Pvt")
+    }
+    field(PPN, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotify *ppn")
+        interest(4)
+        prompt("pprocessNotify")
+    }
+    field(PPNR, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotifyRecord *ppnr")
+        interest(4)
+        prompt("pprocessNotifyRecord")
+    }
+    field(SPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct scan_element *spvt")
+        interest(4)
+        prompt("Scan Private")
+    }
+    field(RSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct rset         *rset")
+        interest(4)
+        prompt("Address of RSET")
+    }
+    field(DSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dset         *dset")
+        interest(4)
+        prompt("DSET address")
+    }
+    field(DPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void                *dpvt")
+        interest(4)
+        prompt("Device Private")
+    }
+    field(RDES, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dbRecordType *rdes")
+        interest(4)
+        prompt("Address of dbRecordType")
+    }
+    field(LSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct lockRecord   *lset")
+        interest(4)
+        prompt("Lock Set")
+    }
+    field(PRIO, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuPriority)
+        interest(1)
+        prompt("Scheduling Priority")
+    }
+    field(TPRO, DBF_UCHAR) {
+        prompt("Trace Processing")
+    }
+    field(BKPT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("char                bkpt")
+        interest(1)
+        prompt("Break Point")
+    }
+    field(UDF, DBF_UCHAR) {
+        promptgroup(GUI_COMMON)
+        initial("1")
+        interest(1)
+        pp(TRUE)
+        prompt("Undefined")
+    }
+    field(UDFS, DBF_MENU) {
+        promptgroup(GUI_COMMON)
+        menu(menuAlarmSevr)
+        initial("INVALID")
+        interest(1)
+        prompt("Undefined Alarm Sevrty")
+    }
+    field(TIME, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsTimeStamp      time")
+        interest(2)
+        prompt("Time")
+    }
+    field(FLNK, DBF_FWDLINK) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Forward Process Link")
+    }
+    field(VERS, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        initial("1")
+        prompt("Code Version")
+    }
+    field(RPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void *rpvt")
+        interest(4)
+        size(4)
+        prompt("Record Private")
+    }
+    field(VAL, DBF_DOUBLE) {
+        asl(ASL0)
+        prompt("Result")
+    }
+    field(AVAL, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *aval")
+        pp(TRUE)
+        prompt("Array Value")
+    }
+    field(NELM, DBF_ULONG) {
+        promptgroup(GUI_WAVE)
+        special(SPC_NOMOD)
+        initial("1")
+        interest(1)
+        prompt("Number of Elements")
+    }
+    field(NUSE, DBF_ULONG) {
+        promptgroup(GUI_WAVE)
+        special(SPC_MOD)
+        initial("0")
+        interest(1)
+        pp(TRUE)
+        prompt("# elem's in use")
+    }
+    field(PVAL, DBF_DOUBLE) {
+        prompt("Previous Value")
+    }
+    field(PAVL, DBF_NOACCESS) {
+        asl(ASL0)
+        extra("double *pavl")
+        pp(TRUE)
+        prompt("Prev. Array Value")
+    }
+    field(CALC, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        pp(TRUE)
+        size(80)
+        prompt("Calculation")
+    }
+    field(CLCV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Valid")
+    }
+    field(INPA, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input A")
+    }
+    field(INPB, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input B")
+    }
+    field(INPC, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input C")
+    }
+    field(INPD, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input D")
+    }
+    field(INPE, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input E")
+    }
+    field(INPF, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input F")
+    }
+    field(INPG, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input G")
+    }
+    field(INPH, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input H")
+    }
+    field(INPI, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input I")
+    }
+    field(INPJ, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input J")
+    }
+    field(INPK, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input K")
+    }
+    field(INPL, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input L")
+    }
+    field(INAA, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input AA")
+    }
+    field(INBB, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input BB")
+    }
+    field(INCC, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input CC")
+    }
+    field(INDD, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input DD")
+    }
+    field(INEE, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input EE")
+    }
+    field(INFF, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input FF")
+    }
+    field(INGG, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input GG")
+    }
+    field(INHH, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input HH")
+    }
+    field(INII, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input II")
+    }
+    field(INJJ, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input JJ")
+    }
+    field(INKK, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input KK")
+    }
+    field(INLL, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Array input LL")
+    }
+    field(OUT, DBF_OUTLINK) {
+        promptgroup(GUI_OUTPUT)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link")
+    }
+    field(INAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPA PV Status")
+    }
+    field(INBV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPB PV Status")
+    }
+    field(INCV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPC PV Status")
+    }
+    field(INDV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPD PV Status")
+    }
+    field(INEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPE PV Status")
+    }
+    field(INFV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPF PV Status")
+    }
+    field(INGV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPG PV Status")
+    }
+    field(INHV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPH PV Status")
+    }
+    field(INIV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPI PV Status")
+    }
+    field(INJV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPJ PV Status")
+    }
+    field(INKV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPK PV Status")
+    }
+    field(INLV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPL PV Status")
+    }
+    field(IAAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INAA PV Status")
+    }
+    field(IBBV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INBB PV Status")
+    }
+    field(ICCV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INCC PV Status")
+    }
+    field(IDDV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INDD PV Status")
+    }
+    field(IEEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INEE PV Status")
+    }
+    field(IFFV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INFF PV Status")
+    }
+    field(IGGV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INGG PV Status")
+    }
+    field(IHHV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INHH PV Status")
+    }
+    field(IIIV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INII PV Status")
+    }
+    field(IJJV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INJJ PV Status")
+    }
+    field(IKKV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INKK PV Status")
+    }
+    field(ILLV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INLL PV Status")
+    }
+    field(OUTV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(acalcoutINAV)
+        interest(1)
+        prompt("OUT PV Status")
+    }
+    field(OOPT, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(acalcoutOOPT)
+        interest(1)
+        prompt("Output Execute Opt")
+    }
+    field(ODLY, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        asl(ASL0)
+        interest(1)
+        prompt("Output Execute Delay")
+    }
+    field(WAIT, DBF_MENU) {
+        menu(acalcoutWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(DLYA, DBF_USHORT) {
+        special(SPC_NOMOD)
+        asl(ASL0)
+        prompt("Output Delay Active")
+    }
+    field(DOPT, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(acalcoutDOPT)
+        interest(1)
+        prompt("Output Data Opt")
+    }
+    field(OCAL, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        pp(TRUE)
+        size(80)
+        prompt("Output Calculation")
+    }
+    field(OCLV, DBF_LONG) {
+        interest(1)
+        prompt("OCAL Valid")
+    }
+    field(OEVT, DBF_USHORT) {
+        promptgroup(GUI_CLOCK)
+        asl(ASL0)
+        prompt("Event To Issue")
+    }
+    field(IVOA, DBF_MENU) {
+        promptgroup(GUI_OUTPUT)
+        menu(menuIvoa)
+        interest(2)
+        prompt("INVALID output action")
+    }
+    field(IVOV, DBF_DOUBLE) {
+        promptgroup(GUI_OUTPUT)
+        interest(2)
+        prompt("INVALID output value")
+    }
+    field(EGU, DBF_STRING) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        size(16)
+        prompt("Units Name")
+    }
+    field(PREC, DBF_SHORT) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Display Precision")
+    }
+    field(HOPR, DBF_DOUBLE) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("High Operating Rng")
+    }
+    field(LOPR, DBF_DOUBLE) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Low Operating Range")
+    }
+    field(HIHI, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        pp(TRUE)
+        prompt("Hihi Alarm Limit")
+    }
+    field(LOLO, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        pp(TRUE)
+        prompt("Lolo Alarm Limit")
+    }
+    field(HIGH, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        pp(TRUE)
+        prompt("High Alarm Limit")
+    }
+    field(LOW, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        pp(TRUE)
+        prompt("Low Alarm Limit")
+    }
+    field(HHSV, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        menu(menuAlarmSevr)
+        interest(1)
+        pp(TRUE)
+        prompt("Hihi Severity")
+    }
+    field(LLSV, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        menu(menuAlarmSevr)
+        interest(1)
+        pp(TRUE)
+        prompt("Lolo Severity")
+    }
+    field(HSV, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        menu(menuAlarmSevr)
+        interest(1)
+        pp(TRUE)
+        prompt("High Severity")
+    }
+    field(LSV, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        menu(menuAlarmSevr)
+        interest(1)
+        pp(TRUE)
+        prompt("Low Severity")
+    }
+    field(HYST, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        prompt("Alarm Deadband")
+    }
+    field(ADEL, DBF_DOUBLE) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Archive Deadband")
+    }
+    field(MDEL, DBF_DOUBLE) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Monitor Deadband")
+    }
+    field(A, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input A")
+    }
+    field(B, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input B")
+    }
+    field(C, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input C")
+    }
+    field(D, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input D")
+    }
+    field(E, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input E")
+    }
+    field(F, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input F")
+    }
+    field(G, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input G")
+    }
+    field(H, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input H")
+    }
+    field(I, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input I")
+    }
+    field(J, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input J")
+    }
+    field(K, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input K")
+    }
+    field(L, DBF_DOUBLE) {
+        pp(TRUE)
+        prompt("Value of Input L")
+    }
+    field(AA, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *aa")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(BB, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *bb")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(CC, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *cc")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(DD, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *dd")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(EE, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *ee")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(FF, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *ff")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(GG, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *gg")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(HH, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *hh")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(II, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *ii")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(JJ, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *jj")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(KK, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *kk")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(LL, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *ll")
+        pp(TRUE)
+        prompt("Value of array input")
+    }
+    field(PAA, DBF_NOACCESS) {
+        asl(ASL0)
+        extra("double *paa")
+        prompt("Prev Val of array input")
+    }
+    field(NEWM, DBF_ULONG) {
+        special(SPC_NOMOD)
+        asl(ASL0)
+        prompt("new array value mask")
+    }
+    field(OVAL, DBF_DOUBLE) {
+        asl(ASL0)
+        prompt("Output Value")
+    }
+    field(OAV, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        asl(ASL0)
+        extra("double *oav")
+        pp(TRUE)
+        prompt("Output array value")
+    }
+    field(POAV, DBF_NOACCESS) {
+        asl(ASL0)
+        extra("double *poav")
+        pp(TRUE)
+        prompt("Output array value")
+    }
+    field(PA, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of A")
+    }
+    field(PB, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of B")
+    }
+    field(PC, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of C")
+    }
+    field(PD, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of D")
+    }
+    field(PE, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of E")
+    }
+    field(PF, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of F")
+    }
+    field(PG, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of G")
+    }
+    field(PH, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of H")
+    }
+    field(PI, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of I")
+    }
+    field(PJ, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of J")
+    }
+    field(PK, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of K")
+    }
+    field(PL, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of L")
+    }
+    field(POVL, DBF_DOUBLE) {
+        asl(ASL0)
+        prompt("Prev Value of OVAL")
+    }
+    field(LALM, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Last Value Alarmed")
+    }
+    field(ALST, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Last Value Archived")
+    }
+    field(MLST, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Last Val Monitored")
+    }
+    field(RPCL, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcl[282]")
+        interest(4)
+        prompt("Reverse Polish Calc")
+    }
+    field(ORPC, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char orpc[282]")
+        interest(4)
+        prompt("Reverse Polish OCalc")
+    }
+    field(CACT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Calc active")
+    }
+    field(CSTAT, DBF_LONG) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Calc status")
+    }
+    field(AMASK, DBF_ULONG) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Array mod")
+    }
+    field(SIZE, DBF_MENU) {
+        menu(acalcoutSIZE)
+        interest(1)
+        prompt("Array size reported to clients")
+    }
+}
+device(acalcout, CONSTANT, devaCalcoutSoft, "Soft Channel")
 recordtype(longout) {
     %#include "epicsTypes.h"
     %#include "link.h"
@@ -13240,6 +17434,1108 @@
 device(longout, INST_IO, asynLoInt32, "asynInt32")
 device(longout, INST_IO, asynLoUInt32Digital, "asynUInt32Digital")
 device(longout, INST_IO, devlongoutStream, "stream")
+recordtype(scalcout) {
+    %#include "epicsTypes.h"
+    %#include "link.h"
+    %#include "epicsMutex.h"
+    %#include "ellLib.h"
+    %#include "epicsTime.h"
+    field(NAME, DBF_STRING) {
+        special(SPC_NOMOD)
+        size(61)
+        prompt("Record Name")
+    }
+    field(DESC, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        size(41)
+        prompt("Descriptor")
+    }
+    field(ASG, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        special(SPC_AS)
+        size(29)
+        prompt("Access Security Group")
+    }
+    field(SCAN, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuScan)
+        interest(1)
+        prompt("Scan Mechanism")
+    }
+    field(PINI, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuPini)
+        interest(1)
+        prompt("Process at iocInit")
+    }
+    field(PHAS, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        prompt("Scan Phase")
+    }
+    field(EVNT, DBF_STRING) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        interest(1)
+        size(40)
+        prompt("Event Name")
+    }
+    field(TSE, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Event")
+    }
+    field(TSEL, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Time Stamp Link")
+    }
+    field(DTYP, DBF_DEVICE) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Device Type")
+    }
+    field(DISV, DBF_SHORT) {
+        promptgroup(GUI_SCAN)
+        initial("1")
+        prompt("Disable Value")
+    }
+    field(DISA, DBF_SHORT) {
+        prompt("Disable")
+    }
+    field(SDIS, DBF_INLINK) {
+        promptgroup(GUI_SCAN)
+        interest(1)
+        prompt("Scanning Disable")
+    }
+    field(MLOK, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsMutexId        mlok")
+        interest(4)
+        prompt("Monitor lock")
+    }
+    field(MLIS, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("ELLLIST             mlis")
+        interest(4)
+        prompt("Monitor List")
+    }
+    field(DISP, DBF_UCHAR) {
+        prompt("Disable putField")
+    }
+    field(PROC, DBF_UCHAR) {
+        interest(3)
+        pp(TRUE)
+        prompt("Force Processing")
+    }
+    field(STAT, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        initial("UDF")
+        prompt("Alarm Status")
+    }
+    field(SEVR, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        prompt("Alarm Severity")
+    }
+    field(NSTA, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmStat)
+        interest(2)
+        prompt("New Alarm Status")
+    }
+    field(NSEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("New Alarm Severity")
+    }
+    field(ACKS, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(menuAlarmSevr)
+        interest(2)
+        prompt("Alarm Ack Severity")
+    }
+    field(ACKT, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        special(SPC_NOMOD)
+        menu(menuYesNo)
+        initial("YES")
+        interest(2)
+        prompt("Alarm Ack Transient")
+    }
+    field(DISS, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        menu(menuAlarmSevr)
+        interest(1)
+        prompt("Disable Alarm Sevrty")
+    }
+    field(LCNT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(2)
+        prompt("Lock Count")
+    }
+    field(PACT, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Record active")
+    }
+    field(PUTF, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("dbPutField process")
+    }
+    field(RPRO, DBF_UCHAR) {
+        special(SPC_NOMOD)
+        interest(1)
+        prompt("Reprocess ")
+    }
+    field(ASP, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct asgMember    *asp")
+        interest(4)
+        prompt("Access Security Pvt")
+    }
+    field(PPN, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotify *ppn")
+        interest(4)
+        prompt("pprocessNotify")
+    }
+    field(PPNR, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct processNotifyRecord *ppnr")
+        interest(4)
+        prompt("pprocessNotifyRecord")
+    }
+    field(SPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct scan_element *spvt")
+        interest(4)
+        prompt("Scan Private")
+    }
+    field(RSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct rset         *rset")
+        interest(4)
+        prompt("Address of RSET")
+    }
+    field(DSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dset         *dset")
+        interest(4)
+        prompt("DSET address")
+    }
+    field(DPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void                *dpvt")
+        interest(4)
+        prompt("Device Private")
+    }
+    field(RDES, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct dbRecordType *rdes")
+        interest(4)
+        prompt("Address of dbRecordType")
+    }
+    field(LSET, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("struct lockRecord   *lset")
+        interest(4)
+        prompt("Lock Set")
+    }
+    field(PRIO, DBF_MENU) {
+        promptgroup(GUI_SCAN)
+        special(SPC_SCAN)
+        menu(menuPriority)
+        interest(1)
+        prompt("Scheduling Priority")
+    }
+    field(TPRO, DBF_UCHAR) {
+        prompt("Trace Processing")
+    }
+    field(BKPT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("char                bkpt")
+        interest(1)
+        prompt("Break Point")
+    }
+    field(UDF, DBF_UCHAR) {
+        promptgroup(GUI_COMMON)
+        initial("1")
+        interest(1)
+        pp(TRUE)
+        prompt("Undefined")
+    }
+    field(UDFS, DBF_MENU) {
+        promptgroup(GUI_COMMON)
+        menu(menuAlarmSevr)
+        initial("INVALID")
+        interest(1)
+        prompt("Undefined Alarm Sevrty")
+    }
+    field(TIME, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("epicsTimeStamp      time")
+        interest(2)
+        prompt("Time")
+    }
+    field(FLNK, DBF_FWDLINK) {
+        promptgroup(GUI_LINKS)
+        interest(1)
+        prompt("Forward Process Link")
+    }
+    field(VERS, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        initial("1")
+        prompt("Code Version")
+    }
+    field(RPVT, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("void *rpvt")
+        interest(4)
+        size(4)
+        prompt("Record Private")
+    }
+    field(VAL, DBF_DOUBLE) {
+        asl(ASL0)
+        prompt("Result")
+    }
+    field(SVAL, DBF_STRING) {
+        asl(ASL0)
+        size(40)
+        prompt("String result")
+    }
+    field(PVAL, DBF_DOUBLE) {
+        prompt("Previous Value")
+    }
+    field(PSVL, DBF_STRING) {
+        special(SPC_NOMOD)
+        size(40)
+        prompt("Previous string result")
+    }
+    field(CALC, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        pp(TRUE)
+        size(80)
+        prompt("Calculation")
+    }
+    field(CLCV, DBF_LONG) {
+        interest(1)
+        prompt("CALC Valid")
+    }
+    field(INPA, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input A")
+    }
+    field(INPB, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input B")
+    }
+    field(INPC, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input C")
+    }
+    field(INPD, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input D")
+    }
+    field(INPE, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input E")
+    }
+    field(INPF, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input F")
+    }
+    field(INPG, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input G")
+    }
+    field(INPH, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input H")
+    }
+    field(INPI, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input I")
+    }
+    field(INPJ, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input J")
+    }
+    field(INPK, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input K")
+    }
+    field(INPL, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Input L")
+    }
+    field(INAA, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input AA")
+    }
+    field(INBB, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input BB")
+    }
+    field(INCC, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input CC")
+    }
+    field(INDD, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input DD")
+    }
+    field(INEE, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input EE")
+    }
+    field(INFF, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input FF")
+    }
+    field(INGG, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input GG")
+    }
+    field(INHH, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input HH")
+    }
+    field(INII, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input II")
+    }
+    field(INJJ, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input JJ")
+    }
+    field(INKK, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input KK")
+    }
+    field(INLL, DBF_INLINK) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        interest(1)
+        prompt("String input LL")
+    }
+    field(OUT, DBF_OUTLINK) {
+        promptgroup(GUI_OUTPUT)
+        special(SPC_MOD)
+        interest(1)
+        prompt("Output Link")
+    }
+    field(INAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPA PV Status")
+    }
+    field(INBV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPB PV Status")
+    }
+    field(INCV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPC PV Status")
+    }
+    field(INDV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPD PV Status")
+    }
+    field(INEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPE PV Status")
+    }
+    field(INFV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPF PV Status")
+    }
+    field(INGV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPG PV Status")
+    }
+    field(INHV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPH PV Status")
+    }
+    field(INIV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPI PV Status")
+    }
+    field(INJV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPJ PV Status")
+    }
+    field(INKV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPK PV Status")
+    }
+    field(INLV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INPL PV Status")
+    }
+    field(IAAV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INAA PV Status")
+    }
+    field(IBBV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INBB PV Status")
+    }
+    field(ICCV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INCC PV Status")
+    }
+    field(IDDV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INDD PV Status")
+    }
+    field(IEEV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INEE PV Status")
+    }
+    field(IFFV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INFF PV Status")
+    }
+    field(IGGV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INGG PV Status")
+    }
+    field(IHHV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INHH PV Status")
+    }
+    field(IIIV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INII PV Status")
+    }
+    field(IJJV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INJJ PV Status")
+    }
+    field(IKKV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INKK PV Status")
+    }
+    field(ILLV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        initial("1")
+        interest(1)
+        prompt("INLL PV Status")
+    }
+    field(OUTV, DBF_MENU) {
+        special(SPC_NOMOD)
+        menu(scalcoutINAV)
+        interest(1)
+        prompt("OUT PV Status")
+    }
+    field(OOPT, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(scalcoutOOPT)
+        interest(1)
+        prompt("Output Execute Opt")
+    }
+    field(ODLY, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        asl(ASL0)
+        interest(1)
+        prompt("Output Execute Delay")
+    }
+    field(WAIT, DBF_MENU) {
+        menu(scalcoutWAIT)
+        interest(1)
+        prompt("Wait for completion?")
+    }
+    field(DLYA, DBF_USHORT) {
+        special(SPC_NOMOD)
+        asl(ASL0)
+        prompt("Output Delay Active")
+    }
+    field(DOPT, DBF_MENU) {
+        promptgroup(GUI_CALC)
+        menu(scalcoutDOPT)
+        interest(1)
+        prompt("Output Data Opt")
+    }
+    field(OCAL, DBF_STRING) {
+        promptgroup(GUI_CALC)
+        special(SPC_MOD)
+        pp(TRUE)
+        size(80)
+        prompt("Output Calculation")
+    }
+    field(OCLV, DBF_LONG) {
+        interest(1)
+        prompt("OCAL Valid")
+    }
+    field(OEVT, DBF_USHORT) {
+        promptgroup(GUI_CLOCK)
+        asl(ASL0)
+        prompt("Event To Issue")
+    }
+    field(IVOA, DBF_MENU) {
+        promptgroup(GUI_OUTPUT)
+        menu(menuIvoa)
+        interest(2)
+        prompt("INVALID output action")
+    }
+    field(IVOV, DBF_DOUBLE) {
+        promptgroup(GUI_OUTPUT)
+        interest(2)
+        prompt("INVALID output value")
+    }
+    field(EGU, DBF_STRING) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        size(16)
+        prompt("Units Name")
+    }
+    field(PREC, DBF_SHORT) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Display Precision")
+    }
+    field(HOPR, DBF_DOUBLE) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("High Operating Rng")
+    }
+    field(LOPR, DBF_DOUBLE) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Low Operating Range")
+    }
+    field(HIHI, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        pp(TRUE)
+        prompt("Hihi Alarm Limit")
+    }
+    field(LOLO, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        pp(TRUE)
+        prompt("Lolo Alarm Limit")
+    }
+    field(HIGH, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        pp(TRUE)
+        prompt("High Alarm Limit")
+    }
+    field(LOW, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        pp(TRUE)
+        prompt("Low Alarm Limit")
+    }
+    field(HHSV, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        menu(menuAlarmSevr)
+        interest(1)
+        pp(TRUE)
+        prompt("Hihi Severity")
+    }
+    field(LLSV, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        menu(menuAlarmSevr)
+        interest(1)
+        pp(TRUE)
+        prompt("Lolo Severity")
+    }
+    field(HSV, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        menu(menuAlarmSevr)
+        interest(1)
+        pp(TRUE)
+        prompt("High Severity")
+    }
+    field(LSV, DBF_MENU) {
+        promptgroup(GUI_ALARMS)
+        menu(menuAlarmSevr)
+        interest(1)
+        pp(TRUE)
+        prompt("Low Severity")
+    }
+    field(HYST, DBF_DOUBLE) {
+        promptgroup(GUI_ALARMS)
+        interest(1)
+        prompt("Alarm Deadband")
+    }
+    field(ADEL, DBF_DOUBLE) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Archive Deadband")
+    }
+    field(MDEL, DBF_DOUBLE) {
+        promptgroup(GUI_DISPLAY)
+        interest(1)
+        prompt("Monitor Deadband")
+    }
+    field(A, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input A")
+    }
+    field(B, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input B")
+    }
+    field(C, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input C")
+    }
+    field(D, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input D")
+    }
+    field(E, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input E")
+    }
+    field(F, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input F")
+    }
+    field(G, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input G")
+    }
+    field(H, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input H")
+    }
+    field(I, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input I")
+    }
+    field(J, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input J")
+    }
+    field(K, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input K")
+    }
+    field(L, DBF_DOUBLE) {
+        promptgroup(GUI_COMMON)
+        pp(TRUE)
+        prompt("Value of Input L")
+    }
+    field(STRS, DBF_NOACCESS) {
+        extra("char **strs")
+        interest(4)
+        size(4)
+        prompt("Array of string pointers")
+    }
+    field(AA, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input AA")
+    }
+    field(BB, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input BB")
+    }
+    field(CC, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input CC")
+    }
+    field(DD, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input DD")
+    }
+    field(EE, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input EE")
+    }
+    field(FF, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input FF")
+    }
+    field(GG, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input GG")
+    }
+    field(HH, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input HH")
+    }
+    field(II, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input II")
+    }
+    field(JJ, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input JJ")
+    }
+    field(KK, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input KK")
+    }
+    field(LL, DBF_STRING) {
+        promptgroup(GUI_COMMON)
+        interest(4)
+        pp(TRUE)
+        size(40)
+        prompt("Value of string input LL")
+    }
+    field(PAA, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *paa")
+        interest(4)
+        size(4)
+        prompt("Prev Value of AA")
+    }
+    field(PBB, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pbb")
+        interest(4)
+        size(4)
+        prompt("Prev Value of BB")
+    }
+    field(PCC, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pcc")
+        interest(4)
+        size(4)
+        prompt("Prev Value of CC")
+    }
+    field(PDD, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pdd")
+        interest(4)
+        size(4)
+        prompt("Prev Value of DD")
+    }
+    field(PEE, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pee")
+        interest(4)
+        size(4)
+        prompt("Prev Value of EE")
+    }
+    field(PFF, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pff")
+        interest(4)
+        size(4)
+        prompt("Prev Value of FF")
+    }
+    field(PGG, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pgg")
+        interest(4)
+        size(4)
+        prompt("Prev Value of GG")
+    }
+    field(PHH, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *phh")
+        interest(4)
+        size(4)
+        prompt("Prev Value of HH")
+    }
+    field(PII, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pii")
+        interest(4)
+        size(4)
+        prompt("Prev Value of II")
+    }
+    field(PJJ, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pjj")
+        interest(4)
+        size(4)
+        prompt("Prev Value of JJ")
+    }
+    field(PKK, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pkk")
+        interest(4)
+        size(4)
+        prompt("Prev Value of KK")
+    }
+    field(PLL, DBF_NOACCESS) {
+        special(SPC_DBADDR)
+        extra("char *pll")
+        interest(4)
+        size(4)
+        prompt("Prev Value of LL")
+    }
+    field(OVAL, DBF_DOUBLE) {
+        asl(ASL0)
+        prompt("Output Value")
+    }
+    field(OSV, DBF_STRING) {
+        asl(ASL0)
+        size(40)
+        prompt("Output string value")
+    }
+    field(POSV, DBF_STRING) {
+        special(SPC_NOMOD)
+        size(40)
+        prompt("Previous output string value")
+    }
+    field(PA, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of A")
+    }
+    field(PB, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of B")
+    }
+    field(PC, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of C")
+    }
+    field(PD, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of D")
+    }
+    field(PE, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of E")
+    }
+    field(PF, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of F")
+    }
+    field(PG, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of G")
+    }
+    field(PH, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of H")
+    }
+    field(PI, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of I")
+    }
+    field(PJ, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of J")
+    }
+    field(PK, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of K")
+    }
+    field(PL, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Prev Value of L")
+    }
+    field(POVL, DBF_DOUBLE) {
+        asl(ASL0)
+        prompt("Prev Value of OVAL")
+    }
+    field(LALM, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Last Value Alarmed")
+    }
+    field(ALST, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Last Value Archived")
+    }
+    field(MLST, DBF_DOUBLE) {
+        special(SPC_NOMOD)
+        interest(3)
+        prompt("Last Val Monitored")
+    }
+    field(RPCL, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char rpcl[282]")
+        interest(4)
+        prompt("Postfix Calc")
+    }
+    field(ORPC, DBF_NOACCESS) {
+        special(SPC_NOMOD)
+        extra("unsigned char orpc[282]")
+        interest(4)
+        prompt("Postfix OCalc")
+    }
+}
+device(scalcout, CONSTANT, devsCalcoutSoft, "Soft Channel")
 recordtype(aSub) {
     %#include "epicsTypes.h"
     %#include "link.h"
@@ -16653,33 +21949,56 @@
 driver(adcPi)
 driver(stream)
 driver(drvAsyn)
-registrar(adcPiRegister)
+registrar(tsInitialize)
+registrar(subAveRegister)
+registrar(syncInitialize)
+registrar(asynRegister)
+registrar(interpRegister)
+registrar(asynInterposeFlushRegister)
 registrar(drvAsynIPPortRegisterCommands)
-registrar(tsInitialize)
+registrar(adcPiRegister)
 registrar(arrInitialize)
 registrar(streamRegistrar)
-registrar(syncInitialize)
 registrar(dbndInitialize)
-registrar(asynRegister)
 registrar(drvAsynIPServerPortRegisterCommands)
+registrar(arrayTestRegister)
 registrar(asSub)
-registrar(asynInterposeFlushRegister)
 registrar(asynInterposeEosRegister)
+registrar(editSseqRegistrar)
 function(aSubReadDHTInit)
 function(aSubReadDHTProcess)
-variable(dbTemplateMaxVars, int)
-variable(asCaDebug, int)
 variable(callbackParallelThreadsDefault, int)
-variable(dbRecordsOnceOnly, int)
-variable(streamDebug, int)
-variable(calcoutODLYlimit, double)
-variable(adcPiDebug, int)
+variable(aCalcAsyncThreshold, int)
+variable(devsCalcoutSoftDebug, int)
 variable(dbBptNotMonotonic, int)
 variable(boHIGHlimit, double)
 variable(atExitDebug, int)
+variable(devaCalcoutSoftDebug, int)
+variable(sCalcStackHW, int)
+variable(sCalcoutRecordDebug, int)
+variable(sCalcPerformDebug, int)
+variable(seqDLYlimit, double)
+variable(aSubReadDHTDebug, int)
+variable(swaitRecordDebug, int)
+variable(sCalcStackLW, int)
+variable(sCalcPostfixDebug, int)
+variable(histogramSDELprecision, int)
+variable(sseqRecDebug, int)
+variable(aCalcLoopMax, int)
+variable(dbTemplateMaxVars, int)
+variable(asCaDebug, int)
+variable(sCalcLoopMax, int)
+variable(dbRecordsOnceOnly, int)
+variable(transformRecordDebug, int)
+variable(aCalcPostfixDebug, int)
+variable(calcoutODLYlimit, double)
+variable(streamDebug, int)
+variable(arrayTestDebug, int)
+variable(adcPiDebug, int)
+variable(interpDebug, int)
+variable(debugSubAve, int)
 variable(seqDLYprecision, int)
 variable(boHIGHprecision, int)
-variable(seqDLYlimit, double)
-variable(aSubReadDHTDebug, int)
 variable(calcoutODLYprecision, int)
-variable(histogramSDELprecision, int)
+variable(aCalcPerformDebug, int)
+variable(aCalcoutRecordDebug, int)