Subversion Repositories Kolibri OS

Rev

Rev 1685 | Rev 6196 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1685 Rev 3375
1
;In this file content a macros need for compilation the scrshoot
1
;In this file content a macros need for compilation the scrshoot
2
evm_redraw equ 1
2
evm_redraw equ 1
3
evm_key equ 10b
3
evm_key equ 10b
4
evm_button equ 100b
4
evm_button equ 100b
5
evm_mouse equ 100000b
5
evm_mouse equ 100000b
6
evm_ipc equ 1000000b
6
evm_ipc equ 1000000b
7
 
7
 
8
;--- ñîîáùèòü ñèñòåìå î íà÷àëå ïåðåðèñîâêè îêíà ---
8
;--- ñîîáùèòü ñèñòåìå î íà÷àëå ïåðåðèñîâêè îêíà ---
9
macro draw_status text_ptr
9
macro draw_status text_ptr
10
{
10
{
11
        mov     [status.text],dword text_ptr
11
        mov     [status.text],dword text_ptr
12
        call    send_draw_status
12
        call    send_draw_status
13
}
13
}
14
 
14
 
15
macro start_draw_window
15
macro start_draw_window
16
{
16
{
17
        ;mov     eax,12
17
        ;mov     eax,12
18
        push    12
18
        push    12
19
        pop     eax
19
        pop     eax
20
        xor     ebx,ebx
20
        xor     ebx,ebx
21
        inc     ebx
21
        inc     ebx
22
        mcall
22
        mcall
23
}
23
}
24
 
24
 
25
;--- ñîîáùèòü ñèñòåìå î çàâåðøåíèè ïåðåðèñîâêè îêíà ---
25
;--- ñîîáùèòü ñèñòåìå î çàâåðøåíèè ïåðåðèñîâêè îêíà ---
26
macro stop_draw_window
26
macro stop_draw_window
27
{
27
{
28
        ;mov     eax,12
28
        ;mov     eax,12
29
        push    12
29
        push    12
30
        pop     eax
30
        pop     eax
31
        ;mov     ebx,2
31
        ;mov     ebx,2
32
        push    2
32
        push    2
33
        pop     ebx
33
        pop     ebx
34
        mcall
34
        mcall
35
}
35
}
36
 
36
 
37
;--- óñòàíîâèòü ìàñêó îæèäàåìûõ ñîáûòèé ---
37
;--- óñòàíîâèòü ìàñêó îæèäàåìûõ ñîáûòèé ---
38
 
38
 
39
;--- îæèäàòü ñîáûòèÿ ---
39
;--- îæèäàòü ñîáûòèÿ ---
40
macro wait_event redraw,key,button,mouse,ipc,other
40
macro wait_event redraw,key,button,mouse,ipc,other
41
{
41
{
42
        mov     eax,10
42
        mov     eax,10
43
        mcall
43
        mcall
44
        dec     ax
44
        dec     ax
45
if  eq <>
45
if redraw eq
46
else
46
else
47
        jz      redraw
47
        jz      redraw
48
end if
48
end if
49
        dec     ax
49
        dec     ax
50
if  eq <>
50
if key eq
51
else
51
else
52
        jz      key
52
        jz      key
53
end if
53
end if
54
        dec     ax
54
        dec     ax
55
if 
55
if button eq
56
else
56
else
57
        jz      button
57
        jz      button
58
end if
58
end if
59
        dec     ax
59
        dec     ax
60
        dec     ax
60
        dec     ax
61
        dec     ax
61
        dec     ax
62
if  eq <>
62
if mouse eq
63
else
63
else
64
        jz      mouse
64
        jz      mouse
65
end if
65
end if
66
if  eq <>
66
if ipc eq
67
else
67
else
68
        dec     ax
68
        dec     ax
69
        jz      ipc
69
        jz      ipc
70
end if
70
end if
71
if  eq <>
71
if other eq
72
        jmp     still
72
        jmp     still
73
else
73
else
74
        jmp     other
74
        jmp     other
75
end if
75
end if
76
}
76
}
77
;--- óñòàíîâèòü ìàñêó îæèäàåìûõ ñîáûòèé ---
77
;--- óñòàíîâèòü ìàñêó îæèäàåìûõ ñîáûòèé ---
78
macro set_events_mask mask
78
macro set_events_mask mask
79
{
79
{
80
        ;mov     eax,40
80
        ;mov     eax,40
81
        push    40
81
        push    40
82
        pop     eax
82
        pop     eax
83
        ;mov     ebx,mask
83
        ;mov     ebx,mask
84
        push    mask
84
        push    mask
85
        pop     ebx
85
        pop     ebx
86
        mcall
86
        mcall
87
}
87
}
88
 
88
 
89
;macro check_boxes_set_sys_color start,end,color_table
89
;macro check_boxes_set_sys_color start,end,color_table
90
;{
90
;{
91
;ch_left equ [edi]    ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ
91
;ch_left equ [edi]    ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ
92
;ch_top equ [edi+4]   ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
92
;ch_top equ [edi+4]   ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
93
;ch_text_margin equ [edi+8]      ;=4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè 
93
;ch_text_margin equ [edi+8]      ;=4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè 
94
;ch_size equ [edi+8]             ;12 ðàçìåð êâàäðàòà ÷åê áîêñà 
94
;ch_size equ [edi+8]             ;12 ðàçìåð êâàäðàòà ÷åê áîêñà 
95
;ch_color equ [edi+12]           ;öâåò âíóòðè checkbox
95
;ch_color equ [edi+12]           ;öâåò âíóòðè checkbox
96
;ch_border_color equ [edi+16] ; or [edi+4] ;öâåò ðàìêè checkbox åå ìîæíî çàäàòü ñàìîñòîÿòåëüíî
96
;ch_border_color equ [edi+16] ; or [edi+4] ;öâåò ðàìêè checkbox åå ìîæíî çàäàòü ñàìîñòîÿòåëüíî
97
;ch_text_color equ   [edi+20];[edi+4]  ;öâåò òåêñòà
97
;ch_text_color equ   [edi+20];[edi+4]  ;öâåò òåêñòà
98
;ch_text_ptr equ [edi+24]    ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè 
98
;ch_text_ptr equ [edi+24]    ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè 
99
;ch_text_length equ [edi+28]
99
;ch_text_length equ [edi+28]
100
;ch_flags equ [edi+32]       ;ôëàãè 
100
;ch_flags equ [edi+32]       ;ôëàãè 
101
 
101
 
102
 
102
 
103
;ch_left equ [edi]    ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ
103
;ch_left equ [edi]    ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ
104
;ch_top equ [edi+2]   ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
104
;ch_top equ [edi+2]   ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
105
;ch_color equ [edi+4] ;öâåò âíóòðè checkbox
105
;ch_color equ [edi+4] ;öâåò âíóòðè checkbox
106
;ch_border_color equ [edi+8] ;öâåò ðàìêè checkbox
106
;ch_border_color equ [edi+8] ;öâåò ðàìêè checkbox
107
;ch_text_color equ [edi+12]  ;öâåò òåêñòà
107
;ch_text_color equ [edi+12]  ;öâåò òåêñòà
108
;ch_text_ptr equ [edi+16]    ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè
108
;ch_text_ptr equ [edi+16]    ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè
109
;ch_text_length equ [edi+20] ;äëèíà íàäïèñè (2^64 òàêîé äëèíû ìîæåò áûòü òåêñò)
109
;ch_text_length equ [edi+20] ;äëèíà íàäïèñè (2^64 òàêîé äëèíû ìîæåò áûòü òåêñò)
110
;ch_flags equ [edi+24]       ;ôëàãè
110
;ch_flags equ [edi+24]       ;ôëàãè
111
 
111
 
112
;        mov     edi,start
112
;        mov     edi,start
113
;        mov     ecx,((end-start)/ch_struc_size)
113
;        mov     ecx,((end-start)/ch_struc_size)
114
;        mov     esi,color_table
114
;        mov     esi,color_table
115
;@@:
115
;@@:
116
;        push    dword [esi+32]
116
;        push    dword [esi+32]
117
;        pop     dword ch_text_color
117
;        pop     dword ch_text_color
118
;        push    dword [esi+36]
118
;        push    dword [esi+36]
119
;        pop     dword ch_border_color
119
;        pop     dword ch_border_color
120
;        add     edi,ch_struc_size
120
;        add     edi,ch_struc_size
121
;        loop    @b
121
;        loop    @b
122
;}
122
;}
123
macro get_key
123
macro get_key
124
{
124
{
125
        ;mov     eax,2
125
        ;mov     eax,2
126
        push    2
126
        push    2
127
        pop     eax
127
        pop     eax
128
        mcall
128
        mcall
129
}
129
}
130
;--- ïîëó÷èòü êîä íàæàòîé êíîïêè ---
130
;--- ïîëó÷èòü êîä íàæàòîé êíîïêè ---
131
macro get_pressed_button
131
macro get_pressed_button
132
{
132
{
133
        ;mov     eax,17
133
        ;mov     eax,17
134
        push    17
134
        push    17
135
        pop     eax
135
        pop     eax
136
        mcall
136
        mcall
137
}
137
}
138
macro get_active_window
138
macro get_active_window
139
{
139
{
140
        mov     eax,18
140
        mov     eax,18
141
        mov     ebx,7
141
        mov     ebx,7
142
        mcall
142
        mcall
143
}
143
}
144
;--- ¯®«ãç¨âì ¨­ä®à¬ æ¨î ® ¯à®æ¥áᥠ---
144
;--- ¯®«ãç¨âì ¨­ä®à¬ æ¨î ® ¯à®æ¥áᥠ---
145
macro get_procinfo proc_inf_buf,slot_num
145
macro get_procinfo proc_inf_buf,slot_num
146
{
146
{
147
        ;mov     eax,9
147
        ;mov     eax,9
148
        push    9
148
        push    9
149
        pop     eax
149
        pop     eax
150
        ;mov     ebx,proc_inf_buf
150
        ;mov     ebx,proc_inf_buf
151
        push    proc_inf_buf
151
        push    proc_inf_buf
152
        pop     ebx
152
        pop     ebx
153
if  eq <>
153
if slot_num eq
154
        xor     ecx,ecx
154
        xor     ecx,ecx
155
        dec     ecx
155
        dec     ecx
156
else
156
else
157
        ;mov     ecx,slot_num
157
        ;mov     ecx,slot_num
158
        push    slot_num
158
        push    slot_num
159
        pop     ecx
159
        pop     ecx
160
end if
160
end if
161
        mcall
161
        mcall
162
}
162
}
163
macro get_screen_prop  struc_ptr
163
macro get_screen_prop  struc_ptr
164
{
164
{
165
        mov     eax,61
165
        mov     eax,61
166
        push    eax eax
166
        push    eax eax
167
        xor     ebx,ebx
167
        xor     ebx,ebx
168
        inc     ebx
168
        inc     ebx
169
        mcall
169
        mcall
170
        mov     [struc_ptr],eax
170
        mov     [struc_ptr],eax
171
        pop     eax
171
        pop     eax
172
        inc     ebx
172
        inc     ebx
173
        mcall
173
        mcall
174
        mov     [struc_ptr+4],ax
174
        mov     [struc_ptr+4],ax
175
        pop     eax
175
        pop     eax
176
        inc     ebx
176
        inc     ebx
177
        mcall
177
        mcall
178
        mov     [struc_ptr+6],eax
178
        mov     [struc_ptr+6],eax
179
}
179
}
180
macro min_window
180
macro min_window
181
{
181
{
182
        mov     eax,18
182
        mov     eax,18
183
        mov     ebx,10
183
        mov     ebx,10
184
        mcall
184
        mcall
185
}
185
}
186
macro app_close
186
macro app_close
187
{
187
{
188
        or     eax,-1
188
        or     eax,-1
189
        mcall
189
        mcall
190
}
190
}
191
macro get_skin_height
191
macro get_skin_height
192
{
192
{
193
        mov     eax,48
193
        mov     eax,48
194
        mov     ebx,4
194
        mov     ebx,4
195
        mcall
195
        mcall
196
}
196
}
197
macro delay time
197
macro delay time
198
{
198
{
199
        mov     eax,5
199
        mov     eax,5
200
if 
200
if time eq
201
else
201
else
202
        mov     ebx,time
202
        mov     ebx,time
203
end if
203
end if
204
        mcall
204
        mcall
205
}
205
}
206
macro activ_window slot_n
206
macro activ_window slot_n
207
{
207
{
208
        mov     eax,18
208
        mov     eax,18
209
        mov     ebx,3
209
        mov     ebx,3
210
if  eq <>
210
if slot_n eq
211
else
211
else
212
        mov     ecx,slot_n
212
        mov     ecx,slot_n
213
end if
213
end if
214
        mcall
214
        mcall
215
}
215
}
216
struc screen_prop
216
struc screen_prop
217
{
217
{
218
.height: dw ? ;+0
218
.height: dw ? ;+0
219
.width: dw ?  ;+2
219
.width: dw ?  ;+2
220
.bitspp: dw ? ;+4
220
.bitspp: dw ? ;+4
221
.bytesps: dd ?;+6
221
.bytesps: dd ?;+6
222
}
222
}
223
struc sys_color_table
223
struc sys_color_table
224
{
224
{
225
.frames: dd ?  ;+0
225
.frames: dd ?  ;+0
226
.grab: dd ?    ;+4
226
.grab: dd ?    ;+4
227
.grab_button: dd ? ;+8
227
.grab_button: dd ? ;+8
228
.grab_button_text: dd ?  ;+12
228
.grab_button_text: dd ?  ;+12
229
.grab_text: dd ?  ;+16
229
.grab_text: dd ?  ;+16
230
.work: dd ?       ;+20
230
.work: dd ?       ;+20
231
.work_button: dd ?;+24
231
.work_button: dd ?;+24
232
.work_button_text: dd ? ;+28
232
.work_button_text: dd ? ;+28
233
.work_text: dd ?        ;+32
233
.work_text: dd ?        ;+32
234
.work_graph: dd ?       ;+36
234
.work_graph: dd ?       ;+36
235
}
235
}
236
struc procinfo
236
struc procinfo
237
{
237
{
238
.takts_per_second: dd ?
238
.takts_per_second: dd ?
239
.window_stack_pos: dw ?
239
.window_stack_pos: dw ?
240
.slot_number: dw ?
240
.slot_number: dw ?
241
dw ?
241
dw ?
242
.name: rb 11
242
.name: rb 11
243
.align: db ?
243
.align: db ?
244
.addres: dd ?
244
.addres: dd ?
245
.use_mem: dd ?
245
.use_mem: dd ?
246
.pid: dd ?
246
.pid: dd ?
247
.left: dd ?
247
.left: dd ?
248
.top: dd ?
248
.top: dd ?
249
.width: dd ?
249
.width: dd ?
250
.height: dd ?
250
.height: dd ?
251
.slot_state: dw ?
251
.slot_state: dw ?
252
rb (1024-56)
252
rb (1024-56)
253
}
253
}
254
 
254
 
255
 
255
 
256
 
256
 
257
struc ipc_buffer size
257
struc ipc_buffer size
258
{
258
{
259
.block: dd ?
259
.block: dd ?
260
.in_use: dd ?
260
.in_use: dd ?
261
.messages: rb size
261
.messages: rb size
262
}
262
}
263
 
263
 
264
;--- æ¢¥â  ---
264
;--- æ¢¥â  ---
265
cl_white=0xffffff
265
cl_white=0xffffff
266
cl_black=0x000000
266
cl_black=0x000000
267
 
267
 
268
ch_struc_size=36
268
ch_struc_size=36