kolibrios-fun/programs/develop/fasm/trunk/fasm.inc

148 lines
2.5 KiB
PHP
Raw Normal View History

center fix false
SYSTEMCOLORS fix sc
PROCESSINFO fix pinfo
macro get_sys_colors wnd_skin,font_1 {
mcall 48,3,SYSTEMCOLORS,sizeof.system_colors
if wnd_skin <> 0
or [SYSTEMCOLORS+system_colors.work],0x03000000
end if
if font_1 <> 0
or [SYSTEMCOLORS+system_colors.grab_text],0x10000000
end if
}
macro draw_caption _edx,_esi {
mov edx,_edx
mov esi,_esi
call __draw_caption
}
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
end if
}
macro __mov reg,a,b {
if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
mov reg,a
end if
}
macro mcall a,b,c,d,e,f {
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
macro sz name,[data] {
if used name
common
label name
forward
db data
common
.size = $-name
end if
}
macro lsz name,[lng,data] {
if used name
common
label name
forward
if lang eq lng
db data
end if
common
.size = $-name
end if
}
macro mmov reg,a1,a2 {
mov reg,(a1) shl 16 + (a2)
}
macro madd reg,a1,a2 {
add reg,(a1) shl 16 + (a2)
}
macro msub reg,a1,a2 {
sub reg,(a1) shl 16 + (a2)
}
macro jmpe reg,def,[val,lab] {
forward
cmp reg,val
je lab
common
if ~def eq
jmp def
end if
}
macro func name {
if used name
name:
}
macro endf {
end if
}
@^ fix macro comment {
^@ fix }
; structure definition helper
;include '%fasminc%struct.inc'
include 'struct.inc'
; structures used in MeOS
struct process_information
cpu_usage dd ? ; +0
window_stack_position dw ? ; +4
window_stack_value dw ? ; +6
not_used1 dw ? ; +8
process_name db 12 dup(?) ; +10
memory_start dd ? ; +22
used_memory dd ? ; +26
PID dd ? ; +30
x_start dd ? ; +34
y_start dd ? ; +38
x_size dd ? ; +42
y_size dd ? ; +46
slot_state dw ? ; +50
not_used2 db 1024-52 dup(?)
ends
struct system_colors
frame dd ?
grab dd ?
grab_button dd ?
grab_button_text dd ?
grab_text dd ?
work dd ?
work_button dd ?
work_button_text dd ?
work_text dd ?
work_graph dd ?
ends