Add Agilent TV 301SF Navigator pumping system.
authoruhoppe
Mon, 10 Mar 2014 11:59:21 +0100
changeset 4 8a2328d953f0
parent 3 1b83de4729dc
child 5 069837c56788
Add Agilent TV 301SF Navigator pumping system.
tv301sf/Makefile
tv301sf/bin/linux-x86_64/tv301sf
tv301sf/configure/CONFIG
tv301sf/configure/CONFIG_SITE
tv301sf/configure/Makefile
tv301sf/configure/O.linux-x86_64/Makefile
tv301sf/configure/RELEASE
tv301sf/configure/RULES
tv301sf/configure/RULES.ioc
tv301sf/configure/RULES_DIRS
tv301sf/configure/RULES_TOP
tv301sf/db/tv301sf.db
tv301sf/db/tv301sf.proto
tv301sf/dbd/tv301sf.dbd
tv301sf/iocBoot/Makefile
tv301sf/iocBoot/ioctv301sf/Makefile
tv301sf/iocBoot/ioctv301sf/envPaths
tv301sf/iocBoot/ioctv301sf/st.cmd
tv301sf/tv301sfApp/Db/Makefile
tv301sf/tv301sfApp/Db/O.linux-x86_64/Makefile
tv301sf/tv301sfApp/Makefile
tv301sf/tv301sfApp/src/Makefile
tv301sf/tv301sfApp/src/O.Common/tv301sf.dbd
tv301sf/tv301sfApp/src/O.Common/tv301sf.dbd.depends
tv301sf/tv301sfApp/src/O.Common/tv301sfInclude.dbd
tv301sf/tv301sfApp/src/O.linux-x86_64/Makefile
tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sf
tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sfMain.depends
tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sfMain.o
tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sf_registerRecordDeviceDriver.cpp
tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sf_registerRecordDeviceDriver.depends
tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sf_registerRecordDeviceDriver.o
tv301sf/tv301sfApp/src/iocshGlobalCommands.dbd
tv301sf/tv301sfApp/src/tv301sfMain.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,17 @@
+#Makefile at top of application tree
+TOP = .
+include $(TOP)/configure/CONFIG
+DIRS := $(DIRS) $(filter-out $(DIRS), configure)
+DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *App))
+DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard iocBoot))
+
+define DIR_template
+ $(1)_DEPEND_DIRS = configure
+endef
+$(foreach dir, $(filter-out configure,$(DIRS)),$(eval $(call DIR_template,$(dir))))
+
+iocBoot_DEPEND_DIRS += $(filter %App,$(DIRS))
+
+include $(TOP)/configure/RULES_TOP
+
+
Binary file tv301sf/bin/linux-x86_64/tv301sf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/CONFIG	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,29 @@
+# CONFIG - Load build configuration data
+#
+# Do not make changes to this file!
+
+# Allow user to override where the build rules come from
+RULES = $(EPICS_BASE)
+
+# RELEASE files point to other application tops
+include $(TOP)/configure/RELEASE
+-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common
+ifdef T_A
+-include $(TOP)/configure/RELEASE.Common.$(T_A)
+-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
+endif
+
+CONFIG = $(RULES)/configure
+include $(CONFIG)/CONFIG
+
+# Override the Base definition:
+INSTALL_LOCATION = $(TOP)
+
+# CONFIG_SITE files contain other build configuration settings
+include $(TOP)/configure/CONFIG_SITE
+-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
+ifdef T_A
+ -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A)
+ -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/CONFIG_SITE	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,33 @@
+# CONFIG_SITE
+
+# Make any application-specific changes to the EPICS build
+#   configuration variables in this file.
+#
+# Host/target specific settings can be specified in files named
+#   CONFIG_SITE.$(EPICS_HOST_ARCH).Common
+#   CONFIG_SITE.Common.$(T_A)
+#   CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
+
+# CHECK_RELEASE controls the consistency checking of the support
+#   applications pointed to by the RELEASE* files.
+# Normally CHECK_RELEASE should be set to YES.
+# Set CHECK_RELEASE to NO to disable checking completely.
+# Set CHECK_RELEASE to WARN to perform consistency checking but
+#   continue building anyway if conflicts are found.
+CHECK_RELEASE = YES
+
+# Set this when you only want to compile this application
+#   for a subset of the cross-compiled target architectures
+#   that Base is built for.
+#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
+
+# To install files into a location other than $(TOP) define
+#   INSTALL_LOCATION here.
+#INSTALL_LOCATION=</path/name/to/install/top>
+
+# Set this when your IOC and the host use different paths
+#   to access the application. This will be needed to boot
+#   from a Microsoft FTP server or with some NFS mounts.
+# You must rebuild in the iocBoot directory for this to
+#   take effect.
+#IOCS_APPL_TOP = </IOC/path/to/application/top>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,8 @@
+TOP=..
+
+include $(TOP)/configure/CONFIG
+
+TARGETS = $(CONFIG_TARGETS)
+CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
+
+include $(TOP)/configure/RULES
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/O.linux-x86_64/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,10 @@
+#This Makefile created by makeMakefile.pl
+
+
+all :
+	$(MAKE) -f ../Makefile TOP=../.. T_A=linux-x86_64  $@
+
+.DEFAULT: force
+	$(MAKE) -f ../Makefile TOP=../.. T_A=linux-x86_64  $@
+
+force:  ;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/RELEASE	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,37 @@
+# RELEASE - Location of external support modules
+#
+# IF YOU MAKE ANY CHANGES to this file you must subsequently
+# do a "gnumake rebuild" in this application's top level
+# directory.
+#
+# The build process does not check dependencies against files
+# that are outside this application, thus you should do a
+# "gnumake rebuild" in the top level directory after EPICS_BASE
+# or any other external module pointed to below is rebuilt.
+#
+# Host- or target-specific settings can be given in files named
+#  RELEASE.$(EPICS_HOST_ARCH).Common
+#  RELEASE.Common.$(T_A)
+#  RELEASE.$(EPICS_HOST_ARCH).$(T_A)
+#
+# This file should ONLY define paths to other support modules,
+# or include statements that pull in similar RELEASE files.
+# Build settings that are NOT module paths should appear in a
+# CONFIG_SITE file.
+
+TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top
+
+# If using the sequencer, point SNCSEQ at its top directory:
+#SNCSEQ=$(EPICS_BASE)/../modules/soft/seq
+
+#uh
+MODULES=/opt/epics/modules
+STREAM=$(MODULES)/stream/2-4-1
+ASYN=/usr/lib/epics
+
+# EPICS_BASE usually appears last so other apps can override stuff:
+EPICS_BASE=/usr/lib/epics
+
+# Set RULES here if you want to take build rules from somewhere
+# other than EPICS_BASE:
+#RULES=/path/to/epics/support/module/rules/x-y
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/RULES	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,6 @@
+# RULES
+
+include $(CONFIG)/RULES
+
+# Library should be rebuilt because LIBOBJS may have changed.
+$(LIBNAME): ../Makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/RULES.ioc	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,2 @@
+#RULES.ioc
+include $(CONFIG)/RULES.ioc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/RULES_DIRS	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,2 @@
+#RULES_DIRS
+include $(CONFIG)/RULES_DIRS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/configure/RULES_TOP	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,3 @@
+#RULES_TOP
+include $(CONFIG)/RULES_TOP
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/db/tv301sf.db	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,117 @@
+# tv301sf.db   Uwe Hoppe   Fritz-Haber-Institut der MPG   3/2014
+#
+# Record Definition for the Agilent TV 301SF Navigator pumping system.
+
+record(bo, "$(P)$(R)StartStop") {
+  field(DESC, "Start or Stop Pump")
+  field(DTYP, "stream")
+  field(OUT, "@tv301sf.proto setStartStop(0x80) $(BUS)")
+  field(ZNAM, "Stop")
+  field(ONAM, "Start")
+}
+
+record(bo, "$(P)$(R)Remote") {
+  field(DESC, "Set Serial or Remote")
+  field(DTYP, "stream")
+  field(OUT, "@tv301sf.proto setRemote(0x80) $(BUS)")
+  field(ZNAM, "Serial")
+  field(ONAM, "Remote")
+}
+
+record(bo, "$(P)$(R)VentValve") {
+  field(DESC, "Set Vent Valve")
+  field(DTYP, "stream")
+  field(OUT, "@tv301sf.proto setVentValve(0x80) $(BUS)")
+  field(ZNAM, "Off (open)")
+  field(ONAM, "On (Closed)")
+}
+
+record(bo, "$(P)$(R)VentValveOperation") {
+  field(DESC, "Set Vent Valve Operation")
+  field(DTYP, "stream")
+  field(OUT, "@tv301sf.proto setVentValveOperation(0x80) $(BUS)")
+  field(ZNAM, "Automatic")
+  field(ONAM, "On Command")
+}
+
+record(ao, "$(P)$(R)RotFreqSetting") {
+  field(DESC, "Rot. Frequency Setting")
+  field(DTYP, "stream")
+  field(OUT, "@tv301sf.proto setRotFreqSetting(0x80) $(BUS)")
+  field(EGU, "Hz")
+}
+
+record(ai, "$(P)$(R)PumpCurrent") {
+  field(DESC, "Get Pump Current")
+  field(DTYP, "stream")
+  field(INP, "@tv301sf.proto getPumpCurrent(0x80) $(BUS)")
+  field(EGU, "mA")
+  field(PINI, "YES")
+  field(FLNK, "$(P)$(R)PumpVoltage")
+}
+
+record(ai, "$(P)$(R)PumpVoltage") {
+  field(DESC, "Get Pump Voltage")
+  field(DTYP, "stream")
+  field(INP, "@tv301sf.proto getPumpVoltage(0x80) $(BUS)")
+  field(EGU, "V")
+  field(PINI, "YES")
+  field(FLNK, "$(P)$(R)PumpPower")
+}
+
+record(ai, "$(P)$(R)PumpPower") {
+  field(DESC, "Get Pump Power")
+  field(DTYP, "stream")
+  field(INP, "@tv301sf.proto getPumpPower(0x80) $(BUS)")
+  field(EGU, "W")
+  field(PINI, "YES")
+  field(FLNK, "$(P)$(R)DrivingFrequency")
+}
+
+record(ai, "$(P)$(R)DrivingFrequency") {
+  field(DESC, "Get Driving Frequency")
+  field(DTYP, "stream")
+  field(INP, "@tv301sf.proto getDrivingFrequency(0x80) $(BUS)")
+  field(EGU, "Hz")
+  field(PINI, "YES")
+  field(FLNK, "$(P)$(R)ErrorCode")
+}
+
+record(ai, "$(P)$(R)PumpTemperature") {
+  field(DESC, "Get Pump Temperature")
+  field(DTYP, "stream")
+  field(INP, "@tv301sf.proto getPumpTemperature(0x80) $(BUS)")
+  field(EGU, "DegC")
+  field(PINI, "YES")
+}
+
+record(mbbi, "$(P)$(R)PumpStatus") {
+  field(DESC, "Pump Status")
+  field(DTYP, "stream")
+  field(SCAN, "10 second")
+  field(INP, "@tv301sf.proto getPumpStatus(0x80) $(BUS)")
+  field(ZRST, "Stop")
+  field(ZRVL, "0")
+  field(ONST, "Waiting intlk")
+  field(ONVL, "1")
+  field(TWST, "Starting")
+  field(TWVL, "2")
+  field(THST, "Auto-tuning")
+  field(THVL, "3")
+  field(FRST, "Braking")
+  field(FRVL, "4")
+  field(FVST, "Normal")
+  field(FVVL, "5")
+  field(SXST, "Fail")
+  field(SXVL, "6")
+  field(PINI, "YES")
+  field(FLNK, "$(P)$(R)PumpCurrent")
+}
+
+record(ai, "$(P)$(R)ErrorCode") {
+  field(DESC, "Pump Error Code")
+  field(DTYP, "stream")
+  field(INP, "@tv301sf.proto getErrorCode(0x80) $(BUS)")
+  field(PINI, "YES")
+  field(FLNK, "$(P)$(R)PumpTemperature")
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/db/tv301sf.proto	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,113 @@
+# tv301sf.proto   Uwe Hoppe   Fritz-Haber-Institut der MPG   3/2014
+#
+# Stream Device Protocol for the Agilent TV 301SF Navigator pumping system.
+
+locktimeout = 5000;
+outTerminator = CR;
+inTerminator = "";
+replytimeout = 1500;
+readtimeout  = 100;
+extrainput   = Ignore;
+iWT          = 175;
+
+### Uses "Window Meanings" protocol
+# Format <STX>+<ADDR>+<WIN>+<COM>+<DATA>+<ETX>+<CRC>
+# Where
+#    <ADDR> (Unit address) = 0x80 (for RS 232) 
+#    <ADDR> (Unit address) = 0x80 + device number (0 to 31) (for RS 485) 
+#    <WIN> (Window) = string of 3 numeric char indicating the window # ( ‘000’ #to ‘999’)
+#    <COM> (Command) = 0x30 to read the window, 0x31 to write into the window 
+#    <DATA> = an alphanumeric ASCII string with the data to be written into the window. 
+#ADDR = $1
+RCOM = 0x30;
+WCOM = 0x31;
+
+getStartStop { WIN = "000"; #1=default=Start; 0=Stop
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,"%b"ETX"%01<xor>"; 
+                    }
+
+setStartStop { WIN = "000"; #1=default=Start; 0=Stop
+                    out STX,$1,$WIN,$WCOM,"%d",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getStartStop; }
+                    }                             
+
+getRemote { WIN = "008"; #1=default=Remote; 0=Serial
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,"%b"ETX"%01<xor>";
+                    }
+
+setRemote { WIN = "008"; #1=default=Remote; 0=Serial
+                    out STX,$1,$WIN,$WCOM,"%d",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getRemote; }
+                    }                             
+
+getRotFreqSetting { WIN = "120";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+setRotFreqSetting { WIN = "120"; CDATA= "955";
+                    out STX,$1,$WIN,$WCOM,"000%u",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getRotFreqSetting; wait $iWT; }
+                    }
+
+getVentValve { WIN = "122"; #1=default=ON=CLOSE; 0=OPEN=OFF
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,"%b"ETX"%01<xor>"; 
+                    }
+
+setVentValve { WIN = "122"; #1=default=ON=CLOSE; 0=OPEN=OFF
+                    out STX,$1,$WIN,$WCOM,"%d",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getVentValve; }
+                    }                             
+
+getVentValveOperation {  WIN = "125"; #Automatic = 0
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,"%b"ETX"%01<xor>"; 
+                    }
+
+setVentValveOperation { WIN = "125"; #Automatic = 0
+                    out STX,$1,$WIN,$WCOM,"%d",ETX"%01<xor>";
+                    in  STX,$1,ACK,ETX"%01<xor>";
+                    @init { wait $iWT; getVentValveOperation; }
+                    }                             
+
+getPumpCurrent { WIN = "200";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getPumpVoltage { WIN = "201";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getPumpPower { WIN = "202";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getDrivingFrequency { WIN = "203";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getPumpTemperature { WIN = "204";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6d"ETX"%01<xor>";
+                    }
+
+getPumpStatus { WIN = "205";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%6i"ETX"%01<xor>";
+                    }
+
+getErrorCode { WIN = "206";
+                    out STX,$1,$WIN,$RCOM,ETX"%01<xor>";
+                    in  STX,$1,$WIN,$RCOM,"%o"ETX"%01<xor>";
+                    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/dbd/tv301sf.dbd	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,13989 @@
+menu(waveformPOST) {
+	choice(waveformPOST_Always,"Always")
+	choice(waveformPOST_OnChange,"On Change")
+}
+menu(stringoutPOST) {
+	choice(stringoutPOST_OnChange,"On Change")
+	choice(stringoutPOST_Always,"Always")
+}
+menu(stringinPOST) {
+	choice(stringinPOST_OnChange,"On Change")
+	choice(stringinPOST_Always,"Always")
+}
+menu(serialSBIT) {
+	choice(serialSBIT_unknown,"Unknown")
+	choice(serialSBIT_1,"1")
+	choice(serialSBIT_2,"2")
+}
+menu(serialPRTY) {
+	choice(serialPRTY_unknown,"Unknown")
+	choice(serialPRTY_None,"None")
+	choice(serialPRTY_Even,"Even")
+	choice(serialPRTY_Odd,"Odd")
+}
+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(serialDBIT) {
+	choice(serialDBIT_unknown,"Unknown")
+	choice(serialDBIT_5,"5")
+	choice(serialDBIT_6,"6")
+	choice(serialDBIT_7,"7")
+	choice(serialDBIT_8,"8")
+}
+menu(serialBAUD) {
+	choice(serialBAUD_unknown,"Unknown")
+	choice(serialBAUD_300,"300")
+	choice(serialBAUD_600,"600")
+	choice(serialBAUD_1200,"1200")
+	choice(serialBAUD_2400,"2400")
+	choice(serialBAUD_4800,"4800")
+	choice(serialBAUD_9600,"9600")
+	choice(serialBAUD_19200,"19200")
+	choice(serialBAUD_38400,"38400")
+	choice(serialBAUD_57600,"57600")
+	choice(serialBAUD_115200,"115200")
+	choice(serialBAUD_230400,"230400")
+}
+menu(seqSELM) {
+	choice(seqSELM_All,"All")
+	choice(seqSELM_Specified,"Specified")
+	choice(seqSELM_Mask,"Mask")
+}
+menu(selSELM) {
+	choice(selSELM_Specified,"Specified")
+	choice(selSELM_High_Signal,"High Signal")
+	choice(selSELM_Low_Signal,"Low Signal")
+	choice(selSELM_Median_Signal,"Median Signal")
+}
+menu(menuYesNo) {
+	choice(menuYesNoNO,"NO")
+	choice(menuYesNoYES,"YES")
+}
+menu(menuSimm) {
+	choice(menuSimmNO,"NO")
+	choice(menuSimmYES,"YES")
+	choice(menuSimmRAW,"RAW")
+}
+menu(menuScan) {
+	choice(menuScanPassive,"Passive")
+	choice(menuScanEvent,"Event")
+	choice(menuScanI_O_Intr,"I/O Intr")
+	choice(menuScan10_second,"10 second")
+	choice(menuScan5_second,"5 second")
+	choice(menuScan2_second,"2 second")
+	choice(menuScan1_second,"1 second")
+	choice(menuScan_5_second,".5 second")
+	choice(menuScan_2_second,".2 second")
+	choice(menuScan_1_second,".1 second")
+}
+menu(menuPriority) {
+	choice(menuPriorityLOW,"LOW")
+	choice(menuPriorityMEDIUM,"MEDIUM")
+	choice(menuPriorityHIGH,"HIGH")
+}
+menu(menuPini) {
+	choice(menuPiniNO,"NO")
+	choice(menuPiniYES,"YES")
+	choice(menuPiniRUN,"RUN")
+	choice(menuPiniRUNNING,"RUNNING")
+	choice(menuPiniPAUSE,"PAUSE")
+	choice(menuPiniPAUSED,"PAUSED")
+}
+menu(menuOmsl) {
+	choice(menuOmslsupervisory,"supervisory")
+	choice(menuOmslclosed_loop,"closed_loop")
+}
+menu(menuIvoa) {
+	choice(menuIvoaContinue_normally,"Continue normally")
+	choice(menuIvoaDon_t_drive_outputs,"Don't drive outputs")
+	choice(menuIvoaSet_output_to_IVOV,"Set output to IVOV")
+}
+menu(menuFtype) {
+	choice(menuFtypeSTRING,"STRING")
+	choice(menuFtypeCHAR,"CHAR")
+	choice(menuFtypeUCHAR,"UCHAR")
+	choice(menuFtypeSHORT,"SHORT")
+	choice(menuFtypeUSHORT,"USHORT")
+	choice(menuFtypeLONG,"LONG")
+	choice(menuFtypeULONG,"ULONG")
+	choice(menuFtypeFLOAT,"FLOAT")
+	choice(menuFtypeDOUBLE,"DOUBLE")
+	choice(menuFtypeENUM,"ENUM")
+}
+menu(menuConvert) {
+	choice(menuConvertNO_CONVERSION,"NO CONVERSION")
+	choice(menuConvertSLOPE,"SLOPE")
+	choice(menuConvertLINEAR,"LINEAR")
+	choice(menuConverttypeKdegF,"typeKdegF")
+	choice(menuConverttypeKdegC,"typeKdegC")
+	choice(menuConverttypeJdegF,"typeJdegF")
+	choice(menuConverttypeJdegC,"typeJdegC")
+	choice(menuConverttypeEdegF,"typeEdegF(ixe only)")
+	choice(menuConverttypeEdegC,"typeEdegC(ixe only)")
+	choice(menuConverttypeTdegF,"typeTdegF")
+	choice(menuConverttypeTdegC,"typeTdegC")
+	choice(menuConverttypeRdegF,"typeRdegF")
+	choice(menuConverttypeRdegC,"typeRdegC")
+	choice(menuConverttypeSdegF,"typeSdegF")
+	choice(menuConverttypeSdegC,"typeSdegC")
+}
+menu(menuCompress) {
+	choice(menuCompressN_to_1_First_Value,"N to 1 First Value")
+	choice(menuCompressN_to_1_Low_Value,"N to 1 Low Value")
+	choice(menuCompressN_to_1_High_Value,"N to 1 High Value")
+	choice(menuCompressN_to_1_Average,"N to 1 Average")
+}
+menu(menuAlarmStat) {
+	choice(menuAlarmStatNO_ALARM,"NO_ALARM")
+	choice(menuAlarmStatREAD,"READ")
+	choice(menuAlarmStatWRITE,"WRITE")
+	choice(menuAlarmStatHIHI,"HIHI")
+	choice(menuAlarmStatHIGH,"HIGH")
+	choice(menuAlarmStatLOLO,"LOLO")
+	choice(menuAlarmStatLOW,"LOW")
+	choice(menuAlarmStatSTATE,"STATE")
+	choice(menuAlarmStatCOS,"COS")
+	choice(menuAlarmStatCOMM,"COMM")
+	choice(menuAlarmStatTIMEOUT,"TIMEOUT")
+	choice(menuAlarmStatHWLIMIT,"HWLIMIT")
+	choice(menuAlarmStatCALC,"CALC")
+	choice(menuAlarmStatSCAN,"SCAN")
+	choice(menuAlarmStatLINK,"LINK")
+	choice(menuAlarmStatSOFT,"SOFT")
+	choice(menuAlarmStatBAD_SUB,"BAD_SUB")
+	choice(menuAlarmStatUDF,"UDF")
+	choice(menuAlarmStatDISABLE,"DISABLE")
+	choice(menuAlarmStatSIMM,"SIMM")
+	choice(menuAlarmStatREAD_ACCESS,"READ_ACCESS")
+	choice(menuAlarmStatWRITE_ACCESS,"WRITE_ACCESS")
+}
+menu(menuAlarmSevr) {
+	choice(menuAlarmSevrNO_ALARM,"NO_ALARM")
+	choice(menuAlarmSevrMINOR,"MINOR")
+	choice(menuAlarmSevrMAJOR,"MAJOR")
+	choice(menuAlarmSevrINVALID,"INVALID")
+}
+menu(histogramCMD) {
+	choice(histogramCMD_Read,"Read")
+	choice(histogramCMD_Clear,"Clear")
+	choice(histogramCMD_Start,"Start")
+	choice(histogramCMD_Stop,"Stop")
+}
+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(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(fanoutSELM) {
+	choice(fanoutSELM_All,"All")
+	choice(fanoutSELM_Specified,"Specified")
+	choice(fanoutSELM_Mask,"Mask")
+}
+menu(dfanoutSELM) {
+	choice(dfanoutSELM_All,"All")
+	choice(dfanoutSELM_Specified,"Specified")
+	choice(dfanoutSELM_Mask,"Mask")
+}
+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(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(calcoutINAV) {
+	choice(calcoutINAV_EXT_NC,"Ext PV NC")
+	choice(calcoutINAV_EXT,"Ext PV OK")
+	choice(calcoutINAV_LOC,"Local PV")
+	choice(calcoutINAV_CON,"Constant")
+}
+menu(calcoutDOPT) {
+	choice(calcoutDOPT_Use_VAL,"Use CALC")
+	choice(calcoutDOPT_Use_OVAL,"Use OCAL")
+}
+menu(asynTRACE) {
+	choice(asynTRACE_Off,"Off")
+	choice(asynTRACE_On,"On")
+}
+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(asynINTERFACE) {
+	choice(asynINTERFACE_OCTET,"asynOctet")
+	choice(asynINTERFACE_INT32,"asynInt32")
+	choice(asynINTERFACE_UINT32,"asynUInt32Digital")
+	choice(asynINTERFACE_FLOAT64,"asynFloat64")
+}
+menu(asynFMT) {
+	choice(asynFMT_ASCII,"ASCII")
+	choice(asynFMT_Hybrid,"Hybrid")
+	choice(asynFMT_Binary,"Binary")
+}
+menu(asynEOMREASON) {
+	choice(asynEOMREASONNone,"None")
+	choice(asynEOMREASONCNT,"Count")
+	choice(asynEOMREASONEOS,"Eos")
+	choice(asynEOMREASONCNTEOS,"Count Eos")
+	choice(asynEOMREASONEND,"End")
+	choice(asynEOMREASONCNTEND,"Count End")
+	choice(asynEOMREASONEOSEND,"Eos End")
+	choice(asynEOMREASONCNTEOSEND,"Count Eos End")
+}
+menu(asynENABLE) {
+	choice(asynENABLE_Disable,"Disable")
+	choice(asynENABLE_Enable,"Enable")
+}
+menu(asynCONNECT) {
+	choice(asynCONNECT_Disconnect,"Disconnect")
+	choice(asynCONNECT_Connect,"Connect")
+}
+menu(asynAUTOCONNECT) {
+	choice(asynAUTOCONNECT_noAutoConnect,"noAutoConnect")
+	choice(asynAUTOCONNECT_autoConnect,"autoConnect")
+}
+menu(aoOIF) {
+	choice(aoOIF_Full,"Full")
+	choice(aoOIF_Incremental,"Incremental")
+}
+menu(aSubLFLG) {
+	choice(aSubLFLG_IGNORE,"IGNORE")
+	choice(aSubLFLG_READ,"READ")
+}
+menu(aSubEFLG) {
+	choice(aSubEFLG_NEVER,"NEVER")
+	choice(aSubEFLG_ON_CHANGE,"ON CHANGE")
+	choice(aSubEFLG_ALWAYS,"ALWAYS")
+}
+recordtype(ai) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Current EGU Value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LINR,DBF_MENU) {
+		prompt("Linearization")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		menu(menuConvert)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGUF,DBF_DOUBLE) {
+		prompt("Engineer Units Full")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGUL,DBF_DOUBLE) {
+		prompt("Engineer Units Low")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Engineering Units")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(AOFF,DBF_DOUBLE) {
+		prompt("Adjustment Offset")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ASLO,DBF_DOUBLE) {
+		prompt("Adjustment Slope")
+		initial("1")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SMOO,DBF_DOUBLE) {
+		prompt("Smoothing")
+		promptgroup(GUI_CONVERT)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ESLO,DBF_DOUBLE) {
+		prompt("Raw to EGU Slope")
+		initial("1")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(2)
+	}
+	field(EOFF,DBF_DOUBLE) {
+		prompt("Raw to EGU Offset")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(2)
+	}
+	field(ROFF,DBF_LONG) {
+		prompt("Raw Offset, obsolete")
+		pp(TRUE)
+		interest(2)
+	}
+	field(PBRK,DBF_NOACCESS) {
+		prompt("Ptrto brkTable")
+		special(SPC_NOMOD)
+		extra("void *	pbrk")
+		interest(4)
+	}
+	field(INIT,DBF_SHORT) {
+		prompt("Initialized?")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LBRK,DBF_SHORT) {
+		prompt("LastBreak Point")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RVAL,DBF_LONG) {
+		prompt("Current Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_LONG) {
+		prompt("Previous Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_DOUBLE) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuSimm)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(ao) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Desired Output")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_DOUBLE) {
+		prompt("Output Value")
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OROC,DBF_DOUBLE) {
+		prompt("Output Rate of Chang")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(OIF,DBF_MENU) {
+		prompt("Out Full/Incremental")
+		promptgroup(GUI_OUTPUT)
+		menu(aoOIF)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LINR,DBF_MENU) {
+		prompt("Linearization")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		menu(menuConvert)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGUF,DBF_DOUBLE) {
+		prompt("Eng Units Full")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGUL,DBF_DOUBLE) {
+		prompt("Eng Units Low")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Engineering Units")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(ROFF,DBF_LONG) {
+		prompt("Raw Offset, obsolete")
+		pp(TRUE)
+		interest(2)
+	}
+	field(EOFF,DBF_DOUBLE) {
+		prompt("EGU to Raw Offset")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(2)
+	}
+	field(ESLO,DBF_DOUBLE) {
+		prompt("EGU to Raw Slope")
+		initial("1")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(2)
+	}
+	field(DRVH,DBF_DOUBLE) {
+		prompt("Drive High Limit")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(DRVL,DBF_DOUBLE) {
+		prompt("Drive Low Limit")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(AOFF,DBF_DOUBLE) {
+		prompt("Adjustment Offset")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ASLO,DBF_DOUBLE) {
+		prompt("Adjustment Slope")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(RVAL,DBF_LONG) {
+		prompt("Current Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_LONG) {
+		prompt("Previous Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RBV,DBF_LONG) {
+		prompt("Readback Value")
+		special(SPC_NOMOD)
+	}
+	field(ORBV,DBF_LONG) {
+		prompt("Prev Readback Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(PVAL,DBF_DOUBLE) {
+		prompt("Previous value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(PBRK,DBF_NOACCESS) {
+		prompt("Ptrto brkTable")
+		special(SPC_NOMOD)
+		extra("void *	pbrk")
+		interest(4)
+	}
+	field(INIT,DBF_SHORT) {
+		prompt("Initialized?")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LBRK,DBF_SHORT) {
+		prompt("LastBreak Point")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID output action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_DOUBLE) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		interest(2)
+	}
+	field(OMOD,DBF_UCHAR) {
+		prompt("Was OVAL modified?")
+		special(SPC_NOMOD)
+	}
+}
+recordtype(aSub) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Subr. return value")
+		asl(ASL0)
+	}
+	field(OVAL,DBF_LONG) {
+		prompt("Old return value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(INAM,DBF_STRING) {
+		prompt("Initialize Subr. Name")
+		promptgroup(GUI_SUB)
+		special(SPC_NOMOD)
+		size(41)
+		interest(1)
+	}
+	field(LFLG,DBF_MENU) {
+		prompt("Subr. Input Enable")
+		promptgroup(GUI_SUB)
+		menu(aSubLFLG)
+		interest(1)
+	}
+	field(SUBL,DBF_INLINK) {
+		prompt("Subroutine Name Link")
+		promptgroup(GUI_SUB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(SNAM,DBF_STRING) {
+		prompt("Process Subr. Name")
+		promptgroup(GUI_SUB)
+		special(100)
+		size(41)
+		interest(1)
+	}
+	field(ONAM,DBF_STRING) {
+		prompt("Old Subr. Name")
+		promptgroup(GUI_SUB)
+		special(SPC_NOMOD)
+		size(41)
+		interest(3)
+	}
+	field(SADR,DBF_NOACCESS) {
+		prompt("Subroutine Address")
+		special(SPC_NOMOD)
+		extra("long (*sadr)(struct aSubRecord *)")
+		interest(2)
+	}
+	field(BRSV,DBF_MENU) {
+		prompt("Bad Return Severity")
+		promptgroup(GUI_SUB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(EFLG,DBF_MENU) {
+		prompt("Output Event Flag")
+		initial("1")
+		promptgroup(GUI_OUTPUT)
+		menu(aSubEFLG)
+		interest(1)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input Link A")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input Link B")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input Link C")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input Link D")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input Link E")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input Link F")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input Link G")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input Link H")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input Link I")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input Link J")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input Link K")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input Link L")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPM,DBF_INLINK) {
+		prompt("Input Link M")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPN,DBF_INLINK) {
+		prompt("Input Link N")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPO,DBF_INLINK) {
+		prompt("Input Link O")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPP,DBF_INLINK) {
+		prompt("Input Link P")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPQ,DBF_INLINK) {
+		prompt("Input Link Q")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPR,DBF_INLINK) {
+		prompt("Input Link R")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPS,DBF_INLINK) {
+		prompt("Input Link S")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPT,DBF_INLINK) {
+		prompt("Input Link T")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPU,DBF_INLINK) {
+		prompt("Input Link U")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(A,DBF_NOACCESS) {
+		prompt("Input value A")
+		special(SPC_DBADDR)
+		extra("void *a")
+		interest(2)
+		asl(ASL0)
+	}
+	field(B,DBF_NOACCESS) {
+		prompt("Input value B")
+		special(SPC_DBADDR)
+		extra("void *b")
+		interest(2)
+		asl(ASL0)
+	}
+	field(C,DBF_NOACCESS) {
+		prompt("Input value C")
+		special(SPC_DBADDR)
+		extra("void *c")
+		interest(2)
+		asl(ASL0)
+	}
+	field(D,DBF_NOACCESS) {
+		prompt("Input value D")
+		special(SPC_DBADDR)
+		extra("void *d")
+		interest(2)
+		asl(ASL0)
+	}
+	field(E,DBF_NOACCESS) {
+		prompt("Input value E")
+		special(SPC_DBADDR)
+		extra("void *e")
+		interest(2)
+		asl(ASL0)
+	}
+	field(F,DBF_NOACCESS) {
+		prompt("Input value F")
+		special(SPC_DBADDR)
+		extra("void *f")
+		interest(2)
+		asl(ASL0)
+	}
+	field(G,DBF_NOACCESS) {
+		prompt("Input value G")
+		special(SPC_DBADDR)
+		extra("void *g")
+		interest(2)
+		asl(ASL0)
+	}
+	field(H,DBF_NOACCESS) {
+		prompt("Input value H")
+		special(SPC_DBADDR)
+		extra("void *h")
+		interest(2)
+		asl(ASL0)
+	}
+	field(I,DBF_NOACCESS) {
+		prompt("Input value I")
+		special(SPC_DBADDR)
+		extra("void *i")
+		interest(2)
+		asl(ASL0)
+	}
+	field(J,DBF_NOACCESS) {
+		prompt("Input value J")
+		special(SPC_DBADDR)
+		extra("void *j")
+		interest(2)
+		asl(ASL0)
+	}
+	field(K,DBF_NOACCESS) {
+		prompt("Input value K")
+		special(SPC_DBADDR)
+		extra("void *k")
+		interest(2)
+		asl(ASL0)
+	}
+	field(L,DBF_NOACCESS) {
+		prompt("Input value L")
+		special(SPC_DBADDR)
+		extra("void *l")
+		interest(2)
+		asl(ASL0)
+	}
+	field(M,DBF_NOACCESS) {
+		prompt("Input value M")
+		special(SPC_DBADDR)
+		extra("void *m")
+		interest(2)
+		asl(ASL0)
+	}
+	field(N,DBF_NOACCESS) {
+		prompt("Input value N")
+		special(SPC_DBADDR)
+		extra("void *n")
+		interest(2)
+		asl(ASL0)
+	}
+	field(O,DBF_NOACCESS) {
+		prompt("Input value O")
+		special(SPC_DBADDR)
+		extra("void *o")
+		interest(2)
+		asl(ASL0)
+	}
+	field(P,DBF_NOACCESS) {
+		prompt("Input value P")
+		special(SPC_DBADDR)
+		extra("void *p")
+		interest(2)
+		asl(ASL0)
+	}
+	field(Q,DBF_NOACCESS) {
+		prompt("Input value Q")
+		special(SPC_DBADDR)
+		extra("void *q")
+		interest(2)
+		asl(ASL0)
+	}
+	field(R,DBF_NOACCESS) {
+		prompt("Input value R")
+		special(SPC_DBADDR)
+		extra("void *r")
+		interest(2)
+		asl(ASL0)
+	}
+	field(S,DBF_NOACCESS) {
+		prompt("Input value S")
+		special(SPC_DBADDR)
+		extra("void *s")
+		interest(2)
+		asl(ASL0)
+	}
+	field(T,DBF_NOACCESS) {
+		prompt("Input value T")
+		special(SPC_DBADDR)
+		extra("void *t")
+		interest(2)
+		asl(ASL0)
+	}
+	field(U,DBF_NOACCESS) {
+		prompt("Input value U")
+		special(SPC_DBADDR)
+		extra("void *u")
+		interest(2)
+		asl(ASL0)
+	}
+	field(FTA,DBF_MENU) {
+		prompt("Type of A")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTB,DBF_MENU) {
+		prompt("Type of B")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTC,DBF_MENU) {
+		prompt("Type of C")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTD,DBF_MENU) {
+		prompt("Type of D")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTE,DBF_MENU) {
+		prompt("Type of E")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTF,DBF_MENU) {
+		prompt("Type of F")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTG,DBF_MENU) {
+		prompt("Type of G")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTH,DBF_MENU) {
+		prompt("Type of H")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTI,DBF_MENU) {
+		prompt("Type of I")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTJ,DBF_MENU) {
+		prompt("Type of J")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTK,DBF_MENU) {
+		prompt("Type of K")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTL,DBF_MENU) {
+		prompt("Type of L")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTM,DBF_MENU) {
+		prompt("Type of M")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTN,DBF_MENU) {
+		prompt("Type of N")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTO,DBF_MENU) {
+		prompt("Type of O")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTP,DBF_MENU) {
+		prompt("Type of P")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTQ,DBF_MENU) {
+		prompt("Type of Q")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTR,DBF_MENU) {
+		prompt("Type of R")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTS,DBF_MENU) {
+		prompt("Type of S")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTT,DBF_MENU) {
+		prompt("Type of T")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTU,DBF_MENU) {
+		prompt("Type of U")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(NOA,DBF_ULONG) {
+		prompt("Max. elements in A")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOB,DBF_ULONG) {
+		prompt("Max. elements in B")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOC,DBF_ULONG) {
+		prompt("Max. elements in C")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOD,DBF_ULONG) {
+		prompt("Max. elements in D")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOE,DBF_ULONG) {
+		prompt("Max. elements in E")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOF,DBF_ULONG) {
+		prompt("Max. elements in F")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOG,DBF_ULONG) {
+		prompt("Max. elements in G")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOH,DBF_ULONG) {
+		prompt("Max. elements in H")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOI,DBF_ULONG) {
+		prompt("Max. elements in I")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOJ,DBF_ULONG) {
+		prompt("Max. elements in J")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOK,DBF_ULONG) {
+		prompt("Max. elements in K")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOL,DBF_ULONG) {
+		prompt("Max. elements in L")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOM,DBF_ULONG) {
+		prompt("Max. elements in M")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NON,DBF_ULONG) {
+		prompt("Max. elements in N")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOO,DBF_ULONG) {
+		prompt("Max. elements in O")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOP,DBF_ULONG) {
+		prompt("Max. elements in P")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOQ,DBF_ULONG) {
+		prompt("Max. elements in Q")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOR,DBF_ULONG) {
+		prompt("Max. elements in R")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOS,DBF_ULONG) {
+		prompt("Max. elements in S")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOT,DBF_ULONG) {
+		prompt("Max. elements in T")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOU,DBF_ULONG) {
+		prompt("Max. elements in U")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NEA,DBF_ULONG) {
+		prompt("Num. elements in A")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEB,DBF_ULONG) {
+		prompt("Num. elements in B")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEC,DBF_ULONG) {
+		prompt("Num. elements in C")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NED,DBF_ULONG) {
+		prompt("Num. elements in D")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEE,DBF_ULONG) {
+		prompt("Num. elements in E")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEF,DBF_ULONG) {
+		prompt("Num. elements in F")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEG,DBF_ULONG) {
+		prompt("Num. elements in G")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEH,DBF_ULONG) {
+		prompt("Num. elements in H")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEI,DBF_ULONG) {
+		prompt("Num. elements in I")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEJ,DBF_ULONG) {
+		prompt("Num. elements in J")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEK,DBF_ULONG) {
+		prompt("Num. elements in K")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEL,DBF_ULONG) {
+		prompt("Num. elements in L")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEM,DBF_ULONG) {
+		prompt("Num. elements in M")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEN,DBF_ULONG) {
+		prompt("Num. elements in N")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEO,DBF_ULONG) {
+		prompt("Num. elements in O")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEP,DBF_ULONG) {
+		prompt("Num. elements in P")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEQ,DBF_ULONG) {
+		prompt("Num. elements in Q")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NER,DBF_ULONG) {
+		prompt("Num. elements in R")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NES,DBF_ULONG) {
+		prompt("Num. elements in S")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NET,DBF_ULONG) {
+		prompt("Num. elements in T")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEU,DBF_ULONG) {
+		prompt("Num. elements in U")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(OUTA,DBF_OUTLINK) {
+		prompt("Output Link A")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTB,DBF_OUTLINK) {
+		prompt("Output Link B")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTC,DBF_OUTLINK) {
+		prompt("Output Link C")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTD,DBF_OUTLINK) {
+		prompt("Output Link D")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTE,DBF_OUTLINK) {
+		prompt("Output Link E")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTF,DBF_OUTLINK) {
+		prompt("Output Link F")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTG,DBF_OUTLINK) {
+		prompt("Output Link G")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTH,DBF_OUTLINK) {
+		prompt("Output Link H")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTI,DBF_OUTLINK) {
+		prompt("Output Link I")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTJ,DBF_OUTLINK) {
+		prompt("Output Link J")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTK,DBF_OUTLINK) {
+		prompt("Output Link K")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTL,DBF_OUTLINK) {
+		prompt("Output Link L")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTM,DBF_OUTLINK) {
+		prompt("Output Link M")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTN,DBF_OUTLINK) {
+		prompt("Output Link N")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTO,DBF_OUTLINK) {
+		prompt("Output Link O")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTP,DBF_OUTLINK) {
+		prompt("Output Link P")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTQ,DBF_OUTLINK) {
+		prompt("Output Link Q")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTR,DBF_OUTLINK) {
+		prompt("Output Link R")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTS,DBF_OUTLINK) {
+		prompt("Output Link S")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTT,DBF_OUTLINK) {
+		prompt("Output Link T")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTU,DBF_OUTLINK) {
+		prompt("Output Link U")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(VALA,DBF_NOACCESS) {
+		prompt("Output value A")
+		special(SPC_DBADDR)
+		extra("void *vala")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALB,DBF_NOACCESS) {
+		prompt("Output value B")
+		special(SPC_DBADDR)
+		extra("void *valb")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALC,DBF_NOACCESS) {
+		prompt("Output value C")
+		special(SPC_DBADDR)
+		extra("void *valc")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALD,DBF_NOACCESS) {
+		prompt("Output value D")
+		special(SPC_DBADDR)
+		extra("void *vald")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALE,DBF_NOACCESS) {
+		prompt("Output value E")
+		special(SPC_DBADDR)
+		extra("void *vale")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALF,DBF_NOACCESS) {
+		prompt("Output value F")
+		special(SPC_DBADDR)
+		extra("void *valf")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALG,DBF_NOACCESS) {
+		prompt("Output value G")
+		special(SPC_DBADDR)
+		extra("void *valg")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALH,DBF_NOACCESS) {
+		prompt("Output value H")
+		special(SPC_DBADDR)
+		extra("void *valh")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALI,DBF_NOACCESS) {
+		prompt("Output value I")
+		special(SPC_DBADDR)
+		extra("void *vali")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALJ,DBF_NOACCESS) {
+		prompt("Output value J")
+		special(SPC_DBADDR)
+		extra("void *valj")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALK,DBF_NOACCESS) {
+		prompt("Output value K")
+		special(SPC_DBADDR)
+		extra("void *valk")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALL,DBF_NOACCESS) {
+		prompt("Output value L")
+		special(SPC_DBADDR)
+		extra("void *vall")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALM,DBF_NOACCESS) {
+		prompt("Output value M")
+		special(SPC_DBADDR)
+		extra("void *valm")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALN,DBF_NOACCESS) {
+		prompt("Output value N")
+		special(SPC_DBADDR)
+		extra("void *valn")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALO,DBF_NOACCESS) {
+		prompt("Output value O")
+		special(SPC_DBADDR)
+		extra("void *valo")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALP,DBF_NOACCESS) {
+		prompt("Output value P")
+		special(SPC_DBADDR)
+		extra("void *valp")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALQ,DBF_NOACCESS) {
+		prompt("Output value Q")
+		special(SPC_DBADDR)
+		extra("void *valq")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALR,DBF_NOACCESS) {
+		prompt("Output value R")
+		special(SPC_DBADDR)
+		extra("void *valr")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALS,DBF_NOACCESS) {
+		prompt("Output value S")
+		special(SPC_DBADDR)
+		extra("void *vals")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALT,DBF_NOACCESS) {
+		prompt("Output value T")
+		special(SPC_DBADDR)
+		extra("void *valt")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALU,DBF_NOACCESS) {
+		prompt("Output value U")
+		special(SPC_DBADDR)
+		extra("void *valu")
+		interest(2)
+		asl(ASL0)
+	}
+	field(OVLA,DBF_NOACCESS) {
+		prompt("Old Output A")
+		special(SPC_NOMOD)
+		extra("void *ovla")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLB,DBF_NOACCESS) {
+		prompt("Old Output B")
+		special(SPC_NOMOD)
+		extra("void *ovlb")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLC,DBF_NOACCESS) {
+		prompt("Old Output C")
+		special(SPC_NOMOD)
+		extra("void *ovlc")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLD,DBF_NOACCESS) {
+		prompt("Old Output D")
+		special(SPC_NOMOD)
+		extra("void *ovld")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLE,DBF_NOACCESS) {
+		prompt("Old Output E")
+		special(SPC_NOMOD)
+		extra("void *ovle")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLF,DBF_NOACCESS) {
+		prompt("Old Output F")
+		special(SPC_NOMOD)
+		extra("void *ovlf")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLG,DBF_NOACCESS) {
+		prompt("Old Output G")
+		special(SPC_NOMOD)
+		extra("void *ovlg")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLH,DBF_NOACCESS) {
+		prompt("Old Output H")
+		special(SPC_NOMOD)
+		extra("void *ovlh")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLI,DBF_NOACCESS) {
+		prompt("Old Output I")
+		special(SPC_NOMOD)
+		extra("void *ovli")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLJ,DBF_NOACCESS) {
+		prompt("Old Output J")
+		special(SPC_NOMOD)
+		extra("void *ovlj")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLK,DBF_NOACCESS) {
+		prompt("Old Output K")
+		special(SPC_NOMOD)
+		extra("void *ovlk")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLL,DBF_NOACCESS) {
+		prompt("Old Output L")
+		special(SPC_NOMOD)
+		extra("void *ovll")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLM,DBF_NOACCESS) {
+		prompt("Old Output M")
+		special(SPC_NOMOD)
+		extra("void *ovlm")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLN,DBF_NOACCESS) {
+		prompt("Old Output N")
+		special(SPC_NOMOD)
+		extra("void *ovln")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLO,DBF_NOACCESS) {
+		prompt("Old Output O")
+		special(SPC_NOMOD)
+		extra("void *ovlo")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLP,DBF_NOACCESS) {
+		prompt("Old Output P")
+		special(SPC_NOMOD)
+		extra("void *ovlp")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLQ,DBF_NOACCESS) {
+		prompt("Old Output Q")
+		special(SPC_NOMOD)
+		extra("void *ovlq")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLR,DBF_NOACCESS) {
+		prompt("Old Output R")
+		special(SPC_NOMOD)
+		extra("void *ovlr")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLS,DBF_NOACCESS) {
+		prompt("Old Output S")
+		special(SPC_NOMOD)
+		extra("void *ovls")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLT,DBF_NOACCESS) {
+		prompt("Old Output T")
+		special(SPC_NOMOD)
+		extra("void *ovlt")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLU,DBF_NOACCESS) {
+		prompt("Old Output U")
+		special(SPC_NOMOD)
+		extra("void *ovlu")
+		interest(4)
+		asl(ASL0)
+	}
+	field(FTVA,DBF_MENU) {
+		prompt("Type of VALA")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVB,DBF_MENU) {
+		prompt("Type of VALB")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVC,DBF_MENU) {
+		prompt("Type of VALC")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVD,DBF_MENU) {
+		prompt("Type of VALD")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVE,DBF_MENU) {
+		prompt("Type of VALE")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVF,DBF_MENU) {
+		prompt("Type of VALF")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVG,DBF_MENU) {
+		prompt("Type of VALG")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVH,DBF_MENU) {
+		prompt("Type of VALH")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVI,DBF_MENU) {
+		prompt("Type of VALI")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVJ,DBF_MENU) {
+		prompt("Type of VALJ")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVK,DBF_MENU) {
+		prompt("Type of VALK")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVL,DBF_MENU) {
+		prompt("Type of VALL")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVM,DBF_MENU) {
+		prompt("Type of VALM")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVN,DBF_MENU) {
+		prompt("Type of VALN")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVO,DBF_MENU) {
+		prompt("Type of VALO")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVP,DBF_MENU) {
+		prompt("Type of VALP")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVQ,DBF_MENU) {
+		prompt("Type of VALQ")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVR,DBF_MENU) {
+		prompt("Type of VALR")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVS,DBF_MENU) {
+		prompt("Type of VALS")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVT,DBF_MENU) {
+		prompt("Type of VALT")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVU,DBF_MENU) {
+		prompt("Type of VALU")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(NOVA,DBF_ULONG) {
+		prompt("Max. elements in VALA")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVB,DBF_ULONG) {
+		prompt("Max. elements in VALB")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVC,DBF_ULONG) {
+		prompt("Max. elements in VALC")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVD,DBF_ULONG) {
+		prompt("Max. elements in VALD")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVE,DBF_ULONG) {
+		prompt("Max. elements in VALE")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVF,DBF_ULONG) {
+		prompt("Max. elements in VALF")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVG,DBF_ULONG) {
+		prompt("Max. elements in VALG")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVH,DBF_ULONG) {
+		prompt("Max. elements in VAlH")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVI,DBF_ULONG) {
+		prompt("Max. elements in VALI")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVJ,DBF_ULONG) {
+		prompt("Max. elements in VALJ")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVK,DBF_ULONG) {
+		prompt("Max. elements in VALK")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVL,DBF_ULONG) {
+		prompt("Max. elements in VALL")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVM,DBF_ULONG) {
+		prompt("Max. elements in VALM")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVN,DBF_ULONG) {
+		prompt("Max. elements in VALN")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVO,DBF_ULONG) {
+		prompt("Max. elements in VALO")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVP,DBF_ULONG) {
+		prompt("Max. elements in VALP")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVQ,DBF_ULONG) {
+		prompt("Max. elements in VALQ")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVR,DBF_ULONG) {
+		prompt("Max. elements in VALR")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVS,DBF_ULONG) {
+		prompt("Max. elements in VALS")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVT,DBF_ULONG) {
+		prompt("Max. elements in VALT")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVU,DBF_ULONG) {
+		prompt("Max. elements in VALU")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NEVA,DBF_ULONG) {
+		prompt("Num. elements in VALA")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVB,DBF_ULONG) {
+		prompt("Num. elements in VALB")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVC,DBF_ULONG) {
+		prompt("Num. elements in VALC")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVD,DBF_ULONG) {
+		prompt("Num. elements in VALD")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVE,DBF_ULONG) {
+		prompt("Num. elements in VALE")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVF,DBF_ULONG) {
+		prompt("Num. elements in VALF")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVG,DBF_ULONG) {
+		prompt("Num. elements in VALG")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVH,DBF_ULONG) {
+		prompt("Num. elements in VAlH")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVI,DBF_ULONG) {
+		prompt("Num. elements in VALI")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVJ,DBF_ULONG) {
+		prompt("Num. elements in VALJ")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVK,DBF_ULONG) {
+		prompt("Num. elements in VALK")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVL,DBF_ULONG) {
+		prompt("Num. elements in VALL")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVM,DBF_ULONG) {
+		prompt("Num. elements in VALM")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVN,DBF_ULONG) {
+		prompt("Num. elements in VALN")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVO,DBF_ULONG) {
+		prompt("Num. elements in VALO")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVP,DBF_ULONG) {
+		prompt("Num. elements in VALP")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVQ,DBF_ULONG) {
+		prompt("Num. elements in VALQ")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVR,DBF_ULONG) {
+		prompt("Num. elements in VALR")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVS,DBF_ULONG) {
+		prompt("Num. elements in VALS")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVT,DBF_ULONG) {
+		prompt("Num. elements in VALT")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVU,DBF_ULONG) {
+		prompt("Num. elements in VALU")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(bi) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(VAL,DBF_ENUM) {
+		prompt("Current Value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(ZSV,DBF_MENU) {
+		prompt("Zero Error Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(OSV,DBF_MENU) {
+		prompt("One Error Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(COSV,DBF_MENU) {
+		prompt("Change of State Svr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ZNAM,DBF_STRING) {
+		prompt("Zero Name")
+		promptgroup(GUI_CALC)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONAM,DBF_STRING) {
+		prompt("One Name")
+		promptgroup(GUI_CLOCK)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_ULONG) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuSimm)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(bo) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_ENUM) {
+		prompt("Current Value")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("Seconds to Hold High")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(ZNAM,DBF_STRING) {
+		prompt("Zero Name")
+		promptgroup(GUI_DISPLAY)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONAM,DBF_STRING) {
+		prompt("One Name")
+		promptgroup(GUI_DISPLAY)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPVT,DBF_NOACCESS) {
+		prompt("Record Private")
+		special(SPC_NOMOD)
+		extra("void *  rpvt")
+		interest(4)
+	}
+	field(WDPT,DBF_NOACCESS) {
+		prompt("Watch Dog Timer ID")
+		special(SPC_NOMOD)
+		extra("void *	wdpt")
+		interest(4)
+	}
+	field(ZSV,DBF_MENU) {
+		prompt("Zero Error Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(OSV,DBF_MENU) {
+		prompt("One Error Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(COSV,DBF_MENU) {
+		prompt("Change of State Sevr")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RBV,DBF_ULONG) {
+		prompt("Readback Value")
+		special(SPC_NOMOD)
+	}
+	field(ORBV,DBF_ULONG) {
+		prompt("Prev Readback Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID outpt action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_USHORT) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		interest(2)
+	}
+}
+recordtype(calc) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Result")
+		asl(ASL0)
+	}
+	field(CALC,DBF_STRING) {
+		prompt("Calculation")
+		initial("0")
+		promptgroup(GUI_CALC)
+		special(103)
+		size(40)
+		pp(TRUE)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input A")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input B")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input C")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input D")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input E")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input F")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input G")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input H")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input I")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input J")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input K")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input L")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Rng")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(A,DBF_DOUBLE) {
+		prompt("Value of Input A")
+		pp(TRUE)
+	}
+	field(B,DBF_DOUBLE) {
+		prompt("Value of Input B")
+		pp(TRUE)
+	}
+	field(C,DBF_DOUBLE) {
+		prompt("Value of Input C")
+		pp(TRUE)
+	}
+	field(D,DBF_DOUBLE) {
+		prompt("Value of Input D")
+		pp(TRUE)
+	}
+	field(E,DBF_DOUBLE) {
+		prompt("Value of Input E")
+		pp(TRUE)
+	}
+	field(F,DBF_DOUBLE) {
+		prompt("Value of Input F")
+		pp(TRUE)
+	}
+	field(G,DBF_DOUBLE) {
+		prompt("Value of Input G")
+		pp(TRUE)
+	}
+	field(H,DBF_DOUBLE) {
+		prompt("Value of Input H")
+		pp(TRUE)
+	}
+	field(I,DBF_DOUBLE) {
+		prompt("Value of Input I")
+		pp(TRUE)
+	}
+	field(J,DBF_DOUBLE) {
+		prompt("Value of Input J")
+		pp(TRUE)
+	}
+	field(K,DBF_DOUBLE) {
+		prompt("Value of Input K")
+		pp(TRUE)
+	}
+	field(L,DBF_DOUBLE) {
+		prompt("Value of Input L")
+		pp(TRUE)
+	}
+	field(LA,DBF_DOUBLE) {
+		prompt("Prev Value of A")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LB,DBF_DOUBLE) {
+		prompt("Prev Value of B")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LC,DBF_DOUBLE) {
+		prompt("Prev Value of C")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LD,DBF_DOUBLE) {
+		prompt("Prev Value of D")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LE,DBF_DOUBLE) {
+		prompt("Prev Value of E")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LF,DBF_DOUBLE) {
+		prompt("Prev Value of F")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LG,DBF_DOUBLE) {
+		prompt("Prev Value of G")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LH,DBF_DOUBLE) {
+		prompt("Prev Value of H")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LI,DBF_DOUBLE) {
+		prompt("Prev Value of I")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LJ,DBF_DOUBLE) {
+		prompt("Prev Value of J")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LK,DBF_DOUBLE) {
+		prompt("Prev Value of K")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LL,DBF_DOUBLE) {
+		prompt("Prev Value of L")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RPCL,DBF_NOACCESS) {
+		prompt("Reverse Polish Calc")
+		special(SPC_NOMOD)
+		extra("char	rpcl[INFIX_TO_POSTFIX_SIZE(40)]")
+		interest(4)
+	}
+}
+recordtype(calcout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(RPVT,DBF_NOACCESS) {
+		prompt("Record Private")
+		special(SPC_NOMOD)
+		extra("struct rpvtStruct *rpvt")
+		interest(4)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Result")
+		promptgroup(GUI_OUTPUT)
+		asl(ASL0)
+	}
+	field(PVAL,DBF_DOUBLE) {
+		prompt("Previous Value")
+	}
+	field(CALC,DBF_STRING) {
+		prompt("Calculation")
+		initial("0")
+		promptgroup(GUI_CALC)
+		special(103)
+		size(40)
+		pp(TRUE)
+	}
+	field(CLCV,DBF_LONG) {
+		prompt("CALC Valid")
+		interest(1)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input A")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input B")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input C")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input D")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input E")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input F")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input G")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input H")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input I")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input J")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input K")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input L")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		special(100)
+		interest(1)
+	}
+	field(INAV,DBF_MENU) {
+		prompt("INPA PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INBV,DBF_MENU) {
+		prompt("INPB PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INCV,DBF_MENU) {
+		prompt("INPC PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INDV,DBF_MENU) {
+		prompt("INPD PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INEV,DBF_MENU) {
+		prompt("INPE PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INFV,DBF_MENU) {
+		prompt("INPF PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INGV,DBF_MENU) {
+		prompt("INPG PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INHV,DBF_MENU) {
+		prompt("INPH PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INIV,DBF_MENU) {
+		prompt("INPI PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INJV,DBF_MENU) {
+		prompt("INPJ PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INKV,DBF_MENU) {
+		prompt("INPK PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INLV,DBF_MENU) {
+		prompt("INPL PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(OUTV,DBF_MENU) {
+		prompt("OUT PV Status")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(OOPT,DBF_MENU) {
+		prompt("Output Execute Opt")
+		promptgroup(GUI_CALC)
+		menu(calcoutOOPT)
+		interest(1)
+	}
+	field(ODLY,DBF_DOUBLE) {
+		prompt("Output Execute Delay")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+		asl(ASL0)
+	}
+	field(DLYA,DBF_USHORT) {
+		prompt("Output Delay Active")
+		special(SPC_NOMOD)
+		asl(ASL0)
+	}
+	field(DOPT,DBF_MENU) {
+		prompt("Output Data Opt")
+		promptgroup(GUI_CALC)
+		menu(calcoutDOPT)
+		interest(1)
+	}
+	field(OCAL,DBF_STRING) {
+		prompt("Output Calculation")
+		initial("0")
+		promptgroup(GUI_CALC)
+		special(103)
+		size(40)
+		pp(TRUE)
+	}
+	field(OCLV,DBF_LONG) {
+		prompt("OCAL Valid")
+		interest(1)
+	}
+	field(OEVT,DBF_USHORT) {
+		prompt("Event To Issue")
+		promptgroup(GUI_CLOCK)
+		asl(ASL0)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID output action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_DOUBLE) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		interest(2)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Rng")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(A,DBF_DOUBLE) {
+		prompt("Value of Input A")
+		pp(TRUE)
+	}
+	field(B,DBF_DOUBLE) {
+		prompt("Value of Input B")
+		pp(TRUE)
+	}
+	field(C,DBF_DOUBLE) {
+		prompt("Value of Input C")
+		pp(TRUE)
+	}
+	field(D,DBF_DOUBLE) {
+		prompt("Value of Input D")
+		pp(TRUE)
+	}
+	field(E,DBF_DOUBLE) {
+		prompt("Value of Input E")
+		pp(TRUE)
+	}
+	field(F,DBF_DOUBLE) {
+		prompt("Value of Input F")
+		pp(TRUE)
+	}
+	field(G,DBF_DOUBLE) {
+		prompt("Value of Input G")
+		pp(TRUE)
+	}
+	field(H,DBF_DOUBLE) {
+		prompt("Value of Input H")
+		pp(TRUE)
+	}
+	field(I,DBF_DOUBLE) {
+		prompt("Value of Input I")
+		pp(TRUE)
+	}
+	field(J,DBF_DOUBLE) {
+		prompt("Value of Input J")
+		pp(TRUE)
+	}
+	field(K,DBF_DOUBLE) {
+		prompt("Value of Input K")
+		pp(TRUE)
+	}
+	field(L,DBF_DOUBLE) {
+		prompt("Value of Input L")
+		pp(TRUE)
+	}
+	field(OVAL,DBF_DOUBLE) {
+		prompt("Output Value")
+		asl(ASL0)
+	}
+	field(LA,DBF_DOUBLE) {
+		prompt("Prev Value of A")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LB,DBF_DOUBLE) {
+		prompt("Prev Value of B")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LC,DBF_DOUBLE) {
+		prompt("Prev Value of C")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LD,DBF_DOUBLE) {
+		prompt("Prev Value of D")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LE,DBF_DOUBLE) {
+		prompt("Prev Value of E")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LF,DBF_DOUBLE) {
+		prompt("Prev Value of F")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LG,DBF_DOUBLE) {
+		prompt("Prev Value of G")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LH,DBF_DOUBLE) {
+		prompt("Prev Value of H")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LI,DBF_DOUBLE) {
+		prompt("Prev Value of I")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LJ,DBF_DOUBLE) {
+		prompt("Prev Value of J")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LK,DBF_DOUBLE) {
+		prompt("Prev Value of K")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LL,DBF_DOUBLE) {
+		prompt("Prev Value of L")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(POVL,DBF_DOUBLE) {
+		prompt("Prev Value of OVAL")
+		asl(ASL0)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RPCL,DBF_NOACCESS) {
+		prompt("Reverse Polish Calc")
+		special(SPC_NOMOD)
+		extra("char	rpcl[INFIX_TO_POSTFIX_SIZE(40)]")
+		interest(4)
+	}
+	field(ORPC,DBF_NOACCESS) {
+		prompt("Reverse Polish OCalc")
+		special(SPC_NOMOD)
+		extra("char	orpc[INFIX_TO_POSTFIX_SIZE(40)]")
+		interest(4)
+	}
+}
+recordtype(compress) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_NOACCESS) {
+		prompt("Value")
+		special(SPC_DBADDR)
+		extra("void *		val")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_COMPRESS)
+		interest(1)
+	}
+	field(RES,DBF_SHORT) {
+		prompt("Reset")
+		special(101)
+		interest(3)
+		asl(ASL0)
+	}
+	field(ALG,DBF_MENU) {
+		prompt("Compression Algorithm")
+		promptgroup(GUI_ALARMS)
+		special(101)
+		menu(compressALG)
+		interest(1)
+	}
+	field(NSAM,DBF_ULONG) {
+		prompt("Number of Values")
+		initial("1")
+		promptgroup(GUI_COMPRESS)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(N,DBF_ULONG) {
+		prompt("N to 1 Compression")
+		initial("1")
+		promptgroup(GUI_COMPRESS)
+		special(101)
+		interest(1)
+	}
+	field(IHIL,DBF_DOUBLE) {
+		prompt("Init High Interest Lim")
+		promptgroup(GUI_COMPRESS)
+		interest(1)
+	}
+	field(ILIL,DBF_DOUBLE) {
+		prompt("Init Low Interest Lim")
+		promptgroup(GUI_COMPRESS)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("EngineeringUnits")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(OFF,DBF_ULONG) {
+		prompt("Offset")
+		special(SPC_NOMOD)
+	}
+	field(NUSE,DBF_ULONG) {
+		prompt("Number Used")
+		special(SPC_NOMOD)
+	}
+	field(BPTR,DBF_NOACCESS) {
+		prompt("Buffer Pointer")
+		special(SPC_NOMOD)
+		extra("double		*bptr")
+		interest(4)
+	}
+	field(SPTR,DBF_NOACCESS) {
+		prompt("Summing Buffer Ptr")
+		special(SPC_NOMOD)
+		extra("double		*sptr")
+		interest(4)
+	}
+	field(WPTR,DBF_NOACCESS) {
+		prompt("Working Buffer Ptr")
+		special(SPC_NOMOD)
+		extra("double		*wptr")
+		interest(4)
+	}
+	field(INPN,DBF_LONG) {
+		prompt("Number of elements in Working Buffer")
+		special(SPC_NOMOD)
+		interest(4)
+	}
+	field(CVB,DBF_DOUBLE) {
+		prompt("Compress Value Buffer")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(INX,DBF_ULONG) {
+		prompt("Compressed Array Inx")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(dfanout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Desired Output")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(SELM,DBF_MENU) {
+		prompt("Select Mechanism")
+		promptgroup(GUI_LINKS)
+		menu(dfanoutSELM)
+		interest(1)
+	}
+	field(SELN,DBF_USHORT) {
+		prompt("Link Selection")
+		initial("1")
+		interest(1)
+	}
+	field(SELL,DBF_INLINK) {
+		prompt("Link Selection Loc")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(OUTA,DBF_OUTLINK) {
+		prompt("Output Spec A")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTB,DBF_OUTLINK) {
+		prompt("Output Spec B")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTC,DBF_OUTLINK) {
+		prompt("Output Spec C")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTD,DBF_OUTLINK) {
+		prompt("Output Spec D")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTE,DBF_OUTLINK) {
+		prompt("Output Spec E")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTF,DBF_OUTLINK) {
+		prompt("Output Spec F")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTG,DBF_OUTLINK) {
+		prompt("Output Spec G")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTH,DBF_OUTLINK) {
+		prompt("Output Spec H")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(event) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_USHORT) {
+		prompt("Event Number To Post")
+		promptgroup(GUI_INPUTS)
+		asl(ASL0)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_USHORT) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(fanout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Used to trigger")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(SELM,DBF_MENU) {
+		prompt("Select Mechanism")
+		promptgroup(GUI_LINKS)
+		menu(fanoutSELM)
+		interest(1)
+	}
+	field(SELN,DBF_USHORT) {
+		prompt("Link Selection")
+		initial("1")
+		interest(1)
+	}
+	field(SELL,DBF_INLINK) {
+		prompt("Link Selection Loc")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK1,DBF_FWDLINK) {
+		prompt("Forward Link 1")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK2,DBF_FWDLINK) {
+		prompt("Forward Link 2")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK3,DBF_FWDLINK) {
+		prompt("Forward Link 3")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK4,DBF_FWDLINK) {
+		prompt("Forward Link 4")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK5,DBF_FWDLINK) {
+		prompt("Forward Link 5")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK6,DBF_FWDLINK) {
+		prompt("Forward Link 6")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+}
+recordtype(histogram) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_NOACCESS) {
+		prompt("Value")
+		special(SPC_DBADDR)
+		extra("void *	val")
+		asl(ASL0)
+	}
+	field(NELM,DBF_USHORT) {
+		prompt("Num of Array Elements")
+		initial("1")
+		promptgroup(GUI_HIST)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(CSTA,DBF_SHORT) {
+		prompt("Collection Status")
+		initial("1")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(CMD,DBF_MENU) {
+		prompt("Collection Control")
+		special(103)
+		menu(histogramCMD)
+		interest(1)
+		asl(ASL0)
+	}
+	field(ULIM,DBF_DOUBLE) {
+		prompt("Upper Signal Limit")
+		promptgroup(GUI_HIST)
+		special(101)
+		interest(1)
+	}
+	field(LLIM,DBF_DOUBLE) {
+		prompt("Lower Signal Limit ")
+		promptgroup(GUI_HIST)
+		special(101)
+		interest(1)
+	}
+	field(WDTH,DBF_DOUBLE) {
+		prompt("Element Width")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SGNL,DBF_DOUBLE) {
+		prompt("Signal Value")
+		special(100)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(SVL,DBF_INLINK) {
+		prompt("Signal Value Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(BPTR,DBF_NOACCESS) {
+		prompt("Buffer Pointer")
+		special(SPC_NOMOD)
+		extra("epicsUInt32 *bptr")
+		interest(4)
+	}
+	field(WDOG,DBF_NOACCESS) {
+		prompt("Watchdog callback")
+		special(SPC_NOMOD)
+		extra("void *  wdog")
+		interest(4)
+	}
+	field(MDEL,DBF_SHORT) {
+		prompt("Monitor Count Deadband")
+		promptgroup(GUI_HIST)
+		interest(1)
+	}
+	field(MCNT,DBF_SHORT) {
+		prompt("Counts Since Monitor")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SDEL,DBF_DOUBLE) {
+		prompt("Monitor Seconds Dband")
+		promptgroup(GUI_HIST)
+		special(101)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_DOUBLE) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(HOPR,DBF_ULONG) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_ULONG) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+}
+recordtype(longin) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Current value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_LONG) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_LONG) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_LONG) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_LONG) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_LONG) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_LONG) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_LONG) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_LONG) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_LONG) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LALM,DBF_LONG) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_LONG) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_LONG) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_LONG) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(longout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Desired Output")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(DRVH,DBF_LONG) {
+		prompt("Drive High Limit")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(DRVL,DBF_LONG) {
+		prompt("Drive Low Limit")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HOPR,DBF_LONG) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_LONG) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_LONG) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_LONG) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_LONG) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_LONG) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_LONG) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_LONG) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_LONG) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LALM,DBF_LONG) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_LONG) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_LONG) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID output action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_LONG) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		interest(2)
+	}
+}
+recordtype(mbbi) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_ENUM) {
+		prompt("Current Value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(NOBT,DBF_SHORT) {
+		prompt("Number of Bits")
+		promptgroup(GUI_MBB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(ZRVL,DBF_ULONG) {
+		prompt("Zero Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ONVL,DBF_ULONG) {
+		prompt("One Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TWVL,DBF_ULONG) {
+		prompt("Two Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(THVL,DBF_ULONG) {
+		prompt("Three Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FRVL,DBF_ULONG) {
+		prompt("Four Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FVVL,DBF_ULONG) {
+		prompt("Five Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(SXVL,DBF_ULONG) {
+		prompt("Six Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(SVVL,DBF_ULONG) {
+		prompt("Seven Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(EIVL,DBF_ULONG) {
+		prompt("Eight Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(NIVL,DBF_ULONG) {
+		prompt("Nine Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TEVL,DBF_ULONG) {
+		prompt("Ten Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ELVL,DBF_ULONG) {
+		prompt("Eleven Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TVVL,DBF_ULONG) {
+		prompt("Twelve Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TTVL,DBF_ULONG) {
+		prompt("Thirteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FTVL,DBF_ULONG) {
+		prompt("Fourteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FFVL,DBF_ULONG) {
+		prompt("Fifteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ZRST,DBF_STRING) {
+		prompt("Zero String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONST,DBF_STRING) {
+		prompt("One String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TWST,DBF_STRING) {
+		prompt("Two String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(THST,DBF_STRING) {
+		prompt("Three String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FRST,DBF_STRING) {
+		prompt("Four String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FVST,DBF_STRING) {
+		prompt("Five String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SXST,DBF_STRING) {
+		prompt("Six String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SVST,DBF_STRING) {
+		prompt("Seven String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EIST,DBF_STRING) {
+		prompt("Eight String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NIST,DBF_STRING) {
+		prompt("Nine String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TEST,DBF_STRING) {
+		prompt("Ten String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ELST,DBF_STRING) {
+		prompt("Eleven String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TVST,DBF_STRING) {
+		prompt("Twelve String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TTST,DBF_STRING) {
+		prompt("Thirteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FTST,DBF_STRING) {
+		prompt("Fourteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FFST,DBF_STRING) {
+		prompt("Fifteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ZRSV,DBF_MENU) {
+		prompt("State Zero Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONSV,DBF_MENU) {
+		prompt("State One Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TWSV,DBF_MENU) {
+		prompt("State Two Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(THSV,DBF_MENU) {
+		prompt("State Three Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FRSV,DBF_MENU) {
+		prompt("State Four Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FVSV,DBF_MENU) {
+		prompt("State Five Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SXSV,DBF_MENU) {
+		prompt("State Six Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SVSV,DBF_MENU) {
+		prompt("State Seven Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EISV,DBF_MENU) {
+		prompt("State Eight Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NISV,DBF_MENU) {
+		prompt("State Nine Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TESV,DBF_MENU) {
+		prompt("State Ten Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ELSV,DBF_MENU) {
+		prompt("State Eleven Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TVSV,DBF_MENU) {
+		prompt("State Twelve Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TTSV,DBF_MENU) {
+		prompt("State Thirteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FTSV,DBF_MENU) {
+		prompt("State Fourteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FFSV,DBF_MENU) {
+		prompt("State Fifteen Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(UNSV,DBF_MENU) {
+		prompt("Unknown State Severity")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(COSV,DBF_MENU) {
+		prompt("Change of State Svr")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("Prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SDEF,DBF_SHORT) {
+		prompt("States Defined")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SHFT,DBF_USHORT) {
+		prompt("Shift")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SVAL,DBF_ULONG) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuSimm)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(mbbiDirect) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_USHORT) {
+		prompt("Current Value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(NOBT,DBF_SHORT) {
+		prompt("Number of Bits")
+		promptgroup(GUI_MBB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("Prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SDEF,DBF_SHORT) {
+		prompt("States Defined")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SHFT,DBF_USHORT) {
+		prompt("Shift")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SVAL,DBF_ULONG) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuSimm)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(B0,DBF_UCHAR) {
+		prompt("Bit 0")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B1,DBF_UCHAR) {
+		prompt("Bit 1")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B2,DBF_UCHAR) {
+		prompt("Bit 2")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B3,DBF_UCHAR) {
+		prompt("Bit 3")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B4,DBF_UCHAR) {
+		prompt("Bit 4")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B5,DBF_UCHAR) {
+		prompt("Bit 5")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B6,DBF_UCHAR) {
+		prompt("Bit 6")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B7,DBF_UCHAR) {
+		prompt("Bit 7")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B8,DBF_UCHAR) {
+		prompt("Bit 8")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B9,DBF_UCHAR) {
+		prompt("Bit 9")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BA,DBF_UCHAR) {
+		prompt("Bit A")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BB,DBF_UCHAR) {
+		prompt("Bit B")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BC,DBF_UCHAR) {
+		prompt("Bit C")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BD,DBF_UCHAR) {
+		prompt("Bit D")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BE,DBF_UCHAR) {
+		prompt("Bit E")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BF,DBF_UCHAR) {
+		prompt("Bit F")
+		pp(TRUE)
+		interest(1)
+	}
+}
+recordtype(mbbo) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_ENUM) {
+		prompt("Desired Value")
+		promptgroup(GUI_OUTPUT)
+		special(SPC_DBADDR)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_MBB)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(NOBT,DBF_SHORT) {
+		prompt("Number of Bits")
+		promptgroup(GUI_MBB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(ZRVL,DBF_ULONG) {
+		prompt("Zero Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ONVL,DBF_ULONG) {
+		prompt("One Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TWVL,DBF_ULONG) {
+		prompt("Two Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(THVL,DBF_ULONG) {
+		prompt("Three Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FRVL,DBF_ULONG) {
+		prompt("Four Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FVVL,DBF_ULONG) {
+		prompt("Five Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(SXVL,DBF_ULONG) {
+		prompt("Six Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(SVVL,DBF_ULONG) {
+		prompt("Seven Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(EIVL,DBF_ULONG) {
+		prompt("Eight Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(NIVL,DBF_ULONG) {
+		prompt("Nine Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TEVL,DBF_ULONG) {
+		prompt("Ten Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ELVL,DBF_ULONG) {
+		prompt("Eleven Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TVVL,DBF_ULONG) {
+		prompt("Twelve Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TTVL,DBF_ULONG) {
+		prompt("Thirteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FTVL,DBF_ULONG) {
+		prompt("Fourteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FFVL,DBF_ULONG) {
+		prompt("Fifteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ZRST,DBF_STRING) {
+		prompt("Zero String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONST,DBF_STRING) {
+		prompt("One String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TWST,DBF_STRING) {
+		prompt("Two String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(THST,DBF_STRING) {
+		prompt("Three String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FRST,DBF_STRING) {
+		prompt("Four String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FVST,DBF_STRING) {
+		prompt("Five String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SXST,DBF_STRING) {
+		prompt("Six String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SVST,DBF_STRING) {
+		prompt("Seven String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EIST,DBF_STRING) {
+		prompt("Eight String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NIST,DBF_STRING) {
+		prompt("Nine String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TEST,DBF_STRING) {
+		prompt("Ten String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ELST,DBF_STRING) {
+		prompt("Eleven String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TVST,DBF_STRING) {
+		prompt("Twelve String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TTST,DBF_STRING) {
+		prompt("Thirteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FTST,DBF_STRING) {
+		prompt("Fourteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FFST,DBF_STRING) {
+		prompt("Fifteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ZRSV,DBF_MENU) {
+		prompt("State Zero Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONSV,DBF_MENU) {
+		prompt("State One Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TWSV,DBF_MENU) {
+		prompt("State Two Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(THSV,DBF_MENU) {
+		prompt("State Three Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FRSV,DBF_MENU) {
+		prompt("State Four Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FVSV,DBF_MENU) {
+		prompt("State Five Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SXSV,DBF_MENU) {
+		prompt("State Six Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SVSV,DBF_MENU) {
+		prompt("State Seven Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EISV,DBF_MENU) {
+		prompt("State Eight Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NISV,DBF_MENU) {
+		prompt("State Nine Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TESV,DBF_MENU) {
+		prompt("State Ten Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ELSV,DBF_MENU) {
+		prompt("State Eleven Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TVSV,DBF_MENU) {
+		prompt("State Twelve Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TTSV,DBF_MENU) {
+		prompt("State Thirteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FTSV,DBF_MENU) {
+		prompt("State Fourteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FFSV,DBF_MENU) {
+		prompt("State Fifteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(UNSV,DBF_MENU) {
+		prompt("Unknown State Sevr")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(COSV,DBF_MENU) {
+		prompt("Change of State Sevr")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("Prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RBV,DBF_ULONG) {
+		prompt("Readback Value")
+		special(SPC_NOMOD)
+	}
+	field(ORBV,DBF_ULONG) {
+		prompt("Prev Readback Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SDEF,DBF_SHORT) {
+		prompt("States Defined")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SHFT,DBF_USHORT) {
+		prompt("Shift")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID outpt action")
+		promptgroup(GUI_MBB)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_USHORT) {
+		prompt("INVALID output value")
+		promptgroup(GUI_MBB)
+		interest(2)
+	}
+}
+recordtype(mbboDirect) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_USHORT) {
+		prompt("Word")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_MBB)
+		special(101)
+		menu(menuOmsl)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NOBT,DBF_SHORT) {
+		prompt("Number of Bits")
+		promptgroup(GUI_MBB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(B0,DBF_UCHAR) {
+		prompt("Bit 0")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B1,DBF_UCHAR) {
+		prompt("Bit 1")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B2,DBF_UCHAR) {
+		prompt("Bit 2")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B3,DBF_UCHAR) {
+		prompt("Bit 3")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B4,DBF_UCHAR) {
+		prompt("Bit 4")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B5,DBF_UCHAR) {
+		prompt("Bit 5")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B6,DBF_UCHAR) {
+		prompt("Bit 6")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B7,DBF_UCHAR) {
+		prompt("Bit 7")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B8,DBF_UCHAR) {
+		prompt("Bit 8")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B9,DBF_UCHAR) {
+		prompt("Bit 9")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BA,DBF_UCHAR) {
+		prompt("Bit 10")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BB,DBF_UCHAR) {
+		prompt("Bit 11")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BC,DBF_UCHAR) {
+		prompt("Bit 12")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BD,DBF_UCHAR) {
+		prompt("Bit 13")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BE,DBF_UCHAR) {
+		prompt("Bit 14")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BF,DBF_UCHAR) {
+		prompt("Bit 15")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		special(SPC_NOMOD)
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("Prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RBV,DBF_ULONG) {
+		prompt("Readback Value")
+		special(SPC_NOMOD)
+	}
+	field(ORBV,DBF_ULONG) {
+		prompt("Prev Readback Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(MLST,DBF_ULONG) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_ULONG) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SHFT,DBF_ULONG) {
+		prompt("Shift")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID outpt action")
+		promptgroup(GUI_MBB)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_USHORT) {
+		prompt("INVALID output value")
+		promptgroup(GUI_MBB)
+		interest(2)
+	}
+}
+recordtype(permissive) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LABL,DBF_STRING) {
+		prompt("Button Label")
+		promptgroup(GUI_DISPLAY)
+		size(20)
+		pp(TRUE)
+		interest(1)
+	}
+	field(VAL,DBF_USHORT) {
+		prompt("Status")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_USHORT) {
+		prompt("Old Status")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(WFLG,DBF_USHORT) {
+		prompt("Wait Flag")
+		pp(TRUE)
+	}
+	field(OFLG,DBF_USHORT) {
+		prompt("Old Flag")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(sel) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Result")
+		special(SPC_NOMOD)
+		asl(ASL0)
+	}
+	field(SELM,DBF_MENU) {
+		prompt("Select Mechanism")
+		promptgroup(GUI_INPUTS)
+		menu(selSELM)
+	}
+	field(SELN,DBF_USHORT) {
+		prompt("Index value")
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(NVL,DBF_INLINK) {
+		prompt("Index Value Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input A")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input B")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input C")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input D")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input E")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input F")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input G")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input H")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input I")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input J")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input K")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input L")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Rng")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(A,DBF_DOUBLE) {
+		prompt("Value of Input A")
+		pp(TRUE)
+	}
+	field(B,DBF_DOUBLE) {
+		prompt("Value of Input B")
+		pp(TRUE)
+	}
+	field(C,DBF_DOUBLE) {
+		prompt("Value of Input C")
+		pp(TRUE)
+	}
+	field(D,DBF_DOUBLE) {
+		prompt("Value of Input D")
+		pp(TRUE)
+	}
+	field(E,DBF_DOUBLE) {
+		prompt("Value of Input E")
+		pp(TRUE)
+	}
+	field(F,DBF_DOUBLE) {
+		prompt("Value of Input F")
+		pp(TRUE)
+	}
+	field(G,DBF_DOUBLE) {
+		prompt("Value of Input G")
+		pp(TRUE)
+	}
+	field(H,DBF_DOUBLE) {
+		prompt("Value of Input H")
+		pp(TRUE)
+	}
+	field(I,DBF_DOUBLE) {
+		prompt("Value of Input I")
+		pp(TRUE)
+	}
+	field(J,DBF_DOUBLE) {
+		prompt("Value of Input J")
+		pp(TRUE)
+	}
+	field(K,DBF_DOUBLE) {
+		prompt("Value of Input K")
+		pp(TRUE)
+	}
+	field(L,DBF_DOUBLE) {
+		prompt("Value of Input L")
+		pp(TRUE)
+	}
+	field(LA,DBF_DOUBLE) {
+		prompt("Prev Value of A")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LB,DBF_DOUBLE) {
+		prompt("Prev Value of B")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LC,DBF_DOUBLE) {
+		prompt("Prev Value of C")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LD,DBF_DOUBLE) {
+		prompt("Prev Value of D")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LE,DBF_DOUBLE) {
+		prompt("Prev Value of E")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LF,DBF_DOUBLE) {
+		prompt("Prev Value of F")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LG,DBF_DOUBLE) {
+		prompt("Prev Value of G")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LH,DBF_DOUBLE) {
+		prompt("Prev Value of H")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LI,DBF_DOUBLE) {
+		prompt("Prev Value of I")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LJ,DBF_DOUBLE) {
+		prompt("Prev Value of J")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LK,DBF_DOUBLE) {
+		prompt("Prev Value of K")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LL,DBF_DOUBLE) {
+		prompt("Prev Value of L")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NLST,DBF_USHORT) {
+		prompt("Last Index Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(seq) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Used to trigger")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(SELM,DBF_MENU) {
+		prompt("Select Mechanism")
+		promptgroup(GUI_INPUTS)
+		menu(seqSELM)
+		interest(1)
+	}
+	field(SELN,DBF_USHORT) {
+		prompt("Link Selection")
+		initial("1")
+		interest(1)
+	}
+	field(SELL,DBF_INLINK) {
+		prompt("Link Selection Loc")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(DLY1,DBF_DOUBLE) {
+		prompt("Delay 1")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DOL1,DBF_INLINK) {
+		prompt("Input link1")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DO1,DBF_DOUBLE) {
+		prompt("Constant input 1")
+		interest(1)
+	}
+	field(LNK1,DBF_OUTLINK) {
+		prompt("Output Link 1")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DLY2,DBF_DOUBLE) {
+		prompt("Delay 2")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DOL2,DBF_INLINK) {
+		prompt("Input link 2")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DO2,DBF_DOUBLE) {
+		prompt("Constant input 2")
+		interest(1)
+	}
+	field(LNK2,DBF_OUTLINK) {
+		prompt("Output Link 2")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DLY3,DBF_DOUBLE) {
+		prompt("Delay 3")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DOL3,DBF_INLINK) {
+		prompt("Input link 3")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DO3,DBF_DOUBLE) {
+		prompt("Constant input 3")
+		interest(1)
+	}
+	field(LNK3,DBF_OUTLINK) {
+		prompt("Output Link 3")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DLY4,DBF_DOUBLE) {
+		prompt("Delay 4")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DOL4,DBF_INLINK) {
+		prompt("Input link 4")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DO4,DBF_DOUBLE) {
+		prompt("Constant input 4")
+		interest(1)
+	}
+	field(LNK4,DBF_OUTLINK) {
+		prompt("Output Link 4")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DLY5,DBF_DOUBLE) {
+		prompt("Delay 5")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DOL5,DBF_INLINK) {
+		prompt("Input link 5")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DO5,DBF_DOUBLE) {
+		prompt("Constant input 5")
+		interest(1)
+	}
+	field(LNK5,DBF_OUTLINK) {
+		prompt("Output Link 5")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DLY6,DBF_DOUBLE) {
+		prompt("Delay 6")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DOL6,DBF_INLINK) {
+		prompt("Input link 6")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DO6,DBF_DOUBLE) {
+		prompt("Constant input 6")
+		interest(1)
+	}
+	field(LNK6,DBF_OUTLINK) {
+		prompt("Output Link 6")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DLY7,DBF_DOUBLE) {
+		prompt("Delay 7")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOL7,DBF_INLINK) {
+		prompt("Input link 7")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DO7,DBF_DOUBLE) {
+		prompt("Constant input 7")
+		interest(1)
+	}
+	field(LNK7,DBF_OUTLINK) {
+		prompt("Output Link 7")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DLY8,DBF_DOUBLE) {
+		prompt("Delay 8")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOL8,DBF_INLINK) {
+		prompt("Input link 8")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DO8,DBF_DOUBLE) {
+		prompt("Constant input 8")
+		interest(1)
+	}
+	field(LNK8,DBF_OUTLINK) {
+		prompt("Output Link 8")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DLY9,DBF_DOUBLE) {
+		prompt("Delay 9")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOL9,DBF_INLINK) {
+		prompt("Input link 9")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DO9,DBF_DOUBLE) {
+		prompt("Constant input 9")
+		interest(1)
+	}
+	field(LNK9,DBF_OUTLINK) {
+		prompt("Output Link 9")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DLYA,DBF_DOUBLE) {
+		prompt("Delay 10")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOLA,DBF_INLINK) {
+		prompt("Input link 10")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOA,DBF_DOUBLE) {
+		prompt("Constant input 10")
+		interest(1)
+	}
+	field(LNKA,DBF_OUTLINK) {
+		prompt("Output Link 10")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+}
+recordtype(state) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_STRING) {
+		prompt("Value")
+		promptgroup(GUI_DISPLAY)
+		size(20)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_STRING) {
+		prompt("Prev Value")
+		special(SPC_NOMOD)
+		size(20)
+		interest(3)
+	}
+}
+recordtype(stringin) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_STRING) {
+		prompt("Current Value")
+		promptgroup(GUI_INPUTS)
+		size(40)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_STRING) {
+		prompt("Previous Value")
+		special(SPC_NOMOD)
+		size(40)
+		interest(3)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(MPST,DBF_MENU) {
+		prompt("Post Value Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(stringinPOST)
+		interest(1)
+	}
+	field(APST,DBF_MENU) {
+		prompt("Post Archive Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(stringinPOST)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_STRING) {
+		prompt("Simulation Value")
+		size(40)
+		pp(TRUE)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(stringout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_STRING) {
+		prompt("Current Value")
+		promptgroup(GUI_OUTPUT)
+		size(40)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_STRING) {
+		prompt("Previous Value")
+		special(SPC_NOMOD)
+		size(40)
+		interest(3)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(MPST,DBF_MENU) {
+		prompt("Post Value Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(stringoutPOST)
+		interest(1)
+	}
+	field(APST,DBF_MENU) {
+		prompt("Post Archive Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(stringoutPOST)
+		interest(1)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID output action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_STRING) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		size(40)
+		interest(2)
+	}
+}
+recordtype(sub) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Result")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(INAM,DBF_STRING) {
+		prompt("Init Routine Name")
+		promptgroup(GUI_SUB)
+		special(SPC_NOMOD)
+		size(40)
+		interest(1)
+	}
+	field(SNAM,DBF_STRING) {
+		prompt("Subroutine Name")
+		promptgroup(GUI_SUB)
+		special(100)
+		size(40)
+		interest(1)
+	}
+	field(SADR,DBF_NOACCESS) {
+		prompt("Subroutine Address")
+		special(SPC_NOMOD)
+		extra("SUBFUNCPTR sadr")
+		interest(4)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input A")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input B")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input C")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input D")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input E")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input F")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input G")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input H")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input I")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input J")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input K")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input L")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Rng")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(BRSV,DBF_MENU) {
+		prompt("Bad Return Severity")
+		promptgroup(GUI_SUB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(A,DBF_DOUBLE) {
+		prompt("Value of Input A")
+		pp(TRUE)
+	}
+	field(B,DBF_DOUBLE) {
+		prompt("Value of Input B")
+		pp(TRUE)
+	}
+	field(C,DBF_DOUBLE) {
+		prompt("Value of Input C")
+		pp(TRUE)
+	}
+	field(D,DBF_DOUBLE) {
+		prompt("Value of Input D")
+		pp(TRUE)
+	}
+	field(E,DBF_DOUBLE) {
+		prompt("Value of Input E")
+		pp(TRUE)
+	}
+	field(F,DBF_DOUBLE) {
+		prompt("Value of Input F")
+		pp(TRUE)
+	}
+	field(G,DBF_DOUBLE) {
+		prompt("Value of Input G")
+		pp(TRUE)
+	}
+	field(H,DBF_DOUBLE) {
+		prompt("Value of Input H")
+		pp(TRUE)
+	}
+	field(I,DBF_DOUBLE) {
+		prompt("Value of Input I")
+		pp(TRUE)
+	}
+	field(J,DBF_DOUBLE) {
+		prompt("Value of Input J")
+		pp(TRUE)
+	}
+	field(K,DBF_DOUBLE) {
+		prompt("Value of Input K")
+		pp(TRUE)
+	}
+	field(L,DBF_DOUBLE) {
+		prompt("Value of Input L")
+		pp(TRUE)
+	}
+	field(LA,DBF_DOUBLE) {
+		prompt("Prev Value of A")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LB,DBF_DOUBLE) {
+		prompt("Prev Value of B")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LC,DBF_DOUBLE) {
+		prompt("Prev Value of C")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LD,DBF_DOUBLE) {
+		prompt("Prev Value of D")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LE,DBF_DOUBLE) {
+		prompt("Prev Value of E")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LF,DBF_DOUBLE) {
+		prompt("Prev Value of F")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LG,DBF_DOUBLE) {
+		prompt("Prev Value of G")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LH,DBF_DOUBLE) {
+		prompt("Prev Value of H")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LI,DBF_DOUBLE) {
+		prompt("Prev Value of I")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LJ,DBF_DOUBLE) {
+		prompt("Prev Value of J")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LK,DBF_DOUBLE) {
+		prompt("Prev Value of K")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LL,DBF_DOUBLE) {
+		prompt("Prev Value of L")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(subArray) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_NOACCESS) {
+		prompt("Value")
+		special(SPC_DBADDR)
+		extra("void *		val")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_COMMON)
+		interest(1)
+	}
+	field(FTVL,DBF_MENU) {
+		prompt("Field Type of Value")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_BITS1)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Engineering Units Name")
+		promptgroup(GUI_BITS2)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_CLOCK)
+		interest(1)
+	}
+	field(MALM,DBF_ULONG) {
+		prompt("Maximum Elements  ")
+		initial("1")
+		promptgroup(GUI_CLOCK)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NELM,DBF_ULONG) {
+		prompt("Number of Elements")
+		initial("1")
+		promptgroup(GUI_COMPRESS)
+		pp(TRUE)
+	}
+	field(INDX,DBF_ULONG) {
+		prompt("Substring Index")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+	}
+	field(BUSY,DBF_SHORT) {
+		prompt("Busy Indicator")
+		special(SPC_NOMOD)
+	}
+	field(NORD,DBF_LONG) {
+		prompt("Number elements read")
+		special(SPC_NOMOD)
+	}
+	field(BPTR,DBF_NOACCESS) {
+		prompt("Buffer Pointer")
+		special(SPC_NOMOD)
+		extra("void *		bptr")
+		interest(4)
+	}
+}
+recordtype(waveform) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_NOACCESS) {
+		prompt("Value")
+		special(SPC_DBADDR)
+		extra("void *		val")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(RARM,DBF_SHORT) {
+		prompt("Rearm the waveform")
+		promptgroup(GUI_WAVE)
+		pp(TRUE)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Engineering Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(NELM,DBF_ULONG) {
+		prompt("Number of Elements")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(FTVL,DBF_MENU) {
+		prompt("Field Type of Value")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(BUSY,DBF_SHORT) {
+		prompt("Busy Indicator")
+		special(SPC_NOMOD)
+	}
+	field(NORD,DBF_ULONG) {
+		prompt("Number elements read")
+		special(SPC_NOMOD)
+	}
+	field(BPTR,DBF_NOACCESS) {
+		prompt("Buffer Pointer")
+		special(SPC_NOMOD)
+		extra("void *		bptr")
+		interest(4)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(MPST,DBF_MENU) {
+		prompt("Post Value Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(waveformPOST)
+		interest(1)
+	}
+	field(APST,DBF_MENU) {
+		prompt("Post Archive Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(waveformPOST)
+		interest(1)
+	}
+	field(HASH,DBF_ULONG) {
+		prompt("Hash of OnChange data.")
+		interest(3)
+	}
+}
+recordtype(asyn) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_STRING) {
+		prompt("Value field (unused)")
+		promptgroup(GUI_INPUTS)
+		size(40)
+		asl(ASL0)
+	}
+	field(PORT,DBF_STRING) {
+		prompt("asyn port")
+		initial("")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+		interest(1)
+	}
+	field(ADDR,DBF_LONG) {
+		prompt("asyn address")
+		initial("0")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		interest(1)
+	}
+	field(PCNCT,DBF_MENU) {
+		prompt("Port Connect/Disconnect")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynCONNECT)
+		interest(1)
+	}
+	field(DRVINFO,DBF_STRING) {
+		prompt("Driver info string")
+		initial("")
+		special(100)
+		size(40)
+	}
+	field(REASON,DBF_LONG) {
+		prompt("asynUser->reason")
+		special(100)
+	}
+	field(SOCK,DBF_STRING) {
+		prompt("socket address")
+		initial("")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+		interest(1)
+	}
+	field(TMOD,DBF_MENU) {
+		prompt("Transaction mode")
+		promptgroup(GUI_COMMON)
+		menu(asynTMOD)
+		interest(1)
+	}
+	field(TMOT,DBF_DOUBLE) {
+		prompt("Timeout (sec)")
+		initial("1.0")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(IFACE,DBF_MENU) {
+		prompt("Interface")
+		special(100)
+		menu(asynINTERFACE)
+	}
+	field(OCTETIV,DBF_LONG) {
+		prompt("asynOctet is valid")
+	}
+	field(OPTIONIV,DBF_LONG) {
+		prompt("asynOption is valid")
+	}
+	field(GPIBIV,DBF_LONG) {
+		prompt("asynGPIB is valid")
+	}
+	field(I32IV,DBF_LONG) {
+		prompt("asynInt32 is valid")
+	}
+	field(UI32IV,DBF_LONG) {
+		prompt("asynUInt32Digital is valid")
+	}
+	field(F64IV,DBF_LONG) {
+		prompt("asynFloat64 is valid")
+	}
+	field(AOUT,DBF_STRING) {
+		prompt("Output (command) string")
+		promptgroup(GUI_INPUTS)
+		size(40)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OEOS,DBF_STRING) {
+		prompt("Output delimiter")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+	}
+	field(BOUT,DBF_CHAR) {
+		prompt("Output binary data")
+		special(SPC_DBADDR)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OPTR,DBF_NOACCESS) {
+		prompt("Output buffer pointer")
+		special(SPC_NOMOD)
+		extra("void *optr")
+		interest(4)
+	}
+	field(OMAX,DBF_LONG) {
+		prompt("Max. size of output array")
+		initial("80")
+		promptgroup(GUI_DISPLAY)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOWT,DBF_LONG) {
+		prompt("Number of bytes to write")
+		initial("80")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(NAWT,DBF_LONG) {
+		prompt("Number of bytes actually written")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(OFMT,DBF_MENU) {
+		prompt("Output format")
+		promptgroup(GUI_COMMON)
+		menu(asynFMT)
+		interest(1)
+	}
+	field(AINP,DBF_STRING) {
+		prompt("Input (response) string")
+		promptgroup(GUI_INPUTS)
+		special(SPC_NOMOD)
+		size(40)
+		asl(ASL0)
+	}
+	field(TINP,DBF_STRING) {
+		prompt("Translated input string")
+		promptgroup(GUI_INPUTS)
+		special(SPC_NOMOD)
+		size(40)
+		asl(ASL0)
+	}
+	field(IEOS,DBF_STRING) {
+		prompt("Input Delimiter")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+	}
+	field(BINP,DBF_CHAR) {
+		prompt("Input binary data")
+		special(SPC_DBADDR)
+		asl(ASL0)
+	}
+	field(IPTR,DBF_NOACCESS) {
+		prompt("Input buffer pointer")
+		special(SPC_NOMOD)
+		extra("void *iptr")
+		interest(4)
+	}
+	field(IMAX,DBF_LONG) {
+		prompt("Max. size of input array")
+		initial("80")
+		promptgroup(GUI_DISPLAY)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NRRD,DBF_LONG) {
+		prompt("Number of bytes to read")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(NORD,DBF_LONG) {
+		prompt("Number of bytes read")
+		promptgroup(GUI_DISPLAY)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(IFMT,DBF_MENU) {
+		prompt("Input format")
+		promptgroup(GUI_COMMON)
+		menu(asynFMT)
+		interest(1)
+	}
+	field(EOMR,DBF_MENU) {
+		prompt("EOM reason")
+		promptgroup(GUI_DISPLAY)
+		special(SPC_NOMOD)
+		menu(asynEOMREASON)
+		interest(1)
+	}
+	field(I32INP,DBF_LONG) {
+		prompt("asynInt32 input")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(I32OUT,DBF_LONG) {
+		prompt("asynInt32 output")
+		pp(TRUE)
+		interest(1)
+	}
+	field(UI32INP,DBF_ULONG) {
+		prompt("asynUInt32Digital input")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(UI32OUT,DBF_ULONG) {
+		prompt("asynUInt32Digital output")
+		pp(TRUE)
+		interest(1)
+	}
+	field(UI32MASK,DBF_ULONG) {
+		prompt("asynUInt32Digital mask")
+		initial("0xffffffff")
+		special(100)
+	}
+	field(F64INP,DBF_DOUBLE) {
+		prompt("asynFloat64 input")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(F64OUT,DBF_DOUBLE) {
+		prompt("asynFloat64 output")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BAUD,DBF_MENU) {
+		prompt("Baud rate")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialBAUD)
+	}
+	field(PRTY,DBF_MENU) {
+		prompt("Parity")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialPRTY)
+	}
+	field(DBIT,DBF_MENU) {
+		prompt("Data bits")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialDBIT)
+	}
+	field(SBIT,DBF_MENU) {
+		prompt("Stop bits")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialSBIT)
+	}
+	field(MCTL,DBF_MENU) {
+		prompt("Modem control")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialMCTL)
+	}
+	field(FCTL,DBF_MENU) {
+		prompt("Flow control")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialFCTL)
+	}
+	field(UCMD,DBF_MENU) {
+		prompt("Universal command")
+		promptgroup(GUI_COMMON)
+		menu(gpibUCMD)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ACMD,DBF_MENU) {
+		prompt("Addressed command")
+		promptgroup(GUI_COMMON)
+		menu(gpibACMD)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SPR,DBF_UCHAR) {
+		prompt("Serial poll response")
+		promptgroup(GUI_INPUTS)
+		special(SPC_NOMOD)
+		asl(ASL0)
+	}
+	field(TMSK,DBF_LONG) {
+		prompt("Trace mask")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		interest(1)
+	}
+	field(TB0,DBF_MENU) {
+		prompt("Trace error")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TB1,DBF_MENU) {
+		prompt("Trace IO device")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TB2,DBF_MENU) {
+		prompt("Trace IO filter")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TB3,DBF_MENU) {
+		prompt("Trace IO driver")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TB4,DBF_MENU) {
+		prompt("Trace flow")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TIOM,DBF_LONG) {
+		prompt("Trace I/O mask")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		interest(1)
+	}
+	field(TIB0,DBF_MENU) {
+		prompt("Trace IO ASCII")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TIB1,DBF_MENU) {
+		prompt("Trace IO escape")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TIB2,DBF_MENU) {
+		prompt("Trace IO hex")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TSIZ,DBF_LONG) {
+		prompt("Trace IO truncate size")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		interest(1)
+	}
+	field(TFIL,DBF_STRING) {
+		prompt("Trace IO file")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+		interest(1)
+	}
+	field(AUCT,DBF_MENU) {
+		prompt("Autoconnect")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynAUTOCONNECT)
+		interest(1)
+	}
+	field(CNCT,DBF_MENU) {
+		prompt("Connect/Disconnect")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynCONNECT)
+		interest(1)
+	}
+	field(ENBL,DBF_MENU) {
+		prompt("Enable/Disable")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynENABLE)
+		interest(1)
+	}
+	field(ERRS,DBF_NOACCESS) {
+		prompt("Error string")
+		special(SPC_DBADDR)
+		extra("char *errs")
+		interest(1)
+	}
+	field(AQR,DBF_UCHAR) {
+		prompt("Abort queueRequest")
+		special(100)
+	}
+}
+device(ai,CONSTANT,devAiSoft,"Soft Channel")
+device(ai,CONSTANT,devAiSoftRaw,"Raw Soft Channel")
+device(ai,INST_IO,devTimestampAI,"Soft Timestamp")
+device(ai,INST_IO,devAiGeneralTime,"General Time")
+device(ai,INST_IO,asynAiInt32,"asynInt32")
+device(ai,INST_IO,asynAiInt32Average,"asynInt32Average")
+device(ai,INST_IO,asynAiFloat64,"asynFloat64")
+device(ai,INST_IO,asynAiFloat64Average,"asynFloat64Average")
+device(ai,INST_IO,devaiStream,"stream")
+device(ao,CONSTANT,devAoSoft,"Soft Channel")
+device(ao,CONSTANT,devAoSoftRaw,"Raw Soft Channel")
+device(ao,CONSTANT,devAoSoftCallback,"Async Soft Channel")
+device(ao,INST_IO,asynAoInt32,"asynInt32")
+device(ao,INST_IO,asynAoFloat64,"asynFloat64")
+device(ao,INST_IO,devaoStream,"stream")
+device(bi,CONSTANT,devBiSoft,"Soft Channel")
+device(bi,CONSTANT,devBiSoftRaw,"Raw Soft Channel")
+device(bi,INST_IO,asynBiInt32,"asynInt32")
+device(bi,INST_IO,asynBiUInt32Digital,"asynUInt32Digital")
+device(bi,INST_IO,devbiStream,"stream")
+device(bo,CONSTANT,devBoSoft,"Soft Channel")
+device(bo,CONSTANT,devBoSoftRaw,"Raw Soft Channel")
+device(bo,CONSTANT,devBoSoftCallback,"Async Soft Channel")
+device(bo,INST_IO,devBoGeneralTime,"General Time")
+device(bo,INST_IO,asynBoInt32,"asynInt32")
+device(bo,INST_IO,asynBoUInt32Digital,"asynUInt32Digital")
+device(bo,INST_IO,devboStream,"stream")
+device(calcout,CONSTANT,devCalcoutSoft,"Soft Channel")
+device(calcout,CONSTANT,devCalcoutSoftCallback,"Async Soft Channel")
+device(calcout,INST_IO,devcalcoutStream,"stream")
+device(event,CONSTANT,devEventSoft,"Soft Channel")
+device(histogram,CONSTANT,devHistogramSoft,"Soft Channel")
+device(longin,CONSTANT,devLiSoft,"Soft Channel")
+device(longin,INST_IO,devLiGeneralTime,"General Time")
+device(longin,INST_IO,asynLiInt32,"asynInt32")
+device(longin,INST_IO,asynLiUInt32Digital,"asynUInt32Digital")
+device(longin,INST_IO,devlonginStream,"stream")
+device(longout,CONSTANT,devLoSoft,"Soft Channel")
+device(longout,CONSTANT,devLoSoftCallback,"Async Soft Channel")
+device(longout,INST_IO,asynLoInt32,"asynInt32")
+device(longout,INST_IO,asynLoUInt32Digital,"asynUInt32Digital")
+device(longout,INST_IO,devlongoutStream,"stream")
+device(mbbi,CONSTANT,devMbbiSoft,"Soft Channel")
+device(mbbi,CONSTANT,devMbbiSoftRaw,"Raw Soft Channel")
+device(mbbi,INST_IO,asynMbbiInt32,"asynInt32")
+device(mbbi,INST_IO,asynMbbiUInt32Digital,"asynUInt32Digital")
+device(mbbi,INST_IO,devmbbiStream,"stream")
+device(mbbiDirect,CONSTANT,devMbbiDirectSoft,"Soft Channel")
+device(mbbiDirect,CONSTANT,devMbbiDirectSoftRaw,"Raw Soft Channel")
+device(mbbiDirect,INST_IO,asynMbbiDirectUInt32Digital,"asynUInt32Digital")
+device(mbbiDirect,INST_IO,devmbbiDirectStream,"stream")
+device(mbbo,CONSTANT,devMbboSoft,"Soft Channel")
+device(mbbo,CONSTANT,devMbboSoftRaw,"Raw Soft Channel")
+device(mbbo,CONSTANT,devMbboSoftCallback,"Async Soft Channel")
+device(mbbo,INST_IO,asynMbboInt32,"asynInt32")
+device(mbbo,INST_IO,asynMbboUInt32Digital,"asynUInt32Digital")
+device(mbbo,INST_IO,devmbboStream,"stream")
+device(mbboDirect,CONSTANT,devMbboDirectSoft,"Soft Channel")
+device(mbboDirect,CONSTANT,devMbboDirectSoftRaw,"Raw Soft Channel")
+device(mbboDirect,CONSTANT,devMbboDirectSoftCallback,"Async Soft Channel")
+device(mbboDirect,INST_IO,asynMbboDirectUInt32Digital,"asynUInt32Digital")
+device(mbboDirect,INST_IO,devmbboDirectStream,"stream")
+device(stringin,CONSTANT,devSiSoft,"Soft Channel")
+device(stringin,INST_IO,devTimestampSI,"Soft Timestamp")
+device(stringin,INST_IO,devSiGeneralTime,"General Time")
+device(stringin,INST_IO,asynSiOctetCmdResponse,"asynOctetCmdResponse")
+device(stringin,INST_IO,asynSiOctetWriteRead,"asynOctetWriteRead")
+device(stringin,INST_IO,asynSiOctetRead,"asynOctetRead")
+device(stringin,INST_IO,devstringinStream,"stream")
+device(stringout,CONSTANT,devSoSoft,"Soft Channel")
+device(stringout,CONSTANT,devSoSoftCallback,"Async Soft Channel")
+device(stringout,INST_IO,devSoStdio,"stdio")
+device(stringout,INST_IO,asynSoOctetWrite,"asynOctetWrite")
+device(stringout,INST_IO,devstringoutStream,"stream")
+device(subArray,CONSTANT,devSASoft,"Soft Channel")
+device(waveform,CONSTANT,devWfSoft,"Soft Channel")
+device(waveform,INST_IO,asynWfOctetCmdResponse,"asynOctetCmdResponse")
+device(waveform,INST_IO,asynWfOctetWriteRead,"asynOctetWriteRead")
+device(waveform,INST_IO,asynWfOctetRead,"asynOctetRead")
+device(waveform,INST_IO,asynWfOctetWrite,"asynOctetWrite")
+device(waveform,INST_IO,asynInt8ArrayWfIn,"asynInt8ArrayIn")
+device(waveform,INST_IO,asynInt8ArrayWfOut,"asynInt8ArrayOut")
+device(waveform,INST_IO,asynInt16ArrayWfIn,"asynInt16ArrayIn")
+device(waveform,INST_IO,asynInt16ArrayWfOut,"asynInt16ArrayOut")
+device(waveform,INST_IO,asynInt32ArrayWfIn,"asynInt32ArrayIn")
+device(waveform,INST_IO,asynInt32ArrayWfOut,"asynInt32ArrayOut")
+device(waveform,INST_IO,asynFloat32ArrayWfIn,"asynFloat32ArrayIn")
+device(waveform,INST_IO,asynFloat32ArrayWfOut,"asynFloat32ArrayOut")
+device(waveform,INST_IO,asynFloat64ArrayWfIn,"asynFloat64ArrayIn")
+device(waveform,INST_IO,asynFloat64ArrayWfOut,"asynFloat64ArrayOut")
+device(waveform,INST_IO,devwaveformStream,"stream")
+device(asyn,INST_IO,asynRecordDevice,"asynRecordDevice")
+driver(drvAsyn)
+driver(stream)
+registrar(asSub)
+registrar(drvAsynIPPortRegisterCommands)
+registrar(drvAsynIPServerPortRegisterCommands)
+registrar(asynRegister)
+registrar(asynInterposeFlushRegister)
+registrar(asynInterposeEosRegister)
+registrar(iocshSystemCommand)
+registrar(streamRegistrar)
+variable(asCaDebug,int)
+variable(dbRecordsOnceOnly,int)
+variable(dbBptNotMonotonic,int)
+variable(streamDebug,int)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/iocBoot/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,6 @@
+TOP = ..
+include $(TOP)/configure/CONFIG
+DIRS += $(wildcard *ioc*)
+DIRS += $(wildcard as*)
+include $(CONFIG)/RULES_DIRS
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/iocBoot/ioctv301sf/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,5 @@
+TOP = ../..
+include $(TOP)/configure/CONFIG
+ARCH = linux-x86_64
+TARGETS = envPaths
+include $(TOP)/configure/RULES.ioc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/iocBoot/ioctv301sf/envPaths	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,7 @@
+epicsEnvSet("ARCH","linux-x86_64")
+epicsEnvSet("IOC","ioctv301sf")
+epicsEnvSet("TOP","/home/epics/hoppe/FHIFEL_IOCs/tv301sf")
+epicsEnvSet("MODULES","/opt/epics/modules")
+epicsEnvSet("STREAM","/opt/epics/modules/stream/2-4-1")
+epicsEnvSet("ASYN","/usr/lib/epics")
+epicsEnvSet("EPICS_BASE","/usr/lib/epics")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/iocBoot/ioctv301sf/st.cmd	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,35 @@
+#!../../bin/linux-x86_64/tv301sf
+
+## You may have to change tv301sf to something else
+## everywhere it appears in this file
+
+#< envPaths
+
+epicsEnvSet ("STREAM_PROTOCOL_PATH", "../../db")
+
+## Register all support components
+dbLoadDatabase("../../dbd/tv301sf.dbd",0,0)
+tv301sf_registerRecordDeviceDriver(pdbbase) 
+
+# NP6450-4_3711 (Halle EG) MIR and Test
+drvAsynIPPortConfigure ("MIR","10.0.0.208:4002")
+drvAsynIPPortConfigure ("TEST","10.0.0.208:4003")
+# NPort5650-8-DT_3524 (Diagnose) Chamber and User
+drvAsynIPPortConfigure ("CHAMBER","10.0.0.205:4005")
+drvAsynIPPortConfigure ("USER","10.0.0.205:4006")
+
+asynSetTraceMask("TEST", -1, 0x9)
+asynSetTraceIOMask("TEST",-1,0x2)
+
+## Load record instances
+dbLoadRecords("../../db/tv301sf.db","P=FHIFEL:,R=TV301SF1:,BUS=MIR")
+dbLoadRecords("../../db/tv301sf.db","P=FHIFEL:,R=TV301SF2:,BUS=CHAMBER")
+dbLoadRecords("../../db/tv301sf.db","P=FHIFEL:,R=TV301SF3:,BUS=USER")
+dbLoadRecords("../../db/tv301sf.db","P=FHIFEL:,R=TV301SF4:,BUS=TEST")
+
+epicsEnvSet ("streamDebug","1") 
+
+iocInit()
+
+## Start any sequence programs
+#seq snctv301sf,"user=epics"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/Db/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,22 @@
+TOP=../..
+include $(TOP)/configure/CONFIG
+#----------------------------------------
+#  ADD MACRO DEFINITIONS AFTER THIS LINE
+
+#----------------------------------------------------
+#  Optimization of db files using dbst (DEFAULT: NO)
+#DB_OPT = YES
+
+#----------------------------------------------------
+# Create and install (or just install) into <top>/db
+# databases, templates, substitutions like this
+#DB += xxx.db
+
+#----------------------------------------------------
+# If <anyname>.db template is not named <anyname>*.template add
+# <anyname>_template = <templatename>
+
+include $(TOP)/configure/RULES
+#----------------------------------------
+#  ADD RULES AFTER THIS LINE
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/Db/O.linux-x86_64/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,10 @@
+#This Makefile created by makeMakefile.pl
+
+
+all :
+	$(MAKE) -f ../Makefile TOP=../../.. T_A=linux-x86_64  $@
+
+.DEFAULT: force
+	$(MAKE) -f ../Makefile TOP=../../.. T_A=linux-x86_64  $@
+
+force:  ;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,8 @@
+TOP = ..
+include $(TOP)/configure/CONFIG
+DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *src*))
+DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Src*))
+DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *db*))
+DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Db*))
+include $(TOP)/configure/RULES_DIRS
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,48 @@
+TOP=../..
+
+include $(TOP)/configure/CONFIG
+#----------------------------------------
+#  ADD MACRO DEFINITIONS AFTER THIS LINE
+#=============================
+
+#=============================
+# Build the IOC application
+
+PROD_IOC = tv301sf
+# tv301sf.dbd will be created and installed
+DBD += tv301sf.dbd
+
+# tv301sf.dbd will be made up from these files:
+tv301sf_DBD += base.dbd
+
+# Include dbd files from all support applications:
+#tv301sf_DBD += xxx.dbd
+#uh
+tv301sf_DBD += drvAsynIPPort.dbd
+tv301sf_DBD += iocshGlobalCommands.dbd
+tv301sf_DBD += stream.dbd
+
+# Add all the support libraries needed by this IOC
+#tv301sf_LIBS += xxx
+#uh
+tv301sf_LIBS += asyn
+tv301sf_LIBS += stream
+
+# tv301sf_registerRecordDeviceDriver.cpp derives from tv301sf.dbd
+tv301sf_SRCS += tv301sf_registerRecordDeviceDriver.cpp
+
+# Build the main IOC entry point on workstation OSs.
+tv301sf_SRCS_DEFAULT += tv301sfMain.cpp
+tv301sf_SRCS_vxWorks += -nil-
+
+# Add support from base/src/vxWorks if needed
+#tv301sf_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
+
+# Finally link to the EPICS Base libraries
+tv301sf_LIBS += $(EPICS_BASE_IOC_LIBS)
+
+#===========================
+
+include $(TOP)/configure/RULES
+#----------------------------------------
+#  ADD RULES AFTER THIS LINE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/O.Common/tv301sf.dbd	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,13989 @@
+menu(waveformPOST) {
+	choice(waveformPOST_Always,"Always")
+	choice(waveformPOST_OnChange,"On Change")
+}
+menu(stringoutPOST) {
+	choice(stringoutPOST_OnChange,"On Change")
+	choice(stringoutPOST_Always,"Always")
+}
+menu(stringinPOST) {
+	choice(stringinPOST_OnChange,"On Change")
+	choice(stringinPOST_Always,"Always")
+}
+menu(serialSBIT) {
+	choice(serialSBIT_unknown,"Unknown")
+	choice(serialSBIT_1,"1")
+	choice(serialSBIT_2,"2")
+}
+menu(serialPRTY) {
+	choice(serialPRTY_unknown,"Unknown")
+	choice(serialPRTY_None,"None")
+	choice(serialPRTY_Even,"Even")
+	choice(serialPRTY_Odd,"Odd")
+}
+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(serialDBIT) {
+	choice(serialDBIT_unknown,"Unknown")
+	choice(serialDBIT_5,"5")
+	choice(serialDBIT_6,"6")
+	choice(serialDBIT_7,"7")
+	choice(serialDBIT_8,"8")
+}
+menu(serialBAUD) {
+	choice(serialBAUD_unknown,"Unknown")
+	choice(serialBAUD_300,"300")
+	choice(serialBAUD_600,"600")
+	choice(serialBAUD_1200,"1200")
+	choice(serialBAUD_2400,"2400")
+	choice(serialBAUD_4800,"4800")
+	choice(serialBAUD_9600,"9600")
+	choice(serialBAUD_19200,"19200")
+	choice(serialBAUD_38400,"38400")
+	choice(serialBAUD_57600,"57600")
+	choice(serialBAUD_115200,"115200")
+	choice(serialBAUD_230400,"230400")
+}
+menu(seqSELM) {
+	choice(seqSELM_All,"All")
+	choice(seqSELM_Specified,"Specified")
+	choice(seqSELM_Mask,"Mask")
+}
+menu(selSELM) {
+	choice(selSELM_Specified,"Specified")
+	choice(selSELM_High_Signal,"High Signal")
+	choice(selSELM_Low_Signal,"Low Signal")
+	choice(selSELM_Median_Signal,"Median Signal")
+}
+menu(menuYesNo) {
+	choice(menuYesNoNO,"NO")
+	choice(menuYesNoYES,"YES")
+}
+menu(menuSimm) {
+	choice(menuSimmNO,"NO")
+	choice(menuSimmYES,"YES")
+	choice(menuSimmRAW,"RAW")
+}
+menu(menuScan) {
+	choice(menuScanPassive,"Passive")
+	choice(menuScanEvent,"Event")
+	choice(menuScanI_O_Intr,"I/O Intr")
+	choice(menuScan10_second,"10 second")
+	choice(menuScan5_second,"5 second")
+	choice(menuScan2_second,"2 second")
+	choice(menuScan1_second,"1 second")
+	choice(menuScan_5_second,".5 second")
+	choice(menuScan_2_second,".2 second")
+	choice(menuScan_1_second,".1 second")
+}
+menu(menuPriority) {
+	choice(menuPriorityLOW,"LOW")
+	choice(menuPriorityMEDIUM,"MEDIUM")
+	choice(menuPriorityHIGH,"HIGH")
+}
+menu(menuPini) {
+	choice(menuPiniNO,"NO")
+	choice(menuPiniYES,"YES")
+	choice(menuPiniRUN,"RUN")
+	choice(menuPiniRUNNING,"RUNNING")
+	choice(menuPiniPAUSE,"PAUSE")
+	choice(menuPiniPAUSED,"PAUSED")
+}
+menu(menuOmsl) {
+	choice(menuOmslsupervisory,"supervisory")
+	choice(menuOmslclosed_loop,"closed_loop")
+}
+menu(menuIvoa) {
+	choice(menuIvoaContinue_normally,"Continue normally")
+	choice(menuIvoaDon_t_drive_outputs,"Don't drive outputs")
+	choice(menuIvoaSet_output_to_IVOV,"Set output to IVOV")
+}
+menu(menuFtype) {
+	choice(menuFtypeSTRING,"STRING")
+	choice(menuFtypeCHAR,"CHAR")
+	choice(menuFtypeUCHAR,"UCHAR")
+	choice(menuFtypeSHORT,"SHORT")
+	choice(menuFtypeUSHORT,"USHORT")
+	choice(menuFtypeLONG,"LONG")
+	choice(menuFtypeULONG,"ULONG")
+	choice(menuFtypeFLOAT,"FLOAT")
+	choice(menuFtypeDOUBLE,"DOUBLE")
+	choice(menuFtypeENUM,"ENUM")
+}
+menu(menuConvert) {
+	choice(menuConvertNO_CONVERSION,"NO CONVERSION")
+	choice(menuConvertSLOPE,"SLOPE")
+	choice(menuConvertLINEAR,"LINEAR")
+	choice(menuConverttypeKdegF,"typeKdegF")
+	choice(menuConverttypeKdegC,"typeKdegC")
+	choice(menuConverttypeJdegF,"typeJdegF")
+	choice(menuConverttypeJdegC,"typeJdegC")
+	choice(menuConverttypeEdegF,"typeEdegF(ixe only)")
+	choice(menuConverttypeEdegC,"typeEdegC(ixe only)")
+	choice(menuConverttypeTdegF,"typeTdegF")
+	choice(menuConverttypeTdegC,"typeTdegC")
+	choice(menuConverttypeRdegF,"typeRdegF")
+	choice(menuConverttypeRdegC,"typeRdegC")
+	choice(menuConverttypeSdegF,"typeSdegF")
+	choice(menuConverttypeSdegC,"typeSdegC")
+}
+menu(menuCompress) {
+	choice(menuCompressN_to_1_First_Value,"N to 1 First Value")
+	choice(menuCompressN_to_1_Low_Value,"N to 1 Low Value")
+	choice(menuCompressN_to_1_High_Value,"N to 1 High Value")
+	choice(menuCompressN_to_1_Average,"N to 1 Average")
+}
+menu(menuAlarmStat) {
+	choice(menuAlarmStatNO_ALARM,"NO_ALARM")
+	choice(menuAlarmStatREAD,"READ")
+	choice(menuAlarmStatWRITE,"WRITE")
+	choice(menuAlarmStatHIHI,"HIHI")
+	choice(menuAlarmStatHIGH,"HIGH")
+	choice(menuAlarmStatLOLO,"LOLO")
+	choice(menuAlarmStatLOW,"LOW")
+	choice(menuAlarmStatSTATE,"STATE")
+	choice(menuAlarmStatCOS,"COS")
+	choice(menuAlarmStatCOMM,"COMM")
+	choice(menuAlarmStatTIMEOUT,"TIMEOUT")
+	choice(menuAlarmStatHWLIMIT,"HWLIMIT")
+	choice(menuAlarmStatCALC,"CALC")
+	choice(menuAlarmStatSCAN,"SCAN")
+	choice(menuAlarmStatLINK,"LINK")
+	choice(menuAlarmStatSOFT,"SOFT")
+	choice(menuAlarmStatBAD_SUB,"BAD_SUB")
+	choice(menuAlarmStatUDF,"UDF")
+	choice(menuAlarmStatDISABLE,"DISABLE")
+	choice(menuAlarmStatSIMM,"SIMM")
+	choice(menuAlarmStatREAD_ACCESS,"READ_ACCESS")
+	choice(menuAlarmStatWRITE_ACCESS,"WRITE_ACCESS")
+}
+menu(menuAlarmSevr) {
+	choice(menuAlarmSevrNO_ALARM,"NO_ALARM")
+	choice(menuAlarmSevrMINOR,"MINOR")
+	choice(menuAlarmSevrMAJOR,"MAJOR")
+	choice(menuAlarmSevrINVALID,"INVALID")
+}
+menu(histogramCMD) {
+	choice(histogramCMD_Read,"Read")
+	choice(histogramCMD_Clear,"Clear")
+	choice(histogramCMD_Start,"Start")
+	choice(histogramCMD_Stop,"Stop")
+}
+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(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(fanoutSELM) {
+	choice(fanoutSELM_All,"All")
+	choice(fanoutSELM_Specified,"Specified")
+	choice(fanoutSELM_Mask,"Mask")
+}
+menu(dfanoutSELM) {
+	choice(dfanoutSELM_All,"All")
+	choice(dfanoutSELM_Specified,"Specified")
+	choice(dfanoutSELM_Mask,"Mask")
+}
+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(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(calcoutINAV) {
+	choice(calcoutINAV_EXT_NC,"Ext PV NC")
+	choice(calcoutINAV_EXT,"Ext PV OK")
+	choice(calcoutINAV_LOC,"Local PV")
+	choice(calcoutINAV_CON,"Constant")
+}
+menu(calcoutDOPT) {
+	choice(calcoutDOPT_Use_VAL,"Use CALC")
+	choice(calcoutDOPT_Use_OVAL,"Use OCAL")
+}
+menu(asynTRACE) {
+	choice(asynTRACE_Off,"Off")
+	choice(asynTRACE_On,"On")
+}
+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(asynINTERFACE) {
+	choice(asynINTERFACE_OCTET,"asynOctet")
+	choice(asynINTERFACE_INT32,"asynInt32")
+	choice(asynINTERFACE_UINT32,"asynUInt32Digital")
+	choice(asynINTERFACE_FLOAT64,"asynFloat64")
+}
+menu(asynFMT) {
+	choice(asynFMT_ASCII,"ASCII")
+	choice(asynFMT_Hybrid,"Hybrid")
+	choice(asynFMT_Binary,"Binary")
+}
+menu(asynEOMREASON) {
+	choice(asynEOMREASONNone,"None")
+	choice(asynEOMREASONCNT,"Count")
+	choice(asynEOMREASONEOS,"Eos")
+	choice(asynEOMREASONCNTEOS,"Count Eos")
+	choice(asynEOMREASONEND,"End")
+	choice(asynEOMREASONCNTEND,"Count End")
+	choice(asynEOMREASONEOSEND,"Eos End")
+	choice(asynEOMREASONCNTEOSEND,"Count Eos End")
+}
+menu(asynENABLE) {
+	choice(asynENABLE_Disable,"Disable")
+	choice(asynENABLE_Enable,"Enable")
+}
+menu(asynCONNECT) {
+	choice(asynCONNECT_Disconnect,"Disconnect")
+	choice(asynCONNECT_Connect,"Connect")
+}
+menu(asynAUTOCONNECT) {
+	choice(asynAUTOCONNECT_noAutoConnect,"noAutoConnect")
+	choice(asynAUTOCONNECT_autoConnect,"autoConnect")
+}
+menu(aoOIF) {
+	choice(aoOIF_Full,"Full")
+	choice(aoOIF_Incremental,"Incremental")
+}
+menu(aSubLFLG) {
+	choice(aSubLFLG_IGNORE,"IGNORE")
+	choice(aSubLFLG_READ,"READ")
+}
+menu(aSubEFLG) {
+	choice(aSubEFLG_NEVER,"NEVER")
+	choice(aSubEFLG_ON_CHANGE,"ON CHANGE")
+	choice(aSubEFLG_ALWAYS,"ALWAYS")
+}
+recordtype(ai) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Current EGU Value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LINR,DBF_MENU) {
+		prompt("Linearization")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		menu(menuConvert)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGUF,DBF_DOUBLE) {
+		prompt("Engineer Units Full")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGUL,DBF_DOUBLE) {
+		prompt("Engineer Units Low")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Engineering Units")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(AOFF,DBF_DOUBLE) {
+		prompt("Adjustment Offset")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ASLO,DBF_DOUBLE) {
+		prompt("Adjustment Slope")
+		initial("1")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SMOO,DBF_DOUBLE) {
+		prompt("Smoothing")
+		promptgroup(GUI_CONVERT)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ESLO,DBF_DOUBLE) {
+		prompt("Raw to EGU Slope")
+		initial("1")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(2)
+	}
+	field(EOFF,DBF_DOUBLE) {
+		prompt("Raw to EGU Offset")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(2)
+	}
+	field(ROFF,DBF_LONG) {
+		prompt("Raw Offset, obsolete")
+		pp(TRUE)
+		interest(2)
+	}
+	field(PBRK,DBF_NOACCESS) {
+		prompt("Ptrto brkTable")
+		special(SPC_NOMOD)
+		extra("void *	pbrk")
+		interest(4)
+	}
+	field(INIT,DBF_SHORT) {
+		prompt("Initialized?")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LBRK,DBF_SHORT) {
+		prompt("LastBreak Point")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RVAL,DBF_LONG) {
+		prompt("Current Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_LONG) {
+		prompt("Previous Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_DOUBLE) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuSimm)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(ao) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Desired Output")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_DOUBLE) {
+		prompt("Output Value")
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OROC,DBF_DOUBLE) {
+		prompt("Output Rate of Chang")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(OIF,DBF_MENU) {
+		prompt("Out Full/Incremental")
+		promptgroup(GUI_OUTPUT)
+		menu(aoOIF)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LINR,DBF_MENU) {
+		prompt("Linearization")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		menu(menuConvert)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGUF,DBF_DOUBLE) {
+		prompt("Eng Units Full")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGUL,DBF_DOUBLE) {
+		prompt("Eng Units Low")
+		promptgroup(GUI_CONVERT)
+		special(102)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Engineering Units")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(ROFF,DBF_LONG) {
+		prompt("Raw Offset, obsolete")
+		pp(TRUE)
+		interest(2)
+	}
+	field(EOFF,DBF_DOUBLE) {
+		prompt("EGU to Raw Offset")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(2)
+	}
+	field(ESLO,DBF_DOUBLE) {
+		prompt("EGU to Raw Slope")
+		initial("1")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(2)
+	}
+	field(DRVH,DBF_DOUBLE) {
+		prompt("Drive High Limit")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(DRVL,DBF_DOUBLE) {
+		prompt("Drive Low Limit")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(AOFF,DBF_DOUBLE) {
+		prompt("Adjustment Offset")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ASLO,DBF_DOUBLE) {
+		prompt("Adjustment Slope")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(RVAL,DBF_LONG) {
+		prompt("Current Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_LONG) {
+		prompt("Previous Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RBV,DBF_LONG) {
+		prompt("Readback Value")
+		special(SPC_NOMOD)
+	}
+	field(ORBV,DBF_LONG) {
+		prompt("Prev Readback Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(PVAL,DBF_DOUBLE) {
+		prompt("Previous value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(PBRK,DBF_NOACCESS) {
+		prompt("Ptrto brkTable")
+		special(SPC_NOMOD)
+		extra("void *	pbrk")
+		interest(4)
+	}
+	field(INIT,DBF_SHORT) {
+		prompt("Initialized?")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LBRK,DBF_SHORT) {
+		prompt("LastBreak Point")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID output action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_DOUBLE) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		interest(2)
+	}
+	field(OMOD,DBF_UCHAR) {
+		prompt("Was OVAL modified?")
+		special(SPC_NOMOD)
+	}
+}
+recordtype(aSub) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Subr. return value")
+		asl(ASL0)
+	}
+	field(OVAL,DBF_LONG) {
+		prompt("Old return value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(INAM,DBF_STRING) {
+		prompt("Initialize Subr. Name")
+		promptgroup(GUI_SUB)
+		special(SPC_NOMOD)
+		size(41)
+		interest(1)
+	}
+	field(LFLG,DBF_MENU) {
+		prompt("Subr. Input Enable")
+		promptgroup(GUI_SUB)
+		menu(aSubLFLG)
+		interest(1)
+	}
+	field(SUBL,DBF_INLINK) {
+		prompt("Subroutine Name Link")
+		promptgroup(GUI_SUB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(SNAM,DBF_STRING) {
+		prompt("Process Subr. Name")
+		promptgroup(GUI_SUB)
+		special(100)
+		size(41)
+		interest(1)
+	}
+	field(ONAM,DBF_STRING) {
+		prompt("Old Subr. Name")
+		promptgroup(GUI_SUB)
+		special(SPC_NOMOD)
+		size(41)
+		interest(3)
+	}
+	field(SADR,DBF_NOACCESS) {
+		prompt("Subroutine Address")
+		special(SPC_NOMOD)
+		extra("long (*sadr)(struct aSubRecord *)")
+		interest(2)
+	}
+	field(BRSV,DBF_MENU) {
+		prompt("Bad Return Severity")
+		promptgroup(GUI_SUB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(EFLG,DBF_MENU) {
+		prompt("Output Event Flag")
+		initial("1")
+		promptgroup(GUI_OUTPUT)
+		menu(aSubEFLG)
+		interest(1)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input Link A")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input Link B")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input Link C")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input Link D")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input Link E")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input Link F")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input Link G")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input Link H")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input Link I")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input Link J")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input Link K")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input Link L")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPM,DBF_INLINK) {
+		prompt("Input Link M")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPN,DBF_INLINK) {
+		prompt("Input Link N")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPO,DBF_INLINK) {
+		prompt("Input Link O")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPP,DBF_INLINK) {
+		prompt("Input Link P")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPQ,DBF_INLINK) {
+		prompt("Input Link Q")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPR,DBF_INLINK) {
+		prompt("Input Link R")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPS,DBF_INLINK) {
+		prompt("Input Link S")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPT,DBF_INLINK) {
+		prompt("Input Link T")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPU,DBF_INLINK) {
+		prompt("Input Link U")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(A,DBF_NOACCESS) {
+		prompt("Input value A")
+		special(SPC_DBADDR)
+		extra("void *a")
+		interest(2)
+		asl(ASL0)
+	}
+	field(B,DBF_NOACCESS) {
+		prompt("Input value B")
+		special(SPC_DBADDR)
+		extra("void *b")
+		interest(2)
+		asl(ASL0)
+	}
+	field(C,DBF_NOACCESS) {
+		prompt("Input value C")
+		special(SPC_DBADDR)
+		extra("void *c")
+		interest(2)
+		asl(ASL0)
+	}
+	field(D,DBF_NOACCESS) {
+		prompt("Input value D")
+		special(SPC_DBADDR)
+		extra("void *d")
+		interest(2)
+		asl(ASL0)
+	}
+	field(E,DBF_NOACCESS) {
+		prompt("Input value E")
+		special(SPC_DBADDR)
+		extra("void *e")
+		interest(2)
+		asl(ASL0)
+	}
+	field(F,DBF_NOACCESS) {
+		prompt("Input value F")
+		special(SPC_DBADDR)
+		extra("void *f")
+		interest(2)
+		asl(ASL0)
+	}
+	field(G,DBF_NOACCESS) {
+		prompt("Input value G")
+		special(SPC_DBADDR)
+		extra("void *g")
+		interest(2)
+		asl(ASL0)
+	}
+	field(H,DBF_NOACCESS) {
+		prompt("Input value H")
+		special(SPC_DBADDR)
+		extra("void *h")
+		interest(2)
+		asl(ASL0)
+	}
+	field(I,DBF_NOACCESS) {
+		prompt("Input value I")
+		special(SPC_DBADDR)
+		extra("void *i")
+		interest(2)
+		asl(ASL0)
+	}
+	field(J,DBF_NOACCESS) {
+		prompt("Input value J")
+		special(SPC_DBADDR)
+		extra("void *j")
+		interest(2)
+		asl(ASL0)
+	}
+	field(K,DBF_NOACCESS) {
+		prompt("Input value K")
+		special(SPC_DBADDR)
+		extra("void *k")
+		interest(2)
+		asl(ASL0)
+	}
+	field(L,DBF_NOACCESS) {
+		prompt("Input value L")
+		special(SPC_DBADDR)
+		extra("void *l")
+		interest(2)
+		asl(ASL0)
+	}
+	field(M,DBF_NOACCESS) {
+		prompt("Input value M")
+		special(SPC_DBADDR)
+		extra("void *m")
+		interest(2)
+		asl(ASL0)
+	}
+	field(N,DBF_NOACCESS) {
+		prompt("Input value N")
+		special(SPC_DBADDR)
+		extra("void *n")
+		interest(2)
+		asl(ASL0)
+	}
+	field(O,DBF_NOACCESS) {
+		prompt("Input value O")
+		special(SPC_DBADDR)
+		extra("void *o")
+		interest(2)
+		asl(ASL0)
+	}
+	field(P,DBF_NOACCESS) {
+		prompt("Input value P")
+		special(SPC_DBADDR)
+		extra("void *p")
+		interest(2)
+		asl(ASL0)
+	}
+	field(Q,DBF_NOACCESS) {
+		prompt("Input value Q")
+		special(SPC_DBADDR)
+		extra("void *q")
+		interest(2)
+		asl(ASL0)
+	}
+	field(R,DBF_NOACCESS) {
+		prompt("Input value R")
+		special(SPC_DBADDR)
+		extra("void *r")
+		interest(2)
+		asl(ASL0)
+	}
+	field(S,DBF_NOACCESS) {
+		prompt("Input value S")
+		special(SPC_DBADDR)
+		extra("void *s")
+		interest(2)
+		asl(ASL0)
+	}
+	field(T,DBF_NOACCESS) {
+		prompt("Input value T")
+		special(SPC_DBADDR)
+		extra("void *t")
+		interest(2)
+		asl(ASL0)
+	}
+	field(U,DBF_NOACCESS) {
+		prompt("Input value U")
+		special(SPC_DBADDR)
+		extra("void *u")
+		interest(2)
+		asl(ASL0)
+	}
+	field(FTA,DBF_MENU) {
+		prompt("Type of A")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTB,DBF_MENU) {
+		prompt("Type of B")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTC,DBF_MENU) {
+		prompt("Type of C")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTD,DBF_MENU) {
+		prompt("Type of D")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTE,DBF_MENU) {
+		prompt("Type of E")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTF,DBF_MENU) {
+		prompt("Type of F")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTG,DBF_MENU) {
+		prompt("Type of G")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTH,DBF_MENU) {
+		prompt("Type of H")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTI,DBF_MENU) {
+		prompt("Type of I")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTJ,DBF_MENU) {
+		prompt("Type of J")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTK,DBF_MENU) {
+		prompt("Type of K")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTL,DBF_MENU) {
+		prompt("Type of L")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTM,DBF_MENU) {
+		prompt("Type of M")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTN,DBF_MENU) {
+		prompt("Type of N")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTO,DBF_MENU) {
+		prompt("Type of O")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTP,DBF_MENU) {
+		prompt("Type of P")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTQ,DBF_MENU) {
+		prompt("Type of Q")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTR,DBF_MENU) {
+		prompt("Type of R")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTS,DBF_MENU) {
+		prompt("Type of S")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTT,DBF_MENU) {
+		prompt("Type of T")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTU,DBF_MENU) {
+		prompt("Type of U")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(NOA,DBF_ULONG) {
+		prompt("Max. elements in A")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOB,DBF_ULONG) {
+		prompt("Max. elements in B")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOC,DBF_ULONG) {
+		prompt("Max. elements in C")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOD,DBF_ULONG) {
+		prompt("Max. elements in D")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOE,DBF_ULONG) {
+		prompt("Max. elements in E")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOF,DBF_ULONG) {
+		prompt("Max. elements in F")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOG,DBF_ULONG) {
+		prompt("Max. elements in G")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOH,DBF_ULONG) {
+		prompt("Max. elements in H")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOI,DBF_ULONG) {
+		prompt("Max. elements in I")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOJ,DBF_ULONG) {
+		prompt("Max. elements in J")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOK,DBF_ULONG) {
+		prompt("Max. elements in K")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOL,DBF_ULONG) {
+		prompt("Max. elements in L")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOM,DBF_ULONG) {
+		prompt("Max. elements in M")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NON,DBF_ULONG) {
+		prompt("Max. elements in N")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOO,DBF_ULONG) {
+		prompt("Max. elements in O")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOP,DBF_ULONG) {
+		prompt("Max. elements in P")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOQ,DBF_ULONG) {
+		prompt("Max. elements in Q")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOR,DBF_ULONG) {
+		prompt("Max. elements in R")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOS,DBF_ULONG) {
+		prompt("Max. elements in S")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOT,DBF_ULONG) {
+		prompt("Max. elements in T")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOU,DBF_ULONG) {
+		prompt("Max. elements in U")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NEA,DBF_ULONG) {
+		prompt("Num. elements in A")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEB,DBF_ULONG) {
+		prompt("Num. elements in B")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEC,DBF_ULONG) {
+		prompt("Num. elements in C")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NED,DBF_ULONG) {
+		prompt("Num. elements in D")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEE,DBF_ULONG) {
+		prompt("Num. elements in E")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEF,DBF_ULONG) {
+		prompt("Num. elements in F")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEG,DBF_ULONG) {
+		prompt("Num. elements in G")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEH,DBF_ULONG) {
+		prompt("Num. elements in H")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEI,DBF_ULONG) {
+		prompt("Num. elements in I")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEJ,DBF_ULONG) {
+		prompt("Num. elements in J")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEK,DBF_ULONG) {
+		prompt("Num. elements in K")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEL,DBF_ULONG) {
+		prompt("Num. elements in L")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEM,DBF_ULONG) {
+		prompt("Num. elements in M")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEN,DBF_ULONG) {
+		prompt("Num. elements in N")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEO,DBF_ULONG) {
+		prompt("Num. elements in O")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEP,DBF_ULONG) {
+		prompt("Num. elements in P")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEQ,DBF_ULONG) {
+		prompt("Num. elements in Q")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NER,DBF_ULONG) {
+		prompt("Num. elements in R")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NES,DBF_ULONG) {
+		prompt("Num. elements in S")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NET,DBF_ULONG) {
+		prompt("Num. elements in T")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEU,DBF_ULONG) {
+		prompt("Num. elements in U")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(OUTA,DBF_OUTLINK) {
+		prompt("Output Link A")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTB,DBF_OUTLINK) {
+		prompt("Output Link B")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTC,DBF_OUTLINK) {
+		prompt("Output Link C")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTD,DBF_OUTLINK) {
+		prompt("Output Link D")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTE,DBF_OUTLINK) {
+		prompt("Output Link E")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTF,DBF_OUTLINK) {
+		prompt("Output Link F")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTG,DBF_OUTLINK) {
+		prompt("Output Link G")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTH,DBF_OUTLINK) {
+		prompt("Output Link H")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTI,DBF_OUTLINK) {
+		prompt("Output Link I")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTJ,DBF_OUTLINK) {
+		prompt("Output Link J")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTK,DBF_OUTLINK) {
+		prompt("Output Link K")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTL,DBF_OUTLINK) {
+		prompt("Output Link L")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTM,DBF_OUTLINK) {
+		prompt("Output Link M")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTN,DBF_OUTLINK) {
+		prompt("Output Link N")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTO,DBF_OUTLINK) {
+		prompt("Output Link O")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTP,DBF_OUTLINK) {
+		prompt("Output Link P")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTQ,DBF_OUTLINK) {
+		prompt("Output Link Q")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTR,DBF_OUTLINK) {
+		prompt("Output Link R")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTS,DBF_OUTLINK) {
+		prompt("Output Link S")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTT,DBF_OUTLINK) {
+		prompt("Output Link T")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTU,DBF_OUTLINK) {
+		prompt("Output Link U")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(VALA,DBF_NOACCESS) {
+		prompt("Output value A")
+		special(SPC_DBADDR)
+		extra("void *vala")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALB,DBF_NOACCESS) {
+		prompt("Output value B")
+		special(SPC_DBADDR)
+		extra("void *valb")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALC,DBF_NOACCESS) {
+		prompt("Output value C")
+		special(SPC_DBADDR)
+		extra("void *valc")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALD,DBF_NOACCESS) {
+		prompt("Output value D")
+		special(SPC_DBADDR)
+		extra("void *vald")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALE,DBF_NOACCESS) {
+		prompt("Output value E")
+		special(SPC_DBADDR)
+		extra("void *vale")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALF,DBF_NOACCESS) {
+		prompt("Output value F")
+		special(SPC_DBADDR)
+		extra("void *valf")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALG,DBF_NOACCESS) {
+		prompt("Output value G")
+		special(SPC_DBADDR)
+		extra("void *valg")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALH,DBF_NOACCESS) {
+		prompt("Output value H")
+		special(SPC_DBADDR)
+		extra("void *valh")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALI,DBF_NOACCESS) {
+		prompt("Output value I")
+		special(SPC_DBADDR)
+		extra("void *vali")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALJ,DBF_NOACCESS) {
+		prompt("Output value J")
+		special(SPC_DBADDR)
+		extra("void *valj")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALK,DBF_NOACCESS) {
+		prompt("Output value K")
+		special(SPC_DBADDR)
+		extra("void *valk")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALL,DBF_NOACCESS) {
+		prompt("Output value L")
+		special(SPC_DBADDR)
+		extra("void *vall")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALM,DBF_NOACCESS) {
+		prompt("Output value M")
+		special(SPC_DBADDR)
+		extra("void *valm")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALN,DBF_NOACCESS) {
+		prompt("Output value N")
+		special(SPC_DBADDR)
+		extra("void *valn")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALO,DBF_NOACCESS) {
+		prompt("Output value O")
+		special(SPC_DBADDR)
+		extra("void *valo")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALP,DBF_NOACCESS) {
+		prompt("Output value P")
+		special(SPC_DBADDR)
+		extra("void *valp")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALQ,DBF_NOACCESS) {
+		prompt("Output value Q")
+		special(SPC_DBADDR)
+		extra("void *valq")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALR,DBF_NOACCESS) {
+		prompt("Output value R")
+		special(SPC_DBADDR)
+		extra("void *valr")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALS,DBF_NOACCESS) {
+		prompt("Output value S")
+		special(SPC_DBADDR)
+		extra("void *vals")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALT,DBF_NOACCESS) {
+		prompt("Output value T")
+		special(SPC_DBADDR)
+		extra("void *valt")
+		interest(2)
+		asl(ASL0)
+	}
+	field(VALU,DBF_NOACCESS) {
+		prompt("Output value U")
+		special(SPC_DBADDR)
+		extra("void *valu")
+		interest(2)
+		asl(ASL0)
+	}
+	field(OVLA,DBF_NOACCESS) {
+		prompt("Old Output A")
+		special(SPC_NOMOD)
+		extra("void *ovla")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLB,DBF_NOACCESS) {
+		prompt("Old Output B")
+		special(SPC_NOMOD)
+		extra("void *ovlb")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLC,DBF_NOACCESS) {
+		prompt("Old Output C")
+		special(SPC_NOMOD)
+		extra("void *ovlc")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLD,DBF_NOACCESS) {
+		prompt("Old Output D")
+		special(SPC_NOMOD)
+		extra("void *ovld")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLE,DBF_NOACCESS) {
+		prompt("Old Output E")
+		special(SPC_NOMOD)
+		extra("void *ovle")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLF,DBF_NOACCESS) {
+		prompt("Old Output F")
+		special(SPC_NOMOD)
+		extra("void *ovlf")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLG,DBF_NOACCESS) {
+		prompt("Old Output G")
+		special(SPC_NOMOD)
+		extra("void *ovlg")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLH,DBF_NOACCESS) {
+		prompt("Old Output H")
+		special(SPC_NOMOD)
+		extra("void *ovlh")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLI,DBF_NOACCESS) {
+		prompt("Old Output I")
+		special(SPC_NOMOD)
+		extra("void *ovli")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLJ,DBF_NOACCESS) {
+		prompt("Old Output J")
+		special(SPC_NOMOD)
+		extra("void *ovlj")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLK,DBF_NOACCESS) {
+		prompt("Old Output K")
+		special(SPC_NOMOD)
+		extra("void *ovlk")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLL,DBF_NOACCESS) {
+		prompt("Old Output L")
+		special(SPC_NOMOD)
+		extra("void *ovll")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLM,DBF_NOACCESS) {
+		prompt("Old Output M")
+		special(SPC_NOMOD)
+		extra("void *ovlm")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLN,DBF_NOACCESS) {
+		prompt("Old Output N")
+		special(SPC_NOMOD)
+		extra("void *ovln")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLO,DBF_NOACCESS) {
+		prompt("Old Output O")
+		special(SPC_NOMOD)
+		extra("void *ovlo")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLP,DBF_NOACCESS) {
+		prompt("Old Output P")
+		special(SPC_NOMOD)
+		extra("void *ovlp")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLQ,DBF_NOACCESS) {
+		prompt("Old Output Q")
+		special(SPC_NOMOD)
+		extra("void *ovlq")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLR,DBF_NOACCESS) {
+		prompt("Old Output R")
+		special(SPC_NOMOD)
+		extra("void *ovlr")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLS,DBF_NOACCESS) {
+		prompt("Old Output S")
+		special(SPC_NOMOD)
+		extra("void *ovls")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLT,DBF_NOACCESS) {
+		prompt("Old Output T")
+		special(SPC_NOMOD)
+		extra("void *ovlt")
+		interest(4)
+		asl(ASL0)
+	}
+	field(OVLU,DBF_NOACCESS) {
+		prompt("Old Output U")
+		special(SPC_NOMOD)
+		extra("void *ovlu")
+		interest(4)
+		asl(ASL0)
+	}
+	field(FTVA,DBF_MENU) {
+		prompt("Type of VALA")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVB,DBF_MENU) {
+		prompt("Type of VALB")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVC,DBF_MENU) {
+		prompt("Type of VALC")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVD,DBF_MENU) {
+		prompt("Type of VALD")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVE,DBF_MENU) {
+		prompt("Type of VALE")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVF,DBF_MENU) {
+		prompt("Type of VALF")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVG,DBF_MENU) {
+		prompt("Type of VALG")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVH,DBF_MENU) {
+		prompt("Type of VALH")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVI,DBF_MENU) {
+		prompt("Type of VALI")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVJ,DBF_MENU) {
+		prompt("Type of VALJ")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVK,DBF_MENU) {
+		prompt("Type of VALK")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVL,DBF_MENU) {
+		prompt("Type of VALL")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVM,DBF_MENU) {
+		prompt("Type of VALM")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVN,DBF_MENU) {
+		prompt("Type of VALN")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVO,DBF_MENU) {
+		prompt("Type of VALO")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVP,DBF_MENU) {
+		prompt("Type of VALP")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVQ,DBF_MENU) {
+		prompt("Type of VALQ")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVR,DBF_MENU) {
+		prompt("Type of VALR")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVS,DBF_MENU) {
+		prompt("Type of VALS")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVT,DBF_MENU) {
+		prompt("Type of VALT")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(FTVU,DBF_MENU) {
+		prompt("Type of VALU")
+		initial("DOUBLE")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(NOVA,DBF_ULONG) {
+		prompt("Max. elements in VALA")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVB,DBF_ULONG) {
+		prompt("Max. elements in VALB")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVC,DBF_ULONG) {
+		prompt("Max. elements in VALC")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVD,DBF_ULONG) {
+		prompt("Max. elements in VALD")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVE,DBF_ULONG) {
+		prompt("Max. elements in VALE")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVF,DBF_ULONG) {
+		prompt("Max. elements in VALF")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVG,DBF_ULONG) {
+		prompt("Max. elements in VALG")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVH,DBF_ULONG) {
+		prompt("Max. elements in VAlH")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVI,DBF_ULONG) {
+		prompt("Max. elements in VALI")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVJ,DBF_ULONG) {
+		prompt("Max. elements in VALJ")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVK,DBF_ULONG) {
+		prompt("Max. elements in VALK")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVL,DBF_ULONG) {
+		prompt("Max. elements in VALL")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVM,DBF_ULONG) {
+		prompt("Max. elements in VALM")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVN,DBF_ULONG) {
+		prompt("Max. elements in VALN")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVO,DBF_ULONG) {
+		prompt("Max. elements in VALO")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVP,DBF_ULONG) {
+		prompt("Max. elements in VALP")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVQ,DBF_ULONG) {
+		prompt("Max. elements in VALQ")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVR,DBF_ULONG) {
+		prompt("Max. elements in VALR")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVS,DBF_ULONG) {
+		prompt("Max. elements in VALS")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVT,DBF_ULONG) {
+		prompt("Max. elements in VALT")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOVU,DBF_ULONG) {
+		prompt("Max. elements in VALU")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NEVA,DBF_ULONG) {
+		prompt("Num. elements in VALA")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVB,DBF_ULONG) {
+		prompt("Num. elements in VALB")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVC,DBF_ULONG) {
+		prompt("Num. elements in VALC")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVD,DBF_ULONG) {
+		prompt("Num. elements in VALD")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVE,DBF_ULONG) {
+		prompt("Num. elements in VALE")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVF,DBF_ULONG) {
+		prompt("Num. elements in VALF")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVG,DBF_ULONG) {
+		prompt("Num. elements in VALG")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVH,DBF_ULONG) {
+		prompt("Num. elements in VAlH")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVI,DBF_ULONG) {
+		prompt("Num. elements in VALI")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVJ,DBF_ULONG) {
+		prompt("Num. elements in VALJ")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVK,DBF_ULONG) {
+		prompt("Num. elements in VALK")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVL,DBF_ULONG) {
+		prompt("Num. elements in VALL")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVM,DBF_ULONG) {
+		prompt("Num. elements in VALM")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVN,DBF_ULONG) {
+		prompt("Num. elements in VALN")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVO,DBF_ULONG) {
+		prompt("Num. elements in VALO")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVP,DBF_ULONG) {
+		prompt("Num. elements in VALP")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVQ,DBF_ULONG) {
+		prompt("Num. elements in VALQ")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVR,DBF_ULONG) {
+		prompt("Num. elements in VALR")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVS,DBF_ULONG) {
+		prompt("Num. elements in VALS")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVT,DBF_ULONG) {
+		prompt("Num. elements in VALT")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NEVU,DBF_ULONG) {
+		prompt("Num. elements in VALU")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(bi) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(VAL,DBF_ENUM) {
+		prompt("Current Value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(ZSV,DBF_MENU) {
+		prompt("Zero Error Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(OSV,DBF_MENU) {
+		prompt("One Error Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(COSV,DBF_MENU) {
+		prompt("Change of State Svr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ZNAM,DBF_STRING) {
+		prompt("Zero Name")
+		promptgroup(GUI_CALC)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONAM,DBF_STRING) {
+		prompt("One Name")
+		promptgroup(GUI_CLOCK)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_ULONG) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuSimm)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(bo) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_ENUM) {
+		prompt("Current Value")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("Seconds to Hold High")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(ZNAM,DBF_STRING) {
+		prompt("Zero Name")
+		promptgroup(GUI_DISPLAY)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONAM,DBF_STRING) {
+		prompt("One Name")
+		promptgroup(GUI_DISPLAY)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPVT,DBF_NOACCESS) {
+		prompt("Record Private")
+		special(SPC_NOMOD)
+		extra("void *  rpvt")
+		interest(4)
+	}
+	field(WDPT,DBF_NOACCESS) {
+		prompt("Watch Dog Timer ID")
+		special(SPC_NOMOD)
+		extra("void *	wdpt")
+		interest(4)
+	}
+	field(ZSV,DBF_MENU) {
+		prompt("Zero Error Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(OSV,DBF_MENU) {
+		prompt("One Error Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(COSV,DBF_MENU) {
+		prompt("Change of State Sevr")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RBV,DBF_ULONG) {
+		prompt("Readback Value")
+		special(SPC_NOMOD)
+	}
+	field(ORBV,DBF_ULONG) {
+		prompt("Prev Readback Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID outpt action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_USHORT) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		interest(2)
+	}
+}
+recordtype(calc) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Result")
+		asl(ASL0)
+	}
+	field(CALC,DBF_STRING) {
+		prompt("Calculation")
+		initial("0")
+		promptgroup(GUI_CALC)
+		special(103)
+		size(40)
+		pp(TRUE)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input A")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input B")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input C")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input D")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input E")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input F")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input G")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input H")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input I")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input J")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input K")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input L")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Rng")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(A,DBF_DOUBLE) {
+		prompt("Value of Input A")
+		pp(TRUE)
+	}
+	field(B,DBF_DOUBLE) {
+		prompt("Value of Input B")
+		pp(TRUE)
+	}
+	field(C,DBF_DOUBLE) {
+		prompt("Value of Input C")
+		pp(TRUE)
+	}
+	field(D,DBF_DOUBLE) {
+		prompt("Value of Input D")
+		pp(TRUE)
+	}
+	field(E,DBF_DOUBLE) {
+		prompt("Value of Input E")
+		pp(TRUE)
+	}
+	field(F,DBF_DOUBLE) {
+		prompt("Value of Input F")
+		pp(TRUE)
+	}
+	field(G,DBF_DOUBLE) {
+		prompt("Value of Input G")
+		pp(TRUE)
+	}
+	field(H,DBF_DOUBLE) {
+		prompt("Value of Input H")
+		pp(TRUE)
+	}
+	field(I,DBF_DOUBLE) {
+		prompt("Value of Input I")
+		pp(TRUE)
+	}
+	field(J,DBF_DOUBLE) {
+		prompt("Value of Input J")
+		pp(TRUE)
+	}
+	field(K,DBF_DOUBLE) {
+		prompt("Value of Input K")
+		pp(TRUE)
+	}
+	field(L,DBF_DOUBLE) {
+		prompt("Value of Input L")
+		pp(TRUE)
+	}
+	field(LA,DBF_DOUBLE) {
+		prompt("Prev Value of A")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LB,DBF_DOUBLE) {
+		prompt("Prev Value of B")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LC,DBF_DOUBLE) {
+		prompt("Prev Value of C")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LD,DBF_DOUBLE) {
+		prompt("Prev Value of D")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LE,DBF_DOUBLE) {
+		prompt("Prev Value of E")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LF,DBF_DOUBLE) {
+		prompt("Prev Value of F")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LG,DBF_DOUBLE) {
+		prompt("Prev Value of G")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LH,DBF_DOUBLE) {
+		prompt("Prev Value of H")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LI,DBF_DOUBLE) {
+		prompt("Prev Value of I")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LJ,DBF_DOUBLE) {
+		prompt("Prev Value of J")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LK,DBF_DOUBLE) {
+		prompt("Prev Value of K")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LL,DBF_DOUBLE) {
+		prompt("Prev Value of L")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RPCL,DBF_NOACCESS) {
+		prompt("Reverse Polish Calc")
+		special(SPC_NOMOD)
+		extra("char	rpcl[INFIX_TO_POSTFIX_SIZE(40)]")
+		interest(4)
+	}
+}
+recordtype(calcout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(RPVT,DBF_NOACCESS) {
+		prompt("Record Private")
+		special(SPC_NOMOD)
+		extra("struct rpvtStruct *rpvt")
+		interest(4)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Result")
+		promptgroup(GUI_OUTPUT)
+		asl(ASL0)
+	}
+	field(PVAL,DBF_DOUBLE) {
+		prompt("Previous Value")
+	}
+	field(CALC,DBF_STRING) {
+		prompt("Calculation")
+		initial("0")
+		promptgroup(GUI_CALC)
+		special(103)
+		size(40)
+		pp(TRUE)
+	}
+	field(CLCV,DBF_LONG) {
+		prompt("CALC Valid")
+		interest(1)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input A")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input B")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input C")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input D")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input E")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input F")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input G")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input H")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input I")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input J")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input K")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input L")
+		promptgroup(GUI_CALC)
+		special(100)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		special(100)
+		interest(1)
+	}
+	field(INAV,DBF_MENU) {
+		prompt("INPA PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INBV,DBF_MENU) {
+		prompt("INPB PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INCV,DBF_MENU) {
+		prompt("INPC PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INDV,DBF_MENU) {
+		prompt("INPD PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INEV,DBF_MENU) {
+		prompt("INPE PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INFV,DBF_MENU) {
+		prompt("INPF PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INGV,DBF_MENU) {
+		prompt("INPG PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INHV,DBF_MENU) {
+		prompt("INPH PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INIV,DBF_MENU) {
+		prompt("INPI PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INJV,DBF_MENU) {
+		prompt("INPJ PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INKV,DBF_MENU) {
+		prompt("INPK PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(INLV,DBF_MENU) {
+		prompt("INPL PV Status")
+		initial("1")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(OUTV,DBF_MENU) {
+		prompt("OUT PV Status")
+		special(SPC_NOMOD)
+		menu(calcoutINAV)
+		interest(1)
+	}
+	field(OOPT,DBF_MENU) {
+		prompt("Output Execute Opt")
+		promptgroup(GUI_CALC)
+		menu(calcoutOOPT)
+		interest(1)
+	}
+	field(ODLY,DBF_DOUBLE) {
+		prompt("Output Execute Delay")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+		asl(ASL0)
+	}
+	field(DLYA,DBF_USHORT) {
+		prompt("Output Delay Active")
+		special(SPC_NOMOD)
+		asl(ASL0)
+	}
+	field(DOPT,DBF_MENU) {
+		prompt("Output Data Opt")
+		promptgroup(GUI_CALC)
+		menu(calcoutDOPT)
+		interest(1)
+	}
+	field(OCAL,DBF_STRING) {
+		prompt("Output Calculation")
+		initial("0")
+		promptgroup(GUI_CALC)
+		special(103)
+		size(40)
+		pp(TRUE)
+	}
+	field(OCLV,DBF_LONG) {
+		prompt("OCAL Valid")
+		interest(1)
+	}
+	field(OEVT,DBF_USHORT) {
+		prompt("Event To Issue")
+		promptgroup(GUI_CLOCK)
+		asl(ASL0)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID output action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_DOUBLE) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		interest(2)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Rng")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(A,DBF_DOUBLE) {
+		prompt("Value of Input A")
+		pp(TRUE)
+	}
+	field(B,DBF_DOUBLE) {
+		prompt("Value of Input B")
+		pp(TRUE)
+	}
+	field(C,DBF_DOUBLE) {
+		prompt("Value of Input C")
+		pp(TRUE)
+	}
+	field(D,DBF_DOUBLE) {
+		prompt("Value of Input D")
+		pp(TRUE)
+	}
+	field(E,DBF_DOUBLE) {
+		prompt("Value of Input E")
+		pp(TRUE)
+	}
+	field(F,DBF_DOUBLE) {
+		prompt("Value of Input F")
+		pp(TRUE)
+	}
+	field(G,DBF_DOUBLE) {
+		prompt("Value of Input G")
+		pp(TRUE)
+	}
+	field(H,DBF_DOUBLE) {
+		prompt("Value of Input H")
+		pp(TRUE)
+	}
+	field(I,DBF_DOUBLE) {
+		prompt("Value of Input I")
+		pp(TRUE)
+	}
+	field(J,DBF_DOUBLE) {
+		prompt("Value of Input J")
+		pp(TRUE)
+	}
+	field(K,DBF_DOUBLE) {
+		prompt("Value of Input K")
+		pp(TRUE)
+	}
+	field(L,DBF_DOUBLE) {
+		prompt("Value of Input L")
+		pp(TRUE)
+	}
+	field(OVAL,DBF_DOUBLE) {
+		prompt("Output Value")
+		asl(ASL0)
+	}
+	field(LA,DBF_DOUBLE) {
+		prompt("Prev Value of A")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LB,DBF_DOUBLE) {
+		prompt("Prev Value of B")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LC,DBF_DOUBLE) {
+		prompt("Prev Value of C")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LD,DBF_DOUBLE) {
+		prompt("Prev Value of D")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LE,DBF_DOUBLE) {
+		prompt("Prev Value of E")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LF,DBF_DOUBLE) {
+		prompt("Prev Value of F")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LG,DBF_DOUBLE) {
+		prompt("Prev Value of G")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LH,DBF_DOUBLE) {
+		prompt("Prev Value of H")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LI,DBF_DOUBLE) {
+		prompt("Prev Value of I")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LJ,DBF_DOUBLE) {
+		prompt("Prev Value of J")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LK,DBF_DOUBLE) {
+		prompt("Prev Value of K")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LL,DBF_DOUBLE) {
+		prompt("Prev Value of L")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(POVL,DBF_DOUBLE) {
+		prompt("Prev Value of OVAL")
+		asl(ASL0)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RPCL,DBF_NOACCESS) {
+		prompt("Reverse Polish Calc")
+		special(SPC_NOMOD)
+		extra("char	rpcl[INFIX_TO_POSTFIX_SIZE(40)]")
+		interest(4)
+	}
+	field(ORPC,DBF_NOACCESS) {
+		prompt("Reverse Polish OCalc")
+		special(SPC_NOMOD)
+		extra("char	orpc[INFIX_TO_POSTFIX_SIZE(40)]")
+		interest(4)
+	}
+}
+recordtype(compress) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_NOACCESS) {
+		prompt("Value")
+		special(SPC_DBADDR)
+		extra("void *		val")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_COMPRESS)
+		interest(1)
+	}
+	field(RES,DBF_SHORT) {
+		prompt("Reset")
+		special(101)
+		interest(3)
+		asl(ASL0)
+	}
+	field(ALG,DBF_MENU) {
+		prompt("Compression Algorithm")
+		promptgroup(GUI_ALARMS)
+		special(101)
+		menu(compressALG)
+		interest(1)
+	}
+	field(NSAM,DBF_ULONG) {
+		prompt("Number of Values")
+		initial("1")
+		promptgroup(GUI_COMPRESS)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(N,DBF_ULONG) {
+		prompt("N to 1 Compression")
+		initial("1")
+		promptgroup(GUI_COMPRESS)
+		special(101)
+		interest(1)
+	}
+	field(IHIL,DBF_DOUBLE) {
+		prompt("Init High Interest Lim")
+		promptgroup(GUI_COMPRESS)
+		interest(1)
+	}
+	field(ILIL,DBF_DOUBLE) {
+		prompt("Init Low Interest Lim")
+		promptgroup(GUI_COMPRESS)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("EngineeringUnits")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(OFF,DBF_ULONG) {
+		prompt("Offset")
+		special(SPC_NOMOD)
+	}
+	field(NUSE,DBF_ULONG) {
+		prompt("Number Used")
+		special(SPC_NOMOD)
+	}
+	field(BPTR,DBF_NOACCESS) {
+		prompt("Buffer Pointer")
+		special(SPC_NOMOD)
+		extra("double		*bptr")
+		interest(4)
+	}
+	field(SPTR,DBF_NOACCESS) {
+		prompt("Summing Buffer Ptr")
+		special(SPC_NOMOD)
+		extra("double		*sptr")
+		interest(4)
+	}
+	field(WPTR,DBF_NOACCESS) {
+		prompt("Working Buffer Ptr")
+		special(SPC_NOMOD)
+		extra("double		*wptr")
+		interest(4)
+	}
+	field(INPN,DBF_LONG) {
+		prompt("Number of elements in Working Buffer")
+		special(SPC_NOMOD)
+		interest(4)
+	}
+	field(CVB,DBF_DOUBLE) {
+		prompt("Compress Value Buffer")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(INX,DBF_ULONG) {
+		prompt("Compressed Array Inx")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(dfanout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Desired Output")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(SELM,DBF_MENU) {
+		prompt("Select Mechanism")
+		promptgroup(GUI_LINKS)
+		menu(dfanoutSELM)
+		interest(1)
+	}
+	field(SELN,DBF_USHORT) {
+		prompt("Link Selection")
+		initial("1")
+		interest(1)
+	}
+	field(SELL,DBF_INLINK) {
+		prompt("Link Selection Loc")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(OUTA,DBF_OUTLINK) {
+		prompt("Output Spec A")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTB,DBF_OUTLINK) {
+		prompt("Output Spec B")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTC,DBF_OUTLINK) {
+		prompt("Output Spec C")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTD,DBF_OUTLINK) {
+		prompt("Output Spec D")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTE,DBF_OUTLINK) {
+		prompt("Output Spec E")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTF,DBF_OUTLINK) {
+		prompt("Output Spec F")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTG,DBF_OUTLINK) {
+		prompt("Output Spec G")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OUTH,DBF_OUTLINK) {
+		prompt("Output Spec H")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(event) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_USHORT) {
+		prompt("Event Number To Post")
+		promptgroup(GUI_INPUTS)
+		asl(ASL0)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_USHORT) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(fanout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Used to trigger")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(SELM,DBF_MENU) {
+		prompt("Select Mechanism")
+		promptgroup(GUI_LINKS)
+		menu(fanoutSELM)
+		interest(1)
+	}
+	field(SELN,DBF_USHORT) {
+		prompt("Link Selection")
+		initial("1")
+		interest(1)
+	}
+	field(SELL,DBF_INLINK) {
+		prompt("Link Selection Loc")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK1,DBF_FWDLINK) {
+		prompt("Forward Link 1")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK2,DBF_FWDLINK) {
+		prompt("Forward Link 2")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK3,DBF_FWDLINK) {
+		prompt("Forward Link 3")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK4,DBF_FWDLINK) {
+		prompt("Forward Link 4")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK5,DBF_FWDLINK) {
+		prompt("Forward Link 5")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LNK6,DBF_FWDLINK) {
+		prompt("Forward Link 6")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+}
+recordtype(histogram) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_NOACCESS) {
+		prompt("Value")
+		special(SPC_DBADDR)
+		extra("void *	val")
+		asl(ASL0)
+	}
+	field(NELM,DBF_USHORT) {
+		prompt("Num of Array Elements")
+		initial("1")
+		promptgroup(GUI_HIST)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(CSTA,DBF_SHORT) {
+		prompt("Collection Status")
+		initial("1")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(CMD,DBF_MENU) {
+		prompt("Collection Control")
+		special(103)
+		menu(histogramCMD)
+		interest(1)
+		asl(ASL0)
+	}
+	field(ULIM,DBF_DOUBLE) {
+		prompt("Upper Signal Limit")
+		promptgroup(GUI_HIST)
+		special(101)
+		interest(1)
+	}
+	field(LLIM,DBF_DOUBLE) {
+		prompt("Lower Signal Limit ")
+		promptgroup(GUI_HIST)
+		special(101)
+		interest(1)
+	}
+	field(WDTH,DBF_DOUBLE) {
+		prompt("Element Width")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SGNL,DBF_DOUBLE) {
+		prompt("Signal Value")
+		special(100)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(SVL,DBF_INLINK) {
+		prompt("Signal Value Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(BPTR,DBF_NOACCESS) {
+		prompt("Buffer Pointer")
+		special(SPC_NOMOD)
+		extra("epicsUInt32 *bptr")
+		interest(4)
+	}
+	field(WDOG,DBF_NOACCESS) {
+		prompt("Watchdog callback")
+		special(SPC_NOMOD)
+		extra("void *  wdog")
+		interest(4)
+	}
+	field(MDEL,DBF_SHORT) {
+		prompt("Monitor Count Deadband")
+		promptgroup(GUI_HIST)
+		interest(1)
+	}
+	field(MCNT,DBF_SHORT) {
+		prompt("Counts Since Monitor")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SDEL,DBF_DOUBLE) {
+		prompt("Monitor Seconds Dband")
+		promptgroup(GUI_HIST)
+		special(101)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_DOUBLE) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(HOPR,DBF_ULONG) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_ULONG) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+}
+recordtype(longin) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Current value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_LONG) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_LONG) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_LONG) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_LONG) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_LONG) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_LONG) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_LONG) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_LONG) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_LONG) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LALM,DBF_LONG) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_LONG) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_LONG) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_LONG) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(longout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Desired Output")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(DRVH,DBF_LONG) {
+		prompt("Drive High Limit")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(DRVL,DBF_LONG) {
+		prompt("Drive Low Limit")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HOPR,DBF_LONG) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_LONG) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_LONG) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_LONG) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_LONG) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_LONG) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_LONG) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_LONG) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_LONG) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LALM,DBF_LONG) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_LONG) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_LONG) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID output action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_LONG) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		interest(2)
+	}
+}
+recordtype(mbbi) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_ENUM) {
+		prompt("Current Value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(NOBT,DBF_SHORT) {
+		prompt("Number of Bits")
+		promptgroup(GUI_MBB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(ZRVL,DBF_ULONG) {
+		prompt("Zero Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ONVL,DBF_ULONG) {
+		prompt("One Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TWVL,DBF_ULONG) {
+		prompt("Two Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(THVL,DBF_ULONG) {
+		prompt("Three Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FRVL,DBF_ULONG) {
+		prompt("Four Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FVVL,DBF_ULONG) {
+		prompt("Five Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(SXVL,DBF_ULONG) {
+		prompt("Six Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(SVVL,DBF_ULONG) {
+		prompt("Seven Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(EIVL,DBF_ULONG) {
+		prompt("Eight Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(NIVL,DBF_ULONG) {
+		prompt("Nine Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TEVL,DBF_ULONG) {
+		prompt("Ten Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ELVL,DBF_ULONG) {
+		prompt("Eleven Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TVVL,DBF_ULONG) {
+		prompt("Twelve Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TTVL,DBF_ULONG) {
+		prompt("Thirteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FTVL,DBF_ULONG) {
+		prompt("Fourteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FFVL,DBF_ULONG) {
+		prompt("Fifteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ZRST,DBF_STRING) {
+		prompt("Zero String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONST,DBF_STRING) {
+		prompt("One String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TWST,DBF_STRING) {
+		prompt("Two String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(THST,DBF_STRING) {
+		prompt("Three String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FRST,DBF_STRING) {
+		prompt("Four String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FVST,DBF_STRING) {
+		prompt("Five String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SXST,DBF_STRING) {
+		prompt("Six String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SVST,DBF_STRING) {
+		prompt("Seven String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EIST,DBF_STRING) {
+		prompt("Eight String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NIST,DBF_STRING) {
+		prompt("Nine String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TEST,DBF_STRING) {
+		prompt("Ten String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ELST,DBF_STRING) {
+		prompt("Eleven String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TVST,DBF_STRING) {
+		prompt("Twelve String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TTST,DBF_STRING) {
+		prompt("Thirteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FTST,DBF_STRING) {
+		prompt("Fourteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FFST,DBF_STRING) {
+		prompt("Fifteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ZRSV,DBF_MENU) {
+		prompt("State Zero Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONSV,DBF_MENU) {
+		prompt("State One Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TWSV,DBF_MENU) {
+		prompt("State Two Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(THSV,DBF_MENU) {
+		prompt("State Three Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FRSV,DBF_MENU) {
+		prompt("State Four Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FVSV,DBF_MENU) {
+		prompt("State Five Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SXSV,DBF_MENU) {
+		prompt("State Six Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SVSV,DBF_MENU) {
+		prompt("State Seven Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EISV,DBF_MENU) {
+		prompt("State Eight Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NISV,DBF_MENU) {
+		prompt("State Nine Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TESV,DBF_MENU) {
+		prompt("State Ten Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ELSV,DBF_MENU) {
+		prompt("State Eleven Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TVSV,DBF_MENU) {
+		prompt("State Twelve Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TTSV,DBF_MENU) {
+		prompt("State Thirteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FTSV,DBF_MENU) {
+		prompt("State Fourteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FFSV,DBF_MENU) {
+		prompt("State Fifteen Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(UNSV,DBF_MENU) {
+		prompt("Unknown State Severity")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(COSV,DBF_MENU) {
+		prompt("Change of State Svr")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("Prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SDEF,DBF_SHORT) {
+		prompt("States Defined")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SHFT,DBF_USHORT) {
+		prompt("Shift")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SVAL,DBF_ULONG) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuSimm)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(mbbiDirect) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_USHORT) {
+		prompt("Current Value")
+		promptgroup(GUI_INPUTS)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(NOBT,DBF_SHORT) {
+		prompt("Number of Bits")
+		promptgroup(GUI_MBB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("Prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SDEF,DBF_SHORT) {
+		prompt("States Defined")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SHFT,DBF_USHORT) {
+		prompt("Shift")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SVAL,DBF_ULONG) {
+		prompt("Simulation Value")
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuSimm)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(B0,DBF_UCHAR) {
+		prompt("Bit 0")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B1,DBF_UCHAR) {
+		prompt("Bit 1")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B2,DBF_UCHAR) {
+		prompt("Bit 2")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B3,DBF_UCHAR) {
+		prompt("Bit 3")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B4,DBF_UCHAR) {
+		prompt("Bit 4")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B5,DBF_UCHAR) {
+		prompt("Bit 5")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B6,DBF_UCHAR) {
+		prompt("Bit 6")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B7,DBF_UCHAR) {
+		prompt("Bit 7")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B8,DBF_UCHAR) {
+		prompt("Bit 8")
+		pp(TRUE)
+		interest(1)
+	}
+	field(B9,DBF_UCHAR) {
+		prompt("Bit 9")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BA,DBF_UCHAR) {
+		prompt("Bit A")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BB,DBF_UCHAR) {
+		prompt("Bit B")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BC,DBF_UCHAR) {
+		prompt("Bit C")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BD,DBF_UCHAR) {
+		prompt("Bit D")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BE,DBF_UCHAR) {
+		prompt("Bit E")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BF,DBF_UCHAR) {
+		prompt("Bit F")
+		pp(TRUE)
+		interest(1)
+	}
+}
+recordtype(mbbo) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_ENUM) {
+		prompt("Desired Value")
+		promptgroup(GUI_OUTPUT)
+		special(SPC_DBADDR)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_MBB)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(NOBT,DBF_SHORT) {
+		prompt("Number of Bits")
+		promptgroup(GUI_MBB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(ZRVL,DBF_ULONG) {
+		prompt("Zero Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ONVL,DBF_ULONG) {
+		prompt("One Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TWVL,DBF_ULONG) {
+		prompt("Two Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(THVL,DBF_ULONG) {
+		prompt("Three Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FRVL,DBF_ULONG) {
+		prompt("Four Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FVVL,DBF_ULONG) {
+		prompt("Five Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(SXVL,DBF_ULONG) {
+		prompt("Six Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(SVVL,DBF_ULONG) {
+		prompt("Seven Value")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(EIVL,DBF_ULONG) {
+		prompt("Eight Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(NIVL,DBF_ULONG) {
+		prompt("Nine Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TEVL,DBF_ULONG) {
+		prompt("Ten Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ELVL,DBF_ULONG) {
+		prompt("Eleven Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TVVL,DBF_ULONG) {
+		prompt("Twelve Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(TTVL,DBF_ULONG) {
+		prompt("Thirteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FTVL,DBF_ULONG) {
+		prompt("Fourteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(FFVL,DBF_ULONG) {
+		prompt("Fifteen Value")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		base(HEX)
+		interest(1)
+	}
+	field(ZRST,DBF_STRING) {
+		prompt("Zero String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONST,DBF_STRING) {
+		prompt("One String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TWST,DBF_STRING) {
+		prompt("Two String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(THST,DBF_STRING) {
+		prompt("Three String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FRST,DBF_STRING) {
+		prompt("Four String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FVST,DBF_STRING) {
+		prompt("Five String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SXST,DBF_STRING) {
+		prompt("Six String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SVST,DBF_STRING) {
+		prompt("Seven String")
+		promptgroup(GUI_BITS1)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EIST,DBF_STRING) {
+		prompt("Eight String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NIST,DBF_STRING) {
+		prompt("Nine String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TEST,DBF_STRING) {
+		prompt("Ten String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ELST,DBF_STRING) {
+		prompt("Eleven String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TVST,DBF_STRING) {
+		prompt("Twelve String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TTST,DBF_STRING) {
+		prompt("Thirteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FTST,DBF_STRING) {
+		prompt("Fourteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FFST,DBF_STRING) {
+		prompt("Fifteen String")
+		promptgroup(GUI_BITS2)
+		special(100)
+		size(26)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ZRSV,DBF_MENU) {
+		prompt("State Zero Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ONSV,DBF_MENU) {
+		prompt("State One Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TWSV,DBF_MENU) {
+		prompt("State Two Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(THSV,DBF_MENU) {
+		prompt("State Three Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FRSV,DBF_MENU) {
+		prompt("State Four Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FVSV,DBF_MENU) {
+		prompt("State Five Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SXSV,DBF_MENU) {
+		prompt("State Six Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SVSV,DBF_MENU) {
+		prompt("State Seven Severity")
+		promptgroup(GUI_BITS1)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(EISV,DBF_MENU) {
+		prompt("State Eight Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NISV,DBF_MENU) {
+		prompt("State Nine Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TESV,DBF_MENU) {
+		prompt("State Ten Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ELSV,DBF_MENU) {
+		prompt("State Eleven Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TVSV,DBF_MENU) {
+		prompt("State Twelve Severity")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TTSV,DBF_MENU) {
+		prompt("State Thirteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FTSV,DBF_MENU) {
+		prompt("State Fourteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(FFSV,DBF_MENU) {
+		prompt("State Fifteen Sevr")
+		promptgroup(GUI_BITS2)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(UNSV,DBF_MENU) {
+		prompt("Unknown State Sevr")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(COSV,DBF_MENU) {
+		prompt("Change of State Sevr")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("Prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RBV,DBF_ULONG) {
+		prompt("Readback Value")
+		special(SPC_NOMOD)
+	}
+	field(ORBV,DBF_ULONG) {
+		prompt("Prev Readback Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(MLST,DBF_USHORT) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_USHORT) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SDEF,DBF_SHORT) {
+		prompt("States Defined")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SHFT,DBF_USHORT) {
+		prompt("Shift")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID outpt action")
+		promptgroup(GUI_MBB)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_USHORT) {
+		prompt("INVALID output value")
+		promptgroup(GUI_MBB)
+		interest(2)
+	}
+}
+recordtype(mbboDirect) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_USHORT) {
+		prompt("Word")
+		promptgroup(GUI_OUTPUT)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_MBB)
+		special(101)
+		menu(menuOmsl)
+		pp(TRUE)
+		interest(1)
+	}
+	field(NOBT,DBF_SHORT) {
+		prompt("Number of Bits")
+		promptgroup(GUI_MBB)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(B0,DBF_UCHAR) {
+		prompt("Bit 0")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B1,DBF_UCHAR) {
+		prompt("Bit 1")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B2,DBF_UCHAR) {
+		prompt("Bit 2")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B3,DBF_UCHAR) {
+		prompt("Bit 3")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B4,DBF_UCHAR) {
+		prompt("Bit 4")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B5,DBF_UCHAR) {
+		prompt("Bit 5")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B6,DBF_UCHAR) {
+		prompt("Bit 6")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B7,DBF_UCHAR) {
+		prompt("Bit 7")
+		promptgroup(GUI_BITS1)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B8,DBF_UCHAR) {
+		prompt("Bit 8")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(B9,DBF_UCHAR) {
+		prompt("Bit 9")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BA,DBF_UCHAR) {
+		prompt("Bit 10")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BB,DBF_UCHAR) {
+		prompt("Bit 11")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BC,DBF_UCHAR) {
+		prompt("Bit 12")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BD,DBF_UCHAR) {
+		prompt("Bit 13")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BE,DBF_UCHAR) {
+		prompt("Bit 14")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(BF,DBF_UCHAR) {
+		prompt("Bit 15")
+		promptgroup(GUI_BITS2)
+		special(100)
+		pp(TRUE)
+		interest(1)
+	}
+	field(RVAL,DBF_ULONG) {
+		prompt("Raw Value")
+		special(SPC_NOMOD)
+		pp(TRUE)
+	}
+	field(ORAW,DBF_ULONG) {
+		prompt("Prev Raw Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(RBV,DBF_ULONG) {
+		prompt("Readback Value")
+		special(SPC_NOMOD)
+	}
+	field(ORBV,DBF_ULONG) {
+		prompt("Prev Readback Value")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MASK,DBF_ULONG) {
+		prompt("Hardware Mask")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(MLST,DBF_ULONG) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_ULONG) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(SHFT,DBF_ULONG) {
+		prompt("Shift")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_MBB)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_MBB)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID outpt action")
+		promptgroup(GUI_MBB)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_USHORT) {
+		prompt("INVALID output value")
+		promptgroup(GUI_MBB)
+		interest(2)
+	}
+}
+recordtype(permissive) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(LABL,DBF_STRING) {
+		prompt("Button Label")
+		promptgroup(GUI_DISPLAY)
+		size(20)
+		pp(TRUE)
+		interest(1)
+	}
+	field(VAL,DBF_USHORT) {
+		prompt("Status")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_USHORT) {
+		prompt("Old Status")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(WFLG,DBF_USHORT) {
+		prompt("Wait Flag")
+		pp(TRUE)
+	}
+	field(OFLG,DBF_USHORT) {
+		prompt("Old Flag")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(sel) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Result")
+		special(SPC_NOMOD)
+		asl(ASL0)
+	}
+	field(SELM,DBF_MENU) {
+		prompt("Select Mechanism")
+		promptgroup(GUI_INPUTS)
+		menu(selSELM)
+	}
+	field(SELN,DBF_USHORT) {
+		prompt("Index value")
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(NVL,DBF_INLINK) {
+		prompt("Index Value Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input A")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input B")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input C")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input D")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input E")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input F")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input G")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input H")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input I")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input J")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input K")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input L")
+		promptgroup(GUI_SELECT)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Rng")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(A,DBF_DOUBLE) {
+		prompt("Value of Input A")
+		pp(TRUE)
+	}
+	field(B,DBF_DOUBLE) {
+		prompt("Value of Input B")
+		pp(TRUE)
+	}
+	field(C,DBF_DOUBLE) {
+		prompt("Value of Input C")
+		pp(TRUE)
+	}
+	field(D,DBF_DOUBLE) {
+		prompt("Value of Input D")
+		pp(TRUE)
+	}
+	field(E,DBF_DOUBLE) {
+		prompt("Value of Input E")
+		pp(TRUE)
+	}
+	field(F,DBF_DOUBLE) {
+		prompt("Value of Input F")
+		pp(TRUE)
+	}
+	field(G,DBF_DOUBLE) {
+		prompt("Value of Input G")
+		pp(TRUE)
+	}
+	field(H,DBF_DOUBLE) {
+		prompt("Value of Input H")
+		pp(TRUE)
+	}
+	field(I,DBF_DOUBLE) {
+		prompt("Value of Input I")
+		pp(TRUE)
+	}
+	field(J,DBF_DOUBLE) {
+		prompt("Value of Input J")
+		pp(TRUE)
+	}
+	field(K,DBF_DOUBLE) {
+		prompt("Value of Input K")
+		pp(TRUE)
+	}
+	field(L,DBF_DOUBLE) {
+		prompt("Value of Input L")
+		pp(TRUE)
+	}
+	field(LA,DBF_DOUBLE) {
+		prompt("Prev Value of A")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LB,DBF_DOUBLE) {
+		prompt("Prev Value of B")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LC,DBF_DOUBLE) {
+		prompt("Prev Value of C")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LD,DBF_DOUBLE) {
+		prompt("Prev Value of D")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LE,DBF_DOUBLE) {
+		prompt("Prev Value of E")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LF,DBF_DOUBLE) {
+		prompt("Prev Value of F")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LG,DBF_DOUBLE) {
+		prompt("Prev Value of G")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LH,DBF_DOUBLE) {
+		prompt("Prev Value of H")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LI,DBF_DOUBLE) {
+		prompt("Prev Value of I")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LJ,DBF_DOUBLE) {
+		prompt("Prev Value of J")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LK,DBF_DOUBLE) {
+		prompt("Prev Value of K")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LL,DBF_DOUBLE) {
+		prompt("Prev Value of L")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Val Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(NLST,DBF_USHORT) {
+		prompt("Last Index Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(seq) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_LONG) {
+		prompt("Used to trigger")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(SELM,DBF_MENU) {
+		prompt("Select Mechanism")
+		promptgroup(GUI_INPUTS)
+		menu(seqSELM)
+		interest(1)
+	}
+	field(SELN,DBF_USHORT) {
+		prompt("Link Selection")
+		initial("1")
+		interest(1)
+	}
+	field(SELL,DBF_INLINK) {
+		prompt("Link Selection Loc")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(DLY1,DBF_DOUBLE) {
+		prompt("Delay 1")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DOL1,DBF_INLINK) {
+		prompt("Input link1")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DO1,DBF_DOUBLE) {
+		prompt("Constant input 1")
+		interest(1)
+	}
+	field(LNK1,DBF_OUTLINK) {
+		prompt("Output Link 1")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DLY2,DBF_DOUBLE) {
+		prompt("Delay 2")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DOL2,DBF_INLINK) {
+		prompt("Input link 2")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DO2,DBF_DOUBLE) {
+		prompt("Constant input 2")
+		interest(1)
+	}
+	field(LNK2,DBF_OUTLINK) {
+		prompt("Output Link 2")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DLY3,DBF_DOUBLE) {
+		prompt("Delay 3")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DOL3,DBF_INLINK) {
+		prompt("Input link 3")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DO3,DBF_DOUBLE) {
+		prompt("Constant input 3")
+		interest(1)
+	}
+	field(LNK3,DBF_OUTLINK) {
+		prompt("Output Link 3")
+		promptgroup(GUI_SEQ1)
+		interest(1)
+	}
+	field(DLY4,DBF_DOUBLE) {
+		prompt("Delay 4")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DOL4,DBF_INLINK) {
+		prompt("Input link 4")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DO4,DBF_DOUBLE) {
+		prompt("Constant input 4")
+		interest(1)
+	}
+	field(LNK4,DBF_OUTLINK) {
+		prompt("Output Link 4")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DLY5,DBF_DOUBLE) {
+		prompt("Delay 5")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DOL5,DBF_INLINK) {
+		prompt("Input link 5")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DO5,DBF_DOUBLE) {
+		prompt("Constant input 5")
+		interest(1)
+	}
+	field(LNK5,DBF_OUTLINK) {
+		prompt("Output Link 5")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DLY6,DBF_DOUBLE) {
+		prompt("Delay 6")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DOL6,DBF_INLINK) {
+		prompt("Input link 6")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DO6,DBF_DOUBLE) {
+		prompt("Constant input 6")
+		interest(1)
+	}
+	field(LNK6,DBF_OUTLINK) {
+		prompt("Output Link 6")
+		promptgroup(GUI_SEQ2)
+		interest(1)
+	}
+	field(DLY7,DBF_DOUBLE) {
+		prompt("Delay 7")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOL7,DBF_INLINK) {
+		prompt("Input link 7")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DO7,DBF_DOUBLE) {
+		prompt("Constant input 7")
+		interest(1)
+	}
+	field(LNK7,DBF_OUTLINK) {
+		prompt("Output Link 7")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DLY8,DBF_DOUBLE) {
+		prompt("Delay 8")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOL8,DBF_INLINK) {
+		prompt("Input link 8")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DO8,DBF_DOUBLE) {
+		prompt("Constant input 8")
+		interest(1)
+	}
+	field(LNK8,DBF_OUTLINK) {
+		prompt("Output Link 8")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DLY9,DBF_DOUBLE) {
+		prompt("Delay 9")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOL9,DBF_INLINK) {
+		prompt("Input link 9")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DO9,DBF_DOUBLE) {
+		prompt("Constant input 9")
+		interest(1)
+	}
+	field(LNK9,DBF_OUTLINK) {
+		prompt("Output Link 9")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DLYA,DBF_DOUBLE) {
+		prompt("Delay 10")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOLA,DBF_INLINK) {
+		prompt("Input link 10")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+	field(DOA,DBF_DOUBLE) {
+		prompt("Constant input 10")
+		interest(1)
+	}
+	field(LNKA,DBF_OUTLINK) {
+		prompt("Output Link 10")
+		promptgroup(GUI_SEQ3)
+		interest(1)
+	}
+}
+recordtype(state) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_STRING) {
+		prompt("Value")
+		promptgroup(GUI_DISPLAY)
+		size(20)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_STRING) {
+		prompt("Prev Value")
+		special(SPC_NOMOD)
+		size(20)
+		interest(3)
+	}
+}
+recordtype(stringin) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_STRING) {
+		prompt("Current Value")
+		promptgroup(GUI_INPUTS)
+		size(40)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_STRING) {
+		prompt("Previous Value")
+		special(SPC_NOMOD)
+		size(40)
+		interest(3)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(MPST,DBF_MENU) {
+		prompt("Post Value Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(stringinPOST)
+		interest(1)
+	}
+	field(APST,DBF_MENU) {
+		prompt("Post Archive Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(stringinPOST)
+		interest(1)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SVAL,DBF_STRING) {
+		prompt("Simulation Value")
+		size(40)
+		pp(TRUE)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+}
+recordtype(stringout) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_STRING) {
+		prompt("Current Value")
+		promptgroup(GUI_OUTPUT)
+		size(40)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OVAL,DBF_STRING) {
+		prompt("Previous Value")
+		special(SPC_NOMOD)
+		size(40)
+		interest(3)
+	}
+	field(DOL,DBF_INLINK) {
+		prompt("Desired Output Loc")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(OMSL,DBF_MENU) {
+		prompt("Output Mode Select")
+		promptgroup(GUI_OUTPUT)
+		menu(menuOmsl)
+		interest(1)
+	}
+	field(OUT,DBF_OUTLINK) {
+		prompt("Output Specification")
+		promptgroup(GUI_OUTPUT)
+		interest(1)
+	}
+	field(MPST,DBF_MENU) {
+		prompt("Post Value Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(stringoutPOST)
+		interest(1)
+	}
+	field(APST,DBF_MENU) {
+		prompt("Post Archive Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(stringoutPOST)
+		interest(1)
+	}
+	field(SIOL,DBF_OUTLINK) {
+		prompt("Sim Output Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(IVOA,DBF_MENU) {
+		prompt("INVALID output action")
+		promptgroup(GUI_OUTPUT)
+		menu(menuIvoa)
+		interest(2)
+	}
+	field(IVOV,DBF_STRING) {
+		prompt("INVALID output value")
+		promptgroup(GUI_OUTPUT)
+		size(40)
+		interest(2)
+	}
+}
+recordtype(sub) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_DOUBLE) {
+		prompt("Result")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(INAM,DBF_STRING) {
+		prompt("Init Routine Name")
+		promptgroup(GUI_SUB)
+		special(SPC_NOMOD)
+		size(40)
+		interest(1)
+	}
+	field(SNAM,DBF_STRING) {
+		prompt("Subroutine Name")
+		promptgroup(GUI_SUB)
+		special(100)
+		size(40)
+		interest(1)
+	}
+	field(SADR,DBF_NOACCESS) {
+		prompt("Subroutine Address")
+		special(SPC_NOMOD)
+		extra("SUBFUNCPTR sadr")
+		interest(4)
+	}
+	field(INPA,DBF_INLINK) {
+		prompt("Input A")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPB,DBF_INLINK) {
+		prompt("Input B")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPC,DBF_INLINK) {
+		prompt("Input C")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPD,DBF_INLINK) {
+		prompt("Input D")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPE,DBF_INLINK) {
+		prompt("Input E")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPF,DBF_INLINK) {
+		prompt("Input F")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPG,DBF_INLINK) {
+		prompt("Input G")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPH,DBF_INLINK) {
+		prompt("Input H")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPI,DBF_INLINK) {
+		prompt("Input I")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPJ,DBF_INLINK) {
+		prompt("Input J")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPK,DBF_INLINK) {
+		prompt("Input K")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(INPL,DBF_INLINK) {
+		prompt("Input L")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Rng")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(HIHI,DBF_DOUBLE) {
+		prompt("Hihi Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOLO,DBF_DOUBLE) {
+		prompt("Lolo Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HIGH,DBF_DOUBLE) {
+		prompt("High Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LOW,DBF_DOUBLE) {
+		prompt("Low Alarm Limit")
+		promptgroup(GUI_ALARMS)
+		pp(TRUE)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(BRSV,DBF_MENU) {
+		prompt("Bad Return Severity")
+		promptgroup(GUI_SUB)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HHSV,DBF_MENU) {
+		prompt("Hihi Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LLSV,DBF_MENU) {
+		prompt("Lolo Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HSV,DBF_MENU) {
+		prompt("High Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(LSV,DBF_MENU) {
+		prompt("Low Severity")
+		promptgroup(GUI_ALARMS)
+		menu(menuAlarmSevr)
+		pp(TRUE)
+		interest(1)
+	}
+	field(HYST,DBF_DOUBLE) {
+		prompt("Alarm Deadband")
+		promptgroup(GUI_ALARMS)
+		interest(1)
+	}
+	field(ADEL,DBF_DOUBLE) {
+		prompt("Archive Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(MDEL,DBF_DOUBLE) {
+		prompt("Monitor Deadband")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(A,DBF_DOUBLE) {
+		prompt("Value of Input A")
+		pp(TRUE)
+	}
+	field(B,DBF_DOUBLE) {
+		prompt("Value of Input B")
+		pp(TRUE)
+	}
+	field(C,DBF_DOUBLE) {
+		prompt("Value of Input C")
+		pp(TRUE)
+	}
+	field(D,DBF_DOUBLE) {
+		prompt("Value of Input D")
+		pp(TRUE)
+	}
+	field(E,DBF_DOUBLE) {
+		prompt("Value of Input E")
+		pp(TRUE)
+	}
+	field(F,DBF_DOUBLE) {
+		prompt("Value of Input F")
+		pp(TRUE)
+	}
+	field(G,DBF_DOUBLE) {
+		prompt("Value of Input G")
+		pp(TRUE)
+	}
+	field(H,DBF_DOUBLE) {
+		prompt("Value of Input H")
+		pp(TRUE)
+	}
+	field(I,DBF_DOUBLE) {
+		prompt("Value of Input I")
+		pp(TRUE)
+	}
+	field(J,DBF_DOUBLE) {
+		prompt("Value of Input J")
+		pp(TRUE)
+	}
+	field(K,DBF_DOUBLE) {
+		prompt("Value of Input K")
+		pp(TRUE)
+	}
+	field(L,DBF_DOUBLE) {
+		prompt("Value of Input L")
+		pp(TRUE)
+	}
+	field(LA,DBF_DOUBLE) {
+		prompt("Prev Value of A")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LB,DBF_DOUBLE) {
+		prompt("Prev Value of B")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LC,DBF_DOUBLE) {
+		prompt("Prev Value of C")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LD,DBF_DOUBLE) {
+		prompt("Prev Value of D")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LE,DBF_DOUBLE) {
+		prompt("Prev Value of E")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LF,DBF_DOUBLE) {
+		prompt("Prev Value of F")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LG,DBF_DOUBLE) {
+		prompt("Prev Value of G")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LH,DBF_DOUBLE) {
+		prompt("Prev Value of H")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LI,DBF_DOUBLE) {
+		prompt("Prev Value of I")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LJ,DBF_DOUBLE) {
+		prompt("Prev Value of J")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LK,DBF_DOUBLE) {
+		prompt("Prev Value of K")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LL,DBF_DOUBLE) {
+		prompt("Prev Value of L")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(LALM,DBF_DOUBLE) {
+		prompt("Last Value Alarmed")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(ALST,DBF_DOUBLE) {
+		prompt("Last Value Archived")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+	field(MLST,DBF_DOUBLE) {
+		prompt("Last Value Monitored")
+		special(SPC_NOMOD)
+		interest(3)
+	}
+}
+recordtype(subArray) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_NOACCESS) {
+		prompt("Value")
+		special(SPC_DBADDR)
+		extra("void *		val")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_COMMON)
+		interest(1)
+	}
+	field(FTVL,DBF_MENU) {
+		prompt("Field Type of Value")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_BITS1)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Engineering Units Name")
+		promptgroup(GUI_BITS2)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_CALC)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_CLOCK)
+		interest(1)
+	}
+	field(MALM,DBF_ULONG) {
+		prompt("Maximum Elements  ")
+		initial("1")
+		promptgroup(GUI_CLOCK)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NELM,DBF_ULONG) {
+		prompt("Number of Elements")
+		initial("1")
+		promptgroup(GUI_COMPRESS)
+		pp(TRUE)
+	}
+	field(INDX,DBF_ULONG) {
+		prompt("Substring Index")
+		promptgroup(GUI_CONVERT)
+		pp(TRUE)
+	}
+	field(BUSY,DBF_SHORT) {
+		prompt("Busy Indicator")
+		special(SPC_NOMOD)
+	}
+	field(NORD,DBF_LONG) {
+		prompt("Number elements read")
+		special(SPC_NOMOD)
+	}
+	field(BPTR,DBF_NOACCESS) {
+		prompt("Buffer Pointer")
+		special(SPC_NOMOD)
+		extra("void *		bptr")
+		interest(4)
+	}
+}
+recordtype(waveform) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_NOACCESS) {
+		prompt("Value")
+		special(SPC_DBADDR)
+		extra("void *		val")
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(RARM,DBF_SHORT) {
+		prompt("Rearm the waveform")
+		promptgroup(GUI_WAVE)
+		pp(TRUE)
+		interest(1)
+	}
+	field(PREC,DBF_SHORT) {
+		prompt("Display Precision")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(INP,DBF_INLINK) {
+		prompt("Input Specification")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(EGU,DBF_STRING) {
+		prompt("Engineering Units Name")
+		promptgroup(GUI_DISPLAY)
+		size(16)
+		interest(1)
+	}
+	field(HOPR,DBF_DOUBLE) {
+		prompt("High Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(LOPR,DBF_DOUBLE) {
+		prompt("Low Operating Range")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(NELM,DBF_ULONG) {
+		prompt("Number of Elements")
+		initial("1")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(FTVL,DBF_MENU) {
+		prompt("Field Type of Value")
+		promptgroup(GUI_WAVE)
+		special(SPC_NOMOD)
+		menu(menuFtype)
+		interest(1)
+	}
+	field(BUSY,DBF_SHORT) {
+		prompt("Busy Indicator")
+		special(SPC_NOMOD)
+	}
+	field(NORD,DBF_ULONG) {
+		prompt("Number elements read")
+		special(SPC_NOMOD)
+	}
+	field(BPTR,DBF_NOACCESS) {
+		prompt("Buffer Pointer")
+		special(SPC_NOMOD)
+		extra("void *		bptr")
+		interest(4)
+	}
+	field(SIOL,DBF_INLINK) {
+		prompt("Sim Input Specifctn")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIML,DBF_INLINK) {
+		prompt("Sim Mode Location")
+		promptgroup(GUI_INPUTS)
+		interest(1)
+	}
+	field(SIMM,DBF_MENU) {
+		prompt("Simulation Mode")
+		menu(menuYesNo)
+		interest(1)
+	}
+	field(SIMS,DBF_MENU) {
+		prompt("Sim mode Alarm Svrty")
+		promptgroup(GUI_INPUTS)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(MPST,DBF_MENU) {
+		prompt("Post Value Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(waveformPOST)
+		interest(1)
+	}
+	field(APST,DBF_MENU) {
+		prompt("Post Archive Monitors")
+		promptgroup(GUI_DISPLAY)
+		menu(waveformPOST)
+		interest(1)
+	}
+	field(HASH,DBF_ULONG) {
+		prompt("Hash of OnChange data.")
+		interest(3)
+	}
+}
+recordtype(asyn) {
+	field(NAME,DBF_STRING) {
+		prompt("Record Name")
+		special(SPC_NOMOD)
+		size(61)
+	}
+	field(DESC,DBF_STRING) {
+		prompt("Descriptor")
+		promptgroup(GUI_COMMON)
+		size(41)
+	}
+	field(ASG,DBF_STRING) {
+		prompt("Access Security Group")
+		promptgroup(GUI_COMMON)
+		special(SPC_AS)
+		size(29)
+	}
+	field(SCAN,DBF_MENU) {
+		prompt("Scan Mechanism")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuScan)
+		interest(1)
+	}
+	field(PINI,DBF_MENU) {
+		prompt("Process at iocInit")
+		promptgroup(GUI_SCAN)
+		menu(menuPini)
+		interest(1)
+	}
+	field(PHAS,DBF_SHORT) {
+		prompt("Scan Phase")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(EVNT,DBF_SHORT) {
+		prompt("Event Number")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		interest(1)
+	}
+	field(TSE,DBF_SHORT) {
+		prompt("Time Stamp Event")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(TSEL,DBF_INLINK) {
+		prompt("Time Stamp Link")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(DTYP,DBF_DEVICE) {
+		prompt("Device Type")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(DISV,DBF_SHORT) {
+		prompt("Disable Value")
+		initial("1")
+		promptgroup(GUI_SCAN)
+	}
+	field(DISA,DBF_SHORT) {
+		prompt("Disable")
+	}
+	field(SDIS,DBF_INLINK) {
+		prompt("Scanning Disable")
+		promptgroup(GUI_SCAN)
+		interest(1)
+	}
+	field(MLOK,DBF_NOACCESS) {
+		prompt("Monitor lock")
+		special(SPC_NOMOD)
+		extra("epicsMutexId	mlok")
+		interest(4)
+	}
+	field(MLIS,DBF_NOACCESS) {
+		prompt("Monitor List")
+		special(SPC_NOMOD)
+		extra("ELLLIST		mlis")
+		interest(4)
+	}
+	field(DISP,DBF_UCHAR) {
+		prompt("Disable putField")
+	}
+	field(PROC,DBF_UCHAR) {
+		prompt("Force Processing")
+		pp(TRUE)
+		interest(3)
+	}
+	field(STAT,DBF_MENU) {
+		prompt("Alarm Status")
+		initial("UDF")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+	}
+	field(SEVR,DBF_MENU) {
+		prompt("Alarm Severity")
+		initial("INVALID")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+	}
+	field(NSTA,DBF_MENU) {
+		prompt("New Alarm Status")
+		special(SPC_NOMOD)
+		menu(menuAlarmStat)
+		interest(2)
+	}
+	field(NSEV,DBF_MENU) {
+		prompt("New Alarm Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKS,DBF_MENU) {
+		prompt("Alarm Ack Severity")
+		special(SPC_NOMOD)
+		menu(menuAlarmSevr)
+		interest(2)
+	}
+	field(ACKT,DBF_MENU) {
+		prompt("Alarm Ack Transient")
+		initial("YES")
+		promptgroup(GUI_ALARMS)
+		special(SPC_NOMOD)
+		menu(menuYesNo)
+		interest(2)
+	}
+	field(DISS,DBF_MENU) {
+		prompt("Disable Alarm Sevrty")
+		promptgroup(GUI_SCAN)
+		menu(menuAlarmSevr)
+		interest(1)
+	}
+	field(LCNT,DBF_UCHAR) {
+		prompt("Lock Count")
+		special(SPC_NOMOD)
+		interest(2)
+	}
+	field(PACT,DBF_UCHAR) {
+		prompt("Record active")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(PUTF,DBF_UCHAR) {
+		prompt("dbPutField process")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(RPRO,DBF_UCHAR) {
+		prompt("Reprocess ")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(ASP,DBF_NOACCESS) {
+		prompt("Access Security Pvt")
+		special(SPC_NOMOD)
+		extra("struct asgMember *asp")
+		interest(4)
+	}
+	field(PPN,DBF_NOACCESS) {
+		prompt("addr of PUTNOTIFY")
+		special(SPC_NOMOD)
+		extra("struct putNotify *ppn")
+		interest(4)
+	}
+	field(PPNR,DBF_NOACCESS) {
+		prompt("pputNotifyRecord")
+		special(SPC_NOMOD)
+		extra("struct putNotifyRecord *ppnr")
+		interest(4)
+	}
+	field(SPVT,DBF_NOACCESS) {
+		prompt("Scan Private")
+		special(SPC_NOMOD)
+		extra("struct scan_element *spvt")
+		interest(4)
+	}
+	field(RSET,DBF_NOACCESS) {
+		prompt("Address of RSET")
+		special(SPC_NOMOD)
+		extra("struct rset	*rset")
+		interest(4)
+	}
+	field(DSET,DBF_NOACCESS) {
+		prompt("DSET address")
+		special(SPC_NOMOD)
+		extra("struct dset	*dset")
+		interest(4)
+	}
+	field(DPVT,DBF_NOACCESS) {
+		prompt("Device Private")
+		special(SPC_NOMOD)
+		extra("void		*dpvt")
+		interest(4)
+	}
+	field(RDES,DBF_NOACCESS) {
+		prompt("Address of dbRecordType")
+		special(SPC_NOMOD)
+		extra("struct dbRecordType *rdes")
+		interest(4)
+	}
+	field(LSET,DBF_NOACCESS) {
+		prompt("Lock Set")
+		special(SPC_NOMOD)
+		extra("struct lockRecord *lset")
+		interest(4)
+	}
+	field(PRIO,DBF_MENU) {
+		prompt("Scheduling Priority")
+		promptgroup(GUI_SCAN)
+		special(SPC_SCAN)
+		menu(menuPriority)
+		interest(1)
+	}
+	field(TPRO,DBF_UCHAR) {
+		prompt("Trace Processing")
+	}
+	field(BKPT,DBF_NOACCESS) {
+		prompt("Break Point")
+		special(SPC_NOMOD)
+		extra("char bkpt")
+		interest(1)
+	}
+	field(UDF,DBF_UCHAR) {
+		prompt("Undefined")
+		initial("1")
+		promptgroup(GUI_COMMON)
+		pp(TRUE)
+		interest(1)
+	}
+	field(TIME,DBF_NOACCESS) {
+		prompt("Time")
+		special(SPC_NOMOD)
+		extra("epicsTimeStamp	time")
+		interest(2)
+	}
+	field(FLNK,DBF_FWDLINK) {
+		prompt("Forward Process Link")
+		promptgroup(GUI_LINKS)
+		interest(1)
+	}
+	field(VAL,DBF_STRING) {
+		prompt("Value field (unused)")
+		promptgroup(GUI_INPUTS)
+		size(40)
+		asl(ASL0)
+	}
+	field(PORT,DBF_STRING) {
+		prompt("asyn port")
+		initial("")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+		interest(1)
+	}
+	field(ADDR,DBF_LONG) {
+		prompt("asyn address")
+		initial("0")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		interest(1)
+	}
+	field(PCNCT,DBF_MENU) {
+		prompt("Port Connect/Disconnect")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynCONNECT)
+		interest(1)
+	}
+	field(DRVINFO,DBF_STRING) {
+		prompt("Driver info string")
+		initial("")
+		special(100)
+		size(40)
+	}
+	field(REASON,DBF_LONG) {
+		prompt("asynUser->reason")
+		special(100)
+	}
+	field(SOCK,DBF_STRING) {
+		prompt("socket address")
+		initial("")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+		interest(1)
+	}
+	field(TMOD,DBF_MENU) {
+		prompt("Transaction mode")
+		promptgroup(GUI_COMMON)
+		menu(asynTMOD)
+		interest(1)
+	}
+	field(TMOT,DBF_DOUBLE) {
+		prompt("Timeout (sec)")
+		initial("1.0")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(IFACE,DBF_MENU) {
+		prompt("Interface")
+		special(100)
+		menu(asynINTERFACE)
+	}
+	field(OCTETIV,DBF_LONG) {
+		prompt("asynOctet is valid")
+	}
+	field(OPTIONIV,DBF_LONG) {
+		prompt("asynOption is valid")
+	}
+	field(GPIBIV,DBF_LONG) {
+		prompt("asynGPIB is valid")
+	}
+	field(I32IV,DBF_LONG) {
+		prompt("asynInt32 is valid")
+	}
+	field(UI32IV,DBF_LONG) {
+		prompt("asynUInt32Digital is valid")
+	}
+	field(F64IV,DBF_LONG) {
+		prompt("asynFloat64 is valid")
+	}
+	field(AOUT,DBF_STRING) {
+		prompt("Output (command) string")
+		promptgroup(GUI_INPUTS)
+		size(40)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OEOS,DBF_STRING) {
+		prompt("Output delimiter")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+	}
+	field(BOUT,DBF_CHAR) {
+		prompt("Output binary data")
+		special(SPC_DBADDR)
+		pp(TRUE)
+		asl(ASL0)
+	}
+	field(OPTR,DBF_NOACCESS) {
+		prompt("Output buffer pointer")
+		special(SPC_NOMOD)
+		extra("void *optr")
+		interest(4)
+	}
+	field(OMAX,DBF_LONG) {
+		prompt("Max. size of output array")
+		initial("80")
+		promptgroup(GUI_DISPLAY)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NOWT,DBF_LONG) {
+		prompt("Number of bytes to write")
+		initial("80")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(NAWT,DBF_LONG) {
+		prompt("Number of bytes actually written")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(OFMT,DBF_MENU) {
+		prompt("Output format")
+		promptgroup(GUI_COMMON)
+		menu(asynFMT)
+		interest(1)
+	}
+	field(AINP,DBF_STRING) {
+		prompt("Input (response) string")
+		promptgroup(GUI_INPUTS)
+		special(SPC_NOMOD)
+		size(40)
+		asl(ASL0)
+	}
+	field(TINP,DBF_STRING) {
+		prompt("Translated input string")
+		promptgroup(GUI_INPUTS)
+		special(SPC_NOMOD)
+		size(40)
+		asl(ASL0)
+	}
+	field(IEOS,DBF_STRING) {
+		prompt("Input Delimiter")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+	}
+	field(BINP,DBF_CHAR) {
+		prompt("Input binary data")
+		special(SPC_DBADDR)
+		asl(ASL0)
+	}
+	field(IPTR,DBF_NOACCESS) {
+		prompt("Input buffer pointer")
+		special(SPC_NOMOD)
+		extra("void *iptr")
+		interest(4)
+	}
+	field(IMAX,DBF_LONG) {
+		prompt("Max. size of input array")
+		initial("80")
+		promptgroup(GUI_DISPLAY)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(NRRD,DBF_LONG) {
+		prompt("Number of bytes to read")
+		promptgroup(GUI_DISPLAY)
+		interest(1)
+	}
+	field(NORD,DBF_LONG) {
+		prompt("Number of bytes read")
+		promptgroup(GUI_DISPLAY)
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(IFMT,DBF_MENU) {
+		prompt("Input format")
+		promptgroup(GUI_COMMON)
+		menu(asynFMT)
+		interest(1)
+	}
+	field(EOMR,DBF_MENU) {
+		prompt("EOM reason")
+		promptgroup(GUI_DISPLAY)
+		special(SPC_NOMOD)
+		menu(asynEOMREASON)
+		interest(1)
+	}
+	field(I32INP,DBF_LONG) {
+		prompt("asynInt32 input")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(I32OUT,DBF_LONG) {
+		prompt("asynInt32 output")
+		pp(TRUE)
+		interest(1)
+	}
+	field(UI32INP,DBF_ULONG) {
+		prompt("asynUInt32Digital input")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(UI32OUT,DBF_ULONG) {
+		prompt("asynUInt32Digital output")
+		pp(TRUE)
+		interest(1)
+	}
+	field(UI32MASK,DBF_ULONG) {
+		prompt("asynUInt32Digital mask")
+		initial("0xffffffff")
+		special(100)
+	}
+	field(F64INP,DBF_DOUBLE) {
+		prompt("asynFloat64 input")
+		special(SPC_NOMOD)
+		interest(1)
+	}
+	field(F64OUT,DBF_DOUBLE) {
+		prompt("asynFloat64 output")
+		pp(TRUE)
+		interest(1)
+	}
+	field(BAUD,DBF_MENU) {
+		prompt("Baud rate")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialBAUD)
+	}
+	field(PRTY,DBF_MENU) {
+		prompt("Parity")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialPRTY)
+	}
+	field(DBIT,DBF_MENU) {
+		prompt("Data bits")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialDBIT)
+	}
+	field(SBIT,DBF_MENU) {
+		prompt("Stop bits")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialSBIT)
+	}
+	field(MCTL,DBF_MENU) {
+		prompt("Modem control")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialMCTL)
+	}
+	field(FCTL,DBF_MENU) {
+		prompt("Flow control")
+		promptgroup(GUI_COMMON)
+		special(100)
+		menu(serialFCTL)
+	}
+	field(UCMD,DBF_MENU) {
+		prompt("Universal command")
+		promptgroup(GUI_COMMON)
+		menu(gpibUCMD)
+		pp(TRUE)
+		interest(1)
+	}
+	field(ACMD,DBF_MENU) {
+		prompt("Addressed command")
+		promptgroup(GUI_COMMON)
+		menu(gpibACMD)
+		pp(TRUE)
+		interest(1)
+	}
+	field(SPR,DBF_UCHAR) {
+		prompt("Serial poll response")
+		promptgroup(GUI_INPUTS)
+		special(SPC_NOMOD)
+		asl(ASL0)
+	}
+	field(TMSK,DBF_LONG) {
+		prompt("Trace mask")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		interest(1)
+	}
+	field(TB0,DBF_MENU) {
+		prompt("Trace error")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TB1,DBF_MENU) {
+		prompt("Trace IO device")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TB2,DBF_MENU) {
+		prompt("Trace IO filter")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TB3,DBF_MENU) {
+		prompt("Trace IO driver")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TB4,DBF_MENU) {
+		prompt("Trace flow")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TIOM,DBF_LONG) {
+		prompt("Trace I/O mask")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		interest(1)
+	}
+	field(TIB0,DBF_MENU) {
+		prompt("Trace IO ASCII")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TIB1,DBF_MENU) {
+		prompt("Trace IO escape")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TIB2,DBF_MENU) {
+		prompt("Trace IO hex")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynTRACE)
+		interest(1)
+	}
+	field(TSIZ,DBF_LONG) {
+		prompt("Trace IO truncate size")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		interest(1)
+	}
+	field(TFIL,DBF_STRING) {
+		prompt("Trace IO file")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		size(40)
+		interest(1)
+	}
+	field(AUCT,DBF_MENU) {
+		prompt("Autoconnect")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynAUTOCONNECT)
+		interest(1)
+	}
+	field(CNCT,DBF_MENU) {
+		prompt("Connect/Disconnect")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynCONNECT)
+		interest(1)
+	}
+	field(ENBL,DBF_MENU) {
+		prompt("Enable/Disable")
+		promptgroup(GUI_DISPLAY)
+		special(100)
+		menu(asynENABLE)
+		interest(1)
+	}
+	field(ERRS,DBF_NOACCESS) {
+		prompt("Error string")
+		special(SPC_DBADDR)
+		extra("char *errs")
+		interest(1)
+	}
+	field(AQR,DBF_UCHAR) {
+		prompt("Abort queueRequest")
+		special(100)
+	}
+}
+device(ai,CONSTANT,devAiSoft,"Soft Channel")
+device(ai,CONSTANT,devAiSoftRaw,"Raw Soft Channel")
+device(ai,INST_IO,devTimestampAI,"Soft Timestamp")
+device(ai,INST_IO,devAiGeneralTime,"General Time")
+device(ai,INST_IO,asynAiInt32,"asynInt32")
+device(ai,INST_IO,asynAiInt32Average,"asynInt32Average")
+device(ai,INST_IO,asynAiFloat64,"asynFloat64")
+device(ai,INST_IO,asynAiFloat64Average,"asynFloat64Average")
+device(ai,INST_IO,devaiStream,"stream")
+device(ao,CONSTANT,devAoSoft,"Soft Channel")
+device(ao,CONSTANT,devAoSoftRaw,"Raw Soft Channel")
+device(ao,CONSTANT,devAoSoftCallback,"Async Soft Channel")
+device(ao,INST_IO,asynAoInt32,"asynInt32")
+device(ao,INST_IO,asynAoFloat64,"asynFloat64")
+device(ao,INST_IO,devaoStream,"stream")
+device(bi,CONSTANT,devBiSoft,"Soft Channel")
+device(bi,CONSTANT,devBiSoftRaw,"Raw Soft Channel")
+device(bi,INST_IO,asynBiInt32,"asynInt32")
+device(bi,INST_IO,asynBiUInt32Digital,"asynUInt32Digital")
+device(bi,INST_IO,devbiStream,"stream")
+device(bo,CONSTANT,devBoSoft,"Soft Channel")
+device(bo,CONSTANT,devBoSoftRaw,"Raw Soft Channel")
+device(bo,CONSTANT,devBoSoftCallback,"Async Soft Channel")
+device(bo,INST_IO,devBoGeneralTime,"General Time")
+device(bo,INST_IO,asynBoInt32,"asynInt32")
+device(bo,INST_IO,asynBoUInt32Digital,"asynUInt32Digital")
+device(bo,INST_IO,devboStream,"stream")
+device(calcout,CONSTANT,devCalcoutSoft,"Soft Channel")
+device(calcout,CONSTANT,devCalcoutSoftCallback,"Async Soft Channel")
+device(calcout,INST_IO,devcalcoutStream,"stream")
+device(event,CONSTANT,devEventSoft,"Soft Channel")
+device(histogram,CONSTANT,devHistogramSoft,"Soft Channel")
+device(longin,CONSTANT,devLiSoft,"Soft Channel")
+device(longin,INST_IO,devLiGeneralTime,"General Time")
+device(longin,INST_IO,asynLiInt32,"asynInt32")
+device(longin,INST_IO,asynLiUInt32Digital,"asynUInt32Digital")
+device(longin,INST_IO,devlonginStream,"stream")
+device(longout,CONSTANT,devLoSoft,"Soft Channel")
+device(longout,CONSTANT,devLoSoftCallback,"Async Soft Channel")
+device(longout,INST_IO,asynLoInt32,"asynInt32")
+device(longout,INST_IO,asynLoUInt32Digital,"asynUInt32Digital")
+device(longout,INST_IO,devlongoutStream,"stream")
+device(mbbi,CONSTANT,devMbbiSoft,"Soft Channel")
+device(mbbi,CONSTANT,devMbbiSoftRaw,"Raw Soft Channel")
+device(mbbi,INST_IO,asynMbbiInt32,"asynInt32")
+device(mbbi,INST_IO,asynMbbiUInt32Digital,"asynUInt32Digital")
+device(mbbi,INST_IO,devmbbiStream,"stream")
+device(mbbiDirect,CONSTANT,devMbbiDirectSoft,"Soft Channel")
+device(mbbiDirect,CONSTANT,devMbbiDirectSoftRaw,"Raw Soft Channel")
+device(mbbiDirect,INST_IO,asynMbbiDirectUInt32Digital,"asynUInt32Digital")
+device(mbbiDirect,INST_IO,devmbbiDirectStream,"stream")
+device(mbbo,CONSTANT,devMbboSoft,"Soft Channel")
+device(mbbo,CONSTANT,devMbboSoftRaw,"Raw Soft Channel")
+device(mbbo,CONSTANT,devMbboSoftCallback,"Async Soft Channel")
+device(mbbo,INST_IO,asynMbboInt32,"asynInt32")
+device(mbbo,INST_IO,asynMbboUInt32Digital,"asynUInt32Digital")
+device(mbbo,INST_IO,devmbboStream,"stream")
+device(mbboDirect,CONSTANT,devMbboDirectSoft,"Soft Channel")
+device(mbboDirect,CONSTANT,devMbboDirectSoftRaw,"Raw Soft Channel")
+device(mbboDirect,CONSTANT,devMbboDirectSoftCallback,"Async Soft Channel")
+device(mbboDirect,INST_IO,asynMbboDirectUInt32Digital,"asynUInt32Digital")
+device(mbboDirect,INST_IO,devmbboDirectStream,"stream")
+device(stringin,CONSTANT,devSiSoft,"Soft Channel")
+device(stringin,INST_IO,devTimestampSI,"Soft Timestamp")
+device(stringin,INST_IO,devSiGeneralTime,"General Time")
+device(stringin,INST_IO,asynSiOctetCmdResponse,"asynOctetCmdResponse")
+device(stringin,INST_IO,asynSiOctetWriteRead,"asynOctetWriteRead")
+device(stringin,INST_IO,asynSiOctetRead,"asynOctetRead")
+device(stringin,INST_IO,devstringinStream,"stream")
+device(stringout,CONSTANT,devSoSoft,"Soft Channel")
+device(stringout,CONSTANT,devSoSoftCallback,"Async Soft Channel")
+device(stringout,INST_IO,devSoStdio,"stdio")
+device(stringout,INST_IO,asynSoOctetWrite,"asynOctetWrite")
+device(stringout,INST_IO,devstringoutStream,"stream")
+device(subArray,CONSTANT,devSASoft,"Soft Channel")
+device(waveform,CONSTANT,devWfSoft,"Soft Channel")
+device(waveform,INST_IO,asynWfOctetCmdResponse,"asynOctetCmdResponse")
+device(waveform,INST_IO,asynWfOctetWriteRead,"asynOctetWriteRead")
+device(waveform,INST_IO,asynWfOctetRead,"asynOctetRead")
+device(waveform,INST_IO,asynWfOctetWrite,"asynOctetWrite")
+device(waveform,INST_IO,asynInt8ArrayWfIn,"asynInt8ArrayIn")
+device(waveform,INST_IO,asynInt8ArrayWfOut,"asynInt8ArrayOut")
+device(waveform,INST_IO,asynInt16ArrayWfIn,"asynInt16ArrayIn")
+device(waveform,INST_IO,asynInt16ArrayWfOut,"asynInt16ArrayOut")
+device(waveform,INST_IO,asynInt32ArrayWfIn,"asynInt32ArrayIn")
+device(waveform,INST_IO,asynInt32ArrayWfOut,"asynInt32ArrayOut")
+device(waveform,INST_IO,asynFloat32ArrayWfIn,"asynFloat32ArrayIn")
+device(waveform,INST_IO,asynFloat32ArrayWfOut,"asynFloat32ArrayOut")
+device(waveform,INST_IO,asynFloat64ArrayWfIn,"asynFloat64ArrayIn")
+device(waveform,INST_IO,asynFloat64ArrayWfOut,"asynFloat64ArrayOut")
+device(waveform,INST_IO,devwaveformStream,"stream")
+device(asyn,INST_IO,asynRecordDevice,"asynRecordDevice")
+driver(drvAsyn)
+driver(stream)
+registrar(asSub)
+registrar(drvAsynIPPortRegisterCommands)
+registrar(drvAsynIPServerPortRegisterCommands)
+registrar(asynRegister)
+registrar(asynInterposeFlushRegister)
+registrar(asynInterposeEosRegister)
+registrar(iocshSystemCommand)
+registrar(streamRegistrar)
+variable(asCaDebug,int)
+variable(dbRecordsOnceOnly,int)
+variable(dbBptNotMonotonic,int)
+variable(streamDebug,int)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/O.Common/tv301sf.dbd.depends	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,64 @@
+# DO NOT EDIT: This file created by mkmf.pl,v 1.5 2002/03/25 21:33:24 jba Exp $ 
+
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/base.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/drvAsynIPPort.dbd
+../O.Common/tv301sf.dbd : ../iocshGlobalCommands.dbd
+../O.Common/tv301sf.dbd : /opt/epics/modules/stream/2-4-1/dbd/stream.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuGlobal.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuConvert.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/aiRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/aoRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/aSubRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/biRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/boRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/calcRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/calcoutRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/compressRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/dfanoutRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/eventRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/fanoutRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/histogramRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/longinRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/longoutRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/mbbiRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/mbbiDirectRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/mbboRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/mbboDirectRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/permissiveRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/selRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/seqRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/stateRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/stringinRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/stringoutRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/subRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/subArrayRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/waveformRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devSoft.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/asyn.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuAlarmSevr.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuAlarmStat.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuCompress.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuFtype.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuIvoa.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuOmsl.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuPini.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuPriority.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuScan.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuSimm.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/menuYesNo.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/dbCommon.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/asynRecord.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devEpics.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynOctet.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynInt32.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynInt8Array.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynInt16Array.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynInt32Array.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynFloat64.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynFloat32Array.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynFloat64Array.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynUInt32Digital.dbd
+../O.Common/tv301sf.dbd : /usr/lib/epics/dbd/devAsynRecord.dbd
+
+
+../O.Common/tv301sfInclude.dbd:../Makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/O.Common/tv301sfInclude.dbd	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,4 @@
+include "base.dbd"
+include "drvAsynIPPort.dbd"
+include "iocshGlobalCommands.dbd"
+include "stream.dbd"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/O.linux-x86_64/Makefile	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,10 @@
+#This Makefile created by makeMakefile.pl
+
+
+all :
+	$(MAKE) -f ../Makefile TOP=../../.. T_A=linux-x86_64  $@
+
+.DEFAULT: force
+	$(MAKE) -f ../Makefile TOP=../../.. T_A=linux-x86_64  $@
+
+force:  ;
Binary file tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sfMain.depends	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,15 @@
+# DO NOT EDIT: This file created by mkmf.pl,v 1.5 2002/03/25 21:33:24 jba Exp $ 
+
+tv301sfMain.o : /usr/lib/epics/include/epicsExit.h
+tv301sfMain.o : /usr/lib/epics/include/epicsThread.h
+tv301sfMain.o : /usr/lib/epics/include/iocsh.h
+tv301sfMain.o : /usr/lib/epics/include/shareLib.h
+tv301sfMain.o : /usr/lib/epics/include/epicsEvent.h
+tv301sfMain.o : /usr/lib/epics/include/epicsMutex.h
+tv301sfMain.o : /usr/lib/epics/include/os/Linux/osdThread.h
+tv301sfMain.o : /usr/lib/epics/include/epicsAssert.h
+tv301sfMain.o : /usr/lib/epics/include/os/Linux/osdEvent.h
+tv301sfMain.o : /usr/lib/epics/include/compilerDependencies.h
+tv301sfMain.o : /usr/lib/epics/include/os/Linux/osdMutex.h
+
+
Binary file tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sfMain.o has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sf_registerRecordDeviceDriver.cpp	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,493 @@
+/* THIS IS A GENERATED FILE. DO NOT EDIT! */
+/* Generated from ../O.Common/tv301sf.dbd */
+
+#include "registryCommon.h"
+#include "iocsh.h"
+#include "iocshRegisterCommon.h"
+
+extern "C" {
+epicsShareExtern rset *pvar_rset_aiRSET;
+epicsShareExtern int (*pvar_func_aiRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_aoRSET;
+epicsShareExtern int (*pvar_func_aoRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_aSubRSET;
+epicsShareExtern int (*pvar_func_aSubRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_biRSET;
+epicsShareExtern int (*pvar_func_biRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_boRSET;
+epicsShareExtern int (*pvar_func_boRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_calcRSET;
+epicsShareExtern int (*pvar_func_calcRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_calcoutRSET;
+epicsShareExtern int (*pvar_func_calcoutRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_compressRSET;
+epicsShareExtern int (*pvar_func_compressRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_dfanoutRSET;
+epicsShareExtern int (*pvar_func_dfanoutRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_eventRSET;
+epicsShareExtern int (*pvar_func_eventRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_fanoutRSET;
+epicsShareExtern int (*pvar_func_fanoutRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_histogramRSET;
+epicsShareExtern int (*pvar_func_histogramRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_longinRSET;
+epicsShareExtern int (*pvar_func_longinRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_longoutRSET;
+epicsShareExtern int (*pvar_func_longoutRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_mbbiRSET;
+epicsShareExtern int (*pvar_func_mbbiRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_mbbiDirectRSET;
+epicsShareExtern int (*pvar_func_mbbiDirectRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_mbboRSET;
+epicsShareExtern int (*pvar_func_mbboRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_mbboDirectRSET;
+epicsShareExtern int (*pvar_func_mbboDirectRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_permissiveRSET;
+epicsShareExtern int (*pvar_func_permissiveRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_selRSET;
+epicsShareExtern int (*pvar_func_selRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_seqRSET;
+epicsShareExtern int (*pvar_func_seqRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_stateRSET;
+epicsShareExtern int (*pvar_func_stateRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_stringinRSET;
+epicsShareExtern int (*pvar_func_stringinRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_stringoutRSET;
+epicsShareExtern int (*pvar_func_stringoutRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_subRSET;
+epicsShareExtern int (*pvar_func_subRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_subArrayRSET;
+epicsShareExtern int (*pvar_func_subArrayRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_waveformRSET;
+epicsShareExtern int (*pvar_func_waveformRecordSizeOffset)(dbRecordType *pdbRecordType);
+epicsShareExtern rset *pvar_rset_asynRSET;
+epicsShareExtern int (*pvar_func_asynRecordSizeOffset)(dbRecordType *pdbRecordType);
+
+static const char * const recordTypeNames[28] = {
+    "ai",
+    "ao",
+    "aSub",
+    "bi",
+    "bo",
+    "calc",
+    "calcout",
+    "compress",
+    "dfanout",
+    "event",
+    "fanout",
+    "histogram",
+    "longin",
+    "longout",
+    "mbbi",
+    "mbbiDirect",
+    "mbbo",
+    "mbboDirect",
+    "permissive",
+    "sel",
+    "seq",
+    "state",
+    "stringin",
+    "stringout",
+    "sub",
+    "subArray",
+    "waveform",
+    "asyn"
+};
+
+static const recordTypeLocation rtl[28] = {
+    {pvar_rset_aiRSET, pvar_func_aiRecordSizeOffset},
+    {pvar_rset_aoRSET, pvar_func_aoRecordSizeOffset},
+    {pvar_rset_aSubRSET, pvar_func_aSubRecordSizeOffset},
+    {pvar_rset_biRSET, pvar_func_biRecordSizeOffset},
+    {pvar_rset_boRSET, pvar_func_boRecordSizeOffset},
+    {pvar_rset_calcRSET, pvar_func_calcRecordSizeOffset},
+    {pvar_rset_calcoutRSET, pvar_func_calcoutRecordSizeOffset},
+    {pvar_rset_compressRSET, pvar_func_compressRecordSizeOffset},
+    {pvar_rset_dfanoutRSET, pvar_func_dfanoutRecordSizeOffset},
+    {pvar_rset_eventRSET, pvar_func_eventRecordSizeOffset},
+    {pvar_rset_fanoutRSET, pvar_func_fanoutRecordSizeOffset},
+    {pvar_rset_histogramRSET, pvar_func_histogramRecordSizeOffset},
+    {pvar_rset_longinRSET, pvar_func_longinRecordSizeOffset},
+    {pvar_rset_longoutRSET, pvar_func_longoutRecordSizeOffset},
+    {pvar_rset_mbbiRSET, pvar_func_mbbiRecordSizeOffset},
+    {pvar_rset_mbbiDirectRSET, pvar_func_mbbiDirectRecordSizeOffset},
+    {pvar_rset_mbboRSET, pvar_func_mbboRecordSizeOffset},
+    {pvar_rset_mbboDirectRSET, pvar_func_mbboDirectRecordSizeOffset},
+    {pvar_rset_permissiveRSET, pvar_func_permissiveRecordSizeOffset},
+    {pvar_rset_selRSET, pvar_func_selRecordSizeOffset},
+    {pvar_rset_seqRSET, pvar_func_seqRecordSizeOffset},
+    {pvar_rset_stateRSET, pvar_func_stateRecordSizeOffset},
+    {pvar_rset_stringinRSET, pvar_func_stringinRecordSizeOffset},
+    {pvar_rset_stringoutRSET, pvar_func_stringoutRecordSizeOffset},
+    {pvar_rset_subRSET, pvar_func_subRecordSizeOffset},
+    {pvar_rset_subArrayRSET, pvar_func_subArrayRecordSizeOffset},
+    {pvar_rset_waveformRSET, pvar_func_waveformRecordSizeOffset},
+    {pvar_rset_asynRSET, pvar_func_asynRecordSizeOffset}
+};
+
+epicsShareExtern dset *pvar_dset_devAiSoft;
+epicsShareExtern dset *pvar_dset_devAiSoftRaw;
+epicsShareExtern dset *pvar_dset_devTimestampAI;
+epicsShareExtern dset *pvar_dset_devAiGeneralTime;
+epicsShareExtern dset *pvar_dset_asynAiInt32;
+epicsShareExtern dset *pvar_dset_asynAiInt32Average;
+epicsShareExtern dset *pvar_dset_asynAiFloat64;
+epicsShareExtern dset *pvar_dset_asynAiFloat64Average;
+epicsShareExtern dset *pvar_dset_devaiStream;
+epicsShareExtern dset *pvar_dset_devAoSoft;
+epicsShareExtern dset *pvar_dset_devAoSoftRaw;
+epicsShareExtern dset *pvar_dset_devAoSoftCallback;
+epicsShareExtern dset *pvar_dset_asynAoInt32;
+epicsShareExtern dset *pvar_dset_asynAoFloat64;
+epicsShareExtern dset *pvar_dset_devaoStream;
+epicsShareExtern dset *pvar_dset_devBiSoft;
+epicsShareExtern dset *pvar_dset_devBiSoftRaw;
+epicsShareExtern dset *pvar_dset_asynBiInt32;
+epicsShareExtern dset *pvar_dset_asynBiUInt32Digital;
+epicsShareExtern dset *pvar_dset_devbiStream;
+epicsShareExtern dset *pvar_dset_devBoSoft;
+epicsShareExtern dset *pvar_dset_devBoSoftRaw;
+epicsShareExtern dset *pvar_dset_devBoSoftCallback;
+epicsShareExtern dset *pvar_dset_devBoGeneralTime;
+epicsShareExtern dset *pvar_dset_asynBoInt32;
+epicsShareExtern dset *pvar_dset_asynBoUInt32Digital;
+epicsShareExtern dset *pvar_dset_devboStream;
+epicsShareExtern dset *pvar_dset_devCalcoutSoft;
+epicsShareExtern dset *pvar_dset_devCalcoutSoftCallback;
+epicsShareExtern dset *pvar_dset_devcalcoutStream;
+epicsShareExtern dset *pvar_dset_devEventSoft;
+epicsShareExtern dset *pvar_dset_devHistogramSoft;
+epicsShareExtern dset *pvar_dset_devLiSoft;
+epicsShareExtern dset *pvar_dset_devLiGeneralTime;
+epicsShareExtern dset *pvar_dset_asynLiInt32;
+epicsShareExtern dset *pvar_dset_asynLiUInt32Digital;
+epicsShareExtern dset *pvar_dset_devlonginStream;
+epicsShareExtern dset *pvar_dset_devLoSoft;
+epicsShareExtern dset *pvar_dset_devLoSoftCallback;
+epicsShareExtern dset *pvar_dset_asynLoInt32;
+epicsShareExtern dset *pvar_dset_asynLoUInt32Digital;
+epicsShareExtern dset *pvar_dset_devlongoutStream;
+epicsShareExtern dset *pvar_dset_devMbbiSoft;
+epicsShareExtern dset *pvar_dset_devMbbiSoftRaw;
+epicsShareExtern dset *pvar_dset_asynMbbiInt32;
+epicsShareExtern dset *pvar_dset_asynMbbiUInt32Digital;
+epicsShareExtern dset *pvar_dset_devmbbiStream;
+epicsShareExtern dset *pvar_dset_devMbbiDirectSoft;
+epicsShareExtern dset *pvar_dset_devMbbiDirectSoftRaw;
+epicsShareExtern dset *pvar_dset_asynMbbiDirectUInt32Digital;
+epicsShareExtern dset *pvar_dset_devmbbiDirectStream;
+epicsShareExtern dset *pvar_dset_devMbboSoft;
+epicsShareExtern dset *pvar_dset_devMbboSoftRaw;
+epicsShareExtern dset *pvar_dset_devMbboSoftCallback;
+epicsShareExtern dset *pvar_dset_asynMbboInt32;
+epicsShareExtern dset *pvar_dset_asynMbboUInt32Digital;
+epicsShareExtern dset *pvar_dset_devmbboStream;
+epicsShareExtern dset *pvar_dset_devMbboDirectSoft;
+epicsShareExtern dset *pvar_dset_devMbboDirectSoftRaw;
+epicsShareExtern dset *pvar_dset_devMbboDirectSoftCallback;
+epicsShareExtern dset *pvar_dset_asynMbboDirectUInt32Digital;
+epicsShareExtern dset *pvar_dset_devmbboDirectStream;
+epicsShareExtern dset *pvar_dset_devSiSoft;
+epicsShareExtern dset *pvar_dset_devTimestampSI;
+epicsShareExtern dset *pvar_dset_devSiGeneralTime;
+epicsShareExtern dset *pvar_dset_asynSiOctetCmdResponse;
+epicsShareExtern dset *pvar_dset_asynSiOctetWriteRead;
+epicsShareExtern dset *pvar_dset_asynSiOctetRead;
+epicsShareExtern dset *pvar_dset_devstringinStream;
+epicsShareExtern dset *pvar_dset_devSoSoft;
+epicsShareExtern dset *pvar_dset_devSoSoftCallback;
+epicsShareExtern dset *pvar_dset_devSoStdio;
+epicsShareExtern dset *pvar_dset_asynSoOctetWrite;
+epicsShareExtern dset *pvar_dset_devstringoutStream;
+epicsShareExtern dset *pvar_dset_devSASoft;
+epicsShareExtern dset *pvar_dset_devWfSoft;
+epicsShareExtern dset *pvar_dset_asynWfOctetCmdResponse;
+epicsShareExtern dset *pvar_dset_asynWfOctetWriteRead;
+epicsShareExtern dset *pvar_dset_asynWfOctetRead;
+epicsShareExtern dset *pvar_dset_asynWfOctetWrite;
+epicsShareExtern dset *pvar_dset_asynInt8ArrayWfIn;
+epicsShareExtern dset *pvar_dset_asynInt8ArrayWfOut;
+epicsShareExtern dset *pvar_dset_asynInt16ArrayWfIn;
+epicsShareExtern dset *pvar_dset_asynInt16ArrayWfOut;
+epicsShareExtern dset *pvar_dset_asynInt32ArrayWfIn;
+epicsShareExtern dset *pvar_dset_asynInt32ArrayWfOut;
+epicsShareExtern dset *pvar_dset_asynFloat32ArrayWfIn;
+epicsShareExtern dset *pvar_dset_asynFloat32ArrayWfOut;
+epicsShareExtern dset *pvar_dset_asynFloat64ArrayWfIn;
+epicsShareExtern dset *pvar_dset_asynFloat64ArrayWfOut;
+epicsShareExtern dset *pvar_dset_devwaveformStream;
+epicsShareExtern dset *pvar_dset_asynRecordDevice;
+
+static const char * const deviceSupportNames[92] = {
+    "devAiSoft",
+    "devAiSoftRaw",
+    "devTimestampAI",
+    "devAiGeneralTime",
+    "asynAiInt32",
+    "asynAiInt32Average",
+    "asynAiFloat64",
+    "asynAiFloat64Average",
+    "devaiStream",
+    "devAoSoft",
+    "devAoSoftRaw",
+    "devAoSoftCallback",
+    "asynAoInt32",
+    "asynAoFloat64",
+    "devaoStream",
+    "devBiSoft",
+    "devBiSoftRaw",
+    "asynBiInt32",
+    "asynBiUInt32Digital",
+    "devbiStream",
+    "devBoSoft",
+    "devBoSoftRaw",
+    "devBoSoftCallback",
+    "devBoGeneralTime",
+    "asynBoInt32",
+    "asynBoUInt32Digital",
+    "devboStream",
+    "devCalcoutSoft",
+    "devCalcoutSoftCallback",
+    "devcalcoutStream",
+    "devEventSoft",
+    "devHistogramSoft",
+    "devLiSoft",
+    "devLiGeneralTime",
+    "asynLiInt32",
+    "asynLiUInt32Digital",
+    "devlonginStream",
+    "devLoSoft",
+    "devLoSoftCallback",
+    "asynLoInt32",
+    "asynLoUInt32Digital",
+    "devlongoutStream",
+    "devMbbiSoft",
+    "devMbbiSoftRaw",
+    "asynMbbiInt32",
+    "asynMbbiUInt32Digital",
+    "devmbbiStream",
+    "devMbbiDirectSoft",
+    "devMbbiDirectSoftRaw",
+    "asynMbbiDirectUInt32Digital",
+    "devmbbiDirectStream",
+    "devMbboSoft",
+    "devMbboSoftRaw",
+    "devMbboSoftCallback",
+    "asynMbboInt32",
+    "asynMbboUInt32Digital",
+    "devmbboStream",
+    "devMbboDirectSoft",
+    "devMbboDirectSoftRaw",
+    "devMbboDirectSoftCallback",
+    "asynMbboDirectUInt32Digital",
+    "devmbboDirectStream",
+    "devSiSoft",
+    "devTimestampSI",
+    "devSiGeneralTime",
+    "asynSiOctetCmdResponse",
+    "asynSiOctetWriteRead",
+    "asynSiOctetRead",
+    "devstringinStream",
+    "devSoSoft",
+    "devSoSoftCallback",
+    "devSoStdio",
+    "asynSoOctetWrite",
+    "devstringoutStream",
+    "devSASoft",
+    "devWfSoft",
+    "asynWfOctetCmdResponse",
+    "asynWfOctetWriteRead",
+    "asynWfOctetRead",
+    "asynWfOctetWrite",
+    "asynInt8ArrayWfIn",
+    "asynInt8ArrayWfOut",
+    "asynInt16ArrayWfIn",
+    "asynInt16ArrayWfOut",
+    "asynInt32ArrayWfIn",
+    "asynInt32ArrayWfOut",
+    "asynFloat32ArrayWfIn",
+    "asynFloat32ArrayWfOut",
+    "asynFloat64ArrayWfIn",
+    "asynFloat64ArrayWfOut",
+    "devwaveformStream",
+    "asynRecordDevice"
+};
+
+static const dset * const devsl[92] = {
+    pvar_dset_devAiSoft,
+    pvar_dset_devAiSoftRaw,
+    pvar_dset_devTimestampAI,
+    pvar_dset_devAiGeneralTime,
+    pvar_dset_asynAiInt32,
+    pvar_dset_asynAiInt32Average,
+    pvar_dset_asynAiFloat64,
+    pvar_dset_asynAiFloat64Average,
+    pvar_dset_devaiStream,
+    pvar_dset_devAoSoft,
+    pvar_dset_devAoSoftRaw,
+    pvar_dset_devAoSoftCallback,
+    pvar_dset_asynAoInt32,
+    pvar_dset_asynAoFloat64,
+    pvar_dset_devaoStream,
+    pvar_dset_devBiSoft,
+    pvar_dset_devBiSoftRaw,
+    pvar_dset_asynBiInt32,
+    pvar_dset_asynBiUInt32Digital,
+    pvar_dset_devbiStream,
+    pvar_dset_devBoSoft,
+    pvar_dset_devBoSoftRaw,
+    pvar_dset_devBoSoftCallback,
+    pvar_dset_devBoGeneralTime,
+    pvar_dset_asynBoInt32,
+    pvar_dset_asynBoUInt32Digital,
+    pvar_dset_devboStream,
+    pvar_dset_devCalcoutSoft,
+    pvar_dset_devCalcoutSoftCallback,
+    pvar_dset_devcalcoutStream,
+    pvar_dset_devEventSoft,
+    pvar_dset_devHistogramSoft,
+    pvar_dset_devLiSoft,
+    pvar_dset_devLiGeneralTime,
+    pvar_dset_asynLiInt32,
+    pvar_dset_asynLiUInt32Digital,
+    pvar_dset_devlonginStream,
+    pvar_dset_devLoSoft,
+    pvar_dset_devLoSoftCallback,
+    pvar_dset_asynLoInt32,
+    pvar_dset_asynLoUInt32Digital,
+    pvar_dset_devlongoutStream,
+    pvar_dset_devMbbiSoft,
+    pvar_dset_devMbbiSoftRaw,
+    pvar_dset_asynMbbiInt32,
+    pvar_dset_asynMbbiUInt32Digital,
+    pvar_dset_devmbbiStream,
+    pvar_dset_devMbbiDirectSoft,
+    pvar_dset_devMbbiDirectSoftRaw,
+    pvar_dset_asynMbbiDirectUInt32Digital,
+    pvar_dset_devmbbiDirectStream,
+    pvar_dset_devMbboSoft,
+    pvar_dset_devMbboSoftRaw,
+    pvar_dset_devMbboSoftCallback,
+    pvar_dset_asynMbboInt32,
+    pvar_dset_asynMbboUInt32Digital,
+    pvar_dset_devmbboStream,
+    pvar_dset_devMbboDirectSoft,
+    pvar_dset_devMbboDirectSoftRaw,
+    pvar_dset_devMbboDirectSoftCallback,
+    pvar_dset_asynMbboDirectUInt32Digital,
+    pvar_dset_devmbboDirectStream,
+    pvar_dset_devSiSoft,
+    pvar_dset_devTimestampSI,
+    pvar_dset_devSiGeneralTime,
+    pvar_dset_asynSiOctetCmdResponse,
+    pvar_dset_asynSiOctetWriteRead,
+    pvar_dset_asynSiOctetRead,
+    pvar_dset_devstringinStream,
+    pvar_dset_devSoSoft,
+    pvar_dset_devSoSoftCallback,
+    pvar_dset_devSoStdio,
+    pvar_dset_asynSoOctetWrite,
+    pvar_dset_devstringoutStream,
+    pvar_dset_devSASoft,
+    pvar_dset_devWfSoft,
+    pvar_dset_asynWfOctetCmdResponse,
+    pvar_dset_asynWfOctetWriteRead,
+    pvar_dset_asynWfOctetRead,
+    pvar_dset_asynWfOctetWrite,
+    pvar_dset_asynInt8ArrayWfIn,
+    pvar_dset_asynInt8ArrayWfOut,
+    pvar_dset_asynInt16ArrayWfIn,
+    pvar_dset_asynInt16ArrayWfOut,
+    pvar_dset_asynInt32ArrayWfIn,
+    pvar_dset_asynInt32ArrayWfOut,
+    pvar_dset_asynFloat32ArrayWfIn,
+    pvar_dset_asynFloat32ArrayWfOut,
+    pvar_dset_asynFloat64ArrayWfIn,
+    pvar_dset_asynFloat64ArrayWfOut,
+    pvar_dset_devwaveformStream,
+    pvar_dset_asynRecordDevice
+};
+
+epicsShareExtern drvet *pvar_drvet_drvAsyn;
+epicsShareExtern drvet *pvar_drvet_stream;
+
+static const char *driverSupportNames[2] = {
+    "drvAsyn",
+    "stream"
+};
+
+static struct drvet *drvsl[2] = {
+    pvar_drvet_drvAsyn,
+    pvar_drvet_stream
+};
+
+epicsShareExtern void (*pvar_func_asSub)(void);
+epicsShareExtern void (*pvar_func_drvAsynIPPortRegisterCommands)(void);
+epicsShareExtern void (*pvar_func_drvAsynIPServerPortRegisterCommands)(void);
+epicsShareExtern void (*pvar_func_asynRegister)(void);
+epicsShareExtern void (*pvar_func_asynInterposeFlushRegister)(void);
+epicsShareExtern void (*pvar_func_asynInterposeEosRegister)(void);
+epicsShareExtern void (*pvar_func_iocshSystemCommand)(void);
+epicsShareExtern void (*pvar_func_streamRegistrar)(void);
+
+epicsShareExtern int *pvar_int_asCaDebug;
+epicsShareExtern int *pvar_int_dbRecordsOnceOnly;
+epicsShareExtern int *pvar_int_dbBptNotMonotonic;
+epicsShareExtern int *pvar_int_streamDebug;
+static struct iocshVarDef vardefs[] = {
+	{"asCaDebug", iocshArgInt, (void * const)pvar_int_asCaDebug},
+	{"dbRecordsOnceOnly", iocshArgInt, (void * const)pvar_int_dbRecordsOnceOnly},
+	{"dbBptNotMonotonic", iocshArgInt, (void * const)pvar_int_dbBptNotMonotonic},
+	{"streamDebug", iocshArgInt, (void * const)pvar_int_streamDebug},
+	{NULL, iocshArgInt, NULL}
+};
+
+int tv301sf_registerRecordDeviceDriver(DBBASE *pbase)
+{
+    if (!pbase) {
+        printf("pdbbase is NULL; you must load a DBD file first.\n");
+        return -1;
+    }
+    registerRecordTypes(pbase, 28, recordTypeNames, rtl);
+    registerDevices(pbase, 92, deviceSupportNames, devsl);
+    registerDrivers(pbase, 2, driverSupportNames, drvsl);
+    (*pvar_func_asSub)();
+    (*pvar_func_drvAsynIPPortRegisterCommands)();
+    (*pvar_func_drvAsynIPServerPortRegisterCommands)();
+    (*pvar_func_asynRegister)();
+    (*pvar_func_asynInterposeFlushRegister)();
+    (*pvar_func_asynInterposeEosRegister)();
+    (*pvar_func_iocshSystemCommand)();
+    (*pvar_func_streamRegistrar)();
+    iocshRegisterVariable(vardefs);
+    return 0;
+}
+
+/* registerRecordDeviceDriver */
+static const iocshArg registerRecordDeviceDriverArg0 =
+                                            {"pdbbase",iocshArgPdbbase};
+static const iocshArg *registerRecordDeviceDriverArgs[1] =
+                                            {&registerRecordDeviceDriverArg0};
+static const iocshFuncDef registerRecordDeviceDriverFuncDef =
+                {"tv301sf_registerRecordDeviceDriver",1,registerRecordDeviceDriverArgs};
+static void registerRecordDeviceDriverCallFunc(const iocshArgBuf *)
+{
+    tv301sf_registerRecordDeviceDriver(*iocshPpdbbase);
+}
+
+} // extern "C"
+/*
+ * Register commands on application startup
+ */
+class IoccrfReg {
+  public:
+    IoccrfReg() {
+        iocshRegisterCommon();
+        iocshRegister(&registerRecordDeviceDriverFuncDef,registerRecordDeviceDriverCallFunc);
+    }
+};
+#if !defined(__GNUC__) || !(__GNUC__<2 || (__GNUC__==2 && __GNUC_MINOR__<=95))
+namespace { IoccrfReg iocshReg; }
+#else
+IoccrfReg iocshReg;
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sf_registerRecordDeviceDriver.depends	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,19 @@
+# DO NOT EDIT: This file created by mkmf.pl,v 1.5 2002/03/25 21:33:24 jba Exp $ 
+
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/registryCommon.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/iocsh.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/iocshRegisterCommon.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/dbStaticLib.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/registryRecordType.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/shareLib.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/dbFldTypes.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/dbBase.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/link.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/errMdef.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/cantProceed.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/recSup.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/epicsTypes.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/ellLib.h
+tv301sf_registerRecordDeviceDriver.o : /usr/lib/epics/include/dbDefs.h
+
+
Binary file tv301sf/tv301sfApp/src/O.linux-x86_64/tv301sf_registerRecordDeviceDriver.o has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/iocshGlobalCommands.dbd	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,1 @@
+registrar(iocshSystemCommand)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tv301sf/tv301sfApp/src/tv301sfMain.cpp	Mon Mar 10 11:59:21 2014 +0100
@@ -0,0 +1,23 @@
+/* tv301sfMain.cpp */
+/* Author:  Marty Kraimer Date:    17MAR2000 */
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <string.h>
+#include <stdio.h>
+
+#include "epicsExit.h"
+#include "epicsThread.h"
+#include "iocsh.h"
+
+int main(int argc,char *argv[])
+{
+    if(argc>=2) {    
+        iocsh(argv[1]);
+        epicsThreadSleep(.2);
+    }
+    iocsh(NULL);
+    epicsExit(0);
+    return(0);
+}