thanks, but i get this error code when using struct macro
simple.asm [52]:
ends
struct.inc [86] ends [6]:
make@struct name,fields
struct.inc [106] make@struct [13]:
match fields, define \{ define@struct fields \} }
struct.inc [114] define@struct [5]:
name#field type def
error: undefined symbol.
make: *** [simple.o] Error 2
and this is my code:
format ELF
include 'cdecl.inc'
include 'struct.inc'
struct XPrivDisplay
ext_data rb 4 ; hook for extension to hang data
private1 rb 4
fd rb 4 ; Network socket.
private2 rb 4
proto_major_version rb 4 ; major version of servers X protocol
proto_minor_version rb 4 ; minor version of servers X protocol
vendor rb 4 ; vendor of the server hardware
private3 rb XID
private4 rb XID
private5 rb XID
private6 rb 4
resource_alloc rb 4 ; allocator function
byte_order rb 4 ; screen byte order, LSBFirst, MSBFirst
bitmap_unit rb 4 ; padding and data requirements
bitmap_pad rb 4 ; padding requirements on bitmaps
bitmap_bit_order rb 4; LeastSignificant or MostSignificant
nformats rb 4 ; number of pixmap formats in list
ScreenFormat rb 4 ; pixmap format list
private8 rb 4
release rb 4 ; release of the server
private9 rb 4
private10 rb 4
qlen rb 4 ; Length of input event queue
last_request_read rb 4 ; seq number of last event read
request rb 4 ; sequence number of last request.
private11 rb 4
private12 rb 4
private13 rb 4
private14 rb 4
max_request_size rb 4 ; maximum number 32 bit words in request
db1 rb 4
private15 rb 4
display_name rb 4 ; "host:display" string used on this connect
default_screen rb 4 ; default screen for operations
nscreens rb 4 ; number of screens on this server
screens rb 4 ; pointer to list of screens
motion_buffer rb 4 ; size of motion buffer
private16 rb 4
min_keycode rb 4 ; minimum defined keycode
max_keycode rb 4 ; maximum defined keycode
private17 rb 4
private18 rb 4
private19 rb 4
xdefaults rb 4 ; contents of defaults from server
; there is more to this structure, but it is private to Xlib
ends
public main
extrn exit
extrn g_print
extrn XMapWindow
extrn XCloseDisplay
extrn XCreateSimpleWindow
extrn getenv
extrn XOpenDisplay
extrn sleep
extrn XFlush
section '.data' writeable
display_name db "DISPLAY",0
EX db "ERROR IN CONNECTING TO X SERVER",0Ah,0Bh,0
EX_len equ $ - EX
section '.bss' writeable
win dd ?
disp dd ?
hWindow dd ?
section '.text' executable
proc main, argc, argv
enter
ccall getenv, display_name
ccall XOpenDisplay,eax
test eax,eax
jnz .ok
ccall g_print, EX
ccall exit, 0
.ok:
mov [disp],eax
mov ebx, eax
virtual at ebx
.ad XPrivDisplay
end virtual
;mov ebx, [.ad.default_screen]
;mov esi, [.ad.screen]
ccall XCreateSimpleWindow,[disp],[.ad.screen],0,0,100,100,1,0,0
mov [win],eax
ccall XMapWindow,[disp],[win]
ccall sleep,10
ccall XCloseDisplay,[disp]
return
and file cdecl.inc same as in the gtk-examples, file struct.inc same in the fasmw16723 include macro