Rev 485 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
31 | halyavin | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ; ; |
||
3 | ; Audio CD player; code by Dmitry Yushko - dma@bn.by ; |
||
4 | ; ; |
||
5 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
6 | |||
485 | heavyiron | 7 | include "..\..\..\macros.inc" |
31 | halyavin | 8 | include "lang.inc" |
9 | |||
10 | FALSE equ 0 |
||
11 | TRUE equ 1 |
||
12 | |||
13 | ESC_KEY equ 27 |
||
14 | LEFT_KEY equ 176 |
||
15 | RIGHT_KEY equ 179 |
||
16 | |||
17 | NORMAL_PLAY equ 0 |
||
18 | REPEAT_TRACK equ 1 |
||
19 | REPEAT_DISK equ 2 |
||
20 | SHUFFLE_DISK equ 3 |
||
21 | |||
22 | COLOR_FUNC_BUTS equ 0x00dddddd |
||
23 | |||
24 | use32 |
||
25 | |||
26 | org 0x0 |
||
27 | db 'MENUET01' ; 8 byte id |
||
28 | dd 0x01 ; required os |
||
29 | dd START ; program start |
||
30 | dd I_END ; program image size |
||
31 | dd 0x2000 ; required amount of memory |
||
32 | dd 0x2000 ; esp = 0x7fff0 |
||
33 | dd 0x0, 0x0 ; reserved=no extended header |
||
34 | |||
35 | START: |
||
36 | call chk_cdrom ; start of execution |
||
37 | call read_cd |
||
485 | heavyiron | 38 | |
39 | red: ; redraw |
||
31 | halyavin | 40 | call draw_window ; at first, draw the window |
41 | still: |
||
42 | |||
43 | mov eax,23 |
||
44 | mov ebx,10 ; wait here for event |
||
485 | heavyiron | 45 | mcall |
31 | halyavin | 46 | |
47 | cmp eax,1 ; redraw request ? |
||
48 | jz red |
||
49 | cmp eax,2 ; key in buffer ? |
||
50 | jz key |
||
51 | cmp eax,3 ; button in buffer ? |
||
52 | jz button |
||
53 | |||
54 | call draw_info |
||
55 | cmp [curr_trk],0 |
||
56 | je @f |
||
57 | call current_trk_time |
||
58 | @@: |
||
59 | jmp still |
||
60 | |||
61 | |||
62 | key: ; key |
||
63 | mov eax,2 ; just read it and ignore |
||
485 | heavyiron | 64 | mcall |
31 | halyavin | 65 | |
66 | ;====== hotkeys: |
||
67 | cmp ah,0x61 |
||
68 | jb @f |
||
69 | cmp ah,0x7a |
||
70 | ja @f |
||
71 | and ah,11011111b |
||
72 | @@: |
||
73 | |||
74 | cmp ah,'P' ;PLAY |
||
75 | jne no_key_play |
||
76 | call play_acd |
||
77 | jmp still |
||
78 | no_key_play: |
||
79 | |||
80 | cmp ah,'S' ;STOP |
||
81 | jne no_key_stop |
||
82 | mov [if_paused],FALSE |
||
83 | call stop_playing |
||
84 | jmp still |
||
85 | no_key_stop: |
||
86 | |||
87 | cmp ah,'N' ;NEXT |
||
88 | jne no_key_next |
||
89 | call play_next_trk |
||
90 | jmp still |
||
91 | no_key_next: |
||
92 | |||
93 | cmp ah,'B' ;BACK |
||
94 | jne no_key_back |
||
95 | call play_back_trk |
||
96 | jmp still |
||
97 | no_key_back: |
||
98 | |||
99 | cmp ah,'F' ;FORWARD |
||
100 | jne no_key_fwd |
||
101 | call fast_forward |
||
102 | jmp still |
||
103 | no_key_fwd: |
||
104 | |||
105 | cmp ah,'R' ;REWIND |
||
106 | jne no_key_rewind |
||
107 | call fast_rewind |
||
108 | jmp still |
||
109 | no_key_rewind: |
||
110 | |||
111 | cmp ah,'M' ;MODE |
||
112 | jne no_key_mode |
||
113 | call change_mode |
||
114 | jmp still |
||
115 | no_key_mode: |
||
116 | |||
117 | |||
118 | cmp ah,'L' ;READ PLAYLIST |
||
119 | jne no_key_list |
||
120 | mov [if_paused],FALSE |
||
121 | mov [curr_trk],0 |
||
122 | call stop_playing |
||
123 | call chk_cdrom |
||
124 | call read_cd |
||
125 | jmp still |
||
126 | no_key_list: |
||
127 | |||
128 | cmp ah,50 ;F1 key |
||
129 | jz itsahelpkey |
||
130 | |||
131 | cmp ah,'H' ;HELP |
||
132 | jne no_key_help |
||
133 | itsahelpkey: |
||
134 | cmp [flag],4 |
||
135 | je still |
||
136 | cmp [flag],1 |
||
137 | jne was_it_ok_false |
||
138 | mov [was_it_ok],TRUE |
||
139 | jmp flag4_done |
||
140 | was_it_ok_false: |
||
141 | mov [was_it_ok],FALSE |
||
142 | flag4_done: |
||
143 | mov [flag],4 |
||
144 | mov [help_screen],1 |
||
145 | call draw_window |
||
146 | jmp still |
||
147 | no_key_help: |
||
148 | |||
149 | |||
150 | cmp ah,ESC_KEY |
||
151 | jne no_esc_key |
||
152 | cmp [flag],4 |
||
153 | jne still |
||
154 | cmp [was_it_ok],FALSE |
||
155 | jne was_it_ok_true |
||
156 | mov [flag],0 |
||
157 | jmp end_esc_key |
||
158 | was_it_ok_true: |
||
159 | mov [flag],1 |
||
160 | end_esc_key: |
||
161 | call draw_window |
||
162 | no_esc_key: |
||
163 | |||
164 | cmp ah,LEFT_KEY |
||
165 | jne no_left_key |
||
166 | cmp [flag],4 |
||
167 | jne still |
||
168 | cmp [help_screen],1 |
||
169 | jz still |
||
170 | dec [help_screen] |
||
171 | call draw_window |
||
172 | no_left_key: |
||
173 | |||
174 | cmp ah,RIGHT_KEY |
||
175 | jne no_right_key |
||
176 | cmp [flag],4 |
||
177 | jne still |
||
178 | cmp [help_screen],3 |
||
179 | jz still |
||
180 | inc [help_screen] |
||
181 | call draw_window |
||
182 | no_right_key: |
||
183 | |||
184 | |||
185 | jmp still |
||
186 | |||
187 | |||
188 | button: ; button |
||
189 | mov eax,17 |
||
485 | heavyiron | 190 | mcall |
31 | halyavin | 191 | |
192 | cmp ah,1 ; button id=1 ? |
||
193 | jnz no_but_close |
||
194 | mov eax,24 |
||
195 | mov ebx,3 |
||
485 | heavyiron | 196 | mcall |
31 | halyavin | 197 | mov eax,0xffffffff ; close this program |
485 | heavyiron | 198 | mcall |
31 | halyavin | 199 | no_but_close: |
200 | |||
201 | cmp ah,2 |
||
202 | jne no_but_play |
||
203 | call play_acd |
||
204 | jmp still |
||
205 | no_but_play: |
||
206 | |||
207 | cmp ah,3 |
||
208 | jne no_but_stop |
||
209 | mov [if_paused],FALSE |
||
210 | call stop_playing |
||
211 | jmp still |
||
212 | no_but_stop: |
||
213 | |||
214 | cmp ah,4 |
||
215 | jne no_but_reread |
||
216 | mov [curr_trk],0 |
||
217 | call chk_cdrom |
||
218 | call read_cd |
||
219 | mov [if_paused],FALSE |
||
220 | call stop_playing |
||
221 | jmp still |
||
222 | no_but_reread: |
||
223 | |||
224 | cmp ah,5 |
||
225 | jne no_but_next |
||
226 | call play_next_trk |
||
227 | jmp still |
||
228 | no_but_next: |
||
229 | |||
230 | cmp ah,6 |
||
231 | jne no_but_back |
||
232 | call play_back_trk |
||
233 | jmp still |
||
234 | no_but_back: |
||
235 | |||
236 | cmp ah,7 |
||
237 | jne no_but_mode |
||
238 | call change_mode |
||
239 | jmp still |
||
240 | no_but_mode: |
||
241 | |||
242 | cmp ah,8 |
||
243 | jne no_but_frew |
||
244 | call fast_rewind |
||
245 | jmp still |
||
246 | no_but_frew: |
||
247 | |||
248 | cmp ah,9 |
||
249 | jne no_but_ffwd |
||
250 | call fast_forward |
||
251 | jmp still |
||
252 | no_but_ffwd: |
||
253 | |||
254 | cmp ah,10 |
||
255 | jb no_but_track |
||
256 | cmp ah,40 |
||
257 | ja no_but_track |
||
258 | call read_cd |
||
259 | cmp [flag],1 |
||
260 | jne no_but_track |
||
261 | mov cl,ah |
||
262 | sub cl,10 |
||
263 | mov [curr_trk],cl |
||
264 | mov cl,[max_trk] |
||
265 | mov [shuftab],cl |
||
266 | call stop_playing |
||
267 | call renew_shuftab |
||
268 | call play_n_track |
||
269 | call rem_time_trk |
||
270 | jmp still |
||
271 | no_but_track: |
||
272 | |||
273 | jmp still |
||
274 | |||
275 | |||
276 | change_mode: |
||
277 | cmp [mode],3 |
||
278 | jne inc_mode |
||
279 | mov [mode],0 |
||
280 | jmp end_but_mode |
||
281 | inc_mode: |
||
282 | inc [mode] |
||
283 | end_but_mode: |
||
284 | call draw_info |
||
285 | ret |
||
286 | |||
287 | play_next_trk: |
||
288 | cmp [curr_trk],0 |
||
289 | je @play_next_trk |
||
290 | cmp [if_paused],TRUE |
||
291 | je @play_next_trk |
||
292 | cmp [mode],NORMAL_PLAY |
||
293 | jne play_next_mode1 |
||
294 | xor eax,eax |
||
295 | mov al,[curr_trk] |
||
296 | cmp [max_trk],al |
||
297 | je @play_next_trk |
||
298 | inc [curr_trk] |
||
299 | cmp [if_stopped],TRUE |
||
300 | je @play_next_trk |
||
301 | call play_n_track |
||
302 | jmp @play_next_trk |
||
303 | play_next_mode1: |
||
304 | cmp [mode],REPEAT_TRACK |
||
305 | jne play_next_mode2 |
||
306 | cmp [if_stopped],TRUE |
||
307 | je @play_next_trk |
||
308 | call play_n_track |
||
309 | jmp @play_next_trk |
||
310 | play_next_mode2: |
||
311 | cmp [mode],REPEAT_DISK |
||
312 | jne play_next_mode3 |
||
313 | xor eax,eax |
||
314 | mov al,[curr_trk] |
||
315 | cmp [max_trk],al |
||
316 | jne play_next_mode2_go |
||
317 | mov [curr_trk],1 |
||
318 | cmp [if_stopped],TRUE |
||
319 | je @play_next_trk |
||
320 | call play_n_track |
||
321 | jmp @play_next_trk |
||
322 | play_next_mode2_go: |
||
323 | inc [curr_trk] |
||
324 | cmp [if_stopped],TRUE |
||
325 | je @play_next_trk |
||
326 | call play_n_track |
||
327 | jmp @play_next_trk |
||
328 | play_next_mode3: |
||
329 | cmp [mode],SHUFFLE_DISK |
||
330 | jne @play_next_trk |
||
331 | call shuffle_track |
||
332 | @play_next_trk: |
||
333 | ret |
||
334 | |||
335 | play_back_trk: |
||
336 | cmp [curr_trk],0 |
||
337 | je @play_back_trk |
||
338 | cmp [if_paused],TRUE |
||
339 | je @play_back_trk |
||
340 | cmp [mode],NORMAL_PLAY |
||
341 | jne play_back_mode1 |
||
342 | xor eax,eax |
||
343 | mov al,[curr_trk] |
||
344 | cmp al,1 |
||
345 | je @play_back_trk |
||
346 | dec [curr_trk] |
||
347 | cmp [if_stopped],TRUE |
||
348 | je @play_next_trk |
||
349 | call play_n_track |
||
350 | jmp @play_back_trk |
||
351 | play_back_mode1: |
||
352 | cmp [mode],REPEAT_TRACK |
||
353 | jne play_back_mode2 |
||
354 | cmp [if_stopped],TRUE |
||
355 | je @play_next_trk |
||
356 | call play_n_track |
||
357 | jmp @play_back_trk |
||
358 | play_back_mode2: |
||
359 | cmp [mode],REPEAT_DISK |
||
360 | jne play_back_mode3 |
||
361 | xor eax,eax |
||
362 | mov al,[curr_trk] |
||
363 | cmp al,1 |
||
364 | jne play_back_mode2_go |
||
365 | mov al,[max_trk] |
||
366 | mov [curr_trk],al |
||
367 | cmp [if_stopped],TRUE |
||
368 | je @play_next_trk |
||
369 | call play_n_track |
||
370 | jmp @play_back_trk |
||
371 | play_back_mode2_go: |
||
372 | dec [curr_trk] |
||
373 | cmp [if_stopped],TRUE |
||
374 | je @play_next_trk |
||
375 | call play_n_track |
||
376 | jmp @play_back_trk |
||
377 | play_back_mode3: ;(shuffle) |
||
378 | ; call shuffle_track |
||
379 | @play_back_trk: |
||
380 | ret |
||
381 | |||
382 | |||
383 | current_trk_time: |
||
384 | cmp [if_stopped],TRUE |
||
385 | je menshe |
||
386 | call get_uptime |
||
387 | mov ebx,[stimtrk] |
||
388 | sub eax,ebx |
||
389 | ; eax now is seconds from track start * 100 |
||
390 | xor edx,edx |
||
391 | mov ecx,100 |
||
392 | div ecx |
||
393 | mov [curr_trk_pg_time],eax |
||
394 | mov ebx,[curr_trk_length] |
||
395 | ; add eax,1 ;{inc curr time on 1 sec) |
||
396 | cmp eax,ebx |
||
397 | jb menshe |
||
398 | call stop_playing |
||
399 | cmp [mode],SHUFFLE_DISK |
||
400 | jne @f |
||
401 | call shuffle_track |
||
402 | @@: |
||
403 | cmp [mode],REPEAT_TRACK |
||
404 | je @@mode_repeat_1 |
||
405 | mov al,[max_trk] |
||
406 | cmp [curr_trk],al |
||
407 | jb @@next_trk_ok |
||
408 | cmp [mode],REPEAT_DISK |
||
409 | jne menshe |
||
410 | mov [curr_trk],0 |
||
411 | @@next_trk_ok: |
||
412 | inc [curr_trk] |
||
413 | @@mode_repeat_1: |
||
414 | call play_n_track |
||
415 | menshe: |
||
416 | ret |
||
417 | |||
418 | |||
419 | rem_time_trk: |
||
420 | call get_uptime |
||
421 | mov [stimtrk],eax |
||
422 | ret |
||
423 | |||
424 | fast_forward: |
||
425 | cmp [if_stopped],TRUE |
||
426 | je end_ffwd |
||
427 | mov eax,[curr_trk_pg_time] |
||
428 | add eax,5 |
||
429 | cmp eax,[curr_trk_length] |
||
430 | jae end_ffwd |
||
431 | cmp [stimtrk],500 |
||
432 | jbe end_ffwd |
||
433 | sub [stimtrk],500 |
||
434 | call current_trk_time |
||
435 | call play_from_x_time |
||
436 | end_ffwd: |
||
437 | ret |
||
438 | |||
439 | fast_rewind: |
||
440 | cmp [if_stopped],TRUE |
||
441 | je end_frew |
||
442 | cmp [curr_trk_pg_time],5 |
||
443 | jbe end_frew |
||
444 | add [stimtrk],500 |
||
445 | call current_trk_time |
||
446 | call play_from_x_time |
||
447 | end_frew: |
||
448 | ret |
||
449 | |||
450 | renew_shuftab: |
||
451 | mov ecx,40 |
||
452 | @rn: |
||
453 | mov [shuftab+ecx],cl |
||
454 | loop @rn |
||
455 | mov cl,[max_trk] |
||
456 | mov [shuftab],cl |
||
457 | ret |
||
458 | |||
459 | |||
460 | shuffle_track: |
||
461 | call get_uptime |
||
462 | ror eax,16 |
||
463 | cmp eax,0 |
||
464 | je shuffle_track |
||
465 | xor ecx,ecx |
||
466 | mov cl,[shuftab] |
||
467 | cmp ecx,1 |
||
468 | je @enddsk |
||
469 | xor edx,edx |
||
470 | div ecx |
||
471 | cmp edx,0 |
||
472 | je shuffle_track |
||
473 | xor ecx,ecx |
||
474 | mov cl,[max_trk] |
||
475 | @main_loop: |
||
476 | xor eax,eax |
||
477 | mov al,[shuftab+ecx] |
||
478 | cmp al,0 |
||
479 | je @f |
||
480 | dec edx |
||
481 | cmp edx,0 |
||
482 | jne @f |
||
483 | mov cl,[shuftab] |
||
484 | dec cl |
||
485 | mov [shuftab],cl |
||
486 | mov [shuftab+eax],0 |
||
487 | mov [curr_trk],al |
||
488 | call play_n_track |
||
489 | jmp @endofshuffle |
||
490 | @@: |
||
491 | loop @main_loop |
||
492 | jmp @endofshuffle |
||
493 | @enddsk: |
||
494 | call stop_playing |
||
495 | @endofshuffle: |
||
496 | |||
497 | ret |
||
498 | |||
499 | |||
500 | |||
501 | |||
502 | play_from_x_time: |
||
503 | xor ecx,ecx |
||
504 | mov cl,[curr_trk] |
||
505 | shl cl,3 |
||
506 | add cl,1 |
||
507 | add ecx,cdp |
||
508 | mov ebx,[ecx] |
||
509 | mov ecx,ebx |
||
510 | and ecx,0x00ffffff |
||
511 | |||
512 | mov eax,[curr_trk_pg_time] |
||
513 | xor edx,edx |
||
514 | mov ebx,60 |
||
515 | div ebx |
||
516 | add cl,al ;mins |
||
517 | add dl,ch |
||
518 | xor eax,eax |
||
519 | mov al,dl |
||
520 | xor edx,edx |
||
521 | div ebx |
||
522 | add cl,al ;real min |
||
523 | mov ch,dl ;real sec |
||
524 | |||
525 | mov eax,24 |
||
526 | mov ebx,1 |
||
485 | heavyiron | 527 | mcall |
31 | halyavin | 528 | ret |
529 | |||
530 | play_n_track: |
||
531 | mov [if_paused],FALSE |
||
532 | mov [if_stopped],FALSE |
||
533 | mov [curr_trk_pg_time],0 |
||
534 | call draw_window |
||
535 | ; mov eax,26 |
||
536 | ; mov ebx,9 |
||
485 | heavyiron | 537 | ; mcall |
31 | halyavin | 538 | call get_uptime |
539 | mov [stimtrk],eax |
||
540 | xor ebx,ebx |
||
541 | xor ecx,ecx |
||
542 | mov cl,[curr_trk] |
||
543 | inc cl |
||
544 | shl cl,3 |
||
545 | add cl,1 |
||
546 | add ecx,cdp |
||
547 | mov ebx,[ecx] |
||
548 | and ecx,0x00ffffff |
||
549 | mov ecx,ebx |
||
550 | ;get_minutes: |
||
551 | and ecx,0x000000ff |
||
552 | mov eax,ecx |
||
553 | imul eax,60 |
||
554 | ;get_seconds: |
||
555 | mov ecx,ebx |
||
556 | and ecx,0x0000ff00 |
||
557 | shr ecx,8 |
||
558 | add eax,ecx |
||
559 | ;eax now is next pos in secs |
||
560 | mov [next_pos_sec],eax |
||
561 | ;eax now is current pos in secs |
||
562 | xor ebx,ebx |
||
563 | xor ecx,ecx |
||
564 | mov cl,[curr_trk] |
||
565 | shl cl,3 |
||
566 | add cl,1 |
||
567 | add ecx,cdp |
||
568 | mov ebx,[ecx] |
||
569 | and ecx,0x00ffffff |
||
570 | mov ecx,ebx |
||
571 | ;get_minutes: |
||
572 | and ecx,0x000000ff |
||
573 | mov eax,ecx |
||
574 | imul eax,60 |
||
575 | ;get_seconds: |
||
576 | mov ecx,ebx |
||
577 | and ecx,0x0000ff00 |
||
578 | shr ecx,8 |
||
579 | add eax,ecx |
||
580 | ;eax now is current pos in secs |
||
581 | mov ecx,[next_pos_sec] |
||
582 | sub ecx,eax |
||
583 | ;eax now is length of trk in sec |
||
584 | mov [curr_trk_length],ecx |
||
585 | ;now play that! |
||
586 | mov ecx,ebx |
||
587 | mov eax,24 |
||
588 | mov ebx,1 |
||
485 | heavyiron | 589 | mcall |
31 | halyavin | 590 | ret |
591 | |||
592 | |||
593 | play_acd: |
||
594 | call chk_cdrom |
||
595 | call read_cd |
||
596 | call draw_window |
||
597 | call renew_shuftab |
||
598 | mov cl,[curr_trk] |
||
599 | cmp cl,0 |
||
600 | jnz play_acd_trk_ok |
||
601 | mov cl,[max_trk] |
||
602 | mov [shuftab],cl |
||
603 | mov [curr_trk],1 |
||
604 | jmp playing_no_pause |
||
605 | play_acd_trk_ok: |
||
606 | ; start_chk_on_pause: |
||
607 | cmp [if_paused],TRUE |
||
608 | jne pause_playing |
||
609 | mov [if_stopped],FALSE |
||
610 | mov [if_paused],FALSE |
||
611 | call current_trk_time |
||
612 | mov eax,[curr_trk_pg_time] |
||
613 | mov ebx,[paused_time] |
||
614 | sub eax,ebx |
||
615 | imul eax,100 |
||
616 | add [stimtrk],eax |
||
617 | call current_trk_time |
||
618 | call play_from_x_time |
||
619 | call draw_window |
||
620 | jmp end_play_acd |
||
621 | pause_playing: |
||
622 | cmp [curr_trk_pg_time],0 |
||
623 | je playing_no_pause |
||
624 | mov eax,[curr_trk_pg_time] |
||
625 | mov [paused_time],eax |
||
626 | mov [if_paused],TRUE |
||
627 | call stop_playing |
||
628 | call draw_window |
||
629 | jmp end_play_acd |
||
630 | playing_no_pause: |
||
631 | mov [if_paused],FALSE |
||
632 | call rem_time_trk |
||
633 | call play_n_track |
||
634 | call draw_window |
||
635 | end_play_acd: |
||
636 | ret |
||
637 | |||
638 | stop_playing: |
||
639 | mov eax, 24 |
||
640 | mov ebx,3 |
||
485 | heavyiron | 641 | mcall |
31 | halyavin | 642 | mov cl,[max_trk] |
643 | mov [shuftab],cl |
||
644 | mov [if_stopped],TRUE |
||
645 | cmp [if_paused],TRUE |
||
646 | je end_stop_playing |
||
647 | mov [curr_trk_pg_time],0 |
||
648 | end_stop_playing: |
||
649 | call draw_window |
||
650 | ret |
||
651 | |||
652 | ; ********************************************* |
||
653 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
||
654 | ; ********************************************* |
||
655 | |||
656 | draw_info: |
||
657 | ;bar-> |
||
658 | mov eax,13 |
||
659 | mov ebx, 10 shl 16 + 41 |
||
660 | mov ecx,120 shl 16 + 9 |
||
661 | mov edx,0x00ffffff |
||
485 | heavyiron | 662 | mcall |
31 | halyavin | 663 | mov ebx, 96 shl 16 + 11 |
485 | heavyiron | 664 | mcall |
31 | halyavin | 665 | mov ebx, 185 shl 16 + 11 |
485 | heavyiron | 666 | mcall |
31 | halyavin | 667 | mov ebx, 200 shl 16 + 11 |
485 | heavyiron | 668 | mcall |
31 | halyavin | 669 | mov ebx, 150 shl 16 + 11 |
485 | heavyiron | 670 | mcall |
31 | halyavin | 671 | mov ebx, 165 shl 16 + 11 |
485 | heavyiron | 672 | mcall |
31 | halyavin | 673 | ;bar<- |
674 | |||
675 | mov eax,4 |
||
676 | mov ebx,10 shl 16 +120 |
||
677 | mov ecx,0x00111111 |
||
678 | cmp [mode],NORMAL_PLAY |
||
679 | jne info_mode_1 |
||
680 | mov edx,mode_normal |
||
681 | jmp info_mode_end |
||
682 | info_mode_1: |
||
683 | cmp [mode],REPEAT_TRACK |
||
684 | jne info_mode_2 |
||
685 | mov edx,mode_repeat_1 |
||
686 | jmp info_mode_end |
||
687 | info_mode_2: |
||
688 | cmp [mode],REPEAT_DISK |
||
689 | jne info_mode_3 |
||
690 | mov edx,mode_repeat_all |
||
691 | jmp info_mode_end |
||
692 | info_mode_3: |
||
693 | cmp [mode],SHUFFLE_DISK |
||
694 | jne info_mode_end |
||
695 | mov edx,mode_shuffle |
||
696 | ; mov ecx,0x00aaaaaa |
||
697 | ; mov cl,[max_trk] |
||
698 | ; mov [shuftab],cl |
||
699 | jmp info_mode_end |
||
700 | info_mode_end: |
||
701 | mov esi,7 |
||
485 | heavyiron | 702 | mcall |
31 | halyavin | 703 | |
704 | ;num info -> |
||
705 | mov eax,47 |
||
706 | xor ebx,ebx |
||
707 | mov bl,0 |
||
708 | mov bh,0 |
||
709 | or ebx,0x20000 ;X0000 - number of digits to draw |
||
710 | xor ecx,ecx |
||
711 | mov cl, [curr_trk] ;number to draw |
||
712 | mov edx,96 shl 16 + 120 |
||
713 | mov esi,0x111111 |
||
485 | heavyiron | 714 | mcall |
31 | halyavin | 715 | mov eax,[curr_trk_pg_time] |
716 | xor edx,edx |
||
717 | mov ecx,60 |
||
718 | div ecx |
||
719 | push edx |
||
720 | mov ecx,eax |
||
721 | mov eax,47 |
||
722 | mov edx,150 shl 16 + 120 |
||
485 | heavyiron | 723 | mcall |
31 | halyavin | 724 | pop ecx |
725 | mov edx,165 shl 16 + 120 |
||
485 | heavyiron | 726 | mcall |
31 | halyavin | 727 | mov eax,[curr_trk_length] |
728 | xor edx,edx |
||
729 | mov ecx,60 |
||
730 | div ecx |
||
731 | push edx |
||
732 | mov ecx,eax |
||
733 | mov eax,47 |
||
734 | mov edx,185 shl 16 + 120 |
||
485 | heavyiron | 735 | mcall |
31 | halyavin | 736 | pop ecx |
737 | mov edx,200 shl 16 + 120 |
||
485 | heavyiron | 738 | mcall |
31 | halyavin | 739 | ;num info <- |
740 | ret |
||
741 | |||
742 | |||
743 | draw_window: |
||
744 | |||
745 | mov eax,12 ; function 12:tell os about windowdraw |
||
746 | mov ebx,1 ; 1, start of draw |
||
485 | heavyiron | 747 | mcall |
31 | halyavin | 748 | ; DRAW WINDOW |
749 | mov eax,0 ; function 0 : define and draw window |
||
750 | mov ebx, 50*65536+219 ; [x start] *65536 + [x size] |
||
751 | mov ecx,100*65536+168 ; [y start] *65536 + [y size] |
||
551 | spraid | 752 | mov edx,0x04ffffff ; color of work area RRGGBB |
31 | halyavin | 753 | mov esi,0x8099bbff ; color of grab bar RRGGBB,8->color glide |
754 | mov edi,0x0099bbee ; color of frames RRGGBB |
||
485 | heavyiron | 755 | mcall |
31 | halyavin | 756 | ; WINDOW LABEL |
757 | mov eax,4 ; function 4 : write text to window |
||
758 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
||
147 | diamond | 759 | mov ecx,0x1000ffff ; color of text RRGGBB |
31 | halyavin | 760 | mov edx,labelt ; pointer to text beginning |
761 | mov esi,labellen-labelt ; text length |
||
485 | heavyiron | 762 | mcall |
31 | halyavin | 763 | |
764 | mov eax,13 ;bar |
||
765 | mov ebx,8 shl 16 + 204 |
||
766 | mov ecx,28 shl 16 + 84 |
||
767 | mov edx,0x000fe6f5 |
||
485 | heavyiron | 768 | mcall |
31 | halyavin | 769 | |
770 | ;info -> |
||
771 | mov eax,4 |
||
772 | mov ebx,63 shl 16 + 120 |
||
773 | mov ecx,0x00111111 |
||
774 | mov edx,playing_trk_info |
||
775 | mov esi,6 |
||
485 | heavyiron | 776 | mcall |
31 | halyavin | 777 | mov ebx,120 shl 16 + 120 |
778 | mov edx,playing_time_info |
||
779 | ; mov esi,5 |
||
780 | dec esi |
||
485 | heavyiron | 781 | mcall |
31 | halyavin | 782 | mov ebx,178 shl 16 + 120 |
783 | mov edx,slash |
||
784 | mov esi,1 |
||
485 | heavyiron | 785 | mcall |
31 | halyavin | 786 | mov ebx,196 shl 16 + 120 |
787 | mov edx,column |
||
788 | ; mov esi,1 |
||
485 | heavyiron | 789 | mcall |
31 | halyavin | 790 | mov ebx,161 shl 16 + 120 |
791 | mov edx,column |
||
792 | ; mov esi,1 |
||
485 | heavyiron | 793 | mcall |
31 | halyavin | 794 | ;info <- |
795 | |||
796 | ; button MODE |
||
797 | mov eax,8 |
||
798 | mov ebx,12*65536+20 |
||
799 | mov ecx,135*65536+20 |
||
800 | mov edx,7 |
||
801 | mov esi,COLOR_FUNC_BUTS |
||
485 | heavyiron | 802 | mcall |
31 | halyavin | 803 | ; text |
804 | mov eax,4 |
||
805 | mov ebx,19*65536+142 |
||
147 | diamond | 806 | mov ecx,0x100f73f5;ffff0f |
31 | halyavin | 807 | mov edx,but_mode_lab |
808 | mov esi,1 |
||
485 | heavyiron | 809 | mcall |
31 | halyavin | 810 | |
811 | ; button BACK |
||
812 | mov eax,8 |
||
813 | mov ebx,37*65536+20 |
||
814 | mov ecx,135*65536+20 |
||
815 | mov edx,6 |
||
816 | mov esi,COLOR_FUNC_BUTS |
||
485 | heavyiron | 817 | mcall |
31 | halyavin | 818 | mov [coord_x],51 |
819 | mov [coord_y],141 |
||
820 | call draw_left_triangle |
||
821 | mov [coord_x],44 |
||
822 | call draw_vertical_line |
||
823 | |||
824 | ; button NEXT |
||
825 | mov eax,8 |
||
826 | mov ebx,62*65536+20 |
||
827 | mov ecx,135*65536+20 |
||
828 | mov edx,5 |
||
829 | mov esi,COLOR_FUNC_BUTS |
||
485 | heavyiron | 830 | mcall |
31 | halyavin | 831 | mov [coord_x],68 |
832 | mov [coord_y],141 |
||
833 | call draw_right_triangle |
||
834 | mov [coord_x],74 |
||
835 | call draw_vertical_line |
||
836 | |||
837 | ; button REWIND |
||
838 | mov eax,8 |
||
839 | mov ebx,87*65536+20 |
||
840 | mov ecx,135*65536+20 |
||
841 | mov edx,8 |
||
842 | mov esi,COLOR_FUNC_BUTS |
||
485 | heavyiron | 843 | mcall |
31 | halyavin | 844 | mov [coord_x],102 |
845 | mov [coord_y],141 |
||
846 | call draw_left_triangle |
||
847 | mov [coord_x],97 |
||
848 | call draw_left_triangle |
||
849 | |||
850 | ; button STOP |
||
851 | mov eax,8 |
||
852 | mov ebx,112*65536+20 |
||
853 | mov ecx,135*65536+20 |
||
854 | mov edx,3 |
||
855 | mov esi,COLOR_FUNC_BUTS |
||
485 | heavyiron | 856 | mcall |
31 | halyavin | 857 | mov [coord_x],118 |
858 | mov [coord_y],142 |
||
859 | call draw_square |
||
860 | |||
861 | |||
862 | ; button PLAY |
||
863 | mov eax,8 |
||
864 | mov ebx,137*65536+20 |
||
865 | mov ecx,135*65536+20 |
||
866 | mov edx,2 |
||
867 | mov esi,COLOR_FUNC_BUTS |
||
485 | heavyiron | 868 | mcall |
31 | halyavin | 869 | cmp [if_stopped],TRUE |
870 | je playing_paused |
||
871 | cmp [if_paused],TRUE |
||
872 | je playing_paused |
||
873 | mov [coord_x],144 |
||
874 | mov [coord_y],141 |
||
875 | call draw_vertical_line |
||
876 | mov [coord_x],149 |
||
877 | call draw_vertical_line |
||
878 | jmp end_draw_play |
||
879 | playing_paused: |
||
880 | mov [coord_x],144 |
||
881 | mov [coord_y],141 |
||
882 | call draw_right_triangle |
||
883 | end_draw_play: |
||
884 | |||
885 | |||
886 | ; button FORWARD |
||
887 | mov eax,8 |
||
888 | mov ebx,162*65536+20 |
||
889 | mov ecx,135*65536+20 |
||
890 | mov edx,9 |
||
891 | mov esi,COLOR_FUNC_BUTS |
||
485 | heavyiron | 892 | mcall |
31 | halyavin | 893 | mov [coord_x],167 |
894 | mov [coord_y],141 |
||
895 | call draw_right_triangle |
||
896 | mov [coord_x],172 |
||
897 | call draw_right_triangle |
||
898 | |||
899 | ; button RE-READ PLAYLIST |
||
900 | mov eax,8 |
||
901 | mov ebx,187*65536+20 |
||
902 | mov ecx,135*65536+20 |
||
903 | mov edx,4 |
||
904 | mov esi,COLOR_FUNC_BUTS |
||
485 | heavyiron | 905 | mcall |
31 | halyavin | 906 | mov [coord_x],192 |
907 | mov [coord_y],140 |
||
908 | call draw_vert_list_line |
||
909 | dec [coord_y] |
||
910 | call draw_hor_list_line |
||
911 | mov [coord_y], 151 |
||
912 | call draw_hor_list_line |
||
913 | mov [coord_x],202 |
||
914 | mov [coord_y],140 |
||
915 | call draw_vert_list_line |
||
916 | mov [coord_x],195 |
||
917 | mov [coord_y], 142 |
||
918 | call draw_str_list_line |
||
919 | mov [coord_y],145 |
||
920 | call draw_str_list_line |
||
921 | mov [coord_y],148 |
||
922 | call draw_str_list_line |
||
923 | |||
924 | cmp [flag],1 |
||
925 | jne flag2 |
||
926 | ;Draw tracs buttons |
||
927 | xor eax,eax |
||
928 | xor ebx,ebx |
||
929 | mov ecx,10 |
||
930 | mov al,[cdp+3] |
||
931 | mov [max_trk],al |
||
932 | xor edi,edi |
||
933 | mov di,ax |
||
934 | mov [posx],12 |
||
935 | mov [posy],32 |
||
936 | mov [tracs],1 |
||
937 | draw_tracs_buttons: |
||
938 | mov eax,8 |
||
939 | xor ebx,ebx |
||
940 | mov bl,[posx] |
||
941 | shl ebx,16 |
||
942 | add ebx,15 |
||
943 | xor ecx,ecx |
||
944 | mov cl,[posy] |
||
945 | shl ecx,16 |
||
946 | add ecx,15 |
||
947 | xor edx,edx |
||
948 | mov dx,[tracs] |
||
949 | add edx,10 |
||
950 | mov esi,0xaaaaaa |
||
951 | add esi,edi |
||
485 | heavyiron | 952 | mcall |
31 | halyavin | 953 | ;---draw tracs numbers |
954 | mov eax,47 |
||
955 | xor ebx,ebx |
||
956 | mov bl,0 |
||
957 | or ebx,0x20000 ;number of digits to draw |
||
958 | xor ecx,ecx |
||
959 | mov cx, [tracs] ;number to draw |
||
960 | xor edx,edx |
||
961 | mov dl,[posx] |
||
962 | add dl,3 |
||
963 | shl edx,16 |
||
964 | add dl,[posy] |
||
965 | add dl,5 |
||
966 | mov esi,0xffffff |
||
485 | heavyiron | 967 | mcall |
31 | halyavin | 968 | ;--- |
969 | mov al,[posx] |
||
970 | add al,20 |
||
971 | mov [posx],al |
||
972 | xor eax,eax |
||
973 | mov ax,[tracs] |
||
974 | mov bl,10 |
||
975 | div bl |
||
976 | cmp ah,0 |
||
977 | jnz no_new_str |
||
978 | mov al,[posxstart] |
||
979 | mov [posx], al |
||
980 | mov al,[posy] |
||
981 | add al,20 |
||
982 | mov [posy],al |
||
983 | no_new_str: |
||
984 | inc [tracs] |
||
985 | cmp [tracs],41 |
||
986 | je flag2 |
||
987 | dec edi |
||
988 | cmp edi,0 |
||
989 | jnz draw_tracs_buttons |
||
990 | |||
991 | flag2: |
||
992 | cmp [flag],2 |
||
993 | jne flag3 |
||
994 | mov eax,4 |
||
995 | mov ebx, 20 shl 16 +67 |
||
147 | diamond | 996 | mov ecx,0x10ffff00 |
31 | halyavin | 997 | mov edx,define_cdrom |
998 | mov esi,define_cdrom_len-define_cdrom |
||
485 | heavyiron | 999 | mcall |
31 | halyavin | 1000 | flag3: |
1001 | cmp [flag],3 |
||
1002 | jne flag4 |
||
1003 | mov eax,4 |
||
1004 | mov ebx, 47 shl 16 +67 |
||
147 | diamond | 1005 | mov ecx,0x10ffff00 |
31 | halyavin | 1006 | mov edx,no_cda |
1007 | mov esi,no_cda_len-no_cda |
||
485 | heavyiron | 1008 | mcall |
31 | halyavin | 1009 | flag4: |
1010 | cmp [flag],4 |
||
1011 | jne flag5 |
||
1012 | ;help screen |
||
1013 | cmp [help_screen],1 |
||
1014 | jnz @hs2 |
||
1015 | mov edx,help1 |
||
1016 | jmp @ehs |
||
1017 | @hs2: |
||
1018 | cmp [help_screen],2 |
||
1019 | jnz @hs3 |
||
1020 | mov edx,help2 |
||
1021 | jmp @ehs |
||
1022 | @hs3: |
||
1023 | mov edx,help3 |
||
1024 | @ehs: |
||
1025 | xor edi,edi |
||
1026 | mov ebx,25*65536+30 |
||
1027 | new_line: |
||
1028 | mov eax,4 |
||
1029 | mov ecx,0x111111 |
||
1030 | mov esi,31 |
||
485 | heavyiron | 1031 | mcall |
31 | halyavin | 1032 | noline: |
1033 | add ebx,10 |
||
1034 | add edx,31 |
||
1035 | inc edi |
||
1036 | cmp [edx],byte 'x' |
||
1037 | jnz new_line |
||
1038 | flag5: |
||
1039 | call draw_info |
||
1040 | |||
1041 | mov eax,12 ; function 12:tell os about windowdraw |
||
1042 | mov ebx,2 ; 2, end of draw |
||
485 | heavyiron | 1043 | mcall |
31 | halyavin | 1044 | |
1045 | ret |
||
1046 | |||
1047 | draw_right_triangle: |
||
1048 | mov ebx,[coord_x] |
||
1049 | mov ecx,[coord_y] |
||
1050 | mov edx,0x00111111 |
||
1051 | mov esi,5 |
||
1052 | mov eax,9 |
||
1053 | start_draw_pixel: |
||
1054 | push ebx |
||
1055 | cmp eax,5 |
||
1056 | jb y_menshe_5 |
||
1057 | mov esi,10 |
||
1058 | sub esi,eax |
||
1059 | jmp draw_pixel |
||
1060 | y_menshe_5: |
||
1061 | mov esi,eax |
||
1062 | draw_pixel: |
||
1063 | dec esi |
||
1064 | inc ebx |
||
1065 | push eax |
||
1066 | mov eax,1 |
||
485 | heavyiron | 1067 | mcall |
31 | halyavin | 1068 | pop eax |
1069 | cmp esi,0 |
||
1070 | jne draw_pixel |
||
1071 | pop ebx |
||
1072 | dec eax |
||
1073 | inc ecx |
||
1074 | cmp eax,0 |
||
1075 | jne start_draw_pixel |
||
1076 | ret |
||
1077 | |||
1078 | draw_square: |
||
1079 | mov ebx,[coord_x] |
||
1080 | mov ecx,[coord_y] |
||
1081 | mov edx,0x00111111 |
||
1082 | mov eax,7 |
||
1083 | q_start_draw_pixel: |
||
1084 | push ebx |
||
1085 | mov esi,7 |
||
1086 | q_draw_pixel: |
||
1087 | dec esi |
||
1088 | inc ebx |
||
1089 | push eax |
||
1090 | mov eax,1 |
||
485 | heavyiron | 1091 | mcall |
31 | halyavin | 1092 | pop eax |
1093 | cmp esi,0 |
||
1094 | jne q_draw_pixel |
||
1095 | pop ebx |
||
1096 | dec eax |
||
1097 | inc ecx |
||
1098 | cmp eax,0 |
||
1099 | jne q_start_draw_pixel |
||
1100 | ret |
||
1101 | |||
1102 | draw_left_triangle: |
||
1103 | mov ebx,[coord_x] |
||
1104 | mov ecx,[coord_y] |
||
1105 | mov edx,0x00111111 |
||
1106 | mov esi,5 |
||
1107 | mov eax,9 |
||
1108 | l_start_draw_pixel: |
||
1109 | push ebx |
||
1110 | cmp eax,5 |
||
1111 | jb l_y_menshe_5 |
||
1112 | mov esi,10 |
||
1113 | sub esi,eax |
||
1114 | jmp l_draw_pixel |
||
1115 | l_y_menshe_5: |
||
1116 | mov esi,eax |
||
1117 | l_draw_pixel: |
||
1118 | dec esi |
||
1119 | dec ebx |
||
1120 | push eax |
||
1121 | mov eax,1 |
||
485 | heavyiron | 1122 | mcall |
31 | halyavin | 1123 | pop eax |
1124 | cmp esi,0 |
||
1125 | jne l_draw_pixel |
||
1126 | pop ebx |
||
1127 | dec eax |
||
1128 | inc ecx |
||
1129 | cmp eax,0 |
||
1130 | jne l_start_draw_pixel |
||
1131 | ret |
||
1132 | |||
1133 | draw_vertical_line: |
||
1134 | mov eax,2 |
||
1135 | mov ebx,[coord_x] |
||
1136 | mov edx,0x00111111 |
||
1137 | @@draw_2_line: |
||
1138 | mov ecx,[coord_y] |
||
1139 | dec ecx |
||
1140 | mov esi,9 |
||
1141 | start_draw_vline: |
||
1142 | inc ecx |
||
1143 | push eax |
||
1144 | mov eax,1 |
||
485 | heavyiron | 1145 | mcall |
31 | halyavin | 1146 | pop eax |
1147 | dec esi |
||
1148 | cmp esi,0 |
||
1149 | jne start_draw_vline |
||
1150 | dec eax |
||
1151 | inc ebx |
||
1152 | cmp eax,0 |
||
1153 | jne @@draw_2_line |
||
1154 | ret |
||
1155 | |||
1156 | draw_vert_list_line: |
||
1157 | mov eax,1 |
||
1158 | mov ebx,[coord_x] |
||
1159 | mov edx,0x00111111 |
||
1160 | mov ecx,[coord_y] |
||
1161 | dec ecx |
||
1162 | mov esi,11 |
||
1163 | vlstart_draw_vline: |
||
1164 | inc ecx |
||
485 | heavyiron | 1165 | mcall |
31 | halyavin | 1166 | dec esi |
1167 | cmp esi,0 |
||
1168 | jne vlstart_draw_vline |
||
1169 | dec eax |
||
1170 | inc ebx |
||
1171 | ret |
||
1172 | |||
1173 | draw_hor_list_line: |
||
1174 | mov eax,1 |
||
1175 | mov ebx,[coord_x] |
||
1176 | mov edx,0x00111111 |
||
1177 | mov ecx,[coord_y] |
||
1178 | dec ebx |
||
1179 | mov esi,11 |
||
1180 | hlstart_draw_vline: |
||
1181 | inc ebx |
||
485 | heavyiron | 1182 | mcall |
31 | halyavin | 1183 | dec esi |
1184 | cmp esi,0 |
||
1185 | jne hlstart_draw_vline |
||
1186 | dec eax |
||
1187 | inc ebx |
||
1188 | ret |
||
1189 | |||
1190 | draw_str_list_line: |
||
1191 | mov eax,1 |
||
1192 | mov ebx,[coord_x] |
||
1193 | mov edx,0x00111111 |
||
1194 | mov ecx,[coord_y] |
||
1195 | dec ebx |
||
1196 | mov esi,5 |
||
1197 | slstart_draw_vline: |
||
1198 | inc ebx |
||
485 | heavyiron | 1199 | mcall |
31 | halyavin | 1200 | dec esi |
1201 | cmp esi,0 |
||
1202 | jne slstart_draw_vline |
||
1203 | dec eax |
||
1204 | inc ebx |
||
1205 | ret |
||
1206 | |||
1207 | |||
1208 | chk_cdrom: |
||
1209 | mov eax,24 |
||
1210 | mov ebx,1 |
||
485 | heavyiron | 1211 | mcall |
31 | halyavin | 1212 | cmp eax,0 |
1213 | je chk_cdrom_ok |
||
1214 | mov [flag],2 |
||
1215 | call draw_window |
||
1216 | jmp chk_cdrom_end |
||
1217 | chk_cdrom_ok: |
||
1218 | mov [flag],0 |
||
1219 | chk_cdrom_end: |
||
1220 | ret |
||
1221 | |||
1222 | read_cd: |
||
1223 | mov [if_stopped],TRUE |
||
1224 | push ax |
||
1225 | cmp [flag],2 |
||
1226 | je read_cd_end |
||
1227 | mov al,101 |
||
1228 | mov [cdp+3],al |
||
1229 | mov eax,24 |
||
1230 | mov ebx,2 |
||
1231 | mov ecx, cdp |
||
1232 | mov edx,321 |
||
485 | heavyiron | 1233 | mcall |
31 | halyavin | 1234 | mov [flag],1 |
1235 | mov al,100 |
||
1236 | cmp [cdp+3],al |
||
1237 | jb read_cd_end |
||
1238 | mov [flag],3 |
||
1239 | call draw_window |
||
1240 | read_cd_end: |
||
1241 | pop ax |
||
1242 | ret |
||
1243 | |||
1244 | get_uptime: |
||
1245 | push ebx |
||
1246 | mov eax,26 |
||
1247 | mov ebx,9 |
||
485 | heavyiron | 1248 | mcall |
31 | halyavin | 1249 | pop ebx |
1250 | ret |
||
1251 | |||
1252 | ; DATA AREA |
||
1253 | |||
1254 | paused_time dd 0 |
||
1255 | if_paused db FALSE |
||
1256 | coord_x dd 0 |
||
1257 | coord_y dd 0 |
||
1258 | flag db 0 |
||
1259 | tracs dw 1 |
||
1260 | posx db 12 |
||
1261 | posy db 32 |
||
1262 | posxstart db 12 |
||
1263 | curr_trk db 0 |
||
1264 | max_trk db 0 |
||
1265 | stimtrk dd 0 |
||
1266 | help_screen db 0 |
||
1267 | next_pos_sec dd 0 |
||
1268 | curr_trk_length dd 0 |
||
1269 | curr_trk_pg_time dd 0 |
||
1270 | was_it_ok db FALSE |
||
1271 | if_stopped db FALSE |
||
1272 | mode db NORMAL_PLAY |
||
1273 | |||
1274 | shuftab db 00,01,02,03,04,05,06,07,08,09 |
||
1275 | db 10,11,12,13,14,15,16,17,18,19 |
||
1276 | db 20,21,22,23,24,25,26,27,28,29 |
||
1277 | db 30,31,32,33,34,35,36,37,38,39 |
||
1278 | db 40 |
||
1279 | |||
1280 | but_mode_lab: db 'M' |
||
1281 | |||
1282 | playing_time_info: db 'Time ' |
||
1283 | slash db '/' |
||
1284 | column db ':' |
||
1285 | mode_normal db 'Normal ' |
||
1286 | mode_repeat_1 db 'Rep trk' |
||
1287 | mode_repeat_all db 'Rep all' |
||
1288 | mode_shuffle db 'Shuffle' |
||
1289 | playing_trk_info: db 'Track ' |
||
1290 | |||
1291 | define_cdrom: db 'Please, define your CD-ROM' |
||
1292 | define_cdrom_len: |
||
1293 | |||
1294 | no_cda: db 'Audio CD not found' |
||
1295 | no_cda_len: |
||
1296 | |||
1297 | labelt: |
||
1298 | db 'CD player' |
||
1299 | labellen: |
||
1300 | |||
1301 | help1: db 'HotKeys: ' |
||
1302 | db 'H - this screen (Help) ' |
||
1303 | db 'P - Play/Pause current track ' |
||
1304 | db 'S - Stop playing ' |
||
1305 | db 'L - re-read playList ' |
||
1306 | db 'N - play Next track ' |
||
1307 | db 'B - play previous track (Back) ' |
||
1308 | db ' next ->' |
||
1309 | db 'x' |
||
1310 | help2: db 'HotKeys: ' |
||
1311 | db 'F - fast Forward track ' |
||
1312 | db 'R - fast Rewind track ' |
||
1313 | db 'M - change Mode ' |
||
1314 | db ' ' |
||
1315 | db ' ' |
||
1316 | db ' ' |
||
1317 | db '<- prev next ->' |
||
1318 | db 'x' |
||
1319 | help3: db 'About: ' |
||
1320 | db 'Audio CD Player ver 1.1beta-2 ' |
||
1321 | db 'All questions, wishes and ' |
||
1322 | db 'advices please send to: ' |
||
1323 | db ' E-mail: dma@bn.by ' |
||
1324 | db ' FidoNet: 2:450/258.75 ' |
||
1325 | db ' ' |
||
1326 | db '<- prev ' |
||
1327 | db 'x' |
||
1328 | cdp: |
||
1329 | |||
1330 | I_END:->->- |