Subversion Repositories Kolibri OS

Rev

Rev 109 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
31 halyavin 1
 
2
;    MIXER
3
;
4
;    Compile with FASM
5
;
6
7
 
485 heavyiron 8
include '..\..\..\macros.inc'
9
10
 
11
 
31 halyavin 12
 org	0x0
485 heavyiron 13
 db	'MENUET01'    ; header
14
 dd	0x01	      ; header version
15
 dd	START	      ; entry point
16
 dd	I_END	      ; image size
17
 dd	0x1000        ; required memory
18
 dd	0x1000        ; esp
19
 dd	0x0 , 0x0     ; I_Param , I_Path
20
31 halyavin 21
 
22
 
23
 
24
25
 
485 heavyiron 26
    call draw_window            ; at first, draw the window
31 halyavin 27
28
 
29
 
30
31
 
32
    mcall
485 heavyiron 33
31 halyavin 34
 
35
    jz   red
36
    cmp  eax,2                  ; key in buffer ?
37
    jz   key
38
    cmp  eax,3                  ; button in buffer ?
39
    jz   button
40
41
 
42
43
 
44
    mov  eax,2                  ; just read it and ignore
45
    mcall
485 heavyiron 46
31 halyavin 47
 
48
49
 
50
    mov  eax,17
51
    mcall
485 heavyiron 52
31 halyavin 53
 
54
    jnz  noclose
55
    or   eax,-1                 ; close this program
485 heavyiron 56
    mcall
57
  noclose:
31 halyavin 58
59
 
60
    jnz  nochange
61
    mov  al,byte [usecard]
62
    cld
63
    inc  al
64
    and  al,3
65
    cmp  al,0
66
    jnz  nozer
67
    mov  al,1
68
  nozer:
69
    mov  byte [usecard],al
70
71
 
72
73
 
74
75
 
76
    jz   usesb16
77
78
 
79
    jnz  nousesb16II
80
    jmp  usesb16II
81
  nousesb16II:
82
83
 
84
    jnz  nousewss
85
    jmp  usewss
86
  nousewss:
87
88
 
89
 
90
 
91
92
 
93
 
94
95
 
96
 
97
98
 
99
    cmp  ah,al
100
    jge  nomain
101
102
 
103
    cmp  ah,12
104
    jnz  nomain12
105
    mov  ecx,3*16+3
106
  nomain12:
107
    cmp  ah,13
108
    jnz  nomain13
109
    mov  ecx,7*16+7
110
  nomain13:
111
    cmp  ah,14
112
    jnz  nomain14
113
    mov  ecx,11*16+11
114
  nomain14:
115
    cmp  ah,15
116
    jnz  nomain15
117
    mov  ecx,15*16+15
118
  nomain15:
119
120
 
121
    mov  ebx,1
122
    mcall
485 heavyiron 123
31 halyavin 124
 
125
126
 
127
128
 
129
    cmp  ah,al
130
    jge  nocd
131
132
 
133
134
 
135
    jnz  nocd12
136
    mov  ecx,3*16+3
137
  nocd12:
138
    cmp  ah,23
139
    jnz  nocd13
140
    mov  ecx,7*16+7
141
  nocd13:
142
    cmp  ah,24
143
    jnz  nocd14
144
    mov  ecx,11*16+11
145
  nocd14:
146
    cmp  ah,25
147
    jnz  nocd15
148
    mov  ecx,15*16+15
149
  nocd15:
150
151
 
152
    mov  ebx,2
153
    mcall
485 heavyiron 154
31 halyavin 155
 
156
157
 
158
159
 
160
 
161
162
 
163
 
164
 
165
 
166
167
 
168
169
 
170
171
 
172
    cmp  ah,al
173
    jge  IIwnomain
174
175
 
176
    cmp  ah,12
177
    jnz  IIwnomain12
178
    mov  ecx,50
179
  IIwnomain12:
180
    cmp  ah,13
181
    jnz  IIwnomain13
182
    mov  ecx,150
183
  IIwnomain13:
184
    cmp  ah,14
185
    jnz  IIwnomain14
186
    mov  ecx,200
187
  IIwnomain14:
188
    cmp  ah,15
189
    jnz  IIwnomain15
190
    mov  ecx,255
191
  IIwnomain15:
192
193
 
194
    mov  ebx,1
195
    mcall
485 heavyiron 196
31 halyavin 197
 
198
199
 
200
201
 
202
    cmp  ah,al
203
    jge  IIwnocd
204
205
 
206
207
 
208
    jnz  IIwnocd12
209
    mov  ecx,50
210
  IIwnocd12:
211
    cmp  ah,23
212
    jnz  IIwnocd13
213
    mov  ecx,150
214
  IIwnocd13:
215
    cmp  ah,24
216
    jnz  IIwnocd14
217
    mov  ecx,200
218
  IIwnocd14:
219
    cmp  ah,25
220
    jnz  IIwnocd15
221
    mov  ecx,255
222
  IIwnocd15:
223
224
 
225
    mov  ebx,2
226
    mcall
485 heavyiron 227
31 halyavin 228
 
229
230
 
231
232
 
233
 
234
235
 
236
 
237
 
238
 
239
 
240
 
241
 
242
 
243
 
244
245
 
246
247
 
248
249
 
250
    cmp  ah,al
251
    jge  wnomain
252
253
 
254
    cmp  ah,12
255
    jnz  wnomain12
256
    mov  ecx,200
257
  wnomain12:
258
    cmp  ah,13
259
    jnz  wnomain13
260
    mov  ecx,150
261
  wnomain13:
262
    cmp  ah,14
263
    jnz  wnomain14
264
    mov  ecx,70
265
  wnomain14:
266
    cmp  ah,15
267
    jnz  wnomain15
268
    mov  ecx,0
269
  wnomain15:
270
271
 
272
    mov  ebx,1
273
    mcall
485 heavyiron 274
31 halyavin 275
 
276
277
 
278
279
 
280
    cmp  ah,al
281
    jge  wnocd
282
283
 
284
285
 
286
    jnz  wnocd12
287
    mov  ecx,200
288
  wnocd12:
289
    cmp  ah,23
290
    jnz  wnocd13
291
    mov  ecx,150
292
  wnocd13:
293
    cmp  ah,24
294
    jnz  wnocd14
295
    mov  ecx,70
296
  wnocd14:
297
    cmp  ah,25
298
    jnz  wnocd15
299
    mov  ecx,0
300
  wnocd15:
301
302
 
303
    mov  ebx,2
304
    mcall
485 heavyiron 305
31 halyavin 306
 
307
308
 
309
310
 
311
 
312
313
 
314
 
315
 
316
 
317
;   *******  WINDOW DEFINITIONS AND DRAW ********
318
;   *********************************************
319
320
 
321
 
322
323
 
324
    mov  ebx,1                     ; 1, start of draw
325
    mcall
485 heavyiron 326
31 halyavin 327
 
328
    mov  eax,0                     ; function 0 : define and draw window
329
    mov  ebx,100*65536+195         ; [x start] *65536 + [x size]
330
    mov  ecx,100*65536+140         ; [y start] *65536 + [y size]
331
    mov  edx,[wcolor]              ; color of work area RRGGBB
332
    mov  edi,title                 ; WINDOW LABEL
485 heavyiron 333
    mcall
334
31 halyavin 335
 
336
 
337
    mov  ebx,10*65536
338
339
 
340
341
 
342
    push ebx
343
344
 
345
346
 
347
    mov  bx,22                     ; [x start] *65536 + [x size]
348
    mov  ecx,35*65536+8            ; [y start] *65536 + [y size]
349
    dec  edx
350
    mcall
485 heavyiron 351
    mov  bx,22                     ; [x start] *65536 + [x size]
31 halyavin 352
    mov  ecx,45*65536+8            ; [y start] *65536 + [y size]
353
    dec  edx
354
    mcall
485 heavyiron 355
    mov  bx,22                     ; [x start] *65536 + [x size]
31 halyavin 356
    mov  ecx,55*65536+8            ; [y start] *65536 + [y size]
357
    dec  edx
358
    mcall
485 heavyiron 359
    mov  bx,22                     ; [x start] *65536 + [x size]
31 halyavin 360
    mov  ecx,65*65536+8            ; [y start] *65536 + [y size]
361
    dec  edx
362
    mcall
485 heavyiron 363
    mov  bx,22                     ; [x start] *65536 + [x size]
31 halyavin 364
    mov  ecx,75*65536+8            ; [y start] *65536 + [y size]
365
    dec  edx
366
    mcall
485 heavyiron 367
31 halyavin 368
 
369
    pop  edx
370
371
 
372
    add  edx,10
373
374
 
375
    jz   butdone
376
377
 
378
379
 
380
381
 
382
 
383
    mov  ebx,10*65536+104          ; [x start] *65536 + [y start]
384
    mov  ecx,0x00ffffff            ; color of text RRGGBB
385
    mov  edx,text                  ; pointer to text beginning
386
    mov  esi,29
387
    mcall
485 heavyiron 388
31 halyavin 389
 
390
    mov  ebx,(5)*65536+185         ; [x start] *65536 + [x size]
391
    mov  ecx,120*65536+14          ; [y start] *65536 + [y size]
392
    mov  edx,101                   ; button id
393
    mov  esi,[bcolor]              ; button color RRGGBB
394
    mcall
485 heavyiron 395
31 halyavin 396
 
397
398
 
399
    mov  ebx,2                     ; 2, end of draw
400
    mcall
485 heavyiron 401
31 halyavin 402
 
403
404
 
405
 
406
407
 
408
409
 
410
    mov  ebx,14*65536+160
411
    mov  ecx,123*65536+10
412
    mov  edx,[bcolor]
413
    mcall
485 heavyiron 414
31 halyavin 415
 
416
    mov  edx,c3
417
418
 
419
    jnz  nosbc
420
    mov  edx,c1
421
  nosbc:
422
    cmp  al,2
423
    jnz  nosbcII
424
    mov  edx,c2
425
  nosbcII:
426
    cmp  al,3
427
    jnz  nowssc
428
    mov  edx,c3
429
  nowssc:
430
431
 
432
    mov  ebx,14*65536+123
433
    mov  ecx,0x00ffffff
434
    mov  esi,30
435
    mcall
485 heavyiron 436
31 halyavin 437
 
438
439
 
440
441
 
442
 
443
 
444
445
 
446
447
 
485 heavyiron 448
31 halyavin 449
 
450
 
451
    db 'MAIN  CD  WAVE MPU4 AUX1 AUX2'
452
453
 
454
c2  db 'SOUND BLASTER 16 - MIXER II   '
455
c3  db 'WINDOWS SOUND SYSTEM          '
456
457
 
458
 
459
460
 
485 heavyiron 461
31 halyavin 462
 
463