Subversion Repositories Kolibri OS

Rev

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

Rev 2087 Rev 2088
1
use32
1
use32
2
    org 0x0
2
    org 0x0
3
    db  'MENUET01'
3
    db  'MENUET01'
4
    dd  0x01,start,i_end,e_end,e_end,0,0
4
    dd  0x01,start,i_end,e_end,e_end,0,0
-
 
5
 
-
 
6
include '../../../proc32.inc'
5
 
7
include '../../../macros.inc'
6
 
8
 
7
BUTTON_SIDE		equ	16		; button are squares
9
BUTTON_SIDE			equ	16	; button are squares
8
BUTTON_SPACE		equ	19		; space between cols and rows
10
BUTTON_SPACE			equ	19	; space between cols and rows
-
 
11
BUTTON_ID_SHIFT			equ	2	; button_id = character + BUTTON_ID_SHIFT
-
 
12
TABLE_BEGIN_X			equ	2
-
 
13
TABLE_BEGIN_Y			equ	2
-
 
14
 
-
 
15
FOCUS_SQUARE_COLOR		equ	0x000080FF
9
 
-
 
10
 
-
 
-
 
16
PAGE_SWITCHER_BLINK_COLOR	equ	0x00808080
11
start:
17
 
12
	call	get_skin_height
18
 
13
 
-
 
14
still:
-
 
15
	mov	eax, 10
19
start:
16
	int	0x40
-
 
17
 
20
still:
18
	dec	eax
21
	mcall	10
19
	jnz	@f
-
 
20
	call	redraw
22
	dec	eax
21
    @@:	dec	eax
-
 
22
	jnz	@f
-
 
23
	call	key
-
 
24
    @@:	dec	eax
-
 
25
	jnz	@f
-
 
26
	call	button
-
 
27
    @@:	jmp	still
-
 
28
 
23
	jz	redraw
29
 
24
	dec	eax
30
get_skin_height:
25
	jz	key
-
 
26
 
-
 
27
button:
-
 
28
	mcall	17
-
 
29
	shr	eax, 8
-
 
30
 
-
 
31
	cmp	eax, 1
-
 
32
	je	quit
-
 
33
	cmp	ax, 0xFFAA			; page switcher
31
 
34
	je	.switch_page			; any button with a character
-
 
35
  .change_focus:
-
 
36
	mov	bl, [symbol_focused]
-
 
37
	mov	[symbol_unfocused], bl
-
 
38
	sub	ax, BUTTON_ID_SHIFT		; get the corresponding character
-
 
39
	mov	[symbol_focused], al
-
 
40
	stdcall	draw_table, 0
-
 
41
	call	draw_codes
-
 
42
	jmp	still
-
 
43
  .switch_page:
-
 
44
	movzx	bx, [symbol_start]
-
 
45
	add	bx, BUTTON_ID_SHIFT
32
	mov	eax, 48
46
	mov	cx, 128				; half of page
-
 
47
	mov	edx, 0x80000000
-
 
48
	mov	dx, bx
-
 
49
    @@:	mcall	8
-
 
50
	inc	edx
-
 
51
	dec	cx
-
 
52
	jnz	@b
-
 
53
 
-
 
54
    @@:	add	[symbol_start], 128		; change page
-
 
55
	add	[symbol_focused], 128
33
	mov	ebx, 4
56
	stdcall	draw_table, 1			; 1 means redraw the whole table
34
	int	0x40
57
	call	draw_codes
35
 
58
	stdcall	draw_page_switcher, 1		; 1 means dark color, for blinking
-
 
59
	mcall	5, 10
36
	mov	[skin_height], eax
60
	stdcall	draw_page_switcher, 0		; 0 means usual light color
37
	ret
-
 
38
 
61
	jmp	still
39
 
62
 
40
redraw:
63
redraw:
41
	mov	eax, 12
64
	mcall	9, proc_info, -1
-
 
65
	mcall	48, 3, sys_colors, 40
42
	mov	ebx, 1
66
 
-
 
67
	mcall	12, 1
43
	int	0x40
68
 
-
 
69
	mcall	48, 4				; get skin height
44
 
70
	mov	ecx, 300*0x10000+184
45
	mov	eax, 0
71
	add	ecx, eax
46
	mov	ebx, 300*0x10000+317
72
	mov	edx, 0x34000000
47
	mov	ecx, 300*0x10000+184
73
	or	edx, [sys_colors.work]
48
	add	ecx, [skin_height]
-
 
49
	mov	edx, 0x33F0F0F0			; skinned, resizeable
-
 
50
	mov	esi, 0x80808080			; title color
-
 
51
	mov	edi, window_title
-
 
52
	int	0x40
-
 
-
 
74
	mov	esi, 0x80000000
-
 
75
	or	esi, [sys_colors.grab_text]
-
 
76
	mcall	0, <300,315>, , , , window_title
53
 
77
	test	[proc_info.wnd_state], 0x04
54
	call	draw_table
78
	jnz	@f
55
	call	draw_codes
79
 
56
	call	draw_page_switcher
80
	stdcall	draw_table, 1
57
 
-
 
58
	mov	eax, 12
-
 
59
	mov	ebx, 2
-
 
60
	int	0x40
81
	call	draw_codes
61
	ret
82
	stdcall	draw_page_switcher, 0
62
 
-
 
63
 
-
 
64
key:
-
 
65
	mov	eax, 2
-
 
66
	int	0x40
-
 
67
	ret
83
 
68
 
-
 
69
button:
84
    @@:
70
	mov	eax, 17
85
	mcall	12, 2
71
	int	0x40
-
 
72
	cmp	eax, 1
86
	jmp	still
73
	jnz	@f
87
 
74
	ret
88
key:
75
    @@:	shr	eax, 8
89
	mcall	2
76
	cmp	eax, 1
-
 
77
	jz	quit
90
	cmp	ah, 0x09			; TAB key
78
	cmp	ax, 0xFFAA
-
 
79
	jnz	.change_focus
-
 
80
	xor	bx, bx
91
	je	button.switch_page
81
	mov	bl, [symbol_start]
92
 
-
 
93
	cmp	ah, 0xB0			; left
-
 
94
	jne	@f
-
 
95
	mov	bl, [symbol_focused]
-
 
96
	mov	[symbol_unfocused], bl
-
 
97
	dec	bl
82
	add	bx, 2
98
	and	bl, 0x0f
-
 
99
	and	[symbol_focused], 0xf0
83
	mov	cx, bx
100
	or	[symbol_focused], bl
84
	add	cx, 128
101
	stdcall	draw_table, 0
85
    @@:	mov	eax, 8
-
 
86
	mov	edx, 0x80000000
-
 
87
	add	dx, bx
-
 
88
	int	0x40
-
 
89
	cmp	bx, cx
102
	call	draw_codes
90
	jz	@f
-
 
91
	inc	bx
-
 
92
	jmp	@b
-
 
93
 
103
	jmp	still
-
 
104
 
94
    @@:	add	[symbol_start], 128		; change page
105
    @@:	cmp	ah, 0xB1			; down
95
	add	[symbol_focused], 128
106
	jne	@f
96
	call	draw_table
107
	mov	bl, [symbol_focused]
97
	call	draw_codes
108
	mov	[symbol_unfocused], bl
98
	mov	[redraw_flag], 1		; for page_switcher this means visual blink (color changing)
109
	add	bl, 16
99
	call	draw_page_switcher
110
	and	bl, 0x70
100
	mov	eax, 5
111
	and	[symbol_focused], 0x8f
101
	mov	ebx, 10
112
	or	[symbol_focused], bl
-
 
113
	stdcall	draw_table, 0
-
 
114
	call	draw_codes
-
 
115
	jmp	still
-
 
116
 
-
 
117
    @@:	cmp	ah, 0xB2			; up
-
 
118
	jne	@f
-
 
119
	mov	bl, [symbol_focused]
-
 
120
	mov	[symbol_unfocused], bl
-
 
121
	sub	bl, 16
-
 
122
	and	bl, 0x70
102
	int	0x40
123
	and	[symbol_focused], 0x8f
-
 
124
	or	[symbol_focused], bl
-
 
125
	stdcall	draw_table, 0
103
	mov	[redraw_flag], 0
126
	call	draw_codes
-
 
127
	jmp	still
-
 
128
 
-
 
129
    @@:	cmp	ah, 0xB3			; righ
-
 
130
	jne	@f
104
	call	draw_page_switcher
131
	mov	bl, [symbol_focused]
105
	ret
132
	mov	[symbol_unfocused], bl
106
 
133
	inc	bl
107
  .change_focus:
134
	and	bl, 0x0f
108
	mov	bl, [symbol_focused]
135
	and	[symbol_focused], 0xf0
109
	mov	[symbol_unfocused], bl
136
	or	[symbol_focused], bl
110
	shl	eax, 8
137
	stdcall	draw_table, 0
111
	sub	ah, 2
138
	call	draw_codes
112
	mov	[symbol_focused], ah
139
	jmp	still
113
	mov	[redraw_flag], 1		; for table this means redraw only focused and unfocused buttons
140
	jne	@f
114
	call	draw_table
141
 
115
	call	draw_codes
142
    @@:
116
	mov	[redraw_flag], 0
143
	jmp	still
117
	ret
144
 
118
 
145
 
119
 
146
 
120
draw_table:
147
proc	draw_table _full_redraw
121
 
148
 
122
	mov	al, [symbol_start]
149
	mov	al, [symbol_start]
123
	mov	[symbol_current], al
150
	mov	[symbol_current], al
124
 
151
 
125
  .next_button:
152
  .next_button:
126
	push	[button_x]
-
 
127
	pop	[button_cur_x]
-
 
128
	push	[button_y]
-
 
129
	pop	[button_cur_y]
-
 
-
 
153
 
130
 
154
	xor	edi, edi			; character focus flag
131
	mov	al, [symbol_current]
-
 
132
	mov	[button_cur_id], al
-
 
133
 
-
 
134
	mov	[is_active], 0
-
 
135
 
155
	mov	al, [symbol_current]
136
	mov	al, [symbol_focused]
-
 
137
	cmp	[symbol_current], al
156
	cmp	al, [symbol_focused]
138
	jnz	@f
157
	jne	@f
139
	mov	byte[is_active], 1
158
	inc	edi
140
    @@:	cmp	[redraw_flag], 1
159
    @@:	cmp	[_full_redraw], 1
141
	jnz	.draw				; if redraw_flag is zero, we should redraw the whole table
160
	je	.draw
142
	mov	al, [symbol_focused]
-
 
143
	cmp	[symbol_current], al
161
	cmp	al, [symbol_focused]
144
	jz	.draw
162
	je	.draw
145
	mov	al, [symbol_unfocused]
-
 
146
	cmp	[symbol_current], al
163
	cmp	al, [symbol_unfocused]		; previously focused, should redraw to clear focus
147
	jz	.draw
164
	je	.draw
148
	jmp	.skip				; skip button if it isn't (un)focused
165
	jmp	.skip				; skip button if it isn't (un)focused
149
 
166
 
150
  .draw:
167
  .draw:
151
	call	draw_button
168
	call	draw_button
152
  .skip:
169
  .skip:
153
	mov	al, [symbol_start]
170
	mov	bl, [symbol_start]
154
	add	al, 127				; end of current page
171
	add	bl, 127				; end of current page
155
	cmp	[symbol_current], al		; the last on page?
172
	cmp	[symbol_current], bl		; the last on page?
156
	jb	@f
173
	jne	@f
157
	mov	[button_x], 2
174
	mov	[button_x], TABLE_BEGIN_X
158
	mov	[button_y], 2
175
	mov	[button_y], TABLE_BEGIN_Y
159
	ret
176
	ret
160
    @@:	inc	[symbol_current]
177
    @@:	inc	[symbol_current]
161
	add	[button_x], BUTTON_SPACE
178
	add	[button_x], BUTTON_SPACE
162
	cmp	[button_x], 306			; the last in row?
179
	cmp	[button_x], 306			; the last in row?
163
	jae	@f
-
 
164
	jmp	.next_button
180
	jne	.next_button
165
    @@:	add	[button_y], BUTTON_SPACE	; next row
181
	add	[button_y], BUTTON_SPACE	; next row
166
	mov	[button_x], 2
182
	mov	[button_x], TABLE_BEGIN_X
167
	jmp	.next_button
183
	jmp	.next_button
168
 
-
 
169
 
-
 
170
	ret
184
	ret
-
 
185
endp
171
 
186
 
172
 
-
 
173
draw_button:
187
 
174
	mov	eax, 8
188
proc	draw_button
175
	mov	ebx, [button_cur_x]
189
	mov	ebx, [button_x]
176
	shl	ebx, 16
190
	shl	ebx, 16
177
	add	ebx, BUTTON_SIDE
191
	mov	bx, BUTTON_SIDE
178
	mov	ecx, [button_cur_y]
192
	mov	ecx, [button_y]
179
	shl	ecx, 16
193
	shl	ecx, 16
180
	add	ecx, BUTTON_SIDE
194
	mov	cx, BUTTON_SIDE
181
	mov	edx, 0x80000000
195
	mov	edx, 0x80000000
182
	add	dl, [button_cur_id]
196
	mov	dl, [symbol_current]
183
	add	edx, 2
197
	add	edx, BUTTON_ID_SHIFT
184
	mov	eax, 8
-
 
185
	int	0x40
198
	mcall	8, , ,
186
 
-
 
187
	or	edx, 0x20000000
-
 
188
	add	edx, 0x80000000
-
 
189
	mov	esi, 0x00F0F0F0			; button color
-
 
190
	int	0x40
-
 
191
 
-
 
192
	cmp	byte[is_active], 1
-
 
193
	jz	@f
-
 
194
  .symbol:
-
 
195
	mov	eax, 4
-
 
196
	mov	ebx, [button_cur_x]
-
 
197
	add	ebx, 6
-
 
198
	shl	ebx, 16
-
 
199
	add	ebx, [button_cur_y]
-
 
200
	add	ebx, 5
199
	and	edx, 0x7FFFFFFF
201
	xor	ecx, ecx
-
 
202
	mov	edx, symbol_current
-
 
203
	mov	esi, 1
-
 
204
	int	0x40	
-
 
205
	ret
-
 
206
    @@:						; draw a blue square (selection), 8 lines
-
 
207
	mov	eax, 38
-
 
208
	mov	ebx, [button_cur_x]
-
 
209
	shl	ebx, 16
-
 
210
	add	ebx, [button_cur_x]
-
 
211
	add	ebx, BUTTON_SIDE-1
-
 
212
	mov	ecx, [button_cur_y]
-
 
213
	shl	ecx, 16
-
 
214
	add	ecx, [button_cur_y]
-
 
215
	mov	edx, 0x000080FF			; square color
-
 
216
	int	0x40
-
 
217
 
-
 
218
	mov	ebx, [button_cur_x]
-
 
219
	shl	ebx, 16
-
 
220
	add	ebx, [button_cur_x]
-
 
221
	mov	ecx, [button_cur_y]
-
 
222
	shl	ecx, 16
-
 
223
	add	ecx, [button_cur_y]
-
 
224
	add	ecx, BUTTON_SIDE-1
200
	or	edx, 0x20000000
225
	int	0x40
-
 
226
 
-
 
227
	mov	ebx, [button_cur_x]
201
	mcall	, , , , [sys_colors.work_button]
228
	inc	ebx
-
 
229
	shl	ebx, 16
202
 
230
	add	ebx, [button_cur_x]
203
	test	edi, edi			; is focused?
231
	inc	ebx
-
 
232
	add	ebx, BUTTON_SIDE-1
-
 
233
	mov	ecx, [button_cur_y]
204
	jz	.symbol				; draw only character, not selection square
234
	inc	ecx
-
 
235
	shl	ecx, 16
-
 
236
	add	ecx, [button_cur_y]
-
 
237
	inc	ecx
205
  .focus_frame:					; draw a blue square (selection), 8 segments
238
	int	0x40
206
	mov	esi, [button_x]
239
 
-
 
240
	mov	ebx, [button_cur_x]
207
	mov	edi, [button_y]
241
	inc	ebx
208
 
242
	shl	ebx, 16
209
	mov	bx, si
243
	add	ebx, [button_cur_x]
210
	shl	ebx, 16
-
 
211
	mov	bx, si
-
 
212
	add	bx, BUTTON_SIDE
244
	inc	ebx
213
	mov	cx, di
-
 
214
	shl	ecx, 16
-
 
215
	mov	cx, di
245
	mov	ecx, [button_cur_y]
216
	mcall	38, , , FOCUS_SQUARE_COLOR
246
	inc	ecx
217
	add	ecx, 0x00010001
247
	shl	ecx, 16
218
	mcall
248
	add	ecx, [button_cur_y]
219
	add	ecx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2)
249
	inc	ecx
-
 
250
	add	ecx, BUTTON_SIDE-2
220
	mcall
251
	int	0x40
-
 
252
 
-
 
253
	mov	ebx, [button_cur_x]
221
	add	ecx, 0x00010001
254
	add	ebx, BUTTON_SIDE-1
222
	mcall
255
	shl	ebx, 16
223
 
-
 
224
	mov	bx, si
-
 
225
	shl	ebx, 16
-
 
226
	mov	bx, si
256
	add	ebx, [button_cur_x]
227
	mov	cx, di
-
 
228
	shl	ecx, 16
-
 
229
	mov	cx, di
-
 
230
	add	ecx, 2*0x10000+(BUTTON_SIDE-2)
257
	add	ebx, BUTTON_SIDE-1
231
	mcall	38, , ,
258
	mov	ecx, [button_cur_y]
232
	add	ebx, 0x00010001
259
	inc	ecx
-
 
260
	shl	ecx, 16
233
	mcall
261
	add	ecx, [button_cur_y]
-
 
262
	add	ecx, BUTTON_SIDE-1
-
 
263
	int	0x40
-
 
264
 
-
 
265
	mov	ebx, [button_cur_x]
-
 
266
	inc	ebx
-
 
267
	shl	ebx, 16
-
 
268
	add	ebx, [button_cur_x]
-
 
269
	add	ebx, BUTTON_SIDE-2
-
 
270
	mov	ecx, [button_cur_y]
-
 
271
	add	ecx, BUTTON_SIDE-1
234
	add	ebx, (BUTTON_SIDE-2)*0x10000+(BUTTON_SIDE-2)
272
	shl	ecx, 16
-
 
273
	add	ecx, [button_cur_y]
235
	mcall
274
	add	ecx, BUTTON_SIDE-1
-
 
275
	int	0x40
-
 
276
 
-
 
277
	mov	ebx, [button_cur_x]
-
 
278
	add	ebx, BUTTON_SIDE
-
 
279
	shl	ebx, 16
-
 
280
	add	ebx, [button_cur_x]
-
 
281
	add	ebx, BUTTON_SIDE
-
 
282
	mov	ecx, [button_cur_y]
-
 
283
	shl	ecx, 16
236
	add	ebx, 0x00010001
284
	add	ecx, [button_cur_y]
237
	mcall
285
	add	ecx, BUTTON_SIDE-1
-
 
286
	int	0x40
-
 
287
 
-
 
288
	mov	ebx, [button_cur_x]
238
 
289
	shl	ebx, 16
239
  .symbol:
290
	add	ebx, [button_cur_x]
-
 
291
	add	ebx, BUTTON_SIDE
-
 
-
 
240
	mov	ebx, [button_x]
292
	mov	ecx, [button_cur_y]
241
	add	ebx, 6
293
	add	ecx, BUTTON_SIDE
242
	shl	ebx, 16
294
	shl	ecx, 16
-
 
295
	add	ecx, [button_cur_y]
243
	add	ebx, [button_y]
296
	add	ecx, BUTTON_SIDE
-
 
297
	int	0x40
244
	add	ebx, 5
298
 
245
	mcall	4, , [sys_colors.work_button_text], symbol_current, 1
299
	jmp	.symbol
246
 
300
 
247
	ret
301
 
-
 
302
draw_page_switcher:
-
 
303
 
-
 
304
	mov	eax, 8
248
endp
305
	mov	edx, 0x8000FFAA
-
 
306
	int	0x40
-
 
307
 
-
 
308
	mov	esi, 0x00F0F0F0
-
 
309
	cmp	[redraw_flag], 1
-
 
310
	jnz	@f
249
 
-
 
250
 
311
	mov	esi, 0x00808080
251
proc	draw_page_switcher _blinking
-
 
252
 
312
    @@:	mov	eax, 8
253
	mcall	8, , , 0x8000FFAA
-
 
254
 
-
 
255
	mov	esi, [sys_colors.work_button]
313
	mov	ebx, 2*0x10000+60
256
	cmp	[_blinking], 1			; blinking?
-
 
257
	jne	@f
314
	mov	ecx, 157*0x10000+19
-
 
315
	mov	edx, 0x2000FFAA
-
 
316
	int	0x40
-
 
317
 
-
 
318
	cmp	[symbol_start], 0
-
 
319
	jnz	@f
-
 
320
	mov	eax, 4
-
 
321
	mov	ebx, 11*0x10000+164
-
 
322
	mov	ecx, 0x80000000
-
 
323
	mov	edx, string_000_127
258
	mov	esi, PAGE_SWITCHER_BLINK_COLOR
324
	int	0x40
-
 
325
	ret
-
 
326
 
-
 
327
    @@:	mov	eax, 4
-
 
328
	mov	ebx, 11*0x10000+164
-
 
329
	mov	ecx, 0x80000000
-
 
330
	mov	edx, string_128_255
259
    @@:	mcall	, <2,60>, <157,19>, 0x2000FFAA
331
	int	0x40
260
 
332
	ret
-
 
333
 
-
 
334
 
261
	mov	ecx, 0x80000000
335
draw_codes:
-
 
336
 
262
	or	ecx, [sys_colors.work_button_text]
337
	mov	eax, 13
-
 
338
	mov	ebx, 80*0x10000+220
-
 
339
	mov	ecx, 164*0x10000+9
-
 
340
	mov	edx, 0x00F0F0F0
-
 
341
	int	0x40
-
 
342
 
263
	mov	edx, string_000_127
343
	mov	eax, 4
264
	cmp	[symbol_start], 0		; first page?
344
	mov	ebx, 80*0x10000+164
265
	je	@f
345
	mov	ecx, 0x80000000
-
 
346
	mov	edx, string_ASCII_CODE
-
 
347
	int	0x40
266
	mov	edx, string_128_255		; ok, the second one
348
 
267
    @@:	mcall	4, <11,164>,
349
	mov	ebx, 180*0x10000+164
-
 
350
	mov	ecx, 0x80000000
268
	ret
-
 
269
endp
351
	mov	edx, string_ASCII_HEX_CODE
270
 
352
	int	0x40
271
 
353
 
272
proc	draw_codes
354
	mov	eax, 47
273
 
355
	mov	ebx, 0x00030000			; 3 digits, dec
274
	mov	ecx, 0x80000000
356
	xor	ecx, ecx
275
	or	ecx, [sys_colors.work_text]
357
	add	cl, [symbol_focused]
276
	mcall	4, <80,164>, , string_ASCII_CODE
358
	mov	edx, 152*0x10000+164
277
	mcall	, <180,164>, , string_ASCII_HEX_CODE
359
	xor	esi, esi
278
	movzx	ecx, [symbol_focused]
360
	int	0x40
279
	mov	esi, 0x40000000
361
 
280
	or	esi, [sys_colors.work_text]
362
	mov	ebx, 0x00020100			; 2 digits, hex
281
	mcall	47, 0x00030000, , <152,164>, , [sys_colors.work]
363
	mov	edx, 276*0x10000+164
282
	mcall	, 0x00020100, , <276,164>,
364
	int	0x40
283
 
365
 
284
	ret
366
	ret
285
endp
367
 
286
 
368
 
287
 
369
quit:
288
quit:
370
	mov	eax, -1
289
	mcall	-1
371
	int	0x40
-
 
372
 
-
 
-
 
290
 
373
window_title		db 'ASCIIVju v0.3 R3',0
291
 
374
 
292
szZ window_title		,'ASCIIVju v0.4'
375
string_000_127		db '000-127',0
293
szZ string_000_127		,'000-127'
376
string_128_255		db '128-255',0
294
szZ string_128_255		,'128-255'
377
string_ASCII_CODE	db 'ASCII Code:    ',0
-
 
378
string_ASCII_HEX_CODE	db 'ASCII Hex-Code:   ',0
-
 
379
 
295
szZ string_ASCII_CODE		,'ASCII Code:    '
380
skin_height		dd 0
296
szZ string_ASCII_HEX_CODE	,'ASCII Hex-Code:   '
381
 
297
 
382
button_x		dd 2
298
button_x		dd 2
383
button_y		dd 2
299
button_y		dd 2
384
 
300
 
385
symbol_current		db 0
301
symbol_current		db 0
386
symbol_start		db 0
302
symbol_start		db 0
387
button_cur_x		dd 0
-
 
388
button_cur_y		dd 0
-
 
389
button_cur_id		db 0
-
 
390
 
-
 
391
db 0,0,0					; unused
-
 
392
 
-
 
393
is_active		dd 0			; is current symbol selected?
-
 
394
 
303
 
395
symbol_unfocused	db 0
304
symbol_unfocused	db 0
396
symbol_focused		db 0
305
symbol_focused		db 0
397
redraw_flag		dd 0
-
 
398
 
-
 
399
db 0,0,0,0					; unused
-
 
400
i_end:
306
i_end:
401
 
-
 
-
 
307
proc_info		process_information
-
 
308
sys_colors		system_colors
402
rb 0x500					;stack
309
rb 0x400					;stack
403
e_end:
310
e_end: