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 |