forked from KolibriOS/kolibrios
Added SDK for FASM and some assembler examples.
git-svn-id: svn://kolibrios.org@1180 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
;Hello world example
|
||||
|
||||
use32
|
||||
db 'MENUET01'
|
||||
dd 1
|
||||
dd start
|
||||
dd i_end
|
||||
dd 0x1000
|
||||
dd 0x1000
|
||||
dd 0
|
||||
dd 0
|
||||
|
||||
TRUE = 1
|
||||
FALSE = 0
|
||||
|
||||
include 'libGUI.inc'
|
||||
|
||||
start:
|
||||
;load libGUI labrari
|
||||
push NULL ;use default system path to library
|
||||
call LoadLibGUI
|
||||
;create main window
|
||||
CreateWindow
|
||||
mov [window],eax
|
||||
;change size of main window
|
||||
SetWindowSizeRequest [window],220,142
|
||||
;set callback function for button close window
|
||||
SetCallbackFunction [window],DELETE_EVENT,callback_func_delete_window,NULL
|
||||
|
||||
;create control Image
|
||||
mov [imgdata.x],5
|
||||
mov [imgdata.y],5
|
||||
mov [imgdata.wight],200
|
||||
mov [imgdata.height],100
|
||||
mov [imgdata.bits_per_pixel],32
|
||||
CreateImage imgdata
|
||||
mov [image],eax
|
||||
|
||||
;copy data from pointer to local variable
|
||||
;for access to filds of structure
|
||||
mov ecx,[image]
|
||||
mov eax,[ecx+HEADER_SIZE+2] ;pointer to picture
|
||||
|
||||
xor ecx,ecx
|
||||
for_size_y:
|
||||
xor edx,edx
|
||||
for_size_x:
|
||||
;generate color
|
||||
mov ebx,edx ;i
|
||||
mov esi,ecx ;j
|
||||
imul ebx,ebx ;i*i
|
||||
imul esi,esi ;j*j
|
||||
add ebx,esi ;i*i+j*J
|
||||
mov esi,edx ;i
|
||||
lea esi,[esi+2*esi] ;i*3
|
||||
sub ebx,esi ;i*i+j*j-i*3
|
||||
mov esi,ecx ;j
|
||||
shl esi,1 ;j*2
|
||||
add ebx,esi ;i*i+j*j-i*3+2*j
|
||||
imul ebx,100 ;100*(i*i+j*j-i*3+2*j)
|
||||
|
||||
mov [eax],ebx
|
||||
add eax,4
|
||||
inc edx
|
||||
cmp edx,200
|
||||
jl for_size_x
|
||||
inc ecx
|
||||
cmp ecx,100
|
||||
jl for_size_y
|
||||
|
||||
;pack control Text in window
|
||||
PackControls [window],[image]
|
||||
|
||||
;start libGUI main loop
|
||||
LibGUImain [window]
|
||||
|
||||
|
||||
;void callback_func_delete_window(header_t *control,void *data)
|
||||
callback_func_delete_window:
|
||||
|
||||
mov eax,[esp+4] ;control
|
||||
|
||||
QuitLibGUI eax
|
||||
|
||||
ret
|
||||
align 4
|
||||
;----------------data-----------------
|
||||
imgdata gui_image_data_t
|
||||
window rd 1;parent_t *window
|
||||
image rd 1
|
||||
|
||||
i_end:
|
||||
Reference in New Issue
Block a user