I have read Iczelion's Tut's on VxD and I can't cliam im a master of them yet, but I have been given a commision to become such ($$ :D $$) or at least with some specific purpose. My questions is really general knowlege questions: 1) I know that microsoft is trying to get the world to use the WDM's of NT/2000 machines. Q) If i study VxD's in detail will there be a lot of shared idea's between the two when the day comes to forget VxD's??? (Basically, it this a better stepping stone then jumping into WDM's?) 2) The specific purpose is to open up hardware projects for electical students at university, all the while being able to use GUI interfacing on a PC with windows. I have studied AsmIO but it dont think this is what i want (neat shortcut tho). Iczelion has show examples of using BIOS interupts, 'beep' for example. But as i see it for the moment, the I/O is out-going events. If i was use the parrallel port for bi-directional use, i would need to 'poll' *(absolute no-no, i realize this..)* for hardware interupts, or in win32 land, have 'something' send my program an event and then use the VxD to handle this event. Can someone give me a rough idea of what this 'something' should be, another VxD?? (dont think so.. but could be wrong here). Back in 16bit land, it would just write and ISR, but windows32 has left me confused where the right answer is. I have 2 possible solutions in mind: 1) make use of timmer events and discretely poll the control registers of the parallel port. This seems less efficient as its effectively polling. 2) make use of int 0Fh (IRQ7 parallel port lpt1) and somehow hook it to a VxD that would then somehow send messages to ring 3.. (this seems better but is also harder to see how it will come together in practice.) Any comments thought will surely help out, so please give me your thoughts.. Thanx again. NaN
Posted on 2001-02-25 02:16:00 by NaN
Nan, As far as I know, the model from VxDs to WDM is too different that knowing one ain't much help with the other, at least for me, you should see the blank look on my face when I try reading "Programming the WDM" by Walter Oney. And I breezed thru his book for VxD's. Weird. Anyway, it just so happens I'm an electrical engineer, and my favorite thing to do is computer controlled process control. I always thought of a computer as something you plug things into so it can control them. Anyway, there is a few options you can play with to let students control hardware from the computer. But, first, realize these budding geniuses are gonna be sloppy, make mistakes, and generally try to explode your computer. So try to keep them as isolated as possible. To control equipment, I generally use something called a IEEE-488 bus. This is a very expensive cable that transfers byte wide address and data, up to some 20 devices may be serialed together and run off the same bus. The equipment available on this bus is conciderable, from simple voltemters to oscilloscopes, logic analysers, basiclly you name it. But it gets expensive. So, say you want to go cheap. Minimal hardware is a single I/O board built around an 8255 controlleer. The 8255 gives you a whopping THREE bytes, each may be assigned as input or outout. I've seen these as cheap as 60 bucks from the garage shop places (actually decent equipment I wouldn't hesitate to use). They also have an INT line available, which due to their ISA card config are limited to the lower ISR numbers. The only drawback to these are they are quite eazy to blow up. I've done it myself. You can either socket the controller chip (and keep a replacement supply on hand), or build some sort of isolation/buffering box (holding hopefully more durable ro cheaper to replace parts). 8255 chips are about 10 bucks a piece. These boards look like 4 or so IO ports to the computer (the extra is to config the direction). They are accessable with out and in instructions. I've written controllers for them in VC (used for years) and asm (untried) that run out of VB (I made em COM objects). To run from C, perhaps a dll wrapper is easier to use. The one thing I never got to was the ISR event. These do need a VxD or WDM component. For the VxD, you tell it which ISR to seervice with the DeviceIoControl Interface, and it informs you when such happens with the SHELL_PostMessage API. (Weird fact: Coding this VxD a few years back was what got me into Win32ASM) (I never got anywhere). Places to look for 'stuff' are BSOFT, JDR and possible Eagle
Posted on 2001-02-25 10:36:00 by Ernie
Thanx Ernie, Sounds like we have more in common than one would first expect :) . I have a Electrical Control Systems Techonlogy degree, am presently finishing up my Undergrad for Electrical Engineering, and stumbled on Iczelions tut's about a year ago which is was first got my mind tinkering in the direction of win32asm as well (but i realized then I was in no position to start with VxD's (I still don't but with $$ behind me, i will give it my best) ). I also know of the RS-488 bus, and that it is widely used. I also have a few (2) of the 8255 conrollers i ripped out of anchient computers ( :D back when they put everything on chip-holders ). But I dont want fancy for the moment, the purpose is to provide a report on how possible it is to provide basic communication from the outer hardware to the Ring3 application. (Most likely the the students will not be provided access to the VxD software ~ this would be given) Also, the ports will most likely be buffered with Octal buffers (74LS244) and each bit will be transister driven on a separate supply for safetly issues on the port. I aslo have a home made ISA card with its port address on dipswitches, for generic use. I may in the future bring this to use. I will read up the links you have suggested, but in future may i email or post for help if i feel you can? NaN This message was edited by NaN, on 2/25/2001 12:31:37 PM
Posted on 2001-02-25 12:25:00 by NaN
Sure, email me anytime. Come over for drinks too (if you bring the drinks). :-)
Posted on 2001-02-25 13:54:00 by Ernie
Ernie i am also an electronic engieneer, specialized in Microelectronics and Artificial Inteligence (yes we do that in our Univ...got no degree because.... i left in after 5 year of study to make my own company...until today :D) i will sure bring the drinkes if you invite me over also...:D (i might bring the girls also :) ) problem is: I live in Romania...long way to go :P 8255 chips are more cheap here about 3$ never mind just kidding :) This message was edited by BogdanOntanu, on 2/25/2001 10:00:21 PM
Posted on 2001-02-25 21:58:00 by BogdanOntanu