# This example if for OMS VME8/44 controllers.  Since OMS controllers
# communicate across the VME backplace, this example does not require
# ASYN.

# "#!" marks lines that can be uncommented.

#The following must be added for many board support packages
#!cd "... IOC st.cmd complete directory path ... "

< cdCommands
#!< ../nfsCommands

cd topbin

# If the VxWorks kernel was built using the project facility, the following must
# be added before any C++ code is loaded (see SPR #28980).
sysCplusEnable=1

ld < NoAsynVx.munch

cd startup
dbLoadDatabase("$(TOP)/dbd/NoAsynVx.dbd")
NoAsynVx_registerRecordDeviceDriver(pdbbase)

dbLoadTemplate("motor.substitutions")
dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=IOC:")

#!dbLoadRecords("$(TOP)/motorApp/Db/SoftMotorEx.db","user=IOC,motor=m1", startup)

# OMS VME driver setup parameters: 
#     (1)cards, (2)base address(short, 16-byte boundary), 
#     (3)interrupt vector (0=disable or  64 - 255), (4)interrupt level (1 - 6),
#     (5)motor task polling rate (min=1Hz,max=60Hz)
#!omsSetup(1, 0xFC00, 180, 5, 10)
#!drvOMSdebug = 4

# OMS VME58 driver setup parameters: 
#     (1)cards, (2)base address(short, 4k boundary), 
#     (3)interrupt vector (0=disable or  64 - 255), (4)interrupt level (1 - 6),
#     (5)motor task polling rate (min=1Hz,max=60Hz)
#!oms58Setup(1, 0x1000, 190, 5, 10)
#!drvOms58debug = 4

# OMS MAXv driver setup parameters: 
#     (1)number of cards in array.
#     (2)VME Address Type (16,24,32).
#     (3)Base Address on 4K (0x1000) boundary.
#     (4)interrupt vector (0=disable or  64 - 255).
#     (5)interrupt level (1 - 6).
#     (6)motor task polling rate (min=1Hz,max=60Hz).
#!MAXvSetup(1, 16, 0xF000,     190, 5, 10)
#!MAXvSetup(1, 24, 0xF00000,   190, 5, 10)
#!MAXvSetup(1, 32, 0xB0000000, 190, 5, 10)
#!drvMAXvdebug=4

# OMS MAXv configuration string:
#     (1) number of card being configured (0-14).
#     (2) configuration string; axis type (PSO/PSE/PSM) MUST be set here.
#         For example, set which TTL signal level defines
#         an active limit switch.  Set X,Y,Z,T to active low and set U,V,R,S
#         to active high.  Set all axes to open-loop stepper (PSO). See MAXv
#         User's Manual for LL/LH and PSO/PSE/PSM commands.
#config0="AX LL PSO; AY LL PSO; AZ LL PSO; AT LL PSO; AU LH PSO; AV LH PSO; AR LH PSO; AS LH PSO;"

#!config0="AX LH PSM; AY LL PSO; AZ LL PSO; AT LL PSO; AU LH PSO; AV LH PSO; AR LH PSO; AS LH PSO;"
#!MAXvConfig(0, config0)


# PMAC VME driver setup parameters: 
#     (1)cards, (2) VME Address Type (24,32)
#     (3)Mailbox base address, (4)DPRAM base address, 
#     (5)interrupt vector (0=disable or  64 - 255),
#     (6)interrupt level (1 - 6),
#     (7)motor task polling rate (min=1Hz,max=60Hz)
#!PmacSetup(1, 32, 0xB07FA000, 0xB0700000, 0, 5, 2)
#!PmacSetup(1, 24, 0x7FA000, 0x700000, 0, 5, 2)
#!drvPmacdebug = 4

iocInit

# motorUtil (allstop & alldone)
motorUtilInit("IOC:")

