Subversion Repositories ngs

Rev

Rev 100 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
100 lvd 1
 
2
 
3
	CPU	Z80UNDOC
4
	RELAXED	ON
5
 
6
	include	"ports.inc"
7
 
8
	org	0x4000
9
 
10
	di
101 lvd 11
	im	0
12
 
100 lvd 13
	ld	a,M_NOROM+C_24MHZ+M_EXPAG
14
	out	(GSCFG0),a
15
 
101 lvd 16
 
17
 
18
	ld	a,0xC3 ; JP
19
	ld	(0x28),a
20
	ld	(0x30),a
21
 
22
	ld	hl,MP3_INT
23
	ld	(0x29),hl
24
	ld	hl,SD_INT
25
	ld	(0x31),hl
26
 
27
	ld	a,0x7F
28
	out	(INTENA),a
29
	out	(INTREQ),a
30
	ld	a,0x86
31
	out	(INTENA),a
32
 
33
 
34
	xor	a
35
	ld	(fin),a
36
	ld	(fout),a
100 lvd 37
 
101 lvd 38
	ld	a,0x81
39
	ld	(flags),a
40
 
41
	call	check
42
	ei
43
 
44
hloop
45
	halt
46
	jp	hloop
100 lvd 47
 
101 lvd 48
 
49
SD_INT
50
	ld	hl,fin
51
	inc	(hl)
52
 
53
	ld	hl,flags
54
	call	check_sd
55
	bit	7,(hl)
56
	call	nz,check_mp3
57
	ei
58
	ret
59
 
60
 
61
MP3_INT
62
	ld	hl,fout
63
	inc	(hl)
64
 
65
	ld	hl,flags
66
	call	check_mp3
67
	bit	0,(hl)
68
	call	nz,check_sd
69
	ei
70
	ret
71
 
72
 
73
check	
74
	ld	hl,flags
75
 
76
	bit	0,(hl)
77
	call	nz,check_sd
78
 
79
	bit	7,(hl)
80
	call	nz,check_mp3
81
	ret
82
 
83
check_sd
84
	ld	a,(fout)
85
	ld	c,a
86
	ld	a,(fin)
87
	ld	b,a
88
	sub	c
89
	cp	128
90
	jr	c,sd_start
91
 
92
	set	0,(hl)
93
	ret
94
 
95
sd_start	
100 lvd 96
	ld	a,C_DMA_SD
97
	out	(DMA_MOD),a
101 lvd 98
	ld	a,1
99
	out	(DMA_HAD),a
100
	ld	a,b
101
	add	a,a
102
	out	(DMA_MAD),a
103
	xor	a
104
	out	(DMA_LAD),a
105
	ld	a,0x80
106
	out	(DMA_CST),a
107
 
108
	res	0,(hl)
109
	ret
100 lvd 110
 
101 lvd 111
 
112
 
113
check_mp3
114
	ld	a,(fout)
115
	ld	c,a
116
	ld	a,(fin)
117
	ld	b,a
118
	sub	c
119
	jr	nz,mp3_start
120
 
121
	set	7,(hl)
122
	ret
123
 
124
mp3_start	
125
	ld	a,C_DMA_MP3
126
	out	(DMA_MOD),a
100 lvd 127
	ld	a,1
128
	out	(DMA_HAD),a
101 lvd 129
	ld	a,c
130
	add	a,a
131
	out	(DMA_MAD),a
100 lvd 132
	xor	a
101 lvd 133
	out	(DMA_LAD),a
134
	ld	a,0x80
135
	out	(DMA_CST),a
136
 
137
	res	7,(hl)
138
	ret
139
 
140
 
141
 
142
 
143
 
144
 
145
 
146
llloop
147
	ld	a,C_DMA_SD
148
	out	(DMA_MOD),a
149
 
150
	ld	a,1
151
	out	(DMA_HAD),a
152
	xor	a
100 lvd 153
	out	(DMA_MAD),a
154
	out	(DMA_LAD),a
155
 
156
	ld	a,0x80
157
	out	(DMA_CST),a
158
 
101 lvd 159
	in	a,(DMA_CST)
160
	and	0x80
161
	jr	nz,$-4
100 lvd 162
 
101 lvd 163
 
164
 
165
	ld	a,C_DMA_MP3
166
	out	(DMA_MOD),a
167
 
168
	ld	a,1
169
	out	(DMA_HAD),a
170
	xor	a
171
	out	(DMA_MAD),a
172
	out	(DMA_LAD),a
173
 
174
	ld	a,0x80
175
	out	(DMA_CST),a
176
 
177
	in	a,(DMA_CST)
178
	and	0x80
179
	jr	nz,$-4
180
 
181
 
182
 
183
	jp	llloop
184
 
185
fin	db	0
186
fout	db	0
187
flags	db	0
188