Subversion Repositories tsfmpro

Rev

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