📄 chap_9.lst
字号:
264 2 ENABLE;
265 2 } else
266 1 stall_ep0();
267 1 }
268
269 void get_interface(void)
270 {
271 1 unsigned char txdat = 0; /* Only/Current interface = 0 */
272 1 single_transmit(&txdat, 1);
273 1 }
274
275 void set_interface(void)
276 {
277 1 if (ControlData.DeviceRequest.wValue == 0 && ControlData.DeviceRequest.wIndex == 0)
278 1 single_transmit(0, 0);
279 1 else
280 1 stall_ep0();
281 1 }
C51 COMPILER V4.01, CHAP_9 07/07/01 13:16:08 PAGE 6
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION reserved (BEGIN)
; SOURCE LINE # 124
; SOURCE LINE # 125
; SOURCE LINE # 126
0000 120000 E LCALL stall_ep0
; SOURCE LINE # 127
0003 22 RET
; FUNCTION reserved (END)
; FUNCTION get_status (BEGIN)
; SOURCE LINE # 135
; SOURCE LINE # 136
; SOURCE LINE # 138
0000 E500 E MOV A,ControlData
0002 541F ANL A,#01FH
0004 F500 R MOV bRecipient,A
; SOURCE LINE # 141
0006 7023 JNZ ?C0002
; SOURCE LINE # 142
0008 AF00 E MOV R7,bEPPflags
000A EF MOV A,R7
000B C4 SWAP A
000C 540F ANL A,#0FH
000E 5401 ANL A,#01H
0010 FF MOV R7,A
0011 BF0105 CJNE R7,#01H,?C0003
; SOURCE LINE # 143
0014 750003 R MOV txdat,#03H
0017 8003 SJMP ?C0004
0019 ?C0003:
; SOURCE LINE # 145
0019 750001 R MOV txdat,#01H
001C ?C0004:
; SOURCE LINE # 146
001C E4 CLR A
001D F500 R MOV txdat+01H,A
; SOURCE LINE # 147
001F 7B04 MOV R3,#04H
0021 7A00 R MOV R2,#HIGH txdat
0023 7900 R MOV R1,#LOW txdat
0025 7D02 MOV R5,#02H
0027 120000 E LCALL _single_transmit
; SOURCE LINE # 148
002A 22 RET
002B ?C0002:
002B E500 R MOV A,bRecipient
002D B40111 CJNE A,#01H,?C0006
; SOURCE LINE # 149
0030 E4 CLR A
0031 F500 R MOV txdat,A
; SOURCE LINE # 150
0033 F500 R MOV txdat+01H,A
; SOURCE LINE # 151
0035 7B04 MOV R3,#04H
0037 7A00 R MOV R2,#HIGH txdat
0039 7900 R MOV R1,#LOW txdat
003B 7D02 MOV R5,#02H
003D 120000 E LCALL _single_transmit
; SOURCE LINE # 152
0040 22 RET
0041 ?C0006:
0041 E500 R MOV A,bRecipient
0043 6402 XRL A,#02H
C51 COMPILER V4.01, CHAP_9 07/07/01 13:16:08 PAGE 7
0045 703E JNZ ?C0008
; SOURCE LINE # 153
0047 E500 E MOV A,ControlData+05H
0049 5403 ANL A,#03H
004B F500 R MOV endp,A
; SOURCE LINE # 154
004D E500 E MOV A,ControlData+05H
004F 30E70D JNB ACC.7,?C0009
; SOURCE LINE # 155
0052 E500 R MOV A,endp
0054 25E0 ADD A,ACC
0056 04 INC A
0057 FF MOV R7,A
0058 120000 E LCALL _D12_SelectEndpoint
005B 8F00 R MOV c,R7
005D 800A SJMP ?C0010
005F ?C0009:
; SOURCE LINE # 157
005F E500 R MOV A,endp
0061 25E0 ADD A,ACC
0063 FF MOV R7,A
0064 120000 E LCALL _D12_SelectEndpoint
0067 8F00 R MOV c,R7
0069 ?C0010:
; SOURCE LINE # 158
0069 E500 R MOV A,c
006B 30E105 JNB ACC.1,?C0011
; SOURCE LINE # 159
006E 750001 R MOV txdat,#01H
0071 8003 SJMP ?C0012
0073 ?C0011:
; SOURCE LINE # 161
0073 E4 CLR A
0074 F500 R MOV txdat,A
0076 ?C0012:
; SOURCE LINE # 162
0076 E4 CLR A
0077 F500 R MOV txdat+01H,A
; SOURCE LINE # 163
0079 7B04 MOV R3,#04H
007B 7A00 R MOV R2,#HIGH txdat
007D 7900 R MOV R1,#LOW txdat
007F 7D02 MOV R5,#02H
0081 120000 E LCALL _single_transmit
; SOURCE LINE # 164
0084 22 RET
0085 ?C0008:
; SOURCE LINE # 165
0085 120000 E LCALL stall_ep0
; SOURCE LINE # 166
0088 ?C0014:
0088 22 RET
; FUNCTION get_status (END)
; FUNCTION clear_feature (BEGIN)
; SOURCE LINE # 168
; SOURCE LINE # 169
; SOURCE LINE # 171
0000 E500 E MOV A,ControlData
0002 541F ANL A,#01FH
0004 F500 R MOV bRecipient,A
; SOURCE LINE # 173
0006 701F JNZ ?C0015
0008 E500 E MOV A,ControlData+03H
000A 6401 XRL A,#01H
000C 4500 E ORL A,ControlData+02H
C51 COMPILER V4.01, CHAP_9 07/07/01 13:16:08 PAGE 8
000E 7017 JNZ ?C0015
; SOURCE LINE # 174
; SOURCE LINE # 175
0010 C2AF CLR EA
; SOURCE LINE # 176
0012 AF00 E MOV R7,bEPPflags
0014 EF MOV A,R7
0015 54EF ANL A,#0EFH
0017 F500 E MOV bEPPflags,A
; SOURCE LINE # 177
0019 D2AF SETB EA
; SOURCE LINE # 178
001B 7B00 MOV R3,#00H
001D 7A00 MOV R2,#00H
001F 7900 MOV R1,#00H
0021 E4 CLR A
0022 FD MOV R5,A
0023 120000 E LCALL _single_transmit
; SOURCE LINE # 179
0026 22 RET
0027 ?C0015:
; SOURCE LINE # 180
0027 E500 R MOV A,bRecipient
0029 6402 XRL A,#02H
002B 7034 JNZ ?C0017
002D E500 E MOV A,ControlData+03H
002F 4500 E ORL A,ControlData+02H
0031 702E JNZ ?C0017
; SOURCE LINE # 181
; SOURCE LINE # 182
0033 E500 E MOV A,ControlData+05H
0035 5403 ANL A,#03H
0037 F500 R MOV endp,A
; SOURCE LINE # 183
0039 E500 E MOV A,ControlData+05H
003B 30E70D JNB ACC.7,?C0018
; SOURCE LINE # 185
003E E500 R MOV A,endp
0040 25E0 ADD A,ACC
0042 04 INC A
0043 FF MOV R7,A
0044 E4 CLR A
0045 FD MOV R5,A
0046 120000 E LCALL _D12_SetEndpointStatus
0049 800A SJMP ?C0019
004B ?C0018:
; SOURCE LINE # 188
004B E500 R MOV A,endp
004D 25E0 ADD A,ACC
004F FF MOV R7,A
0050 E4 CLR A
0051 FD MOV R5,A
0052 120000 E LCALL _D12_SetEndpointStatus
0055 ?C0019:
; SOURCE LINE # 189
0055 7B00 MOV R3,#00H
0057 7A00 MOV R2,#00H
0059 7900 MOV R1,#00H
005B E4 CLR A
005C FD MOV R5,A
005D 120000 E LCALL _single_transmit
; SOURCE LINE # 190
0060 22 RET
0061 ?C0017:
; SOURCE LINE # 191
0061 120000 E LCALL stall_ep0
C51 COMPILER V4.01, CHAP_9 07/07/01 13:16:08 PAGE 9
; SOURCE LINE # 192
0064 ?C0021:
0064 22 RET
; FUNCTION clear_feature (END)
; FUNCTION set_feature (BEGIN)
; SOURCE LINE # 194
; SOURCE LINE # 195
; SOURCE LINE # 197
0000 E500 E MOV A,ControlData
0002 541F ANL A,#01FH
0004 F500 R MOV bRecipient,A
; SOURCE LINE # 199
0006 701F JNZ ?C0022
0008 E500 E MOV A,ControlData+03H
000A 6401 XRL A,#01H
000C 4500 E ORL A,ControlData+02H
000E 7017 JNZ ?C0022
; SOURCE LINE # 200
; SOURCE LINE # 201
0010 C2AF CLR EA
; SOURCE LINE # 202
0012 AF00 E MOV R7,bEPPflags
0014 EF MOV A,R7
0015 4410 ORL A,#010H
0017 F500 E MOV bEPPflags,A
; SOURCE LINE # 203
0019 D2AF SETB EA
; SOURCE LINE # 204
001B 7B00 MOV R3,#00H
001D 7A00 MOV R2,#00H
001F 7900 MOV R1,#00H
0021 E4 CLR A
0022 FD MOV R5,A
0023 120000 E LCALL _single_transmit
; SOURCE LINE # 205
0026 22 RET
0027 ?C0022:
; SOURCE LINE # 206
0027 E500 R MOV A,bRecipient
0029 6402 XRL A,#02H
002B 7034 JNZ ?C0024
002D E500 E MOV A,ControlData+03H
002F 4500 E ORL A,ControlData+02H
0031 702E JNZ ?C0024
; SOURCE LINE # 207
; SOURCE LINE # 208
0033 E500 E MOV A,ControlData+05H
0035 5403 ANL A,#03H
0037 F500 R MOV endp,A
; SOURCE LINE # 209
0039 E500 E MOV A,ControlData+05H
003B 30E70D JNB ACC.7,?C0025
; SOURCE LINE # 211
003E E500 R MOV A,endp
0040 25E0 ADD A,ACC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -