home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 15 / CDACTUAL15.iso / cdactual / program / pascal / PASTRANS.ZIP / BIOSEQUI.C next >
Encoding:
C/C++ Source or Header  |  1990-11-20  |  1.5 KB  |  57 lines

  1.     /* COPYRIGHT 1990 BY VICTOR SCHNEIDER. ALL RIGHTS RESERVED */
  2.  
  3. /* THIS PROGRAM IS A DOS-SPECIFIC EXAMPLE. IT IS MEANT TO BE USED */
  4. /* BY INTERPETED PASCAL PROGRAMS LIKE `BIOSTEST.PAS'; NOTE THE SEMI- */
  5. /* PORTABLE METHOD FOR PASSING A POINTER TO biosequip: */
  6.  
  7. /* PASCAL DECLARATION TO CALL biosequip AS AN EXTERNAL:
  8.  
  9.    PROCEDURE biosequip;    EXTERNAL;
  10.  
  11. */
  12.  
  13. /* THIS C PROGRAM USES FAR POINTERS, AND SHOULD BE COMPILED IN far OR */
  14. /* huge MODEL TO CALL THE APPROPRIATE VERSION OF biosequip() FROM YOUR C */
  15. /* COMPILER'S LIBRARY: */
  16.  
  17. #include <limits.h>
  18. #include <stdlib.h>
  19. #include <stdio.h>
  20. #if defined(TURBC) || defined(MIX)
  21.  int huge biosequip(void);
  22. #else
  23.  int far _bios_equiplist(void);
  24. #endif
  25.  
  26. #define        CHR(x)        ((unsigned char)(x))
  27. #define        ORD(x)        ((unsigned)(x))
  28.  
  29. #define        LToFar(x)    ((void far *)((void huge *)(x)))
  30. #define        FarToL(x)  ((unsigned long)((void huge *)((void far *)(x))))
  31. #define        BEGIN        {
  32. #define        END        ;}
  33. #define        IF        if (
  34. #define        THEN        )
  35. #define        ELSE        else
  36. #define        FOR        for (
  37. #define        AS        ;(
  38. #define        BY        );
  39. #define        DO        )
  40. #define        CASE        switch (
  41. #define        OF        ){
  42. typedef        enum {FALSE,TRUE} BOOLEAN;
  43. typedef        double        REAL;
  44. typedef        char *        ALPHA;
  45.  
  46. void far main(int argc, char *argv[])
  47. BEGIN
  48. int far *FarPtr;
  49.  /* RETURN A FUNCTION VALUE TO THE INTERPRETER VIA FarPtr: */
  50.  sscanf(argv[1], "%Fp", &FarPtr);
  51. #if defined(TURBC) || defined(MIX)
  52.  *FarPtr = biosequip()
  53. #else
  54.  *FarPtr = _bios_equiplist()
  55. #endif
  56. END
  57.