... funny, I was just using lsof. And it confirmed my growing thoughts.
When I went back a revision, I went back far enough that I took out
my commands to set the FD to non-blocking mode... I was stuck always
looking at the players output and never coming back to the central
select loop. Ooops.

Anyhow, here is my final result for the environment I want.

1) mv ttyS1 hiddenttyS1
2) rm console
3) ln -s hiddenttyS1 console
4) ln -s ttyp0 ttyS1
5) wedge player (wedge is my program name)

Notes:
- I now can parse player output for status info and can control the player
from my program if I want
- I could call "wedge player -s-" and not do the ttyp0 to ttyS1 link but I would
loose the ability to control the player myself.
- I already created about 5 pty sets earlier (ptyp0-5 and ttyp0-5)
- I should dynamically create the ttypX to ttyS1 link from the return
value of forkpty but since not many things are running or requesting
ptys at this point and I want to keep things mounted ro... I'm not :)

I'll update this page with a URL when I get some more of my code
together (probably in about a day) and put things online.

Thanks for everyone's help.

Brett