Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!rphroy!caen!uwm.edu!bionet!agate!ucbvax!bcrvmpc3.vnet.ibm.com!klos From: klos@bcrvmpc3.vnet.ibm.com (Marty Klos) Newsgroups: comp.os.os2.programmer Subject: OS/2 device drivers Message-ID: <9104112254.AA26109@ucbvax.Berkeley.EDU> Date: 11 Apr 91 22:54:38 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 20 References: <1991Apr09.151935.19325@lut.fi> I know that in IBM C/2 (MSC 5.1), the i/o routines were already in a separate segment in the large model libraries. You could access them by using a .def file to the linker containing the line: SEGMENTS '_IOSEG' CLASS 'IOSEG_CODE' IOPL Although I haven't used MSC 6.0, I would suspect it still works. Try looking in the .map file for your program that uses inp or outp. If you see 'IOSEG_CODE', then this should work. Beware, there is a performance hit (vs DOS) because every call to an IOPL routine from a non-IOPL routine goes through a call gate. Also, be aware that you will need the function versions of inp and outp, not the *intrinsic* (translation: in-line) versions. Marty Klos/Internet: klos@vnet.ibm.com