Subversion Repositories Kolibri OS

Rev

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

Rev 31 Rev 51
1
;
1
;
2
;    UNIFORM WINDOW COLOURS
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
;
8
;
8
 
9
 
9
;******************************************************************************
10
;******************************************************************************
10
   use32
11
   use32
11
   org     0
12
   org     0
12
   db      'MENUET01'  ; identifier
13
   db      'MENUET01'  ; identifier
13
   dd      1           ; header version
14
   dd      1           ; header version
14
   dd      START       ; start address
15
   dd      START       ; start address
15
   dd      I_END       ; file size
16
   dd      I_END       ; file size
16
   dd      20000h      ; memory
17
   dd      28000h      ; memory
17
   dd      10000h      ; stack pointer (0x10000+ - work area for os)
18
   dd      10000h      ; stack pointer (0x10000+ - work area for os)
18
   dd      0;,0        ; parameters, reserved
19
   dd      0;,0        ; parameters, reserved
19
 
20
 
20
  include 'lang.inc' 
21
  include 'lang.inc'
21
  include 'macros.inc'
22
  include 'macros.inc'
22
;******************************************************************************
23
;******************************************************************************
23
 
24
 
-
 
25
 
-
 
26
struct SKIN_HEADER
-
 
27
  .ident   dd ?
-
 
28
  .version dd ?
-
 
29
  .params  dd ?
-
 
30
  .buttons dd ?
-
 
31
  .bitmaps dd ?
-
 
32
ends
-
 
33
 
-
 
34
struct SKIN_PARAMS
-
 
35
  .skin_height    dd ?
-
 
36
  .margin.right   dw ?
-
 
37
  .margin.left    dw ?
-
 
38
  .margin.bottom  dw ?
-
 
39
  .margin.top     dw ?
-
 
40
  .colors.inner   dd ?
-
 
41
  .colors.outer   dd ?
-
 
42
  .colors.frame   dd ?
-
 
43
  .colors_1.inner dd ?
-
 
44
  .colors_1.outer dd ?
-
 
45
  .colors_1.frame dd ?
-
 
46
  .dtp.size       dd ?
-
 
47
  .dtp.data       db 40 dup (?)
-
 
48
ends
-
 
49
 
-
 
50
struct SKIN_BUTTONS
-
 
51
  .type     dd ?
-
 
52
  .pos:
-
 
53
    .left   dw ?
-
 
54
    .top    dw ?
-
 
55
  .size:
-
 
56
    .width  dw ?
-
 
57
    .height dw ?
-
 
58
ends
-
 
59
 
-
 
60
struct SKIN_BITMAPS
-
 
61
  .kind  dw ?
-
 
62
  .type  dw ?
-
 
63
  .data  dd ?
-
 
64
ends
24
 
65
 
25
 
66
 
26
START:                          ; start of execution
67
START:                          ; start of execution
27
 
68
 
28
    mov  eax,48                 ; get current colors
69
    mov  eax,48                 ; get current colors
29
    mov  ebx,3
70
    mov  ebx,3
30
    mov  ecx,color_table
71
    mov  ecx,color_table
31
    mov  edx,4*10
72
    mov  edx,4*10
32
    int  0x40
73
    int  0x40
33
 
74
 
34
    cld
75
    cld
35
    mov  esi, default_file
76
    mov  esi,default_skn
36
    mov  edi, fname
77
    mov  edi,fname
37
    mov  ecx, default_file.size
78
    mov  ecx,default_skn.size
38
    rep  movsb
79
    rep  movsb
-
 
80
    mov  [skin_info.fname],0
-
 
81
    mov  [skin_info.workarea],0x10000
-
 
82
    call load_skin_file
39
 
-
 
40
    mov  [read_info.address],     color_table
-
 
41
    mov  [read_info.workarea],    0x10000
-
 
42
    mov  [read_info.start_block], 0
83
 
43
 
84
 
44
red:
85
red:
45
    call draw_window            ; at first, draw the window
86
    call draw_window            ; at first, draw the window
46
 
87
 
47
still:
88
still:
48
 
89
 
49
    mov  eax,23                 ; wait here for event
90
    mov  eax,23                 ; wait here for event
50
    mov  ebx,5
91
    mov  ebx,5
51
    int  0x40
92
    int  0x40
52
 
93
 
53
    dec  eax                    ; redraw request ?
94
    dec  eax                    ; redraw request ?
54
    jz   red
95
    jz   red
55
    dec  eax                    ; key in buffer ?
96
    dec  eax                    ; key in buffer ?
56
    jz   key
97
    jz   key
57
    dec  eax                    ; button in buffer ?
98
    dec  eax                    ; button in buffer ?
58
    jz   button
99
    jz   button
59
 
100
 
60
    call draw_cursor
101
    call draw_cursor
61
 
102
 
62
    jmp  still
103
    jmp  still
63
 
104
 
64
 
105
 
65
  key:                          ; key
106
  key:                          ; key
66
    mov  eax,2                  ; just read it and ignore
107
    mov  eax,2                  ; just read it and ignore
67
    int  0x40
108
    int  0x40
68
    jmp  still
109
    jmp  still
69
 
110
 
70
  button:                       ; button
111
  button:                       ; button
71
    mov  eax,17                 ; get id
112
    mov  eax,17                 ; get id
72
    int  0x40
113
    int  0x40
-
 
114
 
-
 
115
    cmp  ah,11                  ; read string
-
 
116
    jne  no_string
-
 
117
    call read_string
-
 
118
    jmp  still
-
 
119
  no_string:
-
 
120
 
-
 
121
    cmp  ah,12                  ; load file
-
 
122
    jne  no_load
-
 
123
    call load_file
-
 
124
    call draw_window
-
 
125
    jmp  still
-
 
126
  no_load:
-
 
127
 
-
 
128
    cmp  ah,13                  ; save file
-
 
129
    jne  no_save
-
 
130
    call save_file
-
 
131
    jmp  still
-
 
132
  no_save:
73
 
133
 
74
    cmp  ah,14                  ; set 3d buttons
134
    cmp  ah,14                  ; set 3d buttons
75
    jne  no_3d
135
    jne  no_3d
76
    mov  eax,48
136
    mov  eax,48
77
    mov  ebx,1
137
    mov  ebx,1
78
    mov  ecx,1
138
    mov  ecx,1
79
    int  0x40
139
    int  0x40
80
    mov  eax,48
140
    mov  eax,48
81
    mov  ebx,0
141
    mov  ebx,0
82
    mov  ecx,0
142
    mov  ecx,0
83
    int  0x40
143
    int  0x40
84
    jmp  still
144
    jmp  still
85
   no_3d:
145
   no_3d:
86
 
146
 
87
    cmp  ah,15                  ; set flat buttons
147
    cmp  ah,15                  ; set flat buttons
88
    jne  no_flat
148
    jne  no_flat
89
    mcall 48, 1, 0
149
    mcall 48, 1, 0
90
    mcall 48, 0, 0
150
    mcall 48, 0, 0
91
    jmp  still
151
    jmp  still
92
  no_flat:
152
  no_flat:
93
 
153
 
94
    cmp  ah,51      ; apply
154
    cmp  ah,16                  ; apply
-
 
155
    jne  no_apply
95
    jne  no_apply
156
  apply_direct:
96
    mov  eax,48
157
    mov  eax,48
97
    mov  ebx,2
158
    mov  ebx,2
98
    mov  ecx,color_table
159
    mov  ecx,color_table
99
    mov  edx,10*4
160
    mov  edx,10*4
100
    int  0x40
161
    int  0x40
101
    mov  eax,48
162
    mov  eax,48
102
    mov  ebx,0
163
    mov  ebx,0
103
    mov  ecx,0
164
    mov  ecx,0
104
    int  0x40
165
    int  0x40
105
  no_apply:
166
  no_apply:
-
 
167
 
-
 
168
    cmp  ah,17                  ; load skin file
-
 
169
    jne  no_load_skin
-
 
170
    call load_skin_file
-
 
171
    call draw_window
-
 
172
    jmp  still
-
 
173
  no_load_skin:
-
 
174
 
-
 
175
    cmp   ah,18                 ; apply skin
-
 
176
    jne   no_apply_skin
-
 
177
    cmp   [skin_info.fname],0
-
 
178
    je    no_apply_skin
-
 
179
    mcall 48,8,skin_info
-
 
180
    call  draw_window
-
 
181
    jmp   still
-
 
182
  no_apply_skin:
106
 
183
 
107
    cmp  ah,31
184
    cmp  ah,31
108
    jb   no_new_colour
185
    jb   no_new_colour
109
    cmp  ah,41
186
    cmp  ah,41
110
    jg   no_new_colour
187
    jg   no_new_colour
111
    shr  eax,8
188
    shr  eax,8
112
    sub  eax,31
189
    sub  eax,31
113
    shl  eax,2
190
    shl  eax,2
114
    add  eax,color_table
191
    add  eax,color_table
115
    mov  ebx,[color]
192
    mov  ebx,[color]
116
    mov  [eax],ebx
193
    mov  [eax],ebx
117
    call draw_colours
194
    call draw_colours
118
    jmp  still
195
    jmp  still
119
  no_new_colour:
196
  no_new_colour:
120
 
197
 
121
     cmp  ah,1                   ; terminate
198
     cmp  ah,1                   ; terminate
122
     jnz  noid1
199
     jnz  noid1
123
    mov  eax,-1
200
    mov  eax,-1
124
    int  0x40
201
    int  0x40
125
  noid1:
202
  noid1:
126
 
-
 
127
    cmp  ah,11                  ; read string
-
 
128
    jne  no_string
-
 
129
    call read_string
-
 
130
    jmp  still
-
 
131
  no_string:
-
 
132
 
-
 
133
    cmp  ah,12                  ; load file
-
 
134
    jne  no_load
-
 
135
    call load_file
-
 
136
    call draw_window
-
 
137
    jmp  still
-
 
138
  no_load:
-
 
139
 
-
 
140
    cmp  ah,13                  ; save file
-
 
141
    jne  no_save
-
 
142
    call save_file
-
 
143
    jmp  still
-
 
144
  no_save:
-
 
145
 
203
 
146
    jmp  still
204
    jmp  still
147
 
205
 
148
 
206
 
149
draw_cursor:
207
draw_cursor:
150
 
208
 
151
    pusha
209
    pusha
152
    mov  eax,37
210
    mov  eax,37
153
    mov  ebx,2
211
    mov  ebx,2
154
    int  0x40
212
    int  0x40
155
 
213
 
156
    cmp  eax,0
214
    cmp  eax,0
157
    jne  dc1
215
    jne  dc1
158
    popa
216
    popa
159
    ret
217
    ret
160
 
218
 
161
 dc1:
219
 dc1:
162
 
220
 
163
    mov  eax,37
221
    mov  eax,37
164
    mov  ebx,1
222
    mov  ebx,1
165
    int  0x40
223
    int  0x40
166
 
224
 
167
    mov  ebx,eax
225
    mov  ebx,eax
168
    shr  ebx,16
226
    shr  ebx,16
169
    mov  ecx,eax
227
    mov  ecx,eax
170
    and  ecx,0xffff
228
    and  ecx,0xffff
171
 
229
 
172
    cmp  ecx,32
230
    cmp  ecx,32
173
    jbe  no_color
231
    jbe  no_color
174
    cmp  ebx,32
232
    cmp  ebx,32
175
    jbe  no_color
233
    jbe  no_color
176
 
234
 
177
    cmp  ebx,280           ; CHANGE COLOR
235
    cmp  ebx,266           ; CHANGE COLOR
178
    jb   no_color
236
    jb   no_color
179
    cmp  ebx,280+20*3
237
    cmp  ebx,266+20*3
180
    jg   no_color
238
    jg   no_color
181
 
239
 
182
    cmp  ecx,30+128
240
    cmp  ecx,30+128
183
    jge  no_color
241
    jge  no_color
184
    cmp  ecx,30
242
    cmp  ecx,30
185
    jb   no_color
243
    jb   no_color
186
 
244
 
187
    sub  ebx,280
245
    sub  ebx,266
188
    mov  eax,ebx
246
    mov  eax,ebx
189
    cdq
247
    cdq
190
    mov  ebx,20
248
    mov  ebx,20
191
    div  ebx
249
    div  ebx
192
    mov  ebx,2
250
    mov  ebx,2
193
    sub  ebx,eax
251
    sub  ebx,eax
194
 
252
 
195
    add  ecx,-30
253
    add  ecx,-30
196
    not  ecx
254
    not  ecx
197
    shl  ecx,1
255
    shl  ecx,1
198
 
256
 
199
    mov  byte [ebx+color],cl
257
    mov  byte [ebx+color],cl
200
    call draw_color
258
    call draw_color
201
 
259
 
202
    popa
260
    popa
203
    ret
261
    ret
204
 
262
 
205
  no_color:
263
  no_color:
206
 
264
 
207
    popa
265
    popa
208
    ret
266
    ret
209
 
267
 
210
 
268
 
211
load_file:
269
load_file:
212
    pushad
270
    pushad
213
 
271
 
214
    mov   [read_info.mode],   0
272
    mov   [read_info.mode]       ,0
-
 
273
    mov   [read_info.start_block],0
215
    mov   [read_info.blocks], 1
274
    mov   [read_info.blocks]     ,1
-
 
275
    mov   [read_info.address]    ,color_table
-
 
276
    mov   [read_info.workarea]   ,0x10000
216
    mcall 58, read_info
277
    mcall 58, read_info
-
 
278
 
-
 
279
    popad
-
 
280
ret
-
 
281
 
-
 
282
load_skin_file:
-
 
283
    pushad
-
 
284
 
-
 
285
    mov   [read_info.mode]       ,0
-
 
286
    mov   [read_info.start_block],0
-
 
287
    mov   [read_info.blocks]     ,64
-
 
288
    mov   [read_info.address]    ,0x20000
217
 
289
    mov   [read_info.workarea]   ,0x10000
-
 
290
    mcall 58, read_info
-
 
291
 
-
 
292
    cmp   dword[0x20000+SKIN_HEADER.ident],'SKIN'
-
 
293
    jne   @f
-
 
294
 
-
 
295
    mov   esi,fname
-
 
296
    mov   edi,skin_info.fname
-
 
297
    mov   ecx,257
-
 
298
    rep   movsb
-
 
299
 
-
 
300
    mov   esi,0x20000
-
 
301
    mov   edi,0x18000
-
 
302
    mov   ecx,0x8000/4
-
 
303
    rep   movsd
-
 
304
 
-
 
305
    mov   ebp,0x18000
-
 
306
    mov   esi,[ebp+SKIN_HEADER.params]
-
 
307
    add   esi,ebp
-
 
308
    lea   esi,[esi+SKIN_PARAMS.dtp.data]
-
 
309
    mov   edi,color_table
-
 
310
    mov   ecx,10
-
 
311
    rep   movsd
218
    call  draw_colours
312
  @@:
219
 
313
 
220
    popad
314
    popad
221
ret
315
ret
222
 
316
 
223
 
317
 
224
save_file:
318
save_file:
225
    pushad
319
    pushad
226
 
320
 
227
    mov   [write_info.mode],        1
321
    mov   [write_info.mode]       ,1
228
    mov   [write_info.bytes2write], 10*4
322
    mov   [write_info.bytes2write],10*4
-
 
323
    mov   [write_info.address]    ,color_table
-
 
324
    mov   [write_info.workarea]   ,0x10000
229
    mcall 58, write_info
325
    mcall 58, write_info
230
 
326
 
231
    popad
327
    popad
232
ret
328
ret
233
 
329
 
234
 
330
 
235
read_string:
331
read_string:
236
 
332
 
237
    pusha
333
    pusha
238
 
334
 
239
    mov  edi,fname
335
    mov  edi,fname
240
    mov  al,'_'
336
    mov  al,'_'
241
    mov  ecx,54
337
    mov  ecx,87
242
    cld
338
    cld
243
    rep  stosb
339
    rep  stosb
244
 
340
 
245
    call print_text
341
    call print_text
246
 
342
 
247
    mov  edi,fname
343
    mov  edi,fname
248
 
344
 
249
  f11:
345
  f11:
250
    mov  eax,10
346
    mov  eax,10
251
    int  0x40
347
    int  0x40
252
    cmp  eax,2
348
    cmp  eax,2
253
    jne  read_done
349
    jne  read_done
254
    mov  eax,2
350
    mov  eax,2
255
    int  0x40
351
    int  0x40
256
    shr  eax,8
352
    shr  eax,8
257
    cmp  eax,13
353
    cmp  eax,13
258
    je   read_done
354
    je   read_done
259
    cmp  eax,8
355
    cmp  eax,8
260
    jne  nobsl
356
    jne  nobsl
261
    cmp  edi,fname
357
    cmp  edi,fname
262
    je   f11
358
    je   f11
263
    dec  edi
359
    dec  edi
264
    mov  [edi],byte '_'
360
    mov  [edi],byte '_'
265
    call print_text
361
    call print_text
266
    jmp  f11
362
    jmp  f11
267
   nobsl:
363
   nobsl:
268
    mov  [edi],al
364
    mov  [edi],al
269
 
365
 
270
    call print_text
366
    call print_text
271
 
367
 
272
    inc  edi
368
    inc  edi
273
    cmp  edi, fname+54
369
    cmp  edi, fname+87
274
    jne  f11
370
    jne  f11
275
 
371
 
276
  read_done:
372
  read_done:
277
 
373
 
278
    mov  ecx, fname
374
    mov  ecx, fname
279
    add  ecx, 55
375
    add  ecx, 88
280
    sub  ecx, edi
376
    sub  ecx, edi
281
    mov  eax, 0
377
    mov  eax, 0
282
    cld
378
    cld
283
    rep  stosb
379
    rep  stosb
284
 
380
 
285
    call print_text
381
    call print_text
286
 
382
 
287
    popa
383
    popa
288
 
384
 
289
    ret
385
    ret
290
 
386
 
291
 
387
 
292
print_text:
388
print_text:
293
    pushad
389
    pushad
294
 
390
 
295
    mpack ebx, 16, 6*54+4
391
    mpack ebx,15,6*87+4
296
    mpack ecx, 234, 10
392
    mpack ecx,(30+18*10+2),11
297
    mcall 13, , , [w_work]
393
    mcall 13,,,[w_work]
298
 
394
 
299
    mpack ebx, 17, 235
395
    mpack ebx,17,(30+18*10+4)
300
    mcall 4, , [w_work_text], fname, 54
396
    mcall 4,,[w_work_text],fname,87
301
 
397
 
302
    popad
398
    popad
303
ret
399
ret
304
 
400
 
305
 
401
 
306
draw_color:
402
draw_color:
307
 
403
 
308
    pusha
404
    pusha
309
 
405
 
310
    mov  eax,13
406
    mov  eax,13
311
    mov  ebx,280*65536+60
407
    mov  ebx,266*65536+60
312
    mov  ecx,170*65536+30
408
    mov  ecx,170*65536+30
313
    mov  edx,[color]
409
    mov  edx,[color]
314
    int  0x40
410
    int  0x40
315
 
411
 
316
;   mov  eax,13
412
;   mov  eax,13
317
    mov  ebx,280*65536+60
413
    mov  ebx,266*65536+60
318
    mov  ecx,200*65536+10
414
    mov  ecx,200*65536+10
319
    mov  edx,[w_work]
415
    mov  edx,[w_work]
320
    int  0x40
416
    int  0x40
321
 
417
 
322
    mov  eax,47
418
    mov  eax,47
323
    mov  ebx,0+1*256+8*65536
419
    mov  ebx,0+1*256+8*65536
324
    mov  ecx,[color]
420
    mov  ecx,[color]
325
    mov  edx,280*65536+201
421
    mov  edx,272*65536+201
326
    mov  esi,[w_work_text]
422
    mov  esi,[w_work_text]
327
    int  0x40
423
    int  0x40
328
 
424
 
329
    popa
425
    popa
330
 
426
 
331
    ret
427
    ret
332
 
428
 
333
 
429
 
334
draw_colours:
430
draw_colours:
335
 
431
 
336
    pusha
432
    pusha
337
 
433
 
338
    mov  esi,color_table
434
    mov  esi,color_table
339
 
435
 
340
    mov  ebx,225*65536+32
436
    mov  ebx,225*65536+32
341
    mov  ecx,37*65536+12
437
    mov  ecx,32*65536+12
342
  newcol:
438
  newcol:
343
    mov  eax,13
439
    mov  eax,13
344
    mov  edx,[esi]
440
    mov  edx,[esi]
345
    int  0x40
441
    int  0x40
346
    add  ecx,20*65536
442
    add  ecx,18*65536
347
    add  esi,4
443
    add  esi,4
348
    cmp  esi,color_table+4*9
444
    cmp  esi,color_table+4*9
349
    jbe  newcol
445
    jbe  newcol
350
 
446
 
351
    popa
447
    popa
352
 
448
 
353
    ret
449
    ret
354
 
450
 
-
 
451
 
-
 
452
draw_framerect: ; ebx,ecx
-
 
453
        push    ebx ecx
-
 
454
        add     bx,[esp+6]
-
 
455
        mov     cx,[esp+2]
-
 
456
        dec     ebx
-
 
457
        mcall   38
-
 
458
        add     cx,[esp]
-
 
459
        rol     ecx,16
-
 
460
        add     cx,[esp]
-
 
461
        sub     ecx,0x00010001
-
 
462
        mcall
-
 
463
        mov     ebx,[esp+4]
-
 
464
        mov     ecx,[esp]
-
 
465
        mov     bx,[esp+6]
-
 
466
        add     cx,[esp+2]
-
 
467
        dec     ecx
-
 
468
        mcall
-
 
469
        add     bx,[esp+4]
-
 
470
        rol     ebx,16
-
 
471
        add     bx,[esp+4]
-
 
472
        sub     ebx,0x00010001
-
 
473
        mcall
-
 
474
        add     esp,8
-
 
475
        ret
-
 
476
 
-
 
477
find_bitmap:
-
 
478
        mov     edi,[ebp+SKIN_HEADER.bitmaps]
-
 
479
        add     edi,ebp
-
 
480
        xor     ebx,ebx
-
 
481
  .lp1: cmp     dword[edi],0
-
 
482
        je      .lp2
-
 
483
        cmp     dword[edi+0],eax
-
 
484
        jne     @f
-
 
485
        mov     ebx,[edi+SKIN_BITMAPS.data]
-
 
486
        add     ebx,ebp
-
 
487
        mov     ecx,[ebx-2]
-
 
488
        mov     cx,[ebx+4]
-
 
489
        add     ebx,8
-
 
490
  .lp2: ret
-
 
491
    @@: add     edi,8
-
 
492
        jmp     .lp1
-
 
493
 
-
 
494
draw_skin:
-
 
495
        mcall   13,<345,206>,<20,191>,0x00FFFFFF
-
 
496
        mov     ebp,0x18000
-
 
497
        mov     edi,[ebp+SKIN_HEADER.params]
-
 
498
        add     edi,ebp
-
 
499
        mpack   ebx,345+45,150
-
 
500
        mpack   ecx,20+10,140
-
 
501
        mov     edx,[edi+SKIN_PARAMS.colors_1.outer]
-
 
502
        call    draw_framerect
-
 
503
        mpack   ebx,345+45+4,150-8
-
 
504
        mpack   ecx,20+10+4,140-8
-
 
505
        mov     edx,[edi+SKIN_PARAMS.colors_1.inner]
-
 
506
        call    draw_framerect
-
 
507
        mcall   13,<345+45+1,148>,<20+10+1,3>,[edi+SKIN_PARAMS.colors_1.frame]
-
 
508
        add     ecx,135*65536
-
 
509
        mcall
-
 
510
        mcall   ,<345+45+1,3>,<20+10+1,138>
-
 
511
        add     ebx,145*65536
-
 
512
        mcall
-
 
513
        mcall   ,<345+45+5,140>,<20+10+5,130>,dword[edi+SKIN_PARAMS.dtp.data+system_colors.work]
-
 
514
 
-
 
515
        mov     eax,0x00000001 ; left, inactive
-
 
516
        call    find_bitmap
-
 
517
        mcall   7,,,<345+45,20+10>
-
 
518
 
-
 
519
        pushd   [ebx-8]
-
 
520
        mov     eax,0x00000003 ; base, inactive
-
 
521
        call    find_bitmap
-
 
522
        pop     edx
-
 
523
        mov     esi,345+45+150-1
-
 
524
        sub     esi,edx
-
 
525
        shl     edx,16
-
 
526
        add     edx,(345+45)*65536+20+10
-
 
527
        mcall   7
-
 
528
    @@: rol     edx,16
-
 
529
        add     dx,[ebx-8]
-
 
530
        cmp     dx,si
-
 
531
        ja      @f
-
 
532
        rol     edx,16
-
 
533
        mcall   7
-
 
534
        jmp     @b
-
 
535
    @@:
-
 
536
 
-
 
537
        mov     eax,0x00000002 ; oper, inactive
-
 
538
        call    find_bitmap
-
 
539
        mov     edx,ecx
-
 
540
        shr     edx,16
-
 
541
        neg     edx
-
 
542
        shl     edx,16
-
 
543
        add     edx,(345+45+150)*65536+20+10
-
 
544
        mcall   7
-
 
545
 
-
 
