Subversion Repositories ngs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
105 savelij 1
 
112 savelij 2
;LAST UPDATE 17.06.2013 savelij
105 savelij 3
 
4
;SD & MP3 ”“Š–ˆˆ Ž ŽŒ…€Œ
112 savelij 5
Sd_init         EQU 0                   ;ˆˆ’ SD Š€’›
6
Sd__off         EQU 1                   ;‘Ÿ’ˆ… ‚›Ž€
7
Rdsingl         EQU 2                   ;—ˆ’€’œ 1 ‘…Вސ
8
Rdmulti         EQU 3                   ;—ˆ’€’œ "A" ‘…Вސ
9
Wrsingl         EQU 4                   ;‡€ˆ‘€’œ 1 ‘…Вސ-…’“
10
Wrmulti         EQU 5                   ;‡€ˆ‘€’œ "A" ‘…Вސނ-…’“
11
Avtodet         EQU 6                   ;€‚’Ž„…’…Š’ GS/NeoGS
12
Freqnc          EQU 7                   ;“‘’€Ž‚Š€ —€‘’Ž’›
13
Hardmp3         EQU 8                   ;Ž‹›‰ ˆˆ’ MP3 —ˆ€
14
Ldi_mp3         EQU 9                   ;……„€—€ ‘…Вސ€ ‘ SD>MP3
105 savelij 15
Com_mp3         EQU 0X0A                ;RD/WR MP3 —ˆ€
16
Softmp3         EQU 0X0B                ;SOFT ˆˆ’ MP3 —ˆ€
17
Dat2mp3         EQU 0X0C                ;……„€—€ ‘…Š. GSDAT>MP3
18
Zer2mp3         EQU 0X0D                ;……„€—€ 2048 “‹…‰>MP3
19
 
20
;„€‰‚… SD-CARD „‹Ÿ NGS
21
;+„€‰‚… „‹Ÿ MP3-„…ŠŽ„…€
22
 
23
;‚ๅฎคญ๋ฅ ฏ เ ฌฅโเ๋ ฎก้จฅ:
24
;HL- คเฅแ ง ฃเใงชจ ข ฏ ฌ๏โ์
25
;BCDE-32-ๅ กจโญ๋ฉ ญฎฌฅเ แฅชโฎเ 
26
;A-ชฎซจ็ฅแโขฎ กซฎชฎข (กซฎช=512 ก ฉโ)
27
;โฎซ์ชฎ คซ๏ ฌญฎฃฎกซฎ็ญฎฉ ง ฏจแจ/็โฅญจจ
28
 
29
;Ž่จกชจ ข๋ค ข ฅฌ๋ฅ ญ  ข๋ๅฎคฅ:
30
;A=0-จญจๆจ ซจง ๆจ๏ ฏเฎ่ซ  ใแฏฅ่ญฎ
31
;A=1-ช เโ  ญฅ ญ ฉคฅญ  จซจ ญฅ ฎโขฅโจซ 
32
;A=2-ช เโ  ง ้จ้ฅญ  ฎโ ง ฏจแจ
33
;A=3-ฏฎฏ๋โช  ง ฏจแจ ข แฅชโฎเ 0 ช เโ๋
34
;A=0X80-ช เโ  ฏฅเฅแโ ซ  ฎโขฅ็ โ์
35
 
112 savelij 36
;ށ™€Ÿ ’Ž—Š€ ‚•Ž„€ „‹Ÿ €Ž’› ‘ SD Š€’މ
37
                CALL CMP_INT
105 savelij 38
                DI
39
                EXX
40
                PUSH HL                 ;‘Ž•€ˆ‹ˆ HL'
41
                PUSH DE                 ;‘Ž•€ˆ‹ˆ DE'
42
                LD HL,OK_SD
43
                PUSH HL                 ;‚އ‚€’ € ‚‘… OK
44
                LD HL,0
45
                ADD HL,SP               ;‘Ž•€ˆ‹ˆ ‘’…Š
46
                EX DE,HL
47
                LD HL,ERR_SD            ;€„…‘ ……•Ž„€ ˆ Ž˜ˆŠ…
48
                EXX
49
                PUSH HL
50
                PUSH DE
51
                ADD A,A
52
                LD L,A
53
                LD H,0
54
                LD DE,TABL_SD
55
                ADD HL,DE
56
                EX AF,AF'
57
                LD E,(HL)
58
                INC HL
59
                LD D,(HL)
60
                EX DE,HL
61
                POP DE
62
                EX (SP),HL
63
                RET
64
 
65
OK_SD           EXX
66
ERR_SD          EX DE,HL
67
                LD SP,HL
68
                POP DE
69
                POP DE
70
                POP HL
71
                EXX
112 savelij 72
                PUSH AF
73
                LD A,(INT_MODE)
74
                AND A
75
                JR Z,ERR_SD1
76
                EI
77
ERR_SD1         POP AF
105 savelij 78
                RET
79
 
80
TABL_SD         DW SD_INIT              ;0 ฏ เ ฌฅโเฎข ญฅ โเฅกใฅโ, ญ  ข๋ๅฎคฅ A แฌฎโเจ ข๋่ฅ ฏฅเข๋ฅ 2 งญ ็ฅญจ๏
81
                DW SD__OFF              ;1 ฏเฎแโฎ แญ๏โจฅ ข๋กฎเ  SD ช เโ๋
82
                DW RDSINGL              ;2 —ˆ’€’œ 1 ‘…Вސ
83
                DW RDMULTI              ;3 —ˆ’€’œ "A" ‘…Вސނ
84
                DW EMPTY                ;4 ˆ‘€’œ 1 ‘…Вސ
85
                DW EMPTY                ;5 ˆ‘€’œ "A" ‘…Вސނ
86
                DW AVTODET              ;6-€‚’Ž„…’…Š’
87
                DW FREQNC               ;7-‡€„€—€ —€‘’Ž’›
88
                DW HARDMP3              ;8 INIT MP3-„…ŠŽ„…€
89
                DW LDI_MP3              ;9 ƒŽ ‘ SD € MP3
90
                DW COM_MP3              ;0XA RD&WR ‚ MP3-„…ŠŽ„
91
                DW SOFTMP3              ;0XB SOFT RESET MP3CHIP
92
                DW DAT2MP3              ;0XC ƒŽ ‘ GSDAT2MP3
93
                DW ZER2MP3              ;0XD 2048 “‹…‰ € MP3
94
 
95
EMPTY           RET
96
 
97
ZAW003          CALL SD__OFF
98
                LD A,1
99
                RET
100
 
101
SD_INIT         CALL CS_HIGH
102
                LD BC,SD_SEND
103
                LD DE,0X20FF
104
                OUT (C),E
105
                DEC D
106
                JR NZ,$-3
107
                LD BC,SD_RSTR
108
                XOR A
109
                EX AF,AF'
110
ZAW001          LD HL,CMD00
111
                CALL OUTCOM
112
                CALL IN_OOUT
113
                EX AF,AF'
114
                DEC A
115
                JR Z,ZAW003
116
                EX AF,AF'
117
                DEC A
118
                JR NZ,ZAW001
119
                LD HL,CMD08
120
                CALL OUTCOM
121
                CALL IN_OOUT
122
                IN H,(C)
123
                NOP
124
                IN H,(C)
125
                NOP
126
                IN H,(C)
127
                NOP
128
                IN H,(C)
129
                LD HL,0
130
                BIT 2,A
131
                JR NZ,ZAW006
132
                LD H,0X40
133
ZAW006          LD A,CMD_55
134
                CALL OUT_COM
135
                CALL IN_OOUT
136
                LD BC,SD_SEND
137
                LD A,ACMD_41
138
                OUT (C),A
139
                NOP
140
                OUT (C),H
141
                NOP
142
                OUT (C),L
143
                NOP
144
                OUT (C),L
145
                NOP
146
                OUT (C),L
147
                LD A,0XFF
148
                OUT (C),A
149
                CALL IN_OOUT
150
                AND A
151
                JR NZ,ZAW006
152
ZAW004          LD A,CMD_59
153
                CALL OUT_COM
154
                CALL IN_OOUT
155
                AND A
156
                JR NZ,ZAW004
157
ZAW005          LD HL,CMD16
158
                CALL OUTCOM
159
                CALL IN_OOUT
160
                AND A
161
                JR NZ,ZAW005
162
 
163
SD__OFF
164
CS_HIGH         PUSH AF
165
                LD A,M_SDNCS+M_SNCLR            ;0X81
166
                OUT (SCTRL),A
167
                POP AF
168
                RET
169
 
170
CS__LOW         PUSH AF
171
                LD A,M_SDNCS                    ;1
172
                OUT (SCTRL),A
173
                POP AF
174
                RET
175
 
176
OUTCOM          CALL CS__LOW
177
                PUSH BC
178
                LD BC,0X0600+SD_SEND
179
                OTIR
180
                POP BC
181
                RET
182
 
183
OUT_COM         PUSH BC
184
                CALL CS__LOW
185
                LD BC,SD_SEND
186
                OUT (C),A
187
                XOR A
188
                OUT (C),A
189
                NOP
190
                OUT (C),A
191
                NOP
192
                OUT (C),A
193
                NOP
194
                OUT (C),A
195
                DEC A
196
                OUT (C),A
197
                POP BC
198
                RET
199
 
200
SECM200         PUSH HL
201
                PUSH DE
202
                PUSH BC
203
                PUSH AF
204
                PUSH BC
205
                LD A,CMD_58
206
                LD BC,SD_RSTR
207
                CALL OUT_COM
208
                CALL IN_OOUT
209
                INC A
210
                JR NZ,SCM200
211
                EXX
212
                LD A,0X80
213
                JP (HL)
214
 
215
SCM200          IN A,(C)
216
                NOP
217
                IN H,(C)
218
                NOP
219
                IN H,(C)
220
                NOP
221
                IN H,(C)
222
                BIT 6,A
223
                POP HL
224
                JR NZ,SECN200
225
                EX DE,HL
226
                ADD HL,HL
227
                EX DE,HL
228
                ADC HL,HL
229
                LD H,L
230
                LD L,D
231
                LD D,E
232
                LD E,0
233
SECN200         POP AF
234
                LD BC,SD_SEND
235
                OUT (C),A
236
                NOP
237
                OUT (C),H
238
                NOP
239
                OUT (C),L
240
                NOP
241
                OUT (C),D
242
                NOP
243
                OUT (C),E
244
                LD A,0XFF
245
                OUT (C),A
246
                POP BC
247
                POP DE
248
                POP HL
249
                RET
250
 
251
IN_OOUT         PUSH DE
252
                LD DE,0X20FF
253
IN_WAIT         IN A,(SD_RSTR)
254
                CP E
255
                JR NZ,IN_EXIT
256
                DEC D
257
                JR NZ,IN_WAIT
258
IN_EXIT         POP DE
259
                RET
260
 
261
CMD00           DB 0X40,0X00,0X00,0X00,0X00,0X95        ;GO_IDLE_STATE
262
CMD08           DB 0X48,0X00,0X00,0X01,0XAA,0X87        ;SEND_IF_COND
263
CMD16           DB 0X50,0X00,0X00,0X02,0X00,0XFF        ;SET_BLOCKEN
264
 
265
;—’…ˆ… Ž„ŽƒŽ ‘…Вސ€ ‚ €ŒŸ’œ
266
RD_SECT         PUSH BC
267
                PUSH DE
268
                LD BC,SD_RSTR
269
                INIR
270
                INIR
271
                JR RDSECT3
272
 
273
;—’…ˆ… Ž„ŽƒŽ ‘…Вސ€ ‘ Ž€‰’ނމ ……„€—…‰ ‚ MP3 —ˆ
274
RON_MP3         PUSH BC
275
                PUSH DE
276
                LD BC,SD_RSTR
277
                LD D,0X10
278
RDSECT2         IN A,(SSTAT)
279
                RRA
280
                JR NC,$-3
281
                LD E,0X20
282
RDSECT1         IN A,(C)
283
                NOP
284
                OUT (MD_SEND),A
285
                DEC E
286
                JR NZ,RDSECT1
287
                DEC D
288
                JR NZ,RDSECT2
289
RDSECT3         IN A,(C)                        ;‘Ÿ’ˆ… CRC16
290
                NOP
291
                IN A,(C)
292
                POP DE
293
                POP BC
294
                RET
295
 
296
;……„€—€ ‘…Вސ€ ‚ MP3 —ˆ
297
LDI_MP3         LD A,CMD_17
298
                CALL SECM200
299
                CALL IN_OOUT
300
                CP 0XFE
301
                JR NZ,$-5
302
                CALL RON_MP3
303
                CALL IN_OOUT
304
                INC A
305
                JR NZ,$-4
306
                JP CS_HIGH
307
 
308
;‡€ƒ“‡Š€ Ž„ŽƒŽ ‘…Вސ€ ‚ €ŒŸ’œ
309
RDSINGL         LD A,CMD_17
310
                CALL SECM200
311
                CALL IN_OOUT
312
                CP 0XFE
313
                JR NZ,$-5
314
                CALL RD_SECT
315
                CALL IN_OOUT
316
                INC A
317
                JR NZ,$-4
318
                JP CS_HIGH
319
 
320
RDMULTI         EX AF,AF'
321
                LD A,CMD_18
322
                CALL SECM200
323
                EX AF,AF'
324
RDMULT1         EX AF,AF'
325
                CALL IN_OOUT
326
                CP 0XFE
327
                JR NZ,$-5
328
                CALL RD_SECT
329
                EX AF,AF'
330
                DEC A
331
                JR NZ,RDMULT1
332
                LD A,CMD_12
333
                CALL OUT_COM
334
                CALL IN_OOUT
335
                INC A
336
                JR NZ,$-4
337
                JP CS_HIGH
338
 
339
;ކˆ„€ˆ… ƒŽ’Ž‚Ž‘’ˆ SPI MP3 —ˆ€
340
NOPER           REPT 18
341
                NOP
342
                ENDM
343
                RET
344
 
345
;               PUSH AF
346
;NOPER1         IN A,(SSTAT)
347
;               AND M_MCRDY
348
;               JR Z,NOPER1
349
;               POP AF
350
;               RET
351
 
352
AVTODET         IN A,(GSCFG0)
353
                AND 0XCF
354
                OUT (GSCFG0),A
355
                LD D,A
356
                CALL NOPER
357
                IN A,(GSCFG0)
358
                CP D
359
                LD A,0
360
                RET Z
361
NO_MP3          LD A,0XFF
362
                RET
363
 
112 savelij 364
FREQNC          LD A,E
365
                LD D,C_10MHZ                    ;0X30
105 savelij 366
                AND 3
367
                JR Z,FREQNCS
368
                LD D,C_12MHZ                    ;0X10
369
                DEC A
370
                JR Z,FREQNCS
371
                LD D,C_20MHZ                    ;0X20
372
                DEC A
373
                JR Z,FREQNCS
374
                LD D,C_24MHZ                    ;0
375
FREQNCS         IN A,(GSCFG0)
376
                AND %11001111
377
                OR D
378
                OUT (GSCFG0),A
379
                RET
380
 
381
;‡€ˆ‘›‚€…Œ 2048 “‹…‰ ЀР‡€‚…˜…ˆ… …‘…Šˆ
382
ZER2MP3         LD D,0X40
383
ZR2MP31         IN A,(SSTAT)
384
                RRA
385
                JR NC,$-3
386
                LD E,0X20
387
                XOR A
388
                OUT (MD_SEND),A
389
                DEC E
390
                JR NZ,$-4
391
                DEC D
392
                JR NZ,ZR2MP31
393
                RET
394
 
395
;Ž‹›‰ ‘Ž‘
396
HARDMP3         XOR A
397
                CALL VOL_MOD                    ;‡€ƒ‹“˜ˆ‹ˆ ƒŽŒŠŽ‘’œ Ž’Ž‚ GS
398
                LD BC,MC_SEND
399
                LD A,%10011100                  ;0X9C
400
                OUT (SCTRL),A
112 savelij 401
                LD E,0
105 savelij 402
                CALL FREQNC                     ;‚›‘’€‚ˆ‹ˆ —€‘’Ž’“ € NGS 10 Œƒๆ
403
                LD HL,0X0301
404
                CALL COM_MP3
405
                LD A,E
406
                AND %01110000
407
                PUSH AF
408
                LD A,M_MPXRS
409
                OUT (SCTRL),A
410
                CALL NOPER
411
                LD A,M_MPXRS+M_SNCLR            ;0X84
412
                OUT (SCTRL),A                   ;‚›„€‹ˆ ‘Ž‘ € „…ŠŽ„…
413
                IN A,(SSTAT)
414
                RRA
415
                JR NC,$-3                       ;„ކ„€‹ˆ‘œ ƒŽ’Ž‚Ž‘’ˆ „…ŠŽ„…€
416
                LD HL,0X0203
417
                LD DE,0X9B58
418
                CALL COM_MP3                    ;‚›‘’€‚ˆ‹ˆ € „…ŠŽ„…… —€‘’Ž’“ 14 Œƒๆ
419
                POP AF                          ;‡„…‘œ Ž˜‹€ ˆˆ–ˆ€‹ˆ‡€–ˆŸ „‹Ÿ VS1001
420
                LD HL,0X0202
421
                LD DE,0X8008
422
                CALL Z,COM_MP3                  ;‡€ˆ‘œ …„ŽŠ“Œ…’ˆŽ‚€ŽƒŽ ˆŠ€ ‚
423
                                                ;…„ŽŠ“Œ…’ˆŽ‚€›‰ …ƒˆ‘’, …‘‹ˆ
424
                                                ;ˆ’› 6-4 …ƒˆ‘’€ ‘’€’“‘€ ‚ “‹…
112 savelij 425
                LD E,1
105 savelij 426
                JP FREQNC                       ;‚›‘’€‚ˆ‹ˆ —€‘’Ž’“ € NGS 12 Œƒๆ
427
 
428
;Žƒ€ŒŒ›‰ ‘Ž‘ MP3 „…ŠŽ„…€, …ŠŽŒ…„“…’‘Ÿ ‚›‡›‚€’œ ……„ Š€†„›Œ Ž‚›Œ ”€‰‹ŽŒ, ‘€‘›‚€…’ ‘—…’—ˆŠ ‘…Š“„
429
;Ž‘‹… Žƒ€ŒŒŽƒŽ ‘Ž‘€ ‚‘… “‘’€Ž‚‹…›… …†ˆŒ› „…ŠŽ„…€ … ˆ‡Œ…Ÿž’‘Ÿ
430
SOFTMP3         LD BC,MC_SEND
431
                LD HL,0X030B
432
                CALL COM_MP3                    ;‘ˆŒ€…Œ ’…Š“™…… ‡€—…ˆ… ƒŽŒŠŽ‘’ˆ
433
                PUSH DE
434
                LD DE,0XFEFE                    ;ˆ ‘Ž•€Ÿ…Œ …ƒŽ „Ž ‹“—˜ˆ• ‚…Œ…
435
                LD HL,0X020B
436
                CALL COM_MP3                    ;“Œ…œ˜€…Œ ƒŽŒŠŽ‘’œ „Ž ŒˆˆŒ“Œ€
437
                LD HL,0X0301
438
                CALL COM_MP3
439
                LD A,E
440
                AND %01110000
441
                PUSH AF
442
                LD HL,0X0300
443
                CALL COM_MP3                    ;—ˆ’€…Œ ‘Ž‘’ŽŸˆ… MODE
444
                LD A,4
445
                XOR E
446
                LD E,A
447
                LD HL,0X0200
448
                CALL COM_MP3
449
                LD A,4
450
                XOR E
451
                LD E,A
452
                LD HL,0X0200
453
                CALL COM_MP3                    ;„€…Œ ŠŽŒ€„“ ‘Ž”’-‘Ž‘€
454
                IN A,(SSTAT)
455
                RRA
456
                JR NC,$-3                       ;†„…Œ Ž‘‚ށކ„…ˆŸ „…ŠŽ„…€
457
                LD HL,0X0203
458
                LD DE,0X9B58
459
                CALL COM_MP3                    ;‚›‘’€‚‹Ÿ…Œ —€‘’Ž’“ Ž‘‹… ˆˆ–ˆ€‹ˆ‡€–ˆˆ MP3 „…ŠŽ„…€
460
                POP AF
461
                LD HL,0X0202
462
                LD DE,0X8008
463
                CALL Z,COM_MP3                  ;…„ŽŠ“Œ…’ˆŽ‚€›‰ ˆŽŠ MP3 „…ŠŽ„…€
464
                POP DE
465
                LD HL,0X020B
466
                JR COM_MP3                      ;‚Ž‘‘’€€‚‹ˆ‚€…Œ ƒŽŒŠŽ‘’œ „Ž ‘Ž‘€
467
 
468
;ƒ‹“˜ˆŒ ƒŽŒŠŽ‘’œ MOD Ž’Ž‚
469
VOL_MOD         OUT (VOL1),A
470
                OUT (VOL2),A
471
                OUT (VOL3),A
472
                OUT (VOL4),A
473
                OUT (VOL5),A
474
                OUT (VOL6),A
475
                OUT (VOL7),A
476
                OUT (VOL8),A
477
                RET
478
 
479
;Ž–…„“€ —’…ˆŸ/‡€ˆ‘ˆ €„…‘Ž‚ MP3 „…ŠŽ„…€
480
;H-ŠŽŒ€„€ „…ŠŽ„…“ 3-READ ˆ‹ˆ 2-WRITE
481
;L-€„…‘ ‚ „…ŠŽ„……
482
;D-‘’€˜ˆ‰ €‰’
483
;E-Œ‹€„˜ˆ‰ €‰’
484
;DE Ž ‡€ˆ‘ˆ Ž„€’œ € ‚•Ž„
485
;   Ž —’…ˆž Ž‹“—ˆ’œ € ‚›•Ž„…
486
COM_MP3         IN A,(SSTAT)
487
                RRA
488
                JR NC,$-3                       ;„…ŠŽ„… ‘‚ށބ…
489
                LD A,M_MCNCS
490
                OUT (SCTRL),A                   ;‚›ˆ€…Œ „…ŠŽ„… ˆ ŽšŸ‘Ÿ…Œ …Œ“, —’Ž Ž’ …ƒŽ ’…“…’‘Ÿ
491
                CALL NOPER
492
                LD BC,MC_SEND
493
                LD A,H
494
                OUT (C),H
495
                CALL NOPER
496
                OUT (C),L
497
                CALL NOPER
498
                CP 3
499
                JR Z,MP3READ                    ;……•Ž„ˆŒ € —’…ˆ… (‘ŒŽ’ˆ ‚›˜…)
500
                OUT (C),D
501
                CALL NOPER
502
                OUT (C),E                       ;‡€ˆ‘€‹ˆ ‚ €„…‘ „…ŠŽ„…€
503
MP3_END         CALL NOPER
504
                LD A,M_MCNCS+M_SNCLR            ;0X82 ‘ˆŒ€…Œ ‚›Ž „…ŠŽ„…€
505
                OUT (SCTRL),A
506
                RET
507
 
508
;—ˆ’€…Œ —’Ž ‡€’…Ž‚€‹ˆ
509
MP3READ         LD BC,MC_READ
510
                LD A,0XFF
511
                OUT (MC_SEND),A
512
                CALL NOPER
513
                IN D,(C)
514
                CALL NOPER
515
                OUT (MC_SEND),A
516
                CALL NOPER
517
                IN E,(C)
518
                JR MP3_END
519
 
520
;Ž–…„“€ ……‘›‹Šˆ €‰’Ž‚ ‘Ž ‘…Š€ —……‡ Ž’› ƒ‘ € MP3 „…ŠŽ„…
521
;……‘›‹€…’‘Ÿ 512 €‰’
522
DAT2MP3         LD D,0X10               ;……ƒ€’œ € „…ŠŽ„… 16 Ž–ˆ‰
523
DAT2M03         IN A,(SSTAT)
524
                RRA
525
                JR NC,$-3               ;„…ŠŽ„… ‘‚ށބ…?
526
                LD B,0X20               ;Ž„€ Ž–ˆŸ 32 €‰’€
527
DAT2M13         IN A,(ZXSTAT)
528
                RLA
529
                JR NC,$-3               ;„ކ„€‹ˆ‘œ Ž„€—ˆ Ž’ ‘…Š€
530
                IN A,(ZXDATRD)          ;‡€€‹ˆ €‰’
531
                OUT (MD_SEND),A         ;Ž’„€‹ˆ „…ŠŽ„…“
532
                NOP                     ;‚›„…†€‹ˆ €“‡“ Ž ’€Š’€Œ
533
                DJNZ DAT2M13            ;Ž–ˆŸ ŠŽ—ˆ‹€‘œ
534
                DEC D
535
                JR NZ,DAT2M03
536
                RET                     ;512 €‰’ ……„€Ž!!!