Subversion Repositories Kolibri OS

Rev

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

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