Rev 547 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
547 | dimkam | 1 | ;-------------------------------------------------------------------- |
2 | ; ���ᠭ��: �ணࠬ�� �ந��뢠��� ���㫥� E-Tracker |
||
3 | ; �����প� � ������: ZXM-SoundCard |
||
4 | ; ���� ����: ���ᮢ �.�.(Mick),2010 |
||
5 | ;-------------------------------------------------------------------- |
||
6 | DEVICE ZXSPECTRUM128 |
||
7 | |||
8 | .org 6000h |
||
9 | |||
10 | ;------------------------------------------------------------------- |
||
11 | ; ���ᠭ��: ��窠 �室� � �ணࠬ�� �� ��।�� �ࠢ����� �� �� |
||
12 | ;--------------------------------------------------------------------- |
||
13 | ETunes_Start: |
||
14 | xor a ;��थ� � ��� 梥� |
||
15 | out (0feh),a |
||
16 | ld (ETunes_count_music),a ;���稪 ����� ��모 |
||
17 | |||
18 | ld hl,4000h |
||
19 | ld de,4001h |
||
20 | ld bc,1b00h |
||
21 | ld (hl),c |
||
22 | ldir |
||
23 | |||
24 | ld hl,4000h ;��㧨� ��࠭ |
||
25 | ld de,(5CF4h) |
||
26 | ld bc,1B05h |
||
27 | call 3d13h |
||
28 | call Str_init_load |
||
29 | ei |
||
30 | ETunes_loading: |
||
31 | halt |
||
32 | ld b,0 |
||
33 | ETunes_wait: |
||
34 | djnz ETunes_wait |
||
35 | call Str_move_string |
||
36 | call Str_play |
||
37 | jr c,ETunes_load |
||
38 | jr nc,ETunes_loading |
||
39 | ETunes_load: |
||
40 | di ;�� ��直� ������ ����⨬ ���뢠��� |
||
41 | ld a,10h ;��⠭���� ��砫��� ��࠭��� ����� |
||
42 | ld bc,7ffdh |
||
43 | out (c),a |
||
44 | ld hl,0C000h ;��㧨� ��몠��� ��� 1. |
||
45 | ld de,(5CF4h) |
||
46 | ld bc,3505h |
||
47 | call 3d13h |
||
48 | |||
49 | ld a,11h |
||
50 | ld bc,7ffdh |
||
51 | out (c),a |
||
52 | ld hl,0C000h ;��㧨� ��몠��� ��� 2. |
||
53 | ld de,(5CF4h) |
||
54 | ld bc,3905h |
||
55 | call 3d13h |
||
56 | |||
57 | ld a,13h |
||
58 | ld bc,7ffdh |
||
59 | out (c),a |
||
60 | ld hl,0C000h ;��㧨� ��몠��� ��� 3. |
||
61 | ld de,(5CF4h) |
||
62 | ld bc,3F05h |
||
63 | call 3d13h |
||
64 | |||
65 | ld a,14h |
||
66 | ld bc,7ffdh |
||
67 | out (c),a |
||
68 | ld hl,0C000h ;��㧨� ��몠��� ��� 4. |
||
69 | ld de,(5CF4h) |
||
70 | ld bc,3E05h |
||
71 | call 3d13h |
||
72 | |||
73 | ld a,16h |
||
74 | ld bc,7ffdh |
||
75 | out (c),a |
||
76 | ld hl,0C000h ;��㧨� ��몠��� ��� 5. |
||
77 | ld de,(5CF4h) |
||
78 | ld bc,0605h |
||
79 | call 3d13h |
||
80 | |||
81 | ld a,11h |
||
82 | ld (ETunes_page_memory),a |
||
83 | ld bc,7ffdh |
||
84 | out (c),a |
||
85 | |||
86 | ld sp,5fffh |
||
87 | call Str_init ;���樠������ ����饩 ��ப� |
||
88 | call Analyzer_init |
||
89 | call Animation_star_init |
||
90 | ld a,1 |
||
91 | ld (ETunes_number_music),a |
||
92 | call ETunes_view_number |
||
93 | call ETunes_time_init |
||
94 | ld hl,0CD60h |
||
95 | ld (EPlayer_Init+1),hl ;���� ��몠�쭮�� �ந�������� |
||
96 | ld bc,0FFFDh ;ࠧ�訬 ࠡ��� SAA1099 |
||
97 | ld a,0f6h |
||
98 | out (c),a |
||
99 | call EPlayer_Init ;���樠������ �ந��뢠�饣� ����� |
||
100 | ld a,10h |
||
101 | ld bc,7ffdh |
||
102 | out (c),a |
||
103 | |||
104 | ld hl,0fe00h ;ᮧ���� ⠡���� ���뢠��� ��� im 2 |
||
105 | ld de,0fe01h |
||
106 | ld bc,0100h |
||
107 | ld (hl),0fdh |
||
108 | ldir |
||
109 | ld a,0c3h ;��⠭���� ����� ���뢠��� |
||
110 | ld (0fdfdh),a |
||
111 | ld hl,Interrupt_handle |
||
112 | ld (0fdfeh),hl |
||
113 | di |
||
114 | ld a,0feh ;����砭�� ��⠭���� ���뢠��� |
||
115 | ld i,a |
||
116 | im 2 |
||
117 | ei |
||
118 | ETunes_key: |
||
119 | xor a |
||
120 | ld (ETunes_key_press),a |
||
121 | ETunes_loop: |
||
122 | halt |
||
123 | call Str_move_string |
||
124 | call Str_play |
||
125 | call Animation_view |
||
126 | call Animation_star_view |
||
127 | |||
128 | ld a,7fh ;������� ��� - ���室 � ���饩 �������樨 |
||
129 | in a,(0feh) |
||
130 | rra |
||
131 | jr c,ETunes_key |
||
132 | |||
133 | ld a,0FEh |
||
134 | in a,(0FEh) |
||
135 | rra |
||
136 | jr nc,ETunes_exit |
||
137 | |||
138 | ld a,(ETunes_key_press) |
||
139 | and a |
||
140 | jr nz,ETunes_loop |
||
141 | |||
142 | di |
||
143 | inc a |
||
144 | ld (ETunes_key_press),a |
||
145 | ld a,(ETunes_page_memory) ;����㧨� ����� ��࠭��� ����� |
||
146 | ld bc,7ffdh |
||
147 | out (c),a |
||
148 | call EPlayer_Init ;���訬 ࠡ��� �ந��뢠�饣� ����� |
||
149 | ld bc,0FFFDh ;����頥� ࠡ��� SAA1099 |
||
150 | ld a,0feh |
||
151 | out (c),a |
||
152 | ld a,(ETunes_count_music) |
||
153 | inc a |
||
154 | cp 30 |
||
155 | jr c,ETunes_next_music |
||
156 | xor a |
||
157 | |||
158 | ETunes_next_music: |
||
159 | ld (ETunes_count_music),a |
||
160 | ld l,a |
||
161 | ld e,a |
||
162 | ld h,0 |
||
163 | ld d,h |
||
164 | add hl,hl |
||
165 | add hl,de |
||
166 | ld de,ETunes_tabl_music |
||
167 | add hl,de |
||
168 | ld a,(hl) ;����� ��࠭��� ����� |
||
169 | ld (ETunes_page_memory),a |
||
170 | inc hl |
||
171 | ld a,(hl) |
||
172 | inc hl |
||
173 | ld h,(hl) |
||
174 | ld l,a |
||
175 | ld a,(ETunes_page_memory) ;����㧨� ����� ��࠭��� ����� |
||
176 | ld bc,7ffdh |
||
177 | out (c),a |
||
178 | ld (EPlayer_Init+1),hl ;���� ��몠�쭮�� �ந�������� |
||
179 | ld bc,0FFFDh ;ࠧ�訬 ࠡ��� SAA1099 |
||
180 | ld a,0f6h |
||
181 | out (c),a |
||
182 | call EPlayer_Init ;���樠�����㥬 �ந��뢠⥫� |
||
183 | ld a,10h |
||
184 | ld bc,7ffdh |
||
185 | out (c),a |
||
186 | |||
187 | ld a,(ETunes_number_music) |
||
188 | inc a |
||
189 | ld c,a |
||
190 | and 0Fh |
||
191 | cp 10 |
||
192 | jr c,ETunes_number_correct |
||
193 | ld a,6 |
||
194 | add c |
||
195 | ld c,a |
||
196 | |||
197 | ETunes_number_correct: |
||
198 | ld a,c |
||
199 | ld (ETunes_number_music),a |
||
200 | cp 31h |
||
201 | jr c,ETunes_number_valid |
||
202 | ld a,1 |
||
203 | |||
204 | ETunes_number_valid: |
||
205 | ld (ETunes_number_music),a |
||
206 | call ETunes_view_number |
||
207 | call ETunes_time_init |
||
208 | |||
209 | ei |
||
210 | jp ETunes_loop |
||
211 | |||
212 | ETunes_exit: |
||
213 | di |
||
214 | call EPlayer_Init ;���訬 ࠡ��� �ந��뢠�饣� ����� |
||
215 | ld bc,0FFFDh ;����頥� ࠡ��� SAA1099 |
||
216 | ld a,0feh |
||
217 | out (c),a |
||
218 | ld hl,0 |
||
219 | push hl |
||
220 | jp 3d2fh ;��室 � TR-DOS |
||
221 | |||
222 | ETunes_time_init: |
||
223 | xor a |
||
224 | ld (ETunes_time_int),a |
||
225 | ld (ETunes_time_count),a |
||
226 | ld (ETunes_time_minute),a |
||
227 | jr ETunes_time_draw |
||
228 | |||
229 | ETunes_time_view: |
||
230 | ld a,(ETunes_time_int) |
||
231 | inc a |
||
232 | ld (ETunes_time_int),a |
||
233 | cp 50 |
||
234 | ret c |
||
235 | xor a |
||
236 | ld (ETunes_time_int),a |
||
237 | ld a,(ETunes_time_count) |
||
238 | inc a |
||
239 | ld c,a |
||
240 | and 0Fh |
||
241 | cp 10 |
||
242 | jr c,ETunes_time_next |
||
243 | ld a,6 |
||
244 | add c |
||
245 | ld c,a |
||
246 | ETunes_time_next: |
||
247 | ld a,c |
||
248 | ld (ETunes_time_count),a |
||
249 | cp 60h |
||
250 | jr c,ETunes_time_draw |
||
251 | xor a |
||
252 | ld (ETunes_time_count),a |
||
253 | ld a,(ETunes_time_minute) |
||
254 | inc a |
||
255 | ld (ETunes_time_minute),a |
||
256 | cp 10 |
||
257 | jr c,ETunes_time_draw |
||
258 | xor a |
||
259 | ld (ETunes_time_minute),a |
||
260 | ETunes_time_draw: |
||
261 | ld a,(ETunes_time_minute) |
||
262 | ld hl,50FCh |
||
263 | and 0Fh |
||
264 | call ETunes_view_symbol |
||
265 | ld a,(ETunes_time_count) |
||
266 | ld c,a |
||
267 | and 0F0h |
||
268 | rrca |
||
269 | rrca |
||
270 | rrca |
||
271 | rrca |
||
272 | ld hl,50FEh |
||
273 | call ETunes_view_symbol |
||
274 | ld a,c |
||
275 | and 0Fh |
||
276 | ld hl,50FFh |
||
277 | jr ETunes_view_symbol |
||
278 | |||
279 | |||
280 | ETunes_view_number: |
||
281 | ld c,a |
||
282 | and 0F0h |
||
283 | rrca |
||
284 | rrca |
||
285 | rrca |
||
286 | rrca |
||
287 | ld hl,50E6h |
||
288 | call ETunes_view_symbol |
||
289 | ld a,c |
||
290 | and 0Fh |
||
291 | ld hl,50E7h |
||
292 | |||
293 | ETunes_view_symbol: |
||
294 | push hl |
||
295 | ld h,0 |
||
296 | ld l,a |
||
297 | add hl,hl |
||
298 | add hl,hl |
||
299 | add hl,hl |
||
300 | ld de,ETunes_table_symbol |
||
301 | add hl,de |
||
302 | ex de,hl |
||
303 | pop hl |
||
304 | ld b,8 |
||
305 | |||
306 | ETunes_view_loop: |
||
307 | ld a,(de) |
||
308 | ld (hl),a |
||
309 | inc de |
||
310 | inc h |
||
311 | ld a,h |
||
312 | and 7 |
||
313 | jr nz,ETunes_next_line |
||
314 | ld a,l |
||
315 | add a,20h |
||
316 | ld l,a |
||
317 | jr c,ETunes_next_line |
||
318 | ld a,h |
||
319 | sub 8 |
||
320 | ld h,a |
||
321 | ETunes_next_line: |
||
322 | djnz ETunes_view_loop |
||
323 | ret |
||
324 | |||
325 | |||
326 | ETunes_tabl_music: |
||
327 | db 11h ; 1 ��몠�쭮� �ந�������� |
||
328 | dw 0CD60h |
||
329 | db 10h ; 2 ��몠�쭮� �ந�������� |
||
330 | dw 0CED0h |
||
331 | db 10h ; 3 ��몠�쭮� �ந�������� |
||
332 | dw 0D8F0h |
||
333 | db 10h ; 4 ��몠�쭮� �ந�������� |
||
334 | dw 0E370h |
||
335 | |||
336 | db 11h ; 5 ��몠�쭮� �ந�������� |
||
337 | dw 0C000h |
||
338 | db 10h ; 6 ��몠�쭮� �ந�������� |
||
339 | dw 0C000h |
||
340 | db 11h ; 7 ��몠�쭮� �ந�������� |
||
341 | dw 0D510h |
||
342 | db 11h ; 8 ��몠�쭮� �ந�������� |
||
343 | dw 0DDB0h |
||
344 | db 11h ; 9 ��몠�쭮� �ந�������� |
||
345 | dw 0E4B0h |
||
346 | db 11h ; 10 ��몠�쭮� �ந�������� |
||
347 | dw 0ED00h |
||
348 | db 11h ; 11 ��몠�쭮� �ந�������� |
||
349 | dw 0EE40h |
||
350 | db 11h ; 12 ��몠�쭮� �ந�������� |
||
351 | dw 0F010h |
||
352 | db 11h ; 13 ��몠�쭮� �ந�������� |
||
353 | dw 0F2C0h |
||
354 | |||
355 | db 13h ; 14 ��몠�쭮� �ந�������� |
||
356 | dw 0C000h |
||
357 | db 13h ; 15 ��몠�쭮� �ந�������� |
||
358 | dw 0CE80h |
||
359 | db 13h ; 16 ��몠�쭮� �ந�������� |
||
360 | dw 0DE70h |
||
361 | db 13h ; 17 ��몠�쭮� �ந�������� |
||
362 | dw 0E510h |
||
363 | db 13h ; 18 ��몠�쭮� �ந�������� |
||
364 | dw 0EF80h |
||
365 | db 13h ; 19 ��몠�쭮� �ந�������� |
||
366 | dw 0F7B0h |
||
367 | |||
368 | db 14h ; 20 ��몠�쭮� �ந�������� |
||
369 | dw 0C000h |
||
370 | db 14h ; 21 ��몠�쭮� �ந�������� |
||
371 | dw 0CDB0h |
||
372 | db 14h ; 22 ��몠�쭮� �ந�������� |
||
373 | dw 0D650h |
||
374 | db 14h ; 23 ��몠�쭮� �ந�������� |
||
375 | dw 0DE20h |
||
376 | db 14h ; 24 ��몠�쭮� �ந�������� |
||
377 | dw 0E730h |
||
378 | db 14h ; 25 ��몠�쭮� �ந�������� |
||
379 | dw 0EE40h |
||
380 | db 14h ; 26 ��몠�쭮� �ந�������� |
||
381 | dw 0F5E0h |
||
382 | db 14h ; 27 ��몠�쭮� �ந�������� |
||
383 | dw 0F8A0h |
||
384 | db 14h ; 28 ��몠�쭮� �ந�������� |
||
385 | dw 0FAB0h |
||
386 | |||
387 | db 16h ; 29 ��몠�쭮� �ந�������� |
||
388 | dw 0C000h |
||
389 | db 16h ; 30 ��몠�쭮� �ந�������� |
||
390 | dw 0C260h |
||
391 | |||
392 | ETunes_table_symbol: |
||
393 | db 0,3Ch,66h,6Eh,76h,66h,3Ch,0 |
||
394 | db 0,18h,38h,18h,18h,18h,7Eh,0 |
||
395 | db 0,3Ch,66h,0Ch,18h,30h,7Eh,0 |
||
396 | db 0,7Eh,0Ch,18h,0Ch,66h,3Ch,0 |
||
397 | db 0,0Ch,1Ch,3Ch,6Ch,7Eh,0Ch,0 |
||
398 | db 0,7Eh,60h,7Ch,06h,66h,3Ch,0 |
||
399 | db 0,3Ch,60h,7Ch,66h,66h,3Ch,0 |
||
400 | db 0,7Eh,06h,0Ch,18h,30h,30h,0 |
||
401 | db 0,3Ch,66h,3Ch,66h,66h,3Ch,0 |
||
402 | db 0,3Ch,66h,3Eh,06h,0Ch,38h,0 |
||
403 | |||
404 | ETunes_page_memory: |
||
405 | db 0 |
||
406 | ETunes_count_music: |
||
407 | db 0 |
||
408 | ETunes_number_music: |
||
409 | db 0 |
||
410 | ETunes_key_press: |
||
411 | db 0 |
||
412 | ETunes_time_int: |
||
413 | db 0 |
||
414 | ETunes_time_count: |
||
415 | db 0 |
||
416 | ETunes_time_minute: |
||
417 | db 0 |
||
418 | |||
419 | Interrupt_handle: |
||
420 | push hl |
||
421 | push bc |
||
422 | push de |
||
423 | push af |
||
424 | |||
425 | call Analyzer_update |
||
426 | call Analyzer_draw_flash |
||
427 | call ETunes_time_view |
||
428 | |||
429 | |||
430 | call Analyzer_view |
||
431 | |||
432 | |||
433 | ld a,(ETunes_page_memory) |
||
434 | ld bc,7ffdh |
||
435 | out (c),a |
||
436 | call EPlayer_Play |
||
437 | ld a,10h |
||
438 | ld bc,7ffdh |
||
439 | out (c),a |
||
440 | |||
441 | pop af |
||
442 | pop de |
||
443 | pop bc |
||
444 | pop hl |
||
445 | ei |
||
446 | ret |
||
447 | |||
448 | |||
449 | .include analyzer.asm |
||
450 | .include etplayer.asm |
||
451 | .include animation.asm |
||
452 | .include string.asm |
||
453 | Etunes_end: |
||
454 | .savebin "etunes.bin",ETunes_Start, Etunes_end - ETunes_Start |
||
455 | |||
456 | .end |
||
457 |