📄 main.lst
字号:
804 010F ;;case2
805 010F ;; SZ MISC.@MISC_SCMD ;check setup token
806 010F ;; JMP USB_EP0_SETUP_TOKEN
807 010F ;;
808 010F ;; SZ MISC.@MISC_LEN0 ;check out ack token
809 010F ;; JMP USB_EP0_OUT_ACK_TOKEN
810 010F ;;
811 010F ;; CALL FIFO0_RD_CHECK
812 010F ;; SZ bFlag_FIFO_Ready
813 010F ;; JMP USB_EP0_OUT_TOKEN
814 010F ;; ;clr MISC.@MISC_REQ
815 010F ;;
816 010F ;; CALL FIFO0_WR_CHECK
817 010F ;; SZ bFlag_FIFO_Ready
818 010F ;; JMP USB_EP0_IN_TOKEN ;else is in token
819 010F ;; ;clr MISC.@MISC_REQ
820 010F ;;
821 010F ;;
822 010F ;; JMP USB_EP0_ISR_END
823 010F
824 010F
825 010F ;;case3
"File: MAIN.ASM Holtek Cross-Assembler Version 2.86 Page 15
826 010F ;; call FIFO0_RD_CHECK
827 010F ;; sz bFlag_FIFO_Ready
828 010F ;; jmp Have_Data_Out
829 010F ;;
830 010F ;; call FIFO0_WR_CHECK
831 010F ;; sz bFlag_FIFO_Ready
832 010F ;; jmp USB_EP0_IN_TOKEN
833 010F ;;
834 010F ;; jmp USB_EP0_ISR_END
835 010F ;;
836 010F ;;Have_Data_Out:
837 010F ;; sz MISC.@MISC_SCMD
838 010F ;; jmp USB_EP0_SETUP_TOKEN
839 010F ;; sz MISC.@MISC_LEN0
840 010F ;; jmp USB_EP0_OUT_ACK_TOKEN
841 010F ;;
842 010F ;; jmp USB_EP0_OUT_TOKEN
843 010F
844 010F
845 010F
846 010F
847 010F
848 010F USB_EP0_SETUP_TOKEN: ;PARSE SETUP TOKEN
849 010F 0001 clr wdt
850 0110 2187 CALL StageOne
851 0111 297B JMP USB_EP0_ISR_END
852 0112
853 0112 USB_EP0_IN_TOKEN:
854 0112 0001 clr wdt
855 0113 ;modify 2006-08-28
856 0113 3421 CLR USR.@USR_EP0F ;Fix OHCI Volume
857 0114 2000 E CALL control_read
858 0115 297B JMP USB_EP0_ISR_END
859 0116
860 0116 USB_EP0_OUT_ACK_TOKEN:
861 0116 ;modify 2006-08-28
862 0116 3421 CLR USR.@USR_EP0F ;Fix OHCI Volume
863 0117 0001 clr wdt
864 0118 37A6 clr MISC.@MISC_LEN0
865 0119 ;; call Delay_3us
866 0119 297B JMP USB_EP0_ISR_END
867 011A
868 011A
869 011A
870 011A USB_EP0_OUT_TOKEN:
871 011A ;modify 2006-08-28
872 011A 3421 CLR USR.@USR_EP0F ;Fix OHCI Volume
873 011B 0001 clr wdt
874 011C 1F05 clr acc
875 011D 047D xor a,nCmdIndex1
876 011E 3D0A sz z
877 011F 297B jmp USB_EP0_ISR_END
878 0120
879 0120 USB_EP0_OUT_TOKEN_Loop:
880 0120 0001 clr wdt
881 0121 2000 E CALL Check_Real_Cmd
882 0122 3D75 sz bFlag_Real_Cmd
883 0123 2940 jmp USB_EP0_OUT_TOKEN_End
884 0124
885 0124 0001 clr wdt
"File: MAIN.ASM Holtek Cross-Assembler Version 2.86 Page 16
886 0125 2000 E CALL FIFO0_RD_CHECK
887 0126 39F5 SNZ bFlag_FIFO_Ready
888 0127 2920 JMP USB_EP0_OUT_TOKEN_Loop
889 0128
890 0128 2000 E CALL READ_FIFO0
891 0129 0000 NOP
892 012A 2000 E CALL Send_Hand_Shake
893 012B
894 012B
895 012B ;decode command
896 012B ;//parse Cmd , 21H = SetReport Out Data
897 012B 0F21 mov a,21H
898 012C 047D xor a,nCmdIndex1
899 012D 3D0A sz z
900 012E 2A1D jmp ProcessOutData
901 012F
902 012F ;//parse Cmd , 18H = Speaker Mute Control
903 012F 0F18 mov a,18H
904 0130 047D xor a,nCmdIndex1
905 0131 3D0A sz z
906 0132 2942 jmp Implement_Speaker_Mute
907 0133
908 0133 ;//parse Cmd , 19H = Mic Mute Control
909 0133 0F19 mov a,19H
910 0134 047D xor a,nCmdIndex1
911 0135 3D0A sz z
912 0136 2951 jmp Implement_Mic_Mute
913 0137
914 0137
915 0137 ;//parse Cmd , 28H = Speaker Volume Control
916 0137 0F28 mov a,28H
917 0138 047D xor a,nCmdIndex1
918 0139 3D0A sz z
919 013A 295B jmp Implement_Speaker_Volume
920 013B
921 013B ;//parse Cmd , 29H = Mic Volume Control
922 013B 0F29 mov a,29H
923 013C 047D xor a,nCmdIndex1
924 013D 3D0A sz z
925 013E 2961 jmp Implement_Mic_Volume
926 013F
927 013F
928 013F
929 013F ;//unknow command
930 013F 2940 jmp USB_EP0_OUT_TOKEN_End
931 0140
932 0140 USB_EP0_OUT_TOKEN_End:
933 0140 1F7D clr nCmdIndex1
934 0141 297B JMP USB_EP0_ISR_END
935 0142
936 0142
937 0142 Implement_Speaker_Mute:
938 0142 0001 clr wdt
939 0143 3C63 sz FIFO_out1.0
940 0144 379C clr USVC.7 ;mute
941 0145 3863 snz FIFO_out1.0
942 0146 339C set USVC.7 ;unmute
943 0147
944 0147 3C63 sz FIFO_out1.0
945 0148 3176 set bFlag_Audio_Mute ;mute
"File: MAIN.ASM Holtek Cross-Assembler Version 2.86 Page 17
946 0149 3863 snz FIFO_out1.0
947 014A 3576 clr bFlag_Audio_Mute ;unmute
948 014B
949 014B 3976 snz bFlag_Audio_Mute
950 014C 2950 jmp Implement_Speaker_Mute_1
951 014D
952 014D 0FE0 mov a,Min_Volume
953 014E 009C mov USVC,a
954 014F
955 014F 379C clr USVC.7
956 0150
957 0150
958 0150 Implement_Speaker_Mute_1:
959 0150 2940 jmp USB_EP0_OUT_TOKEN_End
960 0151
961 0151
962 0151 Implement_Mic_Mute:
963 0151 0001 clr wdt
964 0152 3C63 sz FIFO_OUT1.0
965 0153 37B0 clr PGA_CTRL.7 ;mute
966 0154 3863 snz FIFO_OUT1.0
967 0155 33B0 set PGA_CTRL.7 ;unmute
968 0156
969 0156 3C63 sz FIFO_out1.0
970 0157 31F6 set bFlag_Mic_Mute ;mute
971 0158 3863 snz FIFO_out1.0
972 0159 35F6 clr bFlag_Mic_Mute ;unmute
973 015A
974 015A
975 015A 2940 jmp USB_EP0_OUT_TOKEN_End
976 015B
977 015B
978 015B
979 015B
980 015B Implement_Speaker_Volume:
981 015B 0001 clr wdt
982 015C kmov VolumeH_Save,FIFO_out1
983 015E kmov VolumeL_Save,FIFO_out2
984 0160 Implement_Speaker_Volume_End:
985 0160 2940 jmp USB_EP0_OUT_TOKEN_End
986 0161
987 0161 Implement_Mic_Volume:
988 0161 0001 clr wdt
989 0162 0F7F mov a,7FH
990 0163 0464 xor a,FIFO_OUT2
991 0164 3D0A sz z
992 0165 296D jmp Implement_Mic_Volume_Set_Max
993 0166
994 0166 0F80 mov a,80H
995 0167 0464 xor a,FIFO_OUT2
996 0168 3D0A sz z
997 0169 2971 jmp Implement_Mic_Volume_Set_Min
998 016A
999 016A kmov FIFO_TEMP,FIFO_OUT2
1000 016C 2975 jmp Implement_Mic_Volume_1
1001 016D
1002 016D Implement_Mic_Volume_Set_Max:
1003 016D 0001 clr wdt
1004 016E kmov FIFO_TEMP,MIC_Max_Volume
1005 0170 2975 jmp Implement_Mic_Volume_1
"File: MAIN.ASM Holtek Cross-Assembler Version 2.86 Page 18
1006 0171 Implement_Mic_Volume_Set_Min:
1007 0171 0001 clr wdt
1008 0172 kmov FIFO_TEMP,MIC_Min_Volume
1009 0174 2975 jmp Implement_Mic_Volume_1
1010 0175 Implement_Mic_Volume_1:
1011 0175 0001 clr wdt
1012 0176 0F80 mov a,80H
1013 0177 0630 and a,PGA_CTRL
1014 0178
1015 0178 0574 or a,FIFO_TEMP
1016 0179 00B0 mov PGA_CTRL,a
1017 017A Implement_Mic_Volume_End:
1018 017A 2940 jmp USB_EP0_OUT_TOKEN_END
1019 017B
1020 017B USB_EP0_ISR_END:
1021 017B ;modify 2006-07-27
1022 017B 3421 CLR USR.@USR_EP0F ;Fix Bus Enumeration Stress
1023 017C 28E9 JMP USB_ISR_END
1024 017D ;-----------------------------------------------------
1025 017D ;EPNPOINT 1 Interrupt
1026 017D ;-----------------------------------------------------
1027 017D USB_EP1_ISR:
1028 017D ;check the data is in fifo ?
1029 017D ;CALL FIFO1_RD_CHECK
1030 017D ;SNZ bFlag_FIFO_Ready
1031 017D ;JMP USB_EP1_ISR_END
1032 017D ;CALL Read_FIFO1
1033 017D
1034 017D
1035 017D ;;CALL FIFO1_WR_CHECK
1036 017D ;;SNZ bFlag_FIFO_Ready
1037 017D ;;JMP USB_EP1_ISR_END
1038 017D ;;MOV A,00H
1039 017D ;;MOV FIFO_OUT1,A
1040 017D ;;MOV A,01H
1041 017D ;;MOV FIFO_SendLen,A
1042 017D ;;CALL WRITE_FIFO1
1043 017D
1044 017D
1045 017D
1046 017D USB_EP1_ISR_END:
1047 017D 34A1 CLR USR.@USR_EP1F
1048 017E 28E9 JMP USB_ISR_END
1049 017F ;-----------------------------------------------------
1050 017F ;EPNPOINT 2 Interrupt
1051 017F ;-----------------------------------------------------
1052 017F USB_EP2_ISR:
1053 017F ;;SET ET0I ;enable timer0
1054 017F ;;SET TMR0C.4 ;Enable timer0 counter
1055 017F
1056 017F ;modify 2006-07-27
1057 017F ;SET ET1I
1058 017F ;SET TMR1C.4
1059 017F
1060 017F 3626 clr MISC.@MISC_ISOEN ;close ISO(output) interrupt
1061 0180
1062 0180
1063 0180 USB_EP2_ISR_END:
1064 0180 3521 CLR USR.@USR_EP2F
1065 0181 28E9 JMP USB_ISR_END
"File: MAIN.ASM Holtek Cross-Assembler Version 2.86 Page 19
1066 0182 ;-----------------------------------------------------
1067 0182 ;EPNPOINT 3 Interrupt
1068 0182 ;-----------------------------------------------------
1069 0182 USB_EP3_ISR:
1070 0182 35A6 clr MISC.@MISC_ISIEN ;close ISO(input) interrupt
1071 0183 USB_EP3_ISR_END:
1072 0183 35A1 CLR USR.@USR_EP3F
1073 0184 28E9 JMP USB_ISR_END
1074 0185 ;-----------------------------------------------------
1075 0185 ;EPNPOINT 4 Interrupt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -