Rev 7988 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7988 | Rev 10017 | ||
---|---|---|---|
1 | use32 |
1 | use32 |
2 | org 0 |
2 | org 0 |
3 | db 'MENUET01' |
3 | db 'MENUET01' |
4 | dd 1, @ENTRY, @end, @memory, @stack, @params, 0 |
4 | dd 1, @ENTRY, @end, @memory, @stack |
- | 5 | M01header.params: |
|
- | 6 | dd @params, 0 |
|
5 | 7 | ||
6 | include "../../macros.inc" |
8 | include "../../macros.inc" |
7 | include "../../proc32.inc" |
9 | include "../../proc32.inc" |
8 | include "../../dll.inc" |
10 | include "../../dll.inc" |
9 | ; include "../../debug.inc" |
11 | ; include "../../debug.inc" |
10 | include "../../string.inc" |
12 | include "../../string.inc" |
11 | 13 | ||
12 | include "notify.inc" |
14 | include "notify.inc" |
13 | 15 | ||
14 | LINEH equ 12 |
16 | LINEH equ 12 |
15 | MARGIN equ 12 |
17 | MARGIN equ 12 |
16 | ICONS equ 11 |
18 | ICONS equ 11 |
17 | 19 | ||
18 | ;------------------------------------------------------------------------------- |
20 | ;------------------------------------------------------------------------------- |
19 | 21 | ||
20 | @ENTRY: |
22 | @ENTRY: |
21 | ;; INIT HEAP |
23 | ;; INIT HEAP |
22 | mcall 68, 11 |
24 | mcall 68, 11 |
23 | 25 | ||
24 | ;; SAVE FOCUSED WINDOW |
26 | ;; SAVE FOCUSED WINDOW |
25 | mcall 18, 7 |
27 | mcall 18, 7 |
26 | mov ecx, eax |
28 | mov ecx, eax |
27 | mcall 9, buffer |
29 | mcall 9, buffer |
28 | m2m dword [prev_pid], dword [buffer + 30] |
30 | m2m dword [prev_pid], dword [buffer + 30] |
29 | 31 | ||
30 | ;; MAKE IT ALWAYS ON TOP |
32 | ;; MAKE IT ALWAYS ON TOP |
31 | mcall 18, 25, 2, -1, 1 |
33 | mcall 18, 25, 2, -1, 1 |
32 | 34 | ||
33 | ;; SET STD PARAMS, IF IT NEEDS |
35 | ;; SET STD PARAMS, IF IT NEEDS |
34 | mov eax, @params |
36 | mov eax, [M01header.params] |
35 | cmpne byte [@params], 0, @f |
37 | cmpne byte [eax], 0, @f |
36 | mov eax, sz_std |
38 | mov eax, sz_std |
37 | @@: |
39 | @@: |
38 | mov [params.source], eax |
40 | mov [params.source], eax |
39 | 41 | ||
40 | ;; PARSE ARGUMENTS |
42 | ;; PARSE ARGUMENTS |
41 | mov esi, 0 |
43 | mov esi, 0 |
42 | call parse_text |
44 | call parse_text |
43 | call parse_flags |
45 | call parse_flags |
44 | movzx ebx, [params.icon] |
46 | movzx ebx, [params.icon] |
45 | 47 | ||
46 | ;; GET PID |
48 | ;; GET PID |
47 | mcall 9, buffer, -1 |
49 | mcall 9, buffer, -1 |
48 | mov eax, dword [buffer + 30] |
50 | mov eax, dword [buffer + 30] |
49 | 51 | ||
50 | ;; CONVERT PID TO STR |
52 | ;; CONVERT PID TO STR |
51 | mov ebx, 10 |
53 | mov ebx, 10 |
52 | mov ecx, 0 |
54 | mov ecx, 0 |
53 | @@: |
55 | @@: |
54 | mov edx, 0 |
56 | mov edx, 0 |
55 | div ebx |
57 | div ebx |
56 | push edx |
58 | push edx |
57 | inc ecx |
59 | inc ecx |
58 | cmpne eax, 0, @b |
60 | cmpne eax, 0, @b |
59 | 61 | ||
60 | mov ebx, ctrl.name |
62 | mov ebx, ctrl.name |
61 | @@: |
63 | @@: |
62 | pop eax |
64 | pop eax |
63 | add al, "0" |
65 | add al, "0" |
64 | mov [ebx], al |
66 | mov [ebx], al |
65 | inc ebx |
67 | inc ebx |
66 | loop @b |
68 | loop @b |
67 | 69 | ||
68 | mov dword [ebx + 0], "-NOT" |
70 | mov dword [ebx + 0], "-NOT" |
69 | mov dword [ebx + 4], "IFY" |
71 | mov dword [ebx + 4], "IFY" |
70 | 72 | ||
71 | ;; LOAD LIBRARIES |
73 | ;; LOAD LIBRARIES |
72 | stdcall dll.Load, @imports |
74 | stdcall dll.Load, @imports |
73 | 75 | ||
74 | ;; GET SIZE OF ICONS |
76 | ;; GET SIZE OF ICONS |
75 | mcall 70, fi |
77 | mcall 70, fi |
76 | mov edx, dword [buffer + 32] |
78 | mov edx, dword [buffer + 32] |
77 | shl edx, 2 |
79 | shl edx, 2 |
78 | 80 | ||
79 | ;; ALLOCATE MEMORY FOR THIS |
81 | ;; ALLOCATE MEMORY FOR THIS |
80 | stdcall mem.Alloc, edx |
82 | stdcall mem.Alloc, edx |
81 | mov [img_data.file], eax |
83 | mov [img_data.file], eax |
82 | 84 | ||
83 | ;; READ ICONS |
85 | ;; READ ICONS |
84 | mov dword [fi + 00], 0 |
86 | mov dword [fi + 00], 0 |
85 | mov dword [fi + 12], edx |
87 | mov dword [fi + 12], edx |
86 | mov dword [fi + 16], eax |
88 | mov dword [fi + 16], eax |
87 | mcall 70, fi |
89 | mcall 70, fi |
88 | 90 | ||
89 | ;; DECODE ICONS |
91 | ;; DECODE ICONS |
90 | stdcall dword [img.decode], dword [img_data.file], ebx, 0 |
92 | stdcall dword [img.decode], dword [img_data.file], ebx, 0 |
91 | mov dword [img_data.obj], eax |
93 | mov dword [img_data.obj], eax |
92 | 94 | ||
93 | ;; CALC HEIGHT |
95 | ;; CALC HEIGHT |
94 | mov eax, [text.lines] |
96 | mov eax, [text.lines] |
95 | add eax, 2 |
97 | add eax, 2 |
96 | imul eax, LINEH |
98 | imul eax, LINEH |
97 | mov [window.height], eax |
99 | mov [window.height], eax |
98 | 100 | ||
99 | ;; CALC OFFSET OF TEXT |
101 | ;; CALC OFFSET OF TEXT |
100 | mov dword [text.offset], MARGIN |
102 | mov dword [text.offset], MARGIN |
101 | cmpe byte [params.icon], 0, @f |
103 | cmpe byte [params.icon], 0, @f |
102 | add dword [text.offset], MARGIN + 24 |
104 | add dword [text.offset], MARGIN + 24 |
103 | @@: |
105 | @@: |
104 | 106 | ||
105 | ;; CALC WIDTH |
107 | ;; CALC WIDTH |
106 | mov eax, [text.max_len] |
108 | mov eax, [text.max_len] |
107 | imul eax, 6 |
109 | imul eax, 6 |
108 | add eax, MARGIN |
110 | add eax, MARGIN |
109 | add eax, [text.offset] |
111 | add eax, [text.offset] |
110 | mov [window.width], eax |
112 | mov [window.width], eax |
111 | 113 | ||
112 | mcall 14 |
114 | mcall 14 |
113 | mov ebx, eax |
115 | mov ebx, eax |
114 | movzx ebx, bx |
116 | movzx ebx, bx |
115 | mov [scr.height], ebx |
117 | mov [scr.height], ebx |
116 | shr eax, 16 |
118 | shr eax, 16 |
117 | mov [scr.width], eax |
119 | mov [scr.width], eax |
118 | sub eax, [window.width] |
120 | sub eax, [window.width] |
119 | sub eax, LINEH |
121 | sub eax, LINEH |
120 | mov [window.x], eax |
122 | mov [window.x], eax |
121 | 123 | ||
122 | ;; CALC PBAR |
124 | ;; CALC PBAR |
123 | mov eax, [window.width] |
125 | mov eax, [window.width] |
124 | sub eax, [text.offset] |
126 | sub eax, [text.offset] |
125 | sub eax, MARGIN |
127 | sub eax, MARGIN |
126 | mov [pbar.width], eax |
128 | mov [pbar.width], eax |
127 | 129 | ||
128 | ;; CALC Y |
130 | ;; CALC Y |
129 | mcall 68, 22, sz_shname, 256 + 512, 4 + 1 ;OPEN_ALWAYS AND WRITE |
131 | mcall 68, 22, sz_shname, 256 + 512, 4 + 1 ;OPEN_ALWAYS AND WRITE |
130 | add eax, 512 |
132 | add eax, 512 |
131 | mov [shm], eax |
133 | mov [shm], eax |
132 | 134 | ||
133 | s_search: |
135 | s_search: |
134 | mov eax, [shm] |
136 | mov eax, [shm] |
135 | 137 | ||
136 | mov ebx, 0 |
138 | mov ebx, 0 |
137 | mov ecx, [text.lines] |
139 | mov ecx, [text.lines] |
138 | add ecx, 3 |
140 | add ecx, 3 |
139 | 141 | ||
140 | push eax ebx |
142 | push eax ebx |
141 | 143 | ||
142 | mov eax, [scr.height] |
144 | mov eax, [scr.height] |
143 | mov edx, 0 |
145 | mov edx, 0 |
144 | mov ebx, LINEH |
146 | mov ebx, LINEH |
145 | div ebx |
147 | div ebx |
146 | mov edx, eax |
148 | mov edx, eax |
147 | add edx, [shm] |
149 | add edx, [shm] |
148 | sub edx, ecx |
150 | sub edx, ecx |
149 | inc edx |
151 | inc edx |
150 | 152 | ||
151 | pop ebx eax |
153 | pop ebx eax |
152 | 154 | ||
153 | s_area: |
155 | s_area: |
154 | cmpe [eax], byte 1, .is_1 |
156 | cmpe [eax], byte 1, .is_1 |
155 | 157 | ||
156 | .is_0: |
158 | .is_0: |
157 | inc ebx |
159 | inc ebx |
158 | cmpe ebx, ecx, s_ok |
160 | cmpe ebx, ecx, s_ok |
159 | jmp .next |
161 | jmp .next |
160 | 162 | ||
161 | .is_1: |
163 | .is_1: |
162 | mov ebx, 0 |
164 | mov ebx, 0 |
163 | 165 | ||
164 | .next: |
166 | .next: |
165 | inc eax |
167 | inc eax |
166 | cmple eax, edx, s_area |
168 | cmple eax, edx, s_area |
167 | 169 | ||
168 | mcall 5, 10 |
170 | mcall 5, 10 |
169 | jmp s_search |
171 | jmp s_search |
170 | 172 | ||
171 | s_ok: |
173 | s_ok: |
172 | sub eax, ecx |
174 | sub eax, ecx |
173 | inc eax |
175 | inc eax |
174 | mov [shm.our], eax |
176 | mov [shm.our], eax |
175 | 177 | ||
176 | mov edx, eax |
178 | mov edx, eax |
177 | sub edx, [shm] |
179 | sub edx, [shm] |
178 | inc edx |
180 | inc edx |
179 | imul edx, LINEH |
181 | imul edx, LINEH |
180 | mov [window.y], edx |
182 | mov [window.y], edx |
181 | 183 | ||
182 | push eax ebx |
184 | push eax ebx |
183 | mcall 48, 5 |
185 | mcall 48, 5 |
184 | shr ebx, 16 |
186 | shr ebx, 16 |
185 | add [window.y], ebx |
187 | add [window.y], ebx |
186 | pop ebx eax |
188 | pop ebx eax |
187 | 189 | ||
188 | @@: |
190 | @@: |
189 | mov [eax], byte 1 |
191 | mov [eax], byte 1 |
190 | inc eax |
192 | inc eax |
191 | loop @b |
193 | loop @b |
192 | 194 | ||
193 | ;---------------------------- |
195 | ;---------------------------- |
194 | 196 | ||
195 | ;; SET EVENT MASK |
197 | ;; SET EVENT MASK |
196 | mcall 40, 101b |
198 | mcall 40, 101b |
197 | 199 | ||
198 | ;; INIT TIMER |
200 | ;; INIT TIMER |
199 | mov eax, 60 |
201 | mov eax, 60 |
200 | imul eax, [text.lines] |
202 | imul eax, [text.lines] |
201 | mov [timer], eax |
203 | mov [timer], eax |
202 | mov dword [timer.step], 1 |
204 | mov dword [timer.step], 1 |
203 | cmpne byte [params.atcl], 1, @f |
205 | cmpne byte [params.atcl], 1, @f |
204 | mov dword [timer.step], 0 |
206 | mov dword [timer.step], 0 |
205 | @@: |
207 | @@: |
206 | 208 | ||
207 | ;; INIT WINDOW |
209 | ;; INIT WINDOW |
208 | call init_window |
210 | call init_window |
209 | 211 | ||
210 | ;; RESTORE FOCUS |
212 | ;; RESTORE FOCUS |
211 | mcall 18, 21, [prev_pid] |
213 | mcall 18, 21, [prev_pid] |
212 | mov ecx, eax |
214 | mov ecx, eax |
213 | mcall 18, 3 |
215 | mcall 18, 3 |
214 | 216 | ||
215 | jmp redraw |
217 | jmp redraw |
216 | 218 | ||
217 | ;---------------------------- |
219 | ;---------------------------- |
218 | 220 | ||
219 | update: |
221 | update: |
220 | mcall 23, 10 |
222 | mcall 23, 10 |
221 | cmpe al, EV_REDRAW, redraw |
223 | cmpe al, EV_REDRAW, redraw |
222 | cmpe al, EV_BUTTON, button |
224 | cmpe al, EV_BUTTON, button |
223 | 225 | ||
224 | mov edi, update |
226 | mov edi, update |
225 | 227 | ||
226 | ;; TRY OPEN CONTROLLER |
228 | ;; TRY OPEN CONTROLLER |
227 | cmpe byte [params.ctrl], 1, .fail_controller_open |
229 | cmpe byte [params.ctrl], 1, .fail_controller_open |
228 | mcall 68, 22, ctrl.name, , 0x01 |
230 | mcall 68, 22, ctrl.name, , 0x01 |
229 | cmpe eax, 0, .fail_controller_open |
231 | cmpe eax, 0, .fail_controller_open |
230 | mov byte [params.ctrl], 1 |
232 | mov byte [params.ctrl], 1 |
231 | mov [ctrl.addr], eax |
233 | mov [ctrl.addr], eax |
232 | 234 | ||
233 | ;; COPY TEXT TO CTRL |
235 | ;; COPY TEXT TO CTRL |
234 | add eax, NTCTRL_TEXT |
236 | add eax, NTCTRL_TEXT |
235 | mov ebx, text.buffer |
237 | mov ebx, text.buffer |
236 | 238 | ||
237 | mov ecx, [text.lines] |
239 | mov ecx, [text.lines] |
238 | cmpne byte [params.pbar], 1, @f |
240 | cmpne byte [params.pbar], 1, @f |
239 | dec ecx |
241 | dec ecx |
240 | @@: |
242 | @@: |
241 | 243 | ||
242 | .copy_start: |
244 | .copy_start: |
243 | cmpe ecx, 0, .copy_end |
245 | cmpe ecx, 0, .copy_end |
244 | mov dl, [ebx] |
246 | mov dl, [ebx] |
245 | cmpne dl, 0, @f |
247 | cmpne dl, 0, @f |
246 | mov dl, 10 |
248 | mov dl, 10 |
247 | dec ecx |
249 | dec ecx |
248 | @@: |
250 | @@: |
249 | mov [eax], dl |
251 | mov [eax], dl |
250 | inc eax |
252 | inc eax |
251 | inc ebx |
253 | inc ebx |
252 | jmp .copy_start |
254 | jmp .copy_start |
253 | .copy_end: |
255 | .copy_end: |
254 | mov byte [eax - 1], 0 |
256 | mov byte [eax - 1], 0 |
255 | 257 | ||
256 | ;; COPY FLAGS TO CTRL |
258 | ;; COPY FLAGS TO CTRL |
257 | mov eax, [ctrl.addr] |
259 | mov eax, [ctrl.addr] |
258 | add eax, NTCTRL_ICON |
260 | add eax, NTCTRL_ICON |
259 | mov dl, [params.icon] |
261 | mov dl, [params.icon] |
260 | mov [eax], dl |
262 | mov [eax], dl |
261 | 263 | ||
262 | mov eax, [ctrl.addr] |
264 | mov eax, [ctrl.addr] |
263 | add eax, NTCTRL_TITLE |
265 | add eax, NTCTRL_TITLE |
264 | mov dl, [params.title] |
266 | mov dl, [params.title] |
265 | mov [eax], dl |
267 | mov [eax], dl |
266 | 268 | ||
267 | ;; SET CONTROLLER READY |
269 | ;; SET CONTROLLER READY |
268 | mov eax, [ctrl.addr] |
270 | mov eax, [ctrl.addr] |
269 | add eax, NTCTRL_READY |
271 | add eax, NTCTRL_READY |
270 | mov byte [eax], 1 |
272 | mov byte [eax], 1 |
271 | .fail_controller_open: |
273 | .fail_controller_open: |
272 | 274 | ||
273 | 275 | ||
274 | cmpe [params.ctrl], 0, .no_ctrl |
276 | cmpe [params.ctrl], 0, .no_ctrl |
275 | ;; TEST TEXT |
277 | ;; TEST TEXT |
276 | mov eax, [ctrl.addr] |
278 | mov eax, [ctrl.addr] |
277 | add eax, NTCTRL_APPLY_TEXT |
279 | add eax, NTCTRL_APPLY_TEXT |
278 | cmpne byte [eax], 1, @f |
280 | cmpne byte [eax], 1, @f |
279 | mov byte [eax], 0 |
281 | mov byte [eax], 0 |
280 | 282 | ||
281 | mov eax, [ctrl.addr] |
283 | mov eax, [ctrl.addr] |
282 | add eax, NTCTRL_TEXT |
284 | add eax, NTCTRL_TEXT |
283 | mov esi, 1 |
285 | mov esi, 1 |
284 | call parse_text |
286 | call parse_text |
285 | 287 | ||
286 | mov edi, redraw |
288 | mov edi, redraw |
287 | @@: |
289 | @@: |
288 | 290 | ||
289 | ;; TEST ICON |
291 | ;; TEST ICON |
290 | mov eax, [ctrl.addr] |
292 | mov eax, [ctrl.addr] |
291 | add eax, NTCTRL_APPLY_ICON |
293 | add eax, NTCTRL_APPLY_ICON |
292 | cmpne byte [eax], 1, @f |
294 | cmpne byte [eax], 1, @f |
293 | mov byte [eax], 0 |
295 | mov byte [eax], 0 |
294 | 296 | ||
295 | mov eax, [ctrl.addr] |
297 | mov eax, [ctrl.addr] |
296 | add eax, NTCTRL_ICON |
298 | add eax, NTCTRL_ICON |
297 | mov dl, [eax] |
299 | mov dl, [eax] |
298 | mov [params.icon], dl |
300 | mov [params.icon], dl |
299 | 301 | ||
300 | mov edi, redraw |
302 | mov edi, redraw |
301 | @@: |
303 | @@: |
302 | 304 | ||
303 | ;; TEST TITLE |
305 | ;; TEST TITLE |
304 | mov eax, [ctrl.addr] |
306 | mov eax, [ctrl.addr] |
305 | add eax, NTCTRL_APPLY_TITLE |
307 | add eax, NTCTRL_APPLY_TITLE |
306 | cmpne byte [eax], 1, @f |
308 | cmpne byte [eax], 1, @f |
307 | mov byte [eax], 0 |
309 | mov byte [eax], 0 |
308 | 310 | ||
309 | mov eax, [ctrl.addr] |
311 | mov eax, [ctrl.addr] |
310 | add eax, NTCTRL_TITLE |
312 | add eax, NTCTRL_TITLE |
311 | mov dl, [eax] |
313 | mov dl, [eax] |
312 | mov [params.title], dl |
314 | mov [params.title], dl |
313 | 315 | ||
314 | mov edi, redraw |
316 | mov edi, redraw |
315 | @@: |
317 | @@: |
316 | 318 | ||
317 | ;; TEST PBAR |
319 | ;; TEST PBAR |
318 | mov eax, [ctrl.addr] |
320 | mov eax, [ctrl.addr] |
319 | add eax, NTCTRL_APPLY_PBAR |
321 | add eax, NTCTRL_APPLY_PBAR |
320 | cmpne byte [eax], 1, @f |
322 | cmpne byte [eax], 1, @f |
321 | mov byte [eax], 0 |
323 | mov byte [eax], 0 |
322 | 324 | ||
323 | mov eax, [ctrl.addr] |
325 | mov eax, [ctrl.addr] |
324 | add eax, NTCTRL_PBAR_CUR |
326 | add eax, NTCTRL_PBAR_CUR |
325 | mov edx, [eax] |
327 | mov edx, [eax] |
326 | mov [pbar.cur_val], edx |
328 | mov [pbar.cur_val], edx |
327 | 329 | ||
328 | mov eax, [ctrl.addr] |
330 | mov eax, [ctrl.addr] |
329 | add eax, NTCTRL_PBAR_MAX |
331 | add eax, NTCTRL_PBAR_MAX |
330 | mov edx, [eax] |
332 | mov edx, [eax] |
331 | mov [pbar.max_val], edx |
333 | mov [pbar.max_val], edx |
332 | 334 | ||
333 | call calc_fill_width |
335 | call calc_fill_width |
334 | 336 | ||
335 | mov edi, redraw |
337 | mov edi, redraw |
336 | @@: |
338 | @@: |
337 | 339 | ||
338 | ;; TEST CLOSE |
340 | ;; TEST CLOSE |
339 | mov eax, [ctrl.addr] |
341 | mov eax, [ctrl.addr] |
340 | add eax, NTCTRL_CLOSE |
342 | add eax, NTCTRL_CLOSE |
341 | cmpe byte [eax], 1, exit |
343 | cmpe byte [eax], 1, exit |
342 | 344 | ||
343 | .no_ctrl: |
345 | .no_ctrl: |
344 | 346 | ||
345 | mov eax, [timer.step] |
347 | mov eax, [timer.step] |
346 | sub [timer], eax |
348 | sub [timer], eax |
347 | cmpe [timer], dword 0, exit |
349 | cmpe [timer], dword 0, exit |
348 | jmp edi |
350 | jmp edi |
349 | 351 | ||
350 | ;---------------------------- |
352 | ;---------------------------- |
351 | 353 | ||
352 | exit: |
354 | exit: |
353 | mov eax, [shm.our] |
355 | mov eax, [shm.our] |
354 | mov ecx, [text.lines] |
356 | mov ecx, [text.lines] |
355 | add ecx, 3 |
357 | add ecx, 3 |
356 | @@: |
358 | @@: |
357 | mov [eax], byte 0 |
359 | mov [eax], byte 0 |
358 | inc eax |
360 | inc eax |
359 | loop @b |
361 | loop @b |
360 | 362 | ||
361 | mcall 68, 23, sz_shname |
363 | mcall 68, 23, sz_shname |
362 | 364 | ||
363 | mcall -1 |
365 | mcall -1 |
364 | 366 | ||
365 | ;---------------------------- |
367 | ;---------------------------- |
366 | 368 | ||
367 | button: |
369 | button: |
368 | mcall 17 |
370 | mcall 17 |
369 | cmpe byte [params.clcl], 0, exit |
371 | cmpe byte [params.clcl], 0, exit |
370 | jmp update |
372 | jmp update |
371 | 373 | ||
372 | ;---------------------------- |
374 | ;---------------------------- |
373 | 375 | ||
374 | redraw: |
376 | redraw: |
375 | call draw_window |
377 | call draw_window |
376 | call draw_text |
378 | call draw_text |
377 | call draw_pbar |
379 | call draw_pbar |
378 | 380 | ||
379 | jmp update |
381 | jmp update |
380 | 382 | ||
381 | ;---------------------------- |
383 | ;---------------------------- |
382 | 384 | ||
383 | draw_window: |
385 | draw_window: |
384 | call init_window |
386 | call init_window |
385 | 387 | ||
386 | movzx ebx, bx |
388 | movzx ebx, bx |
387 | movzx ecx, cx |
389 | movzx ecx, cx |
388 | inc ebx |
390 | inc ebx |
389 | inc ecx |
391 | inc ecx |
390 | mcall 8, , , 0x61000001 |
392 | mcall 8, , , 0x61000001 |
391 | 393 | ||
392 | mov eax, 13 |
394 | mov eax, 13 |
393 | mov ebx, [window.width] |
395 | mov ebx, [window.width] |
394 | mov edx, 0x222222 |
396 | mov edx, 0x222222 |
395 | 397 | ||
396 | cmpe [first_draw], byte 1, .draw_full |
398 | cmpe [first_draw], byte 1, .draw_full |
397 | mov [first_draw], byte 1 |
399 | mov [first_draw], byte 1 |
398 | mov esi, [window.height] |
400 | mov esi, [window.height] |
399 | mov ecx, LINEH |
401 | mov ecx, LINEH |
400 | @@: |
402 | @@: |
401 | mcall |
403 | mcall |
402 | add ecx, LINEH shl 16 |
404 | add ecx, LINEH shl 16 |
403 | sub esi, LINEH |
405 | sub esi, LINEH |
404 | push eax ebx |
406 | push eax ebx |
405 | mcall 5, 1 |
407 | mcall 5, 1 |
406 | pop ebx eax |
408 | pop ebx eax |
407 | cmpne esi, 0, @b |
409 | cmpne esi, 0, @b |
408 | 410 | ||
409 | .draw_full: |
411 | .draw_full: |
410 | mcall |
412 | mcall |
411 | 413 | ||
412 | mcall , , 1, 0x121212 |
414 | mcall , , 1, 0x121212 |
413 | 415 | ||
414 | mov ecx, [window.height] |
416 | mov ecx, [window.height] |
415 | dec ecx |
417 | dec ecx |
416 | shl ecx, 16 |
418 | shl ecx, 16 |
417 | inc ecx |
419 | inc ecx |
418 | mcall |
420 | mcall |
419 | 421 | ||
420 | mcall , 1, [window.width] |
422 | mcall , 1, [window.width] |
421 | 423 | ||
422 | mov ebx, [window.width] |
424 | mov ebx, [window.width] |
423 | dec ebx |
425 | dec ebx |
424 | shl ebx, 16 |
426 | shl ebx, 16 |
425 | inc ebx |
427 | inc ebx |
426 | mcall |
428 | mcall |
427 | 429 | ||
428 | mcall 1, 1, 1 |
430 | mcall 1, 1, 1 |
429 | mov ebx, [window.width] |
431 | mov ebx, [window.width] |
430 | sub ebx, 2 |
432 | sub ebx, 2 |
431 | mcall |
433 | mcall |
432 | mov ecx, [window.height] |
434 | mov ecx, [window.height] |
433 | sub ecx, 2 |
435 | sub ecx, 2 |
434 | mcall |
436 | mcall |
435 | mov ebx, 1 |
437 | mov ebx, 1 |
436 | mcall |
438 | mcall |
437 | 439 | ||
438 | ;----- |
440 | ;----- |
439 | 441 | ||
440 | mov ecx, [scr.width] |
442 | mov ecx, [scr.width] |
441 | inc ecx |
443 | inc ecx |
442 | 444 | ||
443 | mov eax, 35 |
445 | mov eax, 35 |
444 | mov ebx, ecx |
446 | mov ebx, ecx |
445 | imul ebx, [window.y] |
447 | imul ebx, [window.y] |
446 | add ebx, [window.x] |
448 | add ebx, [window.x] |
447 | dec ebx |
449 | dec ebx |
448 | mcall |
450 | mcall |
449 | push eax |
451 | push eax |
450 | 452 | ||
451 | mov eax, 35 |
453 | mov eax, 35 |
452 | add ebx, [window.width] |
454 | add ebx, [window.width] |
453 | add ebx, 2 |
455 | add ebx, 2 |
454 | mcall |
456 | mcall |
455 | push eax |
457 | push eax |
456 | 458 | ||
457 | mov eax, 35 |
459 | mov eax, 35 |
458 | mov edx, ecx |
460 | mov edx, ecx |
459 | mov esi, [window.height] |
461 | mov esi, [window.height] |
460 | dec esi |
462 | dec esi |
461 | imul edx, esi |
463 | imul edx, esi |
462 | add ebx, edx |
464 | add ebx, edx |
463 | mcall |
465 | mcall |
464 | push eax |
466 | push eax |
465 | 467 | ||
466 | mov eax, 35 |
468 | mov eax, 35 |
467 | sub ebx, [window.width] |
469 | sub ebx, [window.width] |
468 | sub ebx, 2 |
470 | sub ebx, 2 |
469 | mcall |
471 | mcall |
470 | push eax |
472 | push eax |
471 | 473 | ||
472 | ;----- |
474 | ;----- |
473 | 475 | ||
474 | mov eax, 1 |
476 | mov eax, 1 |
475 | 477 | ||
476 | pop edx |
478 | pop edx |
477 | mov ecx, [window.height] |
479 | mov ecx, [window.height] |
478 | dec ecx |
480 | dec ecx |
479 | mcall , 0 |
481 | mcall , 0 |
480 | 482 | ||
481 | pop edx |
483 | pop edx |
482 | mov ebx, [window.width] |
484 | mov ebx, [window.width] |
483 | dec ebx |
485 | dec ebx |
484 | mcall |
486 | mcall |
485 | 487 | ||
486 | pop edx |
488 | pop edx |
487 | mcall , , 0 |
489 | mcall , , 0 |
488 | 490 | ||
489 | pop edx |
491 | pop edx |
490 | mcall , 0 |
492 | mcall , 0 |
491 | 493 | ||
492 | ;----- |
494 | ;----- |
493 | 495 | ||
494 | cmpe byte [params.icon], 0, @f |
496 | cmpe byte [params.icon], 0, @f |
495 | movzx ebx, byte [params.icon] |
497 | movzx ebx, byte [params.icon] |
496 | dec ebx |
498 | dec ebx |
497 | imul ebx, 24 |
499 | imul ebx, 24 |
498 | 500 | ||
499 | mov edx, [window.height] |
501 | mov edx, [window.height] |
500 | shr edx, 1 |
502 | shr edx, 1 |
501 | sub edx, 12 |
503 | sub edx, 12 |
502 | 504 | ||
503 | stdcall dword [img.draw], dword [img_data.obj], 12, edx, 24, 24, 0, ebx |
505 | stdcall dword [img.draw], dword [img_data.obj], 12, edx, 24, 24, 0, ebx |
504 | @@: |
506 | @@: |
505 | 507 | ||
506 | ret |
508 | ret |
507 | 509 | ||
508 | ;---------------------------- |
510 | ;---------------------------- |
509 | 511 | ||
510 | draw_text: |
512 | draw_text: |
511 | mov esi, [text.lines] |
513 | mov esi, [text.lines] |
512 | 514 | ||
513 | cmpne byte [params.pbar], 1, @f |
515 | cmpne byte [params.pbar], 1, @f |
514 | dec esi |
516 | dec esi |
515 | @@: |
517 | @@: |
516 | 518 | ||
517 | mov eax, 4 |
519 | mov eax, 4 |
518 | mov ebx, [text.offset] |
520 | mov ebx, [text.offset] |
519 | shl ebx, 16 |
521 | shl ebx, 16 |
520 | add ebx, LINEH + (LINEH - 6) / 2 |
522 | add ebx, LINEH + (LINEH - 6) / 2 |
521 | mov edx, text.buffer |
523 | mov edx, text.buffer |
522 | 524 | ||
523 | .draw_lines: |
525 | .draw_lines: |
524 | mov ecx, 0x80111111 |
526 | mov ecx, 0x80111111 |
525 | 527 | ||
526 | add ebx, 0x00010000 |
528 | add ebx, 0x00010000 |
527 | dec ebx |
529 | dec ebx |
528 | mcall |
530 | mcall |
529 | add ebx, 2 |
531 | add ebx, 2 |
530 | mcall |
532 | mcall |
531 | sub ebx, 0x00020000 |
533 | sub ebx, 0x00020000 |
532 | mcall |
534 | mcall |
533 | sub ebx, 2 |
535 | sub ebx, 2 |
534 | mcall |
536 | mcall |
535 | 537 | ||
536 | add ebx, 0x00010001 |
538 | add ebx, 0x00010001 |
537 | mov ecx, 0x80D0D0D0 |
539 | mov ecx, 0x80D0D0D0 |
538 | mcall |
540 | mcall |
539 | 541 | ||
540 | add ebx, LINEH |
542 | add ebx, LINEH |
541 | dec esi |
543 | dec esi |
542 | cmpe esi, 0, .draw_lines.end |
544 | cmpe esi, 0, .draw_lines.end |
543 | 545 | ||
544 | inc edx |
546 | inc edx |
545 | @@: |
547 | @@: |
546 | cmpe [edx], byte 0, @f |
548 | cmpe [edx], byte 0, @f |
547 | inc edx |
549 | inc edx |
548 | jmp @b |
550 | jmp @b |
549 | @@: |
551 | @@: |
550 | inc edx |
552 | inc edx |
551 | jmp .draw_lines |
553 | jmp .draw_lines |
552 | 554 | ||
553 | .draw_lines.end: |
555 | .draw_lines.end: |
554 | 556 | ||
555 | cmpne byte [params.title], 1, @f |
557 | cmpne byte [params.title], 1, @f |
556 | mov edx, text.buffer |
558 | mov edx, text.buffer |
557 | mov ecx, 0x80111111 |
559 | mov ecx, 0x80111111 |
558 | and ebx, 0xFFFF0000 |
560 | and ebx, 0xFFFF0000 |
559 | add ebx, 1 shl 16 + LINEH + (LINEH - 6) / 2 |
561 | add ebx, 1 shl 16 + LINEH + (LINEH - 6) / 2 |
560 | mcall |
562 | mcall |
561 | 563 | ||
562 | mov ecx, 0x80FFFFFF |
564 | mov ecx, 0x80FFFFFF |
563 | sub ebx, 0x00010000 |
565 | sub ebx, 0x00010000 |
564 | mcall |
566 | mcall |
565 | @@: |
567 | @@: |
566 | 568 | ||
567 | ret |
569 | ret |
568 | 570 | ||
569 | ;---------------------------- |
571 | ;---------------------------- |
570 | 572 | ||
571 | draw_pbar: |
573 | draw_pbar: |
572 | cmpne byte [params.pbar], 1, .exit |
574 | cmpne byte [params.pbar], 1, .exit |
573 | mov esi, 0xFF0000 |
575 | mov esi, 0xFF0000 |
574 | mov ecx, LINEH |
576 | mov ecx, LINEH |
575 | imul ecx, [text.lines] |
577 | imul ecx, [text.lines] |
576 | shl ecx, 16 |
578 | shl ecx, 16 |
577 | add ecx, (LINEH / 2) shl 16 + 8 |
579 | add ecx, (LINEH / 2) shl 16 + 8 |
578 | mcall 13, <[text.offset], [pbar.width]>, , 0x555555 |
580 | mcall 13, <[text.offset], [pbar.width]>, , 0x555555 |
579 | 581 | ||
580 | sub ecx, -(1 shl 16) + 2 |
582 | sub ecx, -(1 shl 16) + 2 |
581 | 583 | ||
582 | mov bx, word [pbar.f_width] |
584 | mov bx, word [pbar.f_width] |
583 | add ebx, 1 shl 16 |
585 | add ebx, 1 shl 16 |
584 | 586 | ||
585 | mcall , , , 0x999999 |
587 | mcall , , , 0x999999 |
586 | mov cx, 1 |
588 | mov cx, 1 |
587 | mcall , , , 0xAAAAAA |
589 | mcall , , , 0xAAAAAA |
588 | mov cx, 6 |
590 | mov cx, 6 |
589 | mov bx, 1 |
591 | mov bx, 1 |
590 | mcall |
592 | mcall |
591 | .exit: |
593 | .exit: |
592 | ret |
594 | ret |
593 | 595 | ||
594 | ;---------------------------- |
596 | ;---------------------------- |
595 | 597 | ||
596 | init_window: |
598 | init_window: |
597 | dec dword [window.width] |
599 | dec dword [window.width] |
598 | dec dword [window.height] |
600 | dec dword [window.height] |
599 | mcall 0, <[window.x], [window.width]>, <[window.y], [window.height]>, 0x61000000 |
601 | mcall 0, <[window.x], [window.width]>, <[window.y], [window.height]>, 0x61000000 |
600 | inc dword [window.width] |
602 | inc dword [window.width] |
601 | inc dword [window.height] |
603 | inc dword [window.height] |
602 | 604 | ||
603 | ret |
605 | ret |
604 | 606 | ||
605 | ;---------------------------- |
607 | ;---------------------------- |
606 | 608 | ||
607 | parse_text: |
609 | parse_text: |
608 | mov dword [text.lines], 1 |
610 | mov dword [text.lines], 1 |
609 | cmpne byte [params.pbar], 1, @f |
611 | cmpne byte [params.pbar], 1, @f |
610 | inc dword [text.lines] |
612 | inc dword [text.lines] |
611 | @@: |
613 | @@: |
612 | 614 | ||
613 | mov dword [text.max_len], 0 |
615 | mov dword [text.max_len], 0 |
614 | mov ebx, text.buffer |
616 | mov ebx, text.buffer |
615 | mov ecx, 0 |
617 | mov ecx, 0 |
616 | mov dl, 0 |
618 | mov dl, 0 |
617 | mov dh, 0 |
619 | mov dh, 0 |
618 | 620 | ||
619 | cmpe esi, 1, .parse_loop |
621 | cmpe esi, 1, .parse_loop |
620 | cmpne byte [eax], "'", @f |
622 | cmpne byte [eax], "'", @f |
621 | mov dl, "'" |
623 | mov dl, "'" |
622 | mov dh, 1 |
624 | mov dh, 1 |
623 | @@: |
625 | @@: |
624 | cmpne byte [eax], '"', @f |
626 | cmpne byte [eax], '"', @f |
625 | mov dl, '"' |
627 | mov dl, '"' |
626 | mov dh, 1 |
628 | mov dh, 1 |
627 | @@: |
629 | @@: |
628 | cmpne dh, 1, @f |
630 | cmpne dh, 1, @f |
629 | inc eax |
631 | inc eax |
630 | @@: |
632 | @@: |
631 | 633 | ||
632 | .parse_loop: |
634 | .parse_loop: |
633 | cmpe byte [eax], 0, .parse_loop.end |
635 | cmpe byte [eax], 0, .parse_loop.end |
634 | cmpe byte [eax], dl, .parse_loop.end |
636 | cmpe byte [eax], dl, .parse_loop.end |
635 | 637 | ||
636 | cmpe byte [eax], 10, .newline |
638 | cmpe byte [eax], 10, .newline |
637 | cmpe esi, 1, .next_set_char |
639 | cmpe esi, 1, .next_set_char |
638 | cmpne byte [eax], "\", @f |
640 | cmpne byte [eax], "\", @f |
639 | cmpe byte [eax + 1], dl, .quote |
641 | cmpe byte [eax + 1], dl, .quote |
640 | cmpe byte [eax + 1], "n", .newline_esc |
642 | cmpe byte [eax + 1], "n", .newline_esc |
641 | jmp @f |
643 | jmp @f |
642 | 644 | ||
643 | .quote: |
645 | .quote: |
644 | inc eax |
646 | inc eax |
645 | jmp .next_set_char |
647 | jmp .next_set_char |
646 | 648 | ||
647 | .newline_esc: |
649 | .newline_esc: |
648 | inc eax |
650 | inc eax |
649 | 651 | ||
650 | .newline: |
652 | .newline: |
651 | mov byte [ebx], 0 |
653 | mov byte [ebx], 0 |
652 | cmple ecx, dword [text.max_len], .skip_max_len |
654 | cmple ecx, dword [text.max_len], .skip_max_len |
653 | mov dword [text.max_len], ecx |
655 | mov dword [text.max_len], ecx |
654 | .skip_max_len: |
656 | .skip_max_len: |
655 | mov ecx, 0 |
657 | mov ecx, 0 |
656 | inc dword [text.lines] |
658 | inc dword [text.lines] |
657 | jmp .next |
659 | jmp .next |
658 | @@: |
660 | @@: |
659 | 661 | ||
660 | .next_set_char: |
662 | .next_set_char: |
661 | mov dh, [eax] |
663 | mov dh, [eax] |
662 | mov [ebx], dh |
664 | mov [ebx], dh |
663 | 665 | ||
664 | .next: |
666 | .next: |
665 | inc eax |
667 | inc eax |
666 | inc ebx |
668 | inc ebx |
667 | inc ecx |
669 | inc ecx |
668 | jmp .parse_loop |
670 | jmp .parse_loop |
669 | .parse_loop.end: |
671 | .parse_loop.end: |
670 | 672 | ||
671 | cmple ecx, dword [text.max_len], @f |
673 | cmple ecx, dword [text.max_len], @f |
672 | mov dword [text.max_len], ecx |
674 | mov dword [text.max_len], ecx |
673 | @@: |
675 | @@: |
674 | 676 | ||
675 | cmpge [text.max_len], dword 25, @f |
677 | cmpge [text.max_len], dword 25, @f |
676 | mov [text.max_len], dword 25 |
678 | mov [text.max_len], dword 25 |
677 | @@: |
679 | @@: |
678 | 680 | ||
679 | mov [ebx], byte 0 |
681 | mov [ebx], byte 0 |
680 | 682 | ||
681 | ret |
683 | ret |
682 | 684 | ||
683 | ;---------------------------- |
685 | ;---------------------------- |
684 | 686 | ||
685 | parse_flags: |
687 | parse_flags: |
686 | mov byte [params.atcl], 0 |
688 | mov byte [params.atcl], 0 |
687 | mov byte [params.title], 0 |
689 | mov byte [params.title], 0 |
688 | mov byte [params.icon], 0 |
690 | mov byte [params.icon], 0 |
689 | 691 | ||
690 | .loop: |
692 | .loop: |
691 | mov dl, [eax] |
693 | mov dl, [eax] |
692 | 694 | ||
693 | cmpe dl, 0, .exit |
695 | cmpe dl, 0, .exit |
694 | cmpe dl, "d", .set_atcl |
696 | cmpe dl, "d", .set_atcl |
695 | cmpe dl, "c", .set_clcl |
697 | cmpe dl, "c", .set_clcl |
696 | cmpe dl, "t", .set_title |
698 | cmpe dl, "t", .set_title |
697 | cmpe dl, "p", .set_pbar |
699 | cmpe dl, "p", .set_pbar |
698 | 700 | ||
699 | mov bl, 1 |
701 | mov bl, 1 |
700 | mov ecx, sz_icons |
702 | mov ecx, sz_icons |
701 | @@: |
703 | @@: |
702 | cmpe dl, [ecx], .set_icon |
704 | cmpe dl, [ecx], .set_icon |
703 | inc bl |
705 | inc bl |
704 | inc ecx |
706 | inc ecx |
705 | cmpne [ecx], byte 0, @b |
707 | cmpne [ecx], byte 0, @b |
706 | jmp .next_char |
708 | jmp .next_char |
707 | 709 | ||
708 | .set_atcl: |
710 | .set_atcl: |
709 | mov byte [params.atcl], 1 |
711 | mov byte [params.atcl], 1 |
710 | jmp .next_char |
712 | jmp .next_char |
711 | 713 | ||
712 | .set_clcl: |
714 | .set_clcl: |
713 | mov byte [params.clcl], 1 |
715 | mov byte [params.clcl], 1 |
714 | jmp .next_char |
716 | jmp .next_char |
715 | 717 | ||
716 | .set_title: |
718 | .set_title: |
717 | mov byte [params.title], 1 |
719 | mov byte [params.title], 1 |
718 | jmp .next_char |
720 | jmp .next_char |
719 | 721 | ||
720 | .set_pbar: |
722 | .set_pbar: |
721 | mov byte [params.pbar], 1 |
723 | mov byte [params.pbar], 1 |
722 | inc dword [text.lines] |
724 | inc dword [text.lines] |
723 | jmp .next_char |
725 | jmp .next_char |
724 | 726 | ||
725 | .set_icon: |
727 | .set_icon: |
726 | mov [params.icon], bl |
728 | mov [params.icon], bl |
727 | 729 | ||
728 | .next_char: |
730 | .next_char: |
729 | inc eax |
731 | inc eax |
730 | jmp .loop |
732 | jmp .loop |
731 | 733 | ||
732 | .exit: |
734 | .exit: |
733 | ret |
735 | ret |
734 | 736 | ||
735 | ;---------------------------- |
737 | ;---------------------------- |
736 | 738 | ||
737 | calc_fill_width: |
739 | calc_fill_width: |
738 | mov eax, [pbar.cur_val] |
740 | mov eax, [pbar.cur_val] |
739 | cmpng eax, [pbar.max_val], @f |
741 | cmpng eax, [pbar.max_val], @f |
740 | mov eax, [pbar.max_val] |
742 | mov eax, [pbar.max_val] |
741 | @@: |
743 | @@: |
742 | cmpnl eax, 0, @f |
744 | cmpnl eax, 0, @f |
743 | mov eax, 0 |
745 | mov eax, 0 |
744 | @@: |
746 | @@: |
745 | 747 | ||
746 | mov ebx, [pbar.width] |
748 | mov ebx, [pbar.width] |
747 | sub ebx, 2 |
749 | sub ebx, 2 |
748 | imul eax, ebx |
750 | imul eax, ebx |
749 | mov edx, 0 |
751 | mov edx, 0 |
750 | mov ebx, [pbar.max_val] |
752 | mov ebx, [pbar.max_val] |
751 | div ebx |
753 | div ebx |
752 | mov [pbar.f_width], eax |
754 | mov [pbar.f_width], eax |
753 | ret |
755 | ret |
754 | 756 | ||
755 | ;---------------------------- |
757 | ;---------------------------- |
756 | 758 | ||
757 | @imports: |
759 | @imports: |
758 | library img, "libimg.obj" |
760 | library img, "libimg.obj" |
759 | import img, img.to_rgb, "img_to_rgb2", \ |
761 | import img, img.to_rgb, "img_to_rgb2", \ |
760 | img.decode, "img_decode", \ |
762 | img.decode, "img_decode", \ |
761 | img.draw, "img_draw" |
763 | img.draw, "img_draw" |
762 | 764 | ||
763 | ;---------------------------- |
765 | ;---------------------------- |
764 | 766 | ||
765 | sz_icons db "AEWONIFCMDS", 0 |
767 | sz_icons db "AEWONIFCMDS", 0 |
766 | sz_ifile db "/sys/notify3.png", 0 |
768 | sz_ifile db "/sys/notify3.png", 0 |
767 | sz_shname db "notify-mem-v01", 0 |
769 | sz_shname db "notify-mem-v01", 0 |
768 | sz_std db "'NOTIFY 3\n", \ |
770 | sz_std db "'NOTIFY 3\n", \ |
769 | "d - disable auto-closing\n", \ |
771 | "d - disable auto-closing\n", \ |
770 | "c - disable click-closing\n", \ |
772 | "c - disable click-closing\n", \ |
771 | "p - use progressbar\n", \ |
773 | "p - use progressbar\n", \ |
772 | "t - title\n", \ |
774 | "t - title\n", \ |
773 | " \n", \ |
775 | " \n", \ |
774 | "ICONS:\n", \ |
776 | "ICONS:\n", \ |
775 | "A - application\n", \ |
777 | "A - application\n", \ |
776 | "E - error\n", \ |
778 | "E - error\n", \ |
777 | "W - warning\n", \ |
779 | "W - warning\n", \ |
778 | "O - ok\n", \ |
780 | "O - ok\n", \ |
779 | "N - network\n", \ |
781 | "N - network\n", \ |
780 | "I - info\n", \ |
782 | "I - info\n", \ |
781 | "F - folder\n", \ |
783 | "F - folder\n", \ |
782 | "C - component\n", \ |
784 | "C - component\n", \ |
783 | "M - mail\n", \ |
785 | "M - mail\n", \ |
784 | "D - download\n", \ |
786 | "D - download\n", \ |
785 | "S - audio player", \ |
787 | "S - audio player", \ |
786 | "' -td", 0 |
788 | "' -td", 0 |
787 | 789 | ||
788 | fi: |
790 | fi: |
789 | dd 5 |
791 | dd 5 |
790 | dd 0, 0, 0 |
792 | dd 0, 0, 0 |
791 | dd buffer |
793 | dd buffer |
792 | db 0 |
794 | db 0 |
793 | dd sz_ifile |
795 | dd sz_ifile |
794 | 796 | ||
795 | ;---------------------------- |
797 | ;---------------------------- |
796 | 798 | ||
797 | @end: |
799 | @end: |
798 | 800 | ||
799 | ;===================================================================== |
801 | ;===================================================================== |
800 | 802 | ||
801 | window: |
803 | window: |
802 | .x rd 1 |
804 | .x rd 1 |
803 | .y rd 1 |
805 | .y rd 1 |
804 | .width rd 1 |
806 | .width rd 1 |
805 | .height rd 1 |
807 | .height rd 1 |
806 | 808 | ||
807 | scr: |
809 | scr: |
808 | .width rd 1 |
810 | .width rd 1 |
809 | .height rd 1 |
811 | .height rd 1 |
810 | 812 | ||
811 | text: |
813 | text: |
812 | .buffer rb 2048 |
814 | .buffer rb 2048 |
813 | .lines rd 1 |
815 | .lines rd 1 |
814 | .max_len rd 1 |
816 | .max_len rd 1 |
815 | .offset rd 1 |
817 | .offset rd 1 |
816 | 818 | ||
817 | params: |
819 | params: |
818 | .source rd 1 |
820 | .source rd 1 |
819 | .atcl rb 1 |
821 | .atcl rb 1 |
820 | .clcl rb 1 |
822 | .clcl rb 1 |
821 | .title rb 1 |
823 | .title rb 1 |
822 | .pbar rb 1 |
824 | .pbar rb 1 |
823 | .icon rb 1 |
825 | .icon rb 1 |
824 | .ctrl rb 1 |
826 | .ctrl rb 1 |
825 | 827 | ||
826 | img_data: |
828 | img_data: |
827 | .file rd 1 |
829 | .file rd 1 |
828 | .obj rd 1 |
830 | .obj rd 1 |
829 | 831 | ||
830 | timer: |
832 | timer: |
831 | .value rd 1 |
833 | .value rd 1 |
832 | .step rd 1 |
834 | .step rd 1 |
833 | 835 | ||
834 | shm: |
836 | shm: |
835 | .addr rd 1 |
837 | .addr rd 1 |
836 | .our rd 1 |
838 | .our rd 1 |
837 | 839 | ||
838 | ctrl: |
840 | ctrl: |
839 | .name rb 31 |
841 | .name rb 31 |
840 | .addr rd 1 |
842 | .addr rd 1 |
841 | 843 | ||
842 | pbar: |
844 | pbar: |
843 | .width rd 1 |
845 | .width rd 1 |
844 | .cur_val rd 1 |
846 | .cur_val rd 1 |
845 | .max_val rd 1 |
847 | .max_val rd 1 |
846 | .f_width rd 1 |
848 | .f_width rd 1 |
847 | 849 | ||
848 | buffer rb 1024 |
850 | buffer rb 1024 |
849 | first_draw rb 1 |
851 | first_draw rb 1 |
850 | prev_pid rd 1 |
852 | prev_pid rd 1 |
851 | 853 | ||
852 | ;===================================================================== |
854 | ;===================================================================== |
853 | rb 2048 |
855 | rb 2048 |
854 | @stack: |
856 | @stack: |
855 | @params rb 2048 |
857 | @params rb 256 |
856 | 858 | ||
857 | @memory:[window.y],>[window.x],>[text.offset],> |
859 | @memory:[window.y],>[window.x],>[text.offset],> |