Mark,
Interesting. I've switched to the motorSim included with the motor module in synApps.
Behaviour is as you've stated. As for bugs, I've also seen the following when starting the IOC:
```
#!../../bin/linux-x86_64/motorSim
< envPaths
epicsEnvSet("IOC","iocMotorSim")
epicsEnvSet("TOP","/mnt/Data/Development/CXRO/tpi/iocs/tpi-motor-sim")
epicsEnvSet("EPICS_BASE","/opt/epics/base")
epicsEnvSet("ASYN","/opt/epics/modules/synApps/support/asyn-R4-37")
epicsEnvSet("MOTOR","/opt/epics/modules/synApps/support/motor-R7-1")
epicsEnvSet("SUPPORT","/opt/epics/modules/synApps/support")
epicsEnvSet("SNCSEQ","/opt/epics/modules/synApps/support/seq-2-2-6")
epicsEnvSet("BUSY","/opt/epics/modules/synApps/support/busy-R1-7-2")
epicsEnvSet("IPAC","/opt/epics/modules/synApps/support/ipac-2-15")
epicsEnvSet("MOTOR_MOTORSIM","/opt/epics/modules/synApps/support/motor-R7-1/modules/motorMotorSim")
cd "/mnt/Data/Development/CXRO/tpi/iocs/tpi-motor-sim"
## Register all support components
dbLoadDatabase "dbd/motorSim.dbd"
motorSim_registerRecordDeviceDriver pdbbase
cd "/mnt/Data/Development/CXRO/tpi/iocs/tpi-motor-sim/iocBoot/iocMotorSim"
dbLoadTemplate("motor.substitutions")
# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
motorSimCreate( 0, 0, -32000, 32000, 0, 1, 4 )
Creating motor simulator: card: 0, axis: 0, hi: 32000, low -32000, home: 0, ncards: 1, naxis: 4
Created motor for card 0, signal 0 OK
Created motor for card 0, signal 1 OK
Created motor for card 0, signal 2 OK
Created motor for card 0, signal 3 OK
# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
drvAsynMotorConfigure("motorSim1", "motorSim", 0, 4)
motorSimCreateController("motorSim2", 8)
# asynSetTraceIOMask("motorSim2", 0, 4)
# asynSetTraceMask("motorSim2", 0, 255)
# motorSimConfigAxis(port, axis, lowLimit, highLimit, home, start)
motorSimConfigAxis("motorSim2", 0, 20000, -20000, 500, 0)
motorSimDriver:motorSimConfigAxis: configuring controller motorSim2 axis 0
motorSimConfigAxis("motorSim2", 1, 20000, -20000, 1500, 0)
motorSimDriver:motorSimConfigAxis: configuring controller motorSim2 axis 1
motorSimConfigAxis("motorSim2", 2, 20000, -20000, 2500, 0)
motorSimDriver:motorSimConfigAxis: configuring controller motorSim2 axis 2
motorSimConfigAxis("motorSim2", 3, 20000, -20000, 3000, 0)
motorSimDriver:motorSimConfigAxis: configuring controller motorSim2 axis 3
## motorUtil (allstop & alldone)
dbLoadRecords("/opt/epics/modules/synApps/support/motor-R7-1/db/motorUtil.db", "P=motorSim:")
##
iocInit
Starting iocInit
############################################################################
## EPICS R7.0.3.1
## EPICS Base built Jan 7 2020
############################################################################
IOC:m1Direction devAsynInt32::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_DIRECTION
IOC:m2Direction devAsynInt32::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_DIRECTION
IOC:m3Direction devAsynInt32::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_DIRECTION
IOC:m4Direction devAsynInt32::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_DIRECTION
IOC:m1Offset devAsynFloat64::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_OFFSET
Error (514,514) PV: IOC:m1Offset ao: init_record
IOC:m1Resolution devAsynFloat64::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_RESOLUTION
Error (514,514) PV: IOC:m1Resolution ao: init_record
IOC:m2Offset devAsynFloat64::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_OFFSET
Error (514,514) PV: IOC:m2Offset ao: init_record
IOC:m2Resolution devAsynFloat64::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_RESOLUTION
Error (514,514) PV: IOC:m2Resolution ao: init_record
IOC:m3Offset devAsynFloat64::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_OFFSET
Error (514,514) PV: IOC:m3Offset ao: init_record
IOC:m3Resolution devAsynFloat64::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_RESOLUTION
Error (514,514) PV: IOC:m3Resolution ao: init_record
IOC:m4Offset devAsynFloat64::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_OFFSET
Error (514,514) PV: IOC:m4Offset ao: init_record
IOC:m4Resolution devAsynFloat64::initCommon drvUserCreate drvmotorAsyn::drvUserCreate, unknown command=MOTOR_REC_RESOLUTION
Error (514,514) PV: IOC:m4Resolution ao: init_record
iocRun: All initialization complete
## motorUtil (allstop & alldone)
motorUtilInit("motorSim:")
epics>
```
Otherwise, the simulator works as intended. Including the allstop and alldone util records.
-Will