📄 main.lst
字号:
548 0081
549 0081 3226 set MISC.@MISC_ISOEN ;ISO Output Interrupt Enable
550 0082 31A6 set MISC.@MISC_ISIEN ;ISO Input Interrupt Enable
551 0083 1F24 clr STALL
552 0084 3622 clr UCC.@UCC_SUSP2
553 0085
554 0085 ;SYSCLK
555 0085 ;set UCC.6 //set to 6 MHz
556 0085
557 0085 31A2 set UCC.@UCC_USBCKEN
558 0086 0000 nop
559 0087 3220 set USC.@USC_V33C ;//pc 開始送 command 過來
560 0088
561 0088
562 0088 if AUDIO_8K
563 0088 31B4 set MODE_CTRL.3
564 0089 endif
565 0089
566 0089
567 0089 ;-----------------------------------------------------------
568 0089 ;初始化按键处理指令
569 0089 ;-----------------------------------------------------------
570 0089 5F34 clr CMD_SCount
571 008A 0FA4 mov A,OFFSET CMD_Buf
572 008B 40B5 mov CMD_SPtr,A
573 008C
574 008C 5F57 clr Key_Count
575 008D 0FB6 mov A,OFFSET Key_Buf
576 008E 40D6 mov Key_ptr,A
577 008F
578 008F 0001 clr wdt
579 0090 0003 RET
580 0091
581 0091 ;***************************************************************
582 0091 ; Timer_0_ISR
583 0091 ; 1.Timer time = 21.2 ms
584 0091 ; 2.Do this procedure is 3.6ms
585 0091 ;***************************************************************
文件:MAIN.ASM 盛群编译器版本 2.86 页次11
586 0091 Timer_0_ISR:
587 0091 360E clr TMR0C.4
588 0092 00C5 MOV isr_tmr0_acc,A ;save ACC
589 0093 070A MOV A,STATUS
590 0094 00C6 MOV isr_tmr0_status,A ;save status
591 0095 0703 MOV A,MP1
592 0096 00C7 MOV isr_tmr0_mp1,A ;save mp1
593 0097 0701 MOV A,MP0
594 0098 00C8 MOV isr_tmr0_mp0,A ;save mp0
595 0099 0707 MOV A,TBLP
596 009A 00C9 MOV isr_tmr0_tblp,A ;save TBLP
597 009B
598 009B Timer_0_My_Function:
599 009B ;-----------------------------------------------------------
600 009B ; Here to add your another code !!
601 009B ;-----------------------------------------------------------
602 009B 0000 NOP
603 009C 0001 clr wdt
604 009D
605 009D Timer_0_ISR_END:
606 009D 0749 MOV A,isr_tmr0_tblp ;restore TBLP
607 009E 0087 MOV TBLP,A
608 009F 0748 MOV A,isr_tmr0_mp0 ;restore MP0
609 00A0 0081 MOV MP0,A
610 00A1 0747 MOV A,isr_tmr0_mp1 ;restore MP1
611 00A2 0083 MOV MP1,A
612 00A3 0746 MOV A,isr_tmr0_status ;restore STATUS
613 00A4 008A MOV STATUS,A
614 00A5 0745 MOV A,isr_tmr0_acc ;restore ACC
615 00A6 320E SET TMR0C.4 ;start timer0
616 00A7
617 00A7 0004 RETI
618 00A8
619 00A8 ;***************************************************************
620 00A8 ; Timer_1_ISR
621 00A8 ; 1.Timer time = 21.2 ms
622 00A8 ; 2.Do this procedure is 3.6ms
623 00A8 ;***************************************************************
624 00A8 Timer_1_ISR:
625 00A8 3611 CLR TMR1C.4
626 00A9
627 00A9
628 00A9 00CA MOV isr_tmr1_acc,A ;save ACC
629 00AA 070A MOV A,STATUS
630 00AB 00CB MOV isr_tmr1_status,A ;save status
631 00AC 0703 MOV A,MP1
632 00AD 00CC MOV isr_tmr1_mp1,A ;save mp1
633 00AE 0701 MOV A,MP0
634 00AF 00CD MOV isr_tmr1_mp0,A ;save mp0
635 00B0 0707 MOV A,TBLP
636 00B1 00CE MOV isr_tmr1_tblp,A ;save TBLP
637 00B2
638 00B2 0001 clr wdt
639 00B3 7023 SET TMR1_KEY_FG
640 00B4 ;IF UseMediaKey
641 00B4 ;call Key_Debounced
642 00B4 ;ENDIF
643 00B4 231C call Run_Volume_Step
644 00B5
645 00B5 234B call KeyScanProcess ;键盘按键扫描
文件:MAIN.ASM 盛群编译器版本 2.86 页次12
646 00B6
647 00B6
648 00B6 074E MOV A,isr_tmr1_tblp ;restore TBLP
649 00B7 0087 MOV TBLP,A
650 00B8 074D MOV A,isr_tmr1_mp0 ;restore MP0
651 00B9 0081 MOV MP0,A
652 00BA 074C MOV A,isr_tmr1_mp1 ;restore MP1
653 00BB 0083 MOV MP1,A
654 00BC 074B MOV A,isr_tmr1_status ;restore STATUS
655 00BD 008A MOV STATUS,A
656 00BE 074A MOV A,isr_tmr1_acc ;restore ACC
657 00BF
658 00BF Timer_1_ISR_End:
659 00BF 3211 SET TMR1C.4
660 00C0 0004 RETI
661 00C1
662 00C1 ;***************************************************************
663 00C1 ; USB_ISR : USB Interrupt Routine
664 00C1 ; 1.Back up every status register
665 00C1 ; 2.check which endpoint is interrupt
666 00C1 ;***************************************************************
667 00C1 USB_ISR:
668 00C1 348B CLR INTC0.@INTC0_EEI ;disable USB interrupt
669 00C2 ;modify 2006-09-11
670 00C2 ;SET INTC0.@INTC0_EMI
671 00C2
672 00C2 00C0 MOV isr_usb_acc,A ;save ACC
673 00C3 070A MOV A,STATUS
674 00C4 00C1 MOV isr_usb_status,A ;save status
675 00C5 0703 MOV A,MP1
676 00C6 00C2 MOV isr_usb_mp1,A ;save mp1
677 00C7 0701 MOV A,MP0
678 00C8 00C3 MOV isr_usb_mp0,A ;save mp0
679 00C9 0707 MOV A,TBLP
680 00CA 00C4 MOV isr_usb_tblp,A ;save TBLP
681 00CB
682 00CB
683 00CB 0001 clr wdt
684 00CC ;;Check Which FIFO is interrupt
685 00CC 28D8 JMP Check_Access_FIFO
686 00CD
687 00CD
688 00CD
689 00CD USB_ISR_END:
690 00CD 0744 MOV A,isr_usb_tblp ;restore TBLP
691 00CE 0087 MOV TBLP,A
692 00CF 0743 MOV A,isr_usb_mp0 ;restore MP0
693 00D0 0081 MOV MP0,A
694 00D1 0742 MOV A,isr_usb_mp1 ;restore MP1
695 00D2 0083 MOV MP1,A
696 00D3 0741 MOV A,isr_usb_status ;restore STATUS
697 00D4 008A MOV STATUS,A
698 00D5 0740 MOV A,isr_usb_acc ;restore ACC
699 00D6
700 00D6 ;modify 2006-08-18
701 00D6 ;CLR INTC0.@INTC0_EMI
702 00D6 308B SET INTC0.@INTC0_EEI
703 00D7
704 00D7
705 00D7 0004 RETI
文件:MAIN.ASM 盛群编译器版本 2.86 页次13
706 00D8
707 00D8
708 00D8 ;***************************************************************
709 00D8 ; USB_EPX_ISR
710 00D8 ; 之前使用 USR@EP0IF EQU [01BH].0 判別會偵測不到
711 00D8 ; 更改成 USB_STATUS_CONTROL.@EP0IF
712 00D8 ;***************************************************************
713 00D8 Check_Access_FIFO:
714 00D8 0001 clr wdt
715 00D9 3C21 SZ USR.@USR_EP0F
716 00DA 28E4 JMP USB_EP0_ISR
717 00DB 3CA1 SZ USR.@USR_EP1F
718 00DC 297A JMP USB_EP1_ISR
719 00DD 3D21 SZ USR.@USR_EP2F
720 00DE 29AB JMP USB_EP2_ISR
721 00DF 3DA1 SZ USR.@USR_EP3F
722 00E0 29AE JMP USB_EP3_ISR
723 00E1 3E21 SZ USR.@USR_EP4F
724 00E2 29B1 JMP USB_EP4_ISR
725 00E3
726 00E3 28CD JMP USB_ISR_END
727 00E4
728 00E4 ;-----------------------------------------------------
729 00E4 ;EPNPOINT 0
730 00E4 ;-----------------------------------------------------
731 00E4 USB_EP0_ISR:
732 00E4 ;modify 2006-07-27
733 00E4 ;CLR USR.@USR_EP0F ;Fix Bus Enumeration Stress
734 00E4
735 00E4 ;;case1
736 00E4 3EA6 SZ MISC.@MISC_SCMD ;check setup token
737 00E5 28F0 JMP USB_EP0_SETUP_TOKEN
738 00E6
739 00E6 3FA6 SZ MISC.@MISC_LEN0 ;check out ack token
740 00E7 28FA JMP USB_EP0_OUT_ACK_TOKEN
741 00E8
742 00E8 2000 E CALL FIFO0_RD_CHECK
743 00E9 7D91 SZ bFlag_FIFO_Ready
744 00EA 28FE JMP USB_EP0_OUT_TOKEN
745 00EB ;clr MISC.@MISC_REQ
746 00EB
747 00EB 2000 E CALL FIFO0_WR_CHECK
748 00EC 7D91 SZ bFlag_FIFO_Ready
749 00ED 28F6 JMP USB_EP0_IN_TOKEN ;else is in token
750 00EE ;clr MISC.@MISC_REQ
751 00EE
752 00EE ;modify 2006-08-28
753 00EE 3421 CLR USR.@USR_EP0F ;Fix OHCI Volume
754 00EF
755 00EF 2979 JMP USB_EP0_ISR_END
756 00F0
757 00F0
758 00F0 ;;case2
759 00F0 ;; SZ MISC.@MISC_SCMD ;check setup token
760 00F0 ;; JMP USB_EP0_SETUP_TOKEN
761 00F0 ;;
762 00F0 ;; SZ MISC.@MISC_LEN0 ;check out ack token
763 00F0 ;; JMP USB_EP0_OUT_ACK_TOKEN
764 00F0 ;;
765 00F0 ;; CALL FIFO0_RD_CHECK
文件:MAIN.ASM 盛群编译器版本 2.86 页次14
766 00F0 ;; SZ bFlag_FIFO_Ready
767 00F0 ;; JMP USB_EP0_OUT_TOKEN
768 00F0 ;; ;clr MISC.@MISC_REQ
769 00F0 ;;
770 00F0 ;; CALL FIFO0_WR_CHECK
771 00F0 ;; SZ bFlag_FIFO_Ready
772 00F0 ;; JMP USB_EP0_IN_TOKEN ;else is in token
773 00F0 ;; ;clr MISC.@MISC_REQ
774 00F0 ;;
775 00F0 ;;
776 00F0 ;; JMP USB_EP0_ISR_END
777 00F0
778 00F0
779 00F0 ;;case3
780 00F0 ;; call FIFO0_RD_CHECK
781 00F0 ;; sz bFlag_FIFO_Ready
782 00F0 ;; jmp Have_Data_Out
783 00F0 ;;
784 00F0 ;; call FIFO0_WR_CHECK
785 00F0 ;; sz bFlag_FIFO_Ready
786 00F0 ;; jmp USB_EP0_IN_TOKEN
787 00F0 ;;
788 00F0 ;; jmp USB_EP0_ISR_END
789 00F0 ;;
790 00F0 ;;Have_Data_Out:
791 00F0 ;; sz MISC.@MISC_SCMD
792 00F0 ;; jmp USB_EP0_SETUP_TOKEN
793 00F0 ;; sz MISC.@MISC_LEN0
794 00F0 ;; jmp USB_EP0_OUT_ACK_TOKEN
795 00F0 ;;
796 00F0 ;; jmp USB_EP0_OUT_TOKEN
797 00F0
798 00F0
799 00F0
800 00F0
801 00F0
802 00F0 USB_EP0_SETUP_TOKEN: ;PARSE SETUP TOKEN
803 00F0 0001 clr wdt
804 00F1 21DF CALL StageOne
805 00F2 ;Clear OutToken 的剩余中断
806 00F2 7512 CLR bFlag_OutTokenRemainInt
807 00F3 ;保存指定的大小
808 00F3 kmov Data_Length,FIFO_wLengthL
809 00F5 2979 JMP USB_EP0_ISR_END
810 00F6
811 00F6 USB_EP0_IN_TOKEN:
812 00F6 0001 clr wdt
813 00F7 ;modify 2006-08-28
814 00F7 3421 CLR USR.@USR_EP0F ;Fix OHCI Volume
815 00F8 2000 E CALL control_read
816 00F9 2979 JMP USB_EP0_ISR_END
817 00FA
818 00FA USB_EP0_OUT_ACK_TOKEN:
819 00FA ;modify 2006-08-28
820 00FA 3421 CLR USR.@USR_EP0F ;Fix OHCI Volume
821 00FB 0001 clr wdt
822 00FC 37A6 clr MISC.@MISC_LEN0
823 00FD ;; call Delay_3us
824 00FD 2979 JMP USB_EP0_ISR_END
825 00FE
文件:MAIN.ASM 盛群编译器版本 2.86 页次15
826 00FE
827 00FE
828 00FE USB_EP0_OUT_TOKEN:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -