Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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