📄 mineon.lst
字号:
333 3 Play_Cnt=0;
334 3 Play_Block = File_Start_Block;
335 3 Total_Played_Blocks = 0;
336 3 return;
337 3 }
338 2 }
339 1 }
340
341 void Prev_Block_Search(Byte turn)
342 {
343 1 Byte i;
344 1
345 1 for(i=0 ; i<turn ; i++)
346 1 {
347 2 Play_Block = FAT_Read(Play_Block, PREV_CHECK_LOCATION);
348 2 Total_Played_Blocks --;
349 2
350 2 if( (Play_Block==START_BLOCK) || (Play_Block>=Current_Flash_Mem_Blocks) )
351 2 {
352 3 Volume_Mute();
353 3 File_Num_Dec();
354 3 Play_Cnt=0;
355 3 Play_Block = File_Last_Block;
356 3 Total_Played_Blocks = File_Blocks-1;
357 3 return;
358 3 }
359 2 }
360 1 }
361
362 void Poll_Status()
363 {
364 1
365 1 if(Hold)Yellow_On();
366 1 else Yellow_Off();
367 1
368 1 switch (SystemStatus)
369 1 {
370 2 case STATUS_STOP:
371 2 Red_On();
372 2
373 2 break;
374 2
375 2 case STATUS_PLAY:
376 2 Green_On();
377 2
378 2 if(mmu_swappable)
379 2 {
380 3 if(Play_Cnt < 5)
381 3 {
382 4 Play_Cnt++;
383 4 }
384 3 else if(Play_Cnt == 5)
385 3 {
386 4 Play_Cnt++;
387 4 Volume_Adj();
388 4 }
389 3
C51 COMPILER V5.50, MINEON 06/03/01 11:32:07 PAGE 7
390 3 if(Play_Page == 32)
391 3 {
392 4 Play_Page = 0;
393 4 if(RW_Enable|FF_Enable)
394 4 {
395 5 Volume_Mute();
396 5 if(RW_Enable) Prev_Block_Search(10); // case 128kbps : 1 sec = 1 block
397 5 else Next_Block_Search(10);
398 5 Status_Change(STATUS_PLAY);
399 5 }
400 4 else
401 4 {
402 5 Error = 0;
403 5 Next_Block_Search(1);
404 5 if(Error) return;
405 5 MMU_Reset();
406 5 }
407 4
408 4 }
409 3
410 3 if( (Play_Block == File_Last_Block)&&(Play_Page>=Last_Pages) )
411 3 {
412 4 Play_Page = 32;
413 4 return;
414 4 }
415 3
416 3 Flash_Mem_Read(Play_Block, Play_Page);
417 3 MP3_Enable();
418 3 Play_Page++;
419 3 }
420 2 break;
421 2
422 2 case STATUS_PAUSE:
423 2 Red_On();
424 2
425 2 break;
426 2
427 2 case STATUS_DOWNLOAD:
428 2 break;
429 2
430 2 default:
431 2 break;
432 2 }
433 1 }
434
435 void main(void)
436 {
437 1 Bit a=0;
438 1 Byte i;
439 1
440 1 // Port Configuration
441 1 /*
442 1 00 : Open Drain
443 1 01 : High Impedance
444 1 10 : Internal Pull-Up
445 1 11 : Push Pull
446 1 */
447 1
448 1 P0CfgA = 0xFF;
449 1 P0CfgB = 0x00;
450 1 P1CfgA = 0xFF;
451 1 P1CfgB = 0x00;
452 1
453 1 P2CfgA = 0xFF;
454 1 P2CfgB = 0x00;
455 1
C51 COMPILER V5.50, MINEON 06/03/01 11:32:07 PAGE 8
456 1 // P3CfgA = 0xFF;
457 1 // P3CfgB = 0x00;
458 1 P3CfgA = 0xFF; // b'11101111'
459 1 P3CfgB = 0x00; // b'00000000'
460 1
461 1 // Freq_Ctrl=0;
462 1 Freq_12M();
463 1 Delay_100ms(1);
464 1
465 1 Yellow_Off();
466 1 Power_Check();
467 1 Battery_Check();
468 1 Green_Light(1,2);
469 1
470 1 smi_write_protect = 1;
471 1 SMC_In_Out=0;
472 1
473 1 Init_USB();
474 1 Init_IIC();
475 1 Init_EQ();
476 1 Init_Key();
477 1
478 1 Green_Light(1,2);
479 1
480 1 Status_Change(STATUS_STOP);
481 1
482 1 EX0 = 1; // USB Interrupt enable
483 1 EX1 = 1; // SMC Interrupt enable
484 1
485 1 EA = 1; // Interrupt enable
486 1
487 1 if(a)
488 1 {
489 2 i=i;
490 2 Download_Byte();
491 2 Delay_10us(1);
492 2 Delay_100ms(3);
493 2 Delay_Sec(1);
494 2 Yellow_Light(1,3);
495 2 Red_Light(1,1);
496 2 Green_Light(1,1);
497 2 }
498 1
499 1 while(1)
500 1 {
501 2 // if(a){
502 2 Power_Check();
503 2 Battery_Check();
504 2 SMC_In_Out_Check();
505 2
506 2 Poll_USB(); // in usb.c
507 2 // }
508 2 Poll_Key(); // in key.c
509 2
510 2 Poll_Status(); // in mineon.c
511 2 }
512 1 }
513
C51 COMPILER V5.50, MINEON 06/03/01 11:32:07 PAGE 9
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _Delay (BEGIN)
0000 7800 R MOV R0,#LOW j
0002 120000 E LCALL ?C?LSTPDATA
; SOURCE LINE # 8
; SOURCE LINE # 9
; SOURCE LINE # 11
0005 7800 R MOV R0,#LOW i
0007 120000 E LCALL ?C?LSTKPDATA
000A 00 DB #00H
000B 00 DB #00H
000C 00 DB #00H
000D 00 DB #00H
000E ?C0001:
000E 7800 R MOV R0,#LOW j
0010 E2 MOVX A,@R0
0011 FC MOV R4,A
0012 08 INC R0
0013 E2 MOVX A,@R0
0014 FD MOV R5,A
0015 08 INC R0
0016 E2 MOVX A,@R0
0017 FE MOV R6,A
0018 08 INC R0
0019 E2 MOVX A,@R0
001A FF MOV R7,A
001B 08 INC R0
001C E2 MOVX A,@R0
001D FB MOV R3,A
001E 08 INC R0
001F E2 MOVX A,@R0
0020 F9 MOV R1,A
0021 08 INC R0
0022 E2 MOVX A,@R0
0023 FA MOV R2,A
0024 08 INC R0
0025 E2 MOVX A,@R0
0026 CB XCH A,R3
0027 F8 MOV R0,A
0028 C3 CLR C
0029 120000 E LCALL ?C?ULCMP
002C 5025 JNC ?C0004
002E 7800 R MOV R0,#LOW i
0030 E2 MOVX A,@R0
0031 FC MOV R4,A
0032 08 INC R0
0033 E2 MOVX A,@R0
0034 FD MOV R5,A
0035 08 INC R0
0036 E2 MOVX A,@R0
0037 FE MOV R6,A
0038 08 INC R0
0039 E2 MOVX A,@R0
003A 7A00 MOV R2,#00H
003C 7900 MOV R1,#00H
003E 7800 MOV R0,#00H
0040 2401 ADD A,#01H
0042 FF MOV R7,A
0043 EA MOV A,R2
0044 3E ADDC A,R6
0045 FE MOV R6,A
0046 E9 MOV A,R1
0047 3D ADDC A,R5
0048 FD MOV R5,A
C51 COMPILER V5.50, MINEON 06/03/01 11:32:07 PAGE 10
0049 E8 MOV A,R0
004A 3C ADDC A,R4
004B FC MOV R4,A
004C 7800 R MOV R0,#LOW i
004E 120000 E LCALL ?C?LSTPDATA
0051 80BB SJMP ?C0001
; SOURCE LINE # 12
0053 ?C0004:
0053 22 RET
; FUNCTION _Delay (END)
; FUNCTION _Delay_10us (BEGIN)
;---- Variable 'time' assigned to Register 'R7' ----
; SOURCE LINE # 14
; SOURCE LINE # 15
; SOURCE LINE # 19
;---- Variable 'j' assigned to Register 'R6' ----
0000 E4 CLR A
0001 FE MOV R6,A
0002 ?C0005:
0002 EE MOV A,R6
0003 C3 CLR C
0004 9F SUBB A,R7
0005 500A JNC ?C0011
; SOURCE LINE # 20
; SOURCE LINE # 21
;---- Variable 'i' assigned to Register 'R5' ----
0007 E4 CLR A
0008 FD MOV R5,A
0009 ?C0008:
0009 0D INC R5
000A ED MOV A,R5
000B B406FB CJNE A,#06H,?C0008
; SOURCE LINE # 22
000E ?C0007:
000E 0E INC R6
000F 80F1 SJMP ?C0005
; SOURCE LINE # 23
0011 ?C0011:
0011 22 RET
; FUNCTION _Delay_10us (END)
; FUNCTION Init_Timer1 (BEGIN)
; SOURCE LINE # 40
; SOURCE LINE # 41
; SOURCE LINE # 42
0000 53890F ANL TMOD,#0FH
; SOURCE LINE # 43
0003 438910 ORL TMOD,#010H
; SOURCE LINE # 44
0006 22 RET
; FUNCTION Init_Timer1 (END)
; FUNCTION _Delay_10ms (BEGIN)
;---- Variable 'time' assigned to Register 'R7' ----
; SOURCE LINE # 46
; SOURCE LINE # 47
; SOURCE LINE # 49
0000 120000 R LCALL Init_Timer1
0003 ?C0013:
; SOURCE LINE # 51
0003 EF MOV A,R7
0004 6012 JZ ?C0017
; SOURCE LINE # 52
; SOURCE LINE # 53
0006 758DB1 MOV TH1,#0B1H
C51 COMPILER V5.50, MINEON 06/03/01 11:32:07 PAGE 11
; SOURCE LINE # 54
0009 758BDF MOV TL1,#0DFH
; SOURCE LINE # 55
000C C28F CLR TF1
; SOURCE LINE # 56
000E D28E SETB TR1
0010 ?C0015:
; SOURCE LINE # 57
0010 308FFD JNB TF1,?C0015
0013 ?C0016:
; SOURCE LINE # 58
0013 C28E CLR TR1
; SOURCE LINE # 59
0015 1F DEC R7
; SOURCE LINE # 60
0016 80EB SJMP ?C0013
; SOURCE LINE # 61
0018 ?C0017:
0018 22 RET
; FUNCTION _Delay_10ms (END)
; FUNCTION _Delay_100ms (BEGIN)
;---- Variable 'time' assigned to Register 'R6' ----
0000 AE07 MOV R6,AR7
; SOURCE LINE # 63
; SOURCE LINE # 64
; SOURCE LINE # 65
0002 120000 R LCALL Init_Timer1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -