Unlike PCI, ISA has no concept of mandatory configuration space, apart from optional Legacy Plug and Play. Worst case scenario is that ISA card responds on some arbitrary I/O port known only to manufacturer and hardcoded in driver. Since all installed cards share the bus, you can't really pass through a single card without exactly knowing its resources.
In principle your VM/emulator could intercept guest reads/writes to those selected addresses and pass them (using host-side kernel driver) directly to the card. If the card uses no IRQ nor DMA, that could work. Routing IRQs would be tricky (again: determining which card raises which interrupt without global configuration registers requires a lot of manual work and/or guessing), but I guess it's doable.
DMA won't work. As far as I can tell, you can't use IOMMU to isolate ISA bus memory requests, let alone isolate a single device from the bus. Without knowing how card receives DMA parameters from the driver and no hardware support to translate device-generated addresses, your card would corrupt host memory on first DMA request.
In principle your VM/emulator could intercept guest reads/writes to those selected addresses and pass them (using host-side kernel driver) directly to the card. If the card uses no IRQ nor DMA, that could work. Routing IRQs would be tricky (again: determining which card raises which interrupt without global configuration registers requires a lot of manual work and/or guessing), but I guess it's doable.
DMA won't work. As far as I can tell, you can't use IOMMU to isolate ISA bus memory requests, let alone isolate a single device from the bus. Without knowing how card receives DMA parameters from the driver and no hardware support to translate device-generated addresses, your card would corrupt host memory on first DMA request.