2005-10-06 21:56:22 +04:00
|
|
|
;------------------------------------------------------------------
|
|
|
|
; use "iglobal" for inserting initialized global data definitions.
|
|
|
|
;------------------------------------------------------------------
|
|
|
|
macro iglobal {
|
|
|
|
IGlobals equ IGlobals,
|
|
|
|
macro __IGlobalBlock { }
|
|
|
|
|
2006-10-04 18:35:44 +04:00
|
|
|
macro iglobal_nested {
|
|
|
|
IGlobals equ IGlobals,
|
|
|
|
macro __IGlobalBlock \{ }
|
|
|
|
|
2005-10-06 21:56:22 +04:00
|
|
|
;-------------------------------------------------------------
|
|
|
|
; use 'uglobal' for inserting uninitialized global definitions.
|
|
|
|
; even when you define some data values, these variables
|
|
|
|
; will be stored as uninitialized data.
|
|
|
|
;-------------------------------------------------------------
|
|
|
|
macro uglobal {
|
|
|
|
UGlobals equ UGlobals,
|
|
|
|
macro __UGlobalBlock { }
|
|
|
|
|
2006-10-04 18:35:44 +04:00
|
|
|
macro uglobal_nested {
|
|
|
|
UGlobals equ UGlobals,
|
|
|
|
macro __UGlobalBlock \{ }
|
|
|
|
|
2005-10-06 21:56:22 +04:00
|
|
|
endg fix } ; Use endg for ending iglobal and uglobal blocks.
|
2006-10-04 18:35:44 +04:00
|
|
|
endg_nested fix \}
|
2005-10-06 21:56:22 +04:00
|
|
|
|
|
|
|
macro IncludeIGlobals{
|
|
|
|
macro IGlobals dummy,[n] \{ __IGlobalBlock
|
|
|
|
purge __IGlobalBlock \}
|
|
|
|
match I, IGlobals \{ I \} }
|
|
|
|
|
|
|
|
|
|
|
|
macro IncludeUGlobals{
|
|
|
|
macro UGlobals dummy,[n] \{
|
|
|
|
\common
|
|
|
|
\local begin, size
|
|
|
|
begin = $
|
|
|
|
virtual at $
|
|
|
|
\forward
|
|
|
|
__UGlobalBlock
|
|
|
|
purge __UGlobalBlock
|
|
|
|
\common
|
|
|
|
size = $ - begin
|
|
|
|
end virtual
|
|
|
|
rb size
|
|
|
|
\}
|
|
|
|
match U, UGlobals \{ U \} }
|
|
|
|
|
|
|
|
macro IncludeAllGlobals {
|
|
|
|
IncludeIGlobals
|
|
|
|
IncludeUGlobals
|
|
|
|
}
|
|
|
|
|
|
|
|
iglobal
|
|
|
|
endg
|
|
|
|
|
|
|
|
uglobal
|
|
|
|
endg
|