Rev 134 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 134 | Rev 141 | ||
---|---|---|---|
1 | ; MIDI PLAYER FOR MENUET v1.0 |
1 | ; MIDI PLAYER FOR MENUET v1.0 |
2 | ; Written in pure assembler by Ivushkin Andrey aka Willow |
2 | ; Written in pure assembler by Ivushkin Andrey aka Willow |
3 | ; |
3 | ; |
4 | ; |
4 | ; |
5 | ; Created: December 7, 2004 |
5 | ; Created: December 7, 2004 |
6 | ; Last changed: July 29, 2005 |
6 | ; Last changed: July 29, 2005 |
7 | ; |
7 | ; |
8 | ; COMPILE WITH FASM |
8 | ; COMPILE WITH FASM |
9 | 9 | ||
10 | PLAYLIST_PATH equ '/HD/1/MIDI/PLAYLIST.TXT' |
10 | PLAYLIST_PATH equ '/HD0/1/PLAYLIST.TXT' |
11 | APP_MEM equ 150*1024 |
- | |
12 | DIR_SIZE equ 1024 |
11 | APP_MEM equ 150*1024 |
13 | 12 | ||
14 | IPC_PLAY equ 0xa1 |
13 | IPC_PLAY equ 0xa1 |
15 | IPC_PAUS equ 0xa2 |
14 | IPC_PAUS equ 0xa2 |
16 | IPC_TRIG equ 0xa3 |
15 | IPC_TRIG equ 0xa3 |
17 | IPC_UPDT equ 0xb1 |
16 | IPC_UPDT equ 0xb1 |
18 | IPC_NEXT equ 0xb2 |
17 | IPC_NEXT equ 0xb2 |
19 | 18 | ||
20 | LISTITEMS equ 40 |
19 | LISTITEMS equ 40 |
21 | WND_BACK equ 0x24263c |
20 | WND_BACK equ 0x24263c |
22 | PLY equ 63 |
21 | PLY equ 63 |
23 | WND_HEIGHT equ (PLY+9*LISTITEMS+10)+25 |
22 | WND_HEIGHT equ (PLY+9*LISTITEMS+10)+25 |
24 | 23 | ||
25 | BTNS_XY equ 14 shl 16+42 |
24 | BTNS_XY equ 14 shl 16+42 |
26 | BTNS_SIZE equ 222 shl 16+17 |
25 | BTNS_SIZE equ 222 shl 16+17 |
27 | 26 | ||
28 | BROWSE_X equ 10 shl 16+8 |
27 | BROWSE_X equ 10 shl 16+8 |
29 | BROWSE_Y equ 26 shl 16+8 |
28 | BROWSE_Y equ 26 shl 16+8 |
30 | FN_XY equ 12 shl 16+15 |
29 | FN_XY equ 12 shl 16+15 |
31 | BAR_WIDTH equ 251 |
30 | BAR_WIDTH equ 251 |
32 | BAR_X equ 10 shl 16 |
31 | BAR_X equ 10 shl 16 |
33 | BAR_Y equ 29 shl 16+5 |
32 | BAR_Y equ 29 shl 16+5 |
34 | TOTALTIME_XY equ 124 shl 16+28 |
33 | TOTALTIME_XY equ 124 shl 16+28 |
35 | CURTIME_X equ 225 shl 16+40 |
34 | CURTIME_X equ 225 shl 16+40 |
36 | CURTIME_Y equ 15 shl 16+11 |
35 | CURTIME_Y equ 15 shl 16+11 |
37 | CURTIME_XY equ 236 shl 16+15 |
36 | CURTIME_XY equ 236 shl 16+15 |
38 | 37 | ||
39 | NONCRITICAL_MSG equ 0 |
38 | NONCRITICAL_MSG equ 0 |
40 | SOUND equ ON;OFF |
39 | SOUND equ ON;OFF |
41 | OUTDUMP equ 0 |
40 | OUTDUMP equ 0 |
42 | OUTLINE equ 8 |
41 | OUTLINE equ 8 |
43 | FL_SHUFFLE equ 0x01 |
42 | FL_SHUFFLE equ 0x01 |
44 | FL_REPEAT equ 0x02 |
43 | FL_REPEAT equ 0x02 |
45 | FL_HIDDEN equ 0x04 |
44 | FL_HIDDEN equ 0x04 |
46 | FL_MUTE equ 0x08 |
45 | FL_MUTE equ 0x08 |
47 | FL_REVERSE equ 0x10 |
46 | FL_REVERSE equ 0x10 |
48 | FL_ADD equ 0x20 |
47 | FL_ADD equ 0x20 |
49 | FL_PLAY equ 0x40 |
48 | FL_PLAY equ 0x40 |
50 | FL_LOCK equ 0x80 |
49 | FL_LOCK equ 0x80 |
51 | FL_BOTTRED equ 0x100 |
50 | FL_BOTTRED equ 0x100 |
52 | FL_MULSEL equ 0x8000 |
51 | FL_MULSEL equ 0x8000 |
53 | 52 | ||
54 | use32 |
53 | use32 |
55 | org 0x0 |
54 | org 0x0 |
56 | 55 | ||
57 | db 'MENUET01' |
56 | db 'MENUET01' |
58 | dd 0x01 |
57 | dd 0x01 |
59 | dd START |
58 | dd START |
60 | dd I_END |
59 | dd I_END |
61 | dd APP_MEM |
60 | dd APP_MEM |
62 | dd APP_MEM-1024 |
61 | dd APP_MEM ;stack size=1024 |
63 | dd I_PARAM |
62 | dd I_PARAM |
64 | listsel dd 0 |
63 | listsel dd 0 |
65 | channel dd 0 |
64 | channel dd 0 |
66 | COLOR_ORDER equ MENUETOS |
65 | COLOR_ORDER equ MENUETOS |
67 | include 'macros.inc' ; decrease code size (optional) |
66 | include 'macros.inc' ; decrease code size (optional) |
68 | lang fix en |
67 | lang fix en |
69 | ;purge mov |
68 | ;purge mov |
70 | include 'debug.inc' |
69 | include 'debug.inc' |
71 | include 'dlg.inc' |
70 | include 'dlg.inc' |
72 | include 'playlist.inc' |
71 | include 'playlist.inc' |
73 | include 'gif_lite.inc' |
72 | include 'gif_lite.inc' |
74 | bottom: |
73 | bottom: |
75 | file 'bottom.gif' |
74 | file 'bottom.gif' |
76 | hdrimg: |
75 | hdrimg: |
77 | file 'hdr.gif' |
76 | file 'hdr.gif' |
78 | btns: |
77 | btns: |
79 | file 'buttons.gif' |
78 | file 'buttons.gif' |
80 | START: |
79 | START: |
81 | or [flag],FL_BOTTRED;+FL_MUTE |
80 | or [flag],FL_BOTTRED;+FL_MUTE |
82 | mov ecx,ipcarea |
81 | mov ecx,ipcarea |
83 | call init_ipc |
82 | call init_ipc |
84 | mcall 40,1000111b |
83 | mcall 40,1000111b |
85 | mov esi,btns |
84 | mov esi,btns |
86 | mov edi,btn_raw |
85 | mov edi,btn_raw |
87 | mov eax,hash_table |
86 | mov eax,hash_table |
88 | call ReadGIF |
87 | call ReadGIF |
89 | mov esi,hdrimg |
88 | mov esi,hdrimg |
90 | mov edi,hdr_raw |
89 | mov edi,hdr_raw |
91 | mov eax,hash_table |
90 | mov eax,hash_table |
92 | call ReadGIF |
91 | call ReadGIF |
93 | mov esi,bottom |
92 | mov esi,bottom |
94 | mov edi,bottom_raw |
93 | mov edi,bottom_raw |
95 | mov eax,hash_table |
94 | mov eax,hash_table |
96 | call ReadGIF |
95 | call ReadGIF |
97 | call respawn |
96 | call respawn |
98 | mcall 9,prcinfo,-1 |
97 | mcall 9,prcinfo,-1 |
99 | mov edx,[ebx+30] |
98 | mov edx,[ebx+30] |
100 | mov [parentPID],edx |
99 | mov [parentPID],edx |
101 | mov esi,I_PARAM |
100 | mov esi,I_PARAM |
102 | cmp dword[esi],0 |
101 | cmp dword[esi],0 |
103 | jnz .yesparam |
102 | jnz .yesparam |
104 | call PL_load |
103 | call PL_load |
105 | cmp [list_count],0 |
104 | cmp [list_count],0 |
106 | je noparam |
105 | je noparam |
107 | mov eax,[pl_ptr] |
106 | mov eax,[pl_ptr] |
108 | or word[eax],FL_MULSEL |
107 | or word[eax],FL_MULSEL |
109 | jmp auto_load |
108 | jmp auto_load |
110 | .yesparam: |
109 | .yesparam: |
111 | mov al,byte[esi] |
110 | mov al,byte[esi] |
112 | cmp al,'/' |
111 | cmp al,'/' |
113 | je .defact |
112 | je .defact |
114 | mov [param],al |
113 | mov [param],al |
115 | inc esi |
114 | inc esi |
116 | .defact: |
115 | .defact: |
117 | mov edi,filename;fnbuf |
116 | mov edi,filename;fnbuf |
118 | mov ecx,64 |
117 | mov ecx,64 |
119 | rep movsd |
118 | rep movsd |
120 | jmp open_file |
119 | jmp open_file |
121 | clearpath: |
120 | clearpath: |
122 | newline |
121 | newline |
123 | mov [fname_len],0 |
122 | mov [fname_len],0 |
124 | noparam: |
123 | noparam: |
125 | mov [param],'W' |
124 | mov [param],'W' |
126 | or [flag],FL_ADD |
125 | or [flag],FL_ADD |
127 | call fopen |
126 | call fopen |
128 | get_path: |
127 | get_path: |
129 | cmp byte[filename],0 |
128 | cmp byte[filename],0 |
130 | jz still |
129 | jz still |
131 | open_file: |
130 | open_file: |
132 | cmp [param],'W' |
131 | cmp [param],'W' |
133 | je .noplay |
132 | je .noplay |
134 | cmp [param],'H' |
133 | cmp [param],'H' |
135 | jne .nohidd |
134 | jne .nohidd |
136 | ; or [flag],FL_PLAY |
135 | ; or [flag],FL_PLAY |
137 | or [flag],FL_HIDDEN |
136 | or [flag],FL_HIDDEN |
138 | call draw_window |
137 | call draw_window |
139 | and [flag],not FL_HIDDEN |
138 | and [flag],not FL_HIDDEN |
140 | call Shade |
139 | call Shade |
141 | ; jmp .noplay |
140 | ; jmp .noplay |
142 | 141 | ||
143 | .nohidd: |
142 | .nohidd: |
144 | or [flag],FL_PLAY |
143 | or [flag],FL_PLAY |
145 | .noplay: |
144 | .noplay: |
146 | xor eax,eax |
145 | xor eax,eax |
147 | mov [play_area],ax |
146 | mov [play_area],ax |
148 | mov [tick_count],eax |
147 | mov [tick_count],eax |
149 | mov [delta],eax |
148 | mov [delta],eax |
150 | inc eax |
- | |
151 | mov [fsize],eax |
- | |
152 | mov [curnote],0x80 |
149 | mov [curnote],0x80 |
153 | mov ecx,64 |
150 | mov ecx,64 |
154 | mov esi,filename |
151 | mov esi,filename |
155 | mov edi,I_PARAM |
152 | mov edi,I_PARAM |
156 | rep movsd |
153 | rep movsd |
157 | mov eax,58 |
154 | mov eax,70 |
158 | mov ebx,file_info |
155 | mov ebx,file_info |
159 | int 0x40 |
156 | int 0x40 |
160 | mov eax,ebx |
- | |
161 | shr eax,9 |
- | |
162 | inc eax |
- | |
163 | mov [fsize],eax |
- | |
164 | add ebx,workarea |
157 | add ebx,workarea |
165 | mov [midi_limit],ebx |
158 | mov [midi_limit],ebx |
166 | mov edi,I_PARAM |
159 | mov edi,I_PARAM |
167 | call find_slash |
160 | call find_slash |
168 | mov [fn_ptr],edi |
161 | mov [fn_ptr],edi |
169 | mov edi,filename |
162 | mov edi,filename |
170 | call str_len |
163 | call str_len |
171 | mov [fname_len],eax |
164 | mov [fname_len],eax |
172 | mov eax,58 |
- | |
173 | mov ebx,file_info |
- | |
174 | int 0x40 |
- | |
175 | midi_kill: |
165 | midi_kill: |
176 | call kill |
166 | call kill |
177 | include 'midilite.inc' |
167 | include 'midilite.inc' |
178 | 168 | ||
179 | decode_end: |
169 | decode_end: |
180 | ; dpd edi |
170 | ; dpd edi |
181 | ; dps <13,10,'Notes='> |
171 | ; dps <13,10,'Notes='> |
182 | ; sub edi,[midi_limit] |
172 | ; sub edi,[midi_limit] |
183 | ; shr edi,1 |
173 | ; shr edi,1 |
184 | ; dpd edi |
174 | ; dpd edi |
185 | dps ' Notes: max=' |
175 | dps ' Notes: max=' |
186 | movzx eax,[max_note] |
176 | movzx eax,[max_note] |
187 | dpd eax |
177 | dpd eax |
188 | dps 'min=' |
178 | dps 'min=' |
189 | movzx eax,[min_note] |
179 | movzx eax,[min_note] |
190 | dpd eax |
180 | dpd eax |
191 | newline |
181 | newline |
192 | ; sub esi,workarea |
182 | ; sub esi,workarea |
193 | ; jmp _close |
183 | ; jmp _close |
194 | .play: |
184 | .play: |
195 | call kill |
185 | call kill |
196 | call respawn |
186 | call respawn |
197 | xor edx,edx |
187 | xor edx,edx |
198 | mov esi,[midi_limit] |
188 | mov esi,[midi_limit] |
199 | mov [cur_ptr],esi |
189 | mov [cur_ptr],esi |
200 | mov [cur_tick],edx |
190 | mov [cur_tick],edx |
201 | mov [delta],edx |
191 | mov [delta],edx |
202 | .count_ticks: |
192 | .count_ticks: |
203 | lodsw |
193 | lodsw |
204 | test eax,eax |
194 | test eax,eax |
205 | jz .eof |
195 | jz .eof |
206 | and eax,0x7f |
196 | and eax,0x7f |
207 | add edx,eax |
197 | add edx,eax |
208 | jmp .count_ticks |
198 | jmp .count_ticks |
209 | .eof: |
199 | .eof: |
210 | mov [tick_count],edx |
200 | mov [tick_count],edx |
211 | if OUTDUMP eq 1 |
201 | if OUTDUMP eq 1 |
212 | mov esi,[midi_limit] |
202 | mov esi,[midi_limit] |
213 | call out_dump |
203 | call out_dump |
214 | end if |
204 | end if |
215 | and [flag],not FL_LOCK |
205 | and [flag],not FL_LOCK |
216 | test [flag],FL_PLAY |
206 | test [flag],FL_PLAY |
217 | jz .noplay |
207 | jz .noplay |
218 | call draw_window |
208 | call draw_window |
219 | mcall 5,100 |
209 | mcall 5,100 |
220 | mov eax,IPC_PLAY |
210 | mov eax,IPC_PLAY |
221 | call ipc_send |
211 | call ipc_send |
222 | .noplay: |
212 | .noplay: |
223 | test [flag],FL_ADD |
213 | test [flag],FL_ADD |
224 | jz red |
214 | jz red |
225 | mov esi,filename |
215 | mov esi,filename |
226 | mov ecx,[fname_len] |
216 | mov ecx,[fname_len] |
227 | movzx eax,[list_count] |
217 | movzx eax,[list_count] |
228 | mov [play_num],eax |
218 | mov [play_num],eax |
229 | add_song: |
219 | add_song: |
230 | call PL_add |
220 | call PL_add |
231 | and [flag],not FL_ADD |
221 | and [flag],not FL_ADD |
232 | red: |
222 | red: |
233 | call draw_window |
223 | call draw_window |
234 | still: |
224 | still: |
235 | mov ecx,ipcarea |
225 | mov ecx,ipcarea |
236 | call init_ipc |
226 | call init_ipc |
237 | mov eax,10 |
227 | mov eax,10 |
238 | int 0x40 |
228 | int 0x40 |
239 | prc_event: |
229 | prc_event: |
240 | test eax,eax |
230 | test eax,eax |
241 | jz still |
231 | jz still |
242 | .evt: |
232 | .evt: |
243 | cmp eax,1 |
233 | cmp eax,1 |
244 | je red |
234 | je red |
245 | cmp eax,2 |
235 | cmp eax,2 |
246 | je key |
236 | je key |
247 | cmp eax,3 |
237 | cmp eax,3 |
248 | je button |
238 | je button |
249 | cmp eax,7 |
239 | cmp eax,7 |
250 | jne still |
240 | jne still |
251 | movzx eax,byte[ipcarea+16] |
241 | movzx eax,byte[ipcarea+16] |
252 | cmp eax,IPC_UPDT |
242 | cmp eax,IPC_UPDT |
253 | jne .noupdt |
243 | jne .noupdt |
254 | call draw_bar |
244 | call draw_bar |
255 | jmp still |
245 | jmp still |
256 | .noupdt: |
246 | .noupdt: |
257 | cmp eax,IPC_NEXT |
247 | cmp eax,IPC_NEXT |
258 | jne still |
248 | jne still |
259 | cmp [param],'H' |
249 | cmp [param],'H' |
260 | je _close |
250 | je _close |
261 | xor edx,edx |
251 | xor edx,edx |
262 | test [flag],FL_SHUFFLE |
252 | test [flag],FL_SHUFFLE |
263 | jz .noshuf |
253 | jz .noshuf |
264 | mcall 26,9 |
254 | mcall 26,9 |
265 | movzx ebx,byte[list_count] |
255 | movzx ebx,byte[list_count] |
266 | div ebx |
256 | div ebx |
267 | mov eax,edx |
257 | mov eax,edx |
268 | jmp play_ |
258 | jmp play_ |
269 | .noshuf: |
259 | .noshuf: |
270 | test [flag],FL_REPEAT |
260 | test [flag],FL_REPEAT |
271 | jnz decode_end.play |
261 | jnz decode_end.play |
272 | mov eax,[play_num] |
262 | mov eax,[play_num] |
273 | inc eax |
263 | inc eax |
274 | cmp al,[list_count] |
264 | cmp al,[list_count] |
275 | jb bList.next |
265 | jb bList.next |
276 | mov eax,IPC_PAUS |
266 | mov eax,IPC_PAUS |
277 | call ipc_send |
267 | call ipc_send |
278 | jmp red |
268 | jmp red |
279 | 269 | ||
280 | if OUTDUMP eq 1 |
270 | if OUTDUMP eq 1 |
281 | out_dump: |
271 | out_dump: |
282 | mov ecx,OUTLINE |
272 | mov ecx,OUTLINE |
283 | .next_byte: |
273 | .next_byte: |
284 | lodsd |
274 | lodsd |
285 | bswap eax |
275 | bswap eax |
286 | dph eax |
276 | dph eax |
287 | dps ' ' |
277 | dps ' ' |
288 | lodsd |
278 | lodsd |
289 | bswap eax |
279 | bswap eax |
290 | dph eax |
280 | dph eax |
291 | dps <13,10> |
281 | dps <13,10> |
292 | loop .next_byte |
282 | loop .next_byte |
293 | ret |
283 | ret |
294 | end if |
284 | end if |
295 | 285 | ||
296 | str_len: |
286 | str_len: |
297 | ; in: edi-str ptr |
287 | ; in: edi-str ptr |
298 | ; out: eax-str length |
288 | ; out: eax-str length |
299 | push ecx edi |
289 | push ecx edi |
300 | xor eax,eax |
290 | xor eax,eax |
301 | mov ecx,256 |
291 | mov ecx,256 |
302 | repne scasb |
292 | repne scasb |
303 | jecxz .nofn |
293 | jecxz .nofn |
304 | sub edi,[esp] |
294 | sub edi,[esp] |
305 | mov eax,edi |
295 | mov eax,edi |
306 | .nofn: |
296 | .nofn: |
307 | pop edi ecx |
297 | pop edi ecx |
308 | ret |
298 | ret |
309 | 299 | ||
310 | fopen: |
300 | fopen: |
311 | or [flag],FL_LOCK |
301 | or [flag],FL_LOCK |
312 | opendialog draw_window, ret_path, ret_path, filename |
302 | opendialog draw_window, ret_path, ret_path, filename |
313 | ret_path: |
303 | ret_path: |
314 | and [flag],not FL_LOCK |
304 | and [flag],not FL_LOCK |
315 | ret |
305 | ret |
316 | 306 | ||
317 | include 'event.inc' |
307 | include 'event.inc' |
318 | include "thread.inc" |
308 | include "thread.inc" |
319 | include "draw.inc" |
309 | include "draw.inc" |
320 | ; ¤¥áì 室ïâáï ¤ ë¥ ¯à®£à ¬¬ë: |
310 | ; ¤¥áì 室ïâáï ¤ ë¥ ¯à®£à ¬¬ë: |
321 | 311 | ||
322 | dd -2 shl 16+4,251,12 shl 16,29 shl 16+5 |
312 | dd -2 shl 16+4,251,12 shl 16,29 shl 16+5 |
323 | dd 21,16 |
313 | dd 21,16 |
324 | main_coo: |
314 | main_coo: |
325 | dd 14 shl 16, 42 shl 16,23 shl 16 |
315 | dd 14 shl 16, 42 shl 16,23 shl 16 |
326 | dd 228 shl 16+38 |
316 | dd 228 shl 16+38 |
327 | dd 14 shl 16+10 |
317 | dd 14 shl 16+10 |
328 | dd 236 shl 16+15 |
318 | dd 236 shl 16+15 |
329 | btncoords: |
319 | btncoords: |
330 | dd 120 shl 16+20, 1 shl 16+15 |
320 | dd 120 shl 16+20, 1 shl 16+15 |
331 | dd 149 shl 16+44, 2 shl 16+12 |
321 | dd 149 shl 16+44, 2 shl 16+12 |
332 | dd 195 shl 16+26, 2 shl 16+12 |
322 | dd 195 shl 16+26, 2 shl 16+12 |
333 | 323 | ||
334 | dd -2 shl 16+4,54,63 shl 16,6 shl 16+4 |
324 | dd -2 shl 16+4,54,63 shl 16,6 shl 16+4 |
335 | dd 6,6 |
325 | dd 6,6 |
336 | main_coo2: |
326 | main_coo2: |
337 | dd 169 shl 16, 4 shl 16,9 shl 16 |
327 | dd 169 shl 16, 4 shl 16,9 shl 16 |
338 | dd 121 shl 16+40 |
328 | dd 121 shl 16+40 |
339 | dd 3 shl 16+9 |
329 | dd 3 shl 16+9 |
340 | dd 130 shl 16+4 |
330 | dd 130 shl 16+4 |
341 | btncoords2: |
331 | btncoords2: |
342 | dd 48 shl 16+6, 6 |
332 | dd 48 shl 16+6, 6 |
343 | dd 2000 shl 16+44, 2 shl 16+12 |
333 | dd 2000 shl 16+44, 2 shl 16+12 |
344 | dd 2000 shl 16+26, 2 shl 16+12 |
334 | dd 2000 shl 16+26, 2 shl 16+12 |
345 | ipcarea rb 20 |
335 | ipcarea rb 20 |
346 | ipcarea2 rb 20 |
336 | ipcarea2 rb 20 |
347 | 337 | ||
348 | dots db ':-' |
338 | dots db ':-' |
349 | text db 'tone> chnl> |
339 | text db 'tone> chnl> |
350 | text_end: |
340 | text_end: |
351 | coo dd main_coo |
341 | coo dd main_coo |
352 | play_limit dd playlist |
342 | play_limit dd playlist |
353 | pl_ptr dd playlist |
343 | pl_ptr dd playlist |
354 | param db 'W' |
344 | param db 'W' |
355 | curnote db 0x80 |
345 | curnote db 0x80 |
356 | tick_count dd 0 |
346 | tick_count dd 0 |
- | 347 | dir_info: |
|
- | 348 | dd 1 |
|
- | 349 | dd 0 |
|
- | 350 | dd 0 |
|
- | 351 | dd 1 |
|
- | 352 | dd dir_table |
|
- | 353 | db 0 |
|
- | 354 | dd filename |
|
357 | play_area dw ? |
355 | play_area dw ? |
358 | file_info: |
356 | file_info: |
359 | dd 0 |
357 | dd 0 |
360 | dd 0 |
358 | dd 0 |
361 | fsize dd 1 |
359 | dd 0 |
- | 360 | fsize dd APP_MEM-1024-workarea ; max size |
|
362 | dd workarea |
361 | dd workarea |
363 | dd hash_table |
- | |
364 | I_END: ; ª®¥æ ¯à®£à ¬¬ë |
362 | I_END: ; ª®¥æ ¯à®£à ¬¬ë |
365 | filename: |
363 | filename: |
366 | rb 1024+16 |
364 | rb 1024+16 |
367 | prcinfo process_information |
365 | prcinfo process_information |
368 | I_PARAM rb 256 |
366 | I_PARAM rb 256 |
369 | childPID dd ? |
367 | childPID dd ? |
370 | parentPID dd ? |
368 | parentPID dd ? |
371 | play_num dd ? |
369 | play_num dd ? |
372 | counter dd ? |
370 | counter dd ? |
373 | flag dd ? |
371 | flag dd ? |
374 | fname_len dd ? |
372 | fname_len dd ? |
375 | fn_ptr dd ? |
373 | fn_ptr dd ? |
376 | delta dd ? |
374 | delta dd ? |
377 | cur_ptr dd ? |
375 | cur_ptr dd ? |
378 | cur_tick dd ? |
376 | cur_tick dd ? |
379 | quarter dd ? |
377 | quarter dd ? |
380 | octave db ? |
378 | octave db ? |
381 | tempo dd ? |
379 | tempo dd ? |
382 | midi_limit dd ? |
380 | midi_limit dd ? |
383 | track_len dd ? |
381 | track_len dd ? |
384 | list_count db ? |
382 | list_count db ? |
385 | cur_track db ? |
383 | cur_track db ? |
386 | sel_track db ? |
384 | sel_track db ? |
387 | ipcmsg db ? |
385 | ipcmsg db ? |
388 | fnbuf: |
386 | fnbuf: |
389 | rb 256 |
387 | rb 1024 |
390 | btn_raw rb 222*17*3+12 |
388 | btn_raw rb 222*17*3+12 |
391 | hdr_raw rb 275*29*3+12 |
389 | hdr_raw rb 275*29*3+12 |
392 | bottom_raw rb 25*378*3+12 |
390 | bottom_raw rb 25*378*3+12 |
393 | rb 4 |
391 | rb 4 |
394 | playlist rb 256*LISTITEMS |
392 | playlist rb 256*LISTITEMS |
395 | hash_table: |
393 | hash_table: |
396 | rd 4096 |
394 | rd 4096 |
397 | dir_table rb DIR_SIZE |
395 | dir_table rb 32+304 |
398 | workarea: |
396 | workarea: |
399 | text_end: |
397 | text_end: |
400 | coo>13,10>13,10,'Notes='> |
398 | coo>13,10>13,10,'Notes='> |