📄 cmds.ls1
字号:
003E 894 ?C0032:
895 ;
896 ; return i;
897 ; SOURCE LINE # 183
003E AE00 F 898 MOV R6,i?1157
0040 AF00 F 899 MOV R7,i?1157+01H
900 ; }
901 ; SOURCE LINE # 184
0042 902 ?C0033:
0042 22 903 RET
904 ; END OF D12_ReadChipID
905
906 ;
907 ; unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char * buf, unsigned char len
)
908
---- 909 RSEG ?PR?_D12_ReadEndpoint?CMDS
0000 910 _D12_ReadEndpoint:
911 USING 0
912 ; SOURCE LINE # 186
0000 8B00 F 913 MOV buf?1260,R3
0002 8A00 F 914 MOV buf?1260+01H,R2
0004 8900 F 915 MOV buf?1260+02H,R1
A51 MACRO ASSEMBLER CMDS 04/22/2005 11:54:44 PAGE 15
916 ;---- Variable 'endp?1259' assigned to Register 'R5' ----
0006 AD07 917 MOV R5,AR7
918 ; {
919 ; SOURCE LINE # 187
920 ; unsigned char i, j;
921 ;
922 ; if(bEPPflags.bits.in_isr == 0)
923 ; SOURCE LINE # 190
0008 AF00 F 924 MOV R7,bEPPflags
000A EF 925 MOV A,R7
000B C4 926 SWAP A
000C 13 927 RRC A
000D 5407 928 ANL A,#07H
000F 20E002 929 JB ACC.0,?C0034
930 ; DISABLE;
931 ; SOURCE LINE # 191
0012 C2AF 932 CLR EA
0014 933 ?C0034:
934 ;
935 ; outportb(D12_COMMAND, endp);
936 ; SOURCE LINE # 193
0014 7F01 937 MOV R7,#01H
0016 7E00 938 MOV R6,#00H
0018 120000 F 939 LCALL _outportb
940 ; if((inportb(D12_DATA) & D12_FULLEMPTY) == 0) {
941 ; SOURCE LINE # 194
001B E4 942 CLR A
001C FF 943 MOV R7,A
001D FE 944 MOV R6,A
001E 120000 F 945 LCALL _inportb
0021 EF 946 MOV A,R7
0022 20E00F 947 JB ACC.0,?C0035
948 ; if(bEPPflags.bits.in_isr == 0)
949 ; SOURCE LINE # 195
0025 AF00 F 950 MOV R7,bEPPflags
0027 EF 951 MOV A,R7
0028 C4 952 SWAP A
0029 13 953 RRC A
002A 5407 954 ANL A,#07H
002C 20E002 955 JB ACC.0,?C0036
956 ; ENABLE;
957 ; SOURCE LINE # 196
002F D2AF 958 SETB EA
0031 959 ?C0036:
960 ; return 0;
961 ; SOURCE LINE # 197
0031 7F00 962 MOV R7,#00H
0033 22 963 RET
964 ; }
965 ; SOURCE LINE # 198
0034 966 ?C0035:
967 ;
968 ; outportb(D12_COMMAND, 0xF0);
969 ; SOURCE LINE # 200
0034 7DF0 970 MOV R5,#0F0H
0036 7F01 971 MOV R7,#01H
0038 7E00 972 MOV R6,#00H
003A 120000 F 973 LCALL _outportb
974 ; j = inportb(D12_DATA);
975 ; SOURCE LINE # 201
003D E4 976 CLR A
003E FF 977 MOV R7,A
003F FE 978 MOV R6,A
0040 120000 F 979 LCALL _inportb
0043 8F00 F 980 MOV j?1263,R7
981 ; j = inportb(D12_DATA);
A51 MACRO ASSEMBLER CMDS 04/22/2005 11:54:44 PAGE 16
982 ; SOURCE LINE # 202
0045 E4 983 CLR A
0046 FF 984 MOV R7,A
0047 FE 985 MOV R6,A
0048 120000 F 986 LCALL _inportb
004B 8F00 F 987 MOV j?1263,R7
988 ;
989 ; if(j > len)
990 ; SOURCE LINE # 204
004D E500 F 991 MOV A,j?1263
004F D3 992 SETB C
0050 9500 F 993 SUBB A,len?1261
0052 4003 994 JC ?C0038
995 ; j = len;
996 ; SOURCE LINE # 205
0054 850000 F 997 MOV j?1263,len?1261
0057 998 ?C0038:
999 ;
1000 ; for(i=0; i<j; i++)
1001 ; SOURCE LINE # 207
0057 E4 1002 CLR A
0058 F500 F 1003 MOV i?1262,A
005A 1004 ?C0039:
005A E500 F 1005 MOV A,i?1262
005C C3 1006 CLR C
005D 9500 F 1007 SUBB A,j?1263
005F 501A 1008 JNC ?C0040
1009 ; *(buf+i) = inportb(D12_DATA);
1010 ; SOURCE LINE # 208
0061 E4 1011 CLR A
0062 FF 1012 MOV R7,A
0063 FE 1013 MOV R6,A
0064 120000 F 1014 LCALL _inportb
0067 AB00 F 1015 MOV R3,buf?1260
0069 AA00 F 1016 MOV R2,buf?1260+01H
006B A900 F 1017 MOV R1,buf?1260+02H
006D 850082 F 1018 MOV DPL,i?1262
0070 758300 1019 MOV DPH,#00H
0073 EF 1020 MOV A,R7
0074 120000 F 1021 LCALL ?C?CSTOPTR
0077 0500 F 1022 INC i?1262
0079 80DF 1023 SJMP ?C0039
007B 1024 ?C0040:
1025 ;
1026 ; outportb(D12_COMMAND, 0xF2);
1027 ; SOURCE LINE # 210
007B 7DF2 1028 MOV R5,#0F2H
007D 7F01 1029 MOV R7,#01H
007F 7E00 1030 MOV R6,#00H
0081 120000 F 1031 LCALL _outportb
1032 ;
1033 ; if(bEPPflags.bits.in_isr == 0)
1034 ; SOURCE LINE # 212
0084 AF00 F 1035 MOV R7,bEPPflags
0086 EF 1036 MOV A,R7
0087 C4 1037 SWAP A
0088 13 1038 RRC A
0089 5407 1039 ANL A,#07H
008B 20E002 1040 JB ACC.0,?C0042
1041 ; ENABLE;
1042 ; SOURCE LINE # 213
008E D2AF 1043 SETB EA
0090 1044 ?C0042:
1045 ;
1046 ; return j;
1047 ; SOURCE LINE # 215
A51 MACRO ASSEMBLER CMDS 04/22/2005 11:54:44 PAGE 17
0090 AF00 F 1048 MOV R7,j?1263
1049 ; }
1050 ; SOURCE LINE # 216
0092 1051 ?C0037:
0092 22 1052 RET
1053 ; END OF _D12_ReadEndpoint
1054
1055 ;
1056 ; // D12_ReadMainEndpoint() added by V2.2 to support double-buffering.
1057 ; // Caller should assume maxium 128 bytes of returned data.
1058 ; unsigned char D12_ReadMainEndpoint(unsigned char * buf)
1059
---- 1060 RSEG ?PR?_D12_ReadMainEndpoint?CMDS
0000 1061 _D12_ReadMainEndpoint:
1062 USING 0
1063 ; SOURCE LINE # 220
0000 8B00 F 1064 MOV buf?1364,R3
0002 8A00 F 1065 MOV buf?1364+01H,R2
0004 8900 F 1066 MOV buf?1364+02H,R1
1067 ; {
1068 ; SOURCE LINE # 221
1069 ; unsigned char i, j, k = 0, bDblBuf = 1;
1070 ; SOURCE LINE # 222
0006 E4 1071 CLR A
0007 F500 F 1072 MOV k?1367,A
0009 750001 F 1073 MOV bDblBuf?1368,#01H
1074 ;
1075 ; if(bEPPflags.bits.in_isr == 0)
1076 ; SOURCE LINE # 224
000C AF00 F 1077 MOV R7,bEPPflags
000E EF 1078 MOV A,R7
000F C4 1079 SWAP A
0010 13 1080 RRC A
0011 5407 1081 ANL A,#07H
0013 20E002 1082 JB ACC.0,?C0043
1083 ; DISABLE;
1084 ; SOURCE LINE # 225
0016 C2AF 1085 CLR EA
0018 1086 ?C0043:
1087 ;
1088 ; // outportb(D12_COMMAND, 0x84);
1089 ; // if( (inportb(D12_DATA) & 0x60) == 0x60)
1090 ; bDblBuf = 2;
1091 ; SOURCE LINE # 229
0018 750002 F 1092 MOV bDblBuf?1368,#02H
001B 1093 ?C0044:
1094 ;
1095 ; while(bDblBuf) {
1096 ; SOURCE LINE # 231
1097 ; outportb(D12_COMMAND, 4);
1098 ; SOURCE LINE # 232
001B 7D04 1099 MOV R5,#04H
001D 7F01 1100 MOV R7,#01H
001F 7E00 1101 MOV R6,#00H
0021 120000 F 1102 LCALL _outportb
1103 ; if((inportb(D12_DATA) & D12_FULLEMPTY) == 0)
1104 ; SOURCE LINE # 233
0024 E4 1105 CLR A
0025 FF 1106 MOV R7,A
0026 FE 1107 MOV R6,A
0027 120000 F 1108 LCALL _inportb
002A EF 1109 MOV A,R7
002B 30E057 1110 JNB ACC.0,?C0045
1111 ; break;
1112 ; SOURCE LINE # 234
002E 1113 ?C0046:
A51 MACRO ASSEMBLER CMDS 04/22/2005 11:54:44 PAGE 18
1114 ;
1115 ; outportb(D12_COMMAND, 0xF0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -