Subversion Repositories Kolibri OS

Rev

Rev 2469 | Rev 2476 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2469 Rev 2475
Line 3... Line 3...
3
;*     DESKTOP ICON MANAGER     *
3
;*     DESKTOP ICON MANAGER     *
4
;*                              *
4
;*                              *
5
;*  Compile with flat assembler *
5
;*  Compile with flat assembler *
6
;*                              *
6
;*                              *
7
;********************************
7
;********************************
-
 
8
;---------------------------------------------------------------------
-
 
9
; version:	2.1
-
 
10
; last update:  17/03/2012
-
 
11
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
-
 
12
; changes:      Global optimization! The program uses
8
;  22.02.05 was modified for work with new multi-thread ICON.
13
;               only 161 KB of memory instead of 603 kb is now.
-
 
14
;---------------------------------------------------------------------
-
 
15
; version:	2.02
-
 
16
; last update:  15/03/2012
-
 
17
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
-
 
18
; changes:      some optimisations and code refactoring
-
 
19
;---------------------------------------------------------------------
-
 
20
; version:	2.01
-
 
21
; last update:  27/09/2011
9
;  8.03.07 ïåðåõîä íà 70 ôóíêöèþ by SPraid
22
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
-
 
23
; changes:      deactivate the window after click
-
 
24
;              (working to kernel r.2244 and above)
-
 
25
;---------------------------------------------------------------------
-
 
26
; Many fix's and changes created by:
-
 
27
;               Halyavin, Diamond, Heavyiron, 
-
 
28
;               SPraid, Dunkaist
-
 
29
;---------------------------------------------------------------------
-
 
30
; version:	2.00
-
 
31
; last update:  22|02|2005
-
 
32
; changed by:   Willow and Mario79
-
 
33
; changes:      modified for work with new multi-thread ICON.
10
;******************************************************************************
34
;******************************************************************************
11
RAW_SIZE equ 350000
-
 
12
ICON_SIZE equ 32*32*3
35
ICON_SIZE equ 32*32*3
-
 
36
RAW_SIZE equ ICON_SIZE*32	;350000
13
GIF_SIZE equ 45000
37
GIF_SIZE equ 12*1024	;45000
14
REC_SIZE equ 80
38
REC_SIZE equ 80
15
ICONS_DAT equ '/sys/ICONS.DAT'
39
ICONS_DAT equ '/sys/ICONS.DAT'
16
ICON_APP equ '/sys/ICON'
40
ICON_APP equ '/sys/ICON'
17
ICON_STRIP equ '/sys/ICONSTRP.GIF'
41
ICON_STRIP equ '/sys/ICONSTRP.GIF'
18
;------------------------------------------------------------------------------
42
;------------------------------------------------------------------------------
19
	use32
43
	use32
20
	org 0x0
44
	org 0x0
21
	db 'MENUET01'     ; 8 byte id
45
	db 'MENUET01'	; 8 byte id
22
	dd 0x01           ; header version
46
	dd 0x01		; header version
23
	dd START          ; start of code
47
	dd START	; start of code
24
	dd I_END          ; size of image
48
	dd IM_END	; size of image
25
	dd icon_data+0x30000        ; memory for app
49
	dd I_END	; memory for app
26
	dd stack_area        ; esp
50
	dd stack_area	; esp
27
	dd I_Param , 0x0  ; I_Param , I_Icon
51
	dd I_Param	; boot parameters
-
 
52
	dd 0x0		; path
28
;------------------------------------------------------------------------------
53
;------------------------------------------------------------------------------
29
include '../../../macros.inc'
54
include '../../../macros.inc'
30
include 'lang.inc'
55
include 'lang.inc'
31
COLOR_ORDER equ MENUETOS
56
COLOR_ORDER equ MENUETOS
32
include 'gif_lite.inc'
57
include 'gif_lite.inc'
Line 62... Line 87...
62
	
87
	
63
	dec	eax                   ; key in buffer ?
88
	dec	eax	; key in buffer ?
64
	jz	key
89
	jz	key
65
;------------------------------------------------------------------------------
90
;------------------------------------------------------------------------------
66
align 4
91
align 4
67
button:                    ; button
92
button:
68
	mcall	17	; get id
93
	mcall	17	; get id
Line 69... Line 94...
69
	shr	eax,8
94
	shr	eax,8
70
 
95
 
Line 160... Line 185...
160
	mov	esi,iconlst
185
	mov	esi,iconlst
161
	call	lst_path
186
	call	lst_path
162
	mcall	70
187
	mcall	70
163
	; (2) terminate all icons
188
	; (2) terminate all icons
164
	or      ecx,-1
189
	or	ecx,-1
165
	mcall	9,I_END
190
	mcall	9,process_table
166
	mov	edi,[ebx+30]
191
	mov	edi,[ebx+30]
167
;--------------------------------------
192
;--------------------------------------
168
align 4
193
align 4
169
newread2:
194
newread2:
170
	mov	esi,1
195
	mov	esi,1
171
;--------------------------------------
196
;--------------------------------------
172
align 4
197
align 4
173
newread:
198
newread:
174
	inc	esi
199
	inc	esi
175
	mov	ecx,esi
200
	mov	ecx,esi
176
	mcall	9,I_END
201
	mcall	9,process_table
177
	cmp	edi,[ebx+30]
202
	cmp	edi,[ebx+30]
178
	je	newread
203
	je	newread
Line 179... Line 204...
179
 
204
 
180
	cmp	esi,eax
205
	cmp	esi,eax
Line 181... Line 206...
181
	jg	all_terminated
206
	jg	apply_changes
182
 
207
 
183
	mov	eax,[ebx+10]	;[I_END+10]
208
	mov	eax,[ebx+10]
184
	and	eax,not 20202020h
209
	and	eax,not 20202020h
185
	cmp	eax,'@ICO'
210
	cmp	eax,'@ICO'
186
	jz	@f
211
	jz	@f
187
	cmp	eax,'ICON'
212
	cmp	eax,'ICON'
188
	jne	newread
213
	jne	newread
189
;--------------------------------------
214
;--------------------------------------
190
align 4
215
align 4
191
@@:
216
@@:
192
	mov	eax,51
217
	mov	eax,51
Line 193... Line 218...
193
	cmp	eax,[ebx+42]	;[I_END+42]
218
	cmp	eax,[ebx+42]
194
	jne	newread
219
	jne	newread
Line 195... Line 220...
195
 
220
 
196
	cmp	eax,[ebx+46]	;[I_END+46]
221
	cmp	eax,[ebx+46]
197
	jne	newread
222
	jne	newread
Line 220... Line 245...
220
.path:
245
.path:
221
        db ICON_STRIP,0
246
	db ICON_STRIP,0
222
        rb 31-($-.path)
247
	rb 31-($-.path)
223
;------------------------------------------------------------------------------
248
;------------------------------------------------------------------------------
224
align 4
249
align 4
225
all_terminated:
-
 
226
;apply_changes:
250
apply_changes:
227
	mov	ebx, finfo_start
251
	mov	ebx, finfo_start
228
	mov	dword [ebx+8], boot_str+6
252
	mov	dword [ebx+8], boot_str+6
229
	mov	esi, iconname
253
	mov	esi, iconname
230
	call	lst_path
254
	call	lst_path
231
	mcall	70
255
	mcall	70
Line 251... Line 275...
251
	sub	eax,40
275
	sub	eax,40
Line 252... Line 276...
252
	
276
	
253
	xor	edx,edx  ; bcd -> 10
277
	xor	edx,edx		; bcd -> 10
254
	mov	ebx,16
278
	mov	ebx,16
255
	div	ebx
-
 
256
;	imul	eax,10
279
	div	ebx
257
; multiply x10
280
; multiply x10
258
	shl	eax,1		; multiply x2
281
	shl	eax,1		; multiply x2
259
	lea	eax,[eax+eax*4] ; multiply x5
282
	lea	eax,[eax+eax*4] ; multiply x5
Line 307... Line 330...
307
	jne	no_f;ound
330
	jne	no_f;ound
Line 308... Line 331...
308
 
331
 
309
	mcall	17
332
	mcall	17
310
	shr	eax,8
333
	shr	eax,8
311
	cmp	eax,40
334
	cmp	eax,40
312
	jb	red;no_f;ound
335
	jb	red
Line 313... Line 336...
313
	sub	eax,40
336
	sub	eax,40
314
	
337
	
315
	xor	edx,edx
338
	xor	edx,edx
316
	mov	ebx,16
-
 
317
	div	ebx
339
	mov	ebx,16
318
;	imul	eax,10
340
	div	ebx
319
; multiply x10
341
; multiply x10
320
	shl	eax,1		; multiply x2
342
	shl	eax,1		; multiply x2
Line 567... Line 589...
567
	call	print_strings
589
	call	print_strings
568
	popa
590
	popa
569
	ret
591
	ret
570
;------------------------------------------------------------------------------
592
;------------------------------------------------------------------------------
571
align 4
593
align 4
572
key:                       ; key
594
key:
573
	mcall	2               ; just read it and ignore
595
	mcall	2	; just read it and ignore
574
	jmp	still
596
	jmp	still
575
;------------------------------------------------------------------------------
597
;------------------------------------------------------------------------------
576
;   *********************************************
598
;   *********************************************
577
;   *******  WINDOW DEFINITIONS AND DRAW ********
599
;   *******  WINDOW DEFINITIONS AND DRAW ********
Line 908... Line 930...
908
;--------------------------------------
930
;--------------------------------------
909
align 4
931
align 4
910
apply_changes2:
932
apply_changes2:
911
	mov	edi,[icons]
933
	mov	edi,[icons]
912
	mov	esi,icon_data
934
	mov	esi,icon_data
913
	mov	ebp,0x5000	; threads stack starting point
935
	mov	ebp,thread_stack+0x100	;0x5000	; threads stack starting point
914
;--------------------------------------
936
;--------------------------------------
915
align 4
937
align 4
916
start_new:
938
start_new:
917
	mov	eax,[esi]
939
	mov	eax,[esi]
918
	mov	[ebp-20],eax
940
	mov	[ebp-20],eax
Line 921... Line 943...
921
	mov	edx,ebp
943
	mov	edx,ebp
922
	mov	dword[ebp-4],esi
944
	mov	dword[ebp-4],esi
923
	mcall	51,1,thread
945
	mcall	51,1,thread
924
	add	ebp,0x100
946
	add	ebp,0x100
Line -... Line 947...
-
 
947
 
925
 
948
; change to next thread if mutex is blocked
926
	mov	eax,5
949
	mov	eax,68
927
	mov	ebx,1
950
	mov	ebx,1
928
;--------------------------------------
951
;--------------------------------------
929
align 4
952
align 4
930
wait_thread_start:         ;wait until thread draw itself first time
953
wait_thread_start:		;wait until thread draw itself first time
931
	cmp	[create_thread_event],bl
954
	cmp	[create_thread_event],bl	;mutex
932
	jz	wait_thread_end
955
	jz	wait_thread_end
933
	mcall
956
	mcall
934
	jmp	wait_thread_start
957
	jmp	wait_thread_start
935
;--------------------------------------
958
;--------------------------------------
Line 943... Line 966...
943
align 4
966
align 4
944
close:
967
close:
945
	or	eax,-1
968
	or	eax,-1
946
	mcall
969
	mcall
947
;------------------------------------------------------------------------------
970
;------------------------------------------------------------------------------
-
 
971
; esp-28 = start of thread stack
-
 
972
; esp-24 = ???
-
 
973
; esp-20 = 'AA-F' or...
-
 
974
; esp-16 = ???  SHL greedy maniac mode on!
-
 
975
; esp-12 = ebp+0 = X
-
 
976
; esp-8  = ebp+4 = Y
-
 
977
; esp-4  = ebp+8 = adress of icon_data
-
 
978
;------------------------------------------------------------------------------
948
align 4
979
align 4
949
thread:
980
thread:
950
;   pop  ebp ;ebp - address of our icon
-
 
951
	sub	esp,12
981
	sub	esp,12
952
	mov	ebp,esp
982
	mov	ebp,esp
953
	sub	esp,16
983
	sub	esp,16
-
 
984
	call	shape_window
954
	call	draw_window2
985
	call	draw_window2
955
	mov	[create_thread_event],1
986
	mov	[create_thread_event],1
956
	mcall	40,010101b
987
	mcall	40,010101b
957
;------------------------------------------------------------------------------
988
;------------------------------------------------------------------------------
958
align 4
989
align 4
Line 963... Line 994...
963
 
994
 
964
	cmp	eax,3
995
	cmp	eax,3
Line 965... Line 996...
965
	je	button2
996
	je	button2
966
	
-
 
967
	call	get_bg_info
-
 
968
	mov	eax,5
997
	
Line 969... Line 998...
969
	mov	ebx,1
998
	call	get_bg_info
970
	call	draw_icon2
999
	call	draw_icon2_1
971
	
1000
	
972
	jmp	still2
1001
	jmp	still2
Line 980... Line 1009...
980
	mov	[warea.by_x],eax
1009
	mov	[warea.by_x],eax
981
	mov	[warea.by_y],ebx
1010
	mov	[warea.by_y],ebx
982
	add	ebp,+12
1011
	add	ebp,+12
983
	call	calc_icon_pos
1012
	call	calc_icon_pos
984
	add	ebp,-12
1013
	add	ebp,-12
985
	mcall	9,I_END,-1
1014
	mcall	9,process_table,-1
986
	mov	eax,[I_END+process_information.box.left]
1015
	mov	eax,[process_table+process_information.box.left]
987
	cmp	eax,[ebp+0]
1016
	cmp	eax,[ebp+0]
988
	jne	@f
1017
	jne	@f
989
	mov	eax,[I_END+process_information.box.top]
1018
	mov	eax,[process_table+process_information.box.top]
990
	cmp	eax,[ebp+4]
1019
	cmp	eax,[ebp+4]
991
	je	.lp1
1020
	je	.lp1
992
;--------------------------------------
1021
;--------------------------------------
993
align 4
1022
align 4
994
@@:
1023
@@:
Line 1004... Line 1033...
1004
button2:
1033
button2:
1005
	mcall	17
1034
	mcall	17
1006
	cmp	ah, 2
1035
	cmp	ah, 2
1007
	jnz	still2
1036
	jnz	still2
Line 1008... Line 1037...
1008
 
1037
 
1009
	mcall	9,I_END,-1
1038
	mcall	9,process_table,-1
1010
	mov	ecx,[ebx+30]	; PID
1039
	mov	ecx,[ebx+30]	; PID
1011
	mcall	18,21
1040
	mcall	18,21
1012
	mov	edx,eax		; SLOT
1041
	mov	edx,eax		; SLOT
1013
	mcall	18,7
1042
	mcall	18,7
Line 1112... Line 1141...
1112
	loop	.l0
1141
	loop	.l0
1113
	ret
1142
	ret
1114
;------------------------------------------------------------------------------
1143
;------------------------------------------------------------------------------
1115
align 4
1144
align 4
1116
draw_picture:
1145
draw_picture:
1117
	mov	[image],0x3000
1146
	mov	[image],image_area
-
 
1147
 
1118
	mov	edi,[ebp+8]
1148
	mov	edi,[ebp+8]
1119
	lea	esi,[edi+12]
1149
	lea	esi,[edi+12]
1120
	call	atoi
1150
	call	atoi
1121
	cmp	eax,[icon_count]
1151
	cmp	eax,[icon_count]
1122
	ja	toponly.ex
1152
	ja	toponly.ex
Line 1125... Line 1155...
1125
	shl	eax,10		; multiply x1024
1155
	shl	eax,10		; multiply x1024
Line 1126... Line 1156...
1126
	
1156
	
1127
	lea	edi,[eax+strip_file+8]
1157
	lea	edi,[eax+strip_file+8]
1128
	xor	ebx,ebx
1158
	xor	ebx,ebx
1129
	xor	ecx,ecx
1159
	xor	ecx,ecx
Line 1130... Line 1160...
1130
	mov	esi,edi;strip_file+8+(32*3*32)*2
1160
	mov	esi,edi
1131
 
1161
 
1132
	mov	[pixpos],0
1162
	mov	[pixpos],0
1133
;--------------------------------------
1163
;--------------------------------------
Line 1146... Line 1176...
1146
 
1176
 
1147
	push	esi
1177
	push	esi
1148
	mov	esi,edi
1178
	mov	esi,edi
1149
	add	esi,[pixpos]
1179
	add	esi,[pixpos]
1150
;--------------------------------------
-
 
1151
align 4
-
 
1152
no_correction_pixpos:
1180
;--------------------------------------
1153
	add	[pixpos],3
1181
	add	[pixpos],3
1154
	mov	eax,[esi]
1182
	mov	eax,[esi]
Line 1155... Line 1183...
1155
	and	eax,0xffffff
1183
	and	eax,0xffffff
Line 1216... Line 1244...
1216
	pop	ecx
1244
	pop	ecx
1217
	pop	ebx
1245
	pop	ebx
Line 1218... Line 1246...
1218
 
1246
 
1219
	mov	edx,eax
1247
	mov	edx,eax
1220
	mov	eax,[image]
1248
	mov	eax,[image]
1221
	mov	[eax],edx
1249
 
1222
	mov	[eax],dl
1250
	mov	[eax],dl
1223
	inc	eax
1251
	inc	eax
-
 
1252
	ror	edx,8
1224
	ror	edx,8
1253
	
1225
	mov	[eax],dl
1254
	mov	[eax],dl
1226
	inc	eax
1255
	inc	eax
-
 
1256
	ror	edx,8
1227
	ror	edx,8
1257
	
-
 
1258
	mov	[eax],dl
1228
	mov	[eax],dl
1259
	
1229
	inc	eax
1260
	inc	eax
1230
	mov	[image],eax
1261
	mov	[image],eax
-
 
1262
	inc	ebx
1231
	inc	ebx
1263
	
1232
	mov	eax,[yw]
1264
	mov	eax,[yw]
1233
	inc	eax
1265
	inc	eax
1234
	cmp	ebx,eax
1266
	cmp	ebx,eax
-
 
1267
	jb	newb
1235
	jnz	newb
1268
	
Line 1236... Line 1269...
1236
	xor	ebx,ebx
1269
	xor	ebx,ebx
1237
 
1270
 
1238
	inc	ecx
1271
	inc	ecx
Line 1251... Line 1284...
1251
	jnz	newb
1284
	jnz	newb
1252
;--------------------------------------
1285
;--------------------------------------
1253
align 4
1286
align 4
1254
toponly:
1287
toponly:
1255
	xor	edx,edx
1288
	xor	edx,edx
1256
	mcall	7,0x3000,<52,52>
1289
	mcall	7,image_area,<52,52>
1257
;--------------------------------------
1290
;--------------------------------------
1258
align 4	
1291
align 4	
1259
.ex:
1292
.ex:
1260
	mov	[load_pic],0
1293
	mov	[load_pic],0
1261
	ret
1294
	ret
Line 1264... Line 1297...
1264
draw_text:
1297
draw_text:
1265
	mov	esi,[ebp+8]
1298
	mov	esi,[ebp+8]
1266
	add	esi,3
1299
	add	esi,3
1267
	push	edi
1300
	push	edi
1268
	mov	edi,title
1301
	mov	edi,title
1269
;	mov	ecx,8
-
 
1270
;	cld
-
 
1271
;	rep	movsb
-
 
1272
	mov	ecx,8/4
1302
	mov	ecx,8/4
1273
	cld
1303
	cld
1274
	rep	movsd
1304
	rep	movsd
1275
	pop	edi
1305
	pop	edi
1276
	mov	eax,title
1306
	mov	eax,title
Line 1337... Line 1367...
1337
 
1367
 
1338
	; DRAW WINDOW
1368
	; DRAW WINDOW
1339
	xor	eax,eax             ; function 0 : define and draw window
1369
	xor	eax,eax		; function 0 : define and draw window
1340
	mov	ebx,[ebp+0-2]
1370
	mov	ebx,[ebp+0-2]
1341
	mov	ecx,[ebp+4-2]
1371
	mov	ecx,[ebp+4-2]
1342
	add	ebx,[yw]           ; [x start] *65536 + [x size]
1372
	mov	bx,[yw]		; [x start] *65536 + [x size]
1343
	add	ecx,51            ; [y start] *65536 + [y size]
1373
	mov	cx,51		; [y start] *65536 + [y size]
1344
	mov	edx,0x41000000        ; color of work area RRGGBB,8->color gl
1374
	mov	edx,0x41000000	; color of work area RRGGBB,8->color gl
Line 1345... Line 1375...
1345
	mcall
1375
	mcall
-
 
1376
	
1346
	
1377
	mcall	8,51,50,0x40000002 ; button
-
 
1378
;--------------------------------------
-
 
1379
align 4
1347
	mcall	8,51,50,0x40000002 ; button
1380
draw_icon2_1:
1348
	
1381
; change to next thread if mutex is blocked
1349
	mov	eax,5
1382
	mov	eax,68
1350
	mov	ebx,1
1383
	mov	ebx,1
1351
;--------------------------------------
1384
;--------------------------------------
1352
align 4
1385
align 4
1353
draw_icon2:
1386
draw_icon2:
1354
	xchg	[load_pic],bl
1387
	xchg	[load_pic],bl	;mutex
1355
	test	bl,bl
1388
	test	bl,bl
1356
	je	draw_icon_end
1389
	je	draw_icon_end
1357
	mcall
1390
	mcall
1358
	jmp	draw_icon2
1391
	jmp	draw_icon2
1359
;--------------------------------------
1392
;--------------------------------------
-
 
1393
align 4
1360
align 4
1394
draw_icon_end:
1361
draw_icon_end:
1395
; change to next thread if mutex is blocked
1362
	mov	eax,5
1396
	mov	eax,68
1363
	mov	ebx,1
1397
	mov	ebx,1
1364
;--------------------------------------
1398
;--------------------------------------
1365
align 4
1399
align 4
1366
draw_icon_2:
1400
draw_icon_2:
1367
	xchg	[draw_pic],bl
1401
	xchg	[draw_pic],bl	;mutex
1368
	test	bl,bl
1402
	test	bl,bl
1369
	je	draw_icon_end_2
1403
	je	draw_icon_end_2
1370
	mcall
1404
	mcall
1371
	jmp	draw_icon_2
1405
	jmp	draw_icon_2
1372
;--------------------------------------
1406
;--------------------------------------
1373
align 4
-
 
1374
draw_icon_end_2:
1407
align 4
1375
	mcall	9,process_table,-1
1408
draw_icon_end_2:
1376
	call	draw_picture
1409
	call	draw_picture
1377
	call	draw_text
1410
	call	draw_text
1378
	mcall	12,2
1411
	mcall	12,2
-
 
1412
	ret
-
 
1413
;------------------------------------------------------------------------------
-
 
1414
shape_window:
-
 
1415
; give the shape reference area
-
 
1416
	mcall	50,0,shape_reference
-
 
1417
; give the shape scale  32 x 32  ->  128 x 128  ecx = 2
-
 
1418
; you dont have to give this, scale is 1:1 by default
-
 
1419
;	mcall	50,1,2
-
 
1420
	ret
-
 
1421
;------------------------------------------------------------------------------
-
 
1422
shape_reference:	;  32 x 32 ( window_size_X + 1 ) * ( window_size_Y + 1 )
-
 
1423
 
-
 
1424
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1425
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1426
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1427
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1428
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1429
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1430
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1431
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1432
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1433
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1434
 
-
 
1435
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1436
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1437
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1438
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1439
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1440
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1441
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1442
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1443
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1444
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1445
 
-
 
1446
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1447
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1448
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1449
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1450
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1451
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1452
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1453
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1454
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1455
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1456
 
-
 
1457
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1458
db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
-
 
1459
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
1460
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
1461
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
1462
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
1463
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
1464
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
1465
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
1466
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1467
 
-
 
1468
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1469
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1470
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1471
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1472
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1473
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1474
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1475
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1476
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
-
 
1477
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
1478
 
-
 
1479
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1379
	ret
1480
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 
1380
;------------------------------------------------------------------------------
1481
;------------------------------------------------------------------------------
1381
tl	dd 8
1482
tl	dd 8
1382
yw	dd 51
1483
yw:	dd 51
Line 1383... Line 1484...
1383
ya	dd 0
1484
ya	dd 0
1384
cur_btn	dd 40
1485
cur_btn	dd 40
1385
 
1486
 
Line 1386... Line 1487...
1386
draw_pic	db 0
1487
draw_pic	db 0
1387
load_pic	db 0
-
 
1388
create_thread_event	db 0
-
 
1389
 
-
 
1390
image	dd 0x3000
-
 
1391
 
-
 
Line -... Line 1488...
-
 
1488
load_pic	db 0
-
 
1489
create_thread_event	db 0
-
 
1490
 
-
 
1491
image	dd image_area
-
 
1492
 
1392
I_Param:
1493
IncludeUGlobals
1393
icon_data = I_END+0x1400
1494
;------------------------------------------------------------------------------
1394
stack_area = I_END+0x3400-4
-
 
1395
process_table = I_END+0x3400
-
 
1396
 
-
 
Line 1397... Line 1495...
1397
bgrx	dd ?
1495
IM_END:
1398
bgry	dd ?
1496
;------------------------------------------------------------------------------
1399
param_str	rb 31
1497
align 4
1400
 
1498
bgrx	dd ?
Line 1417... Line 1515...
1417
addr	dd ?
1515
addr	dd ?
1418
cur_str		dd ?
1516
cur_str		dd ?
1419
cur_band	dd ?
1517
cur_band	dd ?
1420
sel_icon1	rd 1
1518
sel_icon1	rd 1
1421
icon_count	rd 1
1519
icon_count	rd 1
-
 
1520
;------------------------------------------------------------------------------
-
 
1521
align 4
-
 
1522
param_str	rb 31
-
 
1523
;------------------------------------------------------------------------------
-
 
1524
align 4
1422
gif_file	rb	GIF_SIZE
1525
gif_file	rb	GIF_SIZE
-
 
1526
;------------------------------------------------------------------------------
-
 
1527
align 4
1423
strip_file	rb	RAW_SIZE
1528
strip_file	rb	RAW_SIZE
1424
 
-
 
1425
IncludeUGlobals
-
 
1426
 
-
 
1427
I_END:
-
 
1428
;------------------------------------------------------------------------------
1529
;------------------------------------------------------------------------------
1429
1530
align 4
-
 
1531
process_table:
-
 
1532
	rb 0x400
-
 
1533
;------------------------------------------------------------------------------	
-
 
1534
align 4
-
 
1535
icon_data:
-
 
1536
	rb 0x1000
-
 
1537
;------------------------------------------------------------------------------
-
 
1538
align 4
-
 
1539
	rb 0x1000
-
 
1540
stack_area:
-
 
1541
;------------------------------------------------------------------------------
-
 
1542
align 4
-
 
1543
I_Param:
-
 
1544
	rb 0x100	; max 256 
-
 
1545
;------------------------------------------------------------------------------
-
 
1546
align 4
-
 
1547
thread_stack:
-
 
1548
	rb 0x100*48	; max 48 icons
-
 
1549
;------------------------------------------------------------------------------
-
 
1550
align 4
-
 
1551
image_area:
-
 
1552
	rb 52*52*3
-
 
1553
;------------------------------------------------------------------------------
-
 
1554
;align 4
-
 
1555
;shape_reference_0:
-
 
1556
;	rb 52*52	;  ( window_size_X + 1 ) * ( window_size_Y + 1 )
-
 
1557
;------------------------------------------------------------------------------ 
-
 
1558
I_END:
-
 
1559