📄 fw.ls1
字号:
827 ; SOURCE LINE # 231
828 ; case GD_DEVICE: // Device
829 ; SOURCE LINE # 232
004E 830 ?C0025:
831 ; SUDPTRH = MSB(pDeviceDscr);
832 ; SOURCE LINE # 233
004E E500 F 833 MOV A,pDeviceDscr
0050 900000 F 834 MOV DPTR,#SUDPTRH
0053 F0 835 MOVX @DPTR,A
836 ; SUDPTRL = LSB(pDeviceDscr);
837 ; SOURCE LINE # 234
0054 E500 F 838 MOV A,pDeviceDscr+01H
839 ; break;
840 ; SOURCE LINE # 235
0056 8037 841 SJMP ?C0075
842 ; case GD_DEVICE_QUALIFIER: // Device Qualifier
843 ; SOURCE LINE # 236
0058 844 ?C0026:
845 ; SUDPTRH = MSB(pDeviceQualDscr);
A51 MACRO ASSEMBLER FW 12/29/2005 11:19:53 PAGE 14
846 ; SOURCE LINE # 237
0058 E500 F 847 MOV A,pDeviceQualDscr
005A 900000 F 848 MOV DPTR,#SUDPTRH
005D F0 849 MOVX @DPTR,A
850 ; SUDPTRL = LSB(pDeviceQualDscr);
851 ; SOURCE LINE # 238
005E E500 F 852 MOV A,pDeviceQualDscr+01H
0060 853 ?C0072:
854 ; break;
855 ; SOURCE LINE # 239
0060 802D 856 SJMP ?C0075
857 ; case GD_CONFIGURATION: // Configuration
858 ; SOURCE LINE # 240
0062 859 ?C0027:
860 ; SUDPTRH = MSB(pConfigDscr);
861 ; SOURCE LINE # 241
0062 E500 F 862 MOV A,pConfigDscr
0064 900000 F 863 MOV DPTR,#SUDPTRH
0067 F0 864 MOVX @DPTR,A
865 ; SUDPTRL = LSB(pConfigDscr);
866 ; SOURCE LINE # 242
0068 E500 F 867 MOV A,pConfigDscr+01H
006A 868 ?C0073:
869 ; break;
870 ; SOURCE LINE # 243
006A 8023 871 SJMP ?C0075
872 ; case GD_OTHER_SPEED_CONFIGURATION: // Other Speed Configuration
873 ; SOURCE LINE # 244
006C 874 ?C0028:
875 ; SUDPTRH = MSB(pOtherConfigDscr);
876 ; SOURCE LINE # 245
006C E500 F 877 MOV A,pOtherConfigDscr
006E 900000 F 878 MOV DPTR,#SUDPTRH
0071 F0 879 MOVX @DPTR,A
880 ; SUDPTRL = LSB(pOtherConfigDscr);
881 ; SOURCE LINE # 246
0072 E500 F 882 MOV A,pOtherConfigDscr+01H
0074 883 ?C0074:
884 ; break;
885 ; SOURCE LINE # 247
0074 8019 886 SJMP ?C0075
887 ; case GD_STRING: // String
888 ; SOURCE LINE # 248
0076 889 ?C0029:
890 ; if(dscr_ptr = (void *)EZUSB_GetStringDscr(SETUPDAT[2]))
891 ; SOURCE LINE # 249
0076 900000 F 892 MOV DPTR,#SETUPDAT+02H
0079 E0 893 MOVX A,@DPTR
007A FF 894 MOV R7,A
007B 120000 F 895 LCALL _EZUSB_GetStringDscr
007E AA06 896 MOV R2,AR6
0080 A907 897 MOV R1,AR7
0082 7B01 898 MOV R3,#01H
899 ;---- Variable 'dscr_ptr?146' assigned to Register 'R1/R2/R3' ----
0084 EA 900 MOV A,R2
0085 49 901 ORL A,R1
0086 4B 902 ORL A,R3
0087 600D 903 JZ ?C0076
904 ; {
905 ; SOURCE LINE # 250
906 ; SUDPTRH = MSB(dscr_ptr);
907 ; SOURCE LINE # 251
0089 EE 908 MOV A,R6
008A 900000 F 909 MOV DPTR,#SUDPTRH
008D F0 910 MOVX @DPTR,A
911 ; SUDPTRL = LSB(dscr_ptr);
A51 MACRO ASSEMBLER FW 12/29/2005 11:19:53 PAGE 15
912 ; SOURCE LINE # 252
008E EF 913 MOV A,R7
008F 914 ?C0075:
008F 900000 F 915 MOV DPTR,#SUDPTRL
0092 F0 916 MOVX @DPTR,A
917 ; }
918 ; SOURCE LINE # 253
0093 020000 F 919 LJMP ?C0021
920 ; else
921 ; EZUSB_STALL_EP0(); // Stall End Point 0
922 ; break;
923 ; default: // Invalid request
924 ; SOURCE LINE # 257
0096 925 ?C0032:
926 ; EZUSB_STALL_EP0(); // Stall End Point 0
927 ; SOURCE LINE # 258
0096 928 ?C0076:
929 ; }
930 ; SOURCE LINE # 259
931 ; break;
932 ; SOURCE LINE # 260
0096 020000 F 933 LJMP ?C0083
934 ; case SC_GET_INTERFACE: // *** Get Interface
935 ; SOURCE LINE # 261
0099 936 ?C0033:
937 ; DR_GetInterface();
938 ; SOURCE LINE # 262
0099 120000 F 939 LCALL DR_GetInterface
940 ; break;
941 ; SOURCE LINE # 263
009C 020000 F 942 LJMP ?C0021
943 ; case SC_SET_INTERFACE: // *** Set Interface
944 ; SOURCE LINE # 264
009F 945 ?C0034:
946 ; DR_SetInterface();
947 ; SOURCE LINE # 265
009F 120000 F 948 LCALL DR_SetInterface
949 ; break;
950 ; SOURCE LINE # 266
00A2 020000 F 951 LJMP ?C0021
952 ; case SC_SET_CONFIGURATION: // *** Set Configuration
953 ; SOURCE LINE # 267
00A5 954 ?C0035:
955 ; DR_SetConfiguration();
956 ; SOURCE LINE # 268
00A5 120000 F 957 LCALL DR_SetConfiguration
958 ; break;
959 ; SOURCE LINE # 269
00A8 020000 F 960 LJMP ?C0021
961 ; case SC_GET_CONFIGURATION: // *** Get Configuration
962 ; SOURCE LINE # 270
00AB 963 ?C0036:
964 ; DR_GetConfiguration();
965 ; SOURCE LINE # 271
00AB 120000 F 966 LCALL DR_GetConfiguration
967 ; break;
968 ; SOURCE LINE # 272
00AE 020000 F 969 LJMP ?C0021
970 ; case SC_GET_STATUS: // *** Get Status
971 ; SOURCE LINE # 273
00B1 972 ?C0037:
973 ; if(DR_GetStatus())
974 ; SOURCE LINE # 274
00B1 120000 F 975 LCALL DR_GetStatus
00B4 4003 976 JC $ + 5H
00B6 020000 F 977 LJMP ?C0021
A51 MACRO ASSEMBLER FW 12/29/2005 11:19:53 PAGE 16
978 ; switch(SETUPDAT[0])
979 ; SOURCE LINE # 275
00B9 900000 F 980 MOV DPTR,#SETUPDAT
00BC E0 981 MOVX A,@DPTR
00BD 247F 982 ADD A,#07FH
00BF 6015 983 JZ ?C0041
00C1 14 984 DEC A
00C2 6019 985 JZ ?C0042
00C4 2402 986 ADD A,#02H
00C6 7063 987 JNZ ?C0045
988 ; {
989 ; SOURCE LINE # 276
990 ; case GS_DEVICE: // Device
991 ; SOURCE LINE # 277
00C8 992 ?C0040:
993 ; EP0BUF[0] = ((BYTE)Rwuen << 1) | (BYTE)Selfpwr;
994 ; SOURCE LINE # 278
00C8 A200 F 995 MOV C,Rwuen
00CA E4 996 CLR A
00CB 33 997 RLC A
00CC 25E0 998 ADD A,ACC
00CE FF 999 MOV R7,A
00CF A200 F 1000 MOV C,Selfpwr
00D1 E4 1001 CLR A
00D2 33 1002 RLC A
00D3 4F 1003 ORL A,R7
1004 ; EP0BUF[1] = 0;
1005 ; SOURCE LINE # 279
1006 ; EP0BCH = 0;
1007 ; SOURCE LINE # 280
1008 ; EP0BCL = 2;
1009 ; SOURCE LINE # 281
1010 ; break;
1011 ; SOURCE LINE # 282
00D4 8041 1012 SJMP ?C0078
1013 ; case GS_INTERFACE: // Interface
1014 ; SOURCE LINE # 283
00D6 1015 ?C0041:
1016 ; EP0BUF[0] = 0;
1017 ; SOURCE LINE # 284
00D6 E4 1018 CLR A
00D7 900000 F 1019 MOV DPTR,#EP0BUF
00DA F0 1020 MOVX @DPTR,A
1021 ; EP0BUF[1] = 0;
1022 ; SOURCE LINE # 285
1023 ; EP0BCH = 0;
1024 ; SOURCE LINE # 286
1025 ; EP0BCL = 2;
1026 ; SOURCE LINE # 287
1027 ; break;
1028 ; SOURCE LINE # 288
00DB 803F 1029 SJMP ?C0079
1030 ; case GS_ENDPOINT: // End Point
1031 ; SOURCE LINE # 289
00DD 1032 ?C0042:
1033
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -