[comp.os.os2.programmer] VIO, KBD and MOU calls.

cs_b144@ux.kingston.ac.uk (Ian Stickland) (06/11/91)

From what I've heard and read about OS/2 2.0 it would appear that 
the VIO, KBD, and MOU calls have only been kept as 16bit calls. Is
this true, and if so WHY?

If so, does this mean that the PM AVIO interface is also 16bit? I
hope it doesn't, as the VIO is extremely useful for terminal 
emulations and editors. If this is the case does this mean that 
we are supposed to use PM for all output?? Doesn't this somewhat 
restrict our options. 

I've also heard/read that it will be possible to have applications
that are a mixture of 16/32 bit code. Again, is this true, and how
does this work? Would this be a way (yeuk!) of using AVIO calls
under PM perhaps?

Does this ultimately mean that the use of full-screen applications
or development of such programs is being discouraged ?? (Or are 
Boca trying to force Austin into making Communications Manager a
full PM application...)

Does this also mean that LPEX will be consigned to 16 bits forever ?
(sob, sob...)

                     Cheers,

                         Ian Stickland.

seg@ingres.com (scott e garfinkle) (06/12/91)

In article <1991Jun11.105427.8068@kingston.ac.uk> cs_b144@ux.kingston.ac.uk (Ian Stickland) writes:
>
>From what I've heard and read about OS/2 2.0 it would appear that 
>the VIO, KBD, and MOU calls have only been kept as 16bit calls.
>this true, and if so WHY?

Up front caveat:  I am not a PM programmer.  If the API doesn't start with
"Dos", I haven't used it.

It really doesn't make any difference that VIO, et al., are only available
as 16-bit calls.  I think that, in general, only calls of a portable nature
were given 32 bit interfaces.  By definition, calls such as VIO are fairly
PC-specific.  In any case, it is pretty easy to write mixed 32/16 bit
interface programs.  There is a new _far16 keyword to facilitate this,
and the Microsoft SDK documentation is unexpectedly lucid in this area.

The only penalty is, of course, that the calls may end up with some extra
address-mapping and segment-loading overhead.  Since you already had the
segment overhead in the 16 bit world, and the address mapping consists
of about two instructions (a SHR and a MOV, as I recall), I can't get too
worked up.

I suspect that, in the long run, you will be better off for speed going
through PM.  I dunno -- I still have no great desire to do user interfaces.

	-scott e. garfinkle

rommel@Informatik.TU-Muenchen.DE (Kai-Uwe Rommel) (06/13/91)

I have found, that with correct programming, the ANSI sequences and
DosWrite() is quite sufficient to achieve very fast screen output.
You may have noticed the less-2, beav-2 and gnuinfo postings in
comp.binaries.os2. All three are ported Unix programs for which I have
used termcap and good buffering (1-2k) and binary mode for stdout to get
them running. The result is really fast. To achieve the same with VIO,
you need to write directly to the VIO screen buffer and this is *much*
more non-portable. I have done this with a MicroEMACS port and it was
much more work and looked ugly. So far for the VIO API. I have used only
a single VIO call to determine the screen or window size.

For KBD and MOU, there is no such easy substitute. But I don't need and
mouse interface at all in VIO programs. To use kbd and mou
simultaneously one has to use more than one thread and semaphores to
get programs that don't use too much of the CPU while waiting for an
event. I am not shure if this is worth the trouble. (It wasn't for me so
I have removed the mouse interface from the MicroEMACS version I use).

Kai Uwe Rommel

/* Kai Uwe Rommel, Munich ----- rommel@lan.informatik.tu-muenchen.dbp.de */

DOS ... is still a real mode only non-reentrant interrupt
handler, and always will be.                -Russell Williams

larrys@watson.ibm.com (06/14/91)

In <1991Jun11.105427.8068@kingston.ac.uk>, cs_b144@ux.kingston.ac.uk (Ian Stickland) writes:
>
>From what I've heard and read about OS/2 2.0 it would appear that
>the VIO, KBD, and MOU calls have only been kept as 16bit calls. Is
>this true, and if so WHY?

This is true, last time I heard.  I don't know why.

>If so, does this mean that the PM AVIO interface is also 16bit? I
>hope it doesn't, as the VIO is extremely useful for terminal
>emulations and editors. If this is the case does this mean that
>we are supposed to use PM for all output?? Doesn't this somewhat
>restrict our options.

I don't know.

>I've also heard/read that it will be possible to have applications
>that are a mixture of 16/32 bit code. Again, is this true, and how
>does this work? Would this be a way (yeuk!) of using AVIO calls
>under PM perhaps?

This will be possible, via thunks.  I don't know the details.

>Does this ultimately mean that the use of full-screen applications
>or development of such programs is being discouraged ?? (Or are
>Boca trying to force Austin into making Communications Manager a
>full PM application...)

Full-screen apps have always been discouraged by those who feel it is
time to let progress progress.  Whether or not the OS/2 folks (the Boca
Bunch) feel this way, I don't know.  I have been pushing to get Comm.
Mgr. and LAN Req. to become PM apps, but I don't know what the current
status of that is (nor could I tell you if I knew, I'm sure).

>Does this also mean that LPEX will be consigned to 16 bits forever ?
>(sob, sob...)

LPEX?  What's that?  Never heard of it...  ;)

Cheers,
Larry Salomon, Jr. (aka 'Q')            LARRYS@YKTVMV.BITNET
OS/2 Applications and Tools             larrys@ibmman.watson.ibm.com
IBM T.J. Watson Research Center         larrys@eng.clemson.edu
Yorktown Heights, NY

Disclaimer:  The statements and/or opinions stated above are strictly my
own and do not reflect the views of my employer.  Additionally, I have a
reputation for being obnoxious, so don't take any personal attacks too
seriously.

mikem@ibmpa.awdpa.ibm.com (06/18/91)

Oh, found another reference to why Vio, Kbd, and Mou are going away:
Charles Petzold wrote back in August of 1990 (PC Magazine Environments Column)
and sayd these functions were "tightly linked to PC Hardware" as OS/2
becomes portable, these routines would be a confusing. Better to
use C runtime library or PM calls.

If you need a good primer on doing text in PM, here are my references:
Petzold, Charles. Programming the OS/2 Presentation Manager
PC Magazine V8N17 (Oct 17, 1989) The Marriage of Text and Graphics 1  
PC Magazine V8N18 (Oct 31, 1989) The Marriage of Text and Graphics 2  

regards,
~
Michael R. MacFaden    IBM Palo Alto     Marketing Systems
mikem@ibmpa.awdpa.ibm.com, macfaden@paloic1.vnet.ibm.com 
disclaimer:  what I write above is not necessarily my employer's opinion