Rev 485 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 485 | Rev 1588 | ||
---|---|---|---|
1 | key_codes db 27,182,109,115,114,122,98,118,108,120,99,13,8,32,0, 0, 0,0 |
1 | key_codes db 27,182,109,115,114,122,98,118,108,120,99,13,8,32,0, 0, 0,0 |
2 | db 180,181,93,91 |
2 | db 180,181,93,91 |
3 | ; bottom actions |
3 | ; bottom actions |
4 | db 0, 0, 0, 0, 0,185,0, 0, 0, 0,0,0,92 |
4 | db 0, 0, 0, 0, 0,185,0, 0, 0, 0,0,0,92 |
5 | btn_codes db 1, 0, 0, 9, 10, 3, 7, 6, 8, 4, 5, 0,0, 0,101,100,11,2 |
5 | btn_codes db 1, 0, 0, 9, 10, 3, 7, 6, 8, 4, 5, 0,0, 0,101,100,11,2 |
6 | db 0, 0, 0, 0 |
6 | db 0, 0, 0, 0 |
7 | ; bottom actions |
7 | ; bottom actions |
8 | db 35,49,48,37,31,32,41,42,40,36,103,104,0 |
8 | db 35,49,48,37,31,32,41,42,40,36,103,104,0 |
9 | jmps dw _close, kDel,kMute, bList.shuf, bList.repe, bList.prev, bList.next |
9 | jmps dw _close, kDel,kMute, bList.shuf, bList.repe, bList.prev, bList.next |
10 | dw bList.stop, kLoad, Xpress, Rewind.space, auto_load,Rewind, Rewind.space |
10 | dw bList.stop, kLoad, Xpress, Rewind.space, auto_load,Rewind, Rewind.space |
11 | dw bReverse, bShade, bList, bBar, bOctU, bOctD, bSelTrack, bSelChannel |
11 | dw bReverse, bShade, bList, bBar, bOctU, bOctD, bSelTrack, bSelChannel |
12 | ; bottom actions |
12 | ; bottom actions |
13 | dw kDel,bLsave,bLload,bRemAll,bAdd,bAddDir,bSelZero,bInvSel,bSelAll,bRemCrop |
13 | dw kDel,bLsave,bLload,bRemAll,bAdd,bAddDir,bSelZero,bInvSel,bSelAll,bRemCrop |
14 | dw bMinimize,bAbout,bResetTrk |
14 | dw bMinimize,bAbout,bResetTrk |
15 | - | ||
- | 15 | ;------------------------------------------------------------------------ |
|
16 | jmps_end: |
16 | jmps_end: |
17 | 17 | ||
18 | key: |
18 | key: |
19 | mov eax,2 |
19 | mov eax,2 |
20 | mcall |
20 | mcall |
21 | mov edi,key_codes |
21 | mov edi,key_codes |
22 | cmp ah,48 |
22 | cmp ah,48 |
23 | jb .jump |
23 | jb .jump |
24 | cmp ah,57 |
24 | cmp ah,57 |
25 | ja .jump |
25 | ja .jump |
26 | sub ah,48 |
26 | sub ah,48 |
27 | mov byte[channel],ah |
27 | mov byte[channel],ah |
28 | jmp midi_kill |
28 | jmp midi_kill |
29 | .jump: |
29 | .jump: |
30 | mov ecx,(jmps_end-jmps)/2 |
30 | mov ecx,(jmps_end-jmps)/2 |
31 | mov ebx,edi |
31 | mov ebx,edi |
32 | shr eax,8 |
32 | shr eax,8 |
33 | repne scasb |
33 | repne scasb |
34 | jne play_.noplsel |
34 | jne play_.noplsel |
35 | sub edi,ebx |
35 | sub edi,ebx |
36 | jmp word[jmps+edi*2-2] |
36 | jmp word[jmps+edi*2-2] |
37 | kDel: |
37 | kDel: |
38 | call PL_del |
38 | call PL_del |
39 | call PL_show |
39 | call PL_show |
40 | jmp still |
40 | jmp still |
41 | kMute: |
41 | kMute: |
42 | xor [flag],FL_MUTE |
42 | xor [flag],FL_MUTE |
43 | jmp still |
43 | jmp still |
44 | kLoad: |
44 | kLoad: |
45 | ; dps 'Load' |
45 | ; dps 'Load' |
46 | cmp [list_count],LISTITEMS |
46 | cmp [list_count],LISTITEMS |
47 | jbe noparam |
47 | jbe noparam |
48 | jmp still |
48 | jmp still |
49 | Xpress: |
49 | Xpress: |
50 | mov eax,IPC_PLAY |
50 | mov eax,IPC_PLAY |
51 | call ipc_send |
51 | call ipc_send |
52 | jmp still;Rewind.space |
52 | jmp still;Rewind.space |
53 | auto_load: |
53 | auto_load: |
54 | call PL_get1stsel |
54 | call PL_get1stsel |
55 | mov eax,ebx |
55 | mov eax,ebx |
56 | play_: |
56 | play_: |
57 | mov [play_num],eax |
57 | mov [play_num],eax |
58 | call PL_getbyindex |
58 | call PL_getbyindex |
59 | mov edi,filename;fnbuf |
59 | mov edi,filename;fnbuf |
60 | rep movsb |
60 | rep movsb |
61 | xor eax,eax |
61 | xor eax,eax |
62 | mov byte[edi],al |
62 | mov byte[edi],al |
63 | and [flag],not FL_ADD |
63 | and [flag],not FL_ADD |
64 | or [flag],FL_PLAY |
64 | or [flag],FL_PLAY |
65 | jmp open_file |
65 | jmp open_file |
66 | .noplsel: |
66 | .noplsel: |
67 | call PL_get1stsel |
67 | call PL_get1stsel |
68 | test ebx,ebx |
68 | test ebx,ebx |
69 | jz .noupward |
69 | jz .noupward |
70 | cmp al,178 |
70 | cmp al,178 |
71 | jne .noupa |
71 | jne .noupa |
72 | .seldec: |
72 | .seldec: |
73 | dec ebx;[listsel] |
73 | dec ebx;[listsel] |
74 | .listdraw: |
74 | .listdraw: |
75 | call PL_clearsel |
75 | call PL_clearsel |
76 | mov eax,ebx |
76 | mov eax,ebx |
77 | call PL_getbyindex |
77 | call PL_getbyindex |
78 | or word[esi-2],FL_MULSEL |
78 | or word[esi-2],FL_MULSEL |
79 | call PL_show |
79 | call PL_show |
80 | jmp still |
80 | jmp still |
81 | .noupa: |
81 | .noupa: |
82 | cmp al,184 |
82 | cmp al,184 |
83 | jne .noupward |
83 | jne .noupward |
84 | dec [listsel] |
84 | dec [listsel] |
85 | .swap: |
85 | .swap: |
86 | dec ebx |
86 | dec ebx |
87 | call PL_swap |
87 | call PL_swap |
88 | jmp .listdraw |
88 | jmp .listdraw |
89 | .noupward: |
89 | .noupward: |
90 | inc ebx |
90 | inc ebx |
91 | cmp bl,[list_count] |
91 | cmp bl,[list_count] |
92 | jae still |
92 | jae still |
93 | cmp al,177 |
93 | cmp al,177 |
94 | je .listdraw |
94 | je .listdraw |
95 | .nodowna: |
95 | .nodowna: |
96 | cmp al,183 |
96 | cmp al,183 |
97 | jne still |
97 | jne still |
98 | inc [listsel] |
98 | inc [listsel] |
99 | jmp .swap |
99 | jmp .swap |
100 | Rewind: |
100 | Rewind: |
101 | push [midi_limit] |
101 | push [midi_limit] |
102 | pop [cur_ptr] |
102 | pop [cur_ptr] |
103 | and [cur_tick],0 |
103 | and [cur_tick],0 |
104 | jmp red |
104 | jmp red |
105 | .space: |
105 | .space: |
106 | cmp [tick_count],0 |
106 | cmp [tick_count],0 |
107 | jz still |
107 | jz still |
108 | mov eax,IPC_TRIG |
108 | mov eax,IPC_TRIG |
109 | call ipc_send |
109 | call ipc_send |
110 | jmp red |
110 | jmp red |
111 | - | ||
- | 111 | ;------------------------------------------------------------------------ |
|
112 | button: |
112 | button: |
113 | mov eax,17 |
113 | mov eax,17 |
114 | mcall |
114 | mcall |
115 | cmp ah,20 |
115 | cmp ah,20 |
116 | jb .nobott |
116 | jb .nobott |
117 | cmp ah,25 |
117 | cmp ah,25 |
118 | ja .nobott |
118 | ja .nobott |
119 | sub ah,20 |
119 | sub ah,20 |
120 | mov [popup],ah |
120 | mov [popup],ah |
121 | .sh: |
121 | .sh: |
122 | or [flag],FL_BOTTRED |
122 | or [flag],FL_BOTTRED |
123 | call PL_show |
123 | call PL_show |
124 | jmp still |
124 | jmp still |
125 | .nobott: |
125 | .nobott: |
126 | cmp ah,31 |
126 | cmp ah,31 |
127 | jb .nopop |
127 | jb .nopop |
128 | cmp ah,50 |
128 | cmp ah,50 |
129 | ja .nopop |
129 | ja .nopop |
130 | mov [popup],-1 |
130 | mov [popup],-1 |
131 | or [flag],FL_BOTTRED |
131 | or [flag],FL_BOTTRED |
132 | call PL_show |
132 | call PL_show |
133 | 133 | ||
134 | SH_POPUP equ 10 |
134 | SH_POPUP equ 10 |
135 | if SH_POPUP eq 1 |
135 | if SH_POPUP eq 1 |
136 | mov ebx,eax |
136 | mov ebx,eax |
137 | shr ebx,8 |
137 | shr ebx,8 |
138 | dps 'Popup#=' |
138 | dps 'Popup#=' |
139 | dpd ebx |
139 | dpd ebx |
140 | jmp .sh |
140 | jmp .sh |
141 | end if |
141 | end if |
142 | .nopop: |
142 | .nopop: |
143 | mov edi,btn_codes |
143 | mov edi,btn_codes |
144 | jmp key.jump |
144 | jmp key.jump |
145 | bReverse: |
145 | bReverse: |
146 | xor [flag],FL_REVERSE |
146 | xor [flag],FL_REVERSE |
147 | call draw_bar |
147 | call draw_bar |
148 | jmp still |
148 | jmp still |
149 | _close: |
149 | _close: |
150 | call kill |
150 | call kill |
151 | or eax,-1 |
151 | or eax,-1 |
152 | mcall |
152 | mcall |
153 | 153 | ||
154 | bShade: |
154 | bShade: |
155 | call Shade |
155 | call Shade |
156 | jmp still |
156 | jmp still |
157 | Shade: |
157 | Shade: |
158 | xor [flag],FL_HIDDEN |
158 | xor [flag],FL_HIDDEN |
159 | test [flag],FL_HIDDEN |
159 | test [flag],FL_HIDDEN |
160 | jz .open |
160 | jz .open |
161 | mov esi,14 |
161 | mov esi,14 |
162 | mov [coo],main_coo2 |
162 | mov [coo],main_coo2 |
163 | jmp .op |
163 | jmp .op |
164 | .open: |
164 | .open: |
165 | mov esi,WND_HEIGHT |
165 | mov esi,WND_HEIGHT |
166 | mov [coo],main_coo |
166 | mov [coo],main_coo |
167 | .op: |
167 | .op: |
168 | mov ebx,-1 |
168 | mov ebx,-1 |
169 | mov ecx,ebx |
169 | mov ecx,ebx |
170 | mov edx,ebx |
170 | mov edx,ebx |
171 | mov eax,67 |
171 | mov eax,67 |
172 | mcall |
172 | mcall |
173 | ret |
173 | ret |
- | 174 | ;------------------------------------------------------------------------ |
|
174 | bMinimize: |
175 | bMinimize: |
175 | ; mcall 18,10 |
176 | ; mcall 18,10 |
176 | jmp still |
177 | jmp still |
- | 178 | ;------------------------------------------------------------------------ |
|
177 | bList: |
179 | bList: |
178 | mov [popup],-1 |
180 | mov [popup],-1 |
179 | mov edx,[listsel] |
181 | mov edx,[listsel] |
180 | call PL_getitemclick |
182 | call PL_getitemclick |
181 | mov [listsel],eax |
183 | mov [listsel],eax |
182 | mcall 66,3 |
184 | mcall 66,3 |
183 | mov ebx,eax |
185 | mov ebx,eax |
184 | ; dph ebx |
186 | ; dph ebx |
185 | test ebx,1100b |
187 | test ebx,1100b |
186 | jnz .mul |
188 | jnz .mul |
187 | call PL_clearsel |
189 | call PL_clearsel |
188 | test ebx,11b |
190 | test ebx,11b |
189 | jz .skipor |
191 | jz .skipor |
190 | mov ecx,[listsel] |
192 | mov ecx,[listsel] |
191 | mov [listsel],edx |
193 | mov [listsel],edx |
192 | cmp ecx,edx |
194 | cmp ecx,edx |
193 | je .skipor |
195 | je .skipor |
194 | ja .above |
196 | ja .above |
195 | xchg ecx,edx |
197 | xchg ecx,edx |
196 | .above: |
198 | .above: |
197 | sub ecx,edx |
199 | sub ecx,edx |
198 | inc ecx |
200 | inc ecx |
199 | mov eax,edx |
201 | mov eax,edx |
200 | push ecx |
202 | push ecx |
201 | call PL_getbyindex |
203 | call PL_getbyindex |
202 | sub esi,2 |
204 | sub esi,2 |
203 | pop ecx |
205 | pop ecx |
204 | call PL_shiftsel |
206 | call PL_shiftsel |
205 | jmp .plsh |
207 | jmp .plsh |
206 | .mul: |
208 | .mul: |
207 | bts [flag],15 |
209 | bts [flag],15 |
208 | jc .skipor |
210 | jc .skipor |
209 | mov eax,edx |
211 | mov eax,edx |
210 | call PL_getbyindex |
212 | call PL_getbyindex |
211 | or word[esi-2],FL_MULSEL |
213 | or word[esi-2],FL_MULSEL |
212 | .skipor: |
214 | .skipor: |
213 | mov eax,[listsel] |
215 | mov eax,[listsel] |
214 | call PL_getbyindex |
216 | call PL_getbyindex |
215 | xor word[esi-2],FL_MULSEL |
217 | xor word[esi-2],FL_MULSEL |
216 | .plsh: |
218 | .plsh: |
217 | call PL_show |
219 | call PL_show |
218 | mcall 40,111b |
220 | mcall 40,111b |
219 | mcall 23,30 |
221 | mcall 23,30 |
220 | push eax |
222 | push eax |
221 | mcall 40,1000111b |
223 | mcall 40,1000111b |
222 | pop eax |
224 | pop eax |
223 | cmp eax,3 |
225 | cmp eax,3 |
224 | jne still |
226 | jne still |
225 | mcall 17 |
227 | mcall 17 |
226 | cmp ah,11 |
228 | cmp ah,11 |
227 | jne still |
229 | jne still |
228 | call PL_getitemclick |
230 | call PL_getitemclick |
229 | cmp eax,[listsel] |
231 | cmp eax,[listsel] |
230 | je auto_load |
232 | je auto_load |
231 | mov [listsel],eax |
233 | mov [listsel],eax |
232 | call PL_show |
234 | call PL_show |
233 | jmp still |
235 | jmp still |
234 | .repe: |
236 | .repe: |
235 | xor [flag],FL_REPEAT |
237 | xor [flag],FL_REPEAT |
236 | jmp red |
238 | jmp red |
237 | .stop: |
239 | .stop: |
238 | mov eax,IPC_PAUS |
240 | mov eax,IPC_PAUS |
239 | call ipc_send |
241 | call ipc_send |
240 | jmp Rewind |
242 | jmp Rewind |
241 | .shuf: |
243 | .shuf: |
242 | xor [flag],FL_SHUFFLE |
244 | xor [flag],FL_SHUFFLE |
243 | jmp red |
245 | jmp red |
244 | .prev: |
246 | .prev: |
245 | mov eax,[play_num] |
247 | mov eax,[play_num] |
246 | test eax,eax |
248 | test eax,eax |
247 | jz still |
249 | jz still |
248 | dec eax |
250 | dec eax |
249 | jmp play_ |
251 | jmp play_ |
250 | .next: |
252 | .next: |
251 | mov eax,[play_num] |
253 | mov eax,[play_num] |
252 | inc eax |
254 | inc eax |
253 | cmp al,[list_count] |
255 | cmp al,[list_count] |
254 | jae still |
256 | jae still |
255 | jmp play_ |
257 | jmp play_ |
- | 258 | ;------------------------------------------------------------------------ |
|
256 | bBar: |
259 | bBar: |
257 | cmp [tick_count],0 |
260 | cmp [tick_count],0 |
258 | jz still |
261 | jz still |
259 | mov eax,37 |
262 | mov eax,37 |
260 | mov ebx,1 |
263 | mov ebx,1 |
261 | mcall |
264 | mcall |
262 | mov ebp,[coo] |
265 | mov ebp,[coo] |
263 | sub eax,[ebp-16] |
266 | sub eax,[ebp-16] |
264 | shr eax,16 |
267 | shr eax,16 |
265 | mov ebx,[tick_count] |
268 | mov ebx,[tick_count] |
266 | mul ebx |
269 | mul ebx |
267 | mov ebx,[ebp-20] |
270 | mov ebx,[ebp-20] |
268 | div ebx |
271 | div ebx |
269 | mov ebx,eax ; ebx - selected tick |
272 | mov ebx,eax ; ebx - selected tick |
270 | xor ecx,ecx |
273 | xor ecx,ecx |
271 | mov esi,[midi_limit] |
274 | mov esi,[midi_limit] |
272 | .further: |
275 | .further: |
273 | lodsw |
276 | lodsw |
274 | and eax,0x7f |
277 | and eax,0x7f |
275 | add ecx,eax |
278 | add ecx,eax |
276 | cmp ecx,ebx |
279 | cmp ecx,ebx |
277 | jb .further |
280 | jb .further |
278 | sub ecx,eax |
281 | sub ecx,eax |
279 | mov [cur_tick],ecx |
282 | mov [cur_tick],ecx |
280 | sub esi,2 |
283 | sub esi,2 |
281 | mov [cur_ptr],esi |
284 | mov [cur_ptr],esi |
282 | drw: |
285 | drw: |
283 | jmp red |
286 | jmp red |
284 | - | ||
- | 287 | ;------------------------------------------------------------------------ |
|
285 | OCT_CH equ 3 |
288 | OCT_CH equ 3 |
- | 289 | ;------------------------------------------------------------------------ |
|
286 | bOctU: |
290 | bOctU: |
287 | add [octave],OCT_CH |
291 | add [octave],OCT_CH |
288 | jmp midi_kill |
292 | jmp midi_kill |
289 | bOctD: |
293 | bOctD: |
290 | sub [octave],OCT_CH |
294 | sub [octave],OCT_CH |
291 | jmp midi_kill |
295 | jmp midi_kill |
292 | bSelChannel: |
296 | bSelChannel: |
293 | call get_num |
297 | call get_num |
294 | cmp eax,-1 |
298 | cmp eax,-1 |
295 | je still |
299 | je still |
296 | dps <13,10,'Channel#'> |
300 | dps <13,10,'Channel#'> |
297 | dpd eax |
301 | dpd eax |
298 | mov [channel],eax |
302 | mov [channel],eax |
299 | jmp midi_kill |
303 | jmp midi_kill |
300 | bSelTrack: |
304 | bSelTrack: |
301 | call get_num |
305 | call get_num |
302 | cmp eax,-1 |
306 | cmp eax,-1 |
303 | je still |
307 | je still |
304 | dps <13,10,'Track#'> |
308 | dps <13,10,'Track#'> |
305 | dpd eax |
309 | dpd eax |
306 | mov [sel_track],al |
310 | mov [sel_track],al |
307 | jmp midi_kill |
311 | jmp midi_kill |
308 | bResetTrk: |
312 | bResetTrk: |
309 | xor eax,eax |
313 | xor eax,eax |
310 | mov [sel_track],al |
314 | mov [sel_track],al |
311 | mov [channel],eax |
315 | mov [channel],eax |
312 | dps <13,10,'Both track & channel are 0',13,10> |
316 | dps <13,10,'Both track & channel are 0',13,10> |
313 | jmp midi_kill |
317 | jmp midi_kill |
314 | bLsave: |
318 | bLsave: |
315 | call PL_save |
319 | call PL_save |
316 | bLload: |
320 | bLload: |
317 | call PL_load |
321 | call PL_load |
318 | jmp red |
322 | jmp red |
319 | bRemAll: |
323 | bRemAll: |
320 | and [list_count],0 |
324 | and [list_count],0 |
321 | mov [play_limit],playlist-2 |
325 | mov [play_limit],playlist-2 |
322 | jmp red |
326 | jmp red |
- | 327 | ;------------------------------------------------------------------------ |
|
323 | bAdd: |
328 | bAdd: |
324 | movzx eax,[list_count] |
329 | movzx eax,[list_count] |
325 | dpd eax |
330 | dpd eax |
- | 331 | mov [OpenDialog_data.type],0 ; Open |
|
- | 332 | or [flag],FL_LOCK |
|
- | 333 | push dword OpenDialog_data |
|
326 | call fopen |
334 | call [OpenDialog_Start] |
- | 335 | and [flag],not FL_LOCK |
|
- | 336 | cmp [OpenDialog_data.status],1 |
|
- | 337 | jne still |
|
- | 338 | ||
327 | mov edi,filename |
339 | mov edi,filename |
328 | cmp byte[edi],0 |
340 | cmp byte[edi],0 |
329 | jz still |
341 | jz still |
330 | call str_len |
342 | call str_len |
331 | xchg eax,ecx |
343 | xchg eax,ecx |
332 | mov esi,edi |
344 | mov esi,edi |
333 | jmp add_song |
345 | jmp add_song |
- | 346 | ;------------------------------------------------------------------------ |
|
334 | bAddDir: |
347 | bAddDir: |
335 | call fopen |
348 | mov [OpenDialog_data.type],2 ; Dir |
336 | mov edi,filename |
349 | or [flag],FL_LOCK |
337 | cmp byte[edi],0 |
350 | push dword OpenDialog_data |
338 | jz still |
351 | call [OpenDialog_Start] |
339 | call find_slash |
352 | and [flag],not FL_LOCK |
340 | lea edx,[edi-filename+fnbuf] ; edx -> '/' |
353 | cmp [OpenDialog_data.status],1 |
341 | and byte[edi],0 |
354 | jne still |
- | 355 | ||
342 | mov esi,filename |
356 | mov esi,filename |
343 | mov edi,fnbuf |
357 | mov edi,fnbuf |
- | 358 | xor eax,eax |
|
- | 359 | @@: |
|
- | 360 | cld |
|
- | 361 | lodsb |
|
- | 362 | stosb |
|
- | 363 | test eax,eax |
|
- | 364 | jnz @r |
|
344 | mov ecx,1024/4 |
365 | mov [edi-1],byte '/' |
345 | rep movsd |
366 | mov edx,edi |
- | 367 | ||
346 | and dword [dir_info+4], 0 |
368 | and dword [dir_info+4], 0 |
347 | .nxt2: |
369 | .nxt2: |
348 | mcall 70, dir_info |
370 | mcall 70, dir_info |
349 | cmp ebx, 1 |
371 | test eax,eax |
350 | jnz red ;still |
372 | jnz red |
- | 373 | ||
351 | test byte [dir_table+32], 11000b ; exclude directories & vol label |
374 | test byte [dir_table+32], 11000b ; exclude directories & vol label |
352 | jnz .no |
375 | jnz .no |
353 | mov edi, dir_table+32+40 |
376 | mov edi, dir_table+32+40 |
354 | mov esi, edi |
377 | mov esi, edi |
355 | xor eax, eax |
378 | xor eax, eax |
356 | or ecx, -1 |
379 | or ecx, -1 |
357 | repnz scasb |
380 | repnz scasb |
358 | mov eax, [edi-5] |
381 | mov eax, [edi-5] |
359 | or eax, 0x20202000 |
382 | or eax, 0x20202000 |
360 | cmp eax, '.mid' |
383 | cmp eax, '.mid' |
361 | jz .ok |
384 | jz .ok |
362 | cmp eax, '.kar' |
385 | cmp eax, '.kar' |
363 | jnz .no |
386 | jnz .no |
364 | .ok: |
387 | .ok: |
365 | lea ecx, [edi-dir_table-32-40-1] |
388 | lea ecx, [edi-dir_table-32-40-1] |
366 | mov edi, edx |
389 | mov edi, edx |
367 | rep movsb |
390 | rep movsb |
368 | mov ecx, edi |
391 | mov ecx, edi |
369 | mov esi, fnbuf |
392 | mov esi, fnbuf |
370 | sub ecx, esi |
393 | sub ecx, esi |
371 | call PL_add |
394 | call PL_add |
372 | .no: |
395 | .no: |
- | 396 | mov eax,[dir_info+4] |
|
- | 397 | cmp eax,[dir_table+8] |
|
- | 398 | je red |
|
373 | inc dword [dir_info+4] |
399 | inc dword [dir_info+4] |
374 | jmp .nxt2 |
400 | jmp .nxt2 |
- | 401 | ;------------------------------------------------------------------------ |
|
375 | bSelZero: |
402 | bSelZero: |
376 | call PL_clearsel |
403 | call PL_clearsel |
377 | jmp red |
404 | jmp red |
378 | bInvSel: |
405 | bInvSel: |
379 | call PL_invsel |
406 | call PL_invsel |
380 | jmp red |
407 | jmp red |
381 | bSelAll: |
408 | bSelAll: |
382 | call PL_clearsel |
409 | call PL_clearsel |
383 | call PL_invsel |
410 | call PL_invsel |
384 | jmp red |
411 | jmp red |
385 | bRemCrop: |
412 | bRemCrop: |
386 | call PL_invsel |
413 | call PL_invsel |
387 | call PL_del |
414 | call PL_del |
388 | jmp bSelAll |
415 | jmp bSelAll |
389 | bAbout: |
416 | bAbout: |
390 | mov edx,about1 |
417 | mov edx,about1 |
391 | call debug_outstr |
418 | call debug_outstr |
392 | jmp still |
419 | jmp still |
393 | - | ||
- | 420 | ;------------------------------------------------------------------------ |
|
394 | get_num: ; out: eax-number entered |
421 | get_num: ; out: eax-number entered |
395 | or [flag],FL_LOCK |
422 | or [flag],FL_LOCK |
396 | mcall 10 |
423 | mcall 10 |
397 | dpd eax |
424 | dpd eax |
398 | cmp eax,1 |
425 | cmp eax,1 |
399 | jne .nored |
426 | jne .nored |
400 | call draw_window |
427 | call draw_window |
401 | jmp get_num |
428 | jmp get_num |
402 | .nored: |
429 | .nored: |
403 | cmp eax,2 |
430 | cmp eax,2 |
404 | jne .nokey |
431 | jne .nokey |
405 | mcall 2 |
432 | mcall 2 |
406 | movzx eax,ah |
433 | movzx eax,ah |
407 | sub eax,'0' |
434 | sub eax,'0' |
408 | jl .none |
435 | jl .none |
409 | cmp eax,9 |
436 | cmp eax,9 |
410 | jbe .ok |
437 | jbe .ok |
411 | .none: |
438 | .none: |
412 | mov eax,-1 |
439 | mov eax,-1 |
413 | .ok: |
440 | .ok: |
414 | and [flag],not FL_LOCK |
441 | and [flag],not FL_LOCK |
415 | ret |
442 | ret |
416 | .nokey: |
443 | .nokey: |
417 | cmp eax,3 |
444 | cmp eax,3 |
418 | jne get_num |
445 | jne get_num |
419 | mcall 17 |
446 | mcall 17 |
420 | jmp get_num |
447 | jmp get_num |
421 | - | ||
- | 448 | ;------------------------------------------------------------------------ |
|
422 | find_slash: |
449 | find_slash: |
423 | ; in: edi-filename, out: edi-slash ptr-1 |
450 | ; in: edi-filename, out: edi-slash ptr-1 |
424 | push eax ecx |
451 | push eax ecx |
425 | call str_len |
452 | call str_len |
426 | mov ecx,eax |
453 | mov ecx,eax |
427 | std |
454 | std |
428 | add edi,eax |
455 | add edi,eax |
429 | mov al,'/' |
456 | mov al,'/' |
430 | repne scasb |
457 | repne scasb |
431 | cld |
458 | cld |
432 | add edi,2 |
459 | add edi,2 |
433 | pop ecx eax |
460 | pop ecx eax |
434 | ret13,10,'Both>13,10,'Track#'>13,10,'Channel#'> |
461 | ret |
435 | - | ||
- | 462 | ;------------------------------------------------------------------------13,10,'Both>13,10,'Track#'>13,10,'Channel#'> |
|
436 | 463 |