home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddrivers.zip / MCA / MCA.C next >
Text File  |  1992-07-06  |  1KB  |  52 lines

  1. USHORT get_POS(USHORT slot_num,USHORT far *card_ID,UCHAR far *pos_regs)
  2. {
  3. USHORT rc, i, lid;
  4.  
  5. if (GetLIDEntry(0x10, 0, 1, &lid))  /* POS LID */
  6.     return (1);
  7.  
  8. /* Get the size of the LID request block */
  9.  
  10. ABIOS_l_blk.f_parms.req_blk_len=sizeof(struct
  11.    lid_block_def);
  12. ABIOS_l_blk.f_parms.LID = lid;
  13. ABIOS_l_blk.f_parms.unit = 0;;
  14. ABIOS_l_blk.f_parms.function = GET_LID_BLOCK_SIZE;
  15. ABIOS_l_blk.f_parms.ret_code = 0x5a5a;
  16. ABIOS_l_blk.f_parms.time_out = 0;
  17.  
  18. if (ABIOSCall(lid,0,(void far *)&ABIOS_l_blk))
  19.     return (1);
  20.  
  21. lid_blk_size = ABIOS_l_blk.s_parms.blk_size; 
  22.  
  23. /* Fill POS regs and card ID */
  24.  
  25. *card_ID = 0xFFFF;
  26. for (i=0; i<NUM_POS_BYTES; i++) { pos_regs[i] =
  27.     0x00; };
  28.  
  29. /* Get the POS registers and card ID for slot */
  30.  
  31. ABIOS_r_blk.f_parms.req_blk_len = lid_blk_size;
  32. ABIOS_r_blk.f_parms.LID = lid;
  33. ABIOS_r_blk.f_parms.unit = 0;;
  34. ABIOS_r_blk.f_parms.function = READ_POS_REGS_CARD;
  35. ABIOS_r_blk.f_parms.ret_code = 0x5a5a;
  36. ABIOS_r_blk.f_parms.time_out = 0;
  37.  
  38. ABIOS_r_blk.s_parms.slot_num = (UCHAR)slot_num & 0x0F;
  39. ABIOS_r_blk.s_parms.pos_buf = (void far * ) pos_regs;
  40. ABIOS_r_blk.s_parms.card_ID = 0xFFFF;
  41. if (ABIOSCall(lid,0,(void far *)&ABIOS_r_blk))
  42.      rc = 1;
  43. else {
  44.      *card_ID = ABIOS_r_blk.s_parms.card_ID; 
  45.      rc = 0;
  46.      }
  47. FreeLIDEntry(lid);
  48. return(rc);
  49. }
  50.  
  51.  
  52.