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

操作系统开发

开发平台:

Visual C++

  1. ;Executor.inc
  2. EXECUTOR_INC = ON
  3. ;===========================================================================
  4. ;Executor static data
  5. ;
  6. ;===========================================================================
  7. ;===========================================================================
  8. ;Begin of Statement flags
  9. sBegin DATA
  10. externW BosFlags ;Begin of Statement Flags
  11. ; Current frame pointer, only valid when in the user interface (i.e. after
  12. ; UserInterface() is called and before it returns).
  13. ; Used to impliment PStep.
  14. externW FrameCur
  15. ife EXPRINT_ASM
  16. externB executorFlags ;flags that get reset whenever a runtime error occurs, 
  17. ;i.e., flags whose meaning is only valid within a 
  18. ;single statement
  19. endif ;EXPRINT_ASM
  20. ife EXARRAY_ASM
  21.     extrn   DimAtScanType:byte ;Type of Dim initiated by scanner
  22. endif ;EXARRAY_ASM
  23. sEnd DATA
  24. ; NOTE: FBOSDEBUG should have the highest value of all FBOS bits. This means
  25. ; that this bit is the LAST one to be tested (lowest priority of 
  26. ; BOS exception handling).
  27. ; NOTE: FBOSSTOP should have the next highest value. This is so that if a user
  28. ; has an event handler for the Ctl-Break key, it will take precedence
  29. ; over the normal 'stop the program' behavior of Ctl-Break.
  30. ; NOTE: FBOSEVENT should have the next highest value. This is so a lot of 
  31. ; events stacked up won't prevent other BOS items from occuring.
  32. ; It's higher priority than FBOSDEBUG because we don't want to
  33. ; allow user to trace into event handlers (he can set a breakpoint).
  34. ; A useful analogy for this is interrupt handlers are not traced into
  35. ; in symdeb.
  36. FBOSRESETSTK EQU 1h ;Set by the CLEAR support code; causes the stack to
  37. ; be reset (both SP & BP) at next BOS/BOL
  38. FBOSEVENT EQU 2h ;Set by event handlers.  Tells bos to service event
  39. FBOSSTOP EQU 4h ;Set by runtime callback when user hits ctl-break
  40. FBOSDEBUG EQU 8h ;Set by B$FERROR when a runtime error occurs in a
  41. ; module for which no error handler exists. B$FERROR
  42. ; moves the oTxt back to the last opBos prior to
  43. ; where the error occured, sets this bit, and dispatches
  44. ; Also set by user interface when any breakpoints
  45. ; are set, any watch expressions are active, or
  46. ; when program tracing is active.  Causes next bos
  47. ; to enter UserInterface()
  48. ;The following mnemonic constants are used for DimAtScanType
  49. SSDIM_EXECUTE equ 0 ;Normal execution time Dim
  50. SSDIM_STATIC equ 1 ;Dim of $Static array
  51. SSDIM_COMMON equ 2 ;Dim of Common $Static array
  52. ;Bit flags used in executorFlags
  53. F_EXEC_ItemPrinted EQU 1 ;TRUE if we've printed something already
  54. F_EXEC_Write EQU 2 ;TRUE if we've seen exStWrite but haven't 
  55. ;actually printed anything yet
  56. ;===========================================================================
  57. ;Executor entry points
  58. ;===========================================================================
  59. ife CONTEXT_ASM
  60. extrn EnStaticStructs:far
  61. extrn DisStaticStructs:far
  62. endif ;CONTEXT_ASM
  63. ife EXARYUTL_ASM
  64. extrn oVarToPAd:near
  65. endif ;EXARYUTL_ASM
  66. ife EXMATHOP_ASM
  67. extrn CompareI4:near
  68. endif ;EXMATHOP_ASM
  69. ife EXCONTXT_ASM
  70. extrn StopGrsContext:near
  71. extrn StartGrsContext:far
  72. endif ;EXCONTXT_ASM