Subversion Repositories Kolibri OS

Rev

Rev 6693 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6693 Rev 9568
1
; à®á⮩ ¯à¨¬¥à ¯à®£à ¬¬ë ¤«ï KolibriOS
1
; à®á⮩ ¯à¨¬¥à ¯à®£à ¬¬ë ¤«ï KolibriOS
2
; ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨
2
; ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨
3
; - ¯¥à¥¤¥« ­ ª ª ¯à¨¬¥à ¨á¯®«ì§®¢ ­¨ï tooltip
3
; - ¯¥à¥¤¥« ­ ª ª ¯à¨¬¥à ¨á¯®«ì§®¢ ­¨ï tooltip
4
 
4
 
5
use32 ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
5
use32 ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
6
org 0x0 ;  ¤à¥á æ¨ï á ­ã«ï
6
org 0 ;  ¤à¥á æ¨ï á ­ã«ï
7
 
7
 
8
db 'MENUET01' ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
8
db 'MENUET01' ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
9
dd 0x01 ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
9
dd 1 ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
10
dd START ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
10
dd START ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
11
dd CODE_END ; à §¬¥à ¯à®£à ¬¬ë
11
dd CODE_END ; à §¬¥à ¯à®£à ¬¬ë
12
dd DATA_END ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
12
dd DATA_END ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
13
dd STACK_END ;  ¤à¥á ¢¥à設ë áâíª 
13
dd STACK_END ;  ¤à¥á ¢¥à設ë áâíª 
14
dd 0x0 ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢
14
dd 0 ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢
15
dd cur_dir_path      ; 㪠§ â¥«ì ­   ¤à¥á, ªã¤  ¯®¬¥é ¥âáï áâப , ᮤ¥à¦ é ï ¯ãâì ¤® ¯à®£à ¬¬ë ¢ ¬®¬¥­â § ¯ã᪠.
15
dd cur_dir_path      ; 㪠§ â¥«ì ­   ¤à¥á, ªã¤  ¯®¬¥é ¥âáï áâப , ᮤ¥à¦ é ï ¯ãâì ¤® ¯à®£à ¬¬ë ¢ ¬®¬¥­â § ¯ã᪠.
16
 
16
 
17
include '../../../../../proc32.inc'
17
include '../../../../../proc32.inc'
18
include '../../../../../macros.inc'
18
include '../../../../../macros.inc'
19
include '../../../../../KOSfuncs.inc'
19
include '../../../../../KOSfuncs.inc'
20
include '../../../../../dll.inc'	; malloc fn
20
include '../../../../../dll.inc'	; malloc fn
21
include '../../trunk/box_lib.mac'
21
include '../../trunk/box_lib.mac'
22
include '../../load_lib.mac'
22
include '../../../../../load_lib.mac'
23
;include 'proc32.inc'
-
 
24
;include 'macros.inc'
-
 
25
;include 'KOSfuncs.inc'
-
 
-
 
23
 
26
 
24
 
27
;---------------------------------------------------------------------
25
;---------------------------------------------------------------------
28
;--- €—€‹Ž Žƒ€ŒŒ› ----------------------------------------------
26
;--- €—€‹Ž Žƒ€ŒŒ› ----------------------------------------------
29
;---------------------------------------------------------------------
27
;---------------------------------------------------------------------
30
; íâ®â ¬ ªà®á ®¡ï§ â¥«¥­ ¤«ï ¢á¥å ª®¬¯®­¥â®¢, ¨á¯®«ì§ãîé¨å heap
28
; íâ®â ¬ ªà®á ®¡ï§ â¥«¥­ ¤«ï ¢á¥å ª®¬¯®­¥â®¢, ¨á¯®«ì§ãîé¨å heap
31
; ªà®¬¥ ⮣®, ®¡ï§ â¥«ì­® ¨¬®àâ¨à®¢ âì lib_init - ¯à¨ ¨¬¯®à⥠®¯à¥¤¥«ïîâáï
29
; ªà®¬¥ ⮣®, ®¡ï§ â¥«ì­® ¨¬®àâ¨à®¢ âì lib_init - ¯à¨ ¨¬¯®à⥠®¯à¥¤¥«ïîâáï
32
; ä㭪樨 娯  ¤«ï ¡¨¡«¨®â¥ª¨
30
; ä㭪樨 娯  ¤«ï ¡¨¡«¨®â¥ª¨
33
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
31
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
34
 
32
 
35
START:
33
START:
36
;---------------------------------------------------------------------
34
;---------------------------------------------------------------------
37
;--- ˆˆ–ˆ€‹ˆ‡€–ˆŸ ----------------------------------------
35
;--- ˆˆ–ˆ€‹ˆ‡€–ˆŸ ----------------------------------------
38
;---------------------------------------------------------------------
36
;---------------------------------------------------------------------
39
;mov eax, mem_alloc
-
 
40
;mov [mem.alloc], eax
-
 
41
;mov eax, mem_realloc
-
 
42
;mov [mem.realloc], eax
-
 
43
;mov eax, mem_free
-
 
44
;mov [mem.free], eax
-
 
45
mcall	68, 11
37
mcall	68, 11
46
 
38
 
47
mcall 40, $C0000027 ; ¬ áª  ᮡë⨩ - ¬ëèì ⮫쪮 ¢  ªâ¨¢­®¬ ®ª­¥
39
mcall 40, $C0000027 ; ¬ áª  ᮡë⨩ - ¬ëèì ⮫쪮 ¢  ªâ¨¢­®¬ ®ª­¥
48
 
40
 
49
sys_load_library  lib_name, cur_dir_path, lib_path, sys_path, \
-
 
50
	e_notfound_lib, head_f_l, myimport, e_import, head_f_i
41
sys_load_library  lib_name, lib_path, sys_path, myimport
51
test eax,eax
42
test eax,eax
52
jz	@f
43
jz	@f
53
	mcall -1 ; alarm exit
44
	mcall -1 ; alarm exit
54
@@:
45
@@:
55
 
46
 
56
 
47
 
57
invoke tooltip_init, redbox_tt 	; only begin of list
48
invoke tooltip_init, redbox_tt 	; only begin of list
58
 
49
 
59
red: ; ¯¥à¥à¨á®¢ âì ®ª­®
50
red: ; ¯¥à¥à¨á®¢ âì ®ª­®
60
 
51
 
61
call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
52
call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
62
 
53
 
63
;---------------------------------------------------------------------
54
;---------------------------------------------------------------------
64
;--- –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰ ----------------------------------------
55
;--- –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰ ----------------------------------------
65
;---------------------------------------------------------------------
56
;---------------------------------------------------------------------
66
 
57
 
67
still:
58
still:
68
mcall 23, 5 ; äã­ªæ¨ï 23 - ¦¤ âì ᮡëâ¨ï ¥ ¡®«¥¥ 祬 0.05á
59
mcall 23, 5 ; äã­ªæ¨ï 23 - ¦¤ âì ᮡëâ¨ï ¥ ¡®«¥¥ 祬 0.05á
69
test eax, eax ; ­¥â ᮡë⨩ - ¯à®¢¥à¨âì à¨á®¢ ­¨¥ âã«â¨¯®¢ ¯® â ©¬¥àã
60
test eax, eax ; ­¥â ᮡë⨩ - ¯à®¢¥à¨âì à¨á®¢ ­¨¥ âã«â¨¯®¢ ¯® â ©¬¥àã
70
je yield
61
je yield
71
cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª­® ?
62
cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª­® ?
72
je red ; ¥á«¨ ¤  - ­  ¬¥âªã red
63
je red ; ¥á«¨ ¤  - ­  ¬¥âªã red
73
cmp eax,2 ; ­ ¦ â  ª« ¢¨è  ?
64
cmp eax,2 ; ­ ¦ â  ª« ¢¨è  ?
74
je key ; ¥á«¨ ¤  - ­  key
65
je key ; ¥á«¨ ¤  - ­  key
75
cmp eax,3 ; ­ ¦ â  ª­®¯ª  ?
66
cmp eax,3 ; ­ ¦ â  ª­®¯ª  ?
76
je button ; ¥á«¨ ¤  - ­  button
67
je button ; ¥á«¨ ¤  - ­  button
77
cmp eax,6 ; ᮡë⨥ ¬ëè¨
68
cmp eax,6 ; ᮡë⨥ ¬ëè¨
78
je mouse ; ¥á«¨ ¤  - ­  mouse
69
je mouse ; ¥á«¨ ¤  - ­  mouse
79
 
70
 
80
jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
71
jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
81
 
72
 
82
 
73
 
83
;---------------------------------------------------------------------
74
;---------------------------------------------------------------------
84
yield:
75
yield:
85
invoke tooltip_test_show, redbox_tt
76
invoke tooltip_test_show, redbox_tt
86
jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
77
jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
87
 
78
 
88
mouse:
79
mouse:
89
invoke tooltip_mouse, redbox_tt
80
invoke tooltip_mouse, redbox_tt
90
jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
81
jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
91
 
82
 
92
key: ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
83
key: ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
93
mcall 2 ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
84
mcall 2 ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
94
 
85
 
95
jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
86
jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
96
 
87
 
97
;---------------------------------------------------------------------
88
;---------------------------------------------------------------------
98
 
89
 
99
button:
90
button:
100
mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
91
mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
101
 
92
 
102
cmp ah, 1 ; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
93
cmp ah, 1 ; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
103
jne still ; ¢¥à­ãâìáï
94
jne still ; ¢¥à­ãâìáï
104
 
95
 
105
pexit:
96
pexit:
106
invoke tooltip_delete, redbox_tt	; ®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
97
invoke tooltip_delete, redbox_tt	; ®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
107
mcall -1 ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
98
mcall -1 ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
108
 
99
 
109
 
100
 
110
;---------------------------------------------------------------------
101
;---------------------------------------------------------------------
111
;--- Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€ ----------------------------------
102
;--- Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€ ----------------------------------
112
;---------------------------------------------------------------------
103
;---------------------------------------------------------------------
113
 
104
 
114
draw_window:
105
draw_window:
115
 
106
 
116
mcall 12, 1 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ® ­ ç «¥ ®âà¨á®¢ª¨
107
mcall 12, 1 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ® ­ ç «¥ ®âà¨á®¢ª¨
117
 
108
 
118
mcall 48, 3, sc,sizeof.system_colors
109
mcall 48, 3, sc,sizeof.system_colors
119
 
110
 
120
mov edx, [sc.work] ; 梥â ä®­ 
111
mov edx, [sc.work] ; 梥â ä®­ 
121
or edx, 0x33000000 ; ¨ ⨯ ®ª­  3
112
or edx, 0x33000000 ; ¨ ⨯ ®ª­  3
122
mcall 0, <200,300>, <200,150>, , ,title
113
mcall 0, <200,300>, <200,150>, , ,title
123
 
114
 
124
; ¢ë¢®¤ ª¢ ¤à â¨ª®¢
115
; ¢ë¢®¤ ª¢ ¤à â¨ª®¢
125
mcall 13, <60,50>, <50,50>, $FF0000
116
mcall 13, <60,50>, <50,50>, $FF0000
126
mcall 13, <140,50>, <50,50>, $FF
117
mcall 13, <140,50>, <50,50>, $FF
127
 
118
 
128
 
119
 
129
mcall 12, 2 ; äã­ªæ¨ï 12.2, § ª®­ç¨«¨ à¨á®¢ âì
120
mcall 12, 2 ; äã­ªæ¨ï 12.2, § ª®­ç¨«¨ à¨á®¢ âì
130
 
121
 
131
ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
122
ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
132
 
123
 
133
 
124
 
134
CODE_END: ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë; --------------------------------------------;
125
CODE_END: ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë; --------------------------------------------;
135
 
126
 
136
; ---------------------------------------------------------------------------- ;
127
; ---------------------------------------------------------------------------- ;
137
;---------------------------------------------------------------------
128
;---------------------------------------------------------------------
138
;--- „€›… Žƒ€ŒŒ› ----------------------------------------------
129
;--- „€›… Žƒ€ŒŒ› ----------------------------------------------
139
;---------------------------------------------------------------------
130
;---------------------------------------------------------------------
140
 
131
 
141
sys_path	db '/sys/lib/'
132
sys_path	db '/sys/lib/'
142
;sys_path	db '/tmp0/1/'
133
;sys_path	db '/tmp0/1/'
143
lib_name    db 'box_lib.obj',0
134
lib_name    db 'box_lib.obj',0
144
cur_dir_path    rb 4096
135
cur_dir_path    rb 4096
145
lib_path    rb 4096
136
lib_path    rb 4096
146
 
-
 
147
e_notfound_lib    db 'Sorry I cannot load library box_lib.obj',0
-
 
148
 
-
 
149
head_f_i:
-
 
150
head_f_l    db 'System error',0
-
 
151
e_import    db 'Error on load import library box_lib.obj',0
-
 
152
 
137
 
153
myimport:
138
myimport:
154
				dd sz_lib_init ;äã­ªæ¨ï § ¯ã᪠¥âáï ¬ ªà®á®¬ 1 à § ¯à¨ ¯®¤ª«î祭¨¨ 
139
				dd sz_lib_init ;äã­ªæ¨ï § ¯ã᪠¥âáï ¬ ªà®á®¬ 1 à § ¯à¨ ¯®¤ª«î祭¨¨ 
155
;¡¨¡«¨®â¥ª¨, ¯®â®¬ã ¢ ¯à®£à ¬¬¥ ¬¥âª  ­  ­¥¥ ­¥ ­ã¦­ 
140
;¡¨¡«¨®â¥ª¨, ¯®â®¬ã ¢ ¯à®£à ¬¬¥ ¬¥âª  ­  ­¥¥ ­¥ ­ã¦­ 
156
tooltip_init  	dd sz_tooltip_init
141
tooltip_init  	dd sz_tooltip_init
157
tooltip_delete	dd sz_tooltip_delete
142
tooltip_delete	dd sz_tooltip_delete
158
tooltip_test_show	dd sz_tooltip_test_show
143
tooltip_test_show	dd sz_tooltip_test_show
159
tooltip_mouse	dd sz_tooltip_mouse
144
tooltip_mouse	dd sz_tooltip_mouse
160
get_font_size	dd sz_get_font_size
145
get_font_size	dd sz_get_font_size
161
    dd    0
-
 
162
    dd    0
146
    dd    0,0
163
 
147
 
164
sz_lib_init 			db 'lib_init',0
148
sz_lib_init 			db 'lib_init',0
165
sz_tooltip_init			db 'tooltip_init', 0
149
sz_tooltip_init			db 'tooltip_init', 0
166
sz_tooltip_delete		db 'tooltip_delete', 0
150
sz_tooltip_delete		db 'tooltip_delete', 0
167
sz_tooltip_test_show	db 'tooltip_test_show', 0
151
sz_tooltip_test_show	db 'tooltip_test_show', 0
168
sz_tooltip_mouse		db 'tooltip_mouse', 0
152
sz_tooltip_mouse		db 'tooltip_mouse', 0
169
sz_get_font_size		db 'get_font_size', 0
153
sz_get_font_size		db 'get_font_size', 0
170
 
154
 
171
 
155
 
172
;tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait
156
;tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait
173
redbox_tt    tooltip redboxtxt, blubox_tt, 60, 50, 50, 50, 0, $FFF473, 100
157
redbox_tt    tooltip redboxtxt, blubox_tt, 60, 50, 50, 50, 0, $FFF473, 100
174
blubox_tt    tooltip bluboxtxt, 0, 140, 50, 50, 50, $110000FF, $FFF473, 100
158
blubox_tt    tooltip bluboxtxt, 0, 140, 50, 50, 50, $110000FF, $FFF473, 100
175
 
159
 
176
redboxtxt	db 'Red Box Tooltip', 13, 'May be multilined', 13, 13, 'Even with empty lines', 0
160
redboxtxt	db 'Red Box Tooltip', 13, 'May be multilined', 13, 13, 'Even with empty lines', 0
177
bluboxtxt	db 'Blue Box Tooltip', 0
161
bluboxtxt	db 'Blue Box Tooltip', 0
178
 
162
 
179
sc system_colors
163
sc system_colors
180
 
164
 
181
title db 'Toooltip demo',0
165
title db 'Toooltip demo',0
182
 
166
 
183
; stack----------------------------------------------------------------------- ;
167
; stack----------------------------------------------------------------------- ;
184
	   rb 4096
168
	   rb 4096
185
STACK_END  dd ?
169
STACK_END  dd ?
186
 
170
 
187
DATA_END: ; ¬¥âª  ª®­æ  ¤ ­­ëå ¯à®£à ¬¬ë; ------------------------------------ ;
171
DATA_END: ; ¬¥âª  ª®­æ  ¤ ­­ëå ¯à®£à ¬¬ë; ------------------------------------ ;