Rev 2592 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1815 | yogev_ezra | 1 | ; |
2 | ; PANEL SETUP |
||
3 | ; |
||
3645 | fedesco | 4 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 5 | ; last update: 09/04/2012 |
6 | ; changed by: Marat Zakiyanov aka Mario79, aka Mario |
||
7 | ; changes: Code optimizing and refactoring. |
||
3645 | fedesco | 8 | ; |
2592 | mario79 | 9 | ;------------------------------------------------------------------------------ |
10 | use32 |
||
11 | org 0x0 |
||
12 | db 'MENUET01' ; 8 byte id |
||
13 | dd 0x01 ; header version |
||
14 | dd START ; start of code |
||
15 | dd IM_END ; size of image |
||
16 | dd I_END ;0x8000 ; memory for app |
||
17 | dd stack_top ; esp |
||
18 | dd 0x0 ; boot parameters |
||
19 | dd 0x0 ; path |
||
20 | ;------------------------------------------------------------------------------ |
||
1829 | clevermous | 21 | include '../../../macros.inc' |
3645 | fedesco | 22 | include 'lang.inc' |
2592 | mario79 | 23 | ;------------------------------------------------------------------------------ |
24 | START: |
||
3645 | fedesco | 25 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 26 | align 4 |
27 | red: |
||
28 | call draw_window |
||
3645 | fedesco | 29 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 30 | align 4 |
1815 | yogev_ezra | 31 | still: |
2592 | mario79 | 32 | mcall 10 |
3645 | fedesco | 33 | |
2592 | mario79 | 34 | cmp eax,1 ; redraw request ? |
35 | je red |
||
1815 | yogev_ezra | 36 | |
2592 | mario79 | 37 | cmp eax,2 ; key in buffer ? |
38 | je key |
||
1815 | yogev_ezra | 39 | |
2592 | mario79 | 40 | cmp eax,3 ; button in buffer ? |
41 | je button |
||
3645 | fedesco | 42 | |
2592 | mario79 | 43 | jmp still |
3645 | fedesco | 44 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 45 | align 4 |
46 | key: |
||
47 | mcall 2 |
||
3645 | fedesco | 48 | |
2592 | mario79 | 49 | shr eax,8 |
50 | cmp eax,'0' |
||
51 | jb still |
||
1815 | yogev_ezra | 52 | |
2592 | mario79 | 53 | cmp eax,'9' |
54 | jg still |
||
3645 | fedesco | 55 | |
2592 | mario79 | 56 | mov edi,[ent] |
57 | add edi,text |
||
58 | mov esi,edi |
||
59 | inc esi |
||
60 | mov ecx,3 |
||
61 | cld |
||
62 | rep movsb |
||
3645 | fedesco | 63 | |
2592 | mario79 | 64 | mov [edi],al |
3645 | fedesco | 65 | |
2592 | mario79 | 66 | jmp red |
3645 | fedesco | 67 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 68 | align 4 |
69 | button: |
||
70 | mcall 17 |
||
3645 | fedesco | 71 | |
2592 | mario79 | 72 | cmp ah,1 ; button id=1 ? |
73 | jne noclose |
||
1815 | yogev_ezra | 74 | |
2592 | mario79 | 75 | mcall -1 ; close this program |
76 | ;-------------------------------------- |
||
77 | align 4 |
||
78 | noclose: |
||
79 | cmp ah,10 |
||
80 | jne no_apply |
||
3645 | fedesco | 81 | |
2592 | mario79 | 82 | mov esi,text+17 |
83 | mov edi,panel_ini_data_area ;I_END+10 |
||
84 | mov ecx,12 |
||
85 | ;-------------------------------------- |
||
86 | align 4 |
||
87 | newfe: |
||
88 | mov ebx,[esi] |
||
89 | mov [edi],ebx |
||
90 | mov [edi+4],byte ';' |
||
91 | add edi,5 |
||
92 | add esi,55 |
||
93 | loop newfe |
||
1815 | yogev_ezra | 94 | |
2592 | mario79 | 95 | mov [edi],byte 'x' |
96 | mcall 70,dat_write |
||
97 | mov esi,1 |
||
98 | ;-------------------------------------- |
||
99 | align 4 |
||
100 | newread: |
||
101 | inc esi |
||
102 | mcall 9,proc_info,esi |
||
103 | cmp esi,eax |
||
104 | jg all_terminated |
||
3645 | fedesco | 105 | |
2592 | mario79 | 106 | mov eax,[ebx+10] |
107 | and eax,not 0x20202000 |
||
108 | cmp eax,'@PAN' |
||
109 | jne newread |
||
1815 | yogev_ezra | 110 | |
2592 | mario79 | 111 | mov eax,[ebx+14] |
112 | and eax,not 0x2020 |
||
113 | cmp ax,'EL' |
||
114 | jne newread |
||
3645 | fedesco | 115 | |
2592 | mario79 | 116 | mcall 18,2,esi |
3645 | fedesco | 117 | |
2592 | mario79 | 118 | mcall 5,5 |
3645 | fedesco | 119 | |
2592 | mario79 | 120 | mov esi,1 |
121 | jmp newread |
||
122 | ;-------------------------------------- |
||
123 | align 4 |
||
124 | all_terminated: |
||
125 | mcall 5,25 |
||
1815 | yogev_ezra | 126 | |
2592 | mario79 | 127 | mcall 70,panel_start |
128 | ;-------------------------------------- |
||
129 | align 4 |
||
130 | no_apply: |
||
131 | cmp ah,11 |
||
132 | jb still |
||
1815 | yogev_ezra | 133 | |
2592 | mario79 | 134 | shr eax,8 |
135 | sub eax,11 |
||
136 | imul eax,55 |
||
137 | add eax,17 |
||
138 | mov [ent],eax |
||
139 | mov [text+eax],dword '0000' |
||
140 | jmp red |
||
3645 | fedesco | 141 | ;------------------------------------------------------------------------------ |
1815 | yogev_ezra | 142 | ; ********************************************* |
143 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
||
144 | ; ********************************************* |
||
3645 | fedesco | 145 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 146 | align 4 |
1815 | yogev_ezra | 147 | draw_window: |
2592 | mario79 | 148 | mcall 12,1 |
149 | ; DRAW WINDOW |
||
150 | xor eax,eax |
||
151 | xor esi,esi |
||
152 | mcall ,<100,385>,<100,190>,0x14ffffff,,labelt |
||
1815 | yogev_ezra | 153 | |
2592 | mario79 | 154 | mcall 8,<25,335>,<162,12>,10,0x80a0c0 ;0x6677cc |
1815 | yogev_ezra | 155 | |
2592 | mario79 | 156 | mov ebx,340*65536+20 |
157 | mov ecx,34*65536+10 |
||
158 | inc edx ;11 - button |
||
159 | ;-------------------------------------- |
||
160 | align 4 |
||
161 | newb: |
||
162 | mcall |
||
163 | add ecx,10*65536 |
||
164 | inc edx |
||
165 | cmp edx,23 |
||
166 | jb newb |
||
1815 | yogev_ezra | 167 | |
2592 | mario79 | 168 | mov ebx,25*65536+35 ; draw info text with function 4 |
169 | mov ecx,0x224466 |
||
170 | mov edx,text |
||
171 | mov esi,55 |
||
172 | mov eax,4 |
||
173 | ;-------------------------------------- |
||
174 | align 4 |
||
175 | newline: |
||
176 | mcall |
||
177 | add ebx,10 |
||
178 | add edx,55 |
||
179 | cmp [edx],byte 'x' |
||
180 | jne newline |
||
1815 | yogev_ezra | 181 | |
2592 | mario79 | 182 | mcall 12,2 |
183 | ret |
||
3645 | fedesco | 184 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 185 | align 4 |
1815 | yogev_ezra | 186 | ; DATA AREA |
3645 | fedesco | 187 | if lang eq it |
188 | text: |
||
189 | db 'largehzza 0000 : 0 for full screen width <' |
||
190 | db 'pulsanti 0000 : 0 no frames , 1 frames <' |
||
191 | db 'soften_up 0001 : 0 no , 1 si <' |
||
192 | db 'soften_down 0001 : 0 no , 1 si <' |
||
193 | db 'minimize_left 0001 : 0 no , 1 si <' |
||
194 | db 'minimize_right 0001 : 0 no , 1 si <' |
||
195 | db 'posizione icone 0100 : posizione in pixel <' |
||
196 | db 'menu_enable 0001 : 0 no , 1 si <' |
||
197 | db 'setup_enable 0001 : 0 no , 1 si <' |
||
198 | db 'graph_text 0001 : 0 grafica , 1 text <' |
||
199 | db 'soften_middle 0001 : 0 no , 1 si <' |
||
200 | db 'icone 0001 : 0 start , 1 attivato <' |
||
201 | db ' ' |
||
202 | db ' Applica ' |
||
203 | db 'x' |
||
204 | |||
205 | labelt: |
||
206 | db 'Setup pannello' |
||
207 | labellen: |
||
208 | else |
||
209 | text: |
||
210 | db 'width 0000 : 0 for full screen width <' |
||
211 | db 'buttons 0000 : 0 no frames , 1 frames <' |
||
212 | db 'soften_up 0001 : 0 no , 1 yes <' |
||
213 | db 'soften_down 0001 : 0 no , 1 yes <' |
||
214 | db 'minimize_left 0001 : 0 no , 1 yes <' |
||
215 | db 'minimize_right 0001 : 0 no , 1 yes <' |
||
216 | db 'icons_position 0100 : position in pixels <' |
||
217 | db 'menu_enable 0001 : 0 no , 1 yes <' |
||
218 | db 'setup_enable 0001 : 0 no , 1 yes <' |
||
219 | db 'graph_text 0001 : 0 graphics , 1 text <' |
||
220 | db 'soften_middle 0001 : 0 no , 1 yes <' |
||
221 | db 'icons 0001 : 0 start , 1 activate <' |
||
222 | db ' ' |
||
223 | db ' APPLY ' |
||
224 | db 'x' |
||
225 | |||
226 | labelt: |
||
227 | db 'Panel setup' |
||
228 | labellen: |
||
229 | end if |
||
230 | ;------------------------------------------------------------------------------ |
||
2592 | mario79 | 231 | align 4 |
232 | ent dd 17 |
||
3645 | fedesco | 233 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 234 | align 4 |
235 | panel_start: |
||
236 | dd 7 |
||
237 | dd 0 |
||
238 | dd 0 |
||
239 | dd 0 |
||
240 | dd 0 |
||
241 | db '/RD/1/@PANEL',0 |
||
3645 | fedesco | 242 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 243 | align 4 |
244 | dat_write: |
||
245 | dd 2 |
||
246 | dd 0 |
||
247 | dd 0 |
||
248 | dd 5*12+1 |
||
249 | dd panel_ini_data_area ;I_END+10 |
||
250 | db 'PANEL.DAT',0 |
||
3645 | fedesco | 251 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 252 | IM_END: |
3645 | fedesco | 253 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 254 | align 4 |
255 | proc_info: |
||
256 | rb 1024 |
||
257 | ;------------------------------------------------------------------------------ |
||
258 | align 4 |
||
259 | rb 1024 |
||
260 | stack_top: |
||
3645 | fedesco | 261 | ;------------------------------------------------------------------------------ |
2592 | mario79 | 262 | align 4 |
263 | panel_ini_data_area: |
||
264 | rb 61 |
||
3645 | fedesco | 265 | ;------------------------------------------------------------------------------ |
1815 | yogev_ezra | 266 | I_END: |
3645 | fedesco | 267 | ;------------------------------------------------------------------------------' |