[comp.unix.programmer] SCO video device driver documentation

6600joef@ucsbuxa.ucsb.edu (Joe Foster) (06/10/91)

Help! I'm attempting to write a device driver to allow my programs,
running on SCO XENIX/386 2.3.3, to fully use my super-VGA card, an ATI
VGAWonder. It has full VGA compatibility, so XENIX thinks it's a plain old
VGA. However, SCO did not completely document the special interface I'm
supposed to use to support the multiscreens. So far, my driver can detect
the card and use ioctl's to tell processes how much memory is on the card,
what version card is installed, etc. I have not been able to initialize
any text or graphics modes successfully.

Well, here are some specific questions:

1) Is my put-character routine responsible for cr/nl translation, etc?
   Each screen buffer has a termio struct attached to it, but am I
   responsible for maintaining and interpreting it?
2) When and how should my driver allocate memory for saving the multiscreens?
3) How should my driver handle vidi font requests?
4) Do I have to support the VGA modes myself, or is there a way I can
   convince SCO's VGA driver to cooperate with mine so I don't have to
   reinvent so many wheels?
5) How does my driver report error conditions, such as "insufficient
   multiscreen memory" if someone should try to switch into 132x44 mode when
   there isn't enough memory to save its state during a multiscreen
   switch?
6) Is there additional (written) documentation I can get my hands on? SCO's
   video driver interface is pretty different from normal character device
   drivers, and most of the assumptions I've made about the video interface
   so far have come back to kick my tail.

Thanks!
Joe Foster
6600joef@ucsbuxa.ucsb.edu