Subversion Repositories Kolibri OS

Rev

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

Rev 551 Rev 651
1
;
1
;
2
;    BACKGROUND SET  - Compile with fasm
2
;    BACKGROUND SET  - Compile with fasm
3
;
3
;
4
  use32
4
  use32
5
  org     0x0
5
  org     0x0
6
  db      'MENUET01'    ; 8 byte id
6
  db      'MENUET01'    ; 8 byte id
7
  dd      0x01          ; version
7
  dd      0x01          ; version
8
  dd      START         ; program start
8
  dd      START         ; program start
9
  dd      I_END         ; image size
9
  dd      I_END         ; image size
10
  dd      0x80000       ; reguired amount of memory
10
  dd      0x80000       ; reguired amount of memory
11
  dd      0x80000       ; stack pointer
11
  dd      0x80000       ; stack pointer
12
  dd      I_Param,0
12
  dd      I_Param,0
13
 
13
 
14
  include 'lang.inc'
14
  include 'lang.inc'
15
  include '..\..\..\macros.inc'
15
  include '..\..\..\macros.inc'
16
purge mov       ; decrease kpack'ed size
16
purge mov       ; decrease kpack'ed size
17
 
17
 
18
START:
18
START:
19
    mov  eax,48
19
    mov  eax,48
20
    mov  ebx,3
20
    mov  ebx,3
21
    mov  ecx,sc
21
    mov  ecx,sc
22
    mov  edx,sizeof.system_colors
22
    mov  edx,sizeof.system_colors
23
    mcall
23
    mcall
24
 
24
 
25
    cmp  dword [I_Param], 'BOOT'
25
    cmp  dword [I_Param], 'BOOT'
26
    jz   OnBoot
26
    jz   OnBoot
27
 
27
 
28
    call draw_window
28
    call draw_window
29
 
29
 
30
    call load_texture
30
    call load_texture
31
    call draw_image
31
    call draw_image
32
 
32
 
33
 
33
 
34
still:
34
still:
35
 
35
 
36
    mov  eax,10                 ; wait here for event
36
    mov  eax,10                 ; wait here for event
37
    mcall
37
    mcall
38
 
38
 
39
    dec  eax
39
    dec  eax
40
    jz   red
40
    jz   red
41
    dec  eax
41
    dec  eax
42
    jnz  button
42
    jnz  button
43
 
43
 
44
  key:
44
  key:
45
    mov  al,2
45
    mov  al,2
46
    mcall
46
    mcall
47
    jmp  still
47
    jmp  still
48
 
48
 
49
  red:
49
  red:
50
    call draw_window
50
    call draw_window
51
    jmp  still
51
    jmp  still
52
 
52
 
53
  button:
53
  button:
54
    mov  al,17
54
    mov  al,17
55
    mcall
55
    mcall
56
 
56
 
57
    shr  eax,8
57
    shr  eax,8
58
 
58
 
59
    cmp  al,101                  ; tiled
59
    cmp  al,101                  ; tiled
60
    jne  no101
60
    jne  no101
61
    mov  ecx,1
61
    mov  ecx,1
62
setbgrmode:
62
setbgrmode:
63
    mov  eax,15
63
    mov  eax,15
64
    mov  ebx,4
64
    mov  ebx,4
65
    mcall
65
    mcall
66
    dec  ebx
66
    dec  ebx
67
    mcall
67
    mcall
68
    jmp  still
68
    jmp  still
69
  no101:
69
  no101:
70
 
70
 
71
    mov  ecx, 2
71
    mov  ecx, 2
72
    cmp  al, 102
72
    cmp  al, 102
73
    jz   setbgrmode
73
    jz   setbgrmode
74
  no102:
74
  no102:
75
 
75
 
76
    cmp  al,1           ; end program
76
    cmp  al,1           ; end program
77
    jnz  no_end
77
    jnz  no_end
78
    or   eax,-1
78
    or   eax,-1
79
    mcall
79
    mcall
80
  no_end:
80
  no_end:
81
 
81
 
82
    cmp  al,11
82
    cmp  al,11
83
    jz   bg
83
    jz   bg
84
    cmp  al,12
84
    cmp  al,12
85
    jz   bg
85
    jz   bg
86
    cmp  al,13
86
    cmp  al,13
87
    jz   bg
87
    jz   bg
88
 
88
 
89
    cmp  al,121
89
    cmp  al,121
90
    jb   no_bg_select
90
    jb   no_bg_select
91
    cmp  al,133
91
    cmp  al,133
92
    ja   no_bg_select
92
    ja   no_bg_select
93
    mov  eax,[arrays + (eax-121)*4]
93
    mov  eax,[arrays + (eax-121)*4]
94
    mov  [usearray],eax
94
    mov  [usearray],eax
95
    call load_texture
95
    call load_texture
96
    call draw_image
96
    call draw_image
97
    jmp  still
97
    jmp  still
98
  no_bg_select:
98
  no_bg_select:
99
 
99
 
100
    cmp  al,14+20
100
    cmp  al,14+20
101
    jge  bg4
101
    jge  bg4
102
 
102
 
103
    jmp  bg2
103
    jmp  bg2
104
 
104
 
105
 
105
 
106
OnBoot:
106
OnBoot:
107
 
107
 
108
    call load_texture
108
    call load_texture
109
 
109
 
110
    mov  eax,15
110
    mov  eax,15
111
    mov  ebx,1
111
    mov  ebx,1
112
    mov  ecx,256
112
    mov  ecx,256
113
    mov  edx,256
113
    mov  edx,256
114
    mcall
114
    mcall
115
 
115
 
116
    mov  ebx,5
116
    mov  ebx,5
117
    mov  ecx,0x40000 ; <<< 0x40000 for blue, 0x40000+1 for red,
117
    mov  ecx,0x40000 ; <<< 0x40000 for blue, 0x40000+1 for red,
118
                       ; <<< 0x40000+2 for green background at boot
118
                       ; <<< 0x40000+2 for green background at boot
119
    mov  edx,0
119
    mov  edx,0
120
    mov  esi,256*3*256
120
    mov  esi,256*3*256
121
    mcall
121
    mcall
122
 
122
 
123
    dec  ebx
123
    dec  ebx
124
    mov  ecx,2
124
    mov  ecx,2
125
    mcall
125
    mcall
126
 
126
 
127
    dec  ebx
127
    dec  ebx
128
    mcall
128
    mcall
129
 
129
 
130
    mov  eax,-1
130
    mov  eax,-1
131
    mcall
131
    mcall
132
 
132
 
133
 
133
 
134
 
134
 
135
set_picture:
135
set_picture:
136
 
136
 
137
    mov  eax,image+99-3*16
137
    mov  eax,image+99-3*16
138
    mov  ebx,0x40000+255*3+255*3*256
138
    mov  ebx,0x40000+255*3+255*3*256
139
  newpix:
139
  newpix:
140
    mov  ecx,[eax]
140
    mov  ecx,[eax]
141
    mov  [ebx],cx
141
    mov  [ebx],cx
142
    shr  ecx,16
142
    shr  ecx,16
143
    mov  [ebx+2],cl
143
    mov  [ebx+2],cl
144
    add  eax,3
144
    add  eax,3
145
    sub  ebx,3
145
    sub  ebx,3
146
    cmp  ebx,0x40002
146
    cmp  ebx,0x40002
147
    jge  newpix
147
    jge  newpix
148
 
148
 
149
    ret
149
    ret
150
 
150
 
151
 
151
 
152
load_texture:
152
load_texture:
153
 
153
 
154
    call  gentexture
154
    call  gentexture
155
    call  set_picture
155
    call  set_picture
156
 
156
 
157
    ret
157
    ret
158
 
158
 
159
 
159
 
160
; set background
160
; set background
161
 
161
 
162
bg:
162
bg:
163
 
163
 
164
    mov  edi,0x40000
164
    mov  edi,0x40000
165
 
165
 
166
    cmp  al,12
166
    cmp  al,12
167
    jnz  bb1
167
    jb   bb1
168
    inc  edi
168
    inc  edi
169
  bb1:
169
  bb1:
170
    cmp  al,13
170
    cmp  al,13
171
    jnz  bb2
171
    jb   bb2
172
    inc  edi
172
    inc  edi
173
  bb2:
173
  bb2:
174
 
174
 
175
    mov  eax,15
175
    mov  eax,15
176
    mov  ebx,1
176
    mov  ebx,1
177
    mov  ecx,256
177
    mov  ecx,256
178
    mov  edx,256
178
    mov  edx,256
179
    mcall
179
    mcall
180
 
180
 
181
    mov  ebx,5
181
    mov  ebx,5
182
    mov  ecx,edi
182
    mov  ecx,edi
183
    mov  edx,0
183
    mov  edx,0
184
    mov  esi,256*256*3
184
    mov  esi,256*256*3
185
    mcall
185
    mcall
186
 
186
 
187
    mov  ebx,3
187
    mov  ebx,3
188
    mcall
188
    mcall
189
 
189
 
190
    jmp  still
190
    jmp  still
191
 
191
 
192
 
192
 
193
; colored background
193
; colored background
194
 
194
 
195
bg2:
195
bg2:
196
        mov     edi, eax
196
        mov     edi, eax
197
        mcall   15,4,1
197
        mcall   15,4,1
198
        mcall   ,1,,1
198
        mcall   ,1,,1
199
        lea     ecx, [(edi-14)*3+fill]
199
        lea     ecx, [(edi-14)*3+fill]
200
        mcall   ,5,,0,3*1*1
200
        mcall   ,5,,0,3*1*1
201
        mcall   ,3
201
        mcall   ,3
202
 
202
 
203
    jmp  still
203
    jmp  still
204
 
204
 
205
 
205
 
206
; shaped background
206
; shaped background
207
 
207
 
208
bg4:
208
bg4:
209
 
209
 
210
    shl  eax,3
210
    shl  eax,3
211
    add  eax,shape - (14+20)*8
211
    add  eax,shape - (14+20)*8
212
    mov  ecx,[eax+0]
212
    mov  ecx,[eax+0]
213
    mov  edx,[eax+4]
213
    mov  edx,[eax+4]
214
 
214
 
215
    mov  eax,15
215
    mov  eax,15
216
    mov  ebx,1
216
    mov  ebx,1
217
    mcall
217
    mcall
218
 
218
 
219
    mov  ebx,3
219
    mov  ebx,3
220
    mcall
220
    mcall
221
 
221
 
222
    jmp  still
222
    jmp  still
223
 
223
 
224
 
224
 
225
; *********************************************
225
; *********************************************
226
; ******* CELLULAR TEXTURE GENERATION *********
226
; ******* CELLULAR TEXTURE GENERATION *********
227
; **** by Cesare Castiglia (dixan/sk/mfx) *****
227
; **** by Cesare Castiglia (dixan/sk/mfx) *****
228
; ********* dixan@spinningkids.org   **********
228
; ********* dixan@spinningkids.org   **********
229
; *********************************************
229
; *********************************************
230
; * the algorythm is kinda simple. the color  *
230
; * the algorythm is kinda simple. the color  *
231
; * component for every pixel is evaluated    *
231
; * component for every pixel is evaluated    *
232
; * according to the squared distance from    *
232
; * according to the squared distance from    *
233
; * the closest point in 'ptarray'.           *
233
; * the closest point in 'ptarray'.           *
234
; *********************************************
234
; *********************************************
235
 
235
 
236
gentexture:
236
gentexture:
237
 
237
 
238
  xor ecx,ecx        ; ycounter
238
  xor ecx,ecx        ; ycounter
239
  xor edi,edi        ; pixel counter
239
  xor edi,edi        ; pixel counter
240
 
240
 
241
  mov ebp,[usearray]
241
  mov ebp,[usearray]
242
 
242
 
243
 ylup:
243
 ylup:
244
    xor ebx,ebx
244
    xor ebx,ebx
245
 
245
 
246
 xlup:
246
 xlup:
247
  push edi
247
  push edi
248
  xor edi, edi
248
  xor edi, edi
249
  mov esi, 512000000           ; abnormous initial value :)
249
  mov esi, 512000000           ; abnormous initial value :)
250
 
250
 
251
 pixlup:
251
 pixlup:
252
   push esi
252
   push esi
253
   mov eax,ebx                 ; evaluate first distance
253
   mov eax,ebx                 ; evaluate first distance
254
   sub eax, [ebp+edi]          ; x-x1
254
   sub eax, [ebp+edi]          ; x-x1
255
   call wrappit
255
   call wrappit
256
   imul eax
256
   imul eax
257
   mov esi, eax                ; (x-x1)^2
257
   mov esi, eax                ; (x-x1)^2
258
   mov eax, ecx
258
   mov eax, ecx
259
   add edi,4
259
   add edi,4
260
   sub eax, [ebp+edi]          ; y-y1
260
   sub eax, [ebp+edi]          ; y-y1
261
   call wrappit
261
   call wrappit
262
   imul eax                    ; (y-y1)^2
262
   imul eax                    ; (y-y1)^2
263
   add eax,esi                 ; (x-x1)^2+(y-y1)^2
263
   add eax,esi                 ; (x-x1)^2+(y-y1)^2
264
   pop esi
264
   pop esi
265
 
265
 
266
   cmp esi,eax
266
   cmp esi,eax
267
   jb  ok                      ; compare and take the smaller one
267
   jb  ok                      ; compare and take the smaller one
268
   mov esi,eax
268
   mov esi,eax
269
 
269
 
270
  ok:
270
  ok:
271
   add edi,4
271
   add edi,4
272
   cmp [ebp+edi],dword 777
272
   cmp [ebp+edi],dword 777
273
   jne pixlup
273
   jne pixlup
274
 
274
 
275
   mov eax,esi                 ; now evaluate color...
275
   mov eax,esi                 ; now evaluate color...
276
 
276
 
277
   mov edi,24            ; 50 = max shaded distance
277
   mov edi,24            ; 50 = max shaded distance
278
   idiv edi
278
   idiv edi
279
 
279
 
280
   pop edi
280
   pop edi
281
   mov [image+51+edi],eax
281
   mov [image+51+edi],eax
282
   add edi,3
282
   add edi,3
283
 
283
 
284
  add ebx,1              ; bounce x loop
284
  add ebx,1              ; bounce x loop
285
  cmp ebx,256            ; xsize
285
  cmp ebx,256            ; xsize
286
  jne xlup
286
  jne xlup
287
 
287
 
288
  add ecx,1
288
  add ecx,1
289
  cmp ecx,256            ; ysize
289
  cmp ecx,256            ; ysize
290
  jne ylup
290
  jne ylup
291
 
291
 
292
  ret
292
  ret
293
 
293
 
294
wrappit:
294
wrappit:
295
  cmp eax,0              ; this makes the texture wrap
295
  cmp eax,0              ; this makes the texture wrap
296
  jg noabs
296
  jg noabs
297
  neg eax
297
  neg eax
298
  noabs:
298
  noabs:
299
  cmp eax,128
299
  cmp eax,128
300
  jb nowrap
300
  jb nowrap
301
  neg eax
301
  neg eax
302
  add eax,256
302
  add eax,256
303
  nowrap:
303
  nowrap:
304
  ret
304
  ret
305
 
305
 
306
; *********************************************
306
; *********************************************
307
; ******* WINDOW DEFINITIONS AND DRAW *********
307
; ******* WINDOW DEFINITIONS AND DRAW *********
308
; *********************************************
308
; *********************************************
309
 
309
 
310
 
310
 
311
draw_image:
311
draw_image:
312
 
312
 
313
    mov  eax,7
313
    mov  eax,7
314
    mov  ebx,0x40000
314
    mov  ebx,0x40000
315
    mov  ecx,256*65536+255
315
    mov  ecx,256*65536+255
316
    mov  edx,14*65536+40;55
316
    mov  edx,14*65536+40;55
317
    mcall
317
    mcall
318
 
318
 
319
    ret
319
    ret
320
 
320
 
321
 
321
 
322
y_add  equ  19 ; 30
322
y_add  equ  19 ; 30
323
y_s    equ  13
323
y_s    equ  13
324
 
324
 
325
y_add2 equ  315 ;325
325
y_add2 equ  315 ;325
326
set    equ  0 ;15
326
set    equ  0 ;15
327
 
327
 
328
draw_window:
328
draw_window:
329
 
329
 
330
    mov eax, 12                   ; tell os about draw
330
    mov eax, 12                   ; tell os about draw
331
    mov ebx, 1
331
    mov ebx, 1
332
    mcall
332
    mcall
333
 
333
 
334
    xor eax, eax                    ; define and draw window
334
    xor eax, eax                    ; define and draw window
335
    mov ebx, 220*65536+293
335
    mov ebx, 220*65536+293
336
    mov ecx, 50*65536+408
336
    mov ecx, 50*65536+408
337
    mov edx, [sc.work]
337
    mov edx, [sc.work]
338
    or  edx, 0x34000000
338
    or  edx, 0x34000000
339
    mov edi, title
339
    mov edi, title
340
    mcall
340
    mcall
341
 
341
 
342
    call draw_image
342
    call draw_image
343
 
343
 
344
    mov  eax,8                     ; Blue button
344
    mov  eax,8                     ; Blue button
345
    mov  ebx,(set+190+27)*65536+17
345
    mov  ebx,(set+190+27)*65536+17
346
    mov  ecx,y_add*65536+y_s
346
    mov  ecx,y_add*65536+y_s
347
    mov  edx,11
347
    mov  edx,11
348
    mov  esi,0x005555bb
348
    mov  esi,0x005555bb
349
    mcall
349
    mcall
350
    ;mov  eax,8                     ; Red button
350
    ;mov  eax,8                     ; Red button
351
    mov  ebx,(set+208+27)*65536+17
351
    mov  ebx,(set+208+27)*65536+17
352
    mov  edx,12
352
    mov  edx,12
353
    mov  esi,0x00bb5555
353
    mov  esi,0x00bb5555
354
    mcall
354
    mcall
355
    ;mov  eax,8                     ; Green button
355
    ;mov  eax,8                     ; Green button
356
    mov  ebx,(set+253)*65536+17
356
    mov  ebx,(set+253)*65536+17
357
    mov  edx,13
357
    mov  edx,13
358
    mov  esi,0x0055bb55
358
    mov  esi,0x0055bb55
359
    mcall
359
    mcall
360
 
360
 
361
    ;mov  eax, 8                     ; tiled
361
    ;mov  eax, 8                     ; tiled
362
    mov  ebx, 90*65536+63
362
    mov  ebx, 90*65536+63
363
    mov  ecx, y_add*65536+y_s
363
    mov  ecx, y_add*65536+y_s
364
    mov  edx, 101
364
    mov  edx, 101
365
    mov  esi, [sc.work_button]
365
    mov  esi, [sc.work_button]
366
    mcall
366
    mcall
367
 
367
 
368
    ;mov  eax, 8                     ; stretch
368
    ;mov  eax, 8                     ; stretch
369
    mov  ebx, 154*65536+61
369
    mov  ebx, 154*65536+61
370
    mov  edx, 102
370
    mov  edx, 102
371
    mcall
371
    mcall
372
 
372
 
373
    mov  eax, 4
373
    mov  eax, 4
374
    mov  ebx, 215*65536+5
374
    mov  ebx, 215*65536+5
375
    mov  ecx, [sc.work_text]
375
    mov  ecx, [sc.work_text]
376
    mov  edx, apply_text
376
    mov  edx, apply_text
377
    mov  esi, apply_text.size
377
    mov  esi, apply_text.size
378
    mcall
378
    mcall
379
 
379
 
380
    mov  ebx, 14*65536+301
380
    mov  ebx, 14*65536+301
381
    mov  edx, image_buttons_text
381
    mov  edx, image_buttons_text
382
    mov  esi, image_buttons_text.size
382
    mov  esi, image_buttons_text.size
383
    mcall
383
    mcall
384
 
384
 
385
    mov  ebx, 14*65536+(y_add2+27)
385
    mov  ebx, 14*65536+(y_add2+27)
386
    mov  edx, simple_text
386
    mov  edx, simple_text
387
    mov  esi, simple_text.size
387
    mov  esi, simple_text.size
388
    mcall
388
    mcall
389
 
389
 
390
    mov  ecx, (y_add2)*65536+20
390
    mov  ecx, (y_add2)*65536+20
391
    mov  ebx, (13)*65536+25
391
    mov  ebx, (13)*65536+25
392
    mov  edx, 121
392
    mov  edx, 121
393
    mov  esi, [sc.work_button]
393
    mov  esi, [sc.work_button]
394
    mov  edi, 9
394
    mov  edi, 9
395
    mov  eax, 8
395
    mov  eax, 8
396
  @@:
396
  @@:
397
    mcall
397
    mcall
398
    add  ebx, 29*65536
398
    add  ebx, 29*65536
399
    inc  edx
399
    inc  edx
400
    dec  edi
400
    dec  edi
401
    jnz  @b
401
    jnz  @b
402
 
402
 
403
 
403
 
404
    mov  edx, 34+4
404
    mov  edx, 34+4
405
    mov  edi, 4
405
    mov  edi, 4
406
    ;mov  eax, 8
406
    ;mov  eax, 8
407
    mov  ebx, 13*65536+18
407
    mov  ebx, 13*65536+18
408
    mov  ecx, y_add*65536+y_s
408
    mov  ecx, y_add*65536+y_s
409
  @@:
409
  @@:
410
    mcall
410
    mcall
411
    inc  edx
411
    inc  edx
412
    add  ebx, 19*65536
412
    add  ebx, 19*65536
413
    dec  edi
413
    dec  edi
414
    jnz  @b
414
    jnz  @b
415
 
415
 
416
 
416
 
417
    ;-----------------------
417
    ;-----------------------
418
    mov  eax,8
418
    mov  eax,8
419
    mov  edx,14                            ; button number
419
    mov  edx,14                            ; button number
420
    mov  ebx,(13)*65536+17                 ; button start x & size
420
    mov  ebx,(13)*65536+17                 ; button start x & size
421
    mov  ecx,(y_add2+40)*65536+14          ; button start y & size
421
    mov  ecx,(y_add2+40)*65536+14          ; button start y & size
422
 
422
 
423
  newcb:
423
  newcb:
424
    mov  esi,[(edx-14)*4+colors]
424
    mov  esi,[(edx-14)*4+colors]
425
 
425
 
426
    mcall
426
    mcall
427
 
427
 
428
    inc  edx
428
    inc  edx
429
    add  ebx,20*65536
429
    add  ebx,20*65536
430
 
430
 
431
    cmp  edx,27
431
    cmp  edx,27
432
    jnz  newcb
432
    jnz  newcb
433
    ;-----------------------
433
    ;-----------------------
434
 
434
 
435
    mov  eax, 4
435
    mov  eax, 4
436
    mov  ebx, 94*65536+4+y_add
436
    mov  ebx, 94*65536+4+y_add
437
    mov  ecx, [sc.work_button_text]
437
    mov  ecx, [sc.work_button_text]
438
    mov  edx, la2
438
    mov  edx, la2
439
    mov  esi, la2.size
439
    mov  esi, la2.size
440
    mcall
440
    mcall
441
 
441
 
442
    mov  eax,12
442
    mov  eax,12
443
    mov  ebx,2
443
    mov  ebx,2
444
    mcall
444
    mcall
445
 
445
 
446
    ret
446
    ret
447
 
447
 
448
 
448
 
449
 
449
 
450
; DATA SECTION
450
; DATA SECTION
451
 
451
 
452
if lang eq ru
452
if lang eq ru
453
    title db 'ƒ¥­¥à â®à ä®­  à ¡®ç¥£® á⮫ ',0
453
    title db 'ƒ¥­¥à â®à ä®­  à ¡®ç¥£® á⮫ ',0
454
else
454
else
455
    title db 'Background',0
455
    title db 'Background',0
456
end if
456
end if
457
 
457
 
458
lsz apply_text,\
458
lsz apply_text,\
459
    ru, "à¨¬¥­¨âì:",\
459
    ru, "à¨¬¥­¨âì:",\
460
    en, "Apply:"
460
    en, "Apply:"
461
 
461
 
462
lsz image_buttons_text,\
462
lsz image_buttons_text,\
463
    ru, "‚ë¡¥à¨â¥ ®¡à §¥æ:",\
463
    ru, "‚ë¡¥à¨â¥ ®¡à §¥æ:",\
464
    en, "Select pattern:"
464
    en, "Select pattern:"
465
 
465
 
466
lsz simple_text,\
466
lsz simple_text,\
467
    ru, "Ž¤­®æ¢¥â­ë© ä®­:",\
467
    ru, "Ž¤­®æ¢¥â­ë© ä®­:",\
468
    en, "Single-color background:"
468
    en, "Single-color background:"
469
 
469
 
470
lsz la2,\
470
lsz la2,\
471
    ru, "‡€ŒŽ‘’ˆ’œ  €‘’Ÿ“’œ",\
471
    ru, "‡€ŒŽ‘’ˆ’œ  €‘’Ÿ“’œ",\
472
    en, "  TILED     STRETCH"
472
    en, "  TILED     STRETCH"
473
 
473
 
474
 
474
 
475
xx   db    'x'
475
xx   db    'x'
476
 
476
 
477
colors:
477
colors:
478
    dd  0x770000
478
    dd  0x770000
479
    dd  0x007700
479
    dd  0x007700
480
    dd  0x000077
480
    dd  0x000077
481
    dd  0x777700
481
    dd  0x777700
482
    dd  0x770077
482
    dd  0x770077
483
    dd  0x007777
483
    dd  0x007777
484
    dd  0x777777
484
    dd  0x777777
485
    dd  0x335577
485
    dd  0x335577
486
    dd  0x775533
486
    dd  0x775533
487
    dd  0x773355
487
    dd  0x773355
488
    dd  0x553377
488
    dd  0x553377
489
    dd  0x111111
489
    dd  0x111111
490
    dd  0xcccccc
490
    dd  0xcccccc
491
 
491
 
492
fill:
492
fill:
493
    db  0x00,0x00,0x77
493
    db  0x00,0x00,0x77
494
    db  0x00,0x77,0x00
494
    db  0x00,0x77,0x00
495
    db  0x77,0x00,0x00
495
    db  0x77,0x00,0x00
496
    db  0x00,0x77,0x77
496
    db  0x00,0x77,0x77
497
    db  0x77,0x00,0x77
497
    db  0x77,0x00,0x77
498
    db  0x77,0x77,0x00
498
    db  0x77,0x77,0x00
499
    db  0x77,0x77,0x77
499
    db  0x77,0x77,0x77
500
    db  0x77,0x55,0x33
500
    db  0x77,0x55,0x33
501
    db  0x33,0x55,0x77
501
    db  0x33,0x55,0x77
502
    db  0x55,0x33,0x77
502
    db  0x55,0x33,0x77
503
    db  0x77,0x33,0x55
503
    db  0x77,0x33,0x55
504
    db  0x11,0x11,0x11
504
    db  0x11,0x11,0x11
505
    db  0xcc,0xcc,0xcc
505
    db  0xcc,0xcc,0xcc
506
 
506
 
507
shape:
507
shape:
508
 
508
 
509
    dd  1024,64
509
    dd  1024,64
510
    dd  1024,32
510
    dd  1024,32
511
    dd  2048,32
511
    dd  2048,32
512
    dd  4096,32
512
    dd  4096,32
513
 
513
 
514
    dd  512,16
514
    dd  512,16
515
    dd  1024,16
515
    dd  1024,16
516
    dd  2048,16
516
    dd  2048,16
517
    dd  4096,16
517
    dd  4096,16
518
 
518
 
519
    dd  64,32
519
    dd  64,32
520
    dd  64,16
520
    dd  64,16
521
    dd  32,32
521
    dd  32,32
522
    dd  8,8
522
    dd  8,8
523
    dd  16,16
523
    dd  16,16
524
    dd  64,64
524
    dd  64,64
525
 
525
 
526
usearray dd ptarray
526
usearray dd ptarray
527
 
527
 
528
arrays dd ptarray,ptarray2,ptarray3,ptarray4,ptarray5,ptarray6
528
arrays dd ptarray,ptarray2,ptarray3,ptarray4,ptarray5,ptarray6
529
        dd ptarray7,ptarray8,ptarray9
529
        dd ptarray7,ptarray8,ptarray9
530
 
530
 
531
ptarray:
531
ptarray:
532
 
532
 
533
    dd  150,50
533
    dd  150,50
534
    dd  120,30
534
    dd  120,30
535
    dd  44,180
535
    dd  44,180
536
    dd  50,66
536
    dd  50,66
537
    dd  27,6
537
    dd  27,6
538
    dd  95,212
538
    dd  95,212
539
    dd  128,177
539
    dd  128,177
540
    dd  201,212
540
    dd  201,212
541
    dd  172,201
541
    dd  172,201
542
    dd  250,100
542
    dd  250,100
543
    dd  24,221
543
    dd  24,221
544
    dd  11,123
544
    dd  11,123
545
    dd  248,32
545
    dd  248,32
546
    dd  34,21
546
    dd  34,21
547
    dd  777     ; <- end of array
547
    dd  777     ; <- end of array
548
 
548
 
549
ptarray2:
549
ptarray2:
550
 
550
 
551
    dd  0,0,50,50,100,100,150,150,200,200,250,250
551
    dd  0,0,50,50,100,100,150,150,200,200,250,250
552
    dd  50,150,150,50,200,100,100,200
552
    dd  50,150,150,50,200,100,100,200
553
    dd  777
553
    dd  777
554
 
554
 
555
ptarray3:
555
ptarray3:
556
 
556
 
557
    dd  55,150,150,55,200,105,105,200
557
    dd  55,150,150,55,200,105,105,200
558
    dd  30,30,220,220
558
    dd  30,30,220,220
559
    dd  777
559
    dd  777
560
 
560
 
561
ptarray4:
561
ptarray4:
562
 
562
 
563
    dd  196,0,196,64,196,128,196,196
563
    dd  196,0,196,64,196,128,196,196
564
    dd  64,32,64,96,64,150,64,228
564
    dd  64,32,64,96,64,150,64,228
565
    dd  777
565
    dd  777
566
 
566
 
567
ptarray5:
567
ptarray5:
568
 
568
 
569
    dd  196,0,196,64,196,128,196,196
569
    dd  196,0,196,64,196,128,196,196
570
    dd  64,0,64,64,64,128,64,196
570
    dd  64,0,64,64,64,128,64,196
571
    dd  777
571
    dd  777
572
 
572
 
573
ptarray6:
573
ptarray6:
574
 
574
 
575
    dd  49,49,128,50,210,50
575
    dd  49,49,128,50,210,50
576
    dd  50,128,128,128,210,128
576
    dd  50,128,128,128,210,128
577
    dd  50,210,128,210,210,210
577
    dd  50,210,128,210,210,210
578
 
578
 
579
    dd  777
579
    dd  777
580
 
580
 
581
ptarray7:
581
ptarray7:
582
 
582
 
583
    dd  0,0
583
    dd  0,0
584
    dd  196,196,64,64
584
    dd  196,196,64,64
585
    dd  128,0
585
    dd  128,0
586
    dd  0,128
586
    dd  0,128
587
    dd  64,64,196,64
587
    dd  64,64,196,64
588
    dd  196,196,64,196
588
    dd  196,196,64,196
589
    dd  128,128
589
    dd  128,128
590
 
590
 
591
    dd  777
591
    dd  777
592
 
592
 
593
ptarray8:
593
ptarray8:
594
 
594
 
595
    dd  0, 128
595
    dd  0, 128
596
    dd  0, 128
596
    dd  0, 128
597
    dd  128, 0
597
    dd  128, 0
598
    dd  0, 128
598
    dd  0, 128
599
    dd  128, 0
599
    dd  128, 0
600
    dd  0, 128
600
    dd  0, 128
601
    dd  128, 0
601
    dd  128, 0
602
    dd  0, 128
602
    dd  0, 128
603
    dd  128, 0
603
    dd  128, 0
604
    dd  128, 128
604
    dd  128, 128
605
 
605
 
606
    dd  777
606
    dd  777
607
 
607
 
608
ptarray9:
608
ptarray9:
609
 
609
 
610
 
610
 
611
     dd  0,248,64,128,128,64,196,48,160,160,94,224,240,96,5,5,777
611
     dd  0,248,64,128,128,64,196,48,160,160,94,224,240,96,5,5,777
612
 
612
 
613
 
613
 
614
I_END:
614
I_END:
615
sc system_colors
615
sc system_colors
616
 
616
 
617
I_Param:
617
I_Param:
618
 
618
 
619
image:
619
image: