Subversion Repositories Kolibri OS

Rev

Rev 750 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;                                                              ;;
  3. ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
  4. ;; Distributed under terms of the GNU General Public License    ;;
  5. ;;                                                              ;;
  6. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7.  
  8. $Revision: 750 $
  9.  
  10.  
  11. ;------------------------------------------------------------------
  12. ; use "iglobal" for inserting initialized global data definitions.
  13. ;------------------------------------------------------------------
  14. macro iglobal {
  15.   IGlobals equ IGlobals,
  16.   macro __IGlobalBlock { }
  17.  
  18. macro iglobal_nested {
  19.   IGlobals equ IGlobals,
  20.   macro __IGlobalBlock \{ }
  21.  
  22. ;-------------------------------------------------------------
  23. ; use 'uglobal' for inserting uninitialized global definitions.
  24. ; even when you define some data values, these variables
  25. ; will be stored as uninitialized data.
  26. ;-------------------------------------------------------------
  27. macro uglobal {
  28.   UGlobals equ UGlobals,
  29.   macro __UGlobalBlock { }
  30.  
  31. macro uglobal_nested {
  32.   UGlobals equ UGlobals,
  33.   macro __UGlobalBlock \{ }
  34.  
  35. endg fix }      ; Use endg for ending iglobal and uglobal blocks.
  36. endg_nested fix \}
  37.  
  38. macro IncludeIGlobals{
  39.   macro IGlobals dummy,[n] \{ __IGlobalBlock
  40.      purge __IGlobalBlock  \}
  41.   match I, IGlobals \{ I \} }
  42.  
  43.  
  44. macro IncludeUGlobals{
  45.   macro UGlobals dummy,[n] \{
  46.     \common
  47.       \local begin, size
  48.       begin = $
  49.       virtual at $
  50.     \forward
  51.       __UGlobalBlock
  52.       purge __UGlobalBlock
  53.     \common
  54.       size = $ - begin
  55.     end virtual
  56.     rb size
  57.   \}
  58.   match U, UGlobals \{ U \} }
  59.  
  60. macro IncludeAllGlobals {
  61.   IncludeIGlobals
  62.   IncludeUGlobals
  63. }
  64.  
  65. iglobal
  66. endg
  67.  
  68. uglobal
  69. endg
  70.