Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


For cessi0g ... Help Me! S.O.S.

Posted on 1998-10-27
Medium Priority
Last Modified: 2013-12-03

      Thanks, dear Jorge...  Sorry! I thought "regards" was a last name  ;(

      Yes this is my first VxD .... I need to access a custom EISA card, under Win9x.

      Jorge,  in your sample source code, you wrote:
      >>   TransferData.Segment = MySegment;
      >>   TransferData.Offset = MyOffset;
      >>   TransferData.aDWord = aDwordValue;  

      Where do you get the values for the Segment/Offset?

      Also, how do I get the Segment and Offset of any given value (or from a function)?
      Then I can send them, using the DeviceIOControl function, to the VxD.
      Now, inside of the VxD you writte :

      >>                   Get_PM_Int_Vector( INTERRUPT, &Segment, &Offset);
      >>                   lpTransferData = (LPTRANSFERDATA)lpDIOCParms->lpvOutBuffer;
      >>                   lpTransferData->Segment = Segment;
      >>                   lpTransferData->Offset = Offset;
      >>                   lpTransferData->aDWord = 0;
      >>                   return 0;

      The Get_PM_Int_vector must return the address of the number of interrupt to check
      where do you do this in your code?

      Besides, using Borland Turbo C 3.0 (16-bit), the way to access the custom card is by means of
      the INTERRUPT (void interrupt )declaration. Below is an example of source code for a timer
      associated with an interrupt. In Visual C 5.0 (32 bit) there is no INTERRUPT declaration, so how
      can I implement the interrupt service routine and related code for the interrupt-driven card, using
      Visual C 5.0?

      Please note that this task is part of my thesis work, and the final product will be used in university
      research and not for profit.

      Best regards, Jorge!  And many thanks.

      // ***********   source Code Timer ***********
      #include <dos.h>
      #include <conio.h>
      #include <stdio.h>
      #define INTR 0x8
      #define TIMEMAX 20
      #define ALTO 119318 >>8
      #define BAJO 119318 & 255
      #ifdef __cplusplus
          #define __CPPARGS ...
          #define __CPPARGS
      void interrupt ( *oldtiempo)(__CPPARGS);
      int count=0,segundo=0;
      void interrupt tiempo(__CPPARGS)
      if (count == 25){
           printf("==>: %d\n",segundo);
      int main(void)
      int vectorON,Modo;
      char ch;
      vectorON= inp(0x21);
      oldtiempo = getvect(INTR);  
                    setvect(INTR, tiempo);
      Modo= inp(0x43);
      puts("Press any key to begin:\n");
      ch= getche();
      puts("INICIANDO CONTEO:\n");
       while (segundo < TIMEMAX);
      setvect(INTR, oldtiempo);
      puts("Test o.k \n");
       return 0;
Question by:poweroff
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Accepted Solution

cessi0g earned 80 total points
ID: 1415648
I think you need a lot of help because this is not as trivial as you could think.
VxD's are a very hard issue to talk about here, and your specific problem could have several solutions, depending exactly on what you want to do and how far you want to go in your thesis.
We could better talk thru e-mail, ok?
Write me at

Por cierto, ¿hablas español?


Author Comment

ID: 1415649
Gracias Jorge!!  
si, si hablo español ( es mi lengua nativa).

gracias por proporcionarme tu e-mail y por todas las atenciones prestadas..

atentamente tu amigo

Merida, Yucatan Mexico.                                            

Expert Comment

ID: 4727909
where can i start on developing a VXD?

any website....?etc?

i'm a master student in EE

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this article, I will show how to use the Ribbon IDs Tool Window to assign the built-in Office icons to a ribbon button.  This tool will help us to find the OfficeImageId that corresponds to our desired built-in Office icon. The tool is part of…
For a while now I'v been searching for a circular progress control, much like the one you get when first starting your Silverlight application. I found a couple that were written in WPF and there were a few written in Silverlight, but all appeared o…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA.…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question