Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!rpi!bu.edu!snorkelwacker!ira.uka.de!fauern!lan!charly.bl.physik.tu-muenchen.de!lenz From: lenz@charly.bl.physik.tu-muenchen.de (Udo Lenz) Newsgroups: comp.sys.ibm.pc.misc Subject: Need info: Slow I/O in protected mode Keywords: Protected mode, QEMM, I/O Message-ID: <4925@tuminfo1.lan.informatik.tu-muenchen.dbp.de> Date: 16 Oct 90 11:54:21 GMT Sender: news@lan.informatik.tu-muenchen.dbp.de Distribution: comp Lines: 32 I'm developing a time critical application for an interface card, from which a lot of data is read via assembly 'in ax,dx' commands. When benchmarking the I/O routines on a 20 Mhz 386, I've found out, that the 'in ax,dx' command takes roughly a microsecond longer if I have installed Quarterdesks QEMM memory manager. The same delay appears, if I run it under Windows 3.0 in the 386 mode. My present idea is, that the I/O timing under protected mode is different. I have checked, that the 386 is running in protected mode when using QEMM by testing, that the LSB of the machine status word is set. The assembly reference manual says though, that the timing of the 'in ax,dx' command in protected mode is as fast as in real mode, except if encurring a protection fault. My questions are: What is the reason for the delay in the 'in ax,dx' command when using QEMM? Am I really in protected mode when installing QEMM as a device driver in config.sys? If in protected mode, why do my old assembly routines, which do segment register arithmetic and other dirty things, still run? ------- Udo Lenz Sektion Physik der Universitaet Muenchen Am Coulombwall 1 D-8046 Garching Internet: lenz@charly.bl.physik.tu-muenchen.de Germany Bitnet: lenz@dgablg5p