546
        mov     ebp,0x18000
-
 
547
        mov     edi,[ebp+SKIN_HEADER.params]
-
 
548
        add     edi,ebp
-
 
549
        mov     eax,dword[edi+SKIN_PARAMS.margin.left-2]
-
 
550
        mov     ax,word[edi+SKIN_PARAMS.skin_height]
-
 
551
        sub     ax,[edi+SKIN_PARAMS.margin.bottom]
-
 
552
        shr     ax,1
-
 
553
        add     ax,[edi+SKIN_PARAMS.margin.top]
-
 
554
        add     ax,-4
-
 
555
        push    eax
-
 
556
        lea     ebx,[eax+(345+45)*65536+20+10]
-
 
557
        mcall   4,,dword[edi+SKIN_PARAMS.dtp.data+system_colors.grab_text],test_text,test_text.size
-
 
558
 
-
 
559
;---------------------------------------------------------
-
 
560
 
-
 
561
        mov     edi,[ebp+SKIN_HEADER.params]
-
 
562
        add     edi,ebp
-
 
563
        mpack   ebx,345+10,150
-
 
564
        mpack   ecx,20+40,140
-
 
565
        mov     edx,[edi+SKIN_PARAMS.colors.outer]
-
 
566
        call    draw_framerect
-
 
567
        mpack   ebx,345+10+4,150-8
-
 
568
        mpack   ecx,20+40+4,140-8
-
 
569
        mov     edx,[edi+SKIN_PARAMS.colors.inner]
-
 
570
        call    draw_framerect
-
 
571
        mcall   13,<345+10+1,148>,<20+40+1,3>,[edi+SKIN_PARAMS.colors.frame]
-
 
572
        add     ecx,135*65536
-
 
573
        mcall
-
 
574
        mcall   ,<345+10+1,3>,<20+40+1,138>
-
 
575
        add     ebx,145*65536
-
 
576
        mcall
-
 
577
        mcall   ,<345+10+5,140>,<20+40+5,130>,dword[edi+SKIN_PARAMS.dtp.data+system_colors.work]
-
 
578
 
-
 
579
        mov     eax,0x00010001 ; left, inactive
-
 
580
        call    find_bitmap
-
 
581
        mcall   7,,,<345+10,20+40>
-
 
582
 
-
 
583
        pushd   [ebx-8]
-
 
584
        mov     eax,0x00010003 ; base, inactive
-
 
585
        call    find_bitmap
-
 
586
        pop     edx
-
 
587
        mov     esi,345+10+150-1
-
 
588
        sub     esi,edx
-
 
589
        shl     edx,16
-
 
590
        add     edx,(345+10)*65536+20+40
-
 
591
        mcall   7
-
 
592
    @@: rol     edx,16
-
 
593
        add     dx,[ebx-8]
-
 
594
        cmp     dx,si
-
 
595
        ja      @f
-
 
596
        rol     edx,16
-
 
597
        mcall   7
-
 
598
        jmp     @b
-
 
599
    @@:
-
 
600
 
-
 
601
        mov     eax,0x00010002 ; oper, inactive
-
 
602
        call    find_bitmap
-
 
603
        mov     edx,ecx
-
 
604
        shr     edx,16
-
 
605
        neg     edx
-
 
606
        shl     edx,16
-
 
607
        add     edx,(345+10+150)*65536+20+40
-
 
608
        mcall   7
-
 
609
 
-
 
610
        mov     ebp,0x18000
-
 
611
        mov     edi,[ebp+SKIN_HEADER.params]
-
 
612
        add     edi,ebp
-
 
613
        pop     eax
-
 
614
        lea     ebx,[eax+(345+10)*65536+20+40]
-
 
615
        mcall   4,,dword[edi+SKIN_PARAMS.dtp.data+system_colors.grab_text],test_text,test_text.size
-
 
616
 
-
 
617
;----------------------------------------------------------------------
-
 
618
 
-
 
619
        mov     edi,[ebp+SKIN_HEADER.buttons]
-
 
620
        add     edi,ebp
-
 
621
  .lp1: cmp     dword[edi],0
-
 
622
        je      .lp2
-
 
623
        mov     ebx,dword[edi+SKIN_BUTTONS.left-2]
-
 
624
        mov     bx,[edi+SKIN_BUTTONS.width]
-
 
625
        mov     ecx,dword[edi+SKIN_BUTTONS.top-2]
-
 
626
        mov     cx,[edi+SKIN_BUTTONS.height]
-
 
627
        add     ebx,(345+10+150)*65536
-
 
628
        add     ecx,(20+40)*65536
-
 
629
        dec     ebx
-
 
630
        dec     ecx
-
 
631
        mcall   8,,,0x40000000
-
 
632
        add     edi,12
-
 
633
        jmp     .lp1
355
 
634
  .lp2: ret
356
 
635
 
357
;   *********************************************
636
;   *********************************************
358
;   *******  WINDOW DEFINITIONS AND DRAW ********
637
;   *******  WINDOW DEFINITIONS AND DRAW ********
359
;   *********************************************
638
;   *********************************************
360
 
639
 
361
 
640
 
362
draw_window:
641
draw_window:
363
 
642
 
364
    mov  eax,12                    ; function 12:tell os about windowdraw
643
    mov  eax,12                    ; function 12:tell os about windowdraw
365
    mov  ebx,1                     ; 1, start of draw
644
    mov  ebx,1                     ; 1, start of draw
366
    int  0x40
645
    int  0x40
367
 
646
 
368
    mov  eax,48
647
    mov  eax,48
369
    mov  ebx,3
648
    mov  ebx,3
370
    mov  ecx,app_colours
649
    mov  ecx,app_colours
371
    mov  edx,10*4
650
    mov  edx,10*4
372
    int  0x40
651
    int  0x40
373
 
652
 
374
    mov  eax,14
653
    mov  eax,14
375
    int  0x40
654
    int  0x40
376
 
655
 
377
    sub  eax,60*65536
656
    sub  eax,60*65536
378
    mov  ebx,eax
657
    mov  ebx,eax
379
    mov  bx,40
658
    mov  bx,40
380
 
659
 
381
                                   ; DRAW WINDOW
660
                                   ; DRAW WINDOW
382
    mov  eax,0                     ; function 0 : define and draw window
661
    mov  eax,0                     ; function 0 : define and draw window
383
    mov  ebx,110*65536+360         ; [x start] *65536 + [x size]
662
    mov  ebx,110*65536+555         ; [x start] *65536 + [x size]
384
    mov  ecx,50*65536+300          ; [y start] *65536 + [y size]
663
    mov  ecx,50*65536+255          ; [y start] *65536 + [y size]
385
    mov  edx,[w_work]              ; color of work area RRGGBB,8->color
664
    mov  edx,[w_work]              ; color of work area RRGGBB,8->color
386
    or   edx,0x02000000
665
    or   edx,0x02000000
387
    mov  esi,[w_grab]              ; color of grab bar  RRGGBB,8->color gl
666
    mov  esi,[w_grab]              ; color of grab bar  RRGGBB,8->color gl
388
    or   esi,0x80000000
667
    or   esi,0x80000000
389
    mov  edi,[w_frame]             ; color of frames    RRGGBB
668
    mov  edi,[w_frame]             ; color of frames    RRGGBB
390
    int  0x40
669
    int  0x40
391
 
670
 
392
                                   ; WINDOW LABEL
671
                                   ; WINDOW LABEL
393
    mov  eax,4                     ; function 4 : write text to window
672
    mov  eax,4                     ; function 4 : write text to window
394
    mov  ebx,8*65536+7 ;8          ; [x start] *65536 + [y start]
673
    mov  ebx,8*65536+7 ;8          ; [x start] *65536 + [y start]
395
    mov  ecx,[w_grab_text]         ; color of text RRGGBB
674
    mov  ecx,[w_grab_text]         ; color of text RRGGBB
396
if lang eq ru
675
if lang eq ru
397
    or   ecx,0x10000000
676
    or   ecx,0x10000000
398
end if
677
end if
399
    mov  edx,labelt                ; pointer to text beginning
678
    mov  edx,labelt                ; pointer to text beginning
400
    mov  esi,labelt.size           ; text length
679
    mov  esi,labelt.size           ; text length
401
    int  0x40
680
    int  0x40
402
                                   ; CLOSE BUTTON
681
                                   ; CLOSE BUTTON
403
    mov  eax,8                     ; function 8 : define and draw button
682
    mov  eax,8                     ; function 8 : define and draw button
404
    mov  ebx,(360-19)*65536+12     ; [x start] *65536 + [x size]
683
    mov  ebx,(555-19)*65536+12     ; [x start] *65536 + [x size]
405
    mov  ecx,4*65536+12            ; [y start] *65536 + [y size]
684
    mov  ecx,4*65536+12            ; [y start] *65536 + [y size]
406
    mov  edx,1                     ; button id
685
    mov  edx,1                     ; button id
407
    mov  esi,[w_grab_button]       ; button color RRGGBB
686
    mov  esi,[w_grab_button]       ; button color RRGGBB
408
    int  0x40
687
    int  0x40
-
 
688
 
-
 
689
if lang eq ru
-
 
690
  load_w  = (5*2+6*9)
-
 
691
  save_w  = (5*2+6*9)
-
 
692
  flat_w  = (5*2+6*7)
-
 
693
  apply_w = (5*2+6*9)
-
 
694
else
-
 
695
  load_w  = (5*2+6*6)
-
 
696
  save_w  = (5*2+6*6)
-
 
697
  flat_w  = (5*2+6*4)
-
 
698
  apply_w = (5*2+6*7)
-
 
699
end if
409
 
700
 
410
;   mov  eax,8                    ; FILENAME BUTTON
701
;   mov  eax,8                    ; FILENAME BUTTON
411
    mov  ebx,280*65536+60
702
    mov  ebx,5*65536+545
412
    mov  ecx,250*65536+14
703
    mov  ecx,212*65536+10
413
    mov  edx,11
-
 
414
    mov  esi,[w_work_button]
704
    mov  edx,0x4000000B
415
    int  0x40
705
    int  0x40
416
 
706
 
417
;   mov  eax,8                    ; SAVE BUTTON
707
;   mov  eax,8                    ; LOAD BUTTON
418
    mov  ebx,280*65536+29
708
    mov  ebx,15*65536+load_w
-
 
709
    mov  ecx,(30+18*11)*65536+14
419
    mov  ecx,270*65536+14
710
    mov  edx,12
420
    mov  edx,12
711
    mov  esi,[w_work_button]
421
    int  0x40
712
    int  0x40
422
 
713
 
423
;   mov  eax,8                    ; LOAD BUTTON
714
;   mov  eax,8                    ; SAVE BUTTON
424
    add  ebx,30*65536
715
    add  ebx,(load_w+2)*65536-load_w+save_w
425
    inc  edx
716
    inc  edx
426
    int  0x40
717
    int  0x40
427
 
718
 
428
;   mov  eax,8                    ; 3D
719
;   mov  eax,8                    ; 3D
429
    mov  ebx,15*65536+35
720
    mov  ebx,(340-t1.size*6-13)*65536+(5*2+6*4)
430
    mov  ecx,275*65536+14
-
 
431
    inc  edx
721
    inc  edx
432
    int  0x40
722
    int  0x40
433
;   mov  eax,8                    ; FLAT
723
;   mov  eax,8                    ; FLAT
434
if lang eq ru
-
 
435
    add  ebx,40*65536+7
724
    add  ebx,(5*2+6*4+2)*65536-(5*2+6*4)+flat_w
436
else
-
 
437
    add  ebx,40*65536
-
 
438
end if
-
 
439
    inc  edx
725
    inc  edx
440
    int  0x40
726
    int  0x40
-
 
727
 
-
 
728
;   mov  eax,8                    ; APPLY BUTTON
-
 
729
    add  ebx,(flat_w+6+2)*65536-flat_w+apply_w
-
 
730
    inc  edx
-
 
731
    int  0x40
-
 
732
 
-
 
733
;   mov  eax,8                    ; LOAD SKIN BUTTON
-
 
734
    mov  ebx,(336+(555-335)/2-t2.size*6/2)*65536+load_w
-
 
735
    inc  edx
-
 
736
    int  0x40
-
 
737
 
-
 
738
;   mov  eax,8                    ; APPLY SKIN BUTTON
-
 
739
    add  ebx,(load_w+6+2)*65536-load_w+apply_w
-
 
740
    inc  edx
441
 
741
    int  0x40
442
 
742
 
443
    mov  eax, 4
743
    mov  eax, 4
444
    mov  ebx, 281*65536+254
744
    mov  ebx, (339-t1.size*6-12)*65536+(30+18*11+4)
445
    mov  ecx, [w_work_button_text]
745
    mov  ecx, [w_work_button_text]
446
    mov  edx, t1
746
    mov  edx, t1
447
    mov  esi, t1.size
747
    mov  esi, t1.size
448
    int  0x40
748
    int  0x40
449
 
-
 
450
;   mov  eax, 4
749
 
451
    mov  ebx, 277*65536+274
750
    mov  ebx,(336+(555-335)/2-t2.size*6/2)*65536+(30+18*11+4)
452
    mov  edx, t2
751
    mov  edx,t2
453
    mov  esi, t2.size
752
    mov  esi,t2.size
454
    int  0x40
753
    int  0x40
-
 
754
 
455
 
755
 
456
    mov  eax,38                    ; R G B COLOR GLIDES
756
    mov  eax,38                    ; R G B COLOR GLIDES
457
    mov  ebx,280*65536+300 ;295
757
    mov  ebx,266*65536+285
458
    mov  ecx,30*65536+30
758
    mov  ecx,30*65536+30
459
    mov  edx,0xff0000
759
    mov  edx,0xff0000
460
  .newl:
760
  .newl:
461
    int  0x40
761
    int  0x40
462
    pusha
762
    pusha
463
    add  ebx,20*65536+20
763
    add  ebx,20*65536+20
464
    shr  edx,8
764
    shr  edx,8
465
    int  0x40
765
    int  0x40
466
    add  ebx,20*65536+20
766
    add  ebx,20*65536+20
467
    shr  edx,8
767
    shr  edx,8
468
    int  0x40
768
    int  0x40
469
    popa
769
    popa
470
    sub  edx,0x020000
770
    sub  edx,0x020000
471
    add  ecx,0x00010001
771
    add  ecx,0x00010001
472
    cmp  ecx,158*65536+158
772
    cmp  ecx,158*65536+158
473
    jnz  .newl
773
    jnz  .newl
474
 
774
 
475
    call draw_color
775
    call draw_color
476
 
776
 
477
    mov  edx,31                    ; BUTTON ROW
777
    mov  edx,31                    ; BUTTON ROW
478
    mov  ebx,15*65536+200
778
    mov  ebx,15*65536+200
479
    mov  ecx,35*65536+14
779
    mov  ecx,30*65536+14
480
    mov  esi,[w_work_button]
780
    mov  esi,[w_work_button]
481
  newb:
781
  newb:
482
    mov  eax,8
782
    mov  eax,8
483
    int  0x40
783
    int  0x40
484
    add  ecx,20*65536
784
    add  ecx,18*65536
485
    inc  edx
785
    inc  edx
486
    cmp  edx,40
786
    cmp  edx,40
487
    jbe  newb
787
    jbe  newb
488
 
-
 
489
;    mov  eax,8                     ; APPLY BUTTON
-
 
490
    add  ecx,20*65536
-
 
491
    mov  edx,51
-
 
492
    int  0x40
-
 
493
 
788
 
494
    mov  ebx,20*65536+39           ; ROW OF TEXTS
789
    mov  ebx,15*65536+34           ; ROW OF TEXTS
495
    mov  ecx,[w_work_button_text]
790
    mov  ecx,[w_work_button_text]
496
    mov  edx,text
791
    mov  edx,text
497
    mov  esi,32
792
    mov  esi,32
498
  newline:
793
  newline:
499
    mov  eax,4
794
    mov  eax,4
500
    int  0x40
795
    int  0x40
501
    add  ebx,20
796
    add  ebx,18
502
    add  edx,32
797
    add  edx,32
503
    cmp  [edx],byte 'x'
798
    cmp  [edx],byte 'x'
504
    jne  newline
799
    jne  newline
505
 
800
 
506
    call draw_colours
801
    call draw_colours
-
 
802
 
-
 
803
    mcall 13,<5,546>,<212,11>,[w_work]
-
 
804
    mcall 13,<337,7>,<2,250>,[w_frame]
-
 
805
    shr   edx,1
-
 
806
    and   edx,0x007F7F7F
-
 
807
    mcall 38,<336,336>,<20,250>
-
 
808
    add   ebx,0x00080008
-
 
809
    mcall
-
 
810
    sub   ebx,0x00040004
-
 
811
    mcall ,,<0,255>
-
 
812
    mcall ,<5,550>,<211,211>
-
 
813
    add   ecx,0x000C000C
-
 
814
    mcall
507
 
815
 
-
 
816
    call print_text
-
 
817
 
-
 
818
    cmp  dword[0x18000+SKIN_HEADER.ident],'SKIN'
-
 
819
    jne  @f
-
 
820
    call draw_skin
508
    call print_text
821
  @@:
509
 
822
 
510
    mov  eax,12                    ; function 12:tell os about windowdraw
823
    mov  eax,12                    ; function 12:tell os about windowdraw
511
    mov  ebx,2                     ; 2, end of draw
824
    mov  ebx,2                     ; 2, end of draw
512
    int  0x40
825
    int  0x40
513
 
826
 
514
    ret
827
    ret
515
 
828
 
516
 
829
 
517
; DATA AREA
830
; DATA AREA
518
 
831
 
519
lsz text,\
832
lsz text,\
520
    ru,  ' €ŒŠ€ ŽŠ€                     ',\
833
    ru,  ' €ŒŠ€ ŽŠ€                     ',\
521
    ru,  ' Ž‹Ž‘€ ‡€ƒŽ‹Ž‚Š€               ',\
834
    ru,  ' Ž‹Ž‘€ ‡€ƒŽ‹Ž‚Š€               ',\
522
    ru,  ' ŠŽŠ€ € Ž‹Ž‘… ‡€ƒŽ‹Ž‚Š€     ',\
835
    ru,  ' ŠŽŠ€ € Ž‹Ž‘… ‡€ƒŽ‹Ž‚Š€     ',\
523
    ru,  ' ’…Š‘’ € ŠŽŠ… € ‡€ƒŽ‹Ž‚Š…   ',\
836
    ru,  ' ’…Š‘’ € ŠŽŠ… € ‡€ƒŽ‹Ž‚Š…   ',\
524
    ru,  ' ’…Š‘’ ‡€ƒŽ‹Ž‚ŽŠ€               ',\
837
    ru,  ' ’…Š‘’ ‡€ƒŽ‹Ž‚ŽŠ€               ',\
525
    ru,  ' €Ž—€Ÿ Ž‹€‘’œ                ',\
838
    ru,  ' €Ž—€Ÿ Ž‹€‘’œ                ',\
526
    ru,  ' ŠŽŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ       ',\
839
    ru,  ' ŠŽŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ       ',\
527
    ru,  ' ’…Š‘’ € ŠŽŠ…                ',\
840
    ru,  ' ’…Š‘’ € ŠŽŠ…                ',\
528
    ru,  ' ’…Š‘’ ‚ €Ž—…‰ Ž‹€‘’ˆ        ',\
841
    ru,  ' ’…Š‘’ ‚ €Ž—…‰ Ž‹€‘’ˆ        ',\
529
    ru,  ' ƒ€”ˆŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ      ',\
842
    ru,  ' ƒ€”ˆŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ      ',\
530
    ru,  '                                ',\
843
    ru,  '                                ',\
531
    ru,  '           ˆŒ…ˆ’œ            ',\
844
    ru,  ' ‡€ƒ“‡ˆ’œ  ‘Ž•€ˆ’œ           ',\
532
    ru,  ' 3D    ‹Ž‘Š                    ',\
-
 
533
    ru,  'x',\
845
    ru,  'x',\
534
    en,  ' WINDOW FRAME                   ',\
846
    en,  ' WINDOW FRAME                   ',\
535
    en,  ' WINDOW GRAB BAR                ',\
847
    en,  ' WINDOW GRAB BAR                ',\
536
    en,  ' WINDOW GRAB BUTTON             ',\
848
    en,  ' WINDOW GRAB BUTTON             ',\
537
    en,  ' WINDOW GRAB BUTTON TEXT        ',\
849
    en,  ' WINDOW GRAB BUTTON TEXT        ',\
538
    en,  ' WINDOW GRAB TITLE              ',\
850
    en,  ' WINDOW GRAB TITLE              ',\
539
    en,  ' WINDOW WORK AREA               ',\
851
    en,  ' WINDOW WORK AREA               ',\
540
    en,  ' WINDOW WORK AREA BUTTON        ',\
852
    en,  ' WINDOW WORK AREA BUTTON        ',\
541
    en,  ' WINDOW WORK AREA BUTTON TEXT   ',\
853
    en,  ' WINDOW WORK AREA BUTTON TEXT   ',\
542
    en,  ' WINDOW WORK AREA TEXT          ',\
854
    en,  ' WINDOW WORK AREA TEXT          ',\
543
    en,  ' WINDOW WORK AREA GRAPH         ',\
855
    en,  ' WINDOW WORK AREA GRAPH         ',\
544
    en,  '                                ',\
856
    en,  '                                ',\
545
    en,  '        APPLY CHANGES           ',\
-
 
546
    en,  ' 3D    FLAT                     ',\
857
    en,  '  LOAD    SAVE                  ',\
547
    en,  'x'
858
    en,  'x'
548
 
859
 
-
 
860
 
-
 
861
lsz t1,\
-
 
862
    ru, '  3D   ‹Ž‘Šˆ…   ˆŒ…ˆ’œ ',\
-
 
863
    en, '  3D   FLAT    APPLY  '
549
 
864
 
550
lsz t2,\
865
lsz t2,\
551
    ru, ' ‡€ƒ ‘Ž• ',\
866
    ru,  ' ‡€ƒ“‡ˆ’œ   ˆŒ…ˆ’œ ',\
552
    en, ' LOAD SAVE '
867
    en,  '  LOAD     APPLY  ',\
553
 
868
 
554
lsz t1,\
869
lsz test_text,\
555
    ru, '   ”€‰‹    ',\
870
    ru, '‡ £®«®¢®ª',\
556
    en, ' FILENAME  '
871
    en, 'Caption'
557
 
872
 
558
lsz labelt,\
873
lsz labelt,\
559
    ru, '€‘’Ž‰Š€ –‚…’Ž‚',\
874
    ru, '€‘’Ž‰Š€ –‚…’Ž‚',\
560
    en, 'DESKTOP COLOURS - DEFINE COLOR AND CLICK ON TARGET'
875
    en, 'DESKTOP COLOURS - DEFINE COLOR AND CLICK ON TARGET'
561
 
-
 
562
 
876
 
563
sz  default_file, '/RD/1/DEFAULT.DTP'
877
sz  default_skn, '/RD/1/DEFAULT.SKN',0
564
 
878
 
565
color dd  0
879
color dd  0
566
 
880
 
567
I_END:
881
I_END:
568
 
882
 
569
read_info:
883
read_info:
570
  .mode         dd ?            ; read
884
  .mode         dd ?            ; read
571
  .start_block  dd ?            ; first block
885
  .start_block  dd ?            ; first block
572
  .blocks       dd ?            ; 512 bytes
886
  .blocks       dd ?            ; 512 bytes
573
  .address      dd ?
887
  .address      dd ?
574
  .workarea     dd ?
888
  .workarea     dd ?
575
fname rb 256+1            ; filename (+1 - for zero at the end)
889
fname rb 256+1            ; filename (+1 - for zero at the end)
576
 
890
 
577
virtual at read_info
891
virtual at read_info
578
 write_info:
892
 write_info:
579
  .mode         dd ?
893
  .mode         dd ?
580
  rd 1
894
  rd 1
581
  .bytes2write  dd ?
895
  .bytes2write  dd ?
582
  .address      dd ?
896
  .address      dd ?
583
  .workarea     dd ?
897
  .workarea     dd ?
584
end virtual
898
end virtual
-
 
899
 
-
 
900
skin_info:
-
 
901
  .mode         dd ?
-
 
902
  .start_block  dd ?
-
 
903
  .blocks       dd ?
-
 
904
  .address      dd ?
-
 
905
  .workarea     dd ?
-
 
906
  .fname rb 256+1
585
 
907
 
586
app_colours:
908
app_colours:
587
 
909
 
588
w_frame              dd ?
910
w_frame              dd ?
589
w_grab               dd ?
911
w_grab               dd ?
590
w_grab_button        dd ?
912
w_grab_button        dd ?
591
w_grab_button_text   dd ?
913
w_grab_button_text   dd ?
592
w_grab_text          dd ?
914
w_grab_text          dd ?
593
w_work               dd ?
915
w_work               dd ?
594
w_work_button        dd ?
916
w_work_button        dd ?
595
w_work_button_text   dd ?
917
w_work_button_text   dd ?
596
w_work_text          dd ?
918
w_work_text          dd ?
597
w_work_graph         dd ?
919
w_work_graph         dd ?
598
 
920
 
599
color_table:
921
color_table:
600
  times 10 dd ?
922
  times 10 dd ?