Xenix VP/IX serial driver support -- what is needed?
clewis at ecicrl.UUCP
clewis at ecicrl.UUCP
Sat Apr 1 12:20:36 AEST 1989
In article <3200 at ddsw1.MCS.COM> karl at ddsw1.MCS.COM (Karl Denninger) writes:
>We've got a small problem. There's this serial driver that we have for
>Xenix & 386/ix. The problem is that we need to handle VP/IX sessions on it,
>and currently it won't work - - complains about not being able to set the
>mode it wants, and then it's boom-boom time.
>
>Obviously since we're coming from a terminal we can't generate scan codes
>(they don't exist!). How do we kludge things in such that it will work,
>even if only in "stupid" mode.
DOSMODE has nothing to do whatsoever with scan-code-mode on the terminal.
Support of scancode and nonscancode mode terminals is *entirely* within
VP/IX (eg: /usr/vpix/term/wyse60, /usr/vpix/term/vt100 etc.) and has nothing to
do with the serial driver. The VP/IX administrator's guide describes how
to support non-scancode terminals on serial lines.
VP/IX support requires that the device driver supports quite a number
of extra ioctl's over and above the normal termio.h stuff. Eg: stuff
in asy.h and v86.h and a few other headers. In brief, VP/IX needs to
set DOSMODE on or off - which is an driver flag which enables/disables
various driver functionality, including:
- allow device driver activity to appear as virtual interrupts
to the emulated DOS environment.
- implementation of a pseudo "raw" input mechanism.
- whenever a DOS program attempts to read/write a virtual COMM port
register, VP/IX catches it and turns it into a ioctl, which
it hands to the driver. The driver then must attempt to
simulate what is actually an 8251 register peek or poke on
whatever hardware you may have (eg: dual-ported intelligent
serial I/O card which uses entirely different chips).
Eg: it must be able to convert a write to the *virtual* 8251
baud register into the appropriate commands on the *real* hardware.
- change start/stop characters and understand their behaviour.
Read the manual pages on asy, v86, VP/IX references and whatever else
you can find. Except for the 8251 emulation (which many DOS programs
don't need), it's only about 15 lines. But as far as I can tell, nobody's
ever published examples. And the code *is* tricky. I implemented VP/IX
functionality into a smart card driver (about the time Computone first got
theirs working), but I needed help. We did get it working. Even though
our board never went into production, I couldn't publish the source even
if I still had it.
The ISC VP/IX documentation is reasonably complete regarding the
routines and parameters required for doing this, but sadly lacking
in any description of why or how they should be used.
[Sort of like telling you how to turn a steering wheel, without telling
you why you'd ever want to]
--
Chris Lewis, Markham, Ontario, Canada
{uunet!attcan,utgpu,yunexus,utzoo}!lsuc!ecicrl!clewis
Ferret Mailing list: ...!lsuc!gate!eci386!ferret-request
(or lsuc!gate!eci386!clewis or lsuc!clewis)
More information about the Comp.unix.xenix
mailing list