> Any version of Delphi later than 1.0 (that is, any 32 bit version) > doesn't allow you to access the hardware directly (version 1.0 had the > Port() procedure) - so in order to do so you have to write a small piece > of in-line assembler code - this is freely available on the net, and > consists of a handful of op-codes. This then reads the port directly, > and doesn't wait for Windows to give permission - which is why it's not > included in 32 bit Delphi. This is, unfortunately, not quite true. Although you can freely intersperse direct I/O instructions in a Win32 executable on Win95/Win98/WinMe, those instructions result in a trap the the 'virtual machine monitor' in Windows, which virtualizes access to the hardware ports. This results in a significant slowdown. To get _real_ direct access to the ports you must use a device driver, even in Win95/Win98/WinMe. A device driver is required for any direct port access in WinNT/Win2000. Bob Ammerman RAm Systems (contract development of high performance, high function, low-level software) -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu