0,0 → 1,102 |
; <--- description ---> |
; compiler: FASM 1.50 |
; name: Basic window example for MenuetOS |
; version: 1.01 |
; last update: 25/08/2004 |
; written by: Ivan Poddubny |
; e-mail: ivan-yar@bk.ru |
|
|
; <--- include all MeOS stuff ---> |
include "lang.inc" |
include "macros.inc" |
|
|
; <--- start of MenuetOS application ---> |
MEOS_APP_START |
|
|
; <--- start of code ---> |
CODE |
call draw_window ; at first create and draw the window |
|
wait_event: ; main cycle |
mov eax, 10 |
int 0x40 |
|
cmp eax, 1 ; if event == 1 |
je redraw ; jump to redraw handler |
cmp eax, 2 ; else if event == 2 |
je key ; jump to key handler |
cmp eax, 3 ; else if event == 3 |
je button ; jump to button handler |
|
jmp wait_event ; else return to the start of main cycle |
|
|
redraw: ; redraw event handler |
call draw_window |
jmp wait_event |
|
|
key: ; key event handler |
mov eax, 2 ; get key code |
int 0x40 |
|
jmp wait_event |
|
|
button: ; button event handler |
mov eax, 17 ; get button identifier |
int 0x40 |
|
cmp ah, 1 |
jne wait_event ; return if button id != 1 |
|
or eax, -1 ; exit application |
int 0x40 |
|
|
draw_window: |
mov eax, 12 ; start drawing |
mov ebx, 1 |
int 0x40 |
|
mov eax, 0 ; create and draw the window |
mov ebx, 100*65536+300 ; (window_cx)*65536+(window_sx) |
mov ecx, 100*65536+200 ; (window_cy)*65536+(window_sy) |
mov edx, 0x03ffffff ; work area color & window type 3 |
; mov esi, 0 ; grab color (not used) |
; mov edi, 0 ; frame color (not used) |
int 0x40 |
|
mov eax, 4 ; window header |
mov ebx, 8*65536+8 ; coordinates |
mov ecx, 0x10ffffff ; color & font N1 |
mov edx, header ; address of text |
mov esi, header.size ; length of text |
int 0x40 |
|
mov eax, 12 ; finish drawing |
mov ebx, 2 |
int 0x40 |
|
ret |
|
|
|
; <--- initialised data ---> |
DATA |
lsz header,\ |
ru, " ¡«® ¯à®£à ¬¬ë",\ |
en, "Template program",\ |
fr, "La programme poncive" |
|
|
|
; <--- uninitialised data ---> |
UDATA |
|
|
MEOS_APP_END |
; <--- end of MenuetOS application ---> |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |