??? 01/16/07 19:06 Read: times |
#130917 - ...and the reason is ... Responding to: ???'s previous message |
Richard Erlacher said:
Windows will not. In order to extract useful function, at the hardware level, from your PC, you have to have special drivers, which, unless they're correctly written, and most aren't, won't do what you expect.
The only way to get proper function out of your EPP-capable parallel port is to write a proper driver and run it under MS-DOS. Windows 9x will trip you up. Later Windows will stop you cold. Useful and PC are potentially compatible. Useful, PC, and Windows, are not. Jeez, Windows bashing. Shooting fish in a barrel. The real reason NT-based Windows (incl. 2000, XP, Vista) specifically disallow direct hardware access is because with it's a multitasking operating system, and as such, there's a real possibility that more than one task may wish to access the hardware at the same time. If this was allowed, then the result is undefined. It could be as benign as a program reading the wrong data, or as catastrophic as the machine crashing. So the solution is (and this is not a Windows innovation; it's true for every multitasking operating system) to abstract the hardware. The application always talks to hardware through a driver. If another application is using the hardware, the port access is disallowed by the driver in a graceful manner. Another benefit here is that to access any and all devices belonging to a common class (for example, serial ports, or audio devices, or network cards, or whatever), your application talks to the driver using a standard set of API calls. The beauty of this is that the application can talk to a peripheral made by any vendor. And it can be extended further: your application doesn't have to know that the serial port isn't a "real" serial port but instead is a USB device. Audio applications talk to audio devices over the same API, whether the device itself is a PCI card, an ISA card, a USB or FireWire device. And here's the really screwed up thing regarding RS-232 serial ports: the standard API used to talk to serial ports has existed, basically unchanged, in Windows since the beginning. Certainly it was in Windows 3.1, because I used it. If the very old software (that people still want to use??) had been written to use that API instead of the inport() and outport() BIOS pokes and peeks, the software would still be usable today. Sure, there was a learning curve associated with learning to write Windows code, but back then the Borland tools were pretty good and it wasn't difficult for this hardware guy to get a simple serial-interface program up and running. OK, not as simple as command-line DOS, but I'd argue more useful (which was true for my applications). ANYWAYS: if you insist on using programs that do direct hardware access on a PC, boot the thing into DOS and bypass all Windows stuff entirely. As far as I know, there's nothing preventing that (although I've no idea if modern BIOSes even support the old BIOS calls). -a |
Topic | Author | Date |
doubt about ports | 01/01/70 00:00 | |
and one more doubt | 01/01/70 00:00 | |
Programming the PC | 01/01/70 00:00 | |
Off Topic | 01/01/70 00:00 | |
Wrong forum | 01/01/70 00:00 | |
Win ports | 01/01/70 00:00 | |
Bad practice... | 01/01/70 00:00 | |
Bad practice | 01/01/70 00:00 | |
some thoughts | 01/01/70 00:00 | |
Do not hard-code adresses! | 01/01/70 00:00 | |
You need to tell us more ... | 01/01/70 00:00 | |
MS-DOS | 01/01/70 00:00 | |
why? | 01/01/70 00:00 | |
Misunderstanding ? | 01/01/70 00:00 | |
Not quite so | 01/01/70 00:00 | |
a parallel in '51 | 01/01/70 00:00 | |
Sharing | 01/01/70 00:00 | |
OK, the sad facts | 01/01/70 00:00 | |
MS-DOS will allow and do anything the PC can do | 01/01/70 00:00 | |
...and the reason is ... | 01/01/70 00:00 | |
If Windows were truly multi-user/multitasking ... | 01/01/70 00:00 | |
it's broken | 01/01/70 00:00 | |
So much for the "Good Old Days" | 01/01/70 00:00 | |
Yes, and the ones that worked, worked really well | 01/01/70 00:00 | |
The Right one![]() | 01/01/70 00:00 |