Subversion Repositories Kolibri OS

Rev

Rev 532 | 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
    xor  byte [usecard], 3      ; 1 <-> 2
532 diamond 62
31 halyavin 63
 
64
65
 
66
67
 
68
    jnz  usesb16II
532 diamond 69
31 halyavin 70
 
71
72
 
73
 
74
75
 
76
    cmp  ah,al
77
    jge  nomain
78
79
 
80
    cmp  ah,12
81
    jnz  nomain12
82
    mov  ecx,3*16+3
83
  nomain12:
84
    cmp  ah,13
85
    jnz  nomain13
86
    mov  ecx,7*16+7
87
  nomain13:
88
    cmp  ah,14
89
    jnz  nomain14
90
    mov  ecx,11*16+11
91
  nomain14:
92
    cmp  ah,15
93
    jnz  nomain15
94
    mov  ecx,15*16+15
95
  nomain15:
96
97
 
98
    mov  ebx,1
99
    mcall
485 heavyiron 100
31 halyavin 101
 
102
103
 
104
105
 
106
    cmp  ah,al
107
    jge  nocd
108
109
 
110
111
 
112
    jnz  nocd12
113
    mov  ecx,3*16+3
114
  nocd12:
115
    cmp  ah,23
116
    jnz  nocd13
117
    mov  ecx,7*16+7
118
  nocd13:
119
    cmp  ah,24
120
    jnz  nocd14
121
    mov  ecx,11*16+11
122
  nocd14:
123
    cmp  ah,25
124
    jnz  nocd15
125
    mov  ecx,15*16+15
126
  nocd15:
127
128
 
129
    mov  ebx,2
130
    mcall
485 heavyiron 131
31 halyavin 132
 
133
134
 
135
136
 
137
 
138
139
 
140
 
141
 
142
 
143
144
 
145
146
 
147
148
 
149
    cmp  ah,al
150
    jge  IIwnomain
151
152
 
153
    cmp  ah,12
154
    jnz  IIwnomain12
155
    mov  ecx,50
156
  IIwnomain12:
157
    cmp  ah,13
158
    jnz  IIwnomain13
159
    mov  ecx,150
160
  IIwnomain13:
161
    cmp  ah,14
162
    jnz  IIwnomain14
163
    mov  ecx,200
164
  IIwnomain14:
165
    cmp  ah,15
166
    jnz  IIwnomain15
167
    mov  ecx,255
168
  IIwnomain15:
169
170
 
171
    mov  ebx,1
172
    mcall
485 heavyiron 173
31 halyavin 174
 
175
176
 
177
178
 
179
    cmp  ah,al
180
    jge  IIwnocd
181
182
 
183
184
 
185
    jnz  IIwnocd12
186
    mov  ecx,50
187
  IIwnocd12:
188
    cmp  ah,23
189
    jnz  IIwnocd13
190
    mov  ecx,150
191
  IIwnocd13:
192
    cmp  ah,24
193
    jnz  IIwnocd14
194
    mov  ecx,200
195
  IIwnocd14:
196
    cmp  ah,25
197
    jnz  IIwnocd15
198
    mov  ecx,255
199
  IIwnocd15:
200
201
 
202
    mov  ebx,2
203
    mcall
485 heavyiron 204
31 halyavin 205
 
206
207
 
208
209
 
210
 
211
212
 
213
 
214
 
215
;   *******  WINDOW DEFINITIONS AND DRAW ********
216
;   *********************************************
217
218
 
219
 
220
221
 
222
    mov  ebx,1                     ; 1, start of draw
223
    mcall
485 heavyiron 224
31 halyavin 225
 
226
    mov  eax,0                     ; function 0 : define and draw window
227
    mov  ebx,100*65536+195         ; [x start] *65536 + [x size]
228
    mov  ecx,100*65536+140         ; [y start] *65536 + [y size]
229
    mov  edx,[wcolor]              ; color of work area RRGGBB
230
    mov  edi,title                 ; WINDOW LABEL
485 heavyiron 231
    mcall
232
31 halyavin 233
 
234
 
235
    mov  ebx,10*65536+22
532 diamond 236
31 halyavin 237
 
238
239
 
240
241
 
242
243
 
244
    mov  ecx,35*65536+8            ; [y start] *65536 + [y size]
245
    dec  edx
246
    mcall
485 heavyiron 247
    mov  ecx,45*65536+8            ; [y start] *65536 + [y size]
31 halyavin 248
    dec  edx
249
    mcall
485 heavyiron 250
    mov  ecx,55*65536+8            ; [y start] *65536 + [y size]
31 halyavin 251
    dec  edx
252
    mcall
485 heavyiron 253
    mov  ecx,65*65536+8            ; [y start] *65536 + [y size]
31 halyavin 254
    dec  edx
255
    mcall
485 heavyiron 256
    mov  ecx,75*65536+8            ; [y start] *65536 + [y size]
31 halyavin 257
    dec  edx
258
    mcall
485 heavyiron 259
31 halyavin 260
 
261
262
 
263
    add  edx,10
264
265
 
266
    jnz  newbut
532 diamond 267
31 halyavin 268
 
269
 
270
    mov  ebx,10*65536+104          ; [x start] *65536 + [y start]
271
    mov  ecx,0x00ffffff            ; color of text RRGGBB
272
    mov  edx,text                  ; pointer to text beginning
273
    mov  esi,29
274
    mcall
485 heavyiron 275
31 halyavin 276
 
277
    mov  ebx,(5)*65536+185         ; [x start] *65536 + [x size]
278
    mov  ecx,120*65536+14          ; [y start] *65536 + [y size]
279
    mov  edx,101                   ; button id
280
    mov  esi,[bcolor]              ; button color RRGGBB
281
    mcall
485 heavyiron 282
31 halyavin 283
 
284
285
 
286
    mov  ebx,2                     ; 2, end of draw
287
    mcall
485 heavyiron 288
31 halyavin 289
 
290
291
 
292
 
293
294
 
295
296
 
297
    mov  ebx,14*65536+160
298
    mov  ecx,123*65536+10
299
    mov  edx,[bcolor]
300
    mcall
485 heavyiron 301
31 halyavin 302
 
532 diamond 303
31 halyavin 304
 
532 diamond 305
    jnz  nosbcII
31 halyavin 306
    mov  edx,c2
307
  nosbcII:
308
309
 
310
    mov  ebx,14*65536+123
311
    mov  ecx,0x00ffffff
312
    mov  esi,30
313
    mcall
485 heavyiron 314
31 halyavin 315
 
316
317
 
318
319
 
320
 
321
 
322
323
 
324
325
 
551 spraid 326
31 halyavin 327
 
328
 
329
    db 'MAIN  CD  WAVE MPU4 AUX1 AUX2'
330
331
 
332
c2  db 'SOUND BLASTER 16 - MIXER II   '
333
334
 
335
 
532 diamond 336
31 halyavin 337
 
485 heavyiron 338
31 halyavin 339
 
340