Subversion Repositories Kolibri OS

Rev

Rev 1143 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
31 halyavin 1
; <--- description --->
383 heavyiron 2
; compiler:     FASM 1.67
3
; name:         Basic window example for KolibriOS
4
; version:      1.02
5
; last update:  1/03/2007
31 halyavin 6
; written by:   Ivan Poddubny
7
; e-mail:       ivan-yar@bk.ru
383 heavyiron 8
;modified by: Heavyiron
31 halyavin 9
 
10
; <--- include all MeOS stuff --->
11
include "lang.inc"
485 heavyiron 12
include "..\..\..\..\macros.inc"
31 halyavin 13
 
14
 
15
; <--- start of MenuetOS application --->
16
MEOS_APP_START
17
 
18
 
19
; <--- start of code --->
20
CODE
21
 
383 heavyiron 22
   mov  eax,48                      ; get system colors
23
   mov  ebx,3
24
   mov  ecx,sc
25
   mov  edx,sizeof.system_colors
485 heavyiron 26
   mcall
383 heavyiron 27
 
28
  redraw:                                ; redraw event handler
29
   call    draw_window            ; at first create and draw the window
30
 
31 halyavin 31
  wait_event:                      ; main cycle
32
    mov     eax, 10
485 heavyiron 33
    mcall
31 halyavin 34
 
383 heavyiron 35
    dec   eax                    ;   if event = 1
36
    jz      redraw               ;   jump to redraw handler
37
    dec   eax                    ;   else if event = 2
38
    jz      key                    ;   jump to key handler
31 halyavin 39
 
40
 
383 heavyiron 41
  button:                         ; button event handler
42
    mov     al, 17               ;   get button identifier
485 heavyiron 43
    mcall
31 halyavin 44
 
383 heavyiron 45
    cmp     ah, 1
46
    jne     wait_event        ;   return if button id != 1
31 halyavin 47
 
383 heavyiron 48
    or      eax, -1               ;   exit application
485 heavyiron 49
    mcall
31 halyavin 50
 
383 heavyiron 51
  key:                              ; key event handler
52
    mov     al, 2                 ;   get key code
485 heavyiron 53
    mcall
31 halyavin 54
 
383 heavyiron 55
    jmp     wait_event
31 halyavin 56
 
57
  draw_window:
58
    mov     eax, 12                ; start drawing
59
    mov     ebx, 1
485 heavyiron 60
    mcall
31 halyavin 61
 
383 heavyiron 62
    xor       eax, eax                      ; create and draw the window
63
    mov     ebx, 100*65536+200 ; (window_cx)*65536+(window_sx)
64
    mov     ecx, 100*65536+100  ; (window_cy)*65536+(window_sy)
65
    mov     edx, [sc.work]              ; work area color
66
    or         edx, 0x33000000        ; & window type 3
485 heavyiron 67
    mov     edi, title                    ; window title
383 heavyiron 68
    int        0x40
31 halyavin 69
 
70
    mov     eax, 12                ; finish drawing
71
    mov     ebx, 2
485 heavyiron 72
    mcall
31 halyavin 73
 
74
  ret
75
 
76
; <--- initialised data --->
77
DATA
78
 
383 heavyiron 79
if lang eq ru
485 heavyiron 80
title db 'Шаблон программы',0
383 heavyiron 81
else if lang eq fr
485 heavyiron 82
title db 'La programme poncive',0
383 heavyiron 83
else
485 heavyiron 84
title db 'Template program',0
383 heavyiron 85
end if
31 halyavin 86
 
87
; <--- uninitialised data --->
88
UDATA
383 heavyiron 89
sc   system_colors
31 halyavin 90
 
91
MEOS_APP_END
92
; <--- end of MenuetOS application --->