Rev 165 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
105 | savelij | 1 | |
181 | savelij | 2 | ; LAST UPDATE: 17.05.2025 savelij |
105 | savelij | 3 | |
164 | savelij | 4 | ; ��� ��� ��� |
105 | savelij | 5 | |
112 | savelij | 6 | include macros.a80 |
105 | savelij | 7 | include ports_ngs.a80 |
8 | include sdcomand.a80 |
||
163 | savelij | 9 | include bootsecfat.a80 |
164 | savelij | 10 | include fat_dir.a80 |
165 | savelij | 11 | include define_vs10xx.a80 |
12 | include local_define.a80 |
||
105 | savelij | 13 | |
164 | savelij | 14 | ; ���� ��訢�� ��� ����७�� MOD |
15 | ; ����७��, ��ઠ � ��祥 |
||
16 | COMINT EQU 0x026B |
||
17 | COMINT_ EQU 0x026E |
||
18 | COMINT0 EQU 0x0273 |
||
19 | COMINT1 EQU 0x0295 |
||
20 | WTDTL EQU 0x02BC |
||
21 | EMPTY1 EQU 0x0942 |
||
22 | ADDA80 EQU 0x0EF8 |
||
23 | EMPTY2 EQU 0x3D5F |
||
165 | savelij | 24 | NUMPG EQU 0x4080 ; �ᥣ� ��࠭�� |
25 | CPAGE EQU 0x4081 |
||
164 | savelij | 26 | CNTMOD EQU 0x4090 |
27 | CURMOD EQU 0x4096 |
||
28 | CONVERT EQU 0x40B7 |
||
29 | MTSTAT EQU 0x4151 |
||
30 | MTSNGPS EQU 0x415B |
||
31 | MTSNGSZ EQU 0x415C |
||
32 | PlMode EQU 0x41A0 |
||
33 | MODLLEN EQU 0x41A1 |
||
34 | ISTACK EQU 0x4400 |
||
35 | LDMOD EQU 0xC3F8 |
||
36 | PLAYMOD EQU 0xC426 |
||
37 | FXB01 EQU 0xD2B2 |
||
105 | savelij | 38 | |
165 | savelij | 39 | BITMASK MOD_STOP_PLAY, 7 ; 1-MOD STOP, 0-PLAY |
40 | |||
164 | savelij | 41 | INIT_VAR 0x4168 |
181 | savelij | 42 | SETVAR VAR_FLAGS, BYTE |
43 | SETVAR VAR_STATUS, BYTE ; 1 ����� ����� |
||
44 | SETVAR VAR_GETVTSL, BYTE ; 1 ������ MP3 稯� |
||
45 | SETVAR VAR_GETVTSH, BYTE ; 1 ���� ०���� |
||
46 | SETVAR VAR_VSTBL, WORD ; 2 ⥪�騥 ����ன�� ⥬� |
||
47 | SETVAR VAR_COUNT_MP3, WORD ; 2 ������⢮ MP3 |
||
48 | SETVAR VAR_NUMFILE, WORD ; 2 ����� ⥪�饣� 䠩�� |
||
49 | SETVAR VAR_TYPE_RESET, BYTE ; 1 ⨯ ��� |
||
50 | SETVAR VAR_TYPE_FAT, BYTE ; 1 ������ FAT |
||
51 | SETVAR VAR_BUF_TEXT, 8 ; 8 ���� ��� ⥪�� |
||
52 | SETVAR VAR_SIZE_PATTERN_MOD, BYTE ; 1 ���-�� ���୮� � ����㦥���� MOD |
||
53 | SETVAR VAR_SIZE_PAGES_MOD, BYTE ; 1 ���-�� ��࠭�� MOD |
||
54 | SETVAR VAR_TIMEOUT, WORD ; 2 TIMEOUT �� ࠡ��� � ���� 䠩��� |
||
55 | SETVAR VAR_KUDAXOR, WORD ; 2 ���� ���室� �� XOR BIT 7 |
||
56 | SETVAR VAR_PAGE_PLAYER, BYTE ; 1 ����� ��࠭��� �ᯮ������� ����� |
||
57 | SETVAR VAR_INT_MODE, BYTE ; 1 䫠� ࠧ�襭���� ���뢠��� |
||
58 | SETVAR VAR_CHIP_TYPE, BYTE ; 1 ⨯ 稭� �� ���� |
||
59 | SETVAR VAR_FILE_TYPE, BYTE ; 1 ⨯ 䠩�� |
||
60 | SETVAR VAR_SIZE_VARS, 0 ; ������⢮ ��६����� |
||
105 | savelij | 61 | |
165 | savelij | 62 | ; ��᪨ ��������� ⥬� (�ॡ�� ��ન, �� VS1011 ࠡ�⠥� ⮫쪮 BASS |
63 | BITMASK UBASS_DIR, 7 ; ���ࠢ����� ��������� UBASS |
||
64 | BITMASK UBASS, 6 ; UBASS |
||
65 | BITMASK FBASS_DIR, 5 ; ���ࠢ����� ��������� FBASS |
||
66 | BITMASK FBASS, 4 ; FBASS |
||
67 | BITMASK UTREBLE_DIR, 3 ; ���ࠢ����� ��������� UTREBLE |
||
68 | BITMASK UTREBLE, 2 ; UTREBLE |
||
69 | BITMASK FTREBLE_DIR, 1 ; ���ࠢ����� ��������� FTREBLE |
||
70 | BITMASK FTREBLE, 0 ; FTREBLE |
||
105 | savelij | 71 | |
112 | savelij | 72 | FREQ10 EQU 0 |
73 | FREQ12 EQU 1 |
||
74 | FREQ20 EQU 2 |
||
75 | FREQ24 EQU 3 |
||
105 | savelij | 76 | |
164 | savelij | 77 | ORG 0x8000 |
105 | savelij | 78 | START DI |
79 | LD SP,ISTACK |
||
165 | savelij | 80 | CALL ALLRES ; ��� ��� ����� |
105 | savelij | 81 | OUT (ZXDATWR),A |
165 | savelij | 82 | OUT (CLRCBIT),A ; ᮮ�騫� ᯥ�� � १����� ���� |
105 | savelij | 83 | LD A,1 |
84 | LD (PlMode),A |
||
164 | savelij | 85 | LD HL,0x0200 |
105 | savelij | 86 | LD (MODLLEN),HL |
165 | savelij | 87 | JP CONTINUE_MOD |
105 | savelij | 88 | |
181 | savelij | 89 | F_EXT_VS1001 |
90 | F_EXT_VS1011 DZ "MODMP3" |
||
91 | F_EXT_VS1003 DZ "MODMP3WAVWMAMID" |
||
92 | F_EXT_VS1053 DZ "MODMP3WAVWMAMIDOGG" |
||
93 | F_EXT_VS1063 DZ "MODMP3" |
||
94 | |||
165 | savelij | 95 | TABFUNC DW INIT_SD ; 00 ��१���� SD |
96 | DW PREV_TRACK ; 01 �।��騩 �४ |
||
97 | DW PLAY ; 02 ���� |
||
98 | DW PAUSE ; 03 ��㧠 |
||
99 | DW STOP ; 04 �⮯ |
||
100 | DW NEXT_TRACK ; 05 ���騩 �४ |
||
101 | DW XORBASS ; 06 XOR TREBLE/BASS |
||
102 | DW XORSURR ; 07 XOR SURROUND |
||
103 | DW VOL_UP ; 08 ������ + |
||
104 | DW VOL_DOWN ; 09 ������ - |
||
105 | DW MUTE ; 0A ���/�몫 ����� |
||
106 | DW GET_TIME ; 0B �⤠�� �६� |
||
107 | DW GET_VTS ; 0C �⤠�� ��ࠬ 6-10 |
||
108 | DW GET_CURRENT ; 0D �⤠�� ⥪ ����� |
||
109 | DW SET_NUM ; 0E ��⠭���� ⥪�饣� ����� |
||
110 | DW RESET_MP3 ; 0F ��� MP3 ������� |
||
111 | DW FAT_TYPE ; 10 ⨯ FAT |
||
112 | DW GET_LNG ; 11 �⤠�� ��� 䠩�� |
||
113 | DW GET_FILE_DESCR ; 12 �⤠�� ����⥫� |
||
114 | DW GET_COUNT_FILES ; 13 �⤠�� ����� *.EXT |
||
115 | DW SEND_MP3 ; 14 �� �� MP3 |
||
116 | DW TXT_COUNT_FILES ; 15 DEC � 䠩��� |
||
117 | DW TXT_CURRENT_FILE ; 16 DEC � ⥪��+1 |
||
118 | DW XOR_RESET ; 17 ��४��祭�� ⨯� ��� |
||
119 | DW PREV_DIR ; 18 ���騩 DIR |
||
120 | DW NEXT_DIR ; 19 �।��騩 DIR |
||
121 | DW SET_TEMBR ; 1A ���. ⥬� |
||
122 | DW TXT_TEMBR_STATUS ; 1B �⥭�� ⥬� |
||
123 | DW BITRATE ; 1C RD ���३� � ��� |
||
124 | DW TEST_MODE ; 1D ��� ०��� |
||
125 | DW GET_CHIP_TYPE ; 1E ����� 稯� MP3 |
||
126 | END_TAB |
||
127 | |||
128 | ALLRES CALL PATCH ; ���� �᭮���� ��訢�� |
||
181 | savelij | 129 | LD HL,VAR_FLAGS |
105 | savelij | 130 | LD D,H |
131 | LD E,L |
||
181 | savelij | 132 | LD BC,VAR_SIZE_PAGES_MOD - VAR_FLAGS ; ������⢮ ��६����� ��� ���㫥��� |
105 | savelij | 133 | INC DE |
134 | LD (HL),0 |
||
165 | savelij | 135 | LDIR ; ����⪠ ������ ��६����� |
105 | savelij | 136 | LD A,Softmp3 |
181 | savelij | 137 | LD (VAR_TYPE_RESET),A ; ��⠭���� ��� MP3 稯� |
105 | savelij | 138 | LD A,Avtodet |
139 | CALL COM__SD |
||
165 | savelij | 140 | AND A ; ��।��塞 GS/NeoGS |
105 | savelij | 141 | JR Z,INI_MP3 |
165 | savelij | 142 | LD A,NEOGS_ERROR |
143 | JR INIT_SD.L4 ; ��� �訡�� =GS |
||
105 | savelij | 144 | |
145 | INI_MP3 LD A,Hardmp3 |
||
165 | savelij | 146 | CALL COM__SD ; ������ ���樠������ MP3 稯� |
105 | savelij | 147 | |
148 | ;----FUNC00---- |
||
165 | savelij | 149 | INIT_SD CALL RTYPEVS ; ����祭�� ����� 稯� MP3 |
150 | LD HL,0 |
||
181 | savelij | 151 | LD (VAR_NUMFILE),HL |
105 | savelij | 152 | LD A,Sd_init |
153 | CALL COM__SD |
||
165 | savelij | 154 | AND A ; ���樠������ SD ����� |
155 | JR Z,.L1 |
||
156 | LD A,SD_NOT_FOUND |
||
181 | savelij | 157 | LD (VAR_TYPE_FAT),A |
165 | savelij | 158 | JR .L4 ; ��� �訡�� =SD ���� �� ������� |
105 | savelij | 159 | |
181 | savelij | 160 | .L1 LD HL,VAR_FLAGS |
165 | savelij | 161 | RES B_SD_LOST,(HL) |
163 | savelij | 162 | LD A,Init_Fatvars |
165 | savelij | 163 | CALL COM_FAT ; ���樠������ FAT |
164 | savelij | 164 | CP 0x80 |
165 | savelij | 165 | JR Z,.L11 |
181 | savelij | 166 | LD (VAR_TYPE_FAT),A |
105 | savelij | 167 | INC A |
165 | savelij | 168 | JR NZ,.L3 |
169 | .L11 LD A,FAT_NOT_FOUND |
||
170 | JR .L4 ; ��� �訡�� =FAT �� ������ |
||
105 | savelij | 171 | |
165 | savelij | 172 | .L3 CALL XORBASS.L2 |
105 | savelij | 173 | LD A,Finddir |
165 | savelij | 174 | CALL COM_FAT ; ���� ��� ��४� |
164 | savelij | 175 | CP 0x80 |
165 | savelij | 176 | JR Z,.L11 |
105 | savelij | 177 | LD A,Findfil |
165 | savelij | 178 | CALL COM_FAT ; ���� ��� 䠩��� �� ��᪥ |
164 | savelij | 179 | CP 0x80 |
165 | savelij | 180 | JR Z,.L11 |
181 | savelij | 181 | LD (VAR_COUNT_MP3),HL |
165 | savelij | 182 | OUT (CLRCBIT),A |
183 | CALL PAUSE ; ���⠭���� �� ���� |
||
105 | savelij | 184 | LD A,H |
185 | OR L |
||
165 | savelij | 186 | LD A,FILES_NOT_FOUND |
187 | JR Z,.L4 ; ��� �訡�� =䠩��� �� ������� |
||
105 | savelij | 188 | LD BC,0 |
189 | CALL INIPLAY |
||
165 | savelij | 190 | LD A,PLAYER_OK ; ��� �訡�� =�� �����⥫쭮 |
181 | savelij | 191 | .L4 LD (VAR_STATUS),A |
105 | savelij | 192 | RET |
193 | |||
194 | ;----FUNC1C---- |
||
165 | savelij | 195 | ; �������� HDAT1,HDAT0 |
196 | ; �� �⥭�� BC=HDAT1, DE=HDAT0 |
||
197 | BITRATE LD HL,VS10XX_READ << 8 + SCI_HDAT1;0x0309 |
||
105 | savelij | 198 | LD A,Com_mp3 |
199 | CALL COM__SD |
||
200 | PUSH DE |
||
165 | savelij | 201 | LD HL,VS10XX_READ << 8 + SCI_HDAT0;0x0308 |
105 | savelij | 202 | LD A,Com_mp3 |
203 | CALL COM__SD |
||
204 | POP BC |
||
205 | LD A,C |
||
206 | AND A |
||
164 | savelij | 207 | LD HL,0xA000 |
165 | savelij | 208 | JP Z,GET_RZN ; ���室 � ��祣� �� ��ࠥ��� |
105 | savelij | 209 | AND %00011000 |
210 | RRCA |
||
211 | RRCA |
||
165 | savelij | 212 | RRCA ; ���� ID |
105 | savelij | 213 | LD L,A |
214 | LD A,D |
||
165 | savelij | 215 | AND %00001100 ; ���� SAMPLE RATE |
105 | savelij | 216 | OR L |
217 | LD L,A |
||
218 | LD A,C |
||
165 | savelij | 219 | AND %00000110 ; ���� LAYER |
105 | savelij | 220 | RLCA |
221 | RLCA |
||
222 | RLCA |
||
223 | OR L |
||
224 | LD L,A |
||
225 | LD A,E |
||
165 | savelij | 226 | AND %11000000 ; ���� MODE |
105 | savelij | 227 | OR L |
228 | LD L,A |
||
229 | LD A,D |
||
165 | savelij | 230 | AND %11110000 ; ���� BITRATE |
105 | savelij | 231 | RRCA |
232 | RRCA |
||
233 | RRCA |
||
234 | RRCA |
||
235 | LD H,A |
||
165 | savelij | 236 | JP GET_RZN ; ��� �� ᯥ� ᮤ�ন���� HL |
105 | savelij | 237 | |
238 | ;----FUNC1A---- |
||
165 | savelij | 239 | ; ��������� ⥬� |
240 | SET_TEMBR OUT (CLRCBIT),A |
||
105 | savelij | 241 | CALL WDY |
165 | savelij | 242 | IN A,(ZXDATRD) ; �⥭�� ��ࠬ��� |
243 | LD B,A ; ��࠭塞 |
||
181 | savelij | 244 | LD A,(VAR_CHIP_TYPE) |
165 | savelij | 245 | CP VS1001 ; ���塞 ⨯ 稯� |
246 | RET Z ; ��� VS1001 ��室�� |
||
247 | ; ��� VS1011 �த������ |
||
181 | savelij | 248 | LD A,(VAR_GETVTSH) |
165 | savelij | 249 | BIT B_ENABLE_TEMBR,A ; ���塞 ����� �� |
250 | RET Z ; ������ ⥬��� |
||
251 | PUSH BC ; ��࠭塞 "B" |
||
252 | LD HL,VS10XX_READ << 8 + SCI_BASS;0x0302 |
||
253 | LD A,Com_mp3 ; �⠥� ⥪�饥 ���祭�� |
||
254 | CALL COM__SD ; ⥬� |
||
255 | POP BC ; ����⠭�������� "B" |
||
256 | LD C,0x10 ; 蠣 ��������� |
||
257 | ; ���塞 ���� UBASS ? |
||
258 | BIT B_UBASS,B ; ���⨬ UBASS? |
||
259 | JR Z,.L1 |
||
105 | savelij | 260 | LD A,E |
165 | savelij | 261 | AND %00001111 |
262 | LD L,A ; ��࠭塞 ���� 3-0 |
||
105 | savelij | 263 | LD A,E |
165 | savelij | 264 | AND %11110000 |
265 | BIT B_UBASS_DIR,B ; �㤠 ���⨬? |
||
266 | JR Z,.L01 ; 㢥��祭�� |
||
267 | ; 㢥��祭�� UBASS |
||
268 | ADD A,C ; 㢥��稢��� �� 1 |
||
269 | JR C,.L1 ; ���ᨬ�! |
||
270 | JR .L02 |
||
105 | savelij | 271 | |
165 | savelij | 272 | ; 㬥��襭�� UBASS |
273 | .L01 SUB C ; 㬥��蠥� �� 1 |
||
274 | JR C,.L1 ; ������! |
||
275 | .L02 ADD A,L |
||
276 | LD E,A ; ���㫨 ���� 3-0 |
||
277 | |||
278 | ; ���塞 ���� UTREBLE ? |
||
279 | .L1 BIT B_UTREBLE,B ; ���⨬ UTREBLE? |
||
280 | JR Z,.L2 |
||
105 | savelij | 281 | LD A,D |
165 | savelij | 282 | AND %00001111 |
283 | LD L,A ; ��࠭塞 ���� 3-0 |
||
105 | savelij | 284 | LD A,D |
165 | savelij | 285 | AND %11110000 |
286 | BIT B_UTREBLE_DIR,B ; �㤠 ���⨬? |
||
287 | JR Z,.L03 |
||
288 | ; 㢥��祭�� UTREBLE |
||
105 | savelij | 289 | ADD A,C |
165 | savelij | 290 | JR C,.L2 ; ���ᨬ�! |
291 | JR .L04 |
||
105 | savelij | 292 | |
165 | savelij | 293 | ; 㬥��襭�� UTREBLE |
294 | .L03 SUB C |
||
295 | JR C,.L3 ; ������! |
||
296 | .L04 ADD A,L |
||
297 | LD D,A ; ���㫨 ���� 3-0 |
||
298 | ; ���塞 ���� FBASS ? |
||
299 | .L2 BIT B_FBASS,B ; ���⨬ FBASS? |
||
300 | JR Z,.L3 |
||
105 | savelij | 301 | LD A,E |
165 | savelij | 302 | AND %11110000 |
303 | LD L,A ; ��࠭塞 ���� 7-4 |
||
105 | savelij | 304 | LD A,E |
165 | savelij | 305 | AND %00001111 |
306 | BIT B_FBASS_DIR,B ; �㤠 ���⨬? |
||
307 | JR Z,.L05 |
||
308 | ; 㢥��祭�� FBASS |
||
105 | savelij | 309 | INC A |
164 | savelij | 310 | CP 0x10 |
165 | savelij | 311 | JR NC,.L3 ; ���ᨬ�! |
312 | JR .L06 |
||
105 | savelij | 313 | |
165 | savelij | 314 | ; 㬥��襭�� FBASS |
315 | .L05 AND A |
||
316 | JR Z,.L3 ; ������! |
||
105 | savelij | 317 | DEC A |
165 | savelij | 318 | .L06 ADD A,L |
319 | LD E,A ; ���㫨 ���� 7-4 |
||
320 | ; ���塞 ���� FTREBLE ? |
||
321 | .L3 BIT B_FTREBLE,B ; ���⨬ FTREBLE? |
||
322 | JR Z,WR_TEMBR |
||
105 | savelij | 323 | LD A,D |
165 | savelij | 324 | AND %11110000 |
325 | LD L,A ; ��࠭塞 ���� 7-4 |
||
105 | savelij | 326 | LD A,D |
165 | savelij | 327 | AND %00001111 |
328 | BIT B_FTREBLE_DIR,B ; �㤠 ���⨬? |
||
329 | JR Z,.L07 |
||
330 | ; 㢥��祭�� FTREBLE |
||
105 | savelij | 331 | INC A |
164 | savelij | 332 | CP 0x10 |
165 | savelij | 333 | JR NC,WR_TEMBR ; ���ᨬ�! |
334 | JR .L08 |
||
105 | savelij | 335 | |
165 | savelij | 336 | ; 㬥��襭�� FTREBLE |
337 | .L07 AND A |
||
338 | JR Z,.L08 ; ������! |
||
105 | savelij | 339 | DEC A |
165 | savelij | 340 | .L08 ADD A,L |
341 | LD D,A ; ���㫨 ���� 7-4 |
||
342 | ; �����뢠�� ��������� � 稯 |
||
343 | WR_TEMBR LD HL,VS10XX_WRITE << 8 + SCI_BASS;0x0202 |
||
105 | savelij | 344 | LD A,Com_mp3 |
165 | savelij | 345 | JP COM__SD ; ����ᠫ� ��⠭���� ���� |
105 | savelij | 346 | |
347 | ;----FUNC10---- |
||
165 | savelij | 348 | ; �⤠� ���� ⨯� FAT |
181 | savelij | 349 | FAT_TYPE LD A,(VAR_TYPE_FAT) |
105 | savelij | 350 | JP GET_BYT |
351 | |||
165 | savelij | 352 | ; ��।������ ��⠭��������� 稯� |
353 | RTYPEVS LD HL,VS10XX_READ << 8 + SCI_STATUS;0x0301 |
||
105 | savelij | 354 | LD A,Com_mp3 |
355 | CALL COM__SD |
||
165 | savelij | 356 | LD A,E ; ��� �������� ���� 7-4 �� ॣ���� ����� |
181 | savelij | 357 | AND SCISTATUS.M_SS_VER |
105 | savelij | 358 | RRCA |
359 | RRCA |
||
165 | savelij | 360 | RRCA |
361 | RRCA |
||
181 | savelij | 362 | .L1 LD (VAR_CHIP_TYPE),A ; ⨯ ��⠭��������� MP3 稯� |
105 | savelij | 363 | RET |
364 | |||
365 | ;----FUNC1D---- |
||
165 | savelij | 366 | ; �⢥� �� ����� ����� ��� ࠡ�⠥� |
367 | TEST_MODE IN A,(ZXDATRD) |
||
368 | OUT (CLRCBIT),A |
||
181 | savelij | 369 | LD A,(VAR_STATUS) |
105 | savelij | 370 | OUT (ZXDATWR),A |
371 | RET |
||
372 | |||
165 | savelij | 373 | ;----FUNC1E----- |
374 | ; ����祭�� ����� 稯� MP3 |
||
375 | GET_CHIP_TYPE IN A,(ZXDATRD) |
||
376 | OUT (CLRCBIT),A |
||
181 | savelij | 377 | LD A,(VAR_CHIP_TYPE) |
165 | savelij | 378 | OUT (ZXDATWR),A |
379 | RET |
||
380 | |||
105 | savelij | 381 | ;----FUNC17---- |
165 | savelij | 382 | ; ��४��祭�� ⨯� ��� |
181 | savelij | 383 | XOR_RESET LD HL,VAR_GETVTSH |
165 | savelij | 384 | LD A,M_TYPE_RESET |
105 | savelij | 385 | XOR (HL) |
386 | LD (HL),A |
||
387 | LD A,Hardmp3 |
||
165 | savelij | 388 | BIT B_TYPE_RESET,(HL) |
389 | JR NZ,.L1 |
||
105 | savelij | 390 | LD A,Softmp3 |
181 | savelij | 391 | .L1 LD (VAR_TYPE_RESET),A |
105 | savelij | 392 | RET |
393 | |||
394 | ;----FUNC0F---- |
||
165 | savelij | 395 | ; ��� MP3 稯� |
181 | savelij | 396 | RESET_MP3 LD A,(VAR_TYPE_RESET) |
105 | savelij | 397 | JP COM__SD |
398 | |||
399 | ;----FUNC04---- |
||
165 | savelij | 400 | ; ��⠭���� �ந��뢠��� |
401 | STOP CALL PAUSE |
||
181 | savelij | 402 | LD BC,(VAR_NUMFILE) |
105 | savelij | 403 | JP INIPLAY |
404 | |||
405 | ;----FUNC03---- |
||
165 | savelij | 406 | ; ��㧠 ���ந�������� |
407 | PAUSE LD HL,MTSTAT |
||
408 | SET B_MOD_STOP_PLAY,(HL) |
||
181 | savelij | 409 | LD HL,VAR_FLAGS |
165 | savelij | 410 | RES B_PLAY_STOP,(HL) |
105 | savelij | 411 | RET |
412 | |||
413 | ;----FUNC02---- |
||
165 | savelij | 414 | ; ����� ���ந�������� |
181 | savelij | 415 | PLAY LD HL,(VAR_COUNT_MP3) |
105 | savelij | 416 | LD A,H |
417 | OR L |
||
418 | RET Z |
||
165 | savelij | 419 | LD HL,MTSTAT |
420 | RES B_MOD_STOP_PLAY,(HL) |
||
181 | savelij | 421 | LD HL,VAR_FLAGS |
165 | savelij | 422 | SET B_PLAY_STOP,(HL) |
105 | savelij | 423 | RET |
424 | |||
425 | ;----FUNC05---- |
||
165 | savelij | 426 | ; ���室 �� ��騩 ���� |
181 | savelij | 427 | NEXT_TRACK LD BC,(VAR_NUMFILE) |
105 | savelij | 428 | INC BC |
181 | savelij | 429 | LD HL,(VAR_COUNT_MP3) |
105 | savelij | 430 | LD A,H |
431 | OR L |
||
432 | RET Z |
||
433 | AND A |
||
434 | SBC HL,BC |
||
165 | savelij | 435 | JR NZ,.L1 |
105 | savelij | 436 | LD BC,0 |
437 | |||
165 | savelij | 438 | ; ��饥 ��� ���室�� �� 䠩��� |
181 | savelij | 439 | .L1 LD (VAR_NUMFILE),BC |
105 | savelij | 440 | JP INIPLAY |
441 | |||
442 | ;----FUNC01---- |
||
165 | savelij | 443 | ; ���室 �� �।��騩 ���� |
181 | savelij | 444 | PREV_TRACK LD BC,(VAR_NUMFILE) |
105 | savelij | 445 | LD A,B |
446 | OR C |
||
165 | savelij | 447 | JR NZ,.L1 |
181 | savelij | 448 | LD BC,(VAR_COUNT_MP3) |
105 | savelij | 449 | LD A,B |
450 | OR C |
||
451 | RET Z |
||
165 | savelij | 452 | .L1 DEC BC |
453 | JR NEXT_TRACK.L1 |
||
105 | savelij | 454 | |
455 | ;----FUNC19---- |
||
165 | savelij | 456 | ; ���室 �� ���� 䠩� ��饩 DIR |
457 | NEXT_DIR LD A,Nxtdir |
||
105 | savelij | 458 | JR P_DIR |
459 | |||
460 | ;----FUNC18---- |
||
165 | savelij | 461 | ; ���室 �� ���� 䠩� �।��饩 DIR |
462 | PREV_DIR LD A,Prvdir |
||
181 | savelij | 463 | P_DIR LD BC,(VAR_NUMFILE) |
105 | savelij | 464 | PUSH BC |
465 | CALL COM_FAT |
||
466 | POP HL |
||
164 | savelij | 467 | CP 0x80 |
105 | savelij | 468 | JP Z,SD_LOST |
469 | AND A |
||
470 | SBC HL,BC |
||
165 | savelij | 471 | JR NZ,NEXT_TRACK.L1 |
105 | savelij | 472 | RET |
473 | |||
474 | ;----FUNC15---- |
||
165 | savelij | 475 | ; ��ॣ���� 512 ���� ᭠�㦨 �� MP3 |
476 | SEND_MP3 LD A,Dat2mp3 |
||
105 | savelij | 477 | JP COM__SD |
478 | |||
479 | ;----FUNC11---- |
||
165 | savelij | 480 | ; �⤠�� ᯥ�� ������� ��� |
105 | savelij | 481 | GET_LNG CALL RDINBC |
482 | BIT 7,B |
||
165 | savelij | 483 | JR Z,.L1 |
181 | savelij | 484 | LD BC,(VAR_NUMFILE) |
485 | .L1 LD HL,VAR_GETVTSH |
||
165 | savelij | 486 | RES B_NEW_FILE,(HL) |
105 | savelij | 487 | LD HL,BUF_LNG |
488 | ; LD A,Getlong |
||
489 | ; CALL COM_FAT |
||
164 | savelij | 490 | ; CP 0x80 |
105 | savelij | 491 | ; JP Z,SD_LOST |
492 | LD E,0 |
||
493 | JP OUTDATA |
||
494 | |||
495 | ;----FUNC0A---- |
||
165 | savelij | 496 | ; �몫/��� ��㪠 |
497 | MUTE LD HL,VS10XX_READ << 8 + SCI_VOL;0x030B |
||
105 | savelij | 498 | LD A,Com_mp3 |
499 | CALL COM__SD |
||
500 | LD A,E |
||
164 | savelij | 501 | CP 0xFE |
105 | savelij | 502 | JR NC,MUTEOFF |
165 | savelij | 503 | LD (MUTEOFF.L1),A |
181 | savelij | 504 | LD HL,VAR_GETVTSH |
165 | savelij | 505 | SET B_MUTE,(HL) |
164 | savelij | 506 | LD E,0xFE |
105 | savelij | 507 | JR VOL_ALL |
508 | |||
509 | MUTEOFF LD E,0 |
||
165 | savelij | 510 | .L1 EQU $-1 |
181 | savelij | 511 | LD HL,VAR_GETVTSH |
165 | savelij | 512 | RES B_MUTE,(HL) |
105 | savelij | 513 | JR VOL_ALL |
514 | |||
515 | ;----FUNC08---- |
||
165 | savelij | 516 | ; 㢥��祭�� ����� �� ������� |
517 | VOL_UP LD HL,VS10XX_READ << 8 + SCI_VOL;0x030B |
||
105 | savelij | 518 | LD A,Com_mp3 |
519 | CALL COM__SD |
||
520 | LD A,E |
||
521 | AND A |
||
522 | RET Z |
||
164 | savelij | 523 | CP 0x80 |
105 | savelij | 524 | RET NC |
525 | DEC E |
||
526 | JR VOL_ALL |
||
527 | |||
528 | ;----FUNC09---- |
||
165 | savelij | 529 | ; 㬥��襭�� ����� �� ������� |
530 | VOL_DOWN LD HL,VS10XX_READ << 8 + SCI_VOL;0x030B |
||
105 | savelij | 531 | LD A,Com_mp3 |
532 | CALL COM__SD |
||
533 | LD A,E |
||
164 | savelij | 534 | CP 0x7F |
105 | savelij | 535 | RET NC |
536 | INC E |
||
537 | VOL_ALL LD D,E |
||
165 | savelij | 538 | LD HL,VS10XX_WRITE << 8 + SCI_VOL;0x020B |
105 | savelij | 539 | LD A,E |
181 | savelij | 540 | LD (VAR_GETVTSL),A |
165 | savelij | 541 | JR XOR_ALL.L1 |
105 | savelij | 542 | |
543 | ;----FUNC07---- |
||
165 | savelij | 544 | ; ��४��祭�� VIRTUAL SURROUND |
545 | XORSURR LD B,M_SURROUND |
||
105 | savelij | 546 | XOR_ALL PUSH BC |
165 | savelij | 547 | LD HL,VS10XX_READ << 8 + SCI_MODE;0x0300 |
105 | savelij | 548 | LD A,Com_mp3 |
549 | CALL COM__SD |
||
550 | POP BC |
||
551 | LD A,E |
||
552 | XOR B |
||
553 | LD E,A |
||
181 | savelij | 554 | LD A,(VAR_GETVTSH) |
105 | savelij | 555 | XOR B |
181 | savelij | 556 | LD (VAR_GETVTSH),A |
557 | LD A,(VAR_CHIP_TYPE) |
||
165 | savelij | 558 | CP VS1001 |
559 | JR Z,.L2 |
||
105 | savelij | 560 | RES 7,E |
165 | savelij | 561 | .L2 LD HL,VS10XX_WRITE << 8 + SCI_MODE;0x0200 |
562 | .L1 LD A,Com_mp3 |
||
105 | savelij | 563 | JP COM__SD |
564 | |||
565 | ;----FUNC06---- |
||
165 | savelij | 566 | ; ��४��祭�� ⥬� |
181 | savelij | 567 | XORBASS LD A,(VAR_CHIP_TYPE) |
165 | savelij | 568 | CP VS1001 |
569 | JR Z,.L1 |
||
570 | LD B,M_ENABLE_TEMBR |
||
105 | savelij | 571 | JR XOR_ALL |
572 | |||
181 | savelij | 573 | .L1 LD A,(VAR_GETVTSH) |
165 | savelij | 574 | XOR M_ENABLE_TEMBR |
181 | savelij | 575 | LD (VAR_GETVTSH),A |
576 | .L2 LD A,(VAR_GETVTSH) |
||
165 | savelij | 577 | BIT B_ENABLE_TEMBR,A |
578 | JR Z,.L4 |
||
181 | savelij | 579 | LD DE,(VAR_VSTBL) |
165 | savelij | 580 | .L3 LD HL,VS10XX_WRITE << 8 + SCI_BASS;0x0202 |
581 | JR XOR_ALL.L1 |
||
105 | savelij | 582 | |
165 | savelij | 583 | .L4 LD HL,VS10XX_READ << 8 + SCI_BASS;0x0302 |
105 | savelij | 584 | LD A,Com_mp3 |
585 | CALL COM__SD |
||
181 | savelij | 586 | LD (VAR_VSTBL),DE |
105 | savelij | 587 | LD DE,0 |
165 | savelij | 588 | JR .L3 |
105 | savelij | 589 | |
590 | ;----FUNC0B---- |
||
165 | savelij | 591 | ; ������� �६� �ந��뢠��� |
592 | GET_TIME LD HL,VS10XX_READ << 8 + SCI_DECODE_TIME;0x0304 |
||
105 | savelij | 593 | LD A,Com_mp3 |
594 | CALL COM__SD |
||
595 | EX DE,HL |
||
181 | savelij | 596 | LD DE,VAR_BUF_TEXT |
105 | savelij | 597 | PUSH DE |
598 | LD BC,36000 |
||
599 | CALL SUB_BC |
||
600 | LD BC,3600 |
||
601 | CALL SUB_BC |
||
602 | LD BC,600 |
||
603 | CALL SUB_BC |
||
604 | LD BC,60 |
||
605 | CALL SUB_BC |
||
606 | LD BC,10 |
||
607 | CALL SUB_BC |
||
165 | savelij | 608 | LD A,'0' |
105 | savelij | 609 | ADD A,L |
610 | LD (DE),A |
||
611 | LD E,6 |
||
612 | POP HL |
||
613 | JP OUTDATA |
||
614 | |||
615 | ;----FUNC1B---- |
||
165 | savelij | 616 | ; ��� �� ᯥ� ���ﭨ� ⥬� � ⥪�⮢�� ���� |
617 | TXT_TEMBR_STATUS |
||
181 | savelij | 618 | LD A,(VAR_CHIP_TYPE) |
165 | savelij | 619 | CP VS1001 |
105 | savelij | 620 | RET Z |
165 | savelij | 621 | LD HL,VS10XX_READ << 8 + SCI_BASS;0x0302 |
105 | savelij | 622 | LD A,Com_mp3 |
623 | CALL COM__SD |
||
624 | LD A,D |
||
625 | EXX |
||
181 | savelij | 626 | LD DE,VAR_BUF_TEXT |
164 | savelij | 627 | AND 0x0F |
105 | savelij | 628 | LD L,A |
629 | LD H,0 |
||
630 | LD BC,10 |
||
631 | CALL SUB_BC |
||
165 | savelij | 632 | LD A,'0' |
105 | savelij | 633 | ADD A,L |
165 | savelij | 634 | LD (DE),A ; �������� ����� TREBLE |
105 | savelij | 635 | INC DE |
636 | EXX |
||
637 | LD A,D |
||
638 | EXX |
||
164 | savelij | 639 | AND 0xF0 |
105 | savelij | 640 | RRCA |
641 | RRCA |
||
642 | RRCA |
||
643 | RRCA |
||
644 | LD L,A |
||
645 | BIT 3,A |
||
165 | savelij | 646 | LD A,'+' |
647 | JR Z,.L2 |
||
648 | LD A,'-' |
||
649 | .L2 LD (DE),A |
||
105 | savelij | 650 | INC DE |
651 | LD A,L |
||
652 | AND 7 |
||
165 | savelij | 653 | ADD A,'0' |
654 | LD (DE),A ; �������� ���� TREBLE |
||
105 | savelij | 655 | INC DE |
656 | EXX |
||
657 | LD A,E |
||
658 | EXX |
||
164 | savelij | 659 | AND 0x0F |
105 | savelij | 660 | LD L,A |
661 | LD BC,10 |
||
662 | CALL SUB_BC |
||
165 | savelij | 663 | LD A,'0' |
105 | savelij | 664 | ADD A,L |
165 | savelij | 665 | LD (DE),A ; �������� ����� BASS |
105 | savelij | 666 | INC DE |
667 | EXX |
||
668 | LD A,E |
||
669 | EXX |
||
164 | savelij | 670 | AND 0xF0 |
105 | savelij | 671 | RRCA |
672 | RRCA |
||
673 | RRCA |
||
674 | RRCA |
||
675 | LD L,A |
||
676 | LD BC,10 |
||
677 | CALL SUB_BC |
||
165 | savelij | 678 | LD A,'0' |
105 | savelij | 679 | ADD A,L |
165 | savelij | 680 | LD (DE),A ; �������� ���� BASS |
105 | savelij | 681 | EXX |
682 | LD E,8 |
||
181 | savelij | 683 | LD HL,VAR_BUF_TEXT |
165 | savelij | 684 | LD A,'0' |
105 | savelij | 685 | CP (HL) |
165 | savelij | 686 | JR NZ,.L1 |
164 | savelij | 687 | LD (HL),0x20 |
165 | savelij | 688 | .L1 JP OUTDATA |
105 | savelij | 689 | |
164 | savelij | 690 | SUB_BC LD A,0xFF |
105 | savelij | 691 | AND A |
165 | savelij | 692 | .L1 INC A |
105 | savelij | 693 | SBC HL,BC |
165 | savelij | 694 | JR NC,.L1 |
105 | savelij | 695 | ADD HL,BC |
165 | savelij | 696 | ADD A,'0' |
105 | savelij | 697 | LD (DE),A |
698 | INC DE |
||
699 | RET |
||
700 | |||
701 | ;----FUNC15---- |
||
165 | savelij | 702 | ; ��� �� ᯥ� ������⢮ ��������� 䠩��� |
181 | savelij | 703 | TXT_COUNT_FILES LD HL,(VAR_COUNT_MP3) |
105 | savelij | 704 | |
165 | savelij | 705 | ; ��ॣ��塞 HL � TXT � ���뢠�� |
181 | savelij | 706 | GETDCHR LD DE,VAR_BUF_TEXT |
105 | savelij | 707 | PUSH DE |
708 | LD BC,10000 |
||
709 | CALL SUB_BC |
||
710 | LD BC,1000 |
||
711 | CALL SUB_BC |
||
712 | LD BC,100 |
||
713 | CALL SUB_BC |
||
714 | LD BC,10 |
||
715 | CALL SUB_BC |
||
165 | savelij | 716 | LD A,'0' |
105 | savelij | 717 | ADD A,L |
718 | LD (DE),A |
||
719 | POP HL |
||
720 | PUSH HL |
||
165 | savelij | 721 | LD BC,4 << 8 + ' ' |
722 | .L1 LD A,(HL) |
||
723 | CP '0' |
||
105 | savelij | 724 | JR NZ,GO_OUTD |
725 | LD (HL),C |
||
726 | INC HL |
||
165 | savelij | 727 | DJNZ .L1 |
105 | savelij | 728 | GO_OUTD POP HL |
729 | LD E,5 |
||
730 | JR OUTDATA |
||
731 | |||
732 | ;----FUNC16---- |
||
165 | savelij | 733 | ; ��� �� ᯥ� ����� ��ࠥ���� 䠩�� + 1 |
734 | ; � ��ॣ����� � ⥪�⮢� ��� |
||
735 | TXT_CURRENT_FILE |
||
181 | savelij | 736 | LD HL,(VAR_NUMFILE) |
105 | savelij | 737 | INC HL |
738 | JR GETDCHR |
||
739 | |||
740 | ;----FUNC12---- |
||
165 | savelij | 741 | ; �⤠�� ᯥ�� 33 ���� ����⥫� 䠩�� |
742 | GET_FILE_DESCR CALL RDINBC |
||
105 | savelij | 743 | BIT 7,B |
165 | savelij | 744 | JR Z,.L1 |
181 | savelij | 745 | LD BC,(VAR_NUMFILE) |
165 | savelij | 746 | .L1 LD A,Getfzap |
105 | savelij | 747 | CALL COM_FAT |
164 | savelij | 748 | CP 0x80 |
105 | savelij | 749 | JP Z,SD_LOST |
164 | savelij | 750 | LD BC,0x20 |
105 | savelij | 751 | ADD HL,BC |
752 | LD (HL),E |
||
753 | SBC HL,BC |
||
164 | savelij | 754 | LD E,0x21 |
105 | savelij | 755 | |
165 | savelij | 756 | ; �⤠�� ���⨪�, ���稪 ���� � E |
105 | savelij | 757 | OUTDATA LD A,(HL) |
758 | INC HL |
||
759 | OUT (ZXDATWR),A |
||
760 | CALL WDN |
||
761 | DEC E |
||
762 | JR NZ,OUTDATA |
||
763 | RET |
||
764 | |||
765 | ;----FUNC0E---- |
||
165 | savelij | 766 | ; ��⠭���� ����� 䠩�� ��� ��࠭�� |
767 | ; � �� �ॢ�蠥� ������⢮ ���������� - 1 |
||
105 | savelij | 768 | SET_NUM CALL RDINBC |
181 | savelij | 769 | LD HL,(VAR_COUNT_MP3) |
105 | savelij | 770 | AND A |
771 | SBC HL,BC |
||
772 | RET C |
||
181 | savelij | 773 | LD (VAR_NUMFILE),BC |
105 | savelij | 774 | RET |
775 | |||
165 | savelij | 776 | ; �⠥� � BC |
105 | savelij | 777 | RDINBC CALL WDY |
778 | IN A,(ZXDATRD) |
||
779 | LD B,A |
||
780 | CALL WDY |
||
781 | IN A,(ZXDATRD) |
||
782 | LD C,A |
||
783 | RET |
||
784 | |||
785 | ;----FUNC13---- |
||
165 | savelij | 786 | ; �⤠�� ᯥ�� ������⢮ ���������� |
181 | savelij | 787 | GET_COUNT_FILES LD HL,(VAR_COUNT_MP3) |
105 | savelij | 788 | JR GET_RZN |
789 | |||
790 | ;----FUNC0D---- |
||
165 | savelij | 791 | ; �⤠�� ᯥ�� ����� ⥪�饣� 䠩�� |
181 | savelij | 792 | GET_CURRENT LD HL,(VAR_NUMFILE) |
105 | savelij | 793 | JR GET_RZN |
794 | |||
795 | ;----FUNC0C---- |
||
165 | savelij | 796 | ; � HL ᮤ�ন��� ��⮢ ��⠭���� |
181 | savelij | 797 | GET_VTS LD HL,(VAR_GETVTSL) |
105 | savelij | 798 | |
165 | savelij | 799 | ; ���뢠�� ᮤ�ন��� HL �� ᯥ� |
105 | savelij | 800 | GET_RZN LD A,H |
801 | OUT (ZXDATWR),A |
||
802 | CALL WDN |
||
803 | LD A,L |
||
804 | |||
165 | savelij | 805 | ; ����� �� ᯥ� ���� A |
105 | savelij | 806 | GET_BYT OUT (ZXDATWR),A |
807 | |||
165 | savelij | 808 | ; ���� ���� ᯥ� ������ ���� �� ���� |
112 | savelij | 809 | WDN LD B,0 |
165 | savelij | 810 | .L1 DEC B |
112 | savelij | 811 | RET Z |
812 | IN A,(ZXSTAT) |
||
105 | savelij | 813 | RLA |
165 | savelij | 814 | JR C,.L1 |
105 | savelij | 815 | RET |
816 | |||
165 | savelij | 817 | ; ���� ���� ᯥ� ���� ���� � ���� |
105 | savelij | 818 | WDY IN A,(ZXSTAT) |
819 | RLA |
||
820 | JR NC,WDY |
||
821 | RET |
||
822 | |||
165 | savelij | 823 | ; ����� �� MP3-������� 1 ᥪ�� |
181 | savelij | 824 | PLAYMP3 LD A,(VAR_FLAGS) |
165 | savelij | 825 | BIT B_PLAY_STOP,A |
105 | savelij | 826 | RET Z |
181 | savelij | 827 | LD A,(VAR_FILE_TYPE) |
165 | savelij | 828 | CP FILE_MP3 |
105 | savelij | 829 | RET NZ |
165 | savelij | 830 | ; ⮫쪮 MP3 |
105 | savelij | 831 | LD A,Nextsec |
832 | CALL COM_FAT |
||
833 | LD H,A |
||
834 | EX AF,AF' |
||
835 | LD A,H |
||
164 | savelij | 836 | CP 0x80 |
105 | savelij | 837 | JP Z,SD_LOST |
838 | EX AF,AF' |
||
165 | savelij | 839 | RET NZ ; 䠩�� �� ���稫���, ��室�� |
105 | savelij | 840 | LD A,Zer2mp3 |
841 | CALL COM__SD |
||
165 | savelij | 842 | JP NEXT_TRACK ; 䠩� ���稫��, �����蠥� ��ﬨ |
843 | ; � ���室�� �� ���騩 䠩� |
||
105 | savelij | 844 | |
165 | savelij | 845 | ; ����⨥ 䠩�� � ���� ������� |
105 | savelij | 846 | INIPLAY PUSH BC |
112 | savelij | 847 | CALL MOD_OFF |
165 | savelij | 848 | CALL RESET_MP3 ; ��� 稯� � ����ᨬ��� �� ��⠭���� |
181 | savelij | 849 | LD HL,(VAR_GETVTSL) |
165 | savelij | 850 | BIT B_TYPE_RESET,H ; � ��� =HARD, � ����塞 �� |
851 | ; �� ⨯� ��� �⮣� 稯� |
||
852 | JR Z,.L1 |
||
105 | savelij | 853 | LD L,0 |
854 | LD A,H |
||
165 | savelij | 855 | AND M_TYPE_RESET |
105 | savelij | 856 | LD H,A |
165 | savelij | 857 | .L1 SET B_NEW_FILE,H ; ����砥� ��� 5, ��讫 ���� 䠩� |
105 | savelij | 858 | POP BC |
859 | PUSH BC |
||
860 | PUSH HL |
||
861 | LD A,Openfil |
||
165 | savelij | 862 | CALL COM_FAT ; ���뢠�� ���� 䠩� |
164 | savelij | 863 | CP 0x80 |
105 | savelij | 864 | JP Z,SD_LOST |
865 | POP HL |
||
181 | savelij | 866 | LD (VAR_GETVTSL),HL |
867 | LD (VAR_FILE_TYPE),A |
||
165 | savelij | 868 | CP FILE_MP3 |
869 | LD E,FREQ20 ; 20 ��� ��� ��࠭�� MOD |
||
870 | JR NZ,.L2 |
||
871 | LD E,FREQ12 ; 12 ��� ��� ��࠭�� MP3 |
||
872 | .L2 LD A,Freqnc |
||
112 | savelij | 873 | CALL COM__SD |
181 | savelij | 874 | LD HL,VAR_FLAGS |
165 | savelij | 875 | RES B_FILE_LOAD,(HL) |
164 | savelij | 876 | LD HL,0x0400 |
181 | savelij | 877 | LD (VAR_TIMEOUT),HL |
105 | savelij | 878 | POP BC |
879 | LD HL,BUF_LNG |
||
880 | LD A,Getlong |
||
165 | savelij | 881 | CALL COM_FAT ; �⥭�� � ���� �������� ����� 䠩�� |
105 | savelij | 882 | MOD_OFF XOR A |
883 | OUT (VOL1),A |
||
884 | OUT (VOL2),A |
||
885 | OUT (VOL3),A |
||
886 | OUT (VOL4),A |
||
887 | OUT (VOL5),A |
||
888 | OUT (VOL6),A |
||
889 | OUT (VOL7),A |
||
890 | OUT (VOL8),A |
||
891 | OUT (VOL8),A |
||
892 | RET |
||
893 | |||
894 | SD_LOST LD SP,ISTACK |
||
181 | savelij | 895 | LD HL,VAR_FLAGS |
165 | savelij | 896 | SET B_SD_LOST,(HL) |
897 | CALL PAUSE |
||
898 | JP CONTINUE_MOD |
||
105 | savelij | 899 | |
112 | savelij | 900 | CMP_INT PUSH AF |
901 | LD A,R |
||
902 | JP PE,CMP_INT1 |
||
903 | LD A,R |
||
904 | CMP_INT1 LD A,0 |
||
905 | JP PO,CMP_INT2 |
||
906 | LD A,1 |
||
181 | savelij | 907 | CMP_INT2 LD (VAR_INT_MODE),A |
112 | savelij | 908 | POP AF |
909 | RET |
||
910 | |||
165 | savelij | 911 | COM__SD include "sd_on_ngs.a80" ; �ࠩ��� SD ����� |
912 | COM_FAT include "fat_on_ngs.a80" ; �ࠩ��� FAT |
||
105 | savelij | 913 | |
914 | SET7XOR PUSH HL |
||
915 | LD HL,0 |
||
916 | ADD HL,SP |
||
917 | EXX |
||
164 | savelij | 918 | LD A,0x10 |
919 | LD SP,0x7F00 |
||
165 | savelij | 920 | LD BC,0xA97E ; LD A,(HL):XOR C |
921 | LD DE,0x2C77 ; LD (HL),A:INC L |
||
922 | SPEDI1 |
||
923 | REPT 16 |
||
105 | savelij | 924 | PUSH DE |
925 | PUSH BC |
||
165 | savelij | 926 | ENDM |
105 | savelij | 927 | DEC A |
928 | JP NZ,SPEDI1 |
||
929 | LD HL,SPEDI2 |
||
164 | savelij | 930 | LD DE,0x7F00 |
165 | savelij | 931 | LD BC,ESPEDI2 - SPEDI2 |
105 | savelij | 932 | LDIR |
933 | EXX |
||
934 | LD SP,HL |
||
935 | POP HL |
||
936 | LD A,L |
||
937 | EXX |
||
938 | LD L,A |
||
939 | LD H,0 |
||
164 | savelij | 940 | LD BC,0x7B00 |
105 | savelij | 941 | ADD HL,HL |
942 | ADD HL,HL |
||
943 | ADD HL,BC |
||
181 | savelij | 944 | LD (VAR_KUDAXOR),HL |
105 | savelij | 945 | EXX |
181 | savelij | 946 | LD A,(VAR_SIZE_PAGES_MOD) |
105 | savelij | 947 | LD B,A |
164 | savelij | 948 | LD C,0x80 |
105 | savelij | 949 | RET |
950 | |||
951 | SPEDI2 INC H |
||
164 | savelij | 952 | JP NZ,0x7B00 |
105 | savelij | 953 | INC E |
954 | LD A,(DE) |
||
164 | savelij | 955 | LD H,0x80 |
105 | savelij | 956 | OUT (MPAG),A |
957 | DEC B |
||
164 | savelij | 958 | JP NZ,0x7B00 |
181 | savelij | 959 | LD A,(VAR_PAGE_PLAYER) |
105 | savelij | 960 | OUT (MPAG),A |
961 | JP END7XOR |
||
962 | ESPEDI2 |
||
963 | |||
181 | savelij | 964 | SPEDI3 LD A,(VAR_PAGE_PLAYER) |
105 | savelij | 965 | OUT (MPAG),A |
966 | CALL SET7XOR |
||
967 | LD A,(DE) |
||
968 | PUSH HL |
||
969 | OUT (MPAG),A |
||
181 | savelij | 970 | LD HL,(VAR_KUDAXOR) |
105 | savelij | 971 | EX (SP),HL |
972 | RET |
||
973 | |||
974 | END7XOR EXX |
||
975 | LD HL,0 |
||
976 | ADD HL,SP |
||
164 | savelij | 977 | LD SP,0x8000 |
978 | LD DE,0x8080 |
||
979 | LD B,0x40 |
||
165 | savelij | 980 | E7X1 |
981 | REPT 64 |
||
105 | savelij | 982 | PUSH DE |
165 | savelij | 983 | ENDM |
105 | savelij | 984 | DJNZ E7X1 |
985 | LD SP,HL |
||
986 | EXX |
||
987 | JP ESPEED |
||
988 | |||
112 | savelij | 989 | PATCH LD A,(NUMPG) |
165 | savelij | 990 | OR %00111111 |
181 | savelij | 991 | LD (VAR_PAGE_PLAYER),A ; ��࠭�� �ᯮ������� ����� |
112 | savelij | 992 | IN A,(GSCFG0) |
105 | savelij | 993 | RES B_RAMRO,A |
994 | SET B_EXPAG,A |
||
995 | OUT (GSCFG0),A |
||
164 | savelij | 996 | LD A,0x80 |
105 | savelij | 997 | OUT (MPAGEX),A |
998 | LD HL,SPEDI3 |
||
999 | LD DE,ADDA80 |
||
165 | savelij | 1000 | LD BC,END7XOR - SPEDI3 |
105 | savelij | 1001 | LDIR |
1002 | LD HL,FXB01 |
||
164 | savelij | 1003 | LD (HL),0xCD |
105 | savelij | 1004 | INC HL |
1005 | LD (HL),LOW (NXTMOD) |
||
1006 | INC HL |
||
1007 | LD (HL),HIGH (NXTMOD) |
||
164 | savelij | 1008 | LD HL,0x11D6 |
1009 | LD (HL),0xCD |
||
105 | savelij | 1010 | INC HL |
1011 | LD (HL),LOW (NXTMODR) |
||
1012 | INC HL |
||
1013 | LD (HL),HIGH (NXTMODR) |
||
1014 | INC HL |
||
1015 | EX DE,HL |
||
164 | savelij | 1016 | LD HL,0x11E3 |
181 | savelij | 1017 | XOR A |
105 | savelij | 1018 | SBC HL,DE |
1019 | LD B,H |
||
1020 | LD C,L |
||
1021 | LD H,D |
||
1022 | LD L,E |
||
181 | savelij | 1023 | LD (HL),A |
105 | savelij | 1024 | INC DE |
165 | savelij | 1025 | LDIR ; ����⪠ 墮�⮢ � ��� |
105 | savelij | 1026 | LD HL,TEKADR1 |
1027 | LD DE,EMPTY2 |
||
165 | savelij | 1028 | LD BC,P_END - LD_MOD |
1029 | LDIR ; ��७�� �����稪� � ��ࠡ��稪� |
||
1030 | ; ����砭�� �ந��뢠����� 䠩�� |
||
105 | savelij | 1031 | LD HL,P_START |
1032 | LD DE,EMPTY1 |
||
165 | savelij | 1033 | LD BC,P__END - P_00 |
1034 | LDIR ; ��७�� �ࠢ����� MP3 ���� � ��� |
||
112 | savelij | 1035 | LD HL,(NUMPG) |
164 | savelij | 1036 | LD H,0x40 |
112 | savelij | 1037 | DEC L |
105 | savelij | 1038 | LD (HL),1 |
1039 | INC L |
||
165 | savelij | 1040 | LD (HL),0 ; ���㡠��� ������ ��࠭��� ��� |
1041 | ; �� �᭮����� ᯨ᪠ ��࠭�� |
||
112 | savelij | 1042 | LD HL,NUMPG |
1043 | DEC (HL) |
||
105 | savelij | 1044 | LD HL,P_00 |
165 | savelij | 1045 | LD (0x0300 + (0x1F * 2)),HL ; ���� ������� 1F |
105 | savelij | 1046 | LD HL,COMMFF |
165 | savelij | 1047 | LD (0x0300 + (0x2F * 2)),HL ; ���� ������� FF |
105 | savelij | 1048 | IN A,(GSCFG0) |
181 | savelij | 1049 | SET B_RAMRO,A ; ����� ����� � ��訢�� |
105 | savelij | 1050 | RES B_EXPAG,A |
1051 | OUT (GSCFG0),A |
||
181 | savelij | 1052 | LD A,(VAR_PAGE_PLAYER) |
105 | savelij | 1053 | OUT (MPAG),A |
1054 | |||
165 | savelij | 1055 | ; ᮧ����� ᯨ᪠ ����� ��࠭�� ��� �����稪� 䠩�� � ������ |
164 | savelij | 1056 | LISTPAG LD HL,0x4000 |
105 | savelij | 1057 | LD DE,BUF_PAG |
165 | savelij | 1058 | .L1 LD A,(HL) |
105 | savelij | 1059 | ADD A,A |
1060 | RRCA |
||
1061 | LD (DE),A |
||
1062 | RLCA |
||
1063 | INC DE |
||
1064 | INC A |
||
1065 | RRCA |
||
1066 | LD (DE),A |
||
1067 | INC DE |
||
1068 | INC HL |
||
1069 | LD A,(HL) |
||
1070 | DEC A |
||
165 | savelij | 1071 | JR NZ,.L1 |
105 | savelij | 1072 | RET |
1073 | |||
1074 | TEKADR1 |
||
1075 | PHASE EMPTY2 |
||
1076 | |||
165 | savelij | 1077 | ; ��㧨��� 䠩�� � ������ NEOGS |
105 | savelij | 1078 | LD_MOD IN A,(GSCFG0) |
165 | savelij | 1079 | AND %11001111 |
105 | savelij | 1080 | OUT (GSCFG0),A |
181 | savelij | 1081 | LD HL,VAR_FLAGS |
165 | savelij | 1082 | SET B_FILE_LOAD,(HL) |
105 | savelij | 1083 | CALL MOD_OFF |
1084 | LD A,Loadfil |
||
1085 | CALL COM_FAT |
||
164 | savelij | 1086 | CP 0x80 |
105 | savelij | 1087 | JP Z,SD_LOST |
181 | savelij | 1088 | LD (VAR_SIZE_PAGES_MOD),A |
105 | savelij | 1089 | LD A,(CPAGE) |
1090 | OUT (MPAG),A |
||
1091 | LD A,1 |
||
1092 | LD (CNTMOD),A |
||
1093 | LD (CURMOD),A |
||
1094 | CALL LDMOD |
||
1095 | LD A,(MTSNGSZ) |
||
181 | savelij | 1096 | LD (VAR_SIZE_PATTERN_MOD),A |
164 | savelij | 1097 | LD BC,0x0100 |
105 | savelij | 1098 | CALL PLAYMOD |
1099 | IN A,(GSCFG0) |
||
165 | savelij | 1100 | OR %00010000 |
105 | savelij | 1101 | OUT (GSCFG0),A |
1102 | RET |
||
1103 | |||
1104 | ESPEED XOR A |
||
1105 | LD (CPAGE),A |
||
1106 | OUT (MPAG),A |
||
1107 | RET |
||
1108 | |||
1109 | NXTMOD LD HL,MTSNGPS |
||
1110 | INC (HL) |
||
1111 | CP (HL) |
||
1112 | JP C,NXTMOD1 |
||
1113 | LD (MTSNGPS),A |
||
1114 | RET |
||
1115 | |||
181 | savelij | 1116 | NXTMODR LD A,(VAR_PAGE_PLAYER) |
105 | savelij | 1117 | OUT (MPAG),A |
165 | savelij | 1118 | CALL NEXT_TRACK |
181 | savelij | 1119 | LD A,(VAR_FILE_TYPE) |
165 | savelij | 1120 | CP FILE_MP3 |
105 | savelij | 1121 | JP NZ,LD_MOD |
1122 | POP HL |
||
1123 | JP OPROS |
||
1124 | |||
1125 | COMMFF IN A,(ZXDATRD) |
||
165 | savelij | 1126 | OUT (CLRCBIT),A |
181 | savelij | 1127 | ADD A,LOW (VAR_FLAGS) |
105 | savelij | 1128 | LD IYL,A |
181 | savelij | 1129 | LD A,HIGH (VAR_FLAGS) |
105 | savelij | 1130 | ADC A,0 |
1131 | LD IYH,A |
||
1132 | LD A,(IY+0) |
||
1133 | OUT (ZXDATWR),A |
||
1134 | JP COMINT_ |
||
1135 | P_END |
||
1136 | DEPHASE |
||
1137 | P_START |
||
1138 | PHASE EMPTY1 |
||
1139 | |||
165 | savelij | 1140 | ; �᭮���� 横� ��饭�� � ᯥ��� |
1141 | P_00 JP OPROS.L3 |
||
105 | savelij | 1142 | |
181 | savelij | 1143 | NXTMOD1 LD A,(VAR_PAGE_PLAYER) |
105 | savelij | 1144 | OUT (MPAG),A |
165 | savelij | 1145 | CALL NEXT_TRACK |
1146 | ; �த������ ����� MOD |
||
181 | savelij | 1147 | CONTINUE_MOD LD A,(VAR_FILE_TYPE) |
165 | savelij | 1148 | CP FILE_MP3 |
105 | savelij | 1149 | JR Z,OPROS |
181 | savelij | 1150 | LD A,(VAR_FLAGS) |
165 | savelij | 1151 | BIT B_PLAY_STOP,A |
105 | savelij | 1152 | JR Z,CONROM |
165 | savelij | 1153 | BIT B_FILE_LOAD,A |
105 | savelij | 1154 | CALL Z,LD_MOD |
1155 | CONROM LD A,(CPAGE) |
||
1156 | OUT (MPAG),A |
||
1157 | JP COMINT |
||
1158 | |||
1159 | OPROS IN A,(ZXSTAT) |
||
1160 | RRA |
||
165 | savelij | 1161 | JR C,.L1 |
105 | savelij | 1162 | CALL PLAYMP3 |
1163 | JR OPROS |
||
1164 | |||
165 | savelij | 1165 | .L1 IN A,(ZXCMD) |
164 | savelij | 1166 | CP 0x1F |
105 | savelij | 1167 | JR NZ,CONROM |
165 | savelij | 1168 | .L3 IN A,(ZXDATRD) |
105 | savelij | 1169 | OUT (CLRCBIT),A |
1170 | AND A |
||
165 | savelij | 1171 | JR Z,.L2 |
112 | savelij | 1172 | LD H,A |
181 | savelij | 1173 | LD A,(VAR_STATUS) |
164 | savelij | 1174 | CP 0x78 |
105 | savelij | 1175 | JR NC,OPROS |
112 | savelij | 1176 | LD A,H |
165 | savelij | 1177 | .L2 CP LOW (END_TAB-TABFUNC) / 2 + 1 |
105 | savelij | 1178 | JR NC,OPROS |
165 | savelij | 1179 | LD HL,CONTINUE_MOD |
105 | savelij | 1180 | PUSH HL |
1181 | ADD A,A |
||
1182 | ADD A,LOW (TABFUNC) |
||
1183 | LD L,A |
||
1184 | LD A,HIGH (TABFUNC) |
||
1185 | ADC A,0 |
||
1186 | LD H,A |
||
181 | savelij | 1187 | LD A,(VAR_PAGE_PLAYER) |
105 | savelij | 1188 | OUT (MPAG),A |
1189 | LD A,(HL) |
||
1190 | INC HL |
||
1191 | LD H,(HL) |
||
1192 | LD L,A |
||
1193 | JP (HL) |
||
1194 | P__END |
||
1195 | DEPHASE |
||
1196 | |||
164 | savelij | 1197 | DUPL 0x100-LOW ($),0 |
105 | savelij | 1198 | |
165 | savelij | 1199 | INIT_VAR $ |
1200 | SETVAR BUF_LNG, 0x100 ; ���� ��� ��४��. �������� ����� |
||
1201 | SETVAR BUFTDIR, 0x100 ; ���� ����� ⥪�饩 DIR |
||
1202 | SETVAR BUF_PAG, 0x100 ; ⠡��� ���७��� ��࠭�� |
||
1203 | SETVAR B512BAS, 0 |