Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!microsoft!ericsa From: ericsa@microsoft.UUCP (Eric Sassaman) Newsgroups: comp.os.os2.programmer Subject: IOPL in 2.0 Message-ID: <57504@microsoft.UUCP> Date: 18 Sep 90 02:43:57 GMT Organization: Microsoft Corp., Redmond WA Lines: 20 > I recently tried to experience the IOPL segment in OS/2 2.0. By > setting IOPL=YES in the config.sys file. By declairing SEGMENTS > IO_TEXT IOPL in the definition file. Writting an IO_TEXT segment with > priviledge instruction in assembly routine. Made a dummy c file which > essencially calls the assembly routine. Generated an EXE file to run. > The executable always give me a page fault error. Does anybody knows > if the IOPL segment exist and runs reliablly in the OS/2 2.0 > environment(386 CPU). It will be appreciated that if you can tell me > how to write such program. The problem is that port I/O from an OS/2 2.0 32-bit application is only allowed in a ring zero code segment. An IOPL segment runs at ring 2; at this level port I/O is not allowed in a 32-bit application. In order for you to do direct port I/O under OS/2 2.0, you will need to either write your application as 16-bit or write a device driver that runs at ring 0. This device driver can be either 16 bit or 32 bit. Eric Sassaman Microsoft OS/2 Systems Support