Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!voder!nsc!amdahl!rtech!ingres!seg From: seg@ingres.com (scott e garfinkle) Newsgroups: comp.os.os2.programmer Subject: Re: VIO, KBD and MOU calls. Message-ID: <1991Jun12.164928.23952@ingres.Ingres.COM> Date: 12 Jun 91 16:49:27 GMT References: <1991Jun11.105427.8068@kingston.ac.uk> Organization: Ask Computer Systems, Ingres Products Division Lines: 26 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