?? smart_ci.asm
字號:
; c = inportb(D12_DATA);
; SOURCE LINE # 132
MOV R7,#02H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
;---- Variable 'c?71' assigned to Register 'R7' ----
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 134
MOV R6,bEPPflags
MOV A,R6
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0022
; ENABLE;
; SOURCE LINE # 135
SETB EA
?C0022:
;
; return c;
; SOURCE LINE # 137
; }
; SOURCE LINE # 138
?C0023:
RET
; END OF _D12_ReadEndpointStatus
;
; void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
RSEG ?PR?_D12_SetEndpointStatus?D12CI
USING 0
_D12_SetEndpointStatus:
MOV bStalled?80,R5
;---- Variable 'bEndp?80' assigned to Register 'R6' ----
MOV R6,AR7
; SOURCE LINE # 140
; {
; SOURCE LINE # 141
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 142
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0024
; DISABLE;
; SOURCE LINE # 143
CLR EA
?C0024:
;
; outportb(D12_COMMAND, 0x40 + bEndp);
; SOURCE LINE # 145
MOV R7,#03H
MOV A,R6
ADD A,#040H
MOV R5,A
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; outportb(D12_DATA, bStalled);
; SOURCE LINE # 146
MOV R7,#02H
MOV R5,bStalled?80
; LCALL _outportb
MOV DPTR,#0FF02H
MOV A,R5
MOVX @DPTR,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 148
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0026
; ENABLE;
; SOURCE LINE # 149
SETB EA
; }
; SOURCE LINE # 150
?C0026:
RET
; END OF _D12_SetEndpointStatus
;
; void D12_SendResume(void)
RSEG ?PR?D12_SendResume?D12CI
USING 0
D12_SendResume:
; SOURCE LINE # 152
; {
; SOURCE LINE # 153
; outportb(D12_COMMAND, 0xF6);
; SOURCE LINE # 154
MOV R7,#03H
MOV R5,#0F6H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; }
; SOURCE LINE # 155
RET
; END OF D12_SendResume
;
; unsigned short D12_ReadCurrentFrameNumber(void)
RSEG ?PR?D12_ReadCurrentFrameNumber?D12CI
USING 0
D12_ReadCurrentFrameNumber:
; SOURCE LINE # 157
; {
; SOURCE LINE # 158
; unsigned short i,j;
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 161
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0028
; DISABLE;
; SOURCE LINE # 162
CLR EA
?C0028:
;
; outportb(D12_COMMAND, 0xF5);
; SOURCE LINE # 164
MOV R7,#03H
MOV R5,#0F5H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; i= inportb(D12_DATA);
; SOURCE LINE # 165
MOV R7,#02H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
MOV i?101,#00H
MOV i?101+01H,R7
; j = inportb(D12_DATA);
; SOURCE LINE # 166
MOV R7,#02H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
;---- Variable 'j?101' assigned to Register 'R6/R7' ----
;
; i += (j<<8);
; SOURCE LINE # 168
MOV A,R7
MOV R6,A
CLR A
ADD A,i?101+01H
MOV i?101+01H,A
MOV A,R6
ADDC A,i?101
MOV i?101,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 170
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0029
; ENABLE;
; SOURCE LINE # 171
SETB EA
?C0029:
;
; return i;
; SOURCE LINE # 173
MOV R6,i?101
MOV R7,i?101+01H
; }
; SOURCE LINE # 174
?C0030:
RET
; END OF D12_ReadCurrentFrameNumber
;
; unsigned short D12_ReadChipID(void)
RSEG ?PR?D12_ReadChipID?D12CI
USING 0
D12_ReadChipID:
; SOURCE LINE # 176
; {
; SOURCE LINE # 177
; unsigned short i,j;
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 180
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0031
; DISABLE;
; SOURCE LINE # 181
CLR EA
?C0031:
;
; outportb(portbase+D12_COMMAND, 0xFD);
; SOURCE LINE # 183
MOV R7,#05H
MOV R5,#0FDH
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; i=inportb(portbase+D12_DATA);
; SOURCE LINE # 184
MOV R7,#04H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
MOV i?111,#00H
MOV i?111+01H,R7
; j=inportb(portbase+D12_DATA);
; SOURCE LINE # 185
MOV R7,#04H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
;---- Variable 'j?111' assigned to Register 'R6/R7' ----
; i += (j<<8);
; SOURCE LINE # 186
MOV A,R7
MOV R6,A
CLR A
ADD A,i?111+01H
MOV i?111+01H,A
MOV A,R6
ADDC A,i?111
MOV i?111,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 188
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0032
; ENABLE;
; SOURCE LINE # 189
SETB EA
?C0032:
;
; return i;
; SOURCE LINE # 191
MOV R6,i?111
MOV R7,i?111+01H
; }
; SOURCE LINE # 192
?C0033:
RET
; END OF D12_ReadChipID
;
; unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
RSEG ?PR?_D12_ReadEndpoint?D12CI
USING 0
_D12_ReadEndpoint:
; SOURCE LINE # 194
; {
; SOURCE LINE # 195
; unsigned char i, j;
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 198
MOV A,bEPPflags
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0034
; DISABLE;
; SOURCE LINE # 199
CLR EA
?C0034:
MOV buf?120,R3
MOV buf?120+01H,R2
MOV buf?120+02H,R1
MOV len?120, R5
;---- Variable 'endp?120' assigned to Register 'R5' ----
MOV R5,AR7
;
; outportb(D12_COMMAND, endp);
; SOURCE LINE # 201
MOV R7,#03H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; if((inportb(D12_DATA) & D12_FULLEMPTY) == 0) {
; SOURCE LINE # 202
MOV R7,#02H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
MOV A,R7
JB ACC.0,?C0035
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 203
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0036
; ENABLE;
; SOURCE LINE # 204
SETB EA
?C0036:
; return 0;
; SOURCE LINE # 205
MOV R7,#00H
RET
; }
; SOURCE LINE # 206
?C0035:
;
; outportb(D12_COMMAND, 0xF0);
; SOURCE LINE # 208
MOV R7,#03H
MOV R5,#0F0H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; j = inportb(D12_DATA);
; SOURCE LINE # 209
MOV R7,#02H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
MOV j?121,R7
; j = inportb(D12_DATA);
; SOURCE LINE # 210
MOV R7,#02H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
MOV j?121,R7
;
; if(j > len)
; SOURCE LINE # 212
MOV A,j?121
SETB C
SUBB A,len?120
JC ?C0038
; j = len;
; SOURCE LINE # 213
MOV j?121,len?120
?C0038:
;
MOV R3,buf?120
CJNE R3,#02,RDEP_002
; XDATA memory type
MOV DPH,buf?120+01H
MOV DPL,buf?120+02H
; for(i=0; i<j; i++)
; SOURCE LINE # 215
CLR A
MOV i?121,A
RDEP_001:
MOV A,i?121
CLR C
SUBB A,j?121
JNC ?C0040
PUSH DPH
PUSH DPL
MOV DPTR,#0FF02H
MOVX A,@DPTR
POP DPL
POP DPH
MOVX @DPTR,A
INC DPTR
INC i?121
SJMP RDEP_001
;
RDEP_002:
; IDATA, DATA memory type. (PDATA not supported!)
MOV R0,buf?120+02H
; for(i=0; i<j; i++)
; SOURCE LINE # 215
CLR A
MOV i?121,A
MOV DPTR,#0FF02H
RDEP_003:
MOV A,i?121
CLR C
SUBB A,j?121
JNC ?C0040
MOVX A,@DPTR
MOV @R0,A
INC R0
INC i?121
SJMP RDEP_003
?C0040:
;
;
; outportb(D12_COMMAND, 0xF2);
; SOURCE LINE # 218
MOV R7,#03H
MOV R5,#0F2H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 220
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0042
; ENABLE;
; SOURCE LINE # 221
SETB EA
?C0042:
;
; return j;
; SOURCE LINE # 223
MOV R7,j?121
; }
; SOURCE LINE # 224
?C0037:
RET
; END OF _D12_ReadEndpoint
;
; unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
RSEG ?PR?_D12_WriteEndpoint?D12CI
USING 0
_D12_WriteEndpoint:
; SOURCE LINE # 264
; {
; SOURCE LINE # 265
; unsigned char i;
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 268
MOV A,bEPPflags
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0052
; DISABLE;
; SOURCE LINE # 269
CLR EA
?C0052:
MOV buf?140,R3
MOV buf?140+01H,R2
MOV buf?140+02H,R1
MOV len?140, R5
;---- Variable 'endp?140' assigned to Register 'R5' ----
MOV R5,AR7
;
; outportb(D12_COMMAND, endp);
; SOURCE LINE # 271
MOV R7,#03H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; inportb(D12_DATA);
; SOURCE LINE # 272
MOV R7,#02H
; LCALL _inportb
MOV DPTR,#0FF02H
MOVX A,@DPTR
MOV R7,A
;
; outportb(D12_COMMAND, 0xF0);
; SOURCE LINE # 274
MOV R7,#03H
MOV R5,#0F0H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; outportb(D12_DATA, 0);
; SOURCE LINE # 275
MOV R7,#02H
CLR A
MOV R5,A
; LCALL _outportb
MOV DPTR,#0FF02H
MOV A,R5
MOVX @DPTR,A
; outportb(D12_DATA, len);
; SOURCE LINE # 276
MOV R7,#02H
MOV R5,len?140
; LCALL _outportb
MOV DPTR,#0FF02H
MOV A,R5
MOVX @DPTR,A
;
MOV R3,buf?140
CJNE R3,#02,WREP_002
MOV DPH,buf?140+01H
MOV DPL,buf?140+02H
; for(i=0; i<len; i++)
; SOURCE LINE # 278
CLR A
MOV i?141,A
WREP_001:
MOV A,i?141
CLR C
SUBB A,len?140
JNC ?C0054
MOVX A,@DPTR
INC DPTR
PUSH DPH
PUSH DPL
MOV DPTR,#0FF02H
MOVX @DPTR,A
POP DPL
POP DPH
INC i?141
SJMP WREP_001
WREP_002:
CJNE R3,#05,WREP_004
MOV DPH,buf?140+01H
MOV DPL,buf?140+02H
; for(i=0; i<len; i++)
; SOURCE LINE # 278
CLR A
MOV i?141,A
WREP_003:
MOV A,i?141
CLR C
SUBB A,len?140
JNC ?C0054
CLR A
MOVC A,@A+DPTR
INC DPTR
PUSH DPH
PUSH DPL
MOV DPTR,#0FF02H
MOVX @DPTR,A
POP DPL
POP DPH
INC i?141
SJMP WREP_003
WREP_004:
; CJNE R3,#04,?C0054
MOV R0,buf?140+02H
; for(i=0; i<len; i++)
; SOURCE LINE # 278
CLR A
MOV i?141,A
MOV DPTR,#0FF02H
WREP_005:
MOV A,i?141
CLR C
SUBB A,len?140
JNC ?C0054
MOV A,@R0
INC R0
MOVX @DPTR,A
INC i?141
SJMP WREP_005
?C0054:
;
;
; outportb(D12_COMMAND, 0xFA);
; SOURCE LINE # 281
MOV R7,#03H
MOV R5,#0FAH
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
;
; if(bEPPflags.bits.in_isr == 0)
; SOURCE LINE # 283
MOV R7,bEPPflags
MOV A,R7
SWAP A
RRC A
ANL A,#07H
JB ACC.0,?C0056
; ENABLE;
; SOURCE LINE # 284
SETB EA
?C0056:
;
; return len;
; SOURCE LINE # 286
MOV R7,len?140
; }
; SOURCE LINE # 287
?C0057:
RET
; END OF _D12_WriteEndpoint
;
; void D12_AcknowledgeEndpoint(unsigned char endp)
RSEG ?PR?_D12_AcknowledgeEndpoint?D12CI
USING 0
_D12_AcknowledgeEndpoint:
MOV endp?150,R7
; SOURCE LINE # 289
; {
; SOURCE LINE # 290
; outportb(D12_COMMAND, endp);
; SOURCE LINE # 291
MOV R7,#03H
MOV R5,endp?150
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; outportb(D12_COMMAND, 0xF1);
; SOURCE LINE # 292
MOV R7,#03H
MOV R5,#0F1H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; if(endp == 0)
; SOURCE LINE # 293
MOV A,endp?150
JNZ ?C0059
; outportb(D12_COMMAND, 0xF2);
; SOURCE LINE # 294
MOV R7,#03H
MOV R5,#0F2H
; LCALL _outportb
MOV DPTR,#0FF03H
MOV A,R5
MOVX @DPTR,A
; }
; SOURCE LINE # 295
?C0059:
RET
; END OF _D12_AcknowledgeEndpoint
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -