This is six years late, but for the record...
Dev nodes are created by idmknodd on behalf of the Node entry in your package file that gets idinstalled by pkgadd.
http://osr600doc.xinuos.com/en/man/html.ADM/idinstall.ADM.html
You'll probably want to register your ports:
http://osr600doc.xinuos.com/en/HDK_concepts/ddT_osareg.html
When I was doing drivers on SVR[45] OSes that had a varying number of port, I had my own daemon that noticed when ports were added (not removed) and that created entried in the above files (and init.d and a few others) when new ports appeared.
There were a raft of sample drivers, albeit not tty:
http://www.sco.com/developers/hdk/samples/index.html
You'd match your PCI card:
http://osr600doc.xinuos.com/en/man/html.D3oddi/pci_search.D3oddi.html
so an add_intr_attach to bind to the interrupts, if any, and you were off to the races.
There was one of the "earth books" from the AT&T UNIX days that covered Streams TTYs specifically in a 386 (there wasn't even an "x" for "486" yet...) days that talked about the ioctls you could expect and the binding sequence.
By the time SCO owned SVR[45] licenses most of the world's population (Arnet, Digi, Computone, Corollary, Anvil, Comtrol, etc.) that needed STREAMS tty drivers had already battle-hardened theirs and there just wasn't a lot of doc published because the
number of people doing those from scratched was dwarfed by the NIC and HBA crowds.
In short, the union of serial driver writers and the people still caring about these OSes is much much smaller than the days when we could pack the room at Forum on these topics...as evidenced by the first answer here being 6 years later than you needed.
Good luck...if you're even still at this.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)