kolibrios-fun/programs/develop/koldbg/globals!.inc

119 lines
3.1 KiB
PHP
Raw Normal View History

macro forward_list_builder name {
local c
macro .#name a& \{
\local m
c equ m
macro m a
\}
macro name#List \{
irpv v,c \\{
;\\forward
v
\\}
\}
}
macro reverse_list_builder name {
local c
macro .#name a& \{
\local m
c equ m
macro m a
\}
macro name#List \{
irpv v,c \\{
\\reverse
v
\\}
\}
}
forward_list_builder IGlobalBlock
forward_list_builder SGlobalBlock
forward_list_builder TGlobalBlock
forward_list_builder UGlobalBlock
forward_list_builder VGlobalBlock
forward_list_builder XGlobalBlock
;------------------------------------------------------------------
; use "tglobal" for inserting TLS definitions.
;------------------------------------------------------------------
macro tglobal {
.TGlobalBlock { }
macro tglobal_nested {
.TGlobalBlock \{ }
;------------------------------------------------------------------
; use "vglobal" for inserting virtual definitions.
;------------------------------------------------------------------
macro vglobal {
.VGlobalBlock { }
macro vglobal_nested {
.VGlobalBlock \{ }
;------------------------------------------------------------------
; use "iglobal" for inserting initialized global data definitions.
;------------------------------------------------------------------
macro iglobal {
.IGlobalBlock { }
macro iglobal_nested {
.IGlobalBlock \{ }
;------------------------------------------------------------------
; use "sglobal" for inserting strings definitions.
;------------------------------------------------------------------
macro sglobal {
.SGlobalBlock { }
macro sglobal_nested {
.SGlobalBlock \{ }
;-------------------------------------------------------------
; use 'uglobal' for inserting uninitialized global definitions.
; even when you define some data values, these variables
; will be stored as uninitialized data.
;-------------------------------------------------------------
macro uglobal {
.UGlobalBlock { }
macro uglobal_nested {
.UGlobalBlock \{ }
;-------------------------------------------------------------
; use 'xglobal' for inserting uninitialized global definitions.
; even when you define some data values, these variables
; will be stored as uninitialized data.
;-------------------------------------------------------------
macro xglobal {
.XGlobalBlock { }
macro xglobal_nested {
.XGlobalBlock \{ }
endg fix } ; Use endg for ending iglobal and uglobal blocks.
endg_nested fix \}
macro IncludeGlobals MacroName
{
local Begin,Size
virtual at $
Begin = $
MacroName
Size = $-Begin
end virtual
rb Size
}
macro IncludeAllGlobals {
IGlobalBlockList
SGlobalBlockList
UDataStr:
IncludeGlobals UGlobalBlockList ;will be zeroed
UDataEnd:
IncludeGlobals XGlobalBlockList ;will be undefined
}