Subversion Repositories Kolibri OS

Rev

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