Subversion Repositories Kolibri OS

Rev

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

Rev 1702 Rev 2068
1
;
1
;
2
;    UNIFORM WINDOW COLOURS & SKIN
2
;    UNIFORM WINDOW COLOURS & SKIN
3
;
3
;
4
;    Compile with FASM for Menuet
4
;    Compile with FASM for Menuet
5
;
5
;
6
;    < russian edition by Ivan Poddubny >
6
;    < russian edition by Ivan Poddubny >
7
;    < skin selection by Mike Semenyako >
7
;    < skin selection by Mike Semenyako >
8
;
8
;
9
; last update:  10/09/2010
9
; last update:  10/09/2010
10
; written by:   Marat Zakiyanov aka Mario79, aka Mario
10
; written by:   Marat Zakiyanov aka Mario79, aka Mario
11
; changes:      select path with OpenDialog
11
; changes:      select path with OpenDialog
12
;******************************************************************************
12
;******************************************************************************
13
   use32
13
   use32
14
   org     0
14
   org     0
15
   db      'MENUET01'  ; identifier
15
   db      'MENUET01'  ; identifier
16
   dd      1           ; header version
16
   dd      1           ; header version
17
   dd      START       ; start address
17
   dd      START       ; start address
18
   dd      I_END       ; file size
18
   dd      I_END       ; file size
19
   dd      i_end ;28000h      ; memory
19
   dd      i_end ;28000h      ; memory
20
   dd      stacktop    ; stack pointer
20
   dd      stacktop    ; stack pointer
21
   dd      skin_info       ; parameters
21
   dd      skin_info       ; parameters
22
   dd      cur_dir_path ; path to file
22
   dd      cur_dir_path ; path to file
23
   
23
   
24
include 'lang.inc'
24
include 'lang.inc'
25
include '../../../config.inc'		;for nightbuild
25
include '../../../config.inc'		;for nightbuild
26
include '../../../macros.inc'
26
include '../../../macros.inc'
27
include 'kglobals.inc'
27
include 'kglobals.inc'
28
include 'unpacker.inc'
28
include 'unpacker.inc'
29
include '../../../develop/libraries/box_lib/load_lib.mac'
29
include '../../../develop/libraries/box_lib/load_lib.mac'
30
	@use_library
30
	@use_library
31
;******************************************************************************
31
;******************************************************************************
32
 
32
 
33
 
33
 
34
struct SKIN_HEADER
34
struct SKIN_HEADER
35
  ident   dd ?
35
  ident   dd ?
36
  version dd ?
36
  version dd ?
37
  params  dd ?
37
  params  dd ?
38
  buttons dd ?
38
  buttons dd ?
39
  bitmaps dd ?
39
  bitmaps dd ?
40
ends
40
ends
41
 
41
 
42
struct SKIN_PARAMS
42
struct SKIN_PARAMS
43
  skin_height    dd ?
43
  skin_height    dd ?
44
  margin.right   dw ?
44
  margin.right   dw ?
45
  margin.left    dw ?
45
  margin.left    dw ?
46
  margin.bottom  dw ?
46
  margin.bottom  dw ?
47
  margin.top     dw ?
47
  margin.top     dw ?
48
  colors.inner   dd ?
48
  colors.inner   dd ?
49
  colors.outer   dd ?
49
  colors.outer   dd ?
50
  colors.frame   dd ?
50
  colors.frame   dd ?
51
  colors_1.inner dd ?
51
  colors_1.inner dd ?
52
  colors_1.outer dd ?
52
  colors_1.outer dd ?
53
  colors_1.frame dd ?
53
  colors_1.frame dd ?
54
  dtp.size       dd ?
54
  dtp.size       dd ?
55
  dtp.data       db 40 dup (?)
55
  dtp.data       db 40 dup (?)
56
ends
56
ends
57
 
57
 
58
struct SKIN_BUTTONS
58
struct SKIN_BUTTONS
59
  type     dd ?
59
  type     dd ?
60
  pos:
60
  pos:
61
    left   dw ?
61
    left   dw ?
62
    top    dw ?
62
    top    dw ?
63
  size:
63
  size:
64
    width  dw ?
64
    width  dw ?
65
    height dw ?
65
    height dw ?
66
ends
66
ends
67
 
67
 
68
struct SKIN_BITMAPS
68
struct SKIN_BITMAPS
69
  kind  dw ?
69
  kind  dw ?
70
  type  dw ?
70
  type  dw ?
71
  _data  dd ?
71
  _data  dd ?
72
ends
72
ends
73
 
73
 
74
 
74
 
75
START:                          ; start of execution
75
START:                          ; start of execution
76
;---------------------------------------------------------------------
76
;---------------------------------------------------------------------
77
	mcall	68,11
77
	mcall	68,11
78
	
78
	
79
	test	eax,eax
79
	test	eax,eax
80
	jz	close	
80
	jz	close	
81
 
81
 
82
load_libraries l_libs_start,end_l_libs
82
load_libraries l_libs_start,end_l_libs
83
 
83
 
84
;if return code =-1 then exit, else nornary work
84
;if return code =-1 then exit, else nornary work
85
;        cmp     eax,-1
85
;        cmp     eax,-1
86
	inc	eax
86
	inc	eax
87
	test	eax,eax
87
	test	eax,eax
88
	jz	close
88
	jz	close
89
 
89
 
90
;---------------------------------------------------------------------
90
;---------------------------------------------------------------------
91
	mov	edi,filename_area
91
	mov	edi,filename_area
92
	mov	esi,start_temp_file_name
92
	mov	esi,start_temp_file_name
93
	xor	eax,eax
93
	xor	eax,eax
94
	cld
94
	cld
95
@@:
95
@@:
96
	lodsb
96
	lodsb
97
	stosb
97
	stosb
98
	test	eax,eax
98
	test	eax,eax
99
	jnz	@b
99
	jnz	@b
100
 
100
 
101
 
101
 
102
	mov	edi,fname
102
	mov	edi,fname
103
	mov	esi,default_dtp
103
	mov	esi,default_dtp
104
	xor	eax,eax
104
	xor	eax,eax
105
	cld
105
	cld
106
@@:
106
@@:
107
	lodsb
107
	lodsb
108
	stosb
108
	stosb
109
	test	eax,eax
109
	test	eax,eax
110
	jnz	@b
110
	jnz	@b
111
 
111
 
112
;---------------------------------------------------------------------
112
;---------------------------------------------------------------------
113
;        mov     esi, param
113
;        mov     esi, param
114
;        cmp     byte [esi], 0
114
;        cmp     byte [esi], 0
115
;		je	@f
115
;		je	@f
116
;        jnz     has_param
116
;        jnz     has_param
117
;    mov  esi,default_skn
117
;    mov  esi,default_skn
118
;    mov  edi,fname
118
;    mov  edi,fname
119
;    mov  ecx,default_skn.size
119
;    mov  ecx,default_skn.size
120
;    rep  movsb
120
;    rep  movsb
121
;    jmp  skin_path_ready
121
;    jmp  skin_path_ready
122
;has_param:
122
;has_param:
123
;        mov     ecx, 256/4
123
;        mov     ecx, 256/4
124
;        mov     edi, fname
124
;        mov     edi, fname
125
;        rep     movsd
125
;        rep     movsd
126
;		skin_path_ready
126
;		skin_path_ready
127
;---------------------------------------------------------------------
127
;---------------------------------------------------------------------
128
	mov	edi,skin_info
128
	mov	edi,skin_info
129
	cmp     byte [edi], 0
129
	cmp     byte [edi], 0
130
	jne	skin_path_ready
130
	jne	skin_path_ready
131
	mov	esi,default_skin
131
	mov	esi,default_skin
132
	xor	eax,eax
132
	xor	eax,eax
133
	cld
133
	cld
134
@@:
134
@@:
135
	lodsb
135
	lodsb
136
	stosb
136
	stosb
137
	test	eax,eax
137
	test	eax,eax
138
	jnz	@b
138
	jnz	@b
139
skin_path_ready:	
139
skin_path_ready:	
140
;---------------------------------------------------------------------
140
;---------------------------------------------------------------------
141
;OpenDialog	initialisation
141
;OpenDialog	initialisation
142
	push    dword OpenDialog_data
142
	push    dword OpenDialog_data
143
	call    [OpenDialog_Init]
143
	call    [OpenDialog_Init]
144
 
144
 
145
	push    dword OpenDialog_data2
145
	push    dword OpenDialog_data2
146
	call    [OpenDialog_Init]
146
	call    [OpenDialog_Init]
147
	
147
	
148
; prepare for PathShow
148
; prepare for PathShow
149
	push	dword PathShow_data_1
149
	push	dword PathShow_data_1
150
	call	[PathShow_prepare]
150
	call	[PathShow_prepare]
151
	
151
	
152
	push	dword PathShow_data_2
152
	push	dword PathShow_data_2
153
	call	[PathShow_prepare]
153
	call	[PathShow_prepare]
154
;---------------------------------------------------------------------	
154
;---------------------------------------------------------------------	
155
    mov  eax,48                 ; get current colors
155
    mov  eax,48                 ; get current colors
156
    mov  ebx,3
156
    mov  ebx,3
157
    mov  ecx,color_table
157
    mov  ecx,color_table
158
    mov  edx,4*10
158
    mov  edx,4*10
159
    mcall
159
    mcall
160
 
160
 
161
    call load_skin_file.2
161
    call load_skin_file.2
162
 
162
 
163
;    mov  esi, default_dtp
163
;    mov  esi, default_dtp
164
;    mov  edi, fname
164
;    mov  edi, fname
165
;    mov  ecx, default_dtp.size
165
;    mov  ecx, default_dtp.size
166
;    rep  movsb
166
;    rep  movsb
167
 
167
 
168
red:
168
red:
169
    call draw_window            ; at first, draw the window
169
    call draw_window            ; at first, draw the window
170
 
170
 
171
still:
171
still:
172
 
172
 
173
    mov  eax,23                 ; wait here for event
173
    mov  eax,23                 ; wait here for event
174
    mov  ebx,5
174
    mov  ebx,5
175
    mcall
175
    mcall
176
 
176
 
177
    dec  eax                    ; redraw request ?
177
    dec  eax                    ; redraw request ?
178
    jz   red
178
    jz   red
179
    dec  eax                    ; key in buffer ?
179
    dec  eax                    ; key in buffer ?
180
    jz   key
180
    jz   key
181
    dec  eax                    ; button in buffer ?
181
    dec  eax                    ; button in buffer ?
182
    jz   button
182
    jz   button
183
 
183
 
184
    call draw_cursor
184
    call draw_cursor
185
 
185
 
186
    jmp  still
186
    jmp  still
187
 
187
 
188
 
188
 
189
  key:                          ; key
189
  key:                          ; key
190
    mov  al,2                   ; just read it and ignore
190
    mov  al,2                   ; just read it and ignore
191
    mcall
191
    mcall
192
    jmp  still
192
    jmp  still
193
 
193
 
194
  button:                       ; button
194
  button:                       ; button
195
    mov  al,17                  ; get id
195
    mov  al,17                  ; get id
196
    mcall
196
    mcall
197
 
197
 
198
;    cmp  ah,11                  ; read string
198
;    cmp  ah,11                  ; read string
199
;    jne  no_string
199
;    jne  no_string
200
;    call read_string
200
;    call read_string
201
;    jmp  still
201
;    jmp  still
202
;  no_string:
202
;  no_string:
203
 
203
 
204
    cmp  ah,12                  ; load file
204
    cmp  ah,12                  ; load file
205
    jne  no_load
205
    jne  no_load
206
    call load_file
206
    call load_file
207
    call draw_window
207
    call draw_window
208
    jmp  still
208
    jmp  still
209
  no_load:
209
  no_load:
210
 
210
 
211
    cmp  ah,13                  ; save file
211
    cmp  ah,13                  ; save file
212
    jne  no_save
212
    jne  no_save
213
    call save_file
213
    call save_file
214
    jmp  still
214
    jmp  still
215
  no_save:
215
  no_save:
216
 
216
 
217
    cmp  ah,14                  ; set 3d buttons
217
    cmp  ah,14                  ; set 3d buttons
218
    jne  no_3d
218
    jne  no_3d
219
    mov  eax,48
219
    mov  eax,48
220
    mov  ebx,1
220
    mov  ebx,1
221
    mov  ecx,1
221
    mov  ecx,1
222
    mcall
222
    mcall
223
    jmp  doapply
223
    jmp  doapply
224
   no_3d:
224
   no_3d:
225
 
225
 
226
    cmp  ah,15                  ; set flat buttons
226
    cmp  ah,15                  ; set flat buttons
227
    jne  no_flat
227
    jne  no_flat
228
    mcall 48, 1, 0
228
    mcall 48, 1, 0
229
doapply:
229
doapply:
230
    mcall 48, 0, 0
230
    mcall 48, 0, 0
231
    jmp  still
231
    jmp  still
232
  no_flat:
232
  no_flat:
233
 
233
 
234
    cmp  ah,16                  ; apply
234
    cmp  ah,16                  ; apply
235
    jne  no_apply
235
    jne  no_apply
236
  apply_direct:
236
  apply_direct:
237
    mov  eax,48
237
    mov  eax,48
238
    mov  ebx,2
238
    mov  ebx,2
239
    mov  ecx,color_table
239
    mov  ecx,color_table
240
    mov  edx,10*4
240
    mov  edx,10*4
241
    mcall
241
    mcall
242
    jmp  doapply
242
    jmp  doapply
243
  no_apply:
243
  no_apply:
244
 
244
 
245
    cmp  ah,17                  ; load skin file
245
    cmp  ah,17                  ; load skin file
246
    jne  no_load_skin
246
    jne  no_load_skin
247
    call load_skin_file
247
    call load_skin_file
248
    call draw_window
248
    call draw_window
249
    jmp  still
249
    jmp  still
250
  no_load_skin:
250
  no_load_skin:
251
 
251
 
252
    cmp   ah,18                 ; apply skin
252
    cmp   ah,18                 ; apply skin
253
    jne   no_apply_skin
253
    jne   no_apply_skin
254
    cmp   [skin_info],0
254
    cmp   [skin_info],0
255
    je    no_apply_skin
255
    je    no_apply_skin
256
    mcall 48,8,skin_info
256
    mcall 48,8,skin_info
257
    call  draw_window
257
    call  draw_window
258
    jmp   still
258
    jmp   still
259
  no_apply_skin:
259
  no_apply_skin:
260
 
260
 
261
    cmp  ah,31
261
    cmp  ah,31
262
    jb   no_new_colour
262
    jb   no_new_colour
263
    cmp  ah,41
263
    cmp  ah,41
264
    jg   no_new_colour
264
    jg   no_new_colour
265
    shr  eax,8
265
    shr  eax,8
266
    sub  eax,31
266
    sub  eax,31
267
    shl  eax,2
267
    shl  eax,2
268
    mov  ebx,[color]
268
    mov  ebx,[color]
269
    mov  [eax+color_table],ebx
269
    mov  [eax+color_table],ebx
270
    cmp  dword[not_packed_area+SKIN_HEADER.ident],'SKIN'
270
    cmp  dword[not_packed_area+SKIN_HEADER.ident],'SKIN'
271
    jne  @f
271
    jne  @f
272
    mov  edi,[not_packed_area+SKIN_HEADER.params]
272
    mov  edi,[not_packed_area+SKIN_HEADER.params]
273
    mov  dword[edi+not_packed_area+SKIN_PARAMS.dtp.data+eax],ebx
273
    mov  dword[edi+not_packed_area+SKIN_PARAMS.dtp.data+eax],ebx
274
    call draw_skin
274
    call draw_skin
275
@@: call draw_colours
275
@@: call draw_colours
276
    jmp  still
276
    jmp  still
277
  no_new_colour:
277
  no_new_colour:
278
 
278
 
279
    cmp  ah,1                   ; terminate
279
    cmp  ah,1                   ; terminate
280
    jnz  noid1
280
    jnz  noid1
281
close:
281
close:
282
    or   eax,-1
282
    or   eax,-1
283
    mcall
283
    mcall
284
  noid1:
284
  noid1:
285
 
285
 
286
    jmp  still
286
    jmp  still
287
 
287
 
288
 
288
 
289
draw_cursor:
289
draw_cursor:
290
 
290
 
291
    pusha
291
    pusha
292
    mov  eax,37
292
    mov  eax,37
293
    mov  ebx,2
293
    mov  ebx,2
294
    mcall
294
    mcall
295
 
295
 
296
    cmp  eax,0
296
    cmp  eax,0
297
    jne  dc1
297
    jne  dc1
298
    popa
298
    popa
299
    ret
299
    ret
300
 
300
 
301
 dc1:
301
 dc1:
302
 
302
 
303
    mov  eax,37
303
    mov  eax,37
304
    mov  ebx,1
304
    mov  ebx,1
305
    mcall
305
    mcall
306
 
306
 
307
    mov  ebx,eax
307
    mov  ebx,eax
308
    shr  ebx,16
308
    shr  ebx,16
309
    mov  ecx,eax
309
    mov  ecx,eax
310
    and  ecx,0xffff
310
    and  ecx,0xffff
311
 
311
 
312
    cmp  ecx,32
312
    cmp  ecx,32
313
    jbe  no_color
313
    jbe  no_color
314
    cmp  ebx,32
314
    cmp  ebx,32
315
    jbe  no_color
315
    jbe  no_color
316
 
316
 
317
    cmp  ebx,266           ; CHANGE COLOR
317
    cmp  ebx,266           ; CHANGE COLOR
318
    jb   no_color
318
    jb   no_color
319
    cmp  ebx,266+20*3
319
    cmp  ebx,266+20*3
320
    jg   no_color
320
    jg   no_color
321
 
321
 
322
    cmp  ecx,30+128
322
    cmp  ecx,30+128
323
    jge  no_color
323
    jge  no_color
324
    cmp  ecx,30
324
    cmp  ecx,30
325
    jb   no_color
325
    jb   no_color
326
 
326
 
327
    sub  ebx,266
327
    sub  ebx,266
328
    mov  eax,ebx
328
    mov  eax,ebx
329
    cdq
329
    cdq
330
    mov  ebx,20
330
    mov  ebx,20
331
    div  ebx
331
    div  ebx
332
    mov  ebx,2
332
    mov  ebx,2
333
    sub  ebx,eax
333
    sub  ebx,eax
334
 
334
 
335
    add  ecx,-30
335
    add  ecx,-30
336
    not  ecx
336
    not  ecx
337
    shl  ecx,1
337
    shl  ecx,1
338
 
338
 
339
    mov  byte [ebx+color],cl
339
    mov  byte [ebx+color],cl
340
    call draw_color
340
    call draw_color
341
 
341
 
342
    popa
342
    popa
343
    ret
343
    ret
344
 
344
 
345
  no_color:
345
  no_color:
346
 
346
 
347
    popa
347
    popa
348
    ret
348
    ret
349
 
349
 
350
;---------------------------------------------------------------------
350
;---------------------------------------------------------------------
351
load_file:
351
load_file:
352
;---------------------------------------------------------------------
352
;---------------------------------------------------------------------
353
; invoke OpenDialog
353
; invoke OpenDialog
354
	mov	[OpenDialog_data.type],dword 0
354
	mov	[OpenDialog_data.type],dword 0
355
	push    dword OpenDialog_data
355
	push    dword OpenDialog_data
356
	call    [OpenDialog_Start]
356
	call    [OpenDialog_Start]
357
	cmp	[OpenDialog_data.status],1
357
	cmp	[OpenDialog_data.status],1
358
	je	.1
358
	je	.1
359
	ret
359
	ret
360
.1:
360
.1:
361
; prepare for PathShow
361
; prepare for PathShow
362
	push	dword PathShow_data_1
362
	push	dword PathShow_data_1
363
	call	[PathShow_prepare]
363
	call	[PathShow_prepare]
364
 
364
 
365
	call	draw_PathShow
365
	call	draw_PathShow
366
;---------------------------------------------------------------------
366
;---------------------------------------------------------------------
367
        xor     eax, eax
367
        xor     eax, eax
368
        mov     ebx, read_info
368
        mov     ebx, read_info
369
        mov     dword [ebx], eax       ; subfunction: read
369
        mov     dword [ebx], eax       ; subfunction: read
370
        mov     dword [ebx+4], eax     ; offset (low dword)
370
        mov     dword [ebx+4], eax     ; offset (low dword)
371
        mov     dword [ebx+8], eax     ; offset (high dword)
371
        mov     dword [ebx+8], eax     ; offset (high dword)
372
        mov     dword [ebx+12], 40     ; read colors file: 4*10 bytes
372
        mov     dword [ebx+12], 40     ; read colors file: 4*10 bytes
373
        mov     dword [ebx+16], color_table ; address
373
        mov     dword [ebx+16], color_table ; address
374
        mcall   70
374
        mcall   70
375
        ret
375
        ret
376
;---------------------------------------------------------------------
376
;---------------------------------------------------------------------
377
load_skin_file:
377
load_skin_file:
378
;---------------------------------------------------------------------
378
;---------------------------------------------------------------------
379
; invoke OpenDialog
379
; invoke OpenDialog
380
	push    dword OpenDialog_data2
380
	push    dword OpenDialog_data2
381
	call    [OpenDialog_Start]
381
	call    [OpenDialog_Start]
382
	cmp	[OpenDialog_data2.status],1
382
	cmp	[OpenDialog_data2.status],1
383
	je	.1
383
	je	.1
384
	ret
384
	ret
385
.1:
385
.1:
386
; prepare for PathShow
386
; prepare for PathShow
387
	push	dword PathShow_data_2
387
	push	dword PathShow_data_2
388
	call	[PathShow_prepare]
388
	call	[PathShow_prepare]
389
 
389
 
390
	call	draw_PathShow
390
	call	draw_PathShow
391
;---------------------------------------------------------------------
391
;---------------------------------------------------------------------
392
.2:
392
.2:
393
        xor     eax, eax
393
        xor     eax, eax
394
        mov     ebx, read_info2
394
        mov     ebx, read_info2
395
        mov     dword [ebx], eax       ; subfunction: read
395
        mov     dword [ebx], eax       ; subfunction: read
396
        mov     dword [ebx+4], eax     ; offset (low dword)
396
        mov     dword [ebx+4], eax     ; offset (low dword)
397
        mov     dword [ebx+8], eax     ; offset (high dword)
397
        mov     dword [ebx+8], eax     ; offset (high dword)
398
        mov     dword [ebx+12], 32*1024 ; read: max 32 KBytes
398
        mov     dword [ebx+12], 32*1024 ; read: max 32 KBytes
399
        mov     dword [ebx+16], file_load_area ; address
399
        mov     dword [ebx+16], file_load_area ; address
400
        mcall   70
400
        mcall   70
401
 
401
 
402
        mov     esi, file_load_area
402
        mov     esi, file_load_area
403
 
403
 
404
        cmp     dword [esi], 'KPCK'
404
        cmp     dword [esi], 'KPCK'
405
        jnz     notpacked
405
        jnz     notpacked
406
        cmp     dword [esi+4], 32*1024 ; max 32 KBytes
406
        cmp     dword [esi+4], 32*1024 ; max 32 KBytes
407
        ja      doret
407
        ja      doret
408
        push    unpack_area
408
        push    unpack_area
409
        push    esi
409
        push    esi
410
        call    unpack
410
        call    unpack
411
        mov     esi, unpack_area
411
        mov     esi, unpack_area
412
notpacked:
412
notpacked:
413
 
413
 
414
    cmp   dword[esi+SKIN_HEADER.ident],'SKIN'
414
    cmp   dword[esi+SKIN_HEADER.ident],'SKIN'
415
    jne   doret
415
    jne   doret
416
 
416
 
417
    mov   edi,not_packed_area
417
    mov   edi,not_packed_area
418
    mov   ecx,0x8000/4
418
    mov   ecx,0x8000/4
419
    rep   movsd
419
    rep   movsd
420
 
420
 
421
;    mov   esi,fname
421
;    mov   esi,fname
422
;    mov   edi,skin_info.fname
422
;    mov   edi,skin_info.fname
423
;    mov   ecx,257
423
;    mov   ecx,257
424
;    rep   movsb
424
;    rep   movsb
425
 
425
 
426
    mov   ebp,not_packed_area
426
    mov   ebp,not_packed_area
427
    mov   esi,[ebp+SKIN_HEADER.params]
427
    mov   esi,[ebp+SKIN_HEADER.params]
428
    add   esi,ebp
428
    add   esi,ebp
429
    lea   esi,[esi+SKIN_PARAMS.dtp.data]
429
    lea   esi,[esi+SKIN_PARAMS.dtp.data]
430
    mov   edi,color_table
430
    mov   edi,color_table
431
    mov   ecx,10
431
    mov   ecx,10
432
    rep   movsd
432
    rep   movsd
433
  doret:
433
  doret:
434
 
434
 
435
ret
435
ret
436
 
436
 
437
;---------------------------------------------------------------------
437
;---------------------------------------------------------------------
438
save_file:
438
save_file:
439
;---------------------------------------------------------------------
439
;---------------------------------------------------------------------
440
; invoke OpenDialog
440
; invoke OpenDialog
441
	mov	[OpenDialog_data.type],dword 1
441
	mov	[OpenDialog_data.type],dword 1
442
	push    dword OpenDialog_data
442
	push    dword OpenDialog_data
443
	call    [OpenDialog_Start]
443
	call    [OpenDialog_Start]
444
	cmp	[OpenDialog_data.status],1
444
	cmp	[OpenDialog_data.status],1
445
	je	.1
445
	je	.1
446
	ret
446
	ret
447
.1:
447
.1:
448
; prepare for PathShow
448
; prepare for PathShow
449
	push	dword PathShow_data_1
449
	push	dword PathShow_data_1
450
	call	[PathShow_prepare]
450
	call	[PathShow_prepare]
451
 
451
 
452
	call	draw_PathShow
452
	call	draw_PathShow
453
;---------------------------------------------------------------------
453
;---------------------------------------------------------------------
454
        mov     ebx, write_info
454
        mov     ebx, write_info
455
        mov     dword [ebx], 2         ; subfunction: write
455
        mov     dword [ebx], 2         ; subfunction: write
456
        and     dword [ebx+4], 0       ; (reserved)
456
        and     dword [ebx+4], 0       ; (reserved)
457
        and     dword [ebx+8], 0       ; (reserved)
457
        and     dword [ebx+8], 0       ; (reserved)
458
        mov     dword [ebx+12], 10*4   ; bytes to write
458
        mov     dword [ebx+12], 10*4   ; bytes to write
459
        mov     dword [ebx+16], color_table ; address
459
        mov     dword [ebx+16], color_table ; address
460
        mcall   70
460
        mcall   70
461
        ret
461
        ret
462
;---------------------------------------------------------------------
462
;---------------------------------------------------------------------
463
;read_string:
-
 
464
;
-
 
465
;    pusha
-
 
466
;
-
 
467
;    mov  edi,fname
-
 
468
;    mov  al,'_'
-
 
469
;    mov  ecx,87
-
 
470
;    cld
-
 
471
;    rep  stosb
-
 
472
;
-
 
473
;    call print_text
-
 
474
;
-
 
475
;    mov  edi,fname
-
 
476
;
-
 
477
;  f11:
-
 
478
;    mov  eax,10
-
 
479
;    mcall
-
 
480
;    cmp  eax,2
-
 
481
;    jne  read_done
-
 
482
;;    mov  eax,2
-
 
483
;    mcall
-
 
484
;    shr  eax,8
-
 
485
;    cmp  eax,13
-
 
486
;    je   read_done
-
 
487
;    cmp  eax,8
-
 
488
;    jne  nobsl
-
 
489
;    cmp  edi,fname
-
 
490
;    je   f11
-
 
491
;    dec  edi
-
 
492
;    mov  [edi],byte '_'
-
 
493
;    call print_text
-
 
494
;    jmp  f11
-
 
495
;   nobsl:
-
 
496
;    mov  [edi],al
-
 
497
;
-
 
498
;    call print_text
-
 
499
;
-
 
500
;    inc  edi
-
 
501
;    cmp  edi, fname+87
-
 
502
;    jne  f11
-
 
503
;
-
 
504
;  read_done:
-
 
505
;
-
 
506
;    mov  ecx, fname+88
-
 
507
;    sub  ecx, edi
-
 
508
;    mov  eax, 0
-
 
509
;    cld
-
 
510
;    rep  stosb
-
 
511
;
-
 
512
;    call print_text
-
 
513
;
-
 
514
;    popa
-
 
515
;
-
 
516
;    ret
-
 
517
 
-
 
518
 
-
 
519
;print_text:
-
 
520
;    pushad
-
 
521
;
-
 
522
;    mpack ebx,15,6*87+4
-
 
523
;    mpack ecx,(30+18*10+2),11
-
 
524
;    mcall 13,,,[w_work]
-
 
525
;
-
 
526
;    mpack ebx,17,(30+18*10+4)
-
 
527
;    mcall 4,,[w_work_text],fname,87
-
 
528
;
-
 
529
;    popad
-
 
530
;ret
-
 
531
 
-
 
532
 
-
 
533
draw_color:
463
draw_color:
534
 
464
 
535
    pusha
465
    pusha
536
 
466
 
537
    mov  eax,13
467
    mov  eax,13
538
    mov  ebx,266*65536+60
468
    mov  ebx,266*65536+60
539
    mov  ecx,170*65536+30
469
    mov  ecx,170*65536+30
540
    mov  edx,[color]
470
    mov  edx,[color]
541
    mcall
471
    mcall
542
 
472
 
543
;   mov  eax,13
473
;   mov  eax,13
544
    mov  ebx,266*65536+60
474
    mov  ebx,266*65536+60
545
    mov  ecx,200*65536+10
475
    mov  ecx,200*65536+10
546
    mov  edx,[w_work]
476
    mov  edx,[w_work]
547
    mcall
477
    mcall
548
 
478
 
549
    mov  eax,47
479
    mov  eax,47
550
    mov  ebx,0+1*256+8*65536
480
    mov  ebx,0+1*256+8*65536
551
    mov  ecx,[color]
481
    mov  ecx,[color]
552
    mov  edx,272*65536+201
482
    mov  edx,272*65536+201
553
    mov  esi,[w_work_text]
483
    mov  esi,[w_work_text]
554
    mcall
484
    mcall
555
 
485
 
556
    popa
486
    popa
557
 
-
 
558
    ret
487
    ret
559
 
-
 
560
 
-
 
-
 
488
;----------------------------------------------------------------------
561
draw_colours:
489
draw_colours:
562
 
490
 
563
    pusha
491
    pusha
564
 
492
 
565
    mov  esi,color_table
493
    mov  esi,color_table
566
 
494
 
567
    mov  ebx,225*65536+32
495
    mov  ebx,225*65536+32
568
    mov  ecx,32*65536+12
496
    mov  ecx,32*65536+12
569
  newcol:
497
  newcol:
570
    mov  eax,13
498
    mov  eax,13
571
    mov  edx,[esi]
499
    mov  edx,[esi]
572
    mcall
500
    mcall
573
    add  ecx,18*65536
501
    add  ecx,18*65536
574
    add  esi,4
502
    add  esi,4
575
    cmp  esi,color_table+4*9
503
    cmp  esi,color_table+4*9
576
    jbe  newcol
504
    jbe  newcol
577
 
505
 
578
    popa
506
    popa
579
 
-
 
580
    ret
507
    ret
581
 
-
 
582
 
-
 
-
 
508
;----------------------------------------------------------------------
583
draw_framerect: ; ebx,ecx
509
draw_framerect: ; ebx,ecx
584
        push    ebx ecx
510
        push    ebx ecx
585
        add     bx,[esp+6]
511
        add     bx,[esp+6]
586
        mov     cx,[esp+2]
512
        mov     cx,[esp+2]
587
        dec     ebx
513
        dec     ebx
588
        mcall   38
514
        mcall   38
589
        add     cx,[esp]
515
        add     cx,[esp]
590
        rol     ecx,16
516
        rol     ecx,16
591
        add     cx,[esp]
517
        add     cx,[esp]
592
        sub     ecx,0x00010001
518
        sub     ecx,0x00010001
593
        mcall
519
        mcall
594
        mov     ebx,[esp+4]
520
        mov     ebx,[esp+4]
595
        mov     ecx,[esp]
521
        mov     ecx,[esp]
596
        mov     bx,[esp+6]
522
        mov     bx,[esp+6]
597
        add     cx,[esp+2]
523
        add     cx,[esp+2]
598
        dec     ecx
524
        dec     ecx
599
        mcall
525
        mcall
600
        add     bx,[esp+4]
526
        add     bx,[esp+4]
601
        rol     ebx,16
527
        rol     ebx,16
602
        add     bx,[esp+4]
528
        add     bx,[esp+4]
603
        sub     ebx,0x00010001
529
        sub     ebx,0x00010001
604
        mcall
530
        mcall
605
        add     esp,8
531
        add     esp,8
606
        ret
532
        ret
607
 
-
 
-
 
533
;----------------------------------------------------------------------
608
find_bitmap:
534
find_bitmap:
609
        mov     edi,[ebp+SKIN_HEADER.bitmaps]
535
        mov     edi,[ebp+SKIN_HEADER.bitmaps]
610
        add     edi,ebp
536
        add     edi,ebp
611
        xor     ebx,ebx
537
        xor     ebx,ebx
612
  .lp1: cmp     dword[edi],0
538
  .lp1: cmp     dword[edi],0
613
        je      .lp2
539
        je      .lp2
614
        cmp     dword[edi+0],eax
540
        cmp     dword[edi+0],eax
615
        jne     @f
541
        jne     @f
616
        mov     ebx,[edi+SKIN_BITMAPS._data]
542
        mov     ebx,[edi+SKIN_BITMAPS._data]
617
        add     ebx,ebp
543
        add     ebx,ebp
618
        mov     ecx,[ebx-2]
544
        mov     ecx,[ebx-2]
619
        mov     cx,[ebx+4]
545
        mov     cx,[ebx+4]
620
        add     ebx,8
546
        add     ebx,8
621
  .lp2: ret
547
  .lp2: ret
622
    @@: add     edi,8
548
    @@: add     edi,8
623
        jmp     .lp1
549
        jmp     .lp1
624
 
-
 
-
 
550
;----------------------------------------------------------------------
625
dec_edx:
551
dec_edx:
626
        sub     dl,4
552
        sub     dl,4
627
        jnc     @f
553
        jnc     @f
628
        xor     dl,dl
554
        xor     dl,dl
629
    @@: sub     dh,4
555
    @@: sub     dh,4
630
        jnc     @f
556
        jnc     @f
631
        xor     dh,dh
557
        xor     dh,dh
632
    @@: rol     edx,16
558
    @@: rol     edx,16
633
        sub     dl,4
559
        sub     dl,4
634
        jnc     @f
560
        jnc     @f
635
        xor     dl,dl
561
        xor     dl,dl
636
    @@: rol     edx,16
562
    @@: rol     edx,16
637
        ret
563
        ret
638
 
-
 
-
 
564
;----------------------------------------------------------------------
639
area:
565
area:
640
  .x      = 345
566
  .x      = 345
641
  .y      = 20
567
  .y      = 20
642
  .width  = 206
568
  .width  = 206
643
  .height = 191
569
  .height = 191
644
 
570
 
645
wnd1:
571
wnd1:
646
  .x      = area.x+49
572
  .x      = area.x+49
647
  .y      = area.y+5
573
  .y      = area.y+5
648
  .width  = 150
574
  .width  = 150
649
  .height = 90
575
  .height = 90
650
wnd2:
576
wnd2:
651
  .x      = area.x+35
577
  .x      = area.x+35
652
  .y      = area.y+35
578
  .y      = area.y+35
653
  .width  = 150
579
  .width  = 150
654
  .height = 90
580
  .height = 90
655
wnd3:
581
wnd3:
656
  .x      = area.x+21
582
  .x      = area.x+21
657
  .y      = area.y+65
583
  .y      = area.y+65
658
  .width  = 150
584
  .width  = 150
659
  .height = 90
585
  .height = 90
660
wnd4:
586
wnd4:
661
  .x      = area.x+7
587
  .x      = area.x+7
662
  .y      = area.y+95
588
  .y      = area.y+95
663
  .width  = 150
589
  .width  = 150
664
  .height = 90
590
  .height = 90
665
 
591
 
666
virtual at edi+SKIN_PARAMS.dtp.data
592
virtual at edi+SKIN_PARAMS.dtp.data
667
  dtp system_colors
593
  dtp system_colors
668
end virtual
594
end virtual
669
 
-
 
-
 
595
;----------------------------------------------------------------------
670
draw_skin:
596
draw_skin:
671
        mcall   13,,,0x00FFFFFF
597
        mcall   13,,,0x00FFFFFF
672
 
598
 
673
        mov     ebp,not_packed_area
599
        mov     ebp,not_packed_area
674
        mov     edi,[ebp+SKIN_HEADER.params]
600
        mov     edi,[ebp+SKIN_HEADER.params]
675
        add     edi,ebp
601
        add     edi,ebp
676
        mpack   ebx,wnd1.x,wnd1.width
602
        mpack   ebx,wnd1.x,wnd1.width
677
        mpack   ecx,wnd1.y,wnd1.height
603
        mpack   ecx,wnd1.y,wnd1.height
678
        mov     edx,[dtp.frame]
604
        mov     edx,[dtp.frame]
679
        call    draw_framerect
605
        call    draw_framerect
680
        mcall   13,,,dword[dtp.work]
606
        mcall   13,,,dword[dtp.work]
681
 
607
 
682
        mov     eax,38
608
        mov     eax,38
683
        mpack   ebx,wnd1.x+1,wnd1.x+wnd1.width-2
609
        mpack   ebx,wnd1.x+1,wnd1.x+wnd1.width-2
684
        mpack   ecx,wnd1.y+1,wnd1.y+1
610
        mpack   ecx,wnd1.y+1,wnd1.y+1
685
        mov     edx,[dtp.grab]
611
        mov     edx,[dtp.grab]
686
        mov     esi,20
612
        mov     esi,20
687
    @@: mcall
613
    @@: mcall
688
        call    dec_edx
614
        call    dec_edx
689
        add     ecx,0x00010001
615
        add     ecx,0x00010001
690
        dec     esi
616
        dec     esi
691
        jnz     @b
617
        jnz     @b
692
 
618
 
693
        mov     edi,[ebp+SKIN_HEADER.params]
619
        mov     edi,[ebp+SKIN_HEADER.params]
694
        add     edi,ebp
620
        add     edi,ebp
695
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
621
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
696
 
622
 
697
        mcall   8,,,0,[dtp.grab_button]
623
        mcall   8,,,0,[dtp.grab_button]
698
        mcall   4,,dword[dtp.grab_button_text],close_text,close_text.size
624
        mcall   4,,dword[dtp.grab_button_text],close_text,close_text.size
699
 
625
 
700
;----------------------------------------------------------------------
626
;----------------------------------------------------------------------
701
 
627
 
702
        mov     edi,[ebp+SKIN_HEADER.params]
628
        mov     edi,[ebp+SKIN_HEADER.params]
703
        add     edi,ebp
629
        add     edi,ebp
704
        mpack   ebx,wnd2.x,wnd2.width
630
        mpack   ebx,wnd2.x,wnd2.width
705
        mpack   ecx,wnd2.y,wnd2.height
631
        mpack   ecx,wnd2.y,wnd2.height
706
        mov     edx,[dtp.frame]
632
        mov     edx,[dtp.frame]
707
        shr     edx,1
633
        shr     edx,1
708
        and     edx,0x007F7F7F
634
        and     edx,0x007F7F7F
709
        call    draw_framerect
635
        call    draw_framerect
710
        mpack   ebx,wnd2.x+4,wnd2.width-8
636
        mpack   ebx,wnd2.x+4,wnd2.width-8
711
        mpack   ecx,wnd2.y+4,wnd2.height-8
637
        mpack   ecx,wnd2.y+4,wnd2.height-8
712
        call    draw_framerect
638
        call    draw_framerect
713
        mcall   13,,,[dtp.frame]
639
        mcall   13,,,[dtp.frame]
714
        add     ecx,(wnd2.height-5)*65536
640
        add     ecx,(wnd2.height-5)*65536
715
        mcall
641
        mcall
716
        mcall   ,,
642
        mcall   ,,
717
        add     ebx,(wnd2.width-5)*65536
643
        add     ebx,(wnd2.width-5)*65536
718
        mcall
644
        mcall
719
        mcall   ,,,dword[dtp.work]
645
        mcall   ,,,dword[dtp.work]
720
 
646
 
721
        mov     eax,38
647
        mov     eax,38
722
        mpack   ebx,wnd2.x+4,wnd2.x+wnd2.width-5
648
        mpack   ebx,wnd2.x+4,wnd2.x+wnd2.width-5
723
        mpack   ecx,wnd2.y+4,wnd2.y+4
649
        mpack   ecx,wnd2.y+4,wnd2.y+4
724
        mov     edx,[dtp.grab]
650
        mov     edx,[dtp.grab]
725
        mov     esi,16
651
        mov     esi,16
726
    @@: mcall
652
    @@: mcall
727
        call    dec_edx
653
        call    dec_edx
728
        add     ecx,0x00010001
654
        add     ecx,0x00010001
729
        dec     esi
655
        dec     esi
730
        jnz     @b
656
        jnz     @b
731
 
657
 
732
        mov     edi,[ebp+SKIN_HEADER.params]
658
        mov     edi,[ebp+SKIN_HEADER.params]
733
        add     edi,ebp
659
        add     edi,ebp
734
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
660
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
735
 
661
 
736
        mcall   8,,,0,[dtp.grab_button]
662
        mcall   8,,,0,[dtp.grab_button]
737
        mcall   4,,dword[dtp.grab_button_text],close_text,close_text.size
663
        mcall   4,,dword[dtp.grab_button_text],close_text,close_text.size
738
 
664
 
739
;----------------------------------------------------------------------
665
;----------------------------------------------------------------------
740
 
666
 
741
        mov     edi,[ebp+SKIN_HEADER.params]
667
        mov     edi,[ebp+SKIN_HEADER.params]
742
        add     edi,ebp
668
        add     edi,ebp
743
        mpack   ebx,wnd3.x,wnd3.width
669
        mpack   ebx,wnd3.x,wnd3.width
744
        mpack   ecx,wnd3.y,wnd3.height
670
        mpack   ecx,wnd3.y,wnd3.height
745
        mov     edx,[edi+SKIN_PARAMS.colors_1.outer]
671
        mov     edx,[edi+SKIN_PARAMS.colors_1.outer]
746
        call    draw_framerect
672
        call    draw_framerect
747
        mpack   ebx,wnd3.x+4,wnd3.width-8
673
        mpack   ebx,wnd3.x+4,wnd3.width-8
748
        mpack   ecx,wnd3.y+4,wnd3.height-8
674
        mpack   ecx,wnd3.y+4,wnd3.height-8
749
        mov     edx,[edi+SKIN_PARAMS.colors_1.inner]
675
        mov     edx,[edi+SKIN_PARAMS.colors_1.inner]
750
        call    draw_framerect
676
        call    draw_framerect
751
        mcall   13,,,[edi+SKIN_PARAMS.colors_1.frame]
677
        mcall   13,,,[edi+SKIN_PARAMS.colors_1.frame]
752
        add     ecx,(wnd3.height-5)*65536
678
        add     ecx,(wnd3.height-5)*65536
753
        mcall
679
        mcall
754
        mcall   ,,
680
        mcall   ,,
755
        add     ebx,(wnd3.width-5)*65536
681
        add     ebx,(wnd3.width-5)*65536
756
        mcall
682
        mcall
757
        mcall   ,,,dword[dtp.work]
683
        mcall   ,,,dword[dtp.work]
758
 
684
 
759
        mov     eax,0x00000001 ; left, inactive
685
        mov     eax,0x00000001 ; left, inactive
760
        call    find_bitmap
686
        call    find_bitmap
761
        mcall   7,,,
687
        mcall   7,,,
762
 
688
 
763
        pushd   [ebx-8]
689
        pushd   [ebx-8]
764
        mov     eax,0x00000003 ; base, inactive
690
        mov     eax,0x00000003 ; base, inactive
765
        call    find_bitmap
691
        call    find_bitmap
766
        pop     edx
692
        pop     edx
767
        mov     esi,wnd3.x+wnd3.width-1
693
        mov     esi,wnd3.x+wnd3.width-1
768
        sub     esi,edx
694
        sub     esi,edx
769
        shl     edx,16
695
        shl     edx,16
770
        add     edx,wnd3.x*65536+wnd3.y
696
        add     edx,wnd3.x*65536+wnd3.y
771
        mcall   7
697
        mcall   7
772
    @@: rol     edx,16
698
    @@: rol     edx,16
773
        add     dx,[ebx-8]
699
        add     dx,[ebx-8]
774
        cmp     dx,si
700
        cmp     dx,si
775
        ja      @f
701
        ja      @f
776
        rol     edx,16
702
        rol     edx,16
777
        mcall   7
703
        mcall   7
778
        jmp     @b
704
        jmp     @b
779
    @@:
705
    @@:
780
 
706
 
781
        mov     eax,0x00000002 ; oper, inactive
707
        mov     eax,0x00000002 ; oper, inactive
782
        call    find_bitmap
708
        call    find_bitmap
783
        mov     edx,ecx
709
        mov     edx,ecx
784
        shr     edx,16
710
        shr     edx,16
785
        neg     edx
711
        neg     edx
786
        shl     edx,16
712
        shl     edx,16
787
        add     edx,(wnd3.x+wnd3.width)*65536+wnd3.y
713
        add     edx,(wnd3.x+wnd3.width)*65536+wnd3.y
788
        mcall   7
714
        mcall   7
789
 
715
 
790
        mov     ebp,not_packed_area
716
        mov     ebp,not_packed_area
791
        mov     edi,[ebp+SKIN_HEADER.params]
717
        mov     edi,[ebp+SKIN_HEADER.params]
792
        add     edi,ebp
718
        add     edi,ebp
793
        mov     eax,dword[edi+SKIN_PARAMS.margin.left-2]
719
        mov     eax,dword[edi+SKIN_PARAMS.margin.left-2]
794
        mov     ax,word[edi+SKIN_PARAMS.skin_height]
720
        mov     ax,word[edi+SKIN_PARAMS.skin_height]
795
        sub     ax,[edi+SKIN_PARAMS.margin.bottom]
721
        sub     ax,[edi+SKIN_PARAMS.margin.bottom]
796
        shr     ax,1
722
        shr     ax,1
797
        add     ax,[edi+SKIN_PARAMS.margin.top]
723
        add     ax,[edi+SKIN_PARAMS.margin.top]
798
        add     ax,-4
724
        add     ax,-4
799
        push    eax
725
        push    eax
800
        lea     ebx,[eax+wnd3.x*65536+wnd3.y]
726
        lea     ebx,[eax+wnd3.x*65536+wnd3.y]
801
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
727
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
802
 
728
 
803
;---------------------------------------------------------
729
;---------------------------------------------------------
804
 
730
 
805
        mov     edi,[ebp+SKIN_HEADER.params]
731
        mov     edi,[ebp+SKIN_HEADER.params]
806
        add     edi,ebp
732
        add     edi,ebp
807
        mpack   ebx,wnd4.x,wnd4.width
733
        mpack   ebx,wnd4.x,wnd4.width
808
        mpack   ecx,wnd4.y,wnd4.height
734
        mpack   ecx,wnd4.y,wnd4.height
809
        mov     edx,[edi+SKIN_PARAMS.colors.outer]
735
        mov     edx,[edi+SKIN_PARAMS.colors.outer]
810
        call    draw_framerect
736
        call    draw_framerect
811
        mpack   ebx,wnd4.x+4,wnd4.width-8
737
        mpack   ebx,wnd4.x+4,wnd4.width-8
812
        mpack   ecx,wnd4.y+4,wnd4.height-8
738
        mpack   ecx,wnd4.y+4,wnd4.height-8
813
        mov     edx,[edi+SKIN_PARAMS.colors.inner]
739
        mov     edx,[edi+SKIN_PARAMS.colors.inner]
814
        call    draw_framerect
740
        call    draw_framerect
815
        mcall   13,,,[edi+SKIN_PARAMS.colors.frame]
741
        mcall   13,,,[edi+SKIN_PARAMS.colors.frame]
816
        add     ecx,(wnd4.height-5)*65536
742
        add     ecx,(wnd4.height-5)*65536
817
        mcall
743
        mcall
818
        mcall   ,,
744
        mcall   ,,
819
        add     ebx,(wnd4.width-5)*65536
745
        add     ebx,(wnd4.width-5)*65536
820
        mcall
746
        mcall
821
        mcall   ,,,dword[dtp.work]
747
        mcall   ,,,dword[dtp.work]
822
 
748
 
823
        mov     eax,0x00010001 ; left, inactive
749
        mov     eax,0x00010001 ; left, inactive
824
        call    find_bitmap
750
        call    find_bitmap
825
        mcall   7,,,
751
        mcall   7,,,
826
 
752
 
827
        pushd   [ebx-8]
753
        pushd   [ebx-8]
828
        mov     eax,0x00010003 ; base, inactive
754
        mov     eax,0x00010003 ; base, inactive
829
        call    find_bitmap
755
        call    find_bitmap
830
        pop     edx
756
        pop     edx
831
        mov     esi,wnd4.x+wnd4.width-1
757
        mov     esi,wnd4.x+wnd4.width-1
832
        sub     esi,edx
758
        sub     esi,edx
833
        shl     edx,16
759
        shl     edx,16
834
        add     edx,wnd4.x*65536+wnd4.y
760
        add     edx,wnd4.x*65536+wnd4.y
835
        mcall   7
761
        mcall   7
836
    @@: rol     edx,16
762
    @@: rol     edx,16
837
        add     dx,[ebx-8]
763
        add     dx,[ebx-8]
838
        cmp     dx,si
764
        cmp     dx,si
839
        ja      @f
765
        ja      @f
840
        rol     edx,16
766
        rol     edx,16
841
        mcall   7
767
        mcall   7
842
        jmp     @b
768
        jmp     @b
843
    @@:
769
    @@:
844
 
770
 
845
        mov     eax,0x00010002 ; oper, inactive
771
        mov     eax,0x00010002 ; oper, inactive
846
        call    find_bitmap
772
        call    find_bitmap
847
        mov     edx,ecx
773
        mov     edx,ecx
848
        shr     edx,16
774
        shr     edx,16
849
        neg     edx
775
        neg     edx
850
        shl     edx,16
776
        shl     edx,16
851
        add     edx,(wnd4.x+wnd4.width)*65536+wnd4.y
777
        add     edx,(wnd4.x+wnd4.width)*65536+wnd4.y
852
        mcall   7
778
        mcall   7
853
 
779
 
854
        mov     ebp,not_packed_area
780
        mov     ebp,not_packed_area
855
        mov     edi,[ebp+SKIN_HEADER.params]
781
        mov     edi,[ebp+SKIN_HEADER.params]
856
        add     edi,ebp
782
        add     edi,ebp
857
        pop     eax
783
        pop     eax
858
        lea     ebx,[eax+wnd4.x*65536+wnd4.y]
784
        lea     ebx,[eax+wnd4.x*65536+wnd4.y]
859
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
785
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
860
 
786
 
861
;----------------------------------------------------------------------
787
;----------------------------------------------------------------------
862
 
788
 
863
        mov     edi,[ebp+SKIN_HEADER.buttons]
789
        mov     edi,[ebp+SKIN_HEADER.buttons]
864
        add     edi,ebp
790
        add     edi,ebp
865
  .lp1: cmp     dword[edi],0
791
  .lp1: cmp     dword[edi],0
866
        je      .lp2
792
        je      .lp2
867
        mov     ebx,dword[edi+SKIN_BUTTONS.left-2]
793
        mov     ebx,dword[edi+SKIN_BUTTONS.left-2]
868
        mov     bx,[edi+SKIN_BUTTONS.width]
794
        mov     bx,[edi+SKIN_BUTTONS.width]
869
        mov     ecx,dword[edi+SKIN_BUTTONS.top-2]
795
        mov     ecx,dword[edi+SKIN_BUTTONS.top-2]
870
        mov     cx,[edi+SKIN_BUTTONS.height]
796
        mov     cx,[edi+SKIN_BUTTONS.height]
871
        add     ebx,(wnd4.x+wnd4.width)*65536
797
        add     ebx,(wnd4.x+wnd4.width)*65536
872
        add     ecx,wnd4.y*65536
798
        add     ecx,wnd4.y*65536
873
        dec     ebx
799
        dec     ebx
874
        dec     ecx
800
        dec     ecx
875
        mcall   8,,,0x40000000
801
        mcall   8,,,0x40000000
876
        add     edi,12
802
        add     edi,12
877
        jmp     .lp1
803
        jmp     .lp1
878
  .lp2:
804
  .lp2:
879
 
805
 
880
        mov     edi,[ebp+SKIN_HEADER.params]
806
        mov     edi,[ebp+SKIN_HEADER.params]
881
        add     edi,ebp
807
        add     edi,ebp
882
        mpack   ebx,wnd4.x+10,wnd4.y+10
808
        mpack   ebx,wnd4.x+10,wnd4.y+10
883
        add     bx,word[edi+SKIN_PARAMS.skin_height]
809
        add     bx,word[edi+SKIN_PARAMS.skin_height]
884
        mcall   4,,[dtp.work_text],window_text,window_text.size
810
        mcall   4,,[dtp.work_text],window_text,window_text.size
885
 
811
 
886
        mov     ecx,[edi+SKIN_PARAMS.skin_height]
812
        mov     ecx,[edi+SKIN_PARAMS.skin_height]
887
        shl     ecx,16
813
        shl     ecx,16
888
        add     ecx,(wnd4.y+8)*65536+10
814
        add     ecx,(wnd4.y+8)*65536+10
889
        mcall   13,
815
        mcall   13,
890
                   (wnd4.x+window_text.size*6+20)>,,[dtp.work_graph]
816
                   (wnd4.x+window_text.size*6+20)>,,[dtp.work_graph]
891
 
817
 
892
        add     ecx,25*65536+8
818
        add     ecx,25*65536+8
893
        mcall   8,
819
        mcall   8,
894
                  button_text.size*6+11>,,0,[dtp.work_button]
820
                  button_text.size*6+11>,,0,[dtp.work_button]
895
 
821
 
896
        shr     ecx,16
822
        shr     ecx,16
897
        mov     bx,cx
823
        mov     bx,cx
898
        add     ebx,0x00060006
824
        add     ebx,0x00060006
899
        mcall   4,,[dtp.work_button_text],button_text,button_text.size
825
        mcall   4,,[dtp.work_button_text],button_text,button_text.size
900
 
826
 
901
        ret
827
        ret
902
;---------------------------------------------------------------------
828
;---------------------------------------------------------------------
903
draw_PathShow:
829
draw_PathShow:
904
	pusha
830
	pusha
905
	mcall	13,<10,534>,<214,15>,0xffffff
831
	mcall	13,<10,534>,<214,15>,0xffffff
906
	mcall	13,<10,534>,<232,15>,0xffffff
832
	mcall	13,<10,534>,<232,15>,0xffffff
907
; draw for PathShow
833
; draw for PathShow
908
	push	dword PathShow_data_1
834
	push	dword PathShow_data_1
909
	call	[PathShow_draw]
835
	call	[PathShow_draw]
910
	
836
	
911
	push	dword PathShow_data_2
837
	push	dword PathShow_data_2
912
	call	[PathShow_draw]
838
	call	[PathShow_draw]
913
	popa
839
	popa
914
	ret
840
	ret
915
;---------------------------------------------------------------------
841
;---------------------------------------------------------------------
916
;   *********************************************
842
;   *********************************************
917
;   *******  WINDOW DEFINITIONS AND DRAW ********
843
;   *******  WINDOW DEFINITIONS AND DRAW ********
918
;   *********************************************
844
;   *********************************************
919
 
-
 
920
 
-
 
921
draw_window:
845
draw_window:
922
 
-
 
923
    mov  eax,12                    ; function 12:tell os about windowdraw
-
 
924
    mov  ebx,1                     ; 1, start of draw
-
 
925
    mcall
846
	mcall	12,1
926
 
-
 
927
    mov  eax,48
-
 
928
    mov  ebx,3
-
 
929
    mov  ecx,app_colours
847
	mcall	48,3,app_colours,10*4
930
    mov  edx,10*4
-
 
931
    mcall
848
	mcall	14
932
 
-
 
933
    mov  eax,14
-
 
934
    mcall
-
 
935
 
-
 
936
                                      ; DRAW WINDOW
849
; DRAW WINDOW
937
    mov  eax,0                     ; function 0 : define and draw window
850
	xor	eax,eax		; function 0 : define and draw window
938
    mov  ebx,110*65536+555         ; [x start] *65536 + [x size]
851
	xor	esi,esi
939
    mov  ecx,50*65536+275          ; [y start] *65536 + [y size]
-
 
940
    mov  edx,[w_work]              ; color of work area RRGGBB,8->color
852
	mov	edx,[w_work]	; color of work area RRGGBB,8->color
941
    or   edx,0x14000000
853
	or	edx,0x14000000
-
 
854
	mcall	,<110,555>,<50,275>,,,title
-
 
855
 
-
 
856
	mcall	9,procinfo,-1
-
 
857
	
942
    mov  edi,title                ; WINDOW LABEL
858
	mov	eax,[procinfo+70] ;status of window
-
 
859
	test	eax,100b
943
    mcall
860
	jne	.end
944
 
861
    
945
if lang eq ru
862
if lang eq ru
946
  load_w  = (5*2+6*9)
863
  load_w  = (5*2+6*9)
947
  save_w  = (5*2+6*9)
864
  save_w  = (5*2+6*9)
948
  flat_w  = (5*2+6*7)
865
  flat_w  = (5*2+6*7)
949
  apply_w = (5*2+6*9)
866
  apply_w = (5*2+6*9)
950
else
867
else
951
  load_w  = (5*2+6*6)
868
  load_w  = (5*2+6*6)
952
  save_w  = (5*2+6*8)
869
  save_w  = (5*2+6*8)
953
  flat_w  = (5*2+6*4)
870
  flat_w  = (5*2+6*4)
954
  apply_w = (5*2+6*7)
871
  apply_w = (5*2+6*7)
955
end if
872
end if
956
 
-
 
957
;    mov  eax,8                    ; FILENAME BUTTON
-
 
958
;    mov  ebx,5*65536+545
-
 
959
;    mov  ecx,212*65536+10
-
 
960
;    mov  edx,0x4000000B
-
 
961
;    mov  esi,[w_grab_button]       ; button color RRGGBB
873
 
962
;    mcall
-
 
963
 
-
 
964
    mov  eax,8                    ; LOAD BUTTON
874
; LOAD BUTTON
965
    mov  ebx,15*65536+load_w
875
;	mov  ebx,15*65536+load_w
966
    mov  ecx,(35+18*12)*65536+14
-
 
967
    mov  edx,12
876
;	mov  ecx,(35+18*12)*65536+14
968
    mov  esi,[w_work_button]
877
	mcall	8,<15,load_w>,<35+18*12,14>,12,[w_work_button]
969
    mcall
-
 
970
 
-
 
971
;   mov  eax,8                    ; SAVE BUTTON
878
; SAVE BUTTON
972
    add  ebx,(load_w+2)*65536-load_w+save_w
879
	add	ebx,(load_w+2)*65536-load_w+save_w
973
    inc  edx
880
	inc	edx
974
    mcall
881
	mcall
975
 
882
; 3D
976
;   mov  eax,8                    ; 3D
-
 
977
;   mov  ebx,15*65536+35
-
 
978
;   mov  ecx,(30+18*12)*65536+14
-
 
979
    mov  ebx,(340-t1.size*6-13)*65536+(5*2+6*4)
883
	mov	ebx,(340-t1.size*6-13)*65536+(5*2+6*4)
980
    inc  edx
884
	inc	edx
981
    mcall
885
	mcall
982
 
886
; FLAT
983
;   mov  eax,8                    ; FLAT
-
 
984
    add  ebx,(5*2+6*4+2)*65536-(5*2+6*4)+flat_w
887
	add	ebx,(5*2+6*4+2)*65536-(5*2+6*4)+flat_w
985
    inc  edx
888
	inc	edx
986
    mcall
889
	mcall
987
 
-
 
988
;   mov  eax,8                    ; APPLY BUTTON
890
; APPLY BUTTON
989
    add  ebx,(flat_w+6+2)*65536-flat_w+apply_w
891
	add	ebx,(flat_w+6+2)*65536-flat_w+apply_w
990
    inc  edx
892
	inc	edx
991
    mcall
893
	mcall
992
 
-
 
993
;   mov  eax,8                    ; LOAD SKIN BUTTON
894
; LOAD SKIN BUTTON
994
    mov  ebx,(336+(555-335)/2-t2.size*6/2)*65536+load_w
895
	mov	ebx,(336+(555-335)/2-t2.size*6/2)*65536+load_w
995
    inc  edx
896
	inc	edx
996
    mcall
897
	mcall
997
 
-
 
998
;   mov  eax,8                    ; APPLY SKIN BUTTON
898
; APPLY SKIN BUTTON
999
    add  ebx,(load_w+6+2)*65536-load_w+apply_w
899
	add	ebx,(load_w+6+2)*65536-load_w+apply_w
1000
    inc  edx
900
	inc	edx
1001
    mcall
901
	mcall
1002
 
-
 
1003
    mov  eax, 4
902
	
1004
    mov  ebx, (339-t1.size*6-12)*65536+(35+18*12+4)
903
	mov	ebx,(339-t1.size*6-12)*65536+(35+18*12+4)
1005
    mov  ecx, [w_work_button_text]
-
 
1006
    mov  edx, t1
-
 
1007
    mov  esi, t1.size
-
 
1008
    mcall
904
	mcall	4,,[w_work_button_text],t1,t1.size
1009
 
-
 
1010
    mov  ebx,(336+(555-335)/2-t2.size*6/2)*65536+(35+18*12+4)
905
	
1011
    mov  edx,t2
-
 
1012
    mov  esi,t2.size
906
	mov	ebx,(336+(555-335)/2-t2.size*6/2)*65536+(35+18*12+4)
1013
    mcall
-
 
1014
 
907
	mcall	,,,t2,t2.size
1015
    mov  ebx,(15+(load_w+save_w+2-t3.size*6)/2)*65536+(35+18*12+4)
-
 
1016
    mov  edx,t3
-
 
1017
    mov  esi,t3.size
-
 
1018
    mcall
-
 
1019
 
-
 
1020
;   mov  eax, 4
-
 
1021
;    mov  ebx, 277*65536+(30+18*12+4)
-
 
1022
;    mov  edx, t2
908
	
1023
;    mov  esi, t2.size
909
	mov	ebx,(15+(load_w+save_w+2-t3.size*6)/2)*65536+(35+18*12+4)
1024
;    mcall
910
	mcall	,,,t3,t3.size
1025
 
911
	
1026
    mov  eax,38                    ; R G B COLOR GLIDES
912
	mov	eax,38                    ; R G B COLOR GLIDES
1027
    mov  ebx,266*65536+285
913
	mov	ebx,266*65536+285
1028
    mov  ecx,30*65536+30
914
	mov	ecx,30*65536+30
1029
    mov  edx,0xff0000
915
	mov	edx,0xff0000
-
 
916
;----------------------------------- 
1030
  .newl:
917
.newl:
1031
    mcall
918
	mcall
1032
    pusha
919
	pusha
1033
    add  ebx,20*65536+20
920
	add	ebx,20*65536+20
1034
    shr  edx,8
921
	shr	edx,8
1035
    mcall
922
	mcall
1036
    add  ebx,20*65536+20
923
	add	ebx,20*65536+20
1037
    shr  edx,8
924
	shr	edx,8
1038
    mcall
925
	mcall
1039
    popa
926
	popa
1040
    sub  edx,0x020000
927
	sub	edx,0x020000
1041
    add  ecx,0x00010001
928
	add	ecx,0x00010001
1042
    cmp  ecx,158*65536+158
929
	cmp	ecx,158*65536+158
1043
    jnz  .newl
930
	jnz	.newl
1044
 
-
 
-
 
931
;-----------------------------------	
1045
    call draw_color
932
	call	draw_color
1046
 
933
	
1047
    mov  edx,31                    ; BUTTON ROW
934
	mov	edx,31                    ; BUTTON ROW
1048
    mov  ebx,15*65536+200
935
	mov	ebx,15*65536+200
1049
    mov  ecx,30*65536+14
936
	mov	ecx,30*65536+14
1050
    mov  esi,[w_work_button]
937
	mov	esi,[w_work_button]
1051
  newb:
938
 
1052
    mov  eax,8
939
	mov	eax,8
-
 
940
;-----------------------------------
-
 
941
.newb:
1053
    mcall
942
	mcall
1054
    add  ecx,18*65536
943
	add	ecx,18*65536
1055
    inc  edx
944
	inc	edx
1056
    cmp  edx,40
945
	cmp	edx,40
1057
    jbe  newb
946
	jbe	.newb
1058
 
-
 
-
 
947
;-----------------------------------	
1059
    mov  ebx,15*65536+34           ; ROW OF TEXTS
948
	mov	ebx,15*65536+34           ; ROW OF TEXTS
1060
    mov  ecx,[w_work_button_text]
949
	mov	ecx,[w_work_button_text]
1061
    mov  edx,text
950
	mov	edx,text
1062
    mov  esi,32
951
	mov	esi,32
1063
  newline:
952
 
1064
    mov  eax,4
953
	mov	eax,4
-
 
954
;-----------------------------------
-
 
955
.newline:
1065
    mcall
956
	mcall
1066
    add  ebx,18
957
	add	ebx,18
1067
    add  edx,32
958
	add	edx,32
1068
    cmp  [edx],byte 'x'
959
	cmp	[edx],byte 'x'
1069
    jne  newline
960
	jne	.newline
1070
 
-
 
-
 
961
;-----------------------------------
1071
    call draw_colours
962
	call	draw_colours
1072
 
-
 
1073
	call	draw_PathShow	
963
	call	draw_PathShow	
1074
	
-
 
1075
;    mcall 13,<5,546>,<212,11>,[w_work]
-
 
1076
;    mcall 13,<337,7>,<2,250>,[w_frame]
-
 
1077
;    shr   edx,1
-
 
1078
;    and   edx,0x007F7F7F
-
 
1079
;    mcall 38,<336,336>,<20,250>
-
 
1080
;    add   ebx,0x00080008
-
 
1081
;    mcall
-
 
1082
;    sub   ebx,0x00040004
-
 
1083
;    mcall ,,<0,255>
-
 
1084
;    mcall ,<5,550>,<211,211>
-
 
1085
;    add   ecx,0x000C000C
-
 
1086
;    mcall
-
 
1087
 
-
 
1088
;    call print_text
-
 
1089
 
-
 
1090
    cmp  dword[not_packed_area+SKIN_HEADER.ident],'SKIN'
964
	cmp	dword[not_packed_area+SKIN_HEADER.ident],'SKIN'
1091
    jne  @f
965
	jne	@f
1092
    call draw_skin
966
	call	draw_skin
1093
  @@:
967
@@:
1094
 
968
.end:
1095
    mov  eax,12                    ; function 12:tell os about windowdraw
-
 
1096
    mov  ebx,2                     ; 2, end of draw
-
 
1097
    mcall
969
	mcall	12,2
1098
 
-
 
1099
    ret
970
	ret
1100
 
-
 
1101
 
-
 
-
 
971
;---------------------------------------------------------------------
1102
; DATA AREA
972
; DATA AREA
1103
 
-
 
-
 
973
;---------------------------------------------------------------------
1104
lsz text,\
974
lsz text,\
1105
    ru,  ' €ŒŠ€ ŽŠ€                     ',\
975
    ru,  ' €ŒŠ€ ŽŠ€                     ',\
1106
    ru,  ' Ž‹Ž‘€ ‡€ƒŽ‹Ž‚Š€               ',\
976
    ru,  ' Ž‹Ž‘€ ‡€ƒŽ‹Ž‚Š€               ',\
1107
    ru,  ' ŠŽŠ€ € Ž‹Ž‘… ‡€ƒŽ‹Ž‚Š€     ',\
977
    ru,  ' ŠŽŠ€ € Ž‹Ž‘… ‡€ƒŽ‹Ž‚Š€     ',\
1108
    ru,  ' ’…Š‘’ € ŠŽŠ… € ‡€ƒŽ‹Ž‚Š…   ',\
978
    ru,  ' ’…Š‘’ € ŠŽŠ… € ‡€ƒŽ‹Ž‚Š…   ',\
1109
    ru,  ' ’…Š‘’ ‡€ƒŽ‹Ž‚ŽŠ€               ',\
979
    ru,  ' ’…Š‘’ ‡€ƒŽ‹Ž‚ŽŠ€               ',\
1110
    ru,  ' €Ž—€Ÿ Ž‹€‘’œ                ',\
980
    ru,  ' €Ž—€Ÿ Ž‹€‘’œ                ',\
1111
    ru,  ' ŠŽŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ       ',\
981
    ru,  ' ŠŽŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ       ',\
1112
    ru,  ' ’…Š‘’ € ŠŽŠ…                ',\
982
    ru,  ' ’…Š‘’ € ŠŽŠ…                ',\
1113
    ru,  ' ’…Š‘’ ‚ €Ž—…‰ Ž‹€‘’ˆ        ',\
983
    ru,  ' ’…Š‘’ ‚ €Ž—…‰ Ž‹€‘’ˆ        ',\
1114
    ru,  ' ƒ€”ˆŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ      ',\
984
    ru,  ' ƒ€”ˆŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ      ',\
1115
    ru,  'x',\
985
    ru,  'x',\
1116
    en,  ' WINDOW FRAME                   ',\
986
    en,  ' WINDOW FRAME                   ',\
1117
    en,  ' WINDOW GRAB BAR                ',\
987
    en,  ' WINDOW GRAB BAR                ',\
1118
    en,  ' WINDOW GRAB BUTTON             ',\
988
    en,  ' WINDOW GRAB BUTTON             ',\
1119
    en,  ' WINDOW GRAB BUTTON TEXT        ',\
989
    en,  ' WINDOW GRAB BUTTON TEXT        ',\
1120
    en,  ' WINDOW GRAB TITLE              ',\
990
    en,  ' WINDOW GRAB TITLE              ',\
1121
    en,  ' WINDOW WORK AREA               ',\
991
    en,  ' WINDOW WORK AREA               ',\
1122
    en,  ' WINDOW WORK AREA BUTTON        ',\
992
    en,  ' WINDOW WORK AREA BUTTON        ',\
1123
    en,  ' WINDOW WORK AREA BUTTON TEXT   ',\
993
    en,  ' WINDOW WORK AREA BUTTON TEXT   ',\
1124
    en,  ' WINDOW WORK AREA TEXT          ',\
994
    en,  ' WINDOW WORK AREA TEXT          ',\
1125
    en,  ' WINDOW WORK AREA GRAPH         ',\
995
    en,  ' WINDOW WORK AREA GRAPH         ',\
1126
    en,  'x',\
996
    en,  'x',\
1127
    et,  ' AKNA RAAM                      ',\
997
    et,  ' AKNA RAAM                      ',\
1128
    et,  ' AKNA HAARAMISE RIBA            ',\
998
    et,  ' AKNA HAARAMISE RIBA            ',\
1129
    et,  ' AKNA HAARAMISE NUPP            ',\
999
    et,  ' AKNA HAARAMISE NUPP            ',\
1130
    et,  ' AKNA HAARAMISE NUPU TEKST      ',\
1000
    et,  ' AKNA HAARAMISE NUPU TEKST      ',\
1131
    et,  ' AKNA HAARAMISE PEALKIRI        ',\
1001
    et,  ' AKNA HAARAMISE PEALKIRI        ',\
1132
    et,  ' AKNA TÖÖPIIRKOND               ',\
1002
    et,  ' AKNA TÖÖPIIRKOND               ',\
1133
    et,  ' AKNA TÖÖPIIRKONNA NUPP         ',\
1003
    et,  ' AKNA TÖÖPIIRKONNA NUPP         ',\
1134
    et,  ' AKNA TÖÖPIIRKONNA NUPPU TEKST  ',\
1004
    et,  ' AKNA TÖÖPIIRKONNA NUPPU TEKST  ',\
1135
    et,  ' AKNA TÖÖPIIRKONNA TEKST        ',\
1005
    et,  ' AKNA TÖÖPIIRKONNA TEKST        ',\
1136
    et,  ' AKNA TÖÖPIIRKONNA GRAAFIKA     ',\
1006
    et,  ' AKNA TÖÖPIIRKONNA GRAAFIKA     ',\
1137
    et,  'x'
1007
    et,  'x'
1138
 
1008
 
1139
lsz t1,\
1009
lsz t1,\
1140
    ru, '  3D   ‹Ž‘Šˆ…   ˆŒ…ˆ’œ ',\
1010
    ru, '  3D   ‹Ž‘Šˆ…   ˆŒ…ˆ’œ ',\
1141
    en, '  3D   FLAT    APPLY  ',\
1011
    en, '  3D   FLAT    APPLY  ',\
1142
    et, '  3D   LAME   KINNITA '
1012
    et, '  3D   LAME   KINNITA '
1143
 
1013
 
1144
lsz t2,\
1014
lsz t2,\
1145
    ru,  ' ‡€ƒ“‡ˆ’œ   ˆŒ…ˆ’œ ',\
1015
    ru,  ' ‡€ƒ“‡ˆ’œ   ˆŒ…ˆ’œ ',\
1146
    en,  '  LOAD     APPLY  ',\
1016
    en,  '  LOAD     APPLY  ',\
1147
    et,  '  LAADI   KINNITA '
1017
    et,  '  LAADI   KINNITA '
1148
 
1018
 
1149
lsz t3,\
1019
lsz t3,\
1150
    ru,  ' ‡€ƒ“‡ˆ’œ  ‘Ž•€ˆ’œ ',\
1020
    ru,  ' ‡€ƒ“‡ˆ’œ  ‘Ž•€ˆ’œ ',\
1151
    en,  '  LOAD     SAVE  ',\
1021
    en,  '  LOAD     SAVE  ',\
1152
    et,  ' LAADI  SALVESTA',\
1022
    et,  ' LAADI  SALVESTA',\
1153
 
1023
 
1154
lsz caption_text,\
1024
lsz caption_text,\
1155
    ru, '‡ £®«®¢®ª',\
1025
    ru, '‡ £®«®¢®ª',\
1156
    en, 'Caption',\
1026
    en, 'Caption',\
1157
    et, 'Pealkiri'
1027
    et, 'Pealkiri'
1158
 
1028
 
1159
sz  close_text,'x'
1029
sz  close_text,'x'
1160
 
1030
 
1161
lsz window_text,\
1031
lsz window_text,\
1162
    ru, '’¥ªáâ ¢ ®ª­¥',\
1032
    ru, '’¥ªáâ ¢ ®ª­¥',\
1163
    en, 'Window text',\
1033
    en, 'Window text',\
1164
    et, 'Akna tekst'
1034
    et, 'Akna tekst'
1165
 
1035
 
1166
lsz button_text,\
1036
lsz button_text,\
1167
    ru, '’¥ªáâ ­  ª­®¯ª¥',\
1037
    ru, '’¥ªáâ ­  ª­®¯ª¥',\
1168
    en, 'Button text',\
1038
    en, 'Button text',\
1169
    et, 'Nupu tekst'
1039
    et, 'Nupu tekst'
1170
 
1040
 
1171
;sz  default_skn, '/sys/DEFAULT.SKN',0
1041
;sz  default_skn, '/sys/DEFAULT.SKN',0
1172
 
1042
 
1173
if lang eq ru
1043
if lang eq ru
1174
  title db '€‘’Ž‰Š€ ŽŠŽ',0
1044
  title db '€‘’Ž‰Š€ ŽŠŽ',0
1175
else if lang eq et
1045
else if lang eq et
1176
  title db 'AKNA SEADED - VALI VÄRV JA VAJUTA OBJEKTILE',0
1046
  title db 'AKNA SEADED - VALI VÄRV JA VAJUTA OBJEKTILE',0
1177
else
1047
else
1178
  title db 'WINDOWS SETTINGS - DEFINE COLOR AND CLICK ON TARGET',0
1048
  title db 'WINDOWS SETTINGS - DEFINE COLOR AND CLICK ON TARGET',0
1179
end if
1049
end if
1180
 
1050
 
1181
 
1051
 
1182
color dd  0
1052
color dd  0
1183
 
1053
 
1184
;---------------------------------------------------------------------
1054
;---------------------------------------------------------------------
1185
l_libs_start:
1055
l_libs_start:
1186
 
1056
 
1187
library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
1057
library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
1188
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
1058
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
1189
 
1059
 
1190
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
1060
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
1191
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
1061
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
1192
 
1062
 
1193
end_l_libs:
1063
end_l_libs:
1194
;---------------------------------------------------------------------
1064
;---------------------------------------------------------------------
1195
system_dir_Boxlib	db '/sys/lib/box_lib.obj',0
1065
system_dir_Boxlib	db '/sys/lib/box_lib.obj',0
1196
system_dir_ProcLib	db '/sys/lib/proc_lib.obj',0
1066
system_dir_ProcLib	db '/sys/lib/proc_lib.obj',0
1197
 
1067
 
1198
head_f_i:
1068
head_f_i:
1199
head_f_l	db 'System error',0
1069
head_f_l	db 'System error',0
1200
 
1070
 
1201
err_message_found_lib1	db 'box_lib.obj - Not found!',0
1071
err_message_found_lib1	db 'box_lib.obj - Not found!',0
1202
err_message_found_lib2	db 'proc_lib.obj - Not found!',0
1072
err_message_found_lib2	db 'proc_lib.obj - Not found!',0
1203
 
1073
 
1204
err_message_import1	db 'box_lib.obj - Wrong import!',0
1074
err_message_import1	db 'box_lib.obj - Wrong import!',0
1205
err_message_import2	db 'proc_lib.obj - Wrong import!',0
1075
err_message_import2	db 'proc_lib.obj - Wrong import!',0
1206
 
1076
 
1207
;---------------------------------------------------------------------
1077
;---------------------------------------------------------------------
1208
align 4
1078
align 4
1209
ProcLib_import:
1079
ProcLib_import:
1210
OpenDialog_Init		dd aOpenDialog_Init
1080
OpenDialog_Init		dd aOpenDialog_Init
1211
OpenDialog_Start	dd aOpenDialog_Start
1081
OpenDialog_Start	dd aOpenDialog_Start
1212
;OpenDialog__Version	dd aOpenDialog_Version
1082
;OpenDialog__Version	dd aOpenDialog_Version
1213
        dd      0
1083
        dd      0
1214
        dd      0
1084
        dd      0
1215
aOpenDialog_Init	db 'OpenDialog_init',0
1085
aOpenDialog_Init	db 'OpenDialog_init',0
1216
aOpenDialog_Start	db 'OpenDialog_start',0
1086
aOpenDialog_Start	db 'OpenDialog_start',0
1217
;aOpenDialog_Version	db 'Version_OpenDialog',0
1087
;aOpenDialog_Version	db 'Version_OpenDialog',0
1218
;---------------------------------------------------------------------
1088
;---------------------------------------------------------------------
1219
align 4
1089
align 4
1220
Box_lib_import:	
1090
Box_lib_import:	
1221
;init_lib		dd a_init
1091
;init_lib		dd a_init
1222
;version_lib		dd a_version
1092
;version_lib		dd a_version
1223
 
1093
 
1224
 
1094
 
1225
;edit_box_draw		dd aEdit_box_draw
1095
;edit_box_draw		dd aEdit_box_draw
1226
;edit_box_key		dd aEdit_box_key
1096
;edit_box_key		dd aEdit_box_key
1227
;edit_box_mouse		dd aEdit_box_mouse
1097
;edit_box_mouse		dd aEdit_box_mouse
1228
;version_ed		dd aVersion_ed
1098
;version_ed		dd aVersion_ed
1229
 
1099
 
1230
;check_box_draw		dd aCheck_box_draw
1100
;check_box_draw		dd aCheck_box_draw
1231
;check_box_mouse	dd aCheck_box_mouse
1101
;check_box_mouse	dd aCheck_box_mouse
1232
;version_ch		dd aVersion_ch
1102
;version_ch		dd aVersion_ch
1233
 
1103
 
1234
;option_box_draw	dd aOption_box_draw
1104
;option_box_draw	dd aOption_box_draw
1235
;option_box_mouse	dd aOption_box_mouse
1105
;option_box_mouse	dd aOption_box_mouse
1236
;version_op		dd aVersion_op
1106
;version_op		dd aVersion_op
1237
 
1107
 
1238
;scrollbar_ver_draw	dd aScrollbar_ver_draw
1108
;scrollbar_ver_draw	dd aScrollbar_ver_draw
1239
;scrollbar_ver_mouse	dd aScrollbar_ver_mouse
1109
;scrollbar_ver_mouse	dd aScrollbar_ver_mouse
1240
;scrollbar_hor_draw	dd aScrollbar_hor_draw
1110
;scrollbar_hor_draw	dd aScrollbar_hor_draw
1241
;scrollbar_hor_mouse	dd aScrollbar_hor_mouse
1111
;scrollbar_hor_mouse	dd aScrollbar_hor_mouse
1242
;version_scrollbar	dd aVersion_scrollbar
1112
;version_scrollbar	dd aVersion_scrollbar
1243
 
1113
 
1244
;dinamic_button_draw	dd aDbutton_draw
1114
;dinamic_button_draw	dd aDbutton_draw
1245
;dinamic_button_mouse	dd aDbutton_mouse
1115
;dinamic_button_mouse	dd aDbutton_mouse
1246
;version_dbutton	dd aVersion_dbutton
1116
;version_dbutton	dd aVersion_dbutton
1247
 
1117
 
1248
;menu_bar_draw		dd aMenu_bar_draw
1118
;menu_bar_draw		dd aMenu_bar_draw
1249
;menu_bar_mouse		dd aMenu_bar_mouse
1119
;menu_bar_mouse		dd aMenu_bar_mouse
1250
;menu_bar_activate	dd aMenu_bar_activate
1120
;menu_bar_activate	dd aMenu_bar_activate
1251
;version_menu_bar	dd aVersion_menu_bar
1121
;version_menu_bar	dd aVersion_menu_bar
1252
 
1122
 
1253
;FileBrowser_draw	dd aFileBrowser_draw
1123
;FileBrowser_draw	dd aFileBrowser_draw
1254
;FileBrowser_mouse	dd aFileBrowser_mouse
1124
;FileBrowser_mouse	dd aFileBrowser_mouse
1255
;FileBrowser_key	dd aFileBrowser_key
1125
;FileBrowser_key	dd aFileBrowser_key
1256
;Version_FileBrowser	dd aVersion_FileBrowser
1126
;Version_FileBrowser	dd aVersion_FileBrowser
1257
 
1127
 
1258
PathShow_prepare	dd sz_PathShow_prepare
1128
PathShow_prepare	dd sz_PathShow_prepare
1259
PathShow_draw		dd sz_PathShow_draw
1129
PathShow_draw		dd sz_PathShow_draw
1260
;Version_path_show	dd szVersion_path_show
1130
;Version_path_show	dd szVersion_path_show
1261
			dd 0
1131
			dd 0
1262
			dd 0
1132
			dd 0
1263
 
1133
 
1264
;a_init			db 'lib_init',0
1134
;a_init			db 'lib_init',0
1265
;a_version		db 'version',0
1135
;a_version		db 'version',0
1266
 
1136
 
1267
;aEdit_box_draw		db 'edit_box',0
1137
;aEdit_box_draw		db 'edit_box',0
1268
;aEdit_box_key		db 'edit_box_key',0
1138
;aEdit_box_key		db 'edit_box_key',0
1269
;aEdit_box_mouse	db 'edit_box_mouse',0
1139
;aEdit_box_mouse	db 'edit_box_mouse',0
1270
;aVersion_ed		db 'version_ed',0
1140
;aVersion_ed		db 'version_ed',0
1271
 
1141
 
1272
;aCheck_box_draw	db 'check_box_draw',0
1142
;aCheck_box_draw	db 'check_box_draw',0
1273
;aCheck_box_mouse	db 'check_box_mouse',0
1143
;aCheck_box_mouse	db 'check_box_mouse',0
1274
;aVersion_ch		db 'version_ch',0
1144
;aVersion_ch		db 'version_ch',0
1275
 
1145
 
1276
;aOption_box_draw	db 'option_box_draw',0
1146
;aOption_box_draw	db 'option_box_draw',0
1277
;aOption_box_mouse	db 'option_box_mouse',0
1147
;aOption_box_mouse	db 'option_box_mouse',0
1278
;aVersion_op		db 'version_op',0
1148
;aVersion_op		db 'version_op',0
1279
 
1149
 
1280
;aScrollbar_ver_draw	db 'scrollbar_v_draw',0
1150
;aScrollbar_ver_draw	db 'scrollbar_v_draw',0
1281
;aScrollbar_ver_mouse	db 'scrollbar_v_mouse',0
1151
;aScrollbar_ver_mouse	db 'scrollbar_v_mouse',0
1282
;aScrollbar_hor_draw	db 'scrollbar_h_draw',0
1152
;aScrollbar_hor_draw	db 'scrollbar_h_draw',0
1283
;aScrollbar_hor_mouse	db 'scrollbar_h_mouse',0
1153
;aScrollbar_hor_mouse	db 'scrollbar_h_mouse',0
1284
;aVersion_scrollbar	db 'version_scrollbar',0
1154
;aVersion_scrollbar	db 'version_scrollbar',0
1285
 
1155
 
1286
;aDbutton_draw		db 'dbutton_draw',0
1156
;aDbutton_draw		db 'dbutton_draw',0
1287
;aDbutton_mouse		db 'dbutton_mouse',0
1157
;aDbutton_mouse		db 'dbutton_mouse',0
1288
;aVersion_dbutton	db 'version_dbutton',0
1158
;aVersion_dbutton	db 'version_dbutton',0
1289
 
1159
 
1290
;aMenu_bar_draw		db 'menu_bar_draw',0
1160
;aMenu_bar_draw		db 'menu_bar_draw',0
1291
;aMenu_bar_mouse		db 'menu_bar_mouse',0
1161
;aMenu_bar_mouse		db 'menu_bar_mouse',0
1292
;aMenu_bar_activate	db 'menu_bar_activate',0
1162
;aMenu_bar_activate	db 'menu_bar_activate',0
1293
;aVersion_menu_bar	db 'version_menu_bar',0
1163
;aVersion_menu_bar	db 'version_menu_bar',0
1294
 
1164
 
1295
;aFileBrowser_draw	db 'FileBrowser_draw',0
1165
;aFileBrowser_draw	db 'FileBrowser_draw',0
1296
;aFileBrowser_mouse	db 'FileBrowser_mouse',0
1166
;aFileBrowser_mouse	db 'FileBrowser_mouse',0
1297
;aFileBrowser_key	db 'FileBrowser_key',0
1167
;aFileBrowser_key	db 'FileBrowser_key',0
1298
;aVersion_FileBrowser	db 'version_FileBrowser',0
1168
;aVersion_FileBrowser	db 'version_FileBrowser',0
1299
 
1169
 
1300
sz_PathShow_prepare	db 'PathShow_prepare',0
1170
sz_PathShow_prepare	db 'PathShow_prepare',0
1301
sz_PathShow_draw	db 'PathShow_draw',0
1171
sz_PathShow_draw	db 'PathShow_draw',0
1302
;szVersion_path_show	db 'version_PathShow',0
1172
;szVersion_path_show	db 'version_PathShow',0
1303
;---------------------------------------------------------------------
1173
;---------------------------------------------------------------------
1304
PathShow_data_1:
1174
PathShow_data_1:
1305
.type			dd 0	;+0
1175
.type			dd 0	;+0
1306
.start_y		dw 217	;+4
1176
.start_y		dw 217	;+4
1307
.start_x		dw 12	;+6
1177
.start_x		dw 12	;+6
1308
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
1178
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
1309
.area_size_x		dw 530	;+10
1179
.area_size_x		dw 530	;+10
1310
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
1180
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
1311
.background_flag	dd 0	;+16
1181
.background_flag	dd 0	;+16
1312
.font_color		dd 0x0	;+20
1182
.font_color		dd 0x0	;+20
1313
.background_color	dd 0x0	;+24
1183
.background_color	dd 0x0	;+24
1314
.text_pointer		dd fname	;+28
1184
.text_pointer		dd fname	;+28
1315
.work_area_pointer	dd text_work_area	;+32
1185
.work_area_pointer	dd text_work_area	;+32
1316
.temp_text_length	dd 0	;+36
1186
.temp_text_length	dd 0	;+36
1317
;---------------------------------------------------------------------
1187
;---------------------------------------------------------------------
1318
PathShow_data_2:
1188
PathShow_data_2:
1319
.type			dd 0	;+0
1189
.type			dd 0	;+0
1320
.start_y		dw 235	;+4
1190
.start_y		dw 235	;+4
1321
.start_x		dw 12	;+6
1191
.start_x		dw 12	;+6
1322
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
1192
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
1323
.area_size_x		dw 530	;+10
1193
.area_size_x		dw 530	;+10
1324
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
1194
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
1325
.background_flag	dd 0	;+16
1195
.background_flag	dd 0	;+16
1326
.font_color		dd 0x0	;+20
1196
.font_color		dd 0x0	;+20
1327
.background_color	dd 0x0	;+24
1197
.background_color	dd 0x0	;+24
1328
.text_pointer		dd skin_info	;+28
1198
.text_pointer		dd skin_info	;+28
1329
.work_area_pointer	dd text_work_area2	;+32
1199
.work_area_pointer	dd text_work_area2	;+32
1330
.temp_text_length	dd 0	;+36
1200
.temp_text_length	dd 0	;+36
1331
;---------------------------------------------------------------------
1201
;---------------------------------------------------------------------
1332
OpenDialog_data:
1202
OpenDialog_data:
1333
.type			dd 0
1203
.type			dd 0
1334
.procinfo		dd procinfo	;+4
1204
.procinfo		dd procinfo	;+4
1335
.com_area_name		dd communication_area_name	;+8
1205
.com_area_name		dd communication_area_name	;+8
1336
.com_area		dd 0	;+12
1206
.com_area		dd 0	;+12
1337
.opendir_pach		dd temp_dir_pach	;+16
1207
.opendir_pach		dd temp_dir_pach	;+16
1338
.dir_default_pach	dd communication_area_default_pach	;+20
1208
.dir_default_pach	dd communication_area_default_pach	;+20
1339
.start_path		dd open_dialog_path	;+24
1209
.start_path		dd open_dialog_path	;+24
1340
.draw_window		dd draw_window	;+28
1210
.draw_window		dd draw_window	;+28
1341
.status			dd 0	;+32
1211
.status			dd 0	;+32
1342
.openfile_pach 		dd fname	;+36
1212
.openfile_pach 		dd fname	;+36
1343
.filename_area		dd filename_area	;+40
1213
.filename_area		dd filename_area	;+40
1344
.filter_area		dd Filter
1214
.filter_area		dd Filter
1345
.x:
1215
.x:
1346
.x_size			dw 420 ;+48 ; Window X size
1216
.x_size			dw 420 ;+48 ; Window X size
1347
.x_start		dw 10 ;+50 ; Window X position
1217
.x_start		dw 10 ;+50 ; Window X position
1348
.y:
1218
.y:
1349
.y_size			dw 320 ;+52 ; Window y size
1219
.y_size			dw 320 ;+52 ; Window y size
1350
.y_start		dw 10 ;+54 ; Window Y position
1220
.y_start		dw 10 ;+54 ; Window Y position
1351
 
1221
 
1352
OpenDialog_data2:
1222
OpenDialog_data2:
1353
.type			dd 0
1223
.type			dd 0
1354
.procinfo		dd procinfo	;+4
1224
.procinfo		dd procinfo	;+4
1355
.com_area_name		dd communication_area_name2	;+8
1225
.com_area_name		dd communication_area_name2	;+8
1356
.com_area		dd 0	;+12
1226
.com_area		dd 0	;+12
1357
.opendir_pach		dd temp_dir_pach2	;+16
1227
.opendir_pach		dd temp_dir_pach2	;+16
1358
.dir_default_pach	dd communication_area_default_pach	;+20
1228
.dir_default_pach	dd communication_area_default_pach	;+20
1359
.start_path		dd open_dialog_path	;+24
1229
.start_path		dd open_dialog_path	;+24
1360
.draw_window		dd draw_window	;+28
1230
.draw_window		dd draw_window	;+28
1361
.status			dd 0	;+32
1231
.status			dd 0	;+32
1362
.openfile_pach 		dd skin_info	;+36
1232
.openfile_pach 		dd skin_info	;+36
1363
.filename_area		dd filename_area2	;+40
1233
.filename_area		dd filename_area2	;+40
1364
.filter_area		dd Filter2
1234
.filter_area		dd Filter2
1365
.x:
1235
.x:
1366
.x_size			dw 420 ;+48 ; Window X size
1236
.x_size			dw 420 ;+48 ; Window X size
1367
.x_start		dw 10 ;+50 ; Window X position
1237
.x_start		dw 10 ;+50 ; Window X position
1368
.y:
1238
.y:
1369
.y_size			dw 320 ;+52 ; Window y size
1239
.y_size			dw 320 ;+52 ; Window y size
1370
.y_start		dw 10 ;+54 ; Window Y position
1240
.y_start		dw 10 ;+54 ; Window Y position
1371
 
1241
 
1372
communication_area_name2:
1242
communication_area_name2:
1373
	db 'FFFFFFFF_open_dialog',0
1243
	db 'FFFFFFFF_open_dialog',0
1374
 
1244
 
1375
communication_area_name:
1245
communication_area_name:
1376
	db 'FFFFFFFF_open_dialog2',0
1246
	db 'FFFFFFFF_open_dialog2',0
1377
open_dialog_path:
1247
open_dialog_path:
1378
if __nightbuild eq yes
1248
if __nightbuild eq yes
1379
    db '/sys/MANAGERS/opendial',0
1249
    db '/sys/MANAGERS/opendial',0
1380
else
1250
else
1381
    db '/sys/File Managers/opendial',0
1251
    db '/sys/File Managers/opendial',0
1382
end if
1252
end if
1383
communication_area_default_pach:
1253
communication_area_default_pach:
1384
	db '/sys',0
1254
	db '/sys',0
1385
 
1255
 
1386
Filter:
1256
Filter:
1387
dd	Filter.end - Filter
1257
dd	Filter.end - Filter
1388
.1:
1258
.1:
1389
db	'DTP',0
1259
db	'DTP',0
1390
.end:
1260
.end:
1391
db	0
1261
db	0
1392
 
1262
 
1393
Filter2:
1263
Filter2:
1394
dd	Filter.end - Filter
1264
dd	Filter.end - Filter
1395
.1:
1265
.1:
1396
db	'SKN',0
1266
db	'SKN',0
1397
.end:
1267
.end:
1398
db	0
1268
db	0
1399
 
1269
 
1400
start_temp_file_name:	db 'default.dtp',0
1270
start_temp_file_name:	db 'default.dtp',0
1401
 
1271
 
1402
default_skin:
1272
default_skin:
1403
	db '/sys/default.skn',0
1273
	db '/sys/default.skn',0
1404
default_dtp:
1274
default_dtp:
1405
	db '/sys/default.dtp',0
1275
	db '/sys/default.dtp',0
1406
;---------------------------------------------------------------------
1276
;---------------------------------------------------------------------
1407
IncludeIGlobals
1277
IncludeIGlobals
1408
 
1278
 
1409
I_END:
1279
I_END:
1410
 
1280
 
1411
IncludeUGlobals
1281
IncludeUGlobals
1412
 
1282
 
1413
read_info:
1283
read_info:
1414
  .mode         dd ?            ; read
1284
  .mode         dd ?            ; read
1415
  .start_block  dd ?            ; first block
1285
  .start_block  dd ?            ; first block
1416
  .blocks       dd ?            ; 512 bytes
1286
  .blocks       dd ?            ; 512 bytes
1417
  .address      dd ?
1287
  .address      dd ?
1418
  .workarea     dd ?
1288
  .workarea     dd ?
1419
fname rb 4096            ; filename
1289
fname rb 4096            ; filename
1420
 
1290
 
1421
virtual at read_info
1291
virtual at read_info
1422
 write_info:
1292
 write_info:
1423
  .mode         dd ?
1293
  .mode         dd ?
1424
  rd 1
1294
  rd 1
1425
  .bytes2write  dd ?
1295
  .bytes2write  dd ?
1426
  .address      dd ?
1296
  .address      dd ?
1427
  .workarea     dd ?
1297
  .workarea     dd ?
1428
end virtual
1298
end virtual
1429
 
1299
 
1430
read_info2:
1300
read_info2:
1431
  .mode         dd ?            ; read
1301
  .mode         dd ?            ; read
1432
  .start_block  dd ?            ; first block
1302
  .start_block  dd ?            ; first block
1433
  .blocks       dd ?            ; 512 bytes
1303
  .blocks       dd ?            ; 512 bytes
1434
  .address      dd ?
1304
  .address      dd ?
1435
  .workarea     dd ?
1305
  .workarea     dd ?
1436
skin_info rb 4096
1306
skin_info rb 4096
1437
 
1307
 
1438
;param   rb      257
1308
;param   rb      257
1439
 
1309
 
1440
align 4
1310
align 4
1441
app_colours:
1311
app_colours:
1442
 
1312
 
1443
w_frame              dd ?
1313
w_frame              dd ?
1444
w_grab               dd ?
1314
w_grab               dd ?
1445
w_grab_button        dd ?
1315
w_grab_button        dd ?
1446
w_grab_button_text   dd ?
1316
w_grab_button_text   dd ?
1447
w_grab_text          dd ?
1317
w_grab_text          dd ?
1448
w_work               dd ?
1318
w_work               dd ?
1449
w_work_button        dd ?
1319
w_work_button        dd ?
1450
w_work_button_text   dd ?
1320
w_work_button_text   dd ?
1451
w_work_text          dd ?
1321
w_work_text          dd ?
1452
w_work_graph         dd ?
1322
w_work_graph         dd ?
1453
 
1323
 
1454
color_table:
1324
color_table:
1455
  times 10 dd ?
1325
  times 10 dd ?
1456
;---------------------------------------------------------------------
1326
;---------------------------------------------------------------------
1457
align 4
1327
align 4
1458
cur_dir_path:
1328
cur_dir_path:
1459
	rb 4096
1329
	rb 4096
1460
;---------------------------------------------------------------------
1330
;---------------------------------------------------------------------
1461
library_path:
1331
library_path:
1462
	rb 4096
1332
	rb 4096
1463
;---------------------------------------------------------------------
1333
;---------------------------------------------------------------------
1464
;fname_buf:
1334
;fname_buf:
1465
;	rb 4096
1335
;	rb 4096
1466
;---------------------------------------------------------------------
1336
;---------------------------------------------------------------------
1467
temp_dir_pach:
1337
temp_dir_pach:
1468
	rb 4096
1338
	rb 4096
1469
;---------------------------------------------------------------------
1339
;---------------------------------------------------------------------
1470
temp_dir_pach2:
1340
temp_dir_pach2:
1471
	rb 4096
1341
	rb 4096
1472
;---------------------------------------------------------------------
1342
;---------------------------------------------------------------------
1473
text_work_area:
1343
text_work_area:
1474
	rb 1024
1344
	rb 1024
1475
;---------------------------------------------------------------------
1345
;---------------------------------------------------------------------
1476
text_work_area2:
1346
text_work_area2:
1477
	rb 1024
1347
	rb 1024
1478
;---------------------------------------------------------------------
1348
;---------------------------------------------------------------------
1479
procinfo:
1349
procinfo:
1480
	rb 1024
1350
	rb 1024
1481
;---------------------------------------------------------------------
1351
;---------------------------------------------------------------------
1482
filename_area:
1352
filename_area:
1483
	rb 256
1353
	rb 256
1484
;---------------------------------------------------------------------
1354
;---------------------------------------------------------------------
1485
filename_area2:
1355
filename_area2:
1486
	rb 256
1356
	rb 256
1487
;---------------------------------------------------------------------
1357
;---------------------------------------------------------------------
1488
	rb 4096
1358
	rb 4096
1489
stacktop:
1359
stacktop:
1490
;---------------------------------------------------------------------
1360
;---------------------------------------------------------------------
1491
file_load_area:	; old 0x10000
1361
file_load_area:	; old 0x10000
1492
	rb 32*1024
1362
	rb 32*1024
1493
;---------------------------------------------------------------------
1363
;---------------------------------------------------------------------
1494
not_packed_area:	; old 0x18000
1364
not_packed_area:	; old 0x18000
1495
	rb 32*1024
1365
	rb 32*1024
1496
;---------------------------------------------------------------------
1366
;---------------------------------------------------------------------
1497
unpack_area:	; old 0x20000
1367
unpack_area:	; old 0x20000
1498
	rb 32*1024
1368
	rb 32*1024
1499
;---------------------------------------------------------------------
1369
;---------------------------------------------------------------------
1500
i_end:
1370
i_end:
1501
>
1371
>
1502
>
1372
>