rtps.h
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:6k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. /* File: rtps.h - Runtime constants                                     */
  2. /* NOTE: When making changes to this file, be sure to make equivalent   */
  3. /*       changes to file rtps.inc                                       */
  4. /* [2] - 07/16-90 timke    Define BINSAV_ constants for QB45C. */
  5. /* [1] - 10/31/88 Markcha  Changed BINSAV_ and QLB_ constants for QBJ */
  6. #undef RTPS_H
  7. #define RTPS_H ON       /* remember that this file has been included */
  8. /* [LINE] INPUT prompt flags */
  9. #define FINP_QSupress 1
  10. /* set if "prompt" was followed by a comma,
  11.    not a semicolon, indicating "? " is not to be
  12.    output after prompt. */
  13. #define FINP_CrLf 2
  14. /* set if INPUT was followed by optional ";",
  15.    meaning CrLf is not to be output when user
  16.    presses return. */
  17. #define FINP_Prompt 4 /* set if the optional SDPrompt argument is included. */
  18. /* File LOCK & UNLOCK Constants */
  19. #define LOCK_UNLOCK 1 /* set if operation is UNLOCK, not LOCK */
  20. #define LOCK_1stToLast 2 /* set if only part of file */
  21. #define LOCK_RtMask 3 /* bits which get passed to runtime */
  22. #define LOCK_Def1stArg 4 /* set if 1st arg defaulted */
  23. #define LOCK_DefLastArg 8 /* set if last arg defaulted */
  24. /* File Open mode, access, locking flags */
  25. #define MD_SQI 1 /* for INPUT */
  26. #define MD_SQO 2 /* for OUTPUT */
  27. #define MD_RND 4 /* [for RANDOM] */
  28. #define MD_APP 8 /* for APPEND */
  29. #define MD_BIN 16 /* for BINARY */
  30. #define MD_DEFAULT MD_RND /* [for RANDOM] */
  31. #define ACCESS_READ 1 /* READ */
  32. #define ACCESS_WRITE 2 /* WRITE */
  33. #define ACCESS_BOTH 3 /* READ WRITE */
  34. #define LOCK_READ 0x30 /* LOCK READ */
  35. #define LOCK_WRITE 0x20 /* LOCK WRITE */
  36. #define LOCK_BOTH 0x10 /* LOCK READ WRITE */
  37. #define LOCK_SHARED 0x40 /* LOCK SHARED */
  38. /* DOS does not allow you to do a CD (change directory) to a path > 64,
  39.  * but once you are in a directory whose path is 64 bytes long, DOS
  40.  * will let you open a 64 byte relative path, making the maximum length
  41.  * of a filename accessible by DOS = 128.  Since the runtime just has 1
  42.  * static copy of a filename buffer, they decided to let running programs
  43.  * access files whose full path > 64 (even though you can't get into the
  44.  * lowest directory from DOS.
  45.  *   The user interface chooses to limit the path to 64 for the directory,
  46.  * and 12 for the filename (and 1 for a 0-byte terminator).  This is for
  47.  * two reasons:
  48.  *   - The directory that source files are saved in should be accessible by
  49.  *     all programs (including command.com).  
  50.  *   - There are several layers of functions in the user interface code that
  51.  *     each need a copy of a filename.  The increased stack demands of going
  52.  *     to 128 are prohibitive.
  53.  */
  54. #define FILNAML 128+1 /* max. filename length for runtime */
  55. #define FILNAML64 64+12+1 /* max. filename length for user interface */
  56. /* Runtime Value Types */
  57. #define VT_I2 0x02 /* short integer */
  58. #define VT_I4 0x14 /* long integer */
  59. #define VT_R4 0x04 /* 32 bit real */
  60. #define VT_R8 0x08 /* 64 bit real */
  61. #define VT_SD 0x03 /* string */
  62. /* Runtime bits for b$CtrlFlags */
  63. #define NoSTACKINIT 0x01h   /* Doesn't call B$STACKINIT when set during
  64.       B$RUNINI or B$CHNINI calls. */
  65. /* Extended Out of Memory error codes for b$errinfo. */
  66. #define OMErr_OM   0x00h    /* generic OM error                               */
  67. #define OMErr_NH   0x01h    /* out of near heap space ( DS > 64k )            */
  68. #define OMErr_FH   0x02h    /* out of far heap space ( out of system memory ) */
  69. #define OMErr_STK  0x03h    /* out of stack space                             */
  70. #define OMErr_Proc 0x04h    /* out of Procedure text table space ( > 64k )    */
  71. #define OMErr_Mod  0x05h    /* out of Module text table space ( > 64k )       */
  72. #define OMErr_Inc  0x06h    /* out of Include file text table space ( > 64k ) */
  73. #define OMErr_Doc  0x07h    /* out of Document file text table space ( > 64k ) */
  74. /* File type constants for user-option path searching */
  75. #define LIBFILE    0x00     /* search user-specified LIB path */
  76. #define EXEFILE    0x06     /* search user-specified EXE path */
  77. #define INCFILE    0x0c     /* search user-specified INCLUDE path */
  78. #define HELPFILE   0x12     /* search user-specified HELP path */
  79. /* QBI version & format revision constants (used by U.L. & Binary SAVE/LOAD)  */
  80. /* if BINSAV_CBSPECHDR is changed, check MAX_SPECHDRSIZE in BinSav.ASM       */
  81. #define BINSAV_CBSPECHDR     0x0010
  82. #if EI_EB
  83. #define BINSAV_BASICVersion  0x0002 /* BASIC version number for EB */
  84. #define BINSAV_REVISION_BYTE 0x01 /* binary save format revision byte */
  85. #endif //[1]
  86. #if FL_JAPAN //[2]
  87. #define BINSAV_BASICVersion  0x0003 /*[1] BASIC version number for QBJ */
  88. #define BINSAV_REVISION_BYTE 0x00 /*[1] binary save format revision byte */
  89. #define QLB_BASICVersion     0x0003 /*[1] BASIC version QLB's compat. with */
  90. #define QLB_REVISION_BYTE    0x00 /*[1] QuickLib format revision byte */
  91. #endif
  92. #if FL_TAIWAN //[2]
  93. #define BINSAV_BASICVersion  0x0004 /* BASIC version number for QBC */
  94. #define BINSAV_REVISION_BYTE 0x00 /* binary save format revision byte */
  95. #define QLB_BASICVersion     0x0004 /* BASIC version QLB's compat. with */
  96. #define QLB_REVISION_BYTE    0x00 /* QuickLib format revision byte */
  97. #endif
  98. #ifndef BINSAV_BASICVersion //[2] default version (American QB)
  99. #define BINSAV_BASICVersion  0x0001 /* BASIC version number for QB */
  100. #define BINSAV_REVISION_BYTE 0x00 /* binary save format revision byte */
  101. #define QLB_BASICVersion     0x0000 /* BASIC version QLB's compat. with */
  102. #define QLB_REVISION_BYTE    0x13 /* QuickLib format revision byte */
  103. #endif //[1]
  104. /* Minimum space for NMALLOC buffer. */
  105. #define NMALLOC_MIN      0x0006 /* Minimum NMALLOC space needed */