one thing you can do is to use a PORT_CONFIG to attach the device and then add PORT_CONDITION to the settings which depend from this (see e.g. coco.c or many MAME drivers for the use of PORT_CONDITION)

also, ideally, you should use Dipswitches only for physical dips, the other settings should use Configs (not sure if you already 'follow' this convention with ti99